Хорошо, у меня есть следующий 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 и сохранил их в подкаталоге в каталоге, где находится приведенный выше код. Путь к указанному каталогу:
locale / es / LC_MESSAGES
согласно phpinfo, gettext включен на веб-сервере, на котором я работаю (размещенный на A Small Orange).
Вызов страницы показывает, что вызов getenv возвращает "es", но выходит исходная английская строка, а не ожидаемая на испанском языке. Я также пробовал использовать _ ("Hello World!"), Но безрезультатно.
Я не получаю предупреждений, ошибок, ничего. Итак, я совершенно не понимаю, как даже устранить неполадки, где это может приводить к сбою.
Приветствуются любые рекомендации.