Недавно я потратил некоторое время на перевод приложения PHP, работающего на Linux с Apache2.Чтобы заставить gettext работать, мне нужно было прикоснуться к системным каталогам для каждого языка, который я хотел бы поддержать, поэтому мне интересно, есть ли более простой способ поддержки получения текста из gettext на всех языках.
Мои файлы локалей находятся в подпрограммекаталог моего проекта:
./locale/sv_SE/LC_MESSAGES/default.po
./locale/es_BO/LC_MESSAGES/default.po
и код: находится в ./gettext.php вот так:
<?php
setlocale(LC_ALL, "es_BO.utf8");
bindtextdomain("default", "locale/"); # usually works
textdomain("default");
echo echo _("test");
?>
Код C - это точно такой же код, но с некоторыми заголовками.
Этот код не выведет мой испанский перевод, если я не "включу" боливийскую испанскую систему в целом с этим уродливым хаком, связав уже существующую локаль sv_SE с es_BO:
sudo ln -s /usr/lib/locale/sv_SE.utf8 /usr/lib/locale/es_BO.utf8
Updates
Я думаю, что мой вопрос был неправильным "Итак, как мне избежать выполнения команды ln -s , или просто скажите мне, если я поступаю неправильнопуть?"в основном то, что я хочу знать, если для gettext нужны эти файлы в / usr / lib / locale "или как я по-простому использую gettext только для перевода сообщений.
Update2 Iпопытался использовать setlocal(LC_MESSAGES, "es_BO.utf8")
, но ему все еще нужны сообщения в / usr / lib / locale.