Создавая многоязычное приложение, я хотел бы выводить правильные номера и даты. Тестирование на Win7 Я терпеть неудачу с обоими:
setlocale(LC_ALL, 'de_DE@euro', 'de_DE', 'deu', 'de', 'ge', 'German_Germany.1251');
var_dump(localeconv());
Показывает, что десятичный символ. но должно быть, для немецкого.
$f = 3.14;
echo($f);
Подтверждает вывод 3.14.
Независимо от того, что я пытался установить локаль, у меня не было успеха. Аналогичные результаты применяются к number_format()
. Однако он работает с датами, например, с именами месяцев.
Каков правильный способ setlocale()
для Windows/CLI?
Похоже, что это известная проблема с PHP с 5.3: https://bugs.php.net/bug.php?id=65230
setlocale()
следует избегать в пользу NumberFormatter
когда это возможно.