Это известная ошибка: https://bugs.php.net/bug.php?id=66265
я могу воспроизвести проблему между XAMPP 1.8.2 и 1.8.3. Который использует PHP 5.4.19 и PHP 5.5.6 соответственно. Первый правильно загружает любой файл PO, который я запрашиваю, последний всегда загружает nl_NL
независимо от того, какие параметры я использую. Моя ОС Windows является голландской.
Конечно, это не решит вашу проблему, но переход туда (и добавьте свой голос) может помочь решить эту проблему.
И многие ответы утверждают, что языковой стандарт должен быть установлен на ОС для работы ПО. Неправда.
Это просто не соответствует действительности. Моему PHP-файлу нужны только файлы PO, и он отлично работал для каждой локали, которую я пробовал. Как на компьютере с Windows 7, так и на Windows 8.1, по умолчанию используется голландский. Я могу использовать свой файл PHP в немецком, французском, английском и голландском языковых файлах.
Это все работало нормально, то PO файлы, в которых загружены и весь PHP страницы был показан на выбранном языке:
// All these lines worked fine with PHP 5.4.19
putenv('LC_ALL=de_DE'); setlocale(LC_MESSAGES, 'de_DE'); // German
putenv('LC_ALL=fr_FR'); setlocale(LC_MESSAGES, 'fr_FR'); // French
putenv('LC_ALL=en_UK'); setlocale(LC_MESSAGES, 'en_UK'); // English
putenv('LC_ALL=nl_NL'); setlocale(LC_MESSAGES, 'nl_NL'); // Dutch
Тогда я попытался PHP 5.5.6
и те же команды перестали работать. На странице теперь всегда (!) Отображается локаль nl_NL
. Выполнение getlocale(LC_ALL,0)
возвращает Dutch_Netherlands.1252
, который является языком по умолчанию ОС. Что-то делает мой PHP всегда использовать файлы nl_NL
PO.
Итак, чтобы оставить все эти ответы на отдых: ОС не обязательно должен иметь установленный язык, файлы PO отлично работают без PHP 5.4.19, но не в PHP 5.5.6.
Это все о том, что включено в базовой операционной системе, и о фактическом значении используемой строки locale ... см. Примеры на странице [doc page] (http://www.php.net/manual /en/function.setlocale.php) для различий в Windows –
Возможно, именно по этой причине на одном компьютере это окна 8, на другой странице – Tominator
Я считаю, что вижу регресс между XAMPP 1.8.2 и 1.8.3 в этом отношении .. он отлично работал в Windows 8, используя 'setlocale (LC_MESSAGES, 'de_DE')', также с 'nl_NL',' en_UK' и 'fr_FR'. Но так как замена XAMPP устанавливает его ограниченный набор локалей ОС. Так же, как и перед тестовым скриптом с 'getlocale (LC_ALL, 0)' возвращает 'Dutch_Netherlands.1252' Дальнейшее тестирование требуется .. Между тем, можете ли вы подтвердить, что вы используете XAMPP <1.8.3, когда он действительно работал ?. –