Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   Общие вопросы (http://forum.typo3.ru/forumdisplay.php?f=12)
-   -   newscalendar и русская дата (http://forum.typo3.ru/showthread.php?t=7444)

void 05.04.2009 04:13

По-моему, это известная проблема, что в Windows php даже при корректно указанной локали "russian" выдаёт имена дней не в юникоде, а в 1251. Как-то раз боролся с этим в расширении cal, вспоминаю с содроганием.

Давным бы давно уже слазили в код расширения и похакали нужный фрагмент, чем толочь воду в ступе...

-=UncleByte=- 05.04.2009 04:43

В документации к плагину написано следующее:
Цитата:

NOTE: In some cases you must setup your php.ini configuration settings for translation to work as expected.This was reported in Canada where October month was displayed as November.“Since you use gmmktime(), the "php.ini" must have the right date.timezone information.For us in Canada we needed to set UCT and now the right month is showing.” Patrick Gaumond
Посмотрите все ли у вас там настроено.

typik 05.04.2009 21:52

Цитата:

Сообщение от void (Сообщение 24001)
По-моему, это известная проблема, что в Windows php даже при корректно указанной локали "russian" выдаёт имена дней не в юникоде, а в 1251. Как-то раз боролся с этим в расширении cal, вспоминаю с содроганием.

Давным бы давно уже слазили в код расширения и похакали нужный фрагмент, чем толочь воду в ступе...

А можно по подробнее где именно и что хакать надо?

void 05.04.2009 22:13

Я не пользуюсь этим расширением, и поэтому не могу сказать, где именно надо хакать.
Предполагается, что найти это место и поправить -- простая задача. Иначе вы будете долго ходить вокруг каждого экстеншена, который не делает вот эту маленькую фичку, которая вам нужна. И вам полгода на форуме никто не ответит, пока у кого-то, кто хотя бы поверхностно знает PHP, не возникнет такая же задача.

Lucifer 06.04.2009 12:40

по поводу моей проблемы с ru_RU и ru_RU.UTF-8 (в поиске летела кодировка).
Чуть подправил код:
PHP код:

setlocale(LC_ALL$GLOBALS['TSFE']->tmpl->setup['config.']['locale_all']) 

на
PHP код:

if($GLOBALS['TSFE']->tmpl->setup['config.']['locale_all'] == "ru_RU"setlocale(LC_TIME"ru_RU.UTF-8");
else 
setlocale(LC_ALL$GLOBALS['TSFE']->tmpl->setup['config.']['locale_all']); 

Думаю, возможны вариации на тему и для typik'a :)

typik 06.04.2009 14:27

Цитата:

Сообщение от Lucifer (Сообщение 24015)
по поводу моей проблемы с ru_RU и ru_RU.UTF-8 (в поиске летела кодировка).
Чуть подправил код:
PHP код:

setlocale(LC_ALL$GLOBALS['TSFE']->tmpl->setup['config.']['locale_all']) 

на
PHP код:

if($GLOBALS['TSFE']->tmpl->setup['config.']['locale_all'] == "ru_RU"setlocale(LC_TIME"ru_RU.UTF-8");
else 
setlocale(LC_ALL$GLOBALS['TSFE']->tmpl->setup['config.']['locale_all']); 

Думаю, возможны вариации на тему и для typik'a :)

Спасибо за предложенный вариант, но я пробывал такой подход, но в решении проблемы это не помогло :(

Lucifer 06.04.2009 20:12

Ну тогда правь функцию generate_calendar. У меня там так. Ща делал.
PHP код:

$ru_month = array(
            
"01" => "Январь",
            
"02" => "Февраль",
            
"03" => "Март",
            
"04" => "Апрель",
            
"05" => "Май",
            
"06" => "Июнь",
            
"07" => "Июль",
            
"08" => "Август",
            
"09" => "Сентябрь",
            
"10" => "Октябрь",
            
"11" => "Ноябрь",
            
"12" => "Декабрь"
        
);
        
        
        
#note that some locales don't capitalize month and day names
        
if($GLOBALS['TSFE']->tmpl->setup['config.']['locale_all'] != "ru_RU"$this->listHeader $this->convertSpecialCharacters(ucfirst(strftime($this->conf['listView.']['strftime.']['main'],$first_of_month)));
        else 
$this->listHeader $ru_month["$month"].$this->convertSpecialCharacters(ucfirst(strftime(" - %Y",$first_of_month))); 

Поменяй там ru_RU на russian или как там у тебя. :)

typik 09.04.2009 02:09

Цитата:

Сообщение от Lucifer (Сообщение 24024)
Ну тогда правь функцию generate_calendar. У меня там так. Ща делал.
PHP код:

$ru_month = array(
            
"01" => "Январь",
                                   ...
        );
        
        
        
#note that some locales don't capitalize month and day names
        
if($GLOBALS['TSFE']->tmpl->setup['config.']['locale_all'] != "ru_RU"$this->listHeader $this->convertSpecialCharacters(ucfirst(strftime($this->conf['listView.']['strftime.']['main'],$first_of_month)));
        else 
$this->listHeader $ru_month["$month"].$this->convertSpecialCharacters(ucfirst(strftime(" - %Y",$first_of_month))); 

Поменяй там ru_RU на russian или как там у тебя. :)

спасибо за предложенное такое решение, но так название месяцев выводит в ср1251 , а не в utf8, т.е. весь сайт показывает нормально, а месяцы вопросительными знаками, если сменить на ср1251 то месяц показывает корректно , но тогда весь сайт в непонятных символах...
Но даже если выводить так месяцы тогда надо и дни также вывести , но это не совсем понятно как сделать.

Lucifer 09.04.2009 10:30

Тогда скорее всего где то косяк с кодировкой. Может у ньюскалендаря утф стоит? Смотри базу, и темы в форуме :)

typik 11.04.2009 02:17

((
 
так значит нет решения корректоной работы typo3 под windows в кодировке utf-8 ???:confused:


Часовой пояс GMT +4, время: 20:30.

Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot