PHP gettext не работает - PullRequest
       40

PHP gettext не работает

2 голосов
/ 19 июня 2011

Gettext просто не работает для меня:

    putenv('LC_ALL=zh_CN.utf8');
    setlocale(LC_ALL, 'zh_CN.utf8');
    bindtextdomain('messages', __DIR__.'/locale');
    textdomain('messages');

messages.mo расположение локаль / zh_CN.utf8 / LC_MESSAGES.

$locale -a
C
en_AG
en_US.utf8
en_ZA.utf8
en_ZW.utf8
POSIX
zh_CN.utf8
zh_SG.utf8

Я в Ubuntu.

Есть идеи?

Ответы [ 2 ]

4 голосов
/ 04 июля 2011

Судя по этой заметке , вам, скорее всего, не хватает битов UTF-8.Это помогло мне с проблемой «Gettext не работает».

$directory = dirname(__FILE__).'/locale';
$domain = 'mydomain';

$locale ="fi_FI.utf8";

//putenv("LANG=".$locale); //not needed for my tests, but people say it's useful for windows

setlocale( LC_MESSAGES, $locale);
bindtextdomain($domain, $directory);
textdomain($domain);
bind_textdomain_codeset($domain, 'UTF-8');

Внутри локали должна быть файловая структура

./locale/pt/LC_MESSAGES/mydomain.mo

или аналогичная.

Важно:Если файл mo уже прочитан Apache, его необходимо перезапустить, чтобы он мог прочитать новый файл.Другими словами, есть какая-то система кеширования, о которой я до сих пор не знаю.

0 голосов
/ 19 сентября 2013

Для меня это сработало, перезапустив apache.

...