apache — PHP Gettext, всегда пытается открыть файл перевода на английский

Хорошо, отпусти прямо к коду,

PHP-код:

$locale = "Dutch_Netherlands.1252";
echo PHP_VERSION . "<br />";
echo (putenv("LC_ALL=$locale") ? "Success" : "Failure"). "<br />";
echo setlocale(LC_ALL, $locale) . "<br />";
echo bindtextdomain("messages", "C:\\Hello") . "<br />";
echo textdomain("messages") . "<br />";
echo gettext("Hello") . "<br />";

Структура каталогов:

C:\Hello\Dutch_Netherlands.1252\LC_MESSAGES\messages.mo
C:\Hello\Dutch_Netherlands.1252\LC_MESSAGES\messages.po

messages.po содержание:

msgid ""msgstr """Project-Id-Version: messages\n""POT-Creation-Date: 2014-12-14 13:27+0330\n""PO-Revision-Date: 2014-12-14 15:41+0330\n""Last-Translator: xxxxxxxxxxxx\n""Language-Team: \n""Language: nl_NL\n""MIME-Version: 1.0\n""Content-Type: text/plain; charset=windows-1252\n""Content-Transfer-Encoding: 8bit\n""X-Generator: Poedit 1.7.1\n""X-Poedit-Basepath: .\n""Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ..\..\..\xxxxxx:531
msgid "Hello"msgstr "LOADED"

Выход:

5.5.12
Success
Dutch_Netherlands.1252
C:\Hello
messages
Hello

Результаты Process Monitor:

httpd.exe QueryDirectory   C:\Hello                                  SUCCESS
httpd.exe CreateFile       C:\Hello\en_US\LC_MESSAGES\messages.mo    PATH NOT FOUND: Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, AllocationSize: n/a
httpd.exe CreateFile       C:\Hello\en\LC_MESSAGES\messages.mo       PATH NOT FOUND: Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, AllocationSize: n/a

Я не вижу никакой причины, по которой приведенный выше код не работает. Поэтому здесь я должен спросить вас, видите ли вы что-нибудь, чего я не вижу. Все идет гладко, и все же Apache хочет прочитать английскую версию.

Windows 7 SP1 x64

0

Решение

Основываясь на моих тестах и ​​поисках,

Это общая проблема с Apache в 64-разрядных версиях Windows,

Я не уверен, что эта ошибка в PHP, библиотеке GetText или Apache, но это серьезная ошибка.

На данный момент использование 32-битной версии Wamp может решить проблему. Я не нашел обходного пути для веб-службы по умолчанию VS.Php.

0

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

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

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