Может кто знает, а может кому поможет:
Вобщем засада была следующей: когда устанавливаешь date_format например, в '%b, %d' - тоесть отображение краткого названия месяца, и если локаль русская, то на некоторых хостингах текст отображался вопросами. Смысл в том, что в cms используется стандартная функция формирования даты, в зависимости от локали. А на этих самых хостингах чаще всего либо не настроена локаль, либо стоит не utf.
Варианты решения следующие:
1. попросить настроить локаль
2. применить модификатор в шаблоне, например, {$entry->postdate|cms_date_format:'%b, %d'|mb_convert_encoding:'utf8':'iso-8859-5'}. Естественно, mb расширение должно быть включено, а вместо iso-8859-5 - та кодировка, которая у вас по умолчанию.
Локаль и дата в новостях
-
- Power Poster
- Posts: 339
- Joined: Thu Nov 01, 2007 3:11 pm
Локаль и дата в новостях
Last edited by von-hamster on Mon Aug 31, 2009 7:28 am, edited 1 time in total.
Re: Локаль и дата в новостях
было у меня такое, потом само рассосалось... теперь понятно, откуда ноги растут. Спасибо! )von-hamster wrote: Может кто знает, а может кому поможет:
Вобщем засада была следующей: когда устанавливаешь date_format например, в '%b, %d' - тоесть отображение краткого названия месяца, и если локаль русская, то на некоторых хостингах текст отображался вопросами. Смысл в том, что в cms используется стандартная функция формирования даты, в зависимости от локали. А на этих самых хостингах чаще всего либо не настроена локаль, либо стоит не utf.
Варианты решения следующие:
1. попросить настроить локаль
2. применить модификатор в шаблоне, например, {$entry->postdate|cms_date_format:'%b, %d'|mb_convert_encoding:'utf8':'iso-8859-5'}. Естественно, mb расширение должно быть включено, а вместо iso-8859-5 - та кодировка, которая у вас по умолчанию.
Re: Локаль и дата в новостях
Вариант 1 идеологически правильный =) а кто не хочет, того по морде чайником.
unsigned double ZYV;
Re: Локаль и дата в новостях
{$entry->postdate|cms_date_format:'%d %B %Y'|mb_convert_encoding:'utf8':'windows-1251'}
Вот после этого у меня заработало на сайте, спасибо.
А как сделать, чтобы в административной панели новости вопросиками не отображались?
Вот после этого у меня заработало на сайте, спасибо.
А как сделать, чтобы в административной панели новости вопросиками не отображались?
Re: Локаль и дата в новостях
Ребят, я разобрался с проблемой.
Как я это сделал, сейчас напишу. Может кому-нибудь пригодится.
1.
Написал в техподдержку. Мне продемонстрировали, что локаль настроена правильно вот таким скриптом
setlocale(LC_ALL,'ru_RU.utf-8');
echo strftime("%A %e %B %Y", mktime(0, 0, 0, 12, 22, 1978));
2. Видимо локаль правится где-то еще. Я нашел 2 скрипта, где выводится дата для юзер-интерфейса и для админки.
/lib/smarty/plugins/modifier.date_format.php
/admin/moduleinterface.php
И прописал в обоих скриптах такую строчку.
setlocale(LC_ALL,'ru_RU.utf-8');
3. Все заработало. Названия месяцев отображаются правильно. МОжет быть я как-то топорно решил проблему. Но времени на более изящное решение у меня не было.
Как я это сделал, сейчас напишу. Может кому-нибудь пригодится.
1.
Написал в техподдержку. Мне продемонстрировали, что локаль настроена правильно вот таким скриптом
setlocale(LC_ALL,'ru_RU.utf-8');
echo strftime("%A %e %B %Y", mktime(0, 0, 0, 12, 22, 1978));
2. Видимо локаль правится где-то еще. Я нашел 2 скрипта, где выводится дата для юзер-интерфейса и для админки.
/lib/smarty/plugins/modifier.date_format.php
/admin/moduleinterface.php
И прописал в обоих скриптах такую строчку.
setlocale(LC_ALL,'ru_RU.utf-8');
3. Все заработало. Названия месяцев отображаются правильно. МОжет быть я как-то топорно решил проблему. Но времени на более изящное решение у меня не было.
-
- Power Poster
- Posts: 339
- Joined: Thu Nov 01, 2007 3:11 pm
Re: Локаль и дата в новостях
Напиши разработчикам. Чтобы они это внесли в код или просто исправили.
Re: Локаль и дата в новостях
Я в английском слабоват, чтобы писать разработчикам.
Re: Локаль и дата в новостях
В последней версии 1.6.6 в config.php внесена установка глобальной локали
Пример для моего хостинга:
$config['locale'] = 'ru_RU.UTF-8';
(Регистр имеет значение)
Сам 3 часа парился пока разобрался. Зато изучил новую функцию:
http://php.su/functions/?setlocale
http://php.net/manual/en/function.setlocale.php
Пример для моего хостинга:
$config['locale'] = 'ru_RU.UTF-8';
(Регистр имеет значение)
Сам 3 часа парился пока разобрался. Зато изучил новую функцию:
http://php.su/functions/?setlocale
http://php.net/manual/en/function.setlocale.php