Замена слова «Декабрь» на «Декабря»
-
Вопрос с локализацией.
В файле wp-content\languages\ru_RU.po есть строчка «Декабрь» , переименовываю её на «Декабря», сохраняю файл в .mo формате — заменяю, и ничего не происходит. Подскажите, что не так делаю?
Код в шаблоне, с датами публикаций:<?php if(df_option_compare('postDate','postDate',$my_query->post->ID)==true) { ?> <span class="meta_date"> <?php the_time(get_option('date_format'));?> </span> <?php } ?>
Используется плагин для локализации qTranslate.
-
if ($lang == "LV") { $treplace = array ( "decembris" => "decembrī" ); }
Всё ровно пишет: Warning: strtr(): The second argument is not an array in /home/intastelv/public_html/wp-content/plugins/russian-date/russian-date.php on line 79
Всё ровно пишет: Warning: strtr(): The second argument is not an array in /home/intastelv/public_html/wp-content/plugins/russian-date/russian-date.php on line 79
Как вариант, добавьте перед strtr
var_dump($lang); var_dump($treplace);
и посмотрите что выводит для латышского варианта, по всей видимости, в переменной $lang не «LV».
сдаюсь.
у меня ваш код работает.
я, правда, латышский не ставил, но на ‘ru_RU’ он без проблем меняет.if ($lang == «LV») {
Не может быть LV. Язык обычно в нижнем регистре, страна — в верхнем.
denisco, добавил перед strtr,
NULLarray(42) { ["Январь"]=> string(12) "января" ["Февраль"]=> string(14) "февраля" ["Март"]=> string(10) "марта" ["Апрель"]=> string(12) "апреля" ["Май"]=> string(6) "мая" ["Июнь"]=> string(8) "июня" ["Июль"]=> string(8) "июля" ["Август"]=> string(14) "августа" ["Сентябрь"]=> string(16) "сентября" ["Октябрь"]=> string(14) "октября" ["Ноябрь"]=> string(12) "ноября" ["Декабрь"]=> string(14) "декабря" ["January"]=> string(12) "января" ["February"]=> string(14) "февраля" ["March"]=> string(10) "марта" ["April"]=> string(12) "апреля" ["May"]=> string(6) "мая" ["June"]=> string(8) "июня" ["July"]=> string(8) "июля" ["August"]=> string(14) "августа" ["September"]=> string(16) "сентября" ["October"]=> string(14) "октября" ["November"]=> string(12) "ноября" ["December"]=> string(14) "декабря" ["Sunday"]=> string(22) "воскресенье" ["Monday"]=> string(22) "понедельник" ["Tuesday"]=> string(14) "вторник" ["Wednesday"]=> string(10) "среда" ["Thursday"]=> string(14) "четверг" ["Friday"]=> string(14) "пятница" ["Saturday"]=> string(14) "суббота" ["Sun"]=> string(22) "воскресенье" ["Mon"]=> string(22) "понедельник" ["Tue"]=> string(14) "вторник" ["Wed"]=> string(10) "среда" ["Thu"]=> string(14) "четверг" ["Fri"]=> string(14) "пятница" ["Sat"]=> string(14) "суббота" ["th"]=> string(0) "" ["st"]=> string(0) "" ["nd"]=> string(0) "" ["rd"]=> string(0) ""}NULLarray(42) { ["Январь"]=> string(12) "января" ["Февраль"]=> string(14) "февраля" ["Март"]=> string(10) "марта" ["Апрель"]=> string(12) "апреля" ["Май"]=> string(6) "мая" ["Июнь"]=> string(8) "июня" ["Июль"]=> string(8) "июля" ["Август"]=> string(14) "августа" ["Сентябрь"]=> string(16) "сентября" ["Октябрь"]=> string(14) "октября" ["Ноябрь"]=> string(12) "ноября" ["Декабрь"]=> string(14) "декабря" ["January"]=> string(12) "января" ["February"]=> string(14) "февраля" ["March"]=> string(10) "марта" ["April"]=> string(12) "апреля" ["May"]=> string(6) "мая" ["June"]=> string(8) "июня" ["July"]=> string(8) "июля" ["August"]=> string(14) "августа" ["September"]=> string(16) "сентября" ["October"]=> string(14) "октября" ["November"]=> string(12) "ноября" ["December"]=> string(14) "декабря" ["Sunday"]=> string(22) "воскресенье" ["Monday"]=> string(22) "понедельник" ["Tuesday"]=> string(14) "вторник" ["Wednesday"]=> string(10) "среда" ["Thursday"]=> string(14) "четверг" ["Friday"]=> string(14) "пятница" ["Saturday"]=> string(14) "суббота" ["Sun"]=> string(22) "воскресенье" ["Mon"]=> string(22) "понедельник" ["Tue"]=> string(14) "вторник" ["Wed"]=> string(10) "среда" ["Thu"]=> string(14) "четверг" ["Fri"]=> string(14) "пятница" ["Sat"]=> string(14) "суббота" ["th"]=> string(0) "" ["st"]=> string(0) "" ["nd"]=> string(0) "" ["rd"]=> string(0) ""}NULLarray(42) { ["Январь"]=> string(12) "января" ["Февраль"]=> string(14) "февраля" ["Март"]=> string(10) "марта" ["Апрель"]=> string(12) "апреля" ["Май"]=> string(6) "мая" ["Июнь"]=> string(8) "июня" ["Июль"]=> string(8) "июля" ["Август"]=> string(14) "августа" ["Сентябрь"]=> string(16) "сентября" ["Октябрь"]=> string(14) "октября" ["Ноябрь"]=> string(12) "ноября" ["Декабрь"]=> string(14) "декабря" ["January"]=> string(12) "января" ["February"]=> string(14) "февраля" ["March"]=> string(10) "марта" ["April"]=> string(12) "апреля" ["May"]=> string(6) "мая" ["June"]=> string(8) "июня" ["July"]=> string(8) "июля" ["August"]=> string(14) "августа" ["September"]=> string(16) "сентября" ["October"]=> string(14) "октября" ["November"]=> string(12) "ноября" ["December"]=> string(14) "декабря" ["Sunday"]=> string(22) "воскресенье" ["Monday"]=> string(22) "понедельник" ["Tuesday"]=> string(14) "вторник" ["Wednesday"]=> string(10) "среда" ["Thursday"]=> string(14) "четверг" ["Friday"]=> string(14) "пятница" ["Saturday"]=> string(14) "суббота" ["Sun"]=> string(22) "воскресенье" ["Mon"]=> string(22) "понедельник" ["Tue"]=> string(14) "вторник" ["Wed"]=> string(10) "среда" ["Thu"]=> string(14) "четверг" ["Fri"]=> string(14) "пятница" ["Sat"]=> string(14) "суббота" ["th"]=> string(0) "" ["st"]=> string(0) "" ["nd"]=> string(0) "" ["rd"]=> string(0) ""}29 декабря
-
Ответ изменён 8 лет, 1 месяц назад пользователем
SeVlad. Причина: Оформляйте код как следует
denisco, добавил перед strtr,
NULL
Ну вот, как видите, переменная $lang не определена и «decembris» в списке нет, поэтому не очень понятно как этот код должен работать. Ищите что не делаете не так, если не выйдет, то можно обратиться к фрилансерам на нашем форуме или на любой другой фриланс-бирже.
латышский указывается в нижнем регистре — «lv», как я вам изначально и писал.
<?php /* Plugin Name: MaxSite Russian Date Plugin URI: http://maxsite.org/ Description: Русские даты Version: 1.02 Author: MAX Author URI: http://maxsite.org/russian-date */ function maxsite_the_russian_time($tdate = '') { if ( substr_count($tdate , '---') > 0 ) return str_replace('---', '', $tdate); $treplace = array ( "Январь" => "января", "Февраль" => "февраля", "Март" => "марта", "Апрель" => "апреля", "Май" => "мая", "Июнь" => "июня", "Июль" => "июля", "Август" => "августа", "Сентябрь" => "сентября", "Октябрь" => "октября", "Ноябрь" => "ноября", "Декабрь" => "декабря", "January" => "января", "February" => "февраля", "March" => "марта", "April" => "апреля", "May" => "мая", "June" => "июня", "July" => "июля", "August" => "августа", "September" => "сентября", "October" => "октября", "November" => "ноября", "December" => "декабря", "Sunday" => "воскресенье", "Monday" => "понедельник", "Tuesday" => "вторник", "Wednesday" => "среда", "Thursday" => "четверг", "Friday" => "пятница", "Saturday" => "суббота", "Sun" => "воскресенье", "Mon" => "понедельник", "Tue" => "вторник", "Wed" => "среда", "Thu" => "четверг", "Fri" => "пятница", "Sat" => "суббота", "th" => "", "st" => "", "nd" => "", "rd" => "" ); if ($lang == "LV") { $treplace = array ( "decembris" => "decembrī" ); } return strtr($tdate, $treplace); } add_filter('the_time', 'maxsite_the_russian_time'); add_filter('get_the_time', 'maxsite_the_russian_time'); add_filter('the_date', 'maxsite_the_russian_time'); add_filter('get_the_date', 'maxsite_the_russian_time'); add_filter('the_modified_time', 'maxsite_the_russian_time'); add_filter('get_the_modified_date', 'maxsite_the_russian_time'); add_filter('get_post_time', 'maxsite_the_russian_time'); add_filter('get_comment_date', 'maxsite_the_russian_time');
В данный момент код выглядит так. Латышский, к сожалению, всё никак не хочет работать. Попробовал еще раз прописать
var_dump($lang); var_dump($treplace);
Переключился на латышскую версию — ничего не отображает, как было ранее. Может кто-то глянуть непосредственно на сайте?
еще раз повторяю — нет никакого «LV», есть только «lv».
да и из кода у вас пропало и определение локали и if для русского языка.-
Ответ изменён 8 лет, 1 месяц назад пользователем
Flector.
и lv, и lv_LV, и LV пробовал — ничего не помогает. «Магический» какой-то язык…
Такой код на данный момент:
<?php /* Plugin Name: MaxSite Russian Date Plugin URI: http://maxsite.org/ Description: Русские даты Version: 1.02 Author: MAX Author URI: http://maxsite.org/russian-date */ function maxsite_the_russian_time($tdate = '') { if ( substr_count($tdate , '---') > 0 ) return str_replace('---', '', $tdate); $lang = get_locale(); if ($lang == "ru_RU") { $treplace = array ( "Январь" => "января", "Февраль" => "февраля", "Март" => "марта", "Апрель" => "апреля", "Май" => "мая", "Июнь" => "июня", "Июль" => "июля", "Август" => "августа", "Сентябрь" => "сентября", "Октябрь" => "октября", "Ноябрь" => "ноября", "Декабрь" => "декабря", "January" => "января", "February" => "февраля", "March" => "марта", "April" => "апреля", "May" => "мая", "June" => "июня", "July" => "июля", "August" => "августа", "September" => "сентября", "October" => "октября", "November" => "ноября", "December" => "декабря", "Sunday" => "воскресенье", "Monday" => "понедельник", "Tuesday" => "вторник", "Wednesday" => "среда", "Thursday" => "четверг", "Friday" => "пятница", "Saturday" => "суббота", "Sun" => "воскресенье", "Mon" => "понедельник", "Tue" => "вторник", "Wed" => "среда", "Thu" => "четверг", "Fri" => "пятница", "Sat" => "суббота", "th" => "", "st" => "", "nd" => "", "rd" => "" ); } if ($lang == "lv") { $treplace = array ( "decembris" => "decembrī" ); } return strtr($tdate, $treplace); } add_filter('the_time', 'maxsite_the_russian_time'); add_filter('get_the_time', 'maxsite_the_russian_time'); add_filter('the_date', 'maxsite_the_russian_time'); add_filter('get_the_date', 'maxsite_the_russian_time'); add_filter('the_modified_time', 'maxsite_the_russian_time'); add_filter('get_the_modified_date', 'maxsite_the_russian_time'); add_filter('get_post_time', 'maxsite_the_russian_time'); add_filter('get_comment_date', 'maxsite_the_russian_time');
у меня этот последний вариант работает при установке латышского:
кэш то сбрасываете после своих манипуляций?
Спасибо! Про кэш забыл.
Заработал плагин в таком виде:
<?php /* Plugin Name: MaxSite Russian Date Plugin URI: http://maxsite.org/ Description: Русские даты Version: 1.02 Author: MAX Author URI: http://maxsite.org/russian-date */ function maxsite_the_russian_time($tdate = '') { if ( substr_count($tdate , '---') > 0 ) return str_replace('---', '', $tdate); $lang = get_locale(); if ($lang == "ru_RU") { $treplace = array ( "Январь" => "января", "Февраль" => "февраля", "Март" => "марта", "Апрель" => "апреля", "Май" => "мая", "Июнь" => "июня", "Июль" => "июля", "Август" => "августа", "Сентябрь" => "сентября", "Октябрь" => "октября", "Ноябрь" => "ноября", "Декабрь" => "декабря", "January" => "января", "February" => "февраля", "March" => "марта", "April" => "апреля", "May" => "мая", "June" => "июня", "July" => "июля", "August" => "августа", "September" => "сентября", "October" => "октября", "November" => "ноября", "December" => "декабря", "Sunday" => "воскресенье", "Monday" => "понедельник", "Tuesday" => "вторник", "Wednesday" => "среда", "Thursday" => "четверг", "Friday" => "пятница", "Saturday" => "суббота", "Sun" => "воскресенье", "Mon" => "понедельник", "Tue" => "вторник", "Wed" => "среда", "Thu" => "четверг", "Fri" => "пятница", "Sat" => "суббота", "th" => "", "st" => "", "nd" => "", "rd" => "" ); } if ($lang == "lv_LV") { $treplace = array ( "decembris" => "decembrī" ); } return strtr($tdate, $treplace); } add_filter('the_time', 'maxsite_the_russian_time'); add_filter('get_the_time', 'maxsite_the_russian_time'); add_filter('the_date', 'maxsite_the_russian_time'); add_filter('get_the_date', 'maxsite_the_russian_time'); add_filter('the_modified_time', 'maxsite_the_russian_time'); add_filter('get_the_modified_date', 'maxsite_the_russian_time'); add_filter('get_post_time', 'maxsite_the_russian_time'); add_filter('get_comment_date', 'maxsite_the_russian_time');
-
Ответ изменён 8 лет, 1 месяц назад пользователем
- Тема «Замена слова «Декабрь» на «Декабря»» закрыта для новых ответов.