![]() |
Здравствуйте, Гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#1
|
|
![]() Advanced Member ![]() ![]() ![]() Группа: User Сообщений: 36 Регистрация: 30-March 07 Из: Nederland Пользователь №: 1,476 ![]() |
Всю тему (скин) перевел, а вот дни и месяца не знаю как. У меня стоят еще два плагина это Часы и Календарь, их тоже нужно перевести. Прошу рассказать как это сделать.
![]() -------------------- Ибо Нефиг !
|
|
|
![]()
Сообщение
#2
|
|
![]() Support Staff ![]() ![]() ![]() Группа: Admin Сообщений: 1,170 Регистрация: 16-July 05 Из: nucleus.com.ru Пользователь №: 1 ![]() |
Дни и месяцы перводятся настройкой локали (в шаблонах)
Настройки зависят от хостинга (кстати говоря, на многих иностранных хостингах перевести не удастся). Для русского языка в большинстве случаев подходит ru_RU.CP1251 (иногда просто ru_RU) -------------------- |
|
|
![]()
Сообщение
#3
|
|
Newbie ![]() Группа: User Сообщений: 1 Регистрация: 13-April 07 Пользователь №: 1,490 ![]() |
ЦИТАТА(Suvoroff @ Apr 1 2007, 12:09 PM) [snapback]2132[/snapback] Дни и месяцы перводятся настройкой локали (в шаблонах) Настройки зависят от хостинга (кстати говоря, на многих иностранных хостингах перевести не удастся). Для русского языка в большинстве случаев подходит ru_RU.CP1251 (иногда просто ru_RU) Можно подробнее: что за локаль, в каких шаблонах, куда подходит ru_RU.CP1251? Спасибо. |
|
|
![]()
Сообщение
#4
|
|
![]() Support Staff ![]() ![]() ![]() Группа: Admin Сообщений: 1,170 Регистрация: 16-July 05 Из: nucleus.com.ru Пользователь №: 1 ![]() |
Админка - Шаблоны
Что не понятно? Что значит куда подходит? -------------------- |
|
|
![]() ![]()
Сообщение
#5
|
|
Newbie ![]() Группа: User Сообщений: 2 Регистрация: 5-October 10 Пользователь №: 1,974 ![]() |
ЦИТАТА(Suvoroff @ Apr 1 2007, 02:09 PM) [snapback]2132[/snapback] Дни и месяцы перводятся настройкой локали (в шаблонах) Настройки зависят от хостинга (кстати говоря, на многих иностранных хостингах перевести не удастся). Для русского языка в большинстве случаев подходит ru_RU.CP1251 (иногда просто ru_RU) Мне к сожалению не повезло ![]() Чтоб народ не наступал на те же грабли, расскажу чего нарыл и как справился с задачей. Нижеописанное справедливо для Nucleus v3.51 (скорее всего и любых других версий) Во первых, отмечу, что у меня Nucleus в UTF-8 (+ Unix хостинг), по этому и locale будет ru_RU.UTF-8. Использую дефолтный скин (желтенький такой))) Локаль устанавливается на выбор: 1. в начале обработки php скрипта (например, в файле config.php, как сделал я) 2. в конкретном месте вывода в шаблоне а админке (для вывода Архива блога) благодаря встроенной в Nucleus функции (переменной) <%archivedate%> (см хелп у себя на сайте documentation/help.html#skinvar-archivedate ) Второй вариант подходит только если хочется сменить вывод даты только в конкретном месте. Вдоволь наигравшись со вторым вариантом, посмотрев на результаты, понял что не катит, т.к. локаль выставляется, но в силу русско-морфологических причин получается следующее: "5 октября 2010", что вполне нормально, но как только тыкаешь на архив за месяц (где дата выводится без числа, т.е. "месяц год"), видишь неадекватную надпись "Архив за октября 2010" ("Архив за" переводится в шаблоне в админке), что совсем не катит. Замечание: если у вас месяцы показываются не русскими буквами, значит локаль выбрана неверно, дерзайте, эксперементируйте. Далеенаписаное имеет смысл, если вы видите русские буквы в названии месяцев. Бороться решил кардинально, используя способ 1, т.к. текстовые месяцы выводятся в некоторых местах. 0. Сделал бэкап ![]() 1. Открыл config.php Перед строками [codebox]// include libs include($DIR_LIBS.'globalfunctions.php');[/codebox] 2. вставляю строку [codebox]setlocale(LC_TIME,'ru_RU.UTF-8');[/codebox] сохраняю, закрываю. 3. Открываю /nucleus/libs/ACTIONS.php (НЕ ACTION.php) нахожу комментарий [codebox]* %archivedate(locale,date format)%[/codebox] далее функция [codebox]function parse_archivedate($locale = '-def-')[/codebox] 4. в этой функции нахожу строчку [codebox]} elseif ($d == 0 && $m !=0) {[/codebox] 5. под ней вместо [codebox]$format = '%B %Y';[/codebox] пишу [codebox]$format = '%Y';[/codebox] 6. нахожу строчку [codebox]echo strftime($format,mktime(0,0,0,$m?$m:1,$d?$d:1,$y));[/codebox] вместо нее пишу [codebox] if($d == 0 && $m !=0) { $russian_month_array=array("январь","февраль","март","апрель","май","июнь","июль","август","сентябрь","октябрь","ноябрь","декабрь"); $russian_month=$russian_month_array[$m-1]; echo $russian_month." ".strftime($format,mktime(0,0,0,$m?$m:1,$d?$d:1,$y)); }else{ echo strftime($format,mktime(0,0,0,$m?$m:1,$d?$d:1,$y)); } [/codebox] Все. Теперь на странице архива за месяц пишется "Архив за октябрь 2010". "За месяц" отметил жирным, т.к. есть еще и страница "Список архивов", на которой написано "Список архивов по месяцам" (и снова: перевел в шаблоне). Сейчас, если открыть эту страницу, то будет написано примерно следующее: "Список архивов по месяцам октября, 2010 сентября, 2010", где "октября" и "сентября" являются ссылками на страницу с архивом, которую я уже поправил. Для правки открыл BLOG.php 1. ищу строку [codebox]echo strftime($temp,$current->itime);[/codebox] 2. вместо неё пишу [codebox] $date_html=strftime($temp,$current->itime); if($date_html=str_replace("Архив за января,","Архив за январь,",$date_html)){ $date_html=str_replace(">января, 2010<",">январь, 2010<",$date_html); } if($date_html=str_replace("Архив за февраля,","Архив за февраль,",$date_html)){ $date_html=str_replace(">февраля, 2010<",">февраль, 2010<",$date_html); } if($date_html=str_replace("Архив за марта,","Архив за март,",$date_html)){ $date_html=str_replace(">марта, 2010<",">март, 2010<",$date_html); } if($date_html=str_replace("Архив за апреля,","Архив за апрель,",$date_html)){ $date_html=str_replace(">апреля, 2010<",">апрель, 2010<",$date_html); } if($date_html=str_replace("Архив за мая,","Архив за май,",$date_html)){ $date_html=str_replace(">мая, 2010<",">май, 2010<",$date_html); } if($date_html=str_replace("Архив за июня,","Архив за июнь,",$date_html)){ $date_html=str_replace(">июня, 2010<",">июнь, 2010<",$date_html); } if($date_html=str_replace("Архив за июля,","Архив за июль,",$date_html)){ $date_html=str_replace(">июля, 2010<",">июль, 2010<",$date_html); } if($date_html=str_replace("Архив за августа,","Архив за август,",$date_html)){ $date_html=str_replace(">августа, 2010<",">август, 2010<",$date_html); } if($date_html=str_replace("Архив за сентября,","Архив за сентябрь,",$date_html)){ $date_html=str_replace(">сентября, 2010<",">сентябрь, 2010<",$date_html); } if($date_html=str_replace("Архив за октября,","Архив за октябрь,",$date_html)){ $date_html=str_replace(">октября, 2010<",">октябрь, 2010<",$date_html); } if($date_html=str_replace("Архив за ноября,","Архив за ноябрь,",$date_html)){ $date_html=str_replace(">ноября, 2010<",">ноябрь, 2010<",$date_html); } if($date_html=str_replace("Архив за декабря,","Архив за декабрь,",$date_html)){ $date_html=str_replace(">декабря, 2010<",">декабрь, 2010<",$date_html); } echo $date_html; [/codebox] Да, очень некрасиво. Кому важна эстетика. можете написать цикл с 2-мя массивами - мне ща лень ![]() Теперь видим долгожданную картину: " Список архивов по месяцам октябрь, 2010 сентябрь, 2010 " Также я установил себе плагин NP_Calendar, который также неадекватно себя вел. Правил так: 1. Открыл NP_Calendar.php 2. ищу строчки (примерно строка 224) [codebox] // draw header $currentdate = getDate(); if ($next_month > $currentdate['mon'] && $year == $currentdate['year']) { $future = false; } else { $future = true; }[/codebox] 3. после них пишу [codebox]$russian_month_array=array("Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"); $russian_month=$russian_month_array[$date['mon']-1];[/codebox] 4. далее ищу строчку [codebox]<a href="<?php echo createArchiveLink($blogid, strftime('%Y-%m',$timestamp))?>"><?php echo strftime('%B %Y',$timestamp)?></a>[/codebox] 5. вместо неё пишу [codebox]<a href="<?php echo createArchiveLink($blogid, strftime('%Y-%m',$timestamp))?>"><?php echo $russian_month." ".strftime('%Y',$timestamp)?></a>[/codebox] Ну вот собственно и всё, теперь всё показывается как надо. Не претендую на HOW TO, но полезным, надеюсь, будет ![]() |
|
|
![]()
Сообщение
#6
|
|
![]() Support Staff ![]() ![]() ![]() Группа: Admin Сообщений: 1,170 Регистрация: 16-July 05 Из: nucleus.com.ru Пользователь №: 1 ![]() |
buzia, спасибо за подробные инструкции!
-------------------- |
|
|
![]()
Сообщение
#7
|
|
Newbie ![]() Группа: User Сообщений: 2 Регистрация: 5-October 10 Пользователь №: 1,974 ![]() |
Всегда пожалуйста
![]() |
|
|
![]()
Сообщение
#8
|
|
Newbie ![]() Группа: User Сообщений: 1 Регистрация: 2-October 19 Пользователь №: 2,134 ![]() |
i have same problem
![]() ![]() |
|
|
![]() ![]() |
Текстовая версия | Сейчас: 16th April 2021 - 08:56 AM |