За последние несколько дней я боролся с php, gettext и получил мой, скоро будущий, новый сайт, переведенный с датского на английский.Gettext не переводится
У меня есть каталоги с моим .po и .mo файлов, созданные следующим образом:
/locale/en_US/LC_MESSAGES/
В соответствии с этим обучающей программой: Localizing PHP web sites using gettext я добавил следующее:
$locale = "en_US";
if (isSet($_GET["locale"])) $locale = $_GET["locale"];
putenv("LC_ALL=$locale");
setlocale(LC_ALL, $locale);
bindtextdomain("messages", "./locale");
textdomain("messages");
Я добавил пять заходов на моей странице:
echo _('Overskrift 1')
Но когда я просматриваю страницу на своем сервере, ящик Debian с PHP 5.4 и поддержка gettext включена, ничего не переведено.
Я понятия не имею, что я делаю неправильно. Я уверен, что это что-то маленькое, но я просто не вижу этого. Может, у вас есть какие-то указатели?
Мой .po файл:
msgid ""
msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: POEditor.com\n"
"Project-Id-Version: Portfolio\n"
"Language: en\n"
#:
msgid "Overskrift 1"
msgstr "Headline 1"
#:
msgid "Overskrift 2"
msgstr "Headline 2"
#:
msgid "Overskrift 3"
msgstr "Headline 3"
#:
msgid "Overskrift 4"
msgstr "Headline 4"
#:
msgid "Overskrift 5"
msgstr "Headline 5"
Пробовал использовать двойные кавычки в эхо, согласно вашему учебнику? – Jeppe
К сожалению, это ничего не изменило. –
Какой результат вы получаете для 'var_dump (setlocale (LC_ALL, 'en_US'));'? – bitWorking