locale_compose_locale.phpt 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  1. --TEST--
  2. locale_compose_locale()
  3. --EXTENSIONS--
  4. intl
  5. --FILE--
  6. <?php
  7. /*
  8. * Try parsing different Locales
  9. * with Procedural and Object methods.
  10. */
  11. function ut_main()
  12. {
  13. $loc_parts_arr1 = array(
  14. Locale::LANG_TAG =>'sl' ,
  15. Locale::SCRIPT_TAG =>'Latn' ,
  16. Locale::REGION_TAG =>'IT'
  17. );
  18. $loc_parts_arr2 = array(
  19. Locale::LANG_TAG =>'de' ,
  20. Locale::REGION_TAG =>'DE'
  21. );
  22. $loc_parts_arr3 = array(
  23. Locale::LANG_TAG =>'hi'
  24. );
  25. $loc_parts_arr4 = array(
  26. Locale::LANG_TAG =>'zh' ,
  27. Locale::SCRIPT_TAG =>'Hans' ,
  28. Locale::REGION_TAG =>'CN'
  29. );
  30. $loc_parts_arr5 = array(
  31. Locale::LANG_TAG =>'es' ,
  32. Locale::SCRIPT_TAG =>'Hans' ,
  33. Locale::REGION_TAG =>'CN'
  34. );
  35. $loc_parts_arr6 = array(
  36. Locale::LANG_TAG =>'en' ,
  37. Locale::SCRIPT_TAG =>'Hans' ,
  38. Locale::REGION_TAG =>'CN',
  39. Locale::VARIANT_TAG.'14' =>'rozaj' ,
  40. 'variant1'=>'nedis'
  41. );
  42. $loc_parts_arr7 = array(
  43. Locale::LANG_TAG =>'en' ,
  44. Locale::SCRIPT_TAG =>'Hans' ,
  45. Locale::REGION_TAG =>'CN',
  46. 'variant14'=>'rozaj' ,
  47. 'variant1'=>'nedis' ,
  48. 'extlang0'=>'lng' ,
  49. 'extlang1'=>'ing'
  50. );
  51. $loc_parts_arr8 = array(
  52. Locale::LANG_TAG =>'en' ,
  53. Locale::SCRIPT_TAG =>'Hans' ,
  54. Locale::REGION_TAG =>'CN',
  55. 'variant14'=>'rozaj' ,
  56. 'variant1'=>'nedis' ,
  57. 'extlang0'=>'lng' ,
  58. 'extlang1'=>'ing',
  59. 'private7'=>'prv1' ,
  60. 'private9'=>'prv2'
  61. );
  62. $loc_parts_arr9 = array(
  63. Locale::REGION_TAG =>'DE'
  64. );
  65. $loc_parts_arr10 = array(
  66. Locale::LANG_TAG => 45,
  67. Locale::REGION_TAG => false,
  68. Locale::SCRIPT_TAG => 15
  69. );
  70. $loc_parts_arr11 = array(
  71. Locale::LANG_TAG =>'de' ,
  72. Locale::REGION_TAG =>'DE',
  73. 'private0' => 13,
  74. 'variant1' => array(),
  75. 'extlang2' => false
  76. );
  77. $loc_parts_arr12 = array(
  78. Locale::LANG_TAG =>'en' ,
  79. Locale::SCRIPT_TAG =>'Hans' ,
  80. Locale::REGION_TAG =>'CN',
  81. Locale::VARIANT_TAG => array('nedis', 'rozaj'),
  82. Locale::PRIVATE_TAG => array('prv1', 'prv2'),
  83. Locale::EXTLANG_TAG => array('lng', 'ing')
  84. );
  85. $loc_parts_arr = array(
  86. 'loc1' => $loc_parts_arr1 ,
  87. 'loc2' => $loc_parts_arr2 ,
  88. 'loc3' => $loc_parts_arr3 ,
  89. 'loc4' => $loc_parts_arr4 ,
  90. 'loc5' => $loc_parts_arr5 ,
  91. 'loc6' => $loc_parts_arr6 ,
  92. 'loc7' => $loc_parts_arr7 ,
  93. 'loc8' => $loc_parts_arr8 ,
  94. 'loc9' => $loc_parts_arr9 ,
  95. 'loc10' => $loc_parts_arr10 ,
  96. 'loc11' => $loc_parts_arr11 ,
  97. 'loc12' => $loc_parts_arr12
  98. );
  99. error_reporting( E_ERROR );
  100. $cnt = 0;
  101. $res_str = '';
  102. foreach($loc_parts_arr as $key => $value ){
  103. $res_str .= "\n------------";
  104. $res_str .= "\nInput Array name is : loc".(++$cnt) ;
  105. /*
  106. foreach($value as $valKey => $valValue ){
  107. $res_str .= $valKey ."->".$valValue." " ;
  108. }
  109. */
  110. try {
  111. $locale = ut_loc_locale_compose( $value);
  112. $res_str .= "\n\nComposed Locale: ";
  113. if( $locale){
  114. $res_str .= "$locale";
  115. }else{
  116. $res_str .= "No values found from Locale compose due to the following error:\n";
  117. $res_str .= intl_get_error_message() ;
  118. }
  119. } catch (ValueError $exception) {
  120. echo $exception->getMessage() . "\n";
  121. }
  122. }
  123. $res_str .= "\n------------";
  124. $res_str .= "\n";
  125. return $res_str;
  126. }
  127. include_once( 'ut_common.inc' );
  128. ut_run();
  129. ?>
  130. --EXPECT--
  131. Locale::composeLocale(): Argument #1 ($subtags) must contain a "language" key
  132. locale_compose(): Argument #1 ($subtags) must contain a "language" key
  133. ------------
  134. Input Array name is : loc1
  135. Composed Locale: sl_Latn_IT
  136. ------------
  137. Input Array name is : loc2
  138. Composed Locale: de_DE
  139. ------------
  140. Input Array name is : loc3
  141. Composed Locale: hi
  142. ------------
  143. Input Array name is : loc4
  144. Composed Locale: zh_Hans_CN
  145. ------------
  146. Input Array name is : loc5
  147. Composed Locale: es_Hans_CN
  148. ------------
  149. Input Array name is : loc6
  150. Composed Locale: en_Hans_CN_nedis_rozaj
  151. ------------
  152. Input Array name is : loc7
  153. Composed Locale: en_lng_ing_Hans_CN_nedis_rozaj
  154. ------------
  155. Input Array name is : loc8
  156. Composed Locale: en_lng_ing_Hans_CN_nedis_rozaj_x_prv1_prv2
  157. ------------
  158. Input Array name is : loc9
  159. ------------
  160. Input Array name is : loc10
  161. Composed Locale: No values found from Locale compose due to the following error:
  162. locale_compose: parameter array element is not a string: U_ILLEGAL_ARGUMENT_ERROR
  163. ------------
  164. Input Array name is : loc11
  165. Composed Locale: No values found from Locale compose due to the following error:
  166. locale_compose: parameter array element is not a string: U_ILLEGAL_ARGUMENT_ERROR
  167. ------------
  168. Input Array name is : loc12
  169. Composed Locale: en_lng_ing_Hans_CN_nedis_rozaj_x_prv1_prv2
  170. ------------