locale_get_primary_language.phpt 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. --TEST--
  2. locale_get_primary_language()
  3. --SKIPIF--
  4. <?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?>
  5. --FILE--
  6. <?php
  7. /*
  8. * Try getting the prmary language for different locales
  9. * with Procedural and Object methods.
  10. */
  11. function ut_main()
  12. {
  13. $res_str = '';
  14. $locales = array(
  15. 'uk-ua_CALIFORNIA@currency=;currency=GRN',
  16. 'root',
  17. 'uk@currency=EURO',
  18. 'Hindi',
  19. //Simple language subtag
  20. 'de',
  21. 'fr',
  22. 'ja',
  23. 'i-enochian', //(example of a grandfathered tag)
  24. //Language subtag plus Script subtag:
  25. 'zh-Hant',
  26. 'zh-Hans',
  27. 'sr-Cyrl',
  28. 'sr-Latn',
  29. //Language-Script-Region
  30. 'zh-Hans-CN',
  31. 'sr-Latn-CS',
  32. //Language-Variant
  33. 'sl-rozaj',
  34. 'sl-nedis',
  35. //Language-Region-Variant
  36. 'de-CH-1901',
  37. 'sl-IT-nedis',
  38. //Language-Script-Region-Variant
  39. 'sl-Latn-IT-nedis',
  40. //Language-Region:
  41. 'de-DE',
  42. 'en-US',
  43. 'es-419',
  44. //Private use subtags:
  45. 'de-CH-x-phonebk',
  46. 'az-Arab-x-AZE-derbend',
  47. //Extended language subtags
  48. 'zh-min',
  49. 'zh-min-nan-Hant-CN',
  50. //Private use registry values
  51. 'qaa-Qaaa-QM-x-southern',
  52. 'sr-Latn-QM',
  53. 'sr-Qaaa-CS',
  54. /*Tags that use extensions (examples ONLY: extensions MUST be defined
  55. by revision or update to this document or by RFC): */
  56. 'en-US-u-islamCal',
  57. 'zh-CN-a-myExt-x-private',
  58. 'en-a-myExt-b-another',
  59. //Some Invalid Tags:
  60. 'de-419-DE',
  61. 'a-DE',
  62. 'ar-a-aaa-b-bbb-a-ccc'
  63. );
  64. $res_str = '';
  65. foreach( $locales as $locale )
  66. {
  67. $lang = ut_loc_get_primary_language( $locale);
  68. $res_str .= "$locale: primary_language='$lang'";
  69. $res_str .= "\n";
  70. }
  71. return $res_str;
  72. }
  73. include_once( 'ut_common.inc' );
  74. ut_run();
  75. ?>
  76. --EXPECT--
  77. uk-ua_CALIFORNIA@currency=;currency=GRN: primary_language='uk'
  78. root: primary_language='root'
  79. uk@currency=EURO: primary_language='uk'
  80. Hindi: primary_language='hindi'
  81. de: primary_language='de'
  82. fr: primary_language='fr'
  83. ja: primary_language='ja'
  84. i-enochian: primary_language='i-enochian'
  85. zh-Hant: primary_language='zh'
  86. zh-Hans: primary_language='zh'
  87. sr-Cyrl: primary_language='sr'
  88. sr-Latn: primary_language='sr'
  89. zh-Hans-CN: primary_language='zh'
  90. sr-Latn-CS: primary_language='sr'
  91. sl-rozaj: primary_language='sl'
  92. sl-nedis: primary_language='sl'
  93. de-CH-1901: primary_language='de'
  94. sl-IT-nedis: primary_language='sl'
  95. sl-Latn-IT-nedis: primary_language='sl'
  96. de-DE: primary_language='de'
  97. en-US: primary_language='en'
  98. es-419: primary_language='es'
  99. de-CH-x-phonebk: primary_language='de'
  100. az-Arab-x-AZE-derbend: primary_language='az'
  101. zh-min: primary_language='zh-min'
  102. zh-min-nan-Hant-CN: primary_language='zh'
  103. qaa-Qaaa-QM-x-southern: primary_language='qaa'
  104. sr-Latn-QM: primary_language='sr'
  105. sr-Qaaa-CS: primary_language='sr'
  106. en-US-u-islamCal: primary_language='en'
  107. zh-CN-a-myExt-x-private: primary_language='zh'
  108. en-a-myExt-b-another: primary_language='en'
  109. de-419-DE: primary_language='de'
  110. a-DE: primary_language='a'
  111. ar-a-aaa-b-bbb-a-ccc: primary_language='ar'