Хорошо, у меня есть следующий код PHP:
<?php
$locale = "es";
//$locale = $_SERVER["HTTP_ACCEPT_LANGUAGE"];
//if (isSet($_GET["locale"])) $locale = $_GET["locale"];
putenv("LC_ALL=$locale");
putenv("LANGUAGE=$locale");
setlocale(LC_ALL, $locale);
bindtextdomain("messages", "./locale");
bind_textdomain_codeset("messages", 'UTF-8');
textdomain("messages");
echo(getenv("LC_ALL"));
echo("<br>");
echo gettext("Hello World!");
?>
Я создал испанские файлы messages.po и messages.mo и сохранил их в подкаталоге в каталоге, где находится приведенный выше код. Путь к указанному каталогу:
локаль / эс / LC_MESSAGES
согласно phpinfo, gettext включен на веб-сервере, на котором я работаю (хостинг A Small Orange).
Вызов страницы показывает, что вызов getenv возвращает 'es', но выводится оригинальная английская строка, а не ожидаемый испанский. Я также пробовал с _ ("Hello World!"), Но также безрезультатно.
Я не получаю ни предупреждений, ни ошибок, ни ничего. Итак, я в полной растерянности относительно того, как даже устранить неполадки, в которых это может быть неудачным.
Любое руководство будет с благодарностью.