Разрабатывая многоязычное приложение, я хотел бы выводить числа и даты, правильные для локали. Тестирование на 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
когда возможно.
Других решений пока нет …