Я пытаюсь использовать расширение php gettext в php 5.5 (на сервере win2008, используя IIS7). Я делаю это:
<?php
$locale = "es";
if (isSet($_GET["locale"])) $locale = $_GET["locale"];
putenv("LC_ALL=$locale");
setlocale(LC_ALL, $locale);
bindtextdomain("messages", "./locale");
textdomain("messages");
echo gettext("Hello world");
?>
С этой структурой папок на месте:
locale/es/LC_MESSAGES/messages.mo
Но он всегда возвращает мир Hello, а не правильный перевод, который на данный момент (на основе моего отсутствия испанских навыков) заключается в файле messages.po:
msgid ""
msgstr ""
"Project-Id-Version: TestXlations\n"
"POT-Creation-Date: 2014-04-19 08:15-0500\n"
"PO-Revision-Date: 2014-04-19 09:18-0500\n"
"Language-Team: \n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.6.3\n"
"X-Poedit-Basepath: .\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Poedit-SearchPath-0: c:/dev\n"
msgid "Hello world"
msgstr "Hola World"
Это не выполняется из строки cmd и через IIS. Поэтому я вижу вызов gettext и т.д. И выполняю его, но он не читает файл перевода. как я могу отладить это дальше? даже если удалить файл перевода, я получаю такое же поведение.