locale_get_display_name2.phpt 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343
  1. --TEST--
  2. locale_get_display_name() icu >= 4.8 && icu < 51.2
  3. --SKIPIF--
  4. <?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?>
  5. <?php if(version_compare(INTL_ICU_VERSION, '4.8') < 0) print 'skip'; ?>
  6. <?php if (version_compare(INTL_ICU_VERSION, '51.2') >= 0) die('skip for ICU < 51.2'); ?>
  7. --FILE--
  8. <?php
  9. /*
  10. * Try getting the display_name for different locales
  11. * with Procedural and Object methods.
  12. */
  13. function ut_main()
  14. {
  15. $res_str='';
  16. $disp_locales=array('en','fr','de');
  17. $locales = array(
  18. 'sl_IT_nedis_KIRTI',
  19. 'sl_IT_nedis-a-kirti-x-xyz',
  20. 'sl_IT_rozaj',
  21. 'sl_IT_NEDIS_ROJAZ_1901',
  22. 'i-enochian',
  23. 'zh-hakka',
  24. 'zh-wuu',
  25. 'i-tay',
  26. 'sgn-BE-nl',
  27. 'sgn-CH-de',
  28. 'sl_IT_rozaj@currency=EUR',
  29. 'uk-ua_CALIFORNIA@currency=;currency=GRN',
  30. 'root',
  31. 'uk@currency=EURO',
  32. 'Hindi',
  33. //Simple language subtag
  34. 'de',
  35. 'fr',
  36. 'ja',
  37. 'i-enochian', //(example of a grandfathered tag)
  38. //Language subtag plus Script subtag:
  39. 'zh-Hant',
  40. 'zh-Hans',
  41. 'sr-Cyrl',
  42. 'sr-Latn',
  43. //Language-Script-Region
  44. 'zh-Hans-CN',
  45. 'sr-Latn-CS',
  46. //Language-Variant
  47. 'sl-rozaj',
  48. 'sl-nedis',
  49. //Language-Region-Variant
  50. 'de-CH-1901',
  51. 'sl-IT-nedis',
  52. //Language-Script-Region-Variant
  53. 'sl-Latn-IT-nedis',
  54. //Language-Region:
  55. 'de-DE',
  56. 'en-US',
  57. 'es-419',
  58. //Private use subtags:
  59. 'de-CH-x-phonebk',
  60. 'az-Arab-x-AZE-derbend',
  61. //Extended language subtags
  62. 'zh-min',
  63. 'zh-min-nan-Hant-CN',
  64. //Private use registry values
  65. 'x-whatever',
  66. 'qaa-Qaaa-QM-x-southern',
  67. 'sr-Latn-QM',
  68. 'sr-Qaaa-CS',
  69. /*Tags that use extensions (examples ONLY: extensions MUST be defined
  70. by revision or update to this document or by RFC): */
  71. 'en-US-u-islamCal',
  72. 'zh-CN-a-myExt-x-private',
  73. 'en-a-myExt-b-another',
  74. //Some Invalid Tags:
  75. 'de-419-DE',
  76. 'a-DE',
  77. 'ar-a-aaa-b-bbb-a-ccc'
  78. );
  79. $res_str = '';
  80. foreach( $locales as $locale )
  81. {
  82. $res_str .= "locale='$locale'\n";
  83. foreach( $disp_locales as $disp_locale )
  84. {
  85. $scr = ut_loc_get_display_name( $locale ,$disp_locale );
  86. $scr = str_replace(array('(', ')'), '#', $scr);
  87. $res_str .= "disp_locale=$disp_locale : display_name=$scr";
  88. $res_str .= "\n";
  89. }
  90. $res_str .= "-----------------\n";
  91. }
  92. return $res_str;
  93. }
  94. include_once( 'ut_common.inc' );
  95. ut_run();
  96. ?>
  97. --EXPECTREGEX--
  98. locale='sl_IT_nedis_KIRTI'
  99. disp_locale=en : display_name=Slovenian #Italy, NEDIS_KIRTI#
  100. disp_locale=fr : display_name=slovène #Italie, NEDIS_KIRTI#
  101. disp_locale=de : display_name=Slowenisch #Italien, NEDIS_KIRTI#
  102. -----------------
  103. locale='sl_IT_nedis-a-kirti-x-xyz'
  104. disp_locale=en : display_name=Slovenian #Italy, NEDIS_A_KIRTI_X_XYZ#
  105. disp_locale=fr : display_name=slovène #Italie, NEDIS_A_KIRTI_X_XYZ#
  106. disp_locale=de : display_name=Slowenisch #Italien, NEDIS_A_KIRTI_X_XYZ#
  107. -----------------
  108. locale='sl_IT_rozaj'
  109. disp_locale=en : display_name=Slovenian #Italy, Resian#
  110. disp_locale=fr : display_name=slovène #Italie, dialecte de Resia#
  111. disp_locale=de : display_name=Slowenisch #Italien, (ROZAJ|Resianisch)#
  112. -----------------
  113. locale='sl_IT_NEDIS_ROJAZ_1901'
  114. disp_locale=en : display_name=Slovenian #Italy, NEDIS_ROJAZ_1901#
  115. disp_locale=fr : display_name=slovène #Italie, NEDIS_ROJAZ_1901#
  116. disp_locale=de : display_name=Slowenisch #Italien, NEDIS_ROJAZ_1901#
  117. -----------------
  118. locale='i-enochian'
  119. disp_locale=en : display_name=i-enochian #Private-Use=i-enochian#
  120. disp_locale=fr : display_name=i-enochian #Usage privé=i-enochian#
  121. disp_locale=de : display_name=i-enochian #Privatnutzung=i-enochian#
  122. -----------------
  123. locale='zh-hakka'
  124. disp_locale=en : display_name=Chinese( #HAKKA#)?
  125. disp_locale=fr : display_name=chinois( #HAKKA#)?
  126. disp_locale=de : display_name=Chinesisch( #HAKKA#)?
  127. -----------------
  128. locale='zh-wuu'
  129. disp_locale=en : display_name=Chinese #WUU#
  130. disp_locale=fr : display_name=chinois #WUU#
  131. disp_locale=de : display_name=Chinesisch #WUU#
  132. -----------------
  133. locale='i-tay'
  134. disp_locale=en : display_name=i-tay
  135. disp_locale=fr : display_name=i-tay
  136. disp_locale=de : display_name=i-tay
  137. -----------------
  138. locale='sgn-BE-nl'
  139. disp_locale=en : display_name=Sign Languages? #Belgium, NL#
  140. disp_locale=fr : display_name=langues? des signes #Belgique, NL#
  141. disp_locale=de : display_name=Gebärdensprache #Belgien, NL#
  142. -----------------
  143. locale='sgn-CH-de'
  144. disp_locale=en : display_name=Sign Languages? #Switzerland, DE#
  145. disp_locale=fr : display_name=langues? des signes #Suisse, DE#
  146. disp_locale=de : display_name=Gebärdensprache #Schweiz, DE#
  147. -----------------
  148. locale='sl_IT_rozaj@currency=EUR'
  149. disp_locale=en : display_name=Slovenian #Italy, Resian, [Cc]urrency=Euro#
  150. disp_locale=fr : display_name=slovène #Italie, dialecte de Resia, Devise=euro#
  151. disp_locale=de : display_name=Slowenisch #Italien, (ROZAJ|Resianisch), Währung=Euro#
  152. -----------------
  153. locale='uk-ua_CALIFORNIA@currency=;currency=GRN'
  154. disp_locale=en : display_name=Ukrainian #Ukraine, CALIFORNIA, [Cc]urrency#
  155. disp_locale=fr : display_name=ukrainien #Ukraine, CALIFORNIA, Devise#
  156. disp_locale=de : display_name=Ukrainisch #Ukraine, CALIFORNIA, Währung#
  157. -----------------
  158. locale='root'
  159. disp_locale=en : display_name=Root
  160. disp_locale=fr : display_name=racine
  161. disp_locale=de : display_name=[Rr]oot
  162. -----------------
  163. locale='uk@currency=EURO'
  164. disp_locale=en : display_name=Ukrainian #[Cc]urrency=EURO#
  165. disp_locale=fr : display_name=ukrainien #Devise=EURO#
  166. disp_locale=de : display_name=Ukrainisch #Währung=EURO#
  167. -----------------
  168. locale='Hindi'
  169. disp_locale=en : display_name=hindi
  170. disp_locale=fr : display_name=hindi
  171. disp_locale=de : display_name=hindi
  172. -----------------
  173. locale='de'
  174. disp_locale=en : display_name=German
  175. disp_locale=fr : display_name=allemand
  176. disp_locale=de : display_name=Deutsch
  177. -----------------
  178. locale='fr'
  179. disp_locale=en : display_name=French
  180. disp_locale=fr : display_name=français
  181. disp_locale=de : display_name=Französisch
  182. -----------------
  183. locale='ja'
  184. disp_locale=en : display_name=Japanese
  185. disp_locale=fr : display_name=japonais
  186. disp_locale=de : display_name=Japanisch
  187. -----------------
  188. locale='i-enochian'
  189. disp_locale=en : display_name=i-enochian #Private-Use=i-enochian#
  190. disp_locale=fr : display_name=i-enochian #Usage privé=i-enochian#
  191. disp_locale=de : display_name=i-enochian #Privatnutzung=i-enochian#
  192. -----------------
  193. locale='zh-Hant'
  194. disp_locale=en : display_name=Chinese #Traditional#
  195. disp_locale=fr : display_name=chinois #idéogrammes han (#variante traditionnelle#|traditionnels)#
  196. disp_locale=de : display_name=Chinesisch #Traditionell#
  197. -----------------
  198. locale='zh-Hans'
  199. disp_locale=en : display_name=Chinese #Simplified#
  200. disp_locale=fr : display_name=chinois #idéogrammes han (#variante simplifiée#|simplifiés)#
  201. disp_locale=de : display_name=Chinesisch #Vereinfacht#
  202. -----------------
  203. locale='sr-Cyrl'
  204. disp_locale=en : display_name=Serbian #Cyrillic#
  205. disp_locale=fr : display_name=serbe #cyrillique#
  206. disp_locale=de : display_name=Serbisch #Kyrillisch#
  207. -----------------
  208. locale='sr-Latn'
  209. disp_locale=en : display_name=Serbian #Latin#
  210. disp_locale=fr : display_name=serbe #latin#
  211. disp_locale=de : display_name=Serbisch #Lateinisch#
  212. -----------------
  213. locale='zh-Hans-CN'
  214. disp_locale=en : display_name=Chinese #Simplified, China#
  215. disp_locale=fr : display_name=chinois #idéogrammes han (#variante simplifiée#|simplifiés), Chine#
  216. disp_locale=de : display_name=Chinesisch #Vereinfacht, China#
  217. -----------------
  218. locale='sr-Latn-CS'
  219. disp_locale=en : display_name=Serbian #Latin, Serbia [aA]nd Montenegro#
  220. disp_locale=fr : display_name=serbe #latin, Serbie-et-Monténégro#
  221. disp_locale=de : display_name=Serbisch #Lateinisch, Serbien und Montenegro#
  222. -----------------
  223. locale='sl-rozaj'
  224. disp_locale=en : display_name=Slovenian #Resian#
  225. disp_locale=fr : display_name=slovène #dialecte de Resia#
  226. disp_locale=de : display_name=Slowenisch( #(ROZAJ|Resianisch)#)?
  227. -----------------
  228. locale='sl-nedis'
  229. disp_locale=en : display_name=Slovenian #Natisone dialect#
  230. disp_locale=fr : display_name=slovène #dialecte de Natisone#
  231. disp_locale=de : display_name=Slowenisch #Natisone-Dialekt#
  232. -----------------
  233. locale='de-CH-1901'
  234. disp_locale=en : display_name=German #Switzerland, Traditional German orthography#
  235. disp_locale=fr : display_name=allemand #Suisse, orthographe allemande traditionnelle#
  236. disp_locale=de : display_name=Deutsch #Schweiz, (1901|[aA]lte deutsche Rechtschreibung)#
  237. -----------------
  238. locale='sl-IT-nedis'
  239. disp_locale=en : display_name=Slovenian #Italy, Natisone dialect#
  240. disp_locale=fr : display_name=slovène #Italie, dialecte de Natisone#
  241. disp_locale=de : display_name=Slowenisch #Italien, (NEDIS|Natisone-Dialekt)#
  242. -----------------
  243. locale='sl-Latn-IT-nedis'
  244. disp_locale=en : display_name=Slovenian #Latin, Italy, Natisone dialect#
  245. disp_locale=fr : display_name=slovène #latin, Italie, dialecte de Natisone#
  246. disp_locale=de : display_name=Slowenisch #Lateinisch, Italien, (NEDIS|Natisone-Dialekt)#
  247. -----------------
  248. locale='de-DE'
  249. disp_locale=en : display_name=German #Germany#
  250. disp_locale=fr : display_name=allemand #Allemagne#
  251. disp_locale=de : display_name=Deutsch #Deutschland#
  252. -----------------
  253. locale='en-US'
  254. disp_locale=en : display_name=English #United States#
  255. disp_locale=fr : display_name=anglais #États-Unis#
  256. disp_locale=de : display_name=Englisch #Vereinigte Staaten#
  257. -----------------
  258. locale='es-419'
  259. disp_locale=en : display_name=Spanish #Latin America#
  260. disp_locale=fr : display_name=espagnol #Amérique latine#
  261. disp_locale=de : display_name=Spanisch #Lateinamerika#
  262. -----------------
  263. locale='de-CH-x-phonebk'
  264. disp_locale=en : display_name=German #Switzerland, Private-Use=phonebk#
  265. disp_locale=fr : display_name=allemand #Suisse, Usage privé=phonebk#
  266. disp_locale=de : display_name=Deutsch #Schweiz, Privatnutzung=phonebk#
  267. -----------------
  268. locale='az-Arab-x-AZE-derbend'
  269. disp_locale=en : display_name=Azerbaijani #Arabic, Private-Use=aze-derbend#
  270. disp_locale=fr : display_name=azéri #arabe, Usage privé=aze-derbend#
  271. disp_locale=de : display_name=Aserbaidschanisch #Arabisch, Privatnutzung=aze-derbend#
  272. -----------------
  273. locale='zh-min'
  274. disp_locale=en : display_name=Chinese #MIN#
  275. disp_locale=fr : display_name=chinois #MIN#
  276. disp_locale=de : display_name=Chinesisch #MIN#
  277. -----------------
  278. locale='zh-min-nan-Hant-CN'
  279. disp_locale=en : display_name=Chinese #MIN, NAN_HANT_CN#
  280. disp_locale=fr : display_name=chinois #MIN, NAN_HANT_CN#
  281. disp_locale=de : display_name=Chinesisch #MIN, NAN_HANT_CN#
  282. -----------------
  283. locale='x-whatever'
  284. disp_locale=en : display_name=x-whatever #Private-Use=whatever#
  285. disp_locale=fr : display_name=x-whatever #Usage privé=whatever#
  286. disp_locale=de : display_name=x-whatever #Privatnutzung=whatever#
  287. -----------------
  288. locale='qaa-Qaaa-QM-x-southern'
  289. disp_locale=en : display_name=qaa #Qaaa, QM, Private-Use=southern#
  290. disp_locale=fr : display_name=qaa #Qaaa, QM, Usage privé=southern#
  291. disp_locale=de : display_name=qaa #Qaaa, QM, Privatnutzung=southern#
  292. -----------------
  293. locale='sr-Latn-QM'
  294. disp_locale=en : display_name=Serbian #Latin, QM#
  295. disp_locale=fr : display_name=serbe #latin, QM#
  296. disp_locale=de : display_name=Serbisch #Lateinisch, QM#
  297. -----------------
  298. locale='sr-Qaaa-CS'
  299. disp_locale=en : display_name=Serbian #Qaaa, Serbia [aA]nd Montenegro#
  300. disp_locale=fr : display_name=serbe #Qaaa, Serbie-et-Monténégro#
  301. disp_locale=de : display_name=Serbisch #Qaaa, Serbien und Montenegro#
  302. -----------------
  303. locale='en-US-u-islamCal'
  304. disp_locale=en : display_name=English #United States, attribute=islamcal#
  305. disp_locale=fr : display_name=anglais #États-Unis, attribute=islamcal#
  306. disp_locale=de : display_name=Englisch #Vereinigte Staaten, attribute=islamcal#
  307. -----------------
  308. locale='zh-CN-a-myExt-x-private'
  309. disp_locale=en : display_name=Chinese #China, a=myext, Private-Use=private#
  310. disp_locale=fr : display_name=chinois #Chine, a=myext, Usage privé=private#
  311. disp_locale=de : display_name=Chinesisch #China, a=myext, Privatnutzung=private#
  312. -----------------
  313. locale='en-a-myExt-b-another'
  314. disp_locale=en : display_name=English #a=myext, b=another#
  315. disp_locale=fr : display_name=anglais #a=myext, b=another#
  316. disp_locale=de : display_name=Englisch #a=myext, b=another#
  317. -----------------
  318. locale='de-419-DE'
  319. disp_locale=en : display_name=German #Latin America, DE#
  320. disp_locale=fr : display_name=allemand #Amérique latine, DE#
  321. disp_locale=de : display_name=Deutsch #Lateinamerika, DE#
  322. -----------------
  323. locale='a-DE'
  324. disp_locale=en : display_name=a #Germany#
  325. disp_locale=fr : display_name=a #Allemagne#
  326. disp_locale=de : display_name=a #Deutschland#
  327. -----------------
  328. locale='ar-a-aaa-b-bbb-a-ccc'
  329. disp_locale=en : display_name=Arabic #a=aaa, b=bbb#
  330. disp_locale=fr : display_name=arabe #a=aaa, b=bbb#
  331. disp_locale=de : display_name=Arabisch #a=aaa, b=bbb#
  332. -----------------