locale_get_display_name5.phpt 12 KB

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