Page 1 of 1
Локаль и дата в новостях
Posted: Mon Aug 31, 2009 7:17 am
by von-hamster
Может кто знает, а может кому поможет:
Вобщем засада была следующей: когда устанавливаешь 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: Локаль и дата в новостях
Posted: Mon Aug 31, 2009 4:03 pm
by ilia3d
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: Локаль и дата в новостях
Posted: Tue Sep 15, 2009 7:48 am
by ZYV
Вариант 1 идеологически правильный =) а кто не хочет, того по морде чайником.
Re: Локаль и дата в новостях
Posted: Wed Nov 18, 2009 6:25 pm
by Leee
{$entry->postdate|cms_date_format:'%d %B %Y'|mb_convert_encoding:'utf8':'windows-1251'}
Вот после этого у меня заработало на сайте, спасибо.
А как сделать, чтобы в административной панели новости вопросиками не отображались?
Re: Локаль и дата в новостях
Posted: Thu Nov 19, 2009 9:01 am
by Leee
Ребят, я разобрался с проблемой.
Как я это сделал, сейчас напишу. Может кому-нибудь пригодится.
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. Все заработало. Названия месяцев отображаются правильно. МОжет быть я как-то топорно решил проблему. Но времени на более изящное решение у меня не было.
Re: Локаль и дата в новостях
Posted: Thu Nov 19, 2009 2:22 pm
by von-hamster
Напиши разработчикам. Чтобы они это внесли в код или просто исправили.
Re: Локаль и дата в новостях
Posted: Sat Nov 21, 2009 2:15 pm
by Leee
Я в английском слабоват, чтобы писать разработчикам.
Re: Локаль и дата в новостях
Posted: Mon Jan 25, 2010 8:35 pm
by PhantomX
В последней версии 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