Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: php_gettext + php_iconv. Internationalization. Как очистить кэш?
 
 автор: Sergey Ivanov   (17.01.2007 в 10:26)   письмо автору
 
 

Здравствуйте!
Используя расширение 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.");
?>

   
 
 автор: XPraptor   (17.01.2007 в 12:00)   письмо автору
 
   для: 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");
?>

   
 
 автор: Sergey Ivanov   (17.01.2007 в 12:23)   письмо автору
 
   для: XPraptor   (17.01.2007 в 12:00)
 

Спасибо, но это не помогло. Проблема в том, что именно само расширение не выдает обновленных строк, речь идет не о кэшировании отсылаемого сервером контента, а о кэшировании строк, связанных с той или иной локалью. В моем случае страница генерируется каждый раз при обращении к ней, но изменения выводимых строк не происходит.

   
 
 автор: Sergey Ivanov   (17.01.2007 в 15:11)   письмо автору
 
   для: 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 в 19:03)   письмо автору
 
   для: Sergey Ivanov   (17.01.2007 в 10:26)
 

Люди, помогите!!! Пожалуйста!
При изменении перевода продолжается вывод старых строк (детали см. выше). Спасает только рестарт Апача, но этот вариант не проходной.

Спецы по gettext, отзовитесь!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования