38 changed files with 2931 additions and 26 deletions
-
3ext/intl/tests/collator_create.phpt
-
82ext/intl/tests/collator_create2.phpt
-
3ext/intl/tests/collator_get_locale.phpt
-
51ext/intl/tests/collator_get_locale2.phpt
-
3ext/intl/tests/dateformat_clone.phpt
-
37ext/intl/tests/dateformat_clone2.phpt
-
5ext/intl/tests/dateformat_get_set_pattern.phpt
-
85ext/intl/tests/dateformat_get_set_pattern2.phpt
-
3ext/intl/tests/dateformat_localtime.phpt
-
3ext/intl/tests/dateformat_parse.phpt
-
3ext/intl/tests/dateformat_parse_localtime_parsepos.phpt
-
3ext/intl/tests/dateformat_parse_timestamp_parsepos.phpt
-
5ext/intl/tests/dateformat_set_timezone_id.phpt
-
76ext/intl/tests/dateformat_set_timezone_id2.phpt
-
5ext/intl/tests/formatter_format.phpt
-
130ext/intl/tests/formatter_format2.phpt
-
5ext/intl/tests/formatter_format_currency.phpt
-
50ext/intl/tests/formatter_format_currency2.phpt
-
3ext/intl/tests/formatter_get_set_attribute.phpt
-
194ext/intl/tests/formatter_get_set_attribute2.phpt
-
3ext/intl/tests/formatter_get_set_symbol.phpt
-
190ext/intl/tests/formatter_get_set_symbol2.phpt
-
3ext/intl/tests/locale_filter_matches.phpt
-
366ext/intl/tests/locale_filter_matches2.phpt
-
3ext/intl/tests/locale_get_display_name.phpt
-
342ext/intl/tests/locale_get_display_name2.phpt
-
3ext/intl/tests/locale_get_display_region.phpt
-
275ext/intl/tests/locale_get_display_region2.phpt
-
5ext/intl/tests/locale_get_display_script.phpt
-
275ext/intl/tests/locale_get_display_script2.phpt
-
3ext/intl/tests/locale_get_display_variant.phpt
-
275ext/intl/tests/locale_get_display_variant2.phpt
-
3ext/intl/tests/locale_get_keywords.phpt
-
151ext/intl/tests/locale_get_keywords2.phpt
-
3ext/intl/tests/locale_parse_locale.phpt
-
203ext/intl/tests/locale_parse_locale2.phpt
-
3ext/intl/tests/msgfmt_fail.phpt
-
102ext/intl/tests/msgfmt_fail2.phpt
@ -0,0 +1,82 @@ |
|||
--TEST-- |
|||
create() icu >= 4.8 |
|||
--SKIPIF-- |
|||
<?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?> |
|||
<?php if(version_compare(INTL_ICU_VERSION, '4.8') < 0) print 'skip'; ?> |
|||
--FILE-- |
|||
<?php |
|||
|
|||
/* |
|||
* Try creating collator with different locales |
|||
* with Procedural and Object methods. |
|||
*/ |
|||
|
|||
function ut_main() |
|||
{ |
|||
$res_str = ''; |
|||
|
|||
$locales = array( |
|||
'EN-US-ODESSA', |
|||
'UK_UA_ODESSA', |
|||
'uk-ua_CALIFORNIA@currency=;currency=GRN', |
|||
'', |
|||
'root', |
|||
'uk@currency=EURO', |
|||
'1234567891113151719212325272931333537394143454749515357596163656769717375777981838587899193959799' |
|||
); |
|||
|
|||
foreach( $locales as $locale ) |
|||
{ |
|||
// Create Collator with the current locale. |
|||
$coll = ut_coll_create( $locale ); |
|||
if( !is_object($coll) ) |
|||
{ |
|||
$res_str .= "Error creating collator with '$locale' locale: " . |
|||
intl_get_error_message() . "\n"; |
|||
continue; |
|||
} |
|||
|
|||
// Get the requested, valid and actual locales. |
|||
$vloc = ut_coll_get_locale( $coll, Locale::VALID_LOCALE ); |
|||
$aloc = ut_coll_get_locale( $coll, Locale::ACTUAL_LOCALE ); |
|||
|
|||
// Show them. |
|||
$res_str .= "Locale: '$locale'\n" . |
|||
" ULOC_REQUESTED_LOCALE = '$locale'\n" . |
|||
" ULOC_VALID_LOCALE = '$vloc'\n" . |
|||
" ULOC_ACTUAL_LOCALE = '$aloc'\n"; |
|||
} |
|||
|
|||
return $res_str; |
|||
} |
|||
|
|||
include_once( 'ut_common.inc' ); |
|||
ut_run(); |
|||
|
|||
?> |
|||
--EXPECTF-- |
|||
Locale: 'EN-US-ODESSA' |
|||
ULOC_REQUESTED_LOCALE = 'EN-US-ODESSA' |
|||
ULOC_VALID_LOCALE = 'en_US' |
|||
ULOC_ACTUAL_LOCALE = 'root' |
|||
Locale: 'UK_UA_ODESSA' |
|||
ULOC_REQUESTED_LOCALE = 'UK_UA_ODESSA' |
|||
ULOC_VALID_LOCALE = 'uk_UA' |
|||
ULOC_ACTUAL_LOCALE = 'uk' |
|||
Locale: 'uk-ua_CALIFORNIA@currency=;currency=GRN' |
|||
ULOC_REQUESTED_LOCALE = 'uk-ua_CALIFORNIA@currency=;currency=GRN' |
|||
ULOC_VALID_LOCALE = 'uk_UA' |
|||
ULOC_ACTUAL_LOCALE = 'uk' |
|||
Locale: '' |
|||
ULOC_REQUESTED_LOCALE = '' |
|||
ULOC_VALID_LOCALE = '%s' |
|||
ULOC_ACTUAL_LOCALE = '%s' |
|||
Locale: 'root' |
|||
ULOC_REQUESTED_LOCALE = 'root' |
|||
ULOC_VALID_LOCALE = 'root' |
|||
ULOC_ACTUAL_LOCALE = 'root' |
|||
Locale: 'uk@currency=EURO' |
|||
ULOC_REQUESTED_LOCALE = 'uk@currency=EURO' |
|||
ULOC_VALID_LOCALE = 'uk' |
|||
ULOC_ACTUAL_LOCALE = 'uk' |
|||
Error creating collator with '1234567891113151719212325272931333537394143454749515357596163656769717375777981838587899193959799' locale: Locale string too long, should be no longer than 80 characters: U_ILLEGAL_ARGUMENT_ERROR |
|||
@ -0,0 +1,51 @@ |
|||
--TEST-- |
|||
get_locale() icu >= 4.8 |
|||
--SKIPIF-- |
|||
<?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?> |
|||
<?php if(version_compare(INTL_ICU_VERSION, '4.8') < 0) print 'skip'; ?> |
|||
--FILE-- |
|||
<?php |
|||
|
|||
/* |
|||
* Try to specify valid and invalid locale types when getting locale. |
|||
*/ |
|||
|
|||
function ut_main() |
|||
{ |
|||
$locales = array( |
|||
Locale::VALID_LOCALE, |
|||
Locale::ACTUAL_LOCALE, |
|||
100, |
|||
-100, |
|||
-9999999999999, |
|||
9999999999999, |
|||
1.2, |
|||
); |
|||
|
|||
$coll = ut_coll_create( 'en_US' ); |
|||
$res_str = ''; |
|||
|
|||
foreach( $locales as $locale ) |
|||
{ |
|||
$rc = ut_coll_get_locale( $coll, $locale ); |
|||
|
|||
$res_str .= sprintf( |
|||
"Locale of type %s is %s\n", |
|||
dump( $locale ), |
|||
dump( $rc ) ); |
|||
} |
|||
|
|||
return $res_str . "\n"; |
|||
} |
|||
|
|||
include_once( 'ut_common.inc' ); |
|||
ut_run(); |
|||
?> |
|||
--EXPECT-- |
|||
Locale of type 1 is 'en_US' |
|||
Locale of type 0 is 'root' |
|||
Locale of type 100 is false |
|||
Locale of type -100 is false |
|||
Locale of type -9999999999999 is false |
|||
Locale of type 9999999999999 is false |
|||
Locale of type 1.2 is 'en_US' |
|||
@ -0,0 +1,37 @@ |
|||
--TEST-- |
|||
Cloning datefmt icu >= 4.8 |
|||
--SKIPIF-- |
|||
<?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?> |
|||
<?php if(version_compare(INTL_ICU_VERSION, '4.8') < 0) print 'skip'; ?> |
|||
--FILE-- |
|||
<?php |
|||
include_once( 'ut_common.inc' ); |
|||
$GLOBALS['oo-mode'] = true; |
|||
$res_str = ''; |
|||
/* |
|||
* Clone |
|||
*/ |
|||
$start_pattern = 'dd-MM-YY'; |
|||
$fmt = ut_datefmt_create( "en-US", IntlDateFormatter::FULL, IntlDateFormatter::FULL, 'America/New_York', IntlDateFormatter::GREGORIAN , $start_pattern ); |
|||
|
|||
$formatted = ut_datefmt_format($fmt,0); |
|||
$res_str .= "\nResult of formatting timestamp=0 is : \n$formatted"; |
|||
|
|||
$fmt_clone = clone $fmt; |
|||
ut_datefmt_set_pattern( $fmt , 'yyyy-DDD.hh:mm:ss z' ); |
|||
|
|||
$formatted = ut_datefmt_format($fmt,0); |
|||
$res_str .= "\nResult of formatting timestamp=0 is : \n$formatted"; |
|||
$formatted = ut_datefmt_format($fmt_clone,0); |
|||
$res_str .= "\nResult of clone formatting timestamp=0 is : \n$formatted"; |
|||
|
|||
echo $res_str; |
|||
|
|||
?> |
|||
--EXPECTF-- |
|||
Result of formatting timestamp=0 is : |
|||
31-12-70 |
|||
Result of formatting timestamp=0 is : |
|||
1969-365.07:00:00 EST |
|||
Result of clone formatting timestamp=0 is : |
|||
31-12-70 |
|||
@ -0,0 +1,85 @@ |
|||
--TEST-- |
|||
datefmt_get_pattern_code and datefmt_set_pattern_code() icu >= 4.8 |
|||
--SKIPIF-- |
|||
<?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?> |
|||
<?php if(version_compare(INTL_ICU_VERSION, '4.8') < 0) print 'skip'; ?> |
|||
--FILE-- |
|||
|
|||
<?php |
|||
|
|||
/* |
|||
* Test for the datefmt_get_pattern & datefmt_set_pattern function |
|||
*/ |
|||
|
|||
|
|||
function ut_main() |
|||
{ |
|||
$pattern_arr = array ( |
|||
'DD-MM-YYYY hh:mm:ss', |
|||
'yyyy-DDD.hh:mm:ss z', |
|||
"yyyy/MM/dd", |
|||
"yyyyMMdd" |
|||
); |
|||
|
|||
$res_str = ''; |
|||
|
|||
$start_pattern = 'dd-MM-YY'; |
|||
$res_str .= "\nCreating IntlDateFormatter with pattern = $start_pattern "; |
|||
//$fmt = ut_datefmt_create( "en-US", IntlDateFormatter::SHORT, IntlDateFormatter::SHORT , 'America/New_York', IntlDateFormatter::GREGORIAN , $start_pattern ); |
|||
$fmt = ut_datefmt_create( "en-US", IntlDateFormatter::FULL, IntlDateFormatter::FULL, 'America/New_York', IntlDateFormatter::GREGORIAN , $start_pattern ); |
|||
$pattern = ut_datefmt_get_pattern( $fmt); |
|||
$res_str .= "\nAfter call to get_pattern : pattern= $pattern"; |
|||
$formatted = ut_datefmt_format($fmt,0); |
|||
$res_str .= "\nResult of formatting timestamp=0 is : \n$formatted"; |
|||
|
|||
|
|||
foreach( $pattern_arr as $pattern_entry ) |
|||
{ |
|||
$res_str .= "\n-------------------"; |
|||
$res_str .= "\nSetting IntlDateFormatter with pattern = $pattern_entry "; |
|||
ut_datefmt_set_pattern( $fmt , $pattern_entry ); |
|||
$pattern = ut_datefmt_get_pattern( $fmt); |
|||
$res_str .= "\nAfter call to get_pattern : pattern= $pattern"; |
|||
$formatted = ut_datefmt_format($fmt,0); |
|||
$res_str .= "\nResult of formatting timestamp=0 with the new pattern is : \n$formatted"; |
|||
$res_str .= "\n"; |
|||
|
|||
} |
|||
|
|||
return $res_str; |
|||
|
|||
} |
|||
|
|||
include_once( 'ut_common.inc' ); |
|||
|
|||
// Run the test |
|||
ut_run(); |
|||
?> |
|||
--EXPECT-- |
|||
Creating IntlDateFormatter with pattern = dd-MM-YY |
|||
After call to get_pattern : pattern= dd-MM-YY |
|||
Result of formatting timestamp=0 is : |
|||
31-12-70 |
|||
------------------- |
|||
Setting IntlDateFormatter with pattern = DD-MM-YYYY hh:mm:ss |
|||
After call to get_pattern : pattern= DD-MM-YYYY hh:mm:ss |
|||
Result of formatting timestamp=0 with the new pattern is : |
|||
365-12-1970 07:00:00 |
|||
|
|||
------------------- |
|||
Setting IntlDateFormatter with pattern = yyyy-DDD.hh:mm:ss z |
|||
After call to get_pattern : pattern= yyyy-DDD.hh:mm:ss z |
|||
Result of formatting timestamp=0 with the new pattern is : |
|||
1969-365.07:00:00 EST |
|||
|
|||
------------------- |
|||
Setting IntlDateFormatter with pattern = yyyy/MM/dd |
|||
After call to get_pattern : pattern= yyyy/MM/dd |
|||
Result of formatting timestamp=0 with the new pattern is : |
|||
1969/12/31 |
|||
|
|||
------------------- |
|||
Setting IntlDateFormatter with pattern = yyyyMMdd |
|||
After call to get_pattern : pattern= yyyyMMdd |
|||
Result of formatting timestamp=0 with the new pattern is : |
|||
19691231 |
|||
@ -0,0 +1,76 @@ |
|||
--TEST-- |
|||
datefmt_set_timezone_id_code() icu >= 4.8 |
|||
--SKIPIF-- |
|||
<?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?> |
|||
<?php if(version_compare(INTL_ICU_VERSION, '4.8') < 0) print 'skip'; ?> |
|||
--FILE-- |
|||
<?php |
|||
|
|||
/* |
|||
* Test for the datefmt_set_timezone_id function |
|||
*/ |
|||
|
|||
|
|||
function ut_main() |
|||
{ |
|||
$timezone_id_arr = array ( |
|||
'America/New_York', |
|||
'America/Los_Angeles', |
|||
'America/Chicago', |
|||
'CN' |
|||
); |
|||
$timestamp_entry = 0; |
|||
|
|||
$res_str = ''; |
|||
|
|||
$fmt = ut_datefmt_create( "en_US", IntlDateFormatter::FULL, IntlDateFormatter::FULL, 'America/San_Francisco' , IntlDateFormatter::GREGORIAN ); |
|||
$timezone_id = ut_datefmt_get_timezone_id( $fmt ); |
|||
$res_str .= "\nAfter creation of the dateformatter : timezone_id= $timezone_id\n"; |
|||
|
|||
foreach( $timezone_id_arr as $timezone_id_entry ) |
|||
{ |
|||
|
|||
$res_str .= "-----------"; |
|||
$res_str .= "\nTrying to set timezone_id= $timezone_id_entry"; |
|||
ut_datefmt_set_timezone_id( $fmt , $timezone_id_entry ); |
|||
$timezone_id = ut_datefmt_get_timezone_id( $fmt ); |
|||
$res_str .= "\nAfter call to set_timezone_id : timezone_id= $timezone_id"; |
|||
$formatted = ut_datefmt_format( $fmt, 0); |
|||
$res_str .= "\nFormatting timestamp=0 resulted in $formatted"; |
|||
$formatted = ut_datefmt_format( $fmt, 3600); |
|||
$res_str .= "\nFormatting timestamp=3600 resulted in $formatted"; |
|||
$res_str .= "\n"; |
|||
|
|||
} |
|||
|
|||
return $res_str; |
|||
|
|||
} |
|||
|
|||
include_once( 'ut_common.inc' ); |
|||
|
|||
// Run the test |
|||
ut_run(); |
|||
?> |
|||
--EXPECT-- |
|||
After creation of the dateformatter : timezone_id= America/San_Francisco |
|||
----------- |
|||
Trying to set timezone_id= America/New_York |
|||
After call to set_timezone_id : timezone_id= America/New_York |
|||
Formatting timestamp=0 resulted in Wednesday, December 31, 1969 7:00:00 PM Eastern Standard Time |
|||
Formatting timestamp=3600 resulted in Wednesday, December 31, 1969 8:00:00 PM Eastern Standard Time |
|||
----------- |
|||
Trying to set timezone_id= America/Los_Angeles |
|||
After call to set_timezone_id : timezone_id= America/Los_Angeles |
|||
Formatting timestamp=0 resulted in Wednesday, December 31, 1969 4:00:00 PM Pacific Standard Time |
|||
Formatting timestamp=3600 resulted in Wednesday, December 31, 1969 5:00:00 PM Pacific Standard Time |
|||
----------- |
|||
Trying to set timezone_id= America/Chicago |
|||
After call to set_timezone_id : timezone_id= America/Chicago |
|||
Formatting timestamp=0 resulted in Wednesday, December 31, 1969 6:00:00 PM Central Standard Time |
|||
Formatting timestamp=3600 resulted in Wednesday, December 31, 1969 7:00:00 PM Central Standard Time |
|||
----------- |
|||
Trying to set timezone_id= CN |
|||
After call to set_timezone_id : timezone_id= CN |
|||
Formatting timestamp=0 resulted in Thursday, January 1, 1970 12:00:00 AM GMT |
|||
Formatting timestamp=3600 resulted in Thursday, January 1, 1970 1:00:00 AM GMT |
|||
@ -0,0 +1,130 @@ |
|||
--TEST-- |
|||
numfmt_format() icu >= 4.8 |
|||
--SKIPIF-- |
|||
<?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?> |
|||
<?php if(version_compare(INTL_ICU_VERSION, '4.8') < 0) print 'skip'; ?> |
|||
--FILE-- |
|||
<?php |
|||
|
|||
/* |
|||
* Format a number using misc locales/patterns. |
|||
*/ |
|||
|
|||
/* |
|||
* TODO: doesn't pass on ICU 3.6 because 'ru' and 'de' locales changed |
|||
* currency and percent formatting. |
|||
*/ |
|||
|
|||
function ut_main() |
|||
{ |
|||
$styles = array( |
|||
NumberFormatter::PATTERN_DECIMAL => '##.#####################', |
|||
NumberFormatter::DECIMAL => '', |
|||
NumberFormatter::CURRENCY => '', |
|||
NumberFormatter::PERCENT => '', |
|||
NumberFormatter::SCIENTIFIC => '', |
|||
NumberFormatter::SPELLOUT => '@@@@@@@', |
|||
NumberFormatter::ORDINAL => '', |
|||
NumberFormatter::DURATION => '', |
|||
NumberFormatter::PATTERN_RULEBASED => '#####.###', |
|||
1234999, // bad one |
|||
); |
|||
|
|||
$integer = array( |
|||
NumberFormatter::ORDINAL => '', |
|||
NumberFormatter::DURATION => '', |
|||
); |
|||
$locales = array( |
|||
'en_US', |
|||
'ru_UA', |
|||
'de', |
|||
'fr', |
|||
'en_UK' |
|||
); |
|||
|
|||
$str_res = ''; |
|||
$number = 1234567.891234567890000; |
|||
|
|||
foreach( $locales as $locale ) |
|||
{ |
|||
$str_res .= "\nLocale is: $locale\n"; |
|||
foreach( $styles as $style => $pattern ) |
|||
{ |
|||
$fmt = ut_nfmt_create( $locale, $style, $pattern ); |
|||
|
|||
if(!$fmt) { |
|||
$str_res .= "Bad formatter!\n"; |
|||
continue; |
|||
} |
|||
$str_res .= dump( isset($integer[$style])?ut_nfmt_format( $fmt, $number, NumberFormatter::TYPE_INT32):ut_nfmt_format( $fmt, $number ) ) . "\n"; |
|||
} |
|||
} |
|||
return $str_res; |
|||
} |
|||
|
|||
include_once( 'ut_common.inc' ); |
|||
|
|||
// Run the test |
|||
ut_run(); |
|||
|
|||
?> |
|||
--EXPECTREGEX-- |
|||
Locale is: en_US |
|||
'1234567.89123457' |
|||
'1,234,567.891' |
|||
'\$1,234,567.89' |
|||
'123,456,789%' |
|||
'1.23456789123457E6' |
|||
'one million,? two hundred (and )?thirty-four thousand,? five hundred (and )?sixty-seven point eight nine one two three four five seven' |
|||
'1,234,567(th|ᵗʰ)' |
|||
'342:56:07' |
|||
'#####.###' |
|||
Bad formatter! |
|||
|
|||
Locale is: ru_UA |
|||
'1234567,89123457' |
|||
'1 234 567,891' |
|||
'1 234 567,89 ?(грн\.|₴)' |
|||
'123 456 789 ?%' |
|||
'1,23456789123457E6' |
|||
'один миллион двести тридцать четыре тысяч пятьсот шестьдесят семь запятая восемь девять один два три четыре пять семь' |
|||
'1 234 567.?' |
|||
'1 234 567' |
|||
'#####.###' |
|||
Bad formatter! |
|||
|
|||
Locale is: de |
|||
'1234567,89123457' |
|||
'1.234.567,891' |
|||
'(¤ )?1.234.567,89( ¤)?' |
|||
'123\.456\.789 %' |
|||
'1,23456789123457E6' |
|||
'eine Million zweihundertvierunddreißigtausendfünfhundertsiebenundsechzig Komma acht neun eins zwei drei vier fünf sieben' |
|||
'1.234.567.?' |
|||
'1.234.567' |
|||
'#####.###' |
|||
Bad formatter! |
|||
|
|||
Locale is: fr |
|||
'1234567,89123457' |
|||
'1 234 567,891' |
|||
'1 234 567,89 ¤' |
|||
'123 456 789 ?%' |
|||
'1,23456789123457E6' |
|||
'un million deux-cent-trente-quatre-mille-cinq-cent-soixante-sept virgule huit neuf un deux trois quatre cinq sept' |
|||
'1 234 567e' |
|||
'1 234 567' |
|||
'#####.###' |
|||
Bad formatter! |
|||
|
|||
Locale is: en_UK |
|||
'1234567.89123457' |
|||
'1,234,567.891' |
|||
'¤1,234,567.89' |
|||
'123,456,789%' |
|||
'1.23456789123457E6' |
|||
'one million,? two hundred (and )?thirty-four thousand,? five hundred (and )?sixty-seven point eight nine one two three four five seven' |
|||
'1,234,567(th|ᵗʰ)' |
|||
'342:56:07' |
|||
'#####.###' |
|||
Bad formatter! |
|||
@ -0,0 +1,50 @@ |
|||
--TEST-- |
|||
numfmt_format_currency() icu >= 4.8 |
|||
--SKIPIF-- |
|||
<?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?> |
|||
<?php if(version_compare(INTL_ICU_VERSION, '4.8') < 0) print 'skip'; ?> |
|||
--FILE-- |
|||
<?php |
|||
|
|||
/* |
|||
* Format a number using misc currencies/locales. |
|||
*/ |
|||
/* |
|||
* TODO: doesn't pass on ICU 3.6 because 'ru' and 'uk' locales changed |
|||
* currency formatting. |
|||
*/ |
|||
|
|||
|
|||
function ut_main() |
|||
{ |
|||
$locales = array( |
|||
'en_UK' => 'GBP', |
|||
'en_US' => 'USD', |
|||
'ru' => 'RUR', |
|||
'uk' => 'UAH', |
|||
'en' => 'UAH' |
|||
); |
|||
|
|||
$res_str = ''; |
|||
$number = 1234567.89; |
|||
|
|||
foreach( $locales as $locale => $currency ) |
|||
{ |
|||
$fmt = ut_nfmt_create( $locale, NumberFormatter::CURRENCY ); |
|||
$res_str .= "$locale: " . var_export( ut_nfmt_format_currency( $fmt, $number, $currency ), true ) . "\n"; |
|||
} |
|||
return $res_str; |
|||
} |
|||
|
|||
include_once( 'ut_common.inc' ); |
|||
|
|||
// Run the test |
|||
ut_run(); |
|||
|
|||
?> |
|||
--EXPECT-- |
|||
en_UK: '£1,234,567.89' |
|||
en_US: '$1,234,567.89' |
|||
ru: '1 234 567,89 р.' |
|||
uk: '1 234 567,89 ₴' |
|||
en: 'UAH1,234,567.89' |
|||
@ -0,0 +1,194 @@ |
|||
--TEST-- |
|||
numfmt_get/set_attribute() icu >= 4.8 |
|||
--SKIPIF-- |
|||
<?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?> |
|||
<?php if(version_compare(INTL_ICU_VERSION, '4.8') < 0) print 'skip'; ?> |
|||
--FILE-- |
|||
<?php |
|||
|
|||
/* |
|||
* Get/set various number formatting attributes. |
|||
*/ |
|||
|
|||
|
|||
function ut_main() |
|||
{ |
|||
// attr_name => array( attr, value ) |
|||
$attributes = array( |
|||
'PARSE_INT_ONLY' => array( NumberFormatter::PARSE_INT_ONLY, 1, 12345.123456 ), |
|||
'GROUPING_USED' => array( NumberFormatter::GROUPING_USED, 0, 12345.123456 ), |
|||
'DECIMAL_ALWAYS_SHOWN' => array( NumberFormatter::DECIMAL_ALWAYS_SHOWN, 1, 12345 ), |
|||
'MAX_INTEGER_DIGITS' => array( NumberFormatter::MAX_INTEGER_DIGITS, 2, 12345.123456 ), |
|||
'MIN_INTEGER_DIGITS' => array( NumberFormatter::MIN_INTEGER_DIGITS, 20, 12345.123456 ), |
|||
'INTEGER_DIGITS' => array( NumberFormatter::INTEGER_DIGITS, 7, 12345.123456 ), |
|||
'MAX_FRACTION_DIGITS' => array( NumberFormatter::MAX_FRACTION_DIGITS, 2, 12345.123456 ), |
|||
'MIN_FRACTION_DIGITS' => array( NumberFormatter::MIN_FRACTION_DIGITS, 20, 12345.123456 ), |
|||
'FRACTION_DIGITS' => array( NumberFormatter::FRACTION_DIGITS, 5, 12345.123456 ), |
|||
'MULTIPLIER' => array( NumberFormatter::MULTIPLIER, 2, 12345.123456 ), |
|||
'GROUPING_SIZE' => array( NumberFormatter::GROUPING_SIZE, 2, 12345.123456 ), |
|||
'ROUNDING_MODE' => array( NumberFormatter::ROUNDING_MODE, 1, 12345.123456 ), |
|||
'ROUNDING_INCREMENT' => array( NumberFormatter::ROUNDING_INCREMENT, (float)2, 12345.123456 ), |
|||
'FORMAT_WIDTH' => array( NumberFormatter::FORMAT_WIDTH, 27, 12345.123456 ), |
|||
'PADDING_POSITION' => array( NumberFormatter::PADDING_POSITION, 21, 12345.123456 ), |
|||
'SECONDARY_GROUPING_SIZE' => array( NumberFormatter::SECONDARY_GROUPING_SIZE, 2, 12345.123456 ), |
|||
'SIGNIFICANT_DIGITS_USED' => array( NumberFormatter::SIGNIFICANT_DIGITS_USED, 1, 12345.123456 ), |
|||
'MIN_SIGNIFICANT_DIGITS' => array( NumberFormatter::MIN_SIGNIFICANT_DIGITS, 3, 1 ), |
|||
'MAX_SIGNIFICANT_DIGITS' => array( NumberFormatter::MAX_SIGNIFICANT_DIGITS, 4, 12345.123456 ), |
|||
// 'LENIENT_PARSE' => array( NumberFormatter::LENIENT_PARSE, 2, 12345.123456 ) |
|||
); |
|||
|
|||
$res_str = ''; |
|||
|
|||
$fmt = ut_nfmt_create( "en_US", NumberFormatter::DECIMAL ); |
|||
|
|||
foreach( $attributes as $attr_name => $args ) |
|||
{ |
|||
list( $attr, $new_val, $number ) = $args; |
|||
$res_str .= "\nAttribute $attr_name\n"; |
|||
|
|||
// Get original value of the attribute. |
|||
$orig_val = ut_nfmt_get_attribute( $fmt, $attr ); |
|||
|
|||
// Format the number using the original attribute value. |
|||
$rc = ut_nfmt_format( $fmt, $number ); |
|||
|
|||
$ps = ut_nfmt_parse( $fmt, $rc ); |
|||
|
|||
$res_str .= sprintf( "Old attribute value: %s ; Format result: %s ; Parse result: %s\n", |
|||
dump( $orig_val ), |
|||
dump( $rc ), |
|||
dump( $ps ) ); |
|||
|
|||
// Set new attribute value. |
|||
$rc = ut_nfmt_set_attribute( $fmt, $attr, $new_val ); |
|||
if( $rc ) |
|||
$res_str .= "Setting attribute: ok\n"; |
|||
else |
|||
$res_str .= sprintf( "Setting attribute failed: %s\n", ut_nfmt_get_error_message( $fmt ) ); |
|||
|
|||
// Format the number using the new value. |
|||
$rc = ut_nfmt_format( $fmt, $number ); |
|||
|
|||
// Get current value of the attribute and check if it equals $new_val. |
|||
$attr_val_check = ut_nfmt_get_attribute( $fmt, $attr ); |
|||
if( $attr_val_check !== $new_val ) |
|||
$res_str .= "ERROR: New $attr_name attribute value has not been set correctly.\n"; |
|||
|
|||
$ps = ut_nfmt_parse( $fmt, $rc ); |
|||
|
|||
$res_str .= sprintf( "New attribute value: %s ; Format result: %s ; Parse result: %s\n", |
|||
dump( $new_val ), |
|||
dump( $rc ), |
|||
dump( $ps ) ); |
|||
|
|||
|
|||
// Restore original attribute of the value |
|||
if( $attr != NumberFormatter::INTEGER_DIGITS && $attr != NumberFormatter::FRACTION_DIGITS |
|||
&& $attr != NumberFormatter::FORMAT_WIDTH && $attr != NumberFormatter::SIGNIFICANT_DIGITS_USED ) |
|||
ut_nfmt_set_attribute( $fmt, $attr, $orig_val ); |
|||
} |
|||
|
|||
return $res_str; |
|||
} |
|||
|
|||
include_once( 'ut_common.inc' ); |
|||
|
|||
// Run the test |
|||
ut_run(); |
|||
|
|||
?> |
|||
--EXPECT-- |
|||
Attribute PARSE_INT_ONLY |
|||
Old attribute value: 0 ; Format result: '12,345.123' ; Parse result: 12345.123 |
|||
Setting attribute: ok |
|||
New attribute value: 1 ; Format result: '12,345.123' ; Parse result: 12345 |
|||
|
|||
Attribute GROUPING_USED |
|||
Old attribute value: 1 ; Format result: '12,345.123' ; Parse result: 12345.123 |
|||
Setting attribute: ok |
|||
New attribute value: 0 ; Format result: '12345.123' ; Parse result: 12345.123 |
|||
|
|||
Attribute DECIMAL_ALWAYS_SHOWN |
|||
Old attribute value: 0 ; Format result: '12,345' ; Parse result: 12345 |
|||
Setting attribute: ok |
|||
New attribute value: 1 ; Format result: '12,345.' ; Parse result: 12345 |
|||
|
|||
Attribute MAX_INTEGER_DIGITS |
|||
Old attribute value: 309 ; Format result: '12,345.123' ; Parse result: 12345.123 |
|||
Setting attribute: ok |
|||
New attribute value: 2 ; Format result: '45.123' ; Parse result: 45.123 |
|||
|
|||
Attribute MIN_INTEGER_DIGITS |
|||
Old attribute value: 1 ; Format result: '12,345.123' ; Parse result: 12345.123 |
|||
Setting attribute: ok |
|||
New attribute value: 20 ; Format result: '00,000,000,000,000,012,345.123' ; Parse result: 12345.123 |
|||
|
|||
Attribute INTEGER_DIGITS |
|||
Old attribute value: 1 ; Format result: '12,345.123' ; Parse result: 12345.123 |
|||
Setting attribute: ok |
|||
New attribute value: 7 ; Format result: '0,012,345.123' ; Parse result: 12345.123 |
|||
|
|||
Attribute MAX_FRACTION_DIGITS |
|||
Old attribute value: 3 ; Format result: '0,012,345.123' ; Parse result: 12345.123 |
|||
Setting attribute: ok |
|||
New attribute value: 2 ; Format result: '0,012,345.12' ; Parse result: 12345.12 |
|||
|
|||
Attribute MIN_FRACTION_DIGITS |
|||
Old attribute value: 0 ; Format result: '0,012,345.123' ; Parse result: 12345.123 |
|||
Setting attribute: ok |
|||
New attribute value: 20 ; Format result: '0,012,345.12345600000000000000' ; Parse result: 12345.123456 |
|||
|
|||
Attribute FRACTION_DIGITS |
|||
Old attribute value: 0 ; Format result: '0,012,345.123456' ; Parse result: 12345.123456 |
|||
Setting attribute: ok |
|||
New attribute value: 5 ; Format result: '0,012,345.12346' ; Parse result: 12345.12346 |
|||
|
|||
Attribute MULTIPLIER |
|||
Old attribute value: 1 ; Format result: '0,012,345.12346' ; Parse result: 12345.12346 |
|||
Setting attribute: ok |
|||
New attribute value: 2 ; Format result: '0,024,690.24691' ; Parse result: 12345.123455 |
|||
|
|||
Attribute GROUPING_SIZE |
|||
Old attribute value: 3 ; Format result: '0,012,345.12346' ; Parse result: 12345.12346 |
|||
Setting attribute: ok |
|||
New attribute value: 2 ; Format result: '0,01,23,45.12346' ; Parse result: 12345.12346 |
|||
|
|||
Attribute ROUNDING_MODE |
|||
Old attribute value: 4 ; Format result: '0,012,345.12346' ; Parse result: 12345.12346 |
|||
Setting attribute: ok |
|||
New attribute value: 1 ; Format result: '0,012,345.12345' ; Parse result: 12345.12345 |
|||
|
|||
Attribute ROUNDING_INCREMENT |
|||
Old attribute value: 0 ; Format result: '0,012,345.12346' ; Parse result: 12345.12346 |
|||
Setting attribute: ok |
|||
New attribute value: 2 ; Format result: '0,012,346.00000' ; Parse result: 12346 |
|||
|
|||
Attribute FORMAT_WIDTH |
|||
Old attribute value: 0 ; Format result: '0,012,345.12346' ; Parse result: 12345.12346 |
|||
Setting attribute: ok |
|||
New attribute value: 27 ; Format result: '************0,012,345.12346' ; Parse result: 12345.12346 |
|||
|
|||
Attribute PADDING_POSITION |
|||
Old attribute value: 0 ; Format result: '************0,012,345.12346' ; Parse result: 12345.12346 |
|||
Setting attribute: ok |
|||
New attribute value: 21 ; Format result: '0,012,345.12346' ; Parse result: 12345.12346 |
|||
|
|||
Attribute SECONDARY_GROUPING_SIZE |
|||
Old attribute value: 0 ; Format result: '************0,012,345.12346' ; Parse result: 12345.12346 |
|||
Setting attribute: ok |
|||
New attribute value: 2 ; Format result: '************00,12,345.12346' ; Parse result: 12345.12346 |
|||
|
|||
Attribute SIGNIFICANT_DIGITS_USED |
|||
Old attribute value: 0 ; Format result: '************0,012,345.12346' ; Parse result: 12345.12346 |
|||
Setting attribute: ok |
|||
New attribute value: 1 ; Format result: '*******************12,345.1' ; Parse result: 12345.1 |
|||
|
|||
Attribute MIN_SIGNIFICANT_DIGITS |
|||
Old attribute value: 1 ; Format result: '**************************1' ; Parse result: 1 |
|||
Setting attribute: ok |
|||
New attribute value: 3 ; Format result: '***********************1.00' ; Parse result: 1 |
|||
|
|||
Attribute MAX_SIGNIFICANT_DIGITS |
|||
Old attribute value: 6 ; Format result: '*******************12,345.1' ; Parse result: 12345.1 |
|||
Setting attribute: ok |
|||
New attribute value: 4 ; Format result: '*********************12,350' ; Parse result: 12350 |
|||
@ -0,0 +1,190 @@ |
|||
--TEST-- |
|||
numfmt_get/set_symbol() icu >= 4.8 |
|||
--SKIPIF-- |
|||
<?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?> |
|||
<?php if(version_compare(INTL_ICU_VERSION, '4.8') < 0) print 'skip'; ?> |
|||
--FILE-- |
|||
<?php |
|||
|
|||
/* |
|||
* Get/set symbol. |
|||
*/ |
|||
|
|||
|
|||
function ut_main() |
|||
{ |
|||
$longstr = str_repeat("blah", 10); |
|||
$symbols = array( |
|||
'DECIMAL_SEPARATOR_SYMBOL' => array( NumberFormatter::DECIMAL_SEPARATOR_SYMBOL, '_._', 12345.123456, NumberFormatter::DECIMAL ), |
|||
'GROUPING_SEPARATOR_SYMBOL' => array( NumberFormatter::GROUPING_SEPARATOR_SYMBOL, '_,_', 12345.123456, NumberFormatter::DECIMAL ), |
|||
'PATTERN_SEPARATOR_SYMBOL' => array( NumberFormatter::PATTERN_SEPARATOR_SYMBOL, '_;_', 12345.123456, NumberFormatter::DECIMAL ), |
|||
'PERCENT_SYMBOL' => array( NumberFormatter::PERCENT_SYMBOL, '_%_', 12345.123456, NumberFormatter::PERCENT ), |
|||
'ZERO_DIGIT_SYMBOL' => array( NumberFormatter::ZERO_DIGIT_SYMBOL, '_ZD_', 12345.123456, NumberFormatter::DECIMAL ), |
|||
'DIGIT_SYMBOL' => array( NumberFormatter::DIGIT_SYMBOL, '_DS_', 12345.123456, NumberFormatter::DECIMAL ), |
|||
'MINUS_SIGN_SYMBOL' => array( NumberFormatter::MINUS_SIGN_SYMBOL, '_-_', -12345.123456, NumberFormatter::DECIMAL ), |
|||
'PLUS_SIGN_SYMBOL' => array( NumberFormatter::PLUS_SIGN_SYMBOL, '_+_', 12345.123456, NumberFormatter::SCIENTIFIC ), |
|||
'CURRENCY_SYMBOL' => array( NumberFormatter::CURRENCY_SYMBOL, '_$_', 12345.123456, NumberFormatter::CURRENCY ), |
|||
'INTL_CURRENCY_SYMBOL' => array( NumberFormatter::INTL_CURRENCY_SYMBOL, '_$_', 12345.123456, NumberFormatter::CURRENCY ), |
|||
'MONETARY_SEPARATOR_SYMBOL' => array( NumberFormatter::MONETARY_SEPARATOR_SYMBOL, '_MS_', 12345.123456, NumberFormatter::CURRENCY ), |
|||
'EXPONENTIAL_SYMBOL' => array( NumberFormatter::EXPONENTIAL_SYMBOL, '_E_', 12345.123456, NumberFormatter::SCIENTIFIC ), |
|||
'PERMILL_SYMBOL' => array( NumberFormatter::PERMILL_SYMBOL, '_PS_', 12345.123456, NumberFormatter::DECIMAL ), |
|||
'PAD_ESCAPE_SYMBOL' => array( NumberFormatter::PAD_ESCAPE_SYMBOL, '_PE_', 12345.123456, NumberFormatter::DECIMAL ), |
|||
'INFINITY_SYMBOL' => array( NumberFormatter::INFINITY_SYMBOL, '_IS_', 12345.123456, NumberFormatter::DECIMAL ), |
|||
'NAN_SYMBOL' => array( NumberFormatter::NAN_SYMBOL, '_N_', 12345.123456, NumberFormatter::DECIMAL ), |
|||
'SIGNIFICANT_DIGIT_SYMBOL' => array( NumberFormatter::SIGNIFICANT_DIGIT_SYMBOL, '_SD_', 12345.123456, NumberFormatter::DECIMAL ), |
|||
'MONETARY_GROUPING_SEPARATOR_SYMBOL' => array( NumberFormatter::MONETARY_GROUPING_SEPARATOR_SYMBOL, '_MG_', 12345.123456, NumberFormatter::CURRENCY ), |
|||
'MONETARY_GROUPING_SEPARATOR_SYMBOL-2' => array( NumberFormatter::MONETARY_GROUPING_SEPARATOR_SYMBOL, " ", 12345.123456, NumberFormatter::CURRENCY ), |
|||
'MONETARY_GROUPING_SEPARATOR_SYMBOL-3' => array( NumberFormatter::MONETARY_GROUPING_SEPARATOR_SYMBOL, $longstr, 12345.123456, NumberFormatter::CURRENCY ), |
|||
); |
|||
|
|||
$res_str = ''; |
|||
|
|||
foreach( $symbols as $symb_name => $data ) |
|||
{ |
|||
list( $symb, $new_val, $number, $attr ) = $data; |
|||
|
|||
$fmt = ut_nfmt_create( 'en_US', $attr); |
|||
|
|||
$res_str .= "\nSymbol '$symb_name'\n"; |
|||
|
|||
// Get original symbol value. |
|||
$orig_val = ut_nfmt_get_symbol( $fmt, $symb ); |
|||
$res_str .= "Default symbol: [$orig_val]\n"; |
|||
|
|||
// Set a new symbol value. |
|||
$res_val = ut_nfmt_set_symbol( $fmt, $symb, $new_val ); |
|||
if( !$res_val ) |
|||
$res_str .= "set_symbol() error: " . ut_nfmt_get_error_message( $fmt ) . "\n"; |
|||
|
|||
// Get the symbol value back. |
|||
$new_val_check = ut_nfmt_get_symbol( $fmt, $symb ); |
|||
if( !$new_val_check ) |
|||
$res_str .= "get_symbol() error: " . ut_nfmt_get_error_message( $fmt ) . "\n"; |
|||
|
|||
$res_str .= "New symbol: [$new_val_check]\n"; |
|||
|
|||
// Check if the new value has been set. |
|||
if( $new_val_check !== $new_val ) |
|||
$res_str .= "ERROR: New $symb_name symbol value has not been set correctly.\n"; |
|||
|
|||
// Format the number using the new value. |
|||
$s = ut_nfmt_format( $fmt, $number ); |
|||
$res_str .= "A number formatted with the new symbol: $s\n"; |
|||
|
|||
// Restore attribute's symbol. |
|||
ut_nfmt_set_symbol( $fmt, $symb, $orig_val ); |
|||
} |
|||
$badvals = array(2147483648, -2147483648, -1, 4294901761); |
|||
foreach($badvals as $badval) { |
|||
if(ut_nfmt_get_symbol( $fmt, 2147483648 )) { |
|||
$res_str .= "Bad value $badval should return false!\n"; |
|||
} |
|||
} |
|||
return $res_str; |
|||
} |
|||
|
|||
include_once( 'ut_common.inc' ); |
|||
ut_run(); |
|||
|
|||
?> |
|||
--EXPECT-- |
|||
Symbol 'DECIMAL_SEPARATOR_SYMBOL' |
|||
Default symbol: [.] |
|||
New symbol: [_._] |
|||
A number formatted with the new symbol: 12,345_._123 |
|||
|
|||
Symbol 'GROUPING_SEPARATOR_SYMBOL' |
|||
Default symbol: [,] |
|||
New symbol: [_,_] |
|||
A number formatted with the new symbol: 12_,_345.123 |
|||
|
|||
Symbol 'PATTERN_SEPARATOR_SYMBOL' |
|||
Default symbol: [;] |
|||
New symbol: [_;_] |
|||
A number formatted with the new symbol: 12,345.123 |
|||
|
|||
Symbol 'PERCENT_SYMBOL' |
|||
Default symbol: [%] |
|||
New symbol: [_%_] |
|||
A number formatted with the new symbol: 1,234,512_%_ |
|||
|
|||
Symbol 'ZERO_DIGIT_SYMBOL' |
|||
Default symbol: [0] |
|||
New symbol: [_ZD_] |
|||
A number formatted with the new symbol: 12,345.123 |
|||
|
|||
Symbol 'DIGIT_SYMBOL' |
|||
Default symbol: [#] |
|||
New symbol: [_DS_] |
|||
A number formatted with the new symbol: 12,345.123 |
|||
|
|||
Symbol 'MINUS_SIGN_SYMBOL' |
|||
Default symbol: [-] |
|||
New symbol: [_-_] |
|||
A number formatted with the new symbol: _-_12,345.123 |
|||
|
|||
Symbol 'PLUS_SIGN_SYMBOL' |
|||
Default symbol: [+] |
|||
New symbol: [_+_] |
|||
A number formatted with the new symbol: 1.2345123456E4 |
|||
|
|||
Symbol 'CURRENCY_SYMBOL' |
|||
Default symbol: [$] |
|||
New symbol: [_$_] |
|||
A number formatted with the new symbol: _$_12,345.12 |
|||
|
|||
Symbol 'INTL_CURRENCY_SYMBOL' |
|||
Default symbol: [USD] |
|||
New symbol: [_$_] |
|||
A number formatted with the new symbol: $12,345.12 |
|||
|
|||
Symbol 'MONETARY_SEPARATOR_SYMBOL' |
|||
Default symbol: [.] |
|||
New symbol: [_MS_] |
|||
A number formatted with the new symbol: $12,345_MS_12 |
|||
|
|||
Symbol 'EXPONENTIAL_SYMBOL' |
|||
Default symbol: [E] |
|||
New symbol: [_E_] |
|||
A number formatted with the new symbol: 1.2345123456_E_4 |
|||
|
|||
Symbol 'PERMILL_SYMBOL' |
|||
Default symbol: [‰] |
|||
New symbol: [_PS_] |
|||
A number formatted with the new symbol: 12,345.123 |
|||
|
|||
Symbol 'PAD_ESCAPE_SYMBOL' |
|||
Default symbol: [*] |
|||
New symbol: [_PE_] |
|||
A number formatted with the new symbol: 12,345.123 |
|||
|
|||
Symbol 'INFINITY_SYMBOL' |
|||
Default symbol: [∞] |
|||
New symbol: [_IS_] |
|||
A number formatted with the new symbol: 12,345.123 |
|||
|
|||
Symbol 'NAN_SYMBOL' |
|||
Default symbol: [NaN] |
|||
New symbol: [_N_] |
|||
A number formatted with the new symbol: 12,345.123 |
|||
|
|||
Symbol 'SIGNIFICANT_DIGIT_SYMBOL' |
|||
Default symbol: [@] |
|||
New symbol: [_SD_] |
|||
A number formatted with the new symbol: 12,345.123 |
|||
|
|||
Symbol 'MONETARY_GROUPING_SEPARATOR_SYMBOL' |
|||
Default symbol: [,] |
|||
New symbol: [_MG_] |
|||
A number formatted with the new symbol: $12_MG_345.12 |
|||
|
|||
Symbol 'MONETARY_GROUPING_SEPARATOR_SYMBOL-2' |
|||
Default symbol: [,] |
|||
New symbol: [ ] |
|||
A number formatted with the new symbol: $12 345.12 |
|||
|
|||
Symbol 'MONETARY_GROUPING_SEPARATOR_SYMBOL-3' |
|||
Default symbol: [,] |
|||
New symbol: [blahblahblahblahblahblahblahblahblahblah] |
|||
A number formatted with the new symbol: $12blahblahblahblahblahblahblahblahblahblah345.12 |
|||
|
|||
@ -0,0 +1,366 @@ |
|||
--TEST-- |
|||
locale_filter_matches.phpt() icu >= 4.8 |
|||
--SKIPIF-- |
|||
<?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?> |
|||
<?php if(version_compare(INTL_ICU_VERSION, '4.8') < 0) print 'skip'; ?> |
|||
--FILE-- |
|||
<?php |
|||
|
|||
/* |
|||
* Try parsing different Locales |
|||
* with Procedural and Object methods. |
|||
*/ |
|||
|
|||
function ut_main() |
|||
{ |
|||
$loc_ranges = array( |
|||
'de-de', |
|||
'sl_IT', |
|||
'sl_IT_Nedis', |
|||
'jbo', |
|||
'art-lojban', |
|||
'sl_IT' |
|||
); |
|||
|
|||
$lang_tags = array( |
|||
'de-DEVA', |
|||
'de-DE-1996', |
|||
'de-DE', |
|||
'zh_Hans', |
|||
'de-CH-1996', |
|||
'sl_IT', |
|||
'sl_IT_nedis-a-kirti-x-xyz', |
|||
'sl_IT_rozaj', |
|||
'sl_IT_NEDIS_ROJAZ_1901', |
|||
'i-enochian', |
|||
'sgn-CH-de', |
|||
'art-lojban', |
|||
'i-lux', |
|||
'art-lojban', |
|||
'jbo', |
|||
'en_sl_IT' |
|||
); |
|||
|
|||
$res_str = ''; |
|||
$isCanonical = false; |
|||
foreach($loc_ranges as $loc_range){ |
|||
foreach($lang_tags as $lang_tag){ |
|||
$res_str .="--------------\n"; |
|||
$result= ut_loc_locale_filter_matches( $lang_tag , $loc_range , $isCanonical); |
|||
$res_str .= "loc_range:$loc_range matches lang_tag $lang_tag ? "; |
|||
if( $result){ |
|||
$res_str .= "YES\n"; |
|||
}else{ |
|||
$res_str .= "NO\n"; |
|||
} |
|||
//canonicalized version |
|||
$result= ut_loc_locale_filter_matches( $lang_tag , $loc_range , !($isCanonical)); |
|||
$can_loc_range = ut_loc_canonicalize($loc_range); |
|||
$can_lang_tag = ut_loc_canonicalize($lang_tag); |
|||
$res_str .= "loc_range:$can_loc_range canonically matches lang_tag $can_lang_tag ? "; |
|||
if( $result){ |
|||
$res_str .= "YES\n"; |
|||
}else{ |
|||
$res_str .= "NO\n"; |
|||
} |
|||
} |
|||
} |
|||
|
|||
$res_str .= "\n"; |
|||
return $res_str; |
|||
|
|||
} |
|||
|
|||
include_once( 'ut_common.inc' ); |
|||
ut_run(); |
|||
|
|||
?> |
|||
--EXPECT-- |
|||
-------------- |
|||
loc_range:de-de matches lang_tag de-DEVA ? NO |
|||
loc_range:de_DE canonically matches lang_tag de_Deva ? NO |
|||
-------------- |
|||
loc_range:de-de matches lang_tag de-DE-1996 ? YES |
|||
loc_range:de_DE canonically matches lang_tag de_DE_1996 ? YES |
|||
-------------- |
|||
loc_range:de-de matches lang_tag de-DE ? YES |
|||
loc_range:de_DE canonically matches lang_tag de_DE ? YES |
|||
-------------- |
|||
loc_range:de-de matches lang_tag zh_Hans ? NO |
|||
loc_range:de_DE canonically matches lang_tag zh_Hans ? NO |
|||
-------------- |
|||
loc_range:de-de matches lang_tag de-CH-1996 ? NO |
|||
loc_range:de_DE canonically matches lang_tag de_CH_1996 ? NO |
|||
-------------- |
|||
loc_range:de-de matches lang_tag sl_IT ? NO |
|||
loc_range:de_DE canonically matches lang_tag sl_IT ? NO |
|||
-------------- |
|||
loc_range:de-de matches lang_tag sl_IT_nedis-a-kirti-x-xyz ? NO |
|||
loc_range:de_DE canonically matches lang_tag sl_IT_NEDIS_A_KIRTI_X_XYZ ? NO |
|||
-------------- |
|||
loc_range:de-de matches lang_tag sl_IT_rozaj ? NO |
|||
loc_range:de_DE canonically matches lang_tag sl_IT_ROZAJ ? NO |
|||
-------------- |
|||
loc_range:de-de matches lang_tag sl_IT_NEDIS_ROJAZ_1901 ? NO |
|||
loc_range:de_DE canonically matches lang_tag sl_IT_NEDIS_ROJAZ_1901 ? NO |
|||
-------------- |
|||
loc_range:de-de matches lang_tag i-enochian ? NO |
|||
loc_range:de_DE canonically matches lang_tag @x=i-enochian ? NO |
|||
-------------- |
|||
loc_range:de-de matches lang_tag sgn-CH-de ? NO |
|||
loc_range:de_DE canonically matches lang_tag sgn_CH_DE ? NO |
|||
-------------- |
|||
loc_range:de-de matches lang_tag art-lojban ? NO |
|||
loc_range:de_DE canonically matches lang_tag jbo ? NO |
|||
-------------- |
|||
loc_range:de-de matches lang_tag i-lux ? NO |
|||
loc_range:de_DE canonically matches lang_tag lb ? NO |
|||
-------------- |
|||
loc_range:de-de matches lang_tag art-lojban ? NO |
|||
loc_range:de_DE canonically matches lang_tag jbo ? NO |
|||
-------------- |
|||
loc_range:de-de matches lang_tag jbo ? NO |
|||
loc_range:de_DE canonically matches lang_tag jbo ? NO |
|||
-------------- |
|||
loc_range:de-de matches lang_tag en_sl_IT ? NO |
|||
loc_range:de_DE canonically matches lang_tag en_SL_IT ? NO |
|||
-------------- |
|||
loc_range:sl_IT matches lang_tag de-DEVA ? NO |
|||
loc_range:sl_IT canonically matches lang_tag de_Deva ? NO |
|||
-------------- |
|||
loc_range:sl_IT matches lang_tag de-DE-1996 ? NO |
|||
loc_range:sl_IT canonically matches lang_tag de_DE_1996 ? NO |
|||
-------------- |
|||
loc_range:sl_IT matches lang_tag de-DE ? NO |
|||
loc_range:sl_IT canonically matches lang_tag de_DE ? NO |
|||
-------------- |
|||
loc_range:sl_IT matches lang_tag zh_Hans ? NO |
|||
loc_range:sl_IT canonically matches lang_tag zh_Hans ? NO |
|||
-------------- |
|||
loc_range:sl_IT matches lang_tag de-CH-1996 ? NO |
|||
loc_range:sl_IT canonically matches lang_tag de_CH_1996 ? NO |
|||
-------------- |
|||
loc_range:sl_IT matches lang_tag sl_IT ? YES |
|||
loc_range:sl_IT canonically matches lang_tag sl_IT ? YES |
|||
-------------- |
|||
loc_range:sl_IT matches lang_tag sl_IT_nedis-a-kirti-x-xyz ? YES |
|||
loc_range:sl_IT canonically matches lang_tag sl_IT_NEDIS_A_KIRTI_X_XYZ ? YES |
|||
-------------- |
|||
loc_range:sl_IT matches lang_tag sl_IT_rozaj ? YES |
|||
loc_range:sl_IT canonically matches lang_tag sl_IT_ROZAJ ? YES |
|||
-------------- |
|||
loc_range:sl_IT matches lang_tag sl_IT_NEDIS_ROJAZ_1901 ? YES |
|||
loc_range:sl_IT canonically matches lang_tag sl_IT_NEDIS_ROJAZ_1901 ? YES |
|||
-------------- |
|||
loc_range:sl_IT matches lang_tag i-enochian ? NO |
|||
loc_range:sl_IT canonically matches lang_tag @x=i-enochian ? NO |
|||
-------------- |
|||
loc_range:sl_IT matches lang_tag sgn-CH-de ? NO |
|||
loc_range:sl_IT canonically matches lang_tag sgn_CH_DE ? NO |
|||
-------------- |
|||
loc_range:sl_IT matches lang_tag art-lojban ? NO |
|||
loc_range:sl_IT canonically matches lang_tag jbo ? NO |
|||
-------------- |
|||
loc_range:sl_IT matches lang_tag i-lux ? NO |
|||
loc_range:sl_IT canonically matches lang_tag lb ? NO |
|||
-------------- |
|||
loc_range:sl_IT matches lang_tag art-lojban ? NO |
|||
loc_range:sl_IT canonically matches lang_tag jbo ? NO |
|||
-------------- |
|||
loc_range:sl_IT matches lang_tag jbo ? NO |
|||
loc_range:sl_IT canonically matches lang_tag jbo ? NO |
|||
-------------- |
|||
loc_range:sl_IT matches lang_tag en_sl_IT ? NO |
|||
loc_range:sl_IT canonically matches lang_tag en_SL_IT ? NO |
|||
-------------- |
|||
loc_range:sl_IT_Nedis matches lang_tag de-DEVA ? NO |
|||
loc_range:sl_IT_NEDIS canonically matches lang_tag de_Deva ? NO |
|||
-------------- |
|||
loc_range:sl_IT_Nedis matches lang_tag de-DE-1996 ? NO |
|||
loc_range:sl_IT_NEDIS canonically matches lang_tag de_DE_1996 ? NO |
|||
-------------- |
|||
loc_range:sl_IT_Nedis matches lang_tag de-DE ? NO |
|||
loc_range:sl_IT_NEDIS canonically matches lang_tag de_DE ? NO |
|||
-------------- |
|||
loc_range:sl_IT_Nedis matches lang_tag zh_Hans ? NO |
|||
loc_range:sl_IT_NEDIS canonically matches lang_tag zh_Hans ? NO |
|||
-------------- |
|||
loc_range:sl_IT_Nedis matches lang_tag de-CH-1996 ? NO |
|||
loc_range:sl_IT_NEDIS canonically matches lang_tag de_CH_1996 ? NO |
|||
-------------- |
|||
loc_range:sl_IT_Nedis matches lang_tag sl_IT ? NO |
|||
loc_range:sl_IT_NEDIS canonically matches lang_tag sl_IT ? NO |
|||
-------------- |
|||
loc_range:sl_IT_Nedis matches lang_tag sl_IT_nedis-a-kirti-x-xyz ? YES |
|||
loc_range:sl_IT_NEDIS canonically matches lang_tag sl_IT_NEDIS_A_KIRTI_X_XYZ ? YES |
|||
-------------- |
|||
loc_range:sl_IT_Nedis matches lang_tag sl_IT_rozaj ? NO |
|||
loc_range:sl_IT_NEDIS canonically matches lang_tag sl_IT_ROZAJ ? NO |
|||
-------------- |
|||
loc_range:sl_IT_Nedis matches lang_tag sl_IT_NEDIS_ROJAZ_1901 ? YES |
|||
loc_range:sl_IT_NEDIS canonically matches lang_tag sl_IT_NEDIS_ROJAZ_1901 ? YES |
|||
-------------- |
|||
loc_range:sl_IT_Nedis matches lang_tag i-enochian ? NO |
|||
loc_range:sl_IT_NEDIS canonically matches lang_tag @x=i-enochian ? NO |
|||
-------------- |
|||
loc_range:sl_IT_Nedis matches lang_tag sgn-CH-de ? NO |
|||
loc_range:sl_IT_NEDIS canonically matches lang_tag sgn_CH_DE ? NO |
|||
-------------- |
|||
loc_range:sl_IT_Nedis matches lang_tag art-lojban ? NO |
|||
loc_range:sl_IT_NEDIS canonically matches lang_tag jbo ? NO |
|||
-------------- |
|||
loc_range:sl_IT_Nedis matches lang_tag i-lux ? NO |
|||
loc_range:sl_IT_NEDIS canonically matches lang_tag lb ? NO |
|||
-------------- |
|||
loc_range:sl_IT_Nedis matches lang_tag art-lojban ? NO |
|||
loc_range:sl_IT_NEDIS canonically matches lang_tag jbo ? NO |
|||
-------------- |
|||
loc_range:sl_IT_Nedis matches lang_tag jbo ? NO |
|||
loc_range:sl_IT_NEDIS canonically matches lang_tag jbo ? NO |
|||
-------------- |
|||
loc_range:sl_IT_Nedis matches lang_tag en_sl_IT ? NO |
|||
loc_range:sl_IT_NEDIS canonically matches lang_tag en_SL_IT ? NO |
|||
-------------- |
|||
loc_range:jbo matches lang_tag de-DEVA ? NO |
|||
loc_range:jbo canonically matches lang_tag de_Deva ? NO |
|||
-------------- |
|||
loc_range:jbo matches lang_tag de-DE-1996 ? NO |
|||
loc_range:jbo canonically matches lang_tag de_DE_1996 ? NO |
|||
-------------- |
|||
loc_range:jbo matches lang_tag de-DE ? NO |
|||
loc_range:jbo canonically matches lang_tag de_DE ? NO |
|||
-------------- |
|||
loc_range:jbo matches lang_tag zh_Hans ? NO |
|||
loc_range:jbo canonically matches lang_tag zh_Hans ? NO |
|||
-------------- |
|||
loc_range:jbo matches lang_tag de-CH-1996 ? NO |
|||
loc_range:jbo canonically matches lang_tag de_CH_1996 ? NO |
|||
-------------- |
|||
loc_range:jbo matches lang_tag sl_IT ? NO |
|||
loc_range:jbo canonically matches lang_tag sl_IT ? NO |
|||
-------------- |
|||
loc_range:jbo matches lang_tag sl_IT_nedis-a-kirti-x-xyz ? NO |
|||
loc_range:jbo canonically matches lang_tag sl_IT_NEDIS_A_KIRTI_X_XYZ ? NO |
|||
-------------- |
|||
loc_range:jbo matches lang_tag sl_IT_rozaj ? NO |
|||
loc_range:jbo canonically matches lang_tag sl_IT_ROZAJ ? NO |
|||
-------------- |
|||
loc_range:jbo matches lang_tag sl_IT_NEDIS_ROJAZ_1901 ? NO |
|||
loc_range:jbo canonically matches lang_tag sl_IT_NEDIS_ROJAZ_1901 ? NO |
|||
-------------- |
|||
loc_range:jbo matches lang_tag i-enochian ? NO |
|||
loc_range:jbo canonically matches lang_tag @x=i-enochian ? NO |
|||
-------------- |
|||
loc_range:jbo matches lang_tag sgn-CH-de ? NO |
|||
loc_range:jbo canonically matches lang_tag sgn_CH_DE ? NO |
|||
-------------- |
|||
loc_range:jbo matches lang_tag art-lojban ? NO |
|||
loc_range:jbo canonically matches lang_tag jbo ? YES |
|||
-------------- |
|||
loc_range:jbo matches lang_tag i-lux ? NO |
|||
loc_range:jbo canonically matches lang_tag lb ? NO |
|||
-------------- |
|||
loc_range:jbo matches lang_tag art-lojban ? NO |
|||
loc_range:jbo canonically matches lang_tag jbo ? YES |
|||
-------------- |
|||
loc_range:jbo matches lang_tag jbo ? YES |
|||
loc_range:jbo canonically matches lang_tag jbo ? YES |
|||
-------------- |
|||
loc_range:jbo matches lang_tag en_sl_IT ? NO |
|||
loc_range:jbo canonically matches lang_tag en_SL_IT ? NO |
|||
-------------- |
|||
loc_range:art-lojban matches lang_tag de-DEVA ? NO |
|||
loc_range:jbo canonically matches lang_tag de_Deva ? NO |
|||
-------------- |
|||
loc_range:art-lojban matches lang_tag de-DE-1996 ? NO |
|||
loc_range:jbo canonically matches lang_tag de_DE_1996 ? NO |
|||
-------------- |
|||
loc_range:art-lojban matches lang_tag de-DE ? NO |
|||
loc_range:jbo canonically matches lang_tag de_DE ? NO |
|||
-------------- |
|||
loc_range:art-lojban matches lang_tag zh_Hans ? NO |
|||
loc_range:jbo canonically matches lang_tag zh_Hans ? NO |
|||
-------------- |
|||
loc_range:art-lojban matches lang_tag de-CH-1996 ? NO |
|||
loc_range:jbo canonically matches lang_tag de_CH_1996 ? NO |
|||
-------------- |
|||
loc_range:art-lojban matches lang_tag sl_IT ? NO |
|||
loc_range:jbo canonically matches lang_tag sl_IT ? NO |
|||
-------------- |
|||
loc_range:art-lojban matches lang_tag sl_IT_nedis-a-kirti-x-xyz ? NO |
|||
loc_range:jbo canonically matches lang_tag sl_IT_NEDIS_A_KIRTI_X_XYZ ? NO |
|||
-------------- |
|||
loc_range:art-lojban matches lang_tag sl_IT_rozaj ? NO |
|||
loc_range:jbo canonically matches lang_tag sl_IT_ROZAJ ? NO |
|||
-------------- |
|||
loc_range:art-lojban matches lang_tag sl_IT_NEDIS_ROJAZ_1901 ? NO |
|||
loc_range:jbo canonically matches lang_tag sl_IT_NEDIS_ROJAZ_1901 ? NO |
|||
-------------- |
|||
loc_range:art-lojban matches lang_tag i-enochian ? NO |
|||
loc_range:jbo canonically matches lang_tag @x=i-enochian ? NO |
|||
-------------- |
|||
loc_range:art-lojban matches lang_tag sgn-CH-de ? NO |
|||
loc_range:jbo canonically matches lang_tag sgn_CH_DE ? NO |
|||
-------------- |
|||
loc_range:art-lojban matches lang_tag art-lojban ? YES |
|||
loc_range:jbo canonically matches lang_tag jbo ? YES |
|||
-------------- |
|||
loc_range:art-lojban matches lang_tag i-lux ? NO |
|||
loc_range:jbo canonically matches lang_tag lb ? NO |
|||
-------------- |
|||
loc_range:art-lojban matches lang_tag art-lojban ? YES |
|||
loc_range:jbo canonically matches lang_tag jbo ? YES |
|||
-------------- |
|||
loc_range:art-lojban matches lang_tag jbo ? NO |
|||
loc_range:jbo canonically matches lang_tag jbo ? YES |
|||
-------------- |
|||
loc_range:art-lojban matches lang_tag en_sl_IT ? NO |
|||
loc_range:jbo canonically matches lang_tag en_SL_IT ? NO |
|||
-------------- |
|||
loc_range:sl_IT matches lang_tag de-DEVA ? NO |
|||
loc_range:sl_IT canonically matches lang_tag de_Deva ? NO |
|||
-------------- |
|||
loc_range:sl_IT matches lang_tag de-DE-1996 ? NO |
|||
loc_range:sl_IT canonically matches lang_tag de_DE_1996 ? NO |
|||
-------------- |
|||
loc_range:sl_IT matches lang_tag de-DE ? NO |
|||
loc_range:sl_IT canonically matches lang_tag de_DE ? NO |
|||
-------------- |
|||
loc_range:sl_IT matches lang_tag zh_Hans ? NO |
|||
loc_range:sl_IT canonically matches lang_tag zh_Hans ? NO |
|||
-------------- |
|||
loc_range:sl_IT matches lang_tag de-CH-1996 ? NO |
|||
loc_range:sl_IT canonically matches lang_tag de_CH_1996 ? NO |
|||
-------------- |
|||
loc_range:sl_IT matches lang_tag sl_IT ? YES |
|||
loc_range:sl_IT canonically matches lang_tag sl_IT ? YES |
|||
-------------- |
|||
loc_range:sl_IT matches lang_tag sl_IT_nedis-a-kirti-x-xyz ? YES |
|||
loc_range:sl_IT canonically matches lang_tag sl_IT_NEDIS_A_KIRTI_X_XYZ ? YES |
|||
-------------- |
|||
loc_range:sl_IT matches lang_tag sl_IT_rozaj ? YES |
|||
loc_range:sl_IT canonically matches lang_tag sl_IT_ROZAJ ? YES |
|||
-------------- |
|||
loc_range:sl_IT matches lang_tag sl_IT_NEDIS_ROJAZ_1901 ? YES |
|||
loc_range:sl_IT canonically matches lang_tag sl_IT_NEDIS_ROJAZ_1901 ? YES |
|||
-------------- |
|||
loc_range:sl_IT matches lang_tag i-enochian ? NO |
|||
loc_range:sl_IT canonically matches lang_tag @x=i-enochian ? NO |
|||
-------------- |
|||
loc_range:sl_IT matches lang_tag sgn-CH-de ? NO |
|||
loc_range:sl_IT canonically matches lang_tag sgn_CH_DE ? NO |
|||
-------------- |
|||
loc_range:sl_IT matches lang_tag art-lojban ? NO |
|||
loc_range:sl_IT canonically matches lang_tag jbo ? NO |
|||
-------------- |
|||
loc_range:sl_IT matches lang_tag i-lux ? NO |
|||
loc_range:sl_IT canonically matches lang_tag lb ? NO |
|||
-------------- |
|||
loc_range:sl_IT matches lang_tag art-lojban ? NO |
|||
loc_range:sl_IT canonically matches lang_tag jbo ? NO |
|||
-------------- |
|||
loc_range:sl_IT matches lang_tag jbo ? NO |
|||
loc_range:sl_IT canonically matches lang_tag jbo ? NO |
|||
-------------- |
|||
loc_range:sl_IT matches lang_tag en_sl_IT ? NO |
|||
loc_range:sl_IT canonically matches lang_tag en_SL_IT ? NO |
|||
@ -0,0 +1,342 @@ |
|||
--TEST-- |
|||
locale_get_display_name() icu >= 4.8 |
|||
--SKIPIF-- |
|||
<?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?> |
|||
<?php if(version_compare(INTL_ICU_VERSION, '4.8') < 0) print 'skip'; ?> |
|||
--FILE-- |
|||
<?php |
|||
|
|||
/* |
|||
* Try getting the display_name for different locales |
|||
* with Procedural and Object methods. |
|||
*/ |
|||
|
|||
function ut_main() |
|||
{ |
|||
$res_str=''; |
|||
|
|||
$disp_locales=array('en','fr','de'); |
|||
|
|||
$locales = array( |
|||
'sl_IT_nedis_KIRTI', |
|||
'sl_IT_nedis-a-kirti-x-xyz', |
|||
'sl_IT_rozaj', |
|||
'sl_IT_NEDIS_ROJAZ_1901', |
|||
'i-enochian', |
|||
'zh-hakka', |
|||
'zh-wuu', |
|||
'i-tay', |
|||
'sgn-BE-nl', |
|||
'sgn-CH-de', |
|||
'sl_IT_rozaj@currency=EUR', |
|||
'uk-ua_CALIFORNIA@currency=;currency=GRN', |
|||
'root', |
|||
'uk@currency=EURO', |
|||
'Hindi', |
|||
//Simple language subtag |
|||
'de', |
|||
'fr', |
|||
'ja', |
|||
'i-enochian', //(example of a grandfathered tag) |
|||
//Language subtag plus Script subtag: |
|||
'zh-Hant', |
|||
'zh-Hans', |
|||
'sr-Cyrl', |
|||
'sr-Latn', |
|||
//Language-Script-Region |
|||
'zh-Hans-CN', |
|||
'sr-Latn-CS', |
|||
//Language-Variant |
|||
'sl-rozaj', |
|||
'sl-nedis', |
|||
//Language-Region-Variant |
|||
'de-CH-1901', |
|||
'sl-IT-nedis', |
|||
//Language-Script-Region-Variant |
|||
'sl-Latn-IT-nedis', |
|||
//Language-Region: |
|||
'de-DE', |
|||
'en-US', |
|||
'es-419', |
|||
//Private use subtags: |
|||
'de-CH-x-phonebk', |
|||
'az-Arab-x-AZE-derbend', |
|||
//Extended language subtags |
|||
'zh-min', |
|||
'zh-min-nan-Hant-CN', |
|||
//Private use registry values |
|||
'x-whatever', |
|||
'qaa-Qaaa-QM-x-southern', |
|||
'sr-Latn-QM', |
|||
'sr-Qaaa-CS', |
|||
/*Tags that use extensions (examples ONLY: extensions MUST be defined |
|||
by revision or update to this document or by RFC): */ |
|||
'en-US-u-islamCal', |
|||
'zh-CN-a-myExt-x-private', |
|||
'en-a-myExt-b-another', |
|||
//Some Invalid Tags: |
|||
'de-419-DE', |
|||
'a-DE', |
|||
'ar-a-aaa-b-bbb-a-ccc' |
|||
); |
|||
|
|||
|
|||
$res_str = ''; |
|||
|
|||
foreach( $locales as $locale ) |
|||
{ |
|||
$res_str .= "locale='$locale'\n"; |
|||
foreach( $disp_locales as $disp_locale ) |
|||
{ |
|||
$scr = ut_loc_get_display_name( $locale ,$disp_locale ); |
|||
$scr = str_replace(array('(', ')'), '#', $scr); |
|||
$res_str .= "disp_locale=$disp_locale : display_name=$scr"; |
|||
$res_str .= "\n"; |
|||
} |
|||
$res_str .= "-----------------\n"; |
|||
} |
|||
|
|||
return $res_str; |
|||
|
|||
} |
|||
|
|||
include_once( 'ut_common.inc' ); |
|||
ut_run(); |
|||
|
|||
?> |
|||
--EXPECTREGEX-- |
|||
locale='sl_IT_nedis_KIRTI' |
|||
disp_locale=en : display_name=Slovenian #Italy, NEDIS_KIRTI# |
|||
disp_locale=fr : display_name=slovène #Italie, NEDIS_KIRTI# |
|||
disp_locale=de : display_name=Slowenisch #Italien, NEDIS_KIRTI# |
|||
----------------- |
|||
locale='sl_IT_nedis-a-kirti-x-xyz' |
|||
disp_locale=en : display_name=Slovenian #Italy, NEDIS_A_KIRTI_X_XYZ# |
|||
disp_locale=fr : display_name=slovène #Italie, NEDIS_A_KIRTI_X_XYZ# |
|||
disp_locale=de : display_name=Slowenisch #Italien, NEDIS_A_KIRTI_X_XYZ# |
|||
----------------- |
|||
locale='sl_IT_rozaj' |
|||
disp_locale=en : display_name=Slovenian #Italy, Resian# |
|||
disp_locale=fr : display_name=slovène #Italie, dialecte de Resia# |
|||
disp_locale=de : display_name=Slowenisch #Italien, (ROZAJ|Resianisch)# |
|||
----------------- |
|||
locale='sl_IT_NEDIS_ROJAZ_1901' |
|||
disp_locale=en : display_name=Slovenian #Italy, NEDIS_ROJAZ_1901# |
|||
disp_locale=fr : display_name=slovène #Italie, NEDIS_ROJAZ_1901# |
|||
disp_locale=de : display_name=Slowenisch #Italien, NEDIS_ROJAZ_1901# |
|||
----------------- |
|||
locale='i-enochian' |
|||
disp_locale=en : display_name=i-enochian #Private-Use=i-enochian# |
|||
disp_locale=fr : display_name=i-enochian #Usage privé=i-enochian# |
|||
disp_locale=de : display_name=i-enochian #Privatnutzung=i-enochian# |
|||
----------------- |
|||
locale='zh-hakka' |
|||
disp_locale=en : display_name=Chinese( #HAKKA#)? |
|||
disp_locale=fr : display_name=chinois( #HAKKA#)? |
|||
disp_locale=de : display_name=Chinesisch( #HAKKA#)? |
|||
----------------- |
|||
locale='zh-wuu' |
|||
disp_locale=en : display_name=Chinese #WUU# |
|||
disp_locale=fr : display_name=chinois #WUU# |
|||
disp_locale=de : display_name=Chinesisch #WUU# |
|||
----------------- |
|||
locale='i-tay' |
|||
disp_locale=en : display_name=i-tay |
|||
disp_locale=fr : display_name=i-tay |
|||
disp_locale=de : display_name=i-tay |
|||
----------------- |
|||
locale='sgn-BE-nl' |
|||
disp_locale=en : display_name=Sign Languages? #Belgium, NL# |
|||
disp_locale=fr : display_name=langues? des signes #Belgique, NL# |
|||
disp_locale=de : display_name=Gebärdensprache #Belgien, NL# |
|||
----------------- |
|||
locale='sgn-CH-de' |
|||
disp_locale=en : display_name=Sign Languages? #Switzerland, DE# |
|||
disp_locale=fr : display_name=langues? des signes #Suisse, DE# |
|||
disp_locale=de : display_name=Gebärdensprache #Schweiz, DE# |
|||
----------------- |
|||
locale='sl_IT_rozaj@currency=EUR' |
|||
disp_locale=en : display_name=Slovenian #Italy, Resian, [Cc]urrency=Euro# |
|||
disp_locale=fr : display_name=slovène #Italie, dialecte de Resia, Devise=euro# |
|||
disp_locale=de : display_name=Slowenisch #Italien, (ROZAJ|Resianisch), Währung=Euro# |
|||
----------------- |
|||
locale='uk-ua_CALIFORNIA@currency=;currency=GRN' |
|||
disp_locale=en : display_name=Ukrainian #Ukraine, CALIFORNIA, [Cc]urrency# |
|||
disp_locale=fr : display_name=ukrainien #Ukraine, CALIFORNIA, Devise# |
|||
disp_locale=de : display_name=Ukrainisch #Ukraine, CALIFORNIA, Währung# |
|||
----------------- |
|||
locale='root' |
|||
disp_locale=en : display_name=Root |
|||
disp_locale=fr : display_name=racine |
|||
disp_locale=de : display_name=[Rr]oot |
|||
----------------- |
|||
locale='uk@currency=EURO' |
|||
disp_locale=en : display_name=Ukrainian #[Cc]urrency=EURO# |
|||
disp_locale=fr : display_name=ukrainien #Devise=EURO# |
|||
disp_locale=de : display_name=Ukrainisch #Währung=EURO# |
|||
----------------- |
|||
locale='Hindi' |
|||
disp_locale=en : display_name=hindi |
|||
disp_locale=fr : display_name=hindi |
|||
disp_locale=de : display_name=hindi |
|||
----------------- |
|||
locale='de' |
|||
disp_locale=en : display_name=German |
|||
disp_locale=fr : display_name=allemand |
|||
disp_locale=de : display_name=Deutsch |
|||
----------------- |
|||
locale='fr' |
|||
disp_locale=en : display_name=French |
|||
disp_locale=fr : display_name=français |
|||
disp_locale=de : display_name=Französisch |
|||
----------------- |
|||
locale='ja' |
|||
disp_locale=en : display_name=Japanese |
|||
disp_locale=fr : display_name=japonais |
|||
disp_locale=de : display_name=Japanisch |
|||
----------------- |
|||
locale='i-enochian' |
|||
disp_locale=en : display_name=i-enochian #Private-Use=i-enochian# |
|||
disp_locale=fr : display_name=i-enochian #Usage privé=i-enochian# |
|||
disp_locale=de : display_name=i-enochian #Privatnutzung=i-enochian# |
|||
----------------- |
|||
locale='zh-Hant' |
|||
disp_locale=en : display_name=Chinese #Traditional# |
|||
disp_locale=fr : display_name=chinois #idéogrammes han (#variante traditionnelle#|traditionnels)# |
|||
disp_locale=de : display_name=Chinesisch #Traditionell# |
|||
----------------- |
|||
locale='zh-Hans' |
|||
disp_locale=en : display_name=Chinese #Simplified# |
|||
disp_locale=fr : display_name=chinois #idéogrammes han (#variante simplifiée#|simplifiés)# |
|||
disp_locale=de : display_name=Chinesisch #Vereinfacht# |
|||
----------------- |
|||
locale='sr-Cyrl' |
|||
disp_locale=en : display_name=Serbian #Cyrillic# |
|||
disp_locale=fr : display_name=serbe #cyrillique# |
|||
disp_locale=de : display_name=Serbisch #Kyrillisch# |
|||
----------------- |
|||
locale='sr-Latn' |
|||
disp_locale=en : display_name=Serbian #Latin# |
|||
disp_locale=fr : display_name=serbe #latin# |
|||
disp_locale=de : display_name=Serbisch #Lateinisch# |
|||
----------------- |
|||
locale='zh-Hans-CN' |
|||
disp_locale=en : display_name=Chinese #Simplified, China# |
|||
disp_locale=fr : display_name=chinois #idéogrammes han (#variante simplifiée#|simplifiés), Chine# |
|||
disp_locale=de : display_name=Chinesisch #Vereinfacht, China# |
|||
----------------- |
|||
locale='sr-Latn-CS' |
|||
disp_locale=en : display_name=Serbian #Latin, Serbia [aA]nd Montenegro# |
|||
disp_locale=fr : display_name=serbe #latin, Serbie-et-Monténégro# |
|||
disp_locale=de : display_name=Serbisch #Lateinisch, Serbien und Montenegro# |
|||
----------------- |
|||
locale='sl-rozaj' |
|||
disp_locale=en : display_name=Slovenian #Resian# |
|||
disp_locale=fr : display_name=slovène #dialecte de Resia# |
|||
disp_locale=de : display_name=Slowenisch( #(ROZAJ|Resianisch)#)? |
|||
----------------- |
|||
locale='sl-nedis' |
|||
disp_locale=en : display_name=Slovenian #Natisone dialect# |
|||
disp_locale=fr : display_name=slovène #dialecte de Natisone# |
|||
disp_locale=de : display_name=Slowenisch #Natisone-Dialekt# |
|||
----------------- |
|||
locale='de-CH-1901' |
|||
disp_locale=en : display_name=German #Switzerland, Traditional German orthography# |
|||
disp_locale=fr : display_name=allemand #Suisse, orthographe allemande traditionnelle# |
|||
disp_locale=de : display_name=Deutsch #Schweiz, (1901|[aA]lte deutsche Rechtschreibung)# |
|||
----------------- |
|||
locale='sl-IT-nedis' |
|||
disp_locale=en : display_name=Slovenian #Italy, Natisone dialect# |
|||
disp_locale=fr : display_name=slovène #Italie, dialecte de Natisone# |
|||
disp_locale=de : display_name=Slowenisch #Italien, (NEDIS|Natisone-Dialekt)# |
|||
----------------- |
|||
locale='sl-Latn-IT-nedis' |
|||
disp_locale=en : display_name=Slovenian #Latin, Italy, Natisone dialect# |
|||
disp_locale=fr : display_name=slovène #latin, Italie, dialecte de Natisone# |
|||
disp_locale=de : display_name=Slowenisch #Lateinisch, Italien, (NEDIS|Natisone-Dialekt)# |
|||
----------------- |
|||
locale='de-DE' |
|||
disp_locale=en : display_name=German #Germany# |
|||
disp_locale=fr : display_name=allemand #Allemagne# |
|||
disp_locale=de : display_name=Deutsch #Deutschland# |
|||
----------------- |
|||
locale='en-US' |
|||
disp_locale=en : display_name=English #United States# |
|||
disp_locale=fr : display_name=anglais #États-Unis# |
|||
disp_locale=de : display_name=Englisch #Vereinigte Staaten# |
|||
----------------- |
|||
locale='es-419' |
|||
disp_locale=en : display_name=Spanish #Latin America# |
|||
disp_locale=fr : display_name=espagnol #Amérique latine# |
|||
disp_locale=de : display_name=Spanisch #Lateinamerika# |
|||
----------------- |
|||
locale='de-CH-x-phonebk' |
|||
disp_locale=en : display_name=German #Switzerland, Private-Use=phonebk# |
|||
disp_locale=fr : display_name=allemand #Suisse, Usage privé=phonebk# |
|||
disp_locale=de : display_name=Deutsch #Schweiz, Privatnutzung=phonebk# |
|||
----------------- |
|||
locale='az-Arab-x-AZE-derbend' |
|||
disp_locale=en : display_name=Azerbaijani #Arabic, Private-Use=aze-derbend# |
|||
disp_locale=fr : display_name=azéri #arabe, Usage privé=aze-derbend# |
|||
disp_locale=de : display_name=Aserbaidschanisch #Arabisch, Privatnutzung=aze-derbend# |
|||
----------------- |
|||
locale='zh-min' |
|||
disp_locale=en : display_name=Chinese #MIN# |
|||
disp_locale=fr : display_name=chinois #MIN# |
|||
disp_locale=de : display_name=Chinesisch #MIN# |
|||
----------------- |
|||
locale='zh-min-nan-Hant-CN' |
|||
disp_locale=en : display_name=Chinese #MIN, NAN_HANT_CN# |
|||
disp_locale=fr : display_name=chinois #MIN, NAN_HANT_CN# |
|||
disp_locale=de : display_name=Chinesisch #MIN, NAN_HANT_CN# |
|||
----------------- |
|||
locale='x-whatever' |
|||
disp_locale=en : display_name=x-whatever #Private-Use=whatever# |
|||
disp_locale=fr : display_name=x-whatever #Usage privé=whatever# |
|||
disp_locale=de : display_name=x-whatever #Privatnutzung=whatever# |
|||
----------------- |
|||
locale='qaa-Qaaa-QM-x-southern' |
|||
disp_locale=en : display_name=qaa #Qaaa, QM, Private-Use=southern# |
|||
disp_locale=fr : display_name=qaa #Qaaa, QM, Usage privé=southern# |
|||
disp_locale=de : display_name=qaa #Qaaa, QM, Privatnutzung=southern# |
|||
----------------- |
|||
locale='sr-Latn-QM' |
|||
disp_locale=en : display_name=Serbian #Latin, QM# |
|||
disp_locale=fr : display_name=serbe #latin, QM# |
|||
disp_locale=de : display_name=Serbisch #Lateinisch, QM# |
|||
----------------- |
|||
locale='sr-Qaaa-CS' |
|||
disp_locale=en : display_name=Serbian #Qaaa, Serbia [aA]nd Montenegro# |
|||
disp_locale=fr : display_name=serbe #Qaaa, Serbie-et-Monténégro# |
|||
disp_locale=de : display_name=Serbisch #Qaaa, Serbien und Montenegro# |
|||
----------------- |
|||
locale='en-US-u-islamCal' |
|||
disp_locale=en : display_name=English #United States, attribute=islamcal# |
|||
disp_locale=fr : display_name=anglais #États-Unis, attribute=islamcal# |
|||
disp_locale=de : display_name=Englisch #Vereinigte Staaten, attribute=islamcal# |
|||
----------------- |
|||
locale='zh-CN-a-myExt-x-private' |
|||
disp_locale=en : display_name=Chinese #China, a=myext, Private-Use=private# |
|||
disp_locale=fr : display_name=chinois #Chine, a=myext, Usage privé=private# |
|||
disp_locale=de : display_name=Chinesisch #China, a=myext, Privatnutzung=private# |
|||
----------------- |
|||
locale='en-a-myExt-b-another' |
|||
disp_locale=en : display_name=English #a=myext, b=another# |
|||
disp_locale=fr : display_name=anglais #a=myext, b=another# |
|||
disp_locale=de : display_name=Englisch #a=myext, b=another# |
|||
----------------- |
|||
locale='de-419-DE' |
|||
disp_locale=en : display_name=German #Latin America, DE# |
|||
disp_locale=fr : display_name=allemand #Amérique latine, DE# |
|||
disp_locale=de : display_name=Deutsch #Lateinamerika, DE# |
|||
----------------- |
|||
locale='a-DE' |
|||
disp_locale=en : display_name=a #Germany# |
|||
disp_locale=fr : display_name=a #Allemagne# |
|||
disp_locale=de : display_name=a #Deutschland# |
|||
----------------- |
|||
locale='ar-a-aaa-b-bbb-a-ccc' |
|||
disp_locale=en : display_name=Arabic #a=aaa, b=bbb# |
|||
disp_locale=fr : display_name=arabe #a=aaa, b=bbb# |
|||
disp_locale=de : display_name=Arabisch #a=aaa, b=bbb# |
|||
----------------- |
|||
@ -0,0 +1,275 @@ |
|||
--TEST-- |
|||
locale_get_display_region() icu >= 4.8 |
|||
--SKIPIF-- |
|||
<?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?> |
|||
<?php if(version_compare(INTL_ICU_VERSION, '4.8') < 0) print 'skip'; ?> |
|||
--FILE-- |
|||
<?php |
|||
|
|||
/* |
|||
* Try getting the display_region for different locales |
|||
* with Procedural and Object methods. |
|||
*/ |
|||
|
|||
function ut_main() |
|||
{ |
|||
$res_str = ''; |
|||
|
|||
$disp_locales=array('en','fr','de'); |
|||
|
|||
$locales = array( |
|||
'uk-ua_CALIFORNIA@currency=;currency=GRN', |
|||
'root', |
|||
'uk@currency=EURO', |
|||
'Hindi', |
|||
//Simple language subtag |
|||
'de', |
|||
'fr', |
|||
'ja', |
|||
'i-enochian', //(example of a grandfathered tag) |
|||
//Language subtag plus Script subtag: |
|||
'zh-Hant', |
|||
'zh-Hans', |
|||
'sr-Cyrl', |
|||
'sr-Latn', |
|||
//Language-Script-Region |
|||
'zh-Hans-CN', |
|||
'sr-Latn-CS', |
|||
//Language-Variant |
|||
'sl-rozaj', |
|||
'sl-nedis', |
|||
//Language-Region-Variant |
|||
'de-CH-1901', |
|||
'sl-IT-nedis', |
|||
//Language-Script-Region-Variant |
|||
'sl-Latn-IT-nedis', |
|||
//Language-Region: |
|||
'de-DE', |
|||
'en-US', |
|||
'es-419', |
|||
//Private use subtags: |
|||
'de-CH-x-phonebk', |
|||
'az-Arab-x-AZE-derbend', |
|||
//Extended language subtags |
|||
'zh-min', |
|||
'zh-min-nan-Hant-CN', |
|||
//Private use registry values |
|||
'x-whatever', |
|||
'qaa-Qaaa-QM-x-southern', |
|||
'sr-Latn-QM', |
|||
'sr-Qaaa-CS', |
|||
/*Tags that use extensions (examples ONLY: extensions MUST be defined |
|||
by revision or update to this document or by RFC): */ |
|||
'en-US-u-islamCal', |
|||
'zh-CN-a-myExt-x-private', |
|||
'en-a-myExt-b-another', |
|||
//Some Invalid Tags: |
|||
'de-419-DE', |
|||
'a-DE', |
|||
'ar-a-aaa-b-bbb-a-ccc' |
|||
); |
|||
|
|||
|
|||
$res_str = ''; |
|||
|
|||
foreach( $locales as $locale ) |
|||
{ |
|||
$res_str .= "locale='$locale'\n"; |
|||
foreach( $disp_locales as $disp_locale ) |
|||
{ |
|||
$scr = ut_loc_get_display_region( $locale ,$disp_locale ); |
|||
$res_str .= "disp_locale=$disp_locale : display_region=$scr"; |
|||
$res_str .= "\n"; |
|||
} |
|||
$res_str .= "-----------------\n"; |
|||
} |
|||
|
|||
return $res_str; |
|||
|
|||
} |
|||
|
|||
include_once( 'ut_common.inc' ); |
|||
ut_run(); |
|||
|
|||
?> |
|||
--EXPECTREGEX-- |
|||
locale='uk-ua_CALIFORNIA@currency=;currency=GRN' |
|||
disp_locale=en : display_region=Ukraine |
|||
disp_locale=fr : display_region=Ukraine |
|||
disp_locale=de : display_region=Ukraine |
|||
----------------- |
|||
locale='root' |
|||
disp_locale=en : display_region= |
|||
disp_locale=fr : display_region= |
|||
disp_locale=de : display_region= |
|||
----------------- |
|||
locale='uk@currency=EURO' |
|||
disp_locale=en : display_region= |
|||
disp_locale=fr : display_region= |
|||
disp_locale=de : display_region= |
|||
----------------- |
|||
locale='Hindi' |
|||
disp_locale=en : display_region= |
|||
disp_locale=fr : display_region= |
|||
disp_locale=de : display_region= |
|||
----------------- |
|||
locale='de' |
|||
disp_locale=en : display_region= |
|||
disp_locale=fr : display_region= |
|||
disp_locale=de : display_region= |
|||
----------------- |
|||
locale='fr' |
|||
disp_locale=en : display_region= |
|||
disp_locale=fr : display_region= |
|||
disp_locale=de : display_region= |
|||
----------------- |
|||
locale='ja' |
|||
disp_locale=en : display_region= |
|||
disp_locale=fr : display_region= |
|||
disp_locale=de : display_region= |
|||
----------------- |
|||
locale='i-enochian' |
|||
disp_locale=en : display_region= |
|||
disp_locale=fr : display_region= |
|||
disp_locale=de : display_region= |
|||
----------------- |
|||
locale='zh-Hant' |
|||
disp_locale=en : display_region= |
|||
disp_locale=fr : display_region= |
|||
disp_locale=de : display_region= |
|||
----------------- |
|||
locale='zh-Hans' |
|||
disp_locale=en : display_region= |
|||
disp_locale=fr : display_region= |
|||
disp_locale=de : display_region= |
|||
----------------- |
|||
locale='sr-Cyrl' |
|||
disp_locale=en : display_region= |
|||
disp_locale=fr : display_region= |
|||
disp_locale=de : display_region= |
|||
----------------- |
|||
locale='sr-Latn' |
|||
disp_locale=en : display_region= |
|||
disp_locale=fr : display_region= |
|||
disp_locale=de : display_region= |
|||
----------------- |
|||
locale='zh-Hans-CN' |
|||
disp_locale=en : display_region=China |
|||
disp_locale=fr : display_region=Chine |
|||
disp_locale=de : display_region=China |
|||
----------------- |
|||
locale='sr-Latn-CS' |
|||
disp_locale=en : display_region=Serbia [Aa]nd Montenegro |
|||
disp_locale=fr : display_region=Serbie-et-Monténégro |
|||
disp_locale=de : display_region=Serbien und Montenegro |
|||
----------------- |
|||
locale='sl-rozaj' |
|||
disp_locale=en : display_region=(ROZAJ)? |
|||
disp_locale=fr : display_region=(ROZAJ)? |
|||
disp_locale=de : display_region=(ROZAJ)? |
|||
----------------- |
|||
locale='sl-nedis' |
|||
disp_locale=en : display_region=(NEDIS)? |
|||
disp_locale=fr : display_region=(NEDIS)? |
|||
disp_locale=de : display_region=(NEDIS)? |
|||
----------------- |
|||
locale='de-CH-1901' |
|||
disp_locale=en : display_region=Switzerland |
|||
disp_locale=fr : display_region=Suisse |
|||
disp_locale=de : display_region=Schweiz |
|||
----------------- |
|||
locale='sl-IT-nedis' |
|||
disp_locale=en : display_region=Italy |
|||
disp_locale=fr : display_region=Italie |
|||
disp_locale=de : display_region=Italien |
|||
----------------- |
|||
locale='sl-Latn-IT-nedis' |
|||
disp_locale=en : display_region=Italy |
|||
disp_locale=fr : display_region=Italie |
|||
disp_locale=de : display_region=Italien |
|||
----------------- |
|||
locale='de-DE' |
|||
disp_locale=en : display_region=Germany |
|||
disp_locale=fr : display_region=Allemagne |
|||
disp_locale=de : display_region=Deutschland |
|||
----------------- |
|||
locale='en-US' |
|||
disp_locale=en : display_region=United States |
|||
disp_locale=fr : display_region=États-Unis |
|||
disp_locale=de : display_region=Vereinigte Staaten |
|||
----------------- |
|||
locale='es-419' |
|||
disp_locale=en : display_region=Latin America |
|||
disp_locale=fr : display_region=Amérique latine |
|||
disp_locale=de : display_region=Lateinamerika |
|||
----------------- |
|||
locale='de-CH-x-phonebk' |
|||
disp_locale=en : display_region=Switzerland |
|||
disp_locale=fr : display_region=Suisse |
|||
disp_locale=de : display_region=Schweiz |
|||
----------------- |
|||
locale='az-Arab-x-AZE-derbend' |
|||
disp_locale=en : display_region=X? |
|||
disp_locale=fr : display_region=X? |
|||
disp_locale=de : display_region=X? |
|||
----------------- |
|||
locale='zh-min' |
|||
disp_locale=en : display_region= |
|||
disp_locale=fr : display_region= |
|||
disp_locale=de : display_region= |
|||
----------------- |
|||
locale='zh-min-nan-Hant-CN' |
|||
disp_locale=en : display_region=MIN |
|||
disp_locale=fr : display_region=MIN |
|||
disp_locale=de : display_region=MIN |
|||
----------------- |
|||
locale='x-whatever' |
|||
disp_locale=en : display_region= |
|||
disp_locale=fr : display_region= |
|||
disp_locale=de : display_region= |
|||
----------------- |
|||
locale='qaa-Qaaa-QM-x-southern' |
|||
disp_locale=en : display_region=QM |
|||
disp_locale=fr : display_region=QM |
|||
disp_locale=de : display_region=QM |
|||
----------------- |
|||
locale='sr-Latn-QM' |
|||
disp_locale=en : display_region=QM |
|||
disp_locale=fr : display_region=QM |
|||
disp_locale=de : display_region=QM |
|||
----------------- |
|||
locale='sr-Qaaa-CS' |
|||
disp_locale=en : display_region=Serbia [Aa]nd Montenegro |
|||
disp_locale=fr : display_region=Serbie-et-Monténégro |
|||
disp_locale=de : display_region=Serbien und Montenegro |
|||
----------------- |
|||
locale='en-US-u-islamCal' |
|||
disp_locale=en : display_region=United States |
|||
disp_locale=fr : display_region=États-Unis |
|||
disp_locale=de : display_region=Vereinigte Staaten |
|||
----------------- |
|||
locale='zh-CN-a-myExt-x-private' |
|||
disp_locale=en : display_region=China |
|||
disp_locale=fr : display_region=Chine |
|||
disp_locale=de : display_region=China |
|||
----------------- |
|||
locale='en-a-myExt-b-another' |
|||
disp_locale=en : display_region=A? |
|||
disp_locale=fr : display_region=A? |
|||
disp_locale=de : display_region=A? |
|||
----------------- |
|||
locale='de-419-DE' |
|||
disp_locale=en : display_region=Latin America |
|||
disp_locale=fr : display_region=Amérique latine |
|||
disp_locale=de : display_region=Lateinamerika |
|||
----------------- |
|||
locale='a-DE' |
|||
disp_locale=en : display_region=Germany |
|||
disp_locale=fr : display_region=Allemagne |
|||
disp_locale=de : display_region=Deutschland |
|||
----------------- |
|||
locale='ar-a-aaa-b-bbb-a-ccc' |
|||
disp_locale=en : display_region=A? |
|||
disp_locale=fr : display_region=A? |
|||
disp_locale=de : display_region=A? |
|||
----------------- |
|||
@ -0,0 +1,275 @@ |
|||
--TEST-- |
|||
locale_get_display_script() icu >= 4.8 |
|||
--SKIPIF-- |
|||
<?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?> |
|||
<?php if(version_compare(INTL_ICU_VERSION, '4.8') < 0) print 'skip'; ?> |
|||
--FILE-- |
|||
<?php |
|||
|
|||
/* |
|||
* Try getting the display_script for different locales |
|||
* with Procedural and Object methods. |
|||
*/ |
|||
|
|||
function ut_main() |
|||
{ |
|||
$res_str = ''; |
|||
|
|||
$disp_locales=array('en','fr','de'); |
|||
|
|||
$locales = array( |
|||
'uk-ua_CALIFORNIA@currency=;currency=GRN', |
|||
'root', |
|||
'uk@currency=EURO', |
|||
'Hindi', |
|||
//Simple language subtag |
|||
'de', |
|||
'fr', |
|||
'ja', |
|||
'i-enochian', //(example of a grandfathered tag) |
|||
//Language subtag plus Script subtag: |
|||
'zh-Hant', |
|||
'zh-Hans', |
|||
'sr-Cyrl', |
|||
'sr-Latn', |
|||
//Language-Script-Region |
|||
'zh-Hans-CN', |
|||
'sr-Latn-CS', |
|||
//Language-Variant |
|||
'sl-rozaj', |
|||
'sl-nedis', |
|||
//Language-Region-Variant |
|||
'de-CH-1901', |
|||
'sl-IT-nedis', |
|||
//Language-Script-Region-Variant |
|||
'sl-Latn-IT-nedis', |
|||
//Language-Region: |
|||
'de-DE', |
|||
'en-US', |
|||
'es-419', |
|||
//Private use subtags: |
|||
'de-CH-x-phonebk', |
|||
'az-Arab-x-AZE-derbend', |
|||
//Extended language subtags |
|||
'zh-min', |
|||
'zh-min-nan-Hant-CN', |
|||
//Private use registry values |
|||
'x-whatever', |
|||
'qaa-Qaaa-QM-x-southern', |
|||
'sr-Latn-QM', |
|||
'sr-Qaaa-CS', |
|||
/*Tags that use extensions (examples ONLY: extensions MUST be defined |
|||
by revision or update to this document or by RFC): */ |
|||
'en-US-u-islamCal', |
|||
'zh-CN-a-myExt-x-private', |
|||
'en-a-myExt-b-another', |
|||
//Some Invalid Tags: |
|||
'de-419-DE', |
|||
'a-DE', |
|||
'ar-a-aaa-b-bbb-a-ccc' |
|||
); |
|||
|
|||
|
|||
$res_str = ''; |
|||
|
|||
foreach( $locales as $locale ) |
|||
{ |
|||
$res_str .= "locale='$locale'\n"; |
|||
foreach( $disp_locales as $disp_locale ) |
|||
{ |
|||
$scr = ut_loc_get_display_script( $locale ,$disp_locale ); |
|||
$res_str .= "disp_locale=$disp_locale : display_script=$scr"; |
|||
$res_str .= "\n"; |
|||
} |
|||
$res_str .= "-----------------\n"; |
|||
} |
|||
|
|||
return $res_str; |
|||
|
|||
} |
|||
|
|||
include_once( 'ut_common.inc' ); |
|||
ut_run(); |
|||
|
|||
?> |
|||
--EXPECTREGEX-- |
|||
locale='uk-ua_CALIFORNIA@currency=;currency=GRN' |
|||
disp_locale=en : display_script= |
|||
disp_locale=fr : display_script= |
|||
disp_locale=de : display_script= |
|||
----------------- |
|||
locale='root' |
|||
disp_locale=en : display_script= |
|||
disp_locale=fr : display_script= |
|||
disp_locale=de : display_script= |
|||
----------------- |
|||
locale='uk@currency=EURO' |
|||
disp_locale=en : display_script= |
|||
disp_locale=fr : display_script= |
|||
disp_locale=de : display_script= |
|||
----------------- |
|||
locale='Hindi' |
|||
disp_locale=en : display_script= |
|||
disp_locale=fr : display_script= |
|||
disp_locale=de : display_script= |
|||
----------------- |
|||
locale='de' |
|||
disp_locale=en : display_script= |
|||
disp_locale=fr : display_script= |
|||
disp_locale=de : display_script= |
|||
----------------- |
|||
locale='fr' |
|||
disp_locale=en : display_script= |
|||
disp_locale=fr : display_script= |
|||
disp_locale=de : display_script= |
|||
----------------- |
|||
locale='ja' |
|||
disp_locale=en : display_script= |
|||
disp_locale=fr : display_script= |
|||
disp_locale=de : display_script= |
|||
----------------- |
|||
locale='i-enochian' |
|||
disp_locale=en : display_script= |
|||
disp_locale=fr : display_script= |
|||
disp_locale=de : display_script= |
|||
----------------- |
|||
locale='zh-Hant' |
|||
disp_locale=en : display_script=Traditional |
|||
disp_locale=fr : display_script=idéogrammes han (\(variante traditionnelle\)|traditionnels) |
|||
disp_locale=de : display_script=Traditionell |
|||
----------------- |
|||
locale='zh-Hans' |
|||
disp_locale=en : display_script=Simplified |
|||
disp_locale=fr : display_script=idéogrammes han (\(variante simplifiée\)|simplifiés) |
|||
disp_locale=de : display_script=Vereinfacht |
|||
----------------- |
|||
locale='sr-Cyrl' |
|||
disp_locale=en : display_script=Cyrillic |
|||
disp_locale=fr : display_script=cyrillique |
|||
disp_locale=de : display_script=Kyrillisch |
|||
----------------- |
|||
locale='sr-Latn' |
|||
disp_locale=en : display_script=Latin |
|||
disp_locale=fr : display_script=latin |
|||
disp_locale=de : display_script=Lateinisch |
|||
----------------- |
|||
locale='zh-Hans-CN' |
|||
disp_locale=en : display_script=Simplified |
|||
disp_locale=fr : display_script=idéogrammes han (\(variante simplifiée\)|simplifiés) |
|||
disp_locale=de : display_script=Vereinfacht |
|||
----------------- |
|||
locale='sr-Latn-CS' |
|||
disp_locale=en : display_script=Latin |
|||
disp_locale=fr : display_script=latin |
|||
disp_locale=de : display_script=Lateinisch |
|||
----------------- |
|||
locale='sl-rozaj' |
|||
disp_locale=en : display_script= |
|||
disp_locale=fr : display_script= |
|||
disp_locale=de : display_script= |
|||
----------------- |
|||
locale='sl-nedis' |
|||
disp_locale=en : display_script= |
|||
disp_locale=fr : display_script= |
|||
disp_locale=de : display_script= |
|||
----------------- |
|||
locale='de-CH-1901' |
|||
disp_locale=en : display_script= |
|||
disp_locale=fr : display_script= |
|||
disp_locale=de : display_script= |
|||
----------------- |
|||
locale='sl-IT-nedis' |
|||
disp_locale=en : display_script= |
|||
disp_locale=fr : display_script= |
|||
disp_locale=de : display_script= |
|||
----------------- |
|||
locale='sl-Latn-IT-nedis' |
|||
disp_locale=en : display_script=Latin |
|||
disp_locale=fr : display_script=latin |
|||
disp_locale=de : display_script=Lateinisch |
|||
----------------- |
|||
locale='de-DE' |
|||
disp_locale=en : display_script= |
|||
disp_locale=fr : display_script= |
|||
disp_locale=de : display_script= |
|||
----------------- |
|||
locale='en-US' |
|||
disp_locale=en : display_script= |
|||
disp_locale=fr : display_script= |
|||
disp_locale=de : display_script= |
|||
----------------- |
|||
locale='es-419' |
|||
disp_locale=en : display_script= |
|||
disp_locale=fr : display_script= |
|||
disp_locale=de : display_script= |
|||
----------------- |
|||
locale='de-CH-x-phonebk' |
|||
disp_locale=en : display_script= |
|||
disp_locale=fr : display_script= |
|||
disp_locale=de : display_script= |
|||
----------------- |
|||
locale='az-Arab-x-AZE-derbend' |
|||
disp_locale=en : display_script=Arabic |
|||
disp_locale=fr : display_script=arabe |
|||
disp_locale=de : display_script=Arabisch |
|||
----------------- |
|||
locale='zh-min' |
|||
disp_locale=en : display_script= |
|||
disp_locale=fr : display_script= |
|||
disp_locale=de : display_script= |
|||
----------------- |
|||
locale='zh-min-nan-Hant-CN' |
|||
disp_locale=en : display_script= |
|||
disp_locale=fr : display_script= |
|||
disp_locale=de : display_script= |
|||
----------------- |
|||
locale='x-whatever' |
|||
disp_locale=en : display_script= |
|||
disp_locale=fr : display_script= |
|||
disp_locale=de : display_script= |
|||
----------------- |
|||
locale='qaa-Qaaa-QM-x-southern' |
|||
disp_locale=en : display_script=Qaaa |
|||
disp_locale=fr : display_script=Qaaa |
|||
disp_locale=de : display_script=Qaaa |
|||
----------------- |
|||
locale='sr-Latn-QM' |
|||
disp_locale=en : display_script=Latin |
|||
disp_locale=fr : display_script=latin |
|||
disp_locale=de : display_script=Lateinisch |
|||
----------------- |
|||
locale='sr-Qaaa-CS' |
|||
disp_locale=en : display_script=Qaaa |
|||
disp_locale=fr : display_script=Qaaa |
|||
disp_locale=de : display_script=Qaaa |
|||
----------------- |
|||
locale='en-US-u-islamCal' |
|||
disp_locale=en : display_script= |
|||
disp_locale=fr : display_script= |
|||
disp_locale=de : display_script= |
|||
----------------- |
|||
locale='zh-CN-a-myExt-x-private' |
|||
disp_locale=en : display_script= |
|||
disp_locale=fr : display_script= |
|||
disp_locale=de : display_script= |
|||
----------------- |
|||
locale='en-a-myExt-b-another' |
|||
disp_locale=en : display_script= |
|||
disp_locale=fr : display_script= |
|||
disp_locale=de : display_script= |
|||
----------------- |
|||
locale='de-419-DE' |
|||
disp_locale=en : display_script= |
|||
disp_locale=fr : display_script= |
|||
disp_locale=de : display_script= |
|||
----------------- |
|||
locale='a-DE' |
|||
disp_locale=en : display_script= |
|||
disp_locale=fr : display_script= |
|||
disp_locale=de : display_script= |
|||
----------------- |
|||
locale='ar-a-aaa-b-bbb-a-ccc' |
|||
disp_locale=en : display_script= |
|||
disp_locale=fr : display_script= |
|||
disp_locale=de : display_script= |
|||
----------------- |
|||
@ -0,0 +1,275 @@ |
|||
--TEST-- |
|||
locale_get_display_variant() icu >= 4.8 |
|||
--SKIPIF-- |
|||
<?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?> |
|||
<?php if(version_compare(INTL_ICU_VERSION, '4.8') < 0) print 'skip'; ?> |
|||
--FILE-- |
|||
<?php |
|||
|
|||
/* |
|||
* Try getting the display_variant for different locales |
|||
* with Procedural and Object methods. |
|||
*/ |
|||
|
|||
function ut_main() |
|||
{ |
|||
$res_str = ''; |
|||
|
|||
$disp_locales=array('en','fr','de'); |
|||
|
|||
$locales = array( |
|||
'uk-ua_CALIFORNIA@currency=;currency=GRN', |
|||
'root', |
|||
'uk@currency=EURO', |
|||
'Hindi', |
|||
//Simple language subtag |
|||
'de', |
|||
'fr', |
|||
'ja', |
|||
'i-enochian', //(example of a grandfathered tag) |
|||
//Language subtag plus Script subtag: |
|||
'zh-Hant', |
|||
'zh-Hans', |
|||
'sr-Cyrl', |
|||
'sr-Latn', |
|||
//Language-Script-Region |
|||
'zh-Hans-CN', |
|||
'sr-Latn-CS', |
|||
//Language-Variant |
|||
'sl-rozaj', |
|||
'sl-nedis', |
|||
//Language-Region-Variant |
|||
'de-CH-1901', |
|||
'sl-IT-nedis', |
|||
//Language-Script-Region-Variant |
|||
'sl-Latn-IT-nedis', |
|||
//Language-Region: |
|||
'de-DE', |
|||
'en-US', |
|||
'es-419', |
|||
//Private use subtags: |
|||
'de-CH-x-phonebk', |
|||
'az-Arab-x-AZE-derbend', |
|||
//Extended language subtags |
|||
'zh-min', |
|||
'zh-min-nan-Hant-CN', |
|||
//Private use registry values |
|||
'x-whatever', |
|||
'qaa-Qaaa-QM-x-southern', |
|||
'sr-Latn-QM', |
|||
'sr-Qaaa-CS', |
|||
/*Tags that use extensions (examples ONLY: extensions MUST be defined |
|||
by revision or update to this document or by RFC): */ |
|||
'en-US-u-islamCal', |
|||
'zh-CN-a-myExt-x-private', |
|||
'en-a-myExt-b-another', |
|||
//Some Invalid Tags: |
|||
'de-419-DE', |
|||
'a-DE', |
|||
'ar-a-aaa-b-bbb-a-ccc' |
|||
); |
|||
|
|||
|
|||
$res_str = ''; |
|||
|
|||
foreach( $locales as $locale ) |
|||
{ |
|||
$res_str .= "locale='$locale'\n"; |
|||
foreach( $disp_locales as $disp_locale ) |
|||
{ |
|||
$scr = ut_loc_get_display_variant( $locale ,$disp_locale ); |
|||
$res_str .= "disp_locale=$disp_locale : display_variant=$scr"; |
|||
$res_str .= "\n"; |
|||
} |
|||
$res_str .= "-----------------\n"; |
|||
} |
|||
|
|||
return $res_str; |
|||
|
|||
} |
|||
|
|||
include_once( 'ut_common.inc' ); |
|||
ut_run(); |
|||
|
|||
?> |
|||
--EXPECTREGEX-- |
|||
locale='uk-ua_CALIFORNIA@currency=;currency=GRN' |
|||
disp_locale=en : display_variant=CALIFORNIA |
|||
disp_locale=fr : display_variant=CALIFORNIA |
|||
disp_locale=de : display_variant=CALIFORNIA |
|||
----------------- |
|||
locale='root' |
|||
disp_locale=en : display_variant= |
|||
disp_locale=fr : display_variant= |
|||
disp_locale=de : display_variant= |
|||
----------------- |
|||
locale='uk@currency=EURO' |
|||
disp_locale=en : display_variant= |
|||
disp_locale=fr : display_variant= |
|||
disp_locale=de : display_variant= |
|||
----------------- |
|||
locale='Hindi' |
|||
disp_locale=en : display_variant= |
|||
disp_locale=fr : display_variant= |
|||
disp_locale=de : display_variant= |
|||
----------------- |
|||
locale='de' |
|||
disp_locale=en : display_variant= |
|||
disp_locale=fr : display_variant= |
|||
disp_locale=de : display_variant= |
|||
----------------- |
|||
locale='fr' |
|||
disp_locale=en : display_variant= |
|||
disp_locale=fr : display_variant= |
|||
disp_locale=de : display_variant= |
|||
----------------- |
|||
locale='ja' |
|||
disp_locale=en : display_variant= |
|||
disp_locale=fr : display_variant= |
|||
disp_locale=de : display_variant= |
|||
----------------- |
|||
locale='i-enochian' |
|||
disp_locale=en : display_variant= |
|||
disp_locale=fr : display_variant= |
|||
disp_locale=de : display_variant= |
|||
----------------- |
|||
locale='zh-Hant' |
|||
disp_locale=en : display_variant= |
|||
disp_locale=fr : display_variant= |
|||
disp_locale=de : display_variant= |
|||
----------------- |
|||
locale='zh-Hans' |
|||
disp_locale=en : display_variant= |
|||
disp_locale=fr : display_variant= |
|||
disp_locale=de : display_variant= |
|||
----------------- |
|||
locale='sr-Cyrl' |
|||
disp_locale=en : display_variant= |
|||
disp_locale=fr : display_variant= |
|||
disp_locale=de : display_variant= |
|||
----------------- |
|||
locale='sr-Latn' |
|||
disp_locale=en : display_variant= |
|||
disp_locale=fr : display_variant= |
|||
disp_locale=de : display_variant= |
|||
----------------- |
|||
locale='zh-Hans-CN' |
|||
disp_locale=en : display_variant= |
|||
disp_locale=fr : display_variant= |
|||
disp_locale=de : display_variant= |
|||
----------------- |
|||
locale='sr-Latn-CS' |
|||
disp_locale=en : display_variant= |
|||
disp_locale=fr : display_variant= |
|||
disp_locale=de : display_variant= |
|||
----------------- |
|||
locale='sl-rozaj' |
|||
disp_locale=en : display_variant=Resian |
|||
disp_locale=fr : display_variant=dialecte de Resia |
|||
disp_locale=de : display_variant=Resianisch |
|||
----------------- |
|||
locale='sl-nedis' |
|||
disp_locale=en : display_variant=Natisone dialect |
|||
disp_locale=fr : display_variant=dialecte de Natisone |
|||
disp_locale=de : display_variant=Natisone-Dialekt |
|||
----------------- |
|||
locale='de-CH-1901' |
|||
disp_locale=en : display_variant=Traditional German orthography |
|||
disp_locale=fr : display_variant=orthographe allemande traditionnelle |
|||
disp_locale=de : display_variant=(1901|[Aa]lte deutsche Rechtschreibung) |
|||
----------------- |
|||
locale='sl-IT-nedis' |
|||
disp_locale=en : display_variant=Natisone dialect |
|||
disp_locale=fr : display_variant=dialecte de Natisone |
|||
disp_locale=de : display_variant=(NEDIS|Natisone-Dialekt) |
|||
----------------- |
|||
locale='sl-Latn-IT-nedis' |
|||
disp_locale=en : display_variant=Natisone dialect |
|||
disp_locale=fr : display_variant=dialecte de Natisone |
|||
disp_locale=de : display_variant=(NEDIS|Natisone-Dialekt) |
|||
----------------- |
|||
locale='de-DE' |
|||
disp_locale=en : display_variant= |
|||
disp_locale=fr : display_variant= |
|||
disp_locale=de : display_variant= |
|||
----------------- |
|||
locale='en-US' |
|||
disp_locale=en : display_variant= |
|||
disp_locale=fr : display_variant= |
|||
disp_locale=de : display_variant= |
|||
----------------- |
|||
locale='es-419' |
|||
disp_locale=en : display_variant= |
|||
disp_locale=fr : display_variant= |
|||
disp_locale=de : display_variant= |
|||
----------------- |
|||
locale='de-CH-x-phonebk' |
|||
disp_locale=en : display_variant= |
|||
disp_locale=fr : display_variant= |
|||
disp_locale=de : display_variant= |
|||
----------------- |
|||
locale='az-Arab-x-AZE-derbend' |
|||
disp_locale=en : display_variant=(AZE_DERBEND)? |
|||
disp_locale=fr : display_variant=(AZE_DERBEND)? |
|||
disp_locale=de : display_variant=(AZE_DERBEND)? |
|||
----------------- |
|||
locale='zh-min' |
|||
disp_locale=en : display_variant= |
|||
disp_locale=fr : display_variant= |
|||
disp_locale=de : display_variant= |
|||
----------------- |
|||
locale='zh-min-nan-Hant-CN' |
|||
disp_locale=en : display_variant=NAN_HANT_CN |
|||
disp_locale=fr : display_variant=NAN_HANT_CN |
|||
disp_locale=de : display_variant=NAN_HANT_CN |
|||
----------------- |
|||
locale='x-whatever' |
|||
disp_locale=en : display_variant= |
|||
disp_locale=fr : display_variant= |
|||
disp_locale=de : display_variant= |
|||
----------------- |
|||
locale='qaa-Qaaa-QM-x-southern' |
|||
disp_locale=en : display_variant= |
|||
disp_locale=fr : display_variant= |
|||
disp_locale=de : display_variant= |
|||
----------------- |
|||
locale='sr-Latn-QM' |
|||
disp_locale=en : display_variant= |
|||
disp_locale=fr : display_variant= |
|||
disp_locale=de : display_variant= |
|||
----------------- |
|||
locale='sr-Qaaa-CS' |
|||
disp_locale=en : display_variant= |
|||
disp_locale=fr : display_variant= |
|||
disp_locale=de : display_variant= |
|||
----------------- |
|||
locale='en-US-u-islamCal' |
|||
disp_locale=en : display_variant= |
|||
disp_locale=fr : display_variant= |
|||
disp_locale=de : display_variant= |
|||
----------------- |
|||
locale='zh-CN-a-myExt-x-private' |
|||
disp_locale=en : display_variant= |
|||
disp_locale=fr : display_variant= |
|||
disp_locale=de : display_variant= |
|||
----------------- |
|||
locale='en-a-myExt-b-another' |
|||
disp_locale=en : display_variant=(MYEXT_B_ANOTHER)? |
|||
disp_locale=fr : display_variant=(MYEXT_B_ANOTHER)? |
|||
disp_locale=de : display_variant=(MYEXT_B_ANOTHER)? |
|||
----------------- |
|||
locale='de-419-DE' |
|||
disp_locale=en : display_variant=DE |
|||
disp_locale=fr : display_variant=DE |
|||
disp_locale=de : display_variant=DE |
|||
----------------- |
|||
locale='a-DE' |
|||
disp_locale=en : display_variant= |
|||
disp_locale=fr : display_variant= |
|||
disp_locale=de : display_variant= |
|||
----------------- |
|||
locale='ar-a-aaa-b-bbb-a-ccc' |
|||
disp_locale=en : display_variant=(AAA_B_BBB_A_CCC)? |
|||
disp_locale=fr : display_variant=(AAA_B_BBB_A_CCC)? |
|||
disp_locale=de : display_variant=(AAA_B_BBB_A_CCC)? |
|||
----------------- |
|||
@ -0,0 +1,151 @@ |
|||
--TEST-- |
|||
locale_get_keywords() icu >= 4.8 |
|||
--SKIPIF-- |
|||
<?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?> |
|||
<?php if(version_compare(INTL_ICU_VERSION, '4.8') < 0) print 'skip'; ?> |
|||
--FILE-- |
|||
<?php |
|||
|
|||
/* |
|||
* Try getting the keywords for different locales |
|||
* with Procedural and Object methods. |
|||
*/ |
|||
|
|||
function ut_main() |
|||
{ |
|||
$res_str = ''; |
|||
|
|||
$locales = array( |
|||
"de_DE@currency=EUR;collation=PHONEBOOK", |
|||
'uk-ua_CALIFORNIA@currency=GRN' |
|||
); |
|||
|
|||
$locales = array( |
|||
'de_DE@currency=EUR;collation=PHONEBOOK', |
|||
'root', |
|||
'uk@currency=EURO', |
|||
'Hindi', |
|||
//Simple language subtag |
|||
'de', |
|||
'fr', |
|||
'ja', |
|||
'i-enochian', //(example of a grandfathered tag) |
|||
//Language subtag plus Script subtag: |
|||
'zh-Hant', |
|||
'zh-Hans', |
|||
'sr-Cyrl', |
|||
'sr-Latn', |
|||
//Language-Script-Region |
|||
'zh-Hans-CN', |
|||
'sr-Latn-CS', |
|||
//Language-Variant |
|||
'sl-rozaj', |
|||
'sl-nedis', |
|||
//Language-Region-Variant |
|||
'de-CH-1901', |
|||
'sl-IT-nedis', |
|||
//Language-Script-Region-Variant |
|||
'sl-Latn-IT-nedis', |
|||
//Language-Region: |
|||
'de-DE', |
|||
'en-US', |
|||
'es-419', |
|||
//Private use subtags: |
|||
'de-CH-x-phonebk', |
|||
'az-Arab-x-AZE-derbend', |
|||
//Extended language subtags |
|||
'zh-min', |
|||
'zh-min-nan-Hant-CN', |
|||
//Private use registry values |
|||
'x-whatever', |
|||
'qaa-Qaaa-QM-x-southern', |
|||
'sr-Latn-QM', |
|||
'sr-Qaaa-CS', |
|||
/*Tags that use extensions (examples ONLY: extensions MUST be defined |
|||
by revision or update to this document or by RFC): */ |
|||
'en-US-u-islamCal', |
|||
'zh-CN-a-myExt-x-private', |
|||
'en-a-myExt-b-another', |
|||
//Some Invalid Tags: |
|||
'de-419-DE', |
|||
'a-DE', |
|||
'ar-a-aaa-b-bbb-a-ccc' |
|||
); |
|||
|
|||
$res_str = ''; |
|||
|
|||
foreach( $locales as $locale ) |
|||
{ |
|||
$keywords_arr = ut_loc_get_keywords( $locale); |
|||
$res_str .= "$locale: "; |
|||
if( $keywords_arr){ |
|||
foreach( $keywords_arr as $key => $value){ |
|||
$res_str .= "Key is $key and Value is $value \n"; |
|||
} |
|||
} |
|||
else{ |
|||
$res_str .= "No keywords found."; |
|||
} |
|||
$res_str .= "\n"; |
|||
} |
|||
|
|||
$res_str .= "\n"; |
|||
return $res_str; |
|||
|
|||
} |
|||
|
|||
include_once( 'ut_common.inc' ); |
|||
ut_run(); |
|||
|
|||
?> |
|||
--EXPECT-- |
|||
de_DE@currency=EUR;collation=PHONEBOOK: Key is collation and Value is PHONEBOOK |
|||
Key is currency and Value is EUR |
|||
|
|||
root: No keywords found. |
|||
uk@currency=EURO: Key is currency and Value is EURO |
|||
|
|||
Hindi: No keywords found. |
|||
de: No keywords found. |
|||
fr: No keywords found. |
|||
ja: No keywords found. |
|||
i-enochian: Key is x and Value is i-enochian |
|||
|
|||
zh-Hant: No keywords found. |
|||
zh-Hans: No keywords found. |
|||
sr-Cyrl: No keywords found. |
|||
sr-Latn: No keywords found. |
|||
zh-Hans-CN: No keywords found. |
|||
sr-Latn-CS: No keywords found. |
|||
sl-rozaj: No keywords found. |
|||
sl-nedis: No keywords found. |
|||
de-CH-1901: No keywords found. |
|||
sl-IT-nedis: No keywords found. |
|||
sl-Latn-IT-nedis: No keywords found. |
|||
de-DE: No keywords found. |
|||
en-US: No keywords found. |
|||
es-419: No keywords found. |
|||
de-CH-x-phonebk: Key is x and Value is phonebk |
|||
|
|||
az-Arab-x-AZE-derbend: Key is x and Value is aze-derbend |
|||
|
|||
zh-min: No keywords found. |
|||
zh-min-nan-Hant-CN: No keywords found. |
|||
x-whatever: Key is x and Value is whatever |
|||
|
|||
qaa-Qaaa-QM-x-southern: Key is x and Value is southern |
|||
|
|||
sr-Latn-QM: No keywords found. |
|||
sr-Qaaa-CS: No keywords found. |
|||
en-US-u-islamCal: Key is attribute and Value is islamcal |
|||
|
|||
zh-CN-a-myExt-x-private: Key is a and Value is myext |
|||
Key is x and Value is private |
|||
|
|||
en-a-myExt-b-another: Key is a and Value is myext |
|||
Key is b and Value is another |
|||
|
|||
de-419-DE: No keywords found. |
|||
a-DE: No keywords found. |
|||
ar-a-aaa-b-bbb-a-ccc: Key is a and Value is aaa |
|||
Key is b and Value is bbb |
|||
@ -0,0 +1,203 @@ |
|||
--TEST-- |
|||
locale_parse_locale() icu >= 4.8 |
|||
--SKIPIF-- |
|||
<?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?> |
|||
<?php if(version_compare(INTL_ICU_VERSION, '4.8') < 0) print 'skip'; ?> |
|||
--FILE-- |
|||
<?php |
|||
|
|||
/* |
|||
* Try parsing different Locales |
|||
* with Procedural and Object methods. |
|||
*/ |
|||
|
|||
function ut_main() |
|||
{ |
|||
$res_str = ''; |
|||
|
|||
$locales = array( |
|||
'uk-ua_CALIFORNIA@currency=;currency=GRN', |
|||
'root', |
|||
'uk@currency=EURO', |
|||
'Hindi', |
|||
//Simple language subtag |
|||
'de', |
|||
'fr', |
|||
'ja', |
|||
'i-enochian', //(example of a grandfathered tag) |
|||
//Language subtag plus Script subtag: |
|||
'zh-Hant', |
|||
'zh-Hans', |
|||
'sr-Cyrl', |
|||
'sr-Latn', |
|||
//Language-Script-Region |
|||
'zh-Hans-CN', |
|||
'sr-Latn-CS', |
|||
//Language-Variant |
|||
'sl-rozaj', |
|||
'sl-nedis', |
|||
//Language-Region-Variant |
|||
'de-CH-1901', |
|||
'sl-IT-nedis', |
|||
//Language-Script-Region-Variant |
|||
'sl-Latn-IT-nedis', |
|||
//Language-Region: |
|||
'de-DE', |
|||
'en-US', |
|||
'es-419', |
|||
//Private use subtags: |
|||
'de-CH-x-phonebk', |
|||
'az-Arab-x-AZE-derbend', |
|||
//Extended language subtags |
|||
'zh-min', |
|||
'zh-min-nan-Hant-CN', |
|||
//Private use registry values |
|||
'qaa-Qaaa-QM-x-southern', |
|||
'sr-Latn-QM', |
|||
'sr-Qaaa-CS', |
|||
/*Tags that use extensions (examples ONLY: extensions MUST be defined |
|||
by revision or update to this document or by RFC): */ |
|||
'en-US-u-islamCal', |
|||
'zh-CN-a-myExt-x-private', |
|||
'en-a-myExt-b-another', |
|||
//Some Invalid Tags: |
|||
'de-419-DE', |
|||
'a-DE', |
|||
'ar-a-aaa-b-bbb-a-ccc' |
|||
); |
|||
|
|||
|
|||
$res_str = ''; |
|||
|
|||
foreach( $locales as $locale ) |
|||
{ |
|||
$arr = ut_loc_locale_parse( $locale); |
|||
$res_str .= "---------------------\n"; |
|||
$res_str .= "$locale:\n"; |
|||
if( $arr){ |
|||
foreach( $arr as $key => $value){ |
|||
$res_str .= "$key : '$value' , "; |
|||
} |
|||
$res_str = rtrim($res_str); |
|||
} |
|||
else{ |
|||
$res_str .= "No values found from Locale parsing."; |
|||
} |
|||
$res_str .= "\n"; |
|||
} |
|||
|
|||
$res_str .= "\n"; |
|||
return $res_str; |
|||
|
|||
} |
|||
|
|||
include_once( 'ut_common.inc' ); |
|||
ut_run(); |
|||
|
|||
?> |
|||
--EXPECTF-- |
|||
--------------------- |
|||
uk-ua_CALIFORNIA@currency=;currency=GRN: |
|||
language : 'uk' , region : 'UA' , variant0 : 'CALIFORNIA' , |
|||
--------------------- |
|||
root: |
|||
language : 'root' , |
|||
--------------------- |
|||
uk@currency=EURO: |
|||
language : 'uk' , |
|||
--------------------- |
|||
Hindi: |
|||
language : 'hindi' , |
|||
--------------------- |
|||
de: |
|||
language : 'de' , |
|||
--------------------- |
|||
fr: |
|||
language : 'fr' , |
|||
--------------------- |
|||
ja: |
|||
language : 'ja' , |
|||
--------------------- |
|||
i-enochian: |
|||
grandfathered : 'i-enochian' , |
|||
--------------------- |
|||
zh-Hant: |
|||
language : 'zh' , script : 'Hant' , |
|||
--------------------- |
|||
zh-Hans: |
|||
language : 'zh' , script : 'Hans' , |
|||
--------------------- |
|||
sr-Cyrl: |
|||
language : 'sr' , script : 'Cyrl' , |
|||
--------------------- |
|||
sr-Latn: |
|||
language : 'sr' , script : 'Latn' , |
|||
--------------------- |
|||
zh-Hans-CN: |
|||
language : 'zh' , script : 'Hans' , region : 'CN' , |
|||
--------------------- |
|||
sr-Latn-CS: |
|||
language : 'sr' , script : 'Latn' , region : 'CS' , |
|||
--------------------- |
|||
sl-rozaj: |
|||
language : 'sl' , variant0 : 'ROZAJ' , |
|||
--------------------- |
|||
sl-nedis: |
|||
language : 'sl' , variant0 : 'NEDIS' , |
|||
--------------------- |
|||
de-CH-1901: |
|||
language : 'de' , region : 'CH' , variant0 : '1901' , |
|||
--------------------- |
|||
sl-IT-nedis: |
|||
language : 'sl' , region : 'IT' , variant0 : 'NEDIS' , |
|||
--------------------- |
|||
sl-Latn-IT-nedis: |
|||
language : 'sl' , script : 'Latn' , region : 'IT' , variant0 : 'NEDIS' , |
|||
--------------------- |
|||
de-DE: |
|||
language : 'de' , region : 'DE' , |
|||
--------------------- |
|||
en-US: |
|||
language : 'en' , region : 'US' , |
|||
--------------------- |
|||
es-419: |
|||
language : 'es' , region : '419' , |
|||
--------------------- |
|||
de-CH-x-phonebk: |
|||
language : 'de' , region : 'CH' , private0 : 'phonebk' , |
|||
--------------------- |
|||
az-Arab-x-AZE-derbend: |
|||
language : 'az' , script : 'Arab' , private0 : 'AZE' , private1 : 'derbend' , |
|||
--------------------- |
|||
zh-min: |
|||
grandfathered : 'zh-min' , |
|||
--------------------- |
|||
zh-min-nan-Hant-CN: |
|||
language : 'zh' , region : 'MIN' , variant0 : 'NAN' , variant1 : 'HANT' , variant2 : 'CN' , |
|||
--------------------- |
|||
qaa-Qaaa-QM-x-southern: |
|||
language : 'qaa' , script : 'Qaaa' , region : 'QM' , private0 : 'southern' , |
|||
--------------------- |
|||
sr-Latn-QM: |
|||
language : 'sr' , script : 'Latn' , region : 'QM' , |
|||
--------------------- |
|||
sr-Qaaa-CS: |
|||
language : 'sr' , script : 'Qaaa' , region : 'CS' , |
|||
--------------------- |
|||
en-US-u-islamCal: |
|||
language : 'en' , region : 'US' , |
|||
--------------------- |
|||
zh-CN-a-myExt-x-private: |
|||
language : 'zh' , region : 'CN' , private0 : 'private' , |
|||
--------------------- |
|||
en-a-myExt-b-another: |
|||
language : 'en' , |
|||
--------------------- |
|||
de-419-DE: |
|||
language : 'de' , region : '419' , variant0 : 'DE' , |
|||
--------------------- |
|||
a-DE: |
|||
No values found from Locale parsing. |
|||
--------------------- |
|||
ar-a-aaa-b-bbb-a-ccc: |
|||
language : 'ar' , |
|||
@ -0,0 +1,102 @@ |
|||
--TEST-- |
|||
msgfmt creation failures icu >= 4.8 |
|||
--SKIPIF-- |
|||
<?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?> |
|||
<?php if(version_compare(INTL_ICU_VERSION, '4.8') < 0) print 'skip'; ?> |
|||
--FILE-- |
|||
<?php |
|||
|
|||
function err($fmt) { |
|||
if(!$fmt) { |
|||
echo var_export(intl_get_error_message(), true)."\n"; |
|||
} |
|||
} |
|||
|
|||
function crt($t, $l, $s) { |
|||
switch(true) { |
|||
case $t == "O": |
|||
return new MessageFormatter($l, $s); |
|||
break; |
|||
case $t == "C": |
|||
return MessageFormatter::create($l, $s); |
|||
break; |
|||
case $t == "P": |
|||
return msgfmt_create($l, $s); |
|||
break; |
|||
} |
|||
} |
|||
|
|||
$args = array( |
|||
array(null, null), |
|||
array("whatever", "{0,whatever}"), |
|||
array(array(), array()), |
|||
array("en", "{0,choice}"), |
|||
array("fr", "{0,"), |
|||
array("en_US", "\xD0"), |
|||
); |
|||
|
|||
$fmt = new MessageFormatter(); |
|||
err($fmt); |
|||
$fmt = msgfmt_create(); |
|||
err($fmt); |
|||
$fmt = MessageFormatter::create(); |
|||
err($fmt); |
|||
$fmt = new MessageFormatter('en'); |
|||
err($fmt); |
|||
$fmt = msgfmt_create('en'); |
|||
err($fmt); |
|||
$fmt = MessageFormatter::create('en'); |
|||
err($fmt); |
|||
|
|||
foreach($args as $arg) { |
|||
$fmt = crt("O", $arg[0], $arg[1]); |
|||
err($fmt); |
|||
$fmt = crt("C", $arg[0], $arg[1]); |
|||
err($fmt); |
|||
$fmt = crt("P", $arg[0], $arg[1]); |
|||
err($fmt); |
|||
} |
|||
|
|||
?> |
|||
--EXPECTF-- |
|||
Warning: MessageFormatter::__construct() expects exactly 2 parameters, 0 given in %s on line %d |
|||
'msgfmt_create: unable to parse input parameters: U_ILLEGAL_ARGUMENT_ERROR' |
|||
|
|||
Warning: msgfmt_create() expects exactly 2 parameters, 0 given in %s on line %d |
|||
'msgfmt_create: unable to parse input parameters: U_ILLEGAL_ARGUMENT_ERROR' |
|||
|
|||
Warning: MessageFormatter::create() expects exactly 2 parameters, 0 given in %s on line %d |
|||
'msgfmt_create: unable to parse input parameters: U_ILLEGAL_ARGUMENT_ERROR' |
|||
|
|||
Warning: MessageFormatter::__construct() expects exactly 2 parameters, 1 given in %s on line %d |
|||
'msgfmt_create: unable to parse input parameters: U_ILLEGAL_ARGUMENT_ERROR' |
|||
|
|||
Warning: msgfmt_create() expects exactly 2 parameters, 1 given in %s on line %d |
|||
'msgfmt_create: unable to parse input parameters: U_ILLEGAL_ARGUMENT_ERROR' |
|||
|
|||
Warning: MessageFormatter::create() expects exactly 2 parameters, 1 given in %s on line %d |
|||
'msgfmt_create: unable to parse input parameters: U_ILLEGAL_ARGUMENT_ERROR' |
|||
'msgfmt_create: message formatter creation failed: U_ILLEGAL_ARGUMENT_ERROR' |
|||
'msgfmt_create: message formatter creation failed: U_ILLEGAL_ARGUMENT_ERROR' |
|||
'msgfmt_create: message formatter creation failed: U_ILLEGAL_ARGUMENT_ERROR' |
|||
'msgfmt_create: message formatter creation failed: U_ILLEGAL_ARGUMENT_ERROR' |
|||
'msgfmt_create: message formatter creation failed: U_ILLEGAL_ARGUMENT_ERROR' |
|||
'msgfmt_create: message formatter creation failed: U_ILLEGAL_ARGUMENT_ERROR' |
|||
|
|||
Warning: MessageFormatter::__construct() expects parameter 1 to be string, array given in %s on line %d |
|||
'msgfmt_create: unable to parse input parameters: U_ILLEGAL_ARGUMENT_ERROR' |
|||
|
|||
Warning: MessageFormatter::create() expects parameter 1 to be string, array given in %s on line %d |
|||
'msgfmt_create: unable to parse input parameters: U_ILLEGAL_ARGUMENT_ERROR' |
|||
|
|||
Warning: msgfmt_create() expects parameter 1 to be string, array given in %s on line %d |
|||
'msgfmt_create: unable to parse input parameters: U_ILLEGAL_ARGUMENT_ERROR' |
|||
'msgfmt_create: message formatter creation failed: U_PATTERN_SYNTAX_ERROR' |
|||
'msgfmt_create: message formatter creation failed: U_PATTERN_SYNTAX_ERROR' |
|||
'msgfmt_create: message formatter creation failed: U_PATTERN_SYNTAX_ERROR' |
|||
'msgfmt_create: message formatter creation failed: U_UNMATCHED_BRACES' |
|||
'msgfmt_create: message formatter creation failed: U_UNMATCHED_BRACES' |
|||
'msgfmt_create: message formatter creation failed: U_UNMATCHED_BRACES' |
|||
'msgfmt_create: error converting pattern to UTF-16: U_INVALID_CHAR_FOUND' |
|||
'msgfmt_create: error converting pattern to UTF-16: U_INVALID_CHAR_FOUND' |
|||
'msgfmt_create: error converting pattern to UTF-16: U_INVALID_CHAR_FOUND' |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue