Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. 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 Яндекс.Метрика Яндекс цитирования