PDA

Просмотр полной версии : newscalendar и русская дата


Lucifer
26.02.2009, 16:43
перевел newscalendar на русский путем
config{
renderCharset = utf-8
metaCharset = utf8
language = ru
locale_all = ru_RU.UTF-8
}
Теперь он мне пишет "февраля - 2009". И первые 2 буквы дней недели типа "По", "Вт" и т.д. И ни где не слова, откуда он это все берет. В мануале об этом не слова.

Он берет эти значения из каких то системных тупы или своих локализаций? Можно ли переделать по нормальному, или придется переделать код?

-=UncleByte=-
27.02.2009, 01:25
Читайте внимательно http://typo3.org/documentation/document-library/extension-manuals/newscalendar/1.0.13/view/1/7/#id4137879 и http://ru.php.net/manual/ru/function.date.php

Andrey Grey
27.02.2009, 09:43
берется из локали ОС.

typik
26.03.2009, 01:26
Новую тему не создавал т.к. по этой теме уже много, но все равно не нашел решение моей проблемы. При выводе календаря (news calendar) название дней и месяцев так и остается на англ.языке, хотя ставил

config{
language = ru
locale_all = ru_RU.UTF-8
}

установил: forceCharset = UTF-8

но это все не дало результата. Но при таких настройках плагины поиска и регистрации переводятся без проблем. Вот если устанавливаю вот такие значения:
config{
language = ru
locale_all = russian
}
тогда названия месяца и дней на календаре исчезают.

и также при вот таких настройках:
config{
language = de
locale_all = de_DE
}
название месяцев все равно выводятся на англ.языке.

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

Все это делал на :
- ОС WinXP и W2K;
- TYPO3 4.2.3;
- News calendar 1.0.13;

typik
27.03.2009, 01:46
Неужели нет решение этой проблемы? :confused: пожалуста ответьте.

shuman
27.03.2009, 06:49
http://forum.typo3.biz/showthread.php?t=2968&highlight=locale

так как у вас винда, в которой я не ставил толком тайпу, нужно почитать манул по пхп по функции strftime

вот вырезка
Пример 1. Пример использования функции strftime() с разными локалями

<?php
setlocale(LC_TIME, "C");
echo strftime("%A");
setlocale(LC_TIME, "fi_FI");
echo strftime(" по-фински - %A,");
setlocale(LC_TIME, "fr_FR");
echo strftime(" по-французски - %A и");
setlocale(LC_TIME, "de_DE");
echo strftime(" по-немецки - %A.\n");
?>

Этот пример будет работать, если на вашей системе установлены соответствующие локали.

нужно попробовать этот скрипт

typik
29.03.2009, 15:55
Решение проблемы отсутствует?

Andrey Grey
29.03.2009, 16:37
под win не пробовал. под bsd все работает нормально.

typik
30.03.2009, 03:13
под win не пробовал. под bsd все работает нормально.
Я понимаю, что под *nix системы работает нормально, но мне выбирать не приходиться ОС, поэтому я и спрашиваю за WinXP и W2K. Если кто может подскажите пожалуйста выход из этой ситуации.

-=UncleByte=-
30.03.2009, 04:04
Во-первых читать вот это - http://ru2.php.net/manual/ru/function.setlocale.php
Во-вторых, как результат первого, вот это - http://msdn.microsoft.com/en-us/library/39cwe7zf(vs.71).aspx

typik
01.04.2009, 17:30
вопрос все еще актуальный.

после вот таких настроек:
language = ua
locale_all = ukrainian
[BE][forceCharset] windows-1252
и
language = ru
locale_all = russian
[BE][forceCharset] windows-1251

выводит вот такие значения дней и месяца в календаре:
### russian
Воск Поне Втор Сред Четв &yum Субб
?нь - 2009

### urkainian
&yum Поне &sup Сере Четв  Субо
?тий - 2009

Месяца на русском выводит только половину месяцев, на украинском только лютий , остальные все нормально выводятся.
это все с windows-1252 и windows-1251, но как же все таки сделать корректно на utf-8.

Если ставлю вот такие настройки:
language = ru
locale_all = ru_RU.UTF-8
[BE][forceCharset] utf-8
тогда в календаре все попрежнему вывод дней и месяца на английском.

Помогите кто сталкивался с такой проблемой

typik
03.04.2009, 00:44
вопрос все еще открыт.
или нет решения локализации (на русский и украинский язык) typo3 (news calendar) под виндовс?????

Lucifer
03.04.2009, 10:32
На виндовых машинах надо локалю russian ставить.
Только вот у меня на фря когда locale_all = ru_RU ничего не руссифицируется, а когда locale_all = ru_RU.UTF-8, тогда он на русском, но слетает кодировка в поиске.
Видимо разные эксты по разному понимают локалю.

typik
04.04.2009, 02:22
Люди отзовитесь !!!!! :(
ну кто нибуть подскажите решение проблемы (проблемы что описывал выше так и не решил).
очень надо локализация (особенно news calendar) под винду!
прошу помогите уже просто нет сил боротся ... :(

-=UncleByte=-
04.04.2009, 03:48
У вас сервер работает под windows или вы только разрабатываете сайт под ним? Во втором случае смысла нет в решение для windows, проще поставить на виртуальной машине linux и устроить там тестовый полигон.

typik
04.04.2009, 17:14
У вас сервер работает под windows или вы только разрабатываете сайт под ним? Во втором случае смысла нет в решение для windows, проще поставить на виртуальной машине linux и устроить там тестовый полигон.
cервер работает под виндовс и разрабатываю под ним же :(

-=UncleByte=-
04.04.2009, 17:53
Попробуйте прописать locale_all = russian и использовать utf-8 для вывода.

typik
04.04.2009, 19:26
Попробуйте прописать locale_all = russian и использовать utf-8 для вывода.
я понял вы мои посты выше вообще не читали.

-=UncleByte=-
05.04.2009, 03:49
Где в постах выше написано что вы использовали такое сочетание и использовали utf-8 для вывода контента?

typik
05.04.2009, 04:07
Где в постах выше написано что вы использовали такое сочетание и использовали utf-8 для вывода контента?

посмотрите мой первый пост в этой теме :)

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

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

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

Lucifer
06.04.2009, 12:40
по поводу моей проблемы с ru_RU и ru_RU.UTF-8 (в поиске летела кодировка).
Чуть подправил код:
setlocale(LC_ALL, $GLOBALS['TSFE']->tmpl->setup['config.']['locale_all'])
на
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
по поводу моей проблемы с ru_RU и ru_RU.UTF-8 (в поиске летела кодировка).
Чуть подправил код:
setlocale(LC_ALL, $GLOBALS['TSFE']->tmpl->setup['config.']['locale_all'])
на
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. У меня там так. Ща делал.
$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
Ну тогда правь функцию generate_calendar. У меня там так. Ща делал.
$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:

Lucifer
13.04.2009, 10:57
Не пробывал, но думаю есть. В крайнем случае, если не получается в ньюскалендаре вывести нормально месяцы, дни недели сделай соответствие(как делать с месяцами я показывал, с днями точно так же). Почитай тут темы по общим проблемам с кодировкой. Есть екст для проверки кодировки ВСЕЙ базы. В ручную все не проверишь.

R.E.S.T.Art
14.08.2010, 18:18
я прямо в коде все пофиксил. если кому нужно - пишите в приват - скину свой вариант