php gettext не работает на Windows Server 2008, PHP 5.5

У меня проблема с получением gettext для работы на Windows Server 2008 R2, PHP 5.5

Я делаю следующее в моем PHP-скрипте:

$language = 'NB';
putenv("LANG=".$language);
putenv("LC_ALL=".$language);
setlocale(LC_ALL, $language);
$domain = 'messages';
bindtextdomain($domain, 'C:/path_to_translations/translations');
textdomain($domain);

Мои файлы переводов находятся в следующих каталогах:

C: /path_to_translations/translations/NB/LC_MESSAGES/messages.po
C: /path_to_translations/translations/NB/LC_MESSAGES/messages.mo

Это отлично работает на моем компьютере с Windows 7 с PHP 5.3

Я предполагаю, что NB не является действительным именем локали в Windows, но setlocale (LC_ALL, ‘NB’) по-прежнему возвращает ‘NB’, а не FALSE.
Тем не менее, чтобы увидеть, может ли это быть как-то связано с проблемой, я попытался установить $ language = ‘norwegian’, в этом случае setlocale (LC_ALL, ‘norwegian’) возвращает ‘Norwegian_Norway.1252’, и попытался
измените пути к C: /path_to_translations/translations/norwegian/LC_MESSAGES/messages.mo и C: /path_to_translations/translations/Norwegian_Norway.1252/LC_MESSAGES/messages.mo, а также измените кодировку файлов .po и .mo из «UTF-8» — «Windows 1252».
Тем не менее, я не могу заставить перевод работать на Windows Server 2008 R2, PHP 5.5.

Любая помощь очень ценится!

0

Решение

Обновить. Никогда не получал gettext для работы с php 5.5, но обнаружил, что у других пользователей были похожие проблемы (https://bugs.php.net/bug.php?id=66265)

Попробовал вместо этого установить php 5.4, и теперь все работает как положено.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]