You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

274 lines
7.7 KiB

  1. --TEST--
  2. locale_get_display_variant()
  3. --SKIPIF--
  4. <?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?>
  5. --FILE--
  6. <?php
  7. /*
  8. * Try getting the display_variant for different locales
  9. * with Procedural and Object methods.
  10. */
  11. function ut_main()
  12. {
  13. $res_str = '';
  14. $disp_locales=array('en','fr','de');
  15. $locales = array(
  16. 'uk-ua_CALIFORNIA@currency=;currency=GRN',
  17. 'root',
  18. 'uk@currency=EURO',
  19. 'Hindi',
  20. //Simple language subtag
  21. 'de',
  22. 'fr',
  23. 'ja',
  24. 'i-enochian', //(example of a grandfathered tag)
  25. //Language subtag plus Script subtag:
  26. 'zh-Hant',
  27. 'zh-Hans',
  28. 'sr-Cyrl',
  29. 'sr-Latn',
  30. //Language-Script-Region
  31. 'zh-Hans-CN',
  32. 'sr-Latn-CS',
  33. //Language-Variant
  34. 'sl-rozaj',
  35. 'sl-nedis',
  36. //Language-Region-Variant
  37. 'de-CH-1901',
  38. 'sl-IT-nedis',
  39. //Language-Script-Region-Variant
  40. 'sl-Latn-IT-nedis',
  41. //Language-Region:
  42. 'de-DE',
  43. 'en-US',
  44. 'es-419',
  45. //Private use subtags:
  46. 'de-CH-x-phonebk',
  47. 'az-Arab-x-AZE-derbend',
  48. //Extended language subtags
  49. 'zh-min',
  50. 'zh-min-nan-Hant-CN',
  51. //Private use registry values
  52. 'x-whatever',
  53. 'qaa-Qaaa-QM-x-southern',
  54. 'sr-Latn-QM',
  55. 'sr-Qaaa-CS',
  56. /*Tags that use extensions (examples ONLY: extensions MUST be defined
  57. by revision or update to this document or by RFC): */
  58. 'en-US-u-islamCal',
  59. 'zh-CN-a-myExt-x-private',
  60. 'en-a-myExt-b-another',
  61. //Some Invalid Tags:
  62. 'de-419-DE',
  63. 'a-DE',
  64. 'ar-a-aaa-b-bbb-a-ccc'
  65. );
  66. $res_str = '';
  67. foreach( $locales as $locale )
  68. {
  69. $res_str .= "locale='$locale'\n";
  70. foreach( $disp_locales as $disp_locale )
  71. {
  72. $scr = ut_loc_get_display_variant( $locale ,$disp_locale );
  73. $res_str .= "disp_locale=$disp_locale : display_variant=$scr";
  74. $res_str .= "\n";
  75. }
  76. $res_str .= "-----------------\n";
  77. }
  78. return $res_str;
  79. }
  80. include_once( 'ut_common.inc' );
  81. ut_run();
  82. ?>
  83. --EXPECTREGEX--
  84. locale='uk-ua_CALIFORNIA@currency=;currency=GRN'
  85. disp_locale=en : display_variant=CALIFORNIA
  86. disp_locale=fr : display_variant=CALIFORNIA
  87. disp_locale=de : display_variant=CALIFORNIA
  88. -----------------
  89. locale='root'
  90. disp_locale=en : display_variant=
  91. disp_locale=fr : display_variant=
  92. disp_locale=de : display_variant=
  93. -----------------
  94. locale='uk@currency=EURO'
  95. disp_locale=en : display_variant=
  96. disp_locale=fr : display_variant=
  97. disp_locale=de : display_variant=
  98. -----------------
  99. locale='Hindi'
  100. disp_locale=en : display_variant=
  101. disp_locale=fr : display_variant=
  102. disp_locale=de : display_variant=
  103. -----------------
  104. locale='de'
  105. disp_locale=en : display_variant=
  106. disp_locale=fr : display_variant=
  107. disp_locale=de : display_variant=
  108. -----------------
  109. locale='fr'
  110. disp_locale=en : display_variant=
  111. disp_locale=fr : display_variant=
  112. disp_locale=de : display_variant=
  113. -----------------
  114. locale='ja'
  115. disp_locale=en : display_variant=
  116. disp_locale=fr : display_variant=
  117. disp_locale=de : display_variant=
  118. -----------------
  119. locale='i-enochian'
  120. disp_locale=en : display_variant=
  121. disp_locale=fr : display_variant=
  122. disp_locale=de : display_variant=
  123. -----------------
  124. locale='zh-Hant'
  125. disp_locale=en : display_variant=
  126. disp_locale=fr : display_variant=
  127. disp_locale=de : display_variant=
  128. -----------------
  129. locale='zh-Hans'
  130. disp_locale=en : display_variant=
  131. disp_locale=fr : display_variant=
  132. disp_locale=de : display_variant=
  133. -----------------
  134. locale='sr-Cyrl'
  135. disp_locale=en : display_variant=
  136. disp_locale=fr : display_variant=
  137. disp_locale=de : display_variant=
  138. -----------------
  139. locale='sr-Latn'
  140. disp_locale=en : display_variant=
  141. disp_locale=fr : display_variant=
  142. disp_locale=de : display_variant=
  143. -----------------
  144. locale='zh-Hans-CN'
  145. disp_locale=en : display_variant=
  146. disp_locale=fr : display_variant=
  147. disp_locale=de : display_variant=
  148. -----------------
  149. locale='sr-Latn-CS'
  150. disp_locale=en : display_variant=
  151. disp_locale=fr : display_variant=
  152. disp_locale=de : display_variant=
  153. -----------------
  154. locale='sl-rozaj'
  155. disp_locale=en : display_variant=
  156. disp_locale=fr : display_variant=
  157. disp_locale=de : display_variant=
  158. -----------------
  159. locale='sl-nedis'
  160. disp_locale=en : display_variant=
  161. disp_locale=fr : display_variant=
  162. disp_locale=de : display_variant=
  163. -----------------
  164. locale='de-CH-1901'
  165. disp_locale=en : display_variant=Traditional German orthography
  166. disp_locale=fr : display_variant=orthographe allemande traditionnelle
  167. disp_locale=de : display_variant=(1901|[Aa]lte deutsche Rechtschreibung)
  168. -----------------
  169. locale='sl-IT-nedis'
  170. disp_locale=en : display_variant=Natisone dialect
  171. disp_locale=fr : display_variant=dialecte de Natisone
  172. disp_locale=de : display_variant=(NEDIS|Natisone-Dialekt)
  173. -----------------
  174. locale='sl-Latn-IT-nedis'
  175. disp_locale=en : display_variant=Natisone dialect
  176. disp_locale=fr : display_variant=dialecte de Natisone
  177. disp_locale=de : display_variant=(NEDIS|Natisone-Dialekt)
  178. -----------------
  179. locale='de-DE'
  180. disp_locale=en : display_variant=
  181. disp_locale=fr : display_variant=
  182. disp_locale=de : display_variant=
  183. -----------------
  184. locale='en-US'
  185. disp_locale=en : display_variant=
  186. disp_locale=fr : display_variant=
  187. disp_locale=de : display_variant=
  188. -----------------
  189. locale='es-419'
  190. disp_locale=en : display_variant=
  191. disp_locale=fr : display_variant=
  192. disp_locale=de : display_variant=
  193. -----------------
  194. locale='de-CH-x-phonebk'
  195. disp_locale=en : display_variant=X_PHONEBK
  196. disp_locale=fr : display_variant=X_PHONEBK
  197. disp_locale=de : display_variant=X_PHONEBK
  198. -----------------
  199. locale='az-Arab-x-AZE-derbend'
  200. disp_locale=en : display_variant=(AZE_DERBEND)?
  201. disp_locale=fr : display_variant=(AZE_DERBEND)?
  202. disp_locale=de : display_variant=(AZE_DERBEND)?
  203. -----------------
  204. locale='zh-min'
  205. disp_locale=en : display_variant=
  206. disp_locale=fr : display_variant=
  207. disp_locale=de : display_variant=
  208. -----------------
  209. locale='zh-min-nan-Hant-CN'
  210. disp_locale=en : display_variant=NAN_HANT_CN
  211. disp_locale=fr : display_variant=NAN_HANT_CN
  212. disp_locale=de : display_variant=NAN_HANT_CN
  213. -----------------
  214. locale='x-whatever'
  215. disp_locale=en : display_variant=
  216. disp_locale=fr : display_variant=
  217. disp_locale=de : display_variant=
  218. -----------------
  219. locale='qaa-Qaaa-QM-x-southern'
  220. disp_locale=en : display_variant=X_SOUTHERN
  221. disp_locale=fr : display_variant=X_SOUTHERN
  222. disp_locale=de : display_variant=X_SOUTHERN
  223. -----------------
  224. locale='sr-Latn-QM'
  225. disp_locale=en : display_variant=
  226. disp_locale=fr : display_variant=
  227. disp_locale=de : display_variant=
  228. -----------------
  229. locale='sr-Qaaa-CS'
  230. disp_locale=en : display_variant=
  231. disp_locale=fr : display_variant=
  232. disp_locale=de : display_variant=
  233. -----------------
  234. locale='en-US-u-islamCal'
  235. disp_locale=en : display_variant=U_ISLAMCAL
  236. disp_locale=fr : display_variant=U_ISLAMCAL
  237. disp_locale=de : display_variant=U_ISLAMCAL
  238. -----------------
  239. locale='zh-CN-a-myExt-x-private'
  240. disp_locale=en : display_variant=A_MYEXT_X_PRIVATE
  241. disp_locale=fr : display_variant=A_MYEXT_X_PRIVATE
  242. disp_locale=de : display_variant=A_MYEXT_X_PRIVATE
  243. -----------------
  244. locale='en-a-myExt-b-another'
  245. disp_locale=en : display_variant=(MYEXT_B_ANOTHER)?
  246. disp_locale=fr : display_variant=(MYEXT_B_ANOTHER)?
  247. disp_locale=de : display_variant=(MYEXT_B_ANOTHER)?
  248. -----------------
  249. locale='de-419-DE'
  250. disp_locale=en : display_variant=DE
  251. disp_locale=fr : display_variant=DE
  252. disp_locale=de : display_variant=DE
  253. -----------------
  254. locale='a-DE'
  255. disp_locale=en : display_variant=
  256. disp_locale=fr : display_variant=
  257. disp_locale=de : display_variant=
  258. -----------------
  259. locale='ar-a-aaa-b-bbb-a-ccc'
  260. disp_locale=en : display_variant=(AAA_B_BBB_A_CCC)?
  261. disp_locale=fr : display_variant=(AAA_B_BBB_A_CCC)?
  262. disp_locale=de : display_variant=(AAA_B_BBB_A_CCC)?
  263. -----------------