У меня странная проблема с gettext
в моем приложении PHP .Он работает на моих машинах для разработки (Ubuntu 10.10 32-битная, 2 x Windows 7 64-битная, Windows 7 32-битная, все работают под XAMPP) .
Рабочий сервер является платным хостом, на котором работаетаромат Linux 64 бит .Я не знаю точно, какой.Я могу попытаться выяснить, имеет ли это значение.
Вот как я инициализирую gettext:
//just FYI:
//$this->data['language'] == 'pl'
//dirname(__FILE__).'/../language/locale' ==
//'/home/mingos/public_html/example.com/application/controllers/../language/locale'
putenv('LANGUAGE='.$this->data['language']);
putenv('LANG='.$this->data['language']);
putenv('LC_ALL='.$this->data['language']);
setlocale(LC_ALL,$this->data['language']);
bindtextdomain($this->data['language'], dirname(__FILE__).'/../language/locale');
bind_textdomain_codeset($this->data['language'],'UTF-8');
textdomain($this->data['language']);
Я запустил phpinfo()
на сервере и обнаружил, чтоgettext
включен, а safe_mode
выключен, исключая возможность неизменности LC_ALL
(я думаю).
Скомпилированный каталог gettext:
/home/mingos/public_html/example.com/application/language/locale/pl/LC_MESSAGES/pl.mo
Таким образом, путь, заданный в bindtextdomain
, является правильным.
Я не получаю никаких уведомлений или предупреждений, но gettext
не извлекает переводы из моего каталога, возвращая просто те строки, в которые он подается, напримерgettext('About us')
возвращает About us
вместо O nas
.
Сам каталог правильно скомпилирован с использованием poEdit
и подтверждено, что он работает на моих машинах с 4 разработчиками.
Что может бытьдругие возможные причины этого?