LINUX.ORG.RU

php+gettext


0

0

нужно сделать поддержку многоязычности для сайта. решил использовать
gettext, т.к. шаблоны туда прикручивать уж слишком геморно, придется
чуть ли не с нуля переписывать.

завернул все строки в _(''), создал нужные *.po, скомпилил, положил куда
надо - не работает. в чем может быть проблема?

вот кусок кода:

$LANGS = array(
  'ru' => array('title' => 'Русский', 'locale' => 'ru_RU.UTF-8'),
  'en' => array('title' => 'English', 'locale' => 'en_GB.UTF-8')
);

$l = explode('.', $LANGS[$_SESSION['lang']]['locale']);
$LANG = $l[0];
$CHARSET = $l[1];

putenv("LANGUAGE=$LANG");
putenv("LANG=$LANG");
setlocale(LC_MESSAGES, $LANG);
setlocale(LC_ALL, $LANG);
bindtextdomain(PROJECT_UNIX_NAME, LOCALES_DIR);
bind_textdomain_codeset(PROJECT_UNIX_NAME, preg_replace("/^[a-z]{2}(_[A-Z]{2})?/m", "", $CHARSET));
textdomain(PROJECT_UNIX_NAME);

// PROJECT_UNIX_NAME, LOCALES_DIR - константы, определенные в конфиге
★★★

дополнение:

1) все msgid на русском в utf8, т.к. изначально сайт был на русском

2) нужные локали сгенерены

friday ★★★
() автор топика
Ответ на: комментарий от friday

из консоли все работает нормально, через веб - ни фига. и в логах ничего

friday ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.