| |
|
|
| | Здравствуйте!
Используя расширение php_gettext и php_iconv для разработки многоязыкового интерфейса, столкнулся с проблемой: запускаю код (он приведен ниже), получаю нужный результат - то есть осуществляется вывод текста на усском языке. Но в случае изменения перевода, то есть при создании новых файлов messages.mo и messages.po, не происходит изменений при выводе. Похоже имеется кэш. Прошу специаслистов и просто людей знакомых с данными расширениями помочь мне решить проблему с обновлением перевода.
Заранее благодарю.
<?php
putenv("LANG=ru_RU");
setlocale(LC_ALL, "Russian");
$domain = 'messages';
bindtextdomain($domain, "./locale");
textdomain($domain);
bind_textdomain_codeset($domain, "cp1251");
echo _("Some text in appropriate language.");
?>
|
| |
| |
|
|
| |
|
|
| |
для: Sergey Ivanov
(17.01.2007 в 10:26)
| | | Вот начало любого файла на пхп. Тут указана и дата создания файла (что он свежий) и запрет кэширования.
<?php
Header("Expires: Thu, 19 Feb 1998 13:24:18 GMT");
Header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
Header("Cache-Control: no-cache, must-revalidate");
Header("Cache-Control: post-check=0,pre-check=0");
Header("Cache-Control: max-age=0");
Header("Pragma: no-cache");
?> | |
| |
|
|
| |
|
|
| |
для: XPraptor
(17.01.2007 в 12:00)
| | | Спасибо, но это не помогло. Проблема в том, что именно само расширение не выдает обновленных строк, речь идет не о кэшировании отсылаемого сервером контента, а о кэшировании строк, связанных с той или иной локалью. В моем случае страница генерируется каждый раз при обращении к ней, но изменения выводимых строк не происходит. | |
| |
|
|
| |
|
|
| |
для: Sergey Ivanov
(17.01.2007 в 10:26)
| | | Проблема решилась созданием двух конфигураций для каждого языка.
config_ru.php
<?php
putenv("LANG=ru_RU");
setlocale(LC_ALL, "Russian");
$domain = 'messages';
bindtextdomain($domain, "./locale");
textdomain($domain);
bind_textdomain_codeset($domain, "cp1251");
?>
|
config_en.php
<?php
putenv("LANG=en_US");
setlocale(LC_ALL, "American");
$domain = 'messages';
bindtextdomain($domain, "./locale");
textdomain($domain);
bind_textdomain_codeset($domain, "iso-8859-1");
?>
|
и соответствующих им файлов messages.mo и messages.po.
При этом сами строки в скриптах, видимо, придется записать в виде
$str = 'some_text_to_translate';
|
Надеюсь, это кому-нибудь поможет. | |
| |
|
|
| |
|
|
| |
для: Sergey Ivanov
(17.01.2007 в 10:26)
| | | Люди, помогите!!! Пожалуйста!
При изменении перевода продолжается вывод старых строк (детали см. выше). Спасает только рестарт Апача, но этот вариант не проходной.
Спецы по gettext, отзовитесь! | |
| |
|
|