mirror of
https://github.com/php/php-src.git
synced 2025-08-20 01:14:28 +02:00
Fixed bug #70484 selectordinal doesn't work with named parameters
This commit is contained in:
parent
72c9324d70
commit
22336db97f
2 changed files with 101 additions and 0 deletions
|
@ -264,6 +264,10 @@ static HashTable *umsg_parse_format(MessageFormatter_object *mfo,
|
|||
type = Formattable::kDouble;
|
||||
} else if (argType == UMSGPAT_ARG_TYPE_SELECT) {
|
||||
type = Formattable::kString;
|
||||
#if U_ICU_VERSION_MAJOR_NUM >= 50
|
||||
} else if (argType == UMSGPAT_ARG_TYPE_SELECTORDINAL) {
|
||||
type = Formattable::kDouble;
|
||||
#endif
|
||||
} else {
|
||||
type = Formattable::kString;
|
||||
}
|
||||
|
|
97
ext/intl/tests/msgfmt_bug70484.phpt
Normal file
97
ext/intl/tests/msgfmt_bug70484.phpt
Normal file
|
@ -0,0 +1,97 @@
|
|||
--TEST--
|
||||
Bug #70484 selectordinal doesn't work with named parameters
|
||||
--SKIPIF--
|
||||
<?php
|
||||
if (!extension_loaded('intl'))
|
||||
die('skip intl extension not enabled');
|
||||
if (version_compare(INTL_ICU_VERSION, '5.0') < 0)
|
||||
die('skip for ICU 5.0+');
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$locale = array("de", "fr", "en", "ru",);
|
||||
|
||||
$data = array(42, 42.42, 2147483643, 2147483643.12345, 5);
|
||||
|
||||
foreach ($locale as $lc) {
|
||||
echo "$lc string key\n";
|
||||
$m = new MessageFormatter($lc, "{n, selectordinal, =5 {five} zero {#-zero} one {#-one} two {#-two} few {#-few} many {#-many} other {#-other}}");
|
||||
foreach ($data as $i) {
|
||||
var_dump($m->format(array("n" => $i)));
|
||||
if ($m->getErrorCode()) {
|
||||
echo "$lc $i ", $m->getErrorMessage();
|
||||
}
|
||||
}
|
||||
echo "\n";
|
||||
|
||||
echo "$lc numeric key\n";
|
||||
$m = new MessageFormatter($lc, "{0, selectordinal, =5 {five} zero {#-zero} one {#-one} two {#-two} few {#-few} many {#-many} other {#-other}}");
|
||||
foreach ($data as $i) {
|
||||
var_dump($m->format(array($i)));
|
||||
if ($m->getErrorCode()) {
|
||||
echo "$lc $i ", $m->getErrorMessage();
|
||||
}
|
||||
}
|
||||
echo "\n";
|
||||
}
|
||||
|
||||
?>
|
||||
==DONE==
|
||||
--EXPECT--
|
||||
de string key
|
||||
string(8) "42-other"
|
||||
string(11) "42,42-other"
|
||||
string(19) "2.147.483.643-other"
|
||||
string(23) "2.147.483.643,123-other"
|
||||
string(4) "five"
|
||||
|
||||
de numeric key
|
||||
string(8) "42-other"
|
||||
string(11) "42,42-other"
|
||||
string(19) "2.147.483.643-other"
|
||||
string(23) "2.147.483.643,123-other"
|
||||
string(4) "five"
|
||||
|
||||
fr string key
|
||||
string(8) "42-other"
|
||||
string(11) "42,42-other"
|
||||
string(22) "2 147 483 643-other"
|
||||
string(26) "2 147 483 643,123-other"
|
||||
string(4) "five"
|
||||
|
||||
fr numeric key
|
||||
string(8) "42-other"
|
||||
string(11) "42,42-other"
|
||||
string(22) "2 147 483 643-other"
|
||||
string(26) "2 147 483 643,123-other"
|
||||
string(4) "five"
|
||||
|
||||
en string key
|
||||
string(6) "42-two"
|
||||
string(11) "42.42-other"
|
||||
string(17) "2,147,483,643-few"
|
||||
string(23) "2,147,483,643.123-other"
|
||||
string(4) "five"
|
||||
|
||||
en numeric key
|
||||
string(6) "42-two"
|
||||
string(11) "42.42-other"
|
||||
string(17) "2,147,483,643-few"
|
||||
string(23) "2,147,483,643.123-other"
|
||||
string(4) "five"
|
||||
|
||||
ru string key
|
||||
string(8) "42-other"
|
||||
string(11) "42,42-other"
|
||||
string(22) "2 147 483 643-other"
|
||||
string(26) "2 147 483 643,123-other"
|
||||
string(4) "five"
|
||||
|
||||
ru numeric key
|
||||
string(8) "42-other"
|
||||
string(11) "42,42-other"
|
||||
string(22) "2 147 483 643-other"
|
||||
string(26) "2 147 483 643,123-other"
|
||||
string(4) "five"
|
||||
|
||||
==DONE==
|
Loading…
Add table
Add a link
Reference in a new issue