Замена слова «Декабрь» на «Декабря»
-
Вопрос с локализацией.
В файле 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.
-
а плагином Russian Date не хотите воспользоваться?
С русским языком всё теперь отлично. А как теперь добавить в Вашем плагине еще один язык? То есть, к примеру, » «December» => «[:ru]декабря [:LV]decembrī»,» и в таком случае выводит всю строку. Как это можно подправить?
переименовываю её на «Декабря», сохраняю файл в .mo формате — заменяю, и ничего не происходит. Подскажите, что не так делаю?
Вот только что изменил:
Результат:
Шаблон trendy blog. Откуда Вы этот файл взяли? По этому пути: wp-content\languages\ru_RU.po? Дело в том, что его я тоже редактировал — не помогло. Частично помог плагин Flector’a, решив проблему с русским языком. Спасибо, Flector.
Требуется еще в латышской(lv) версии сайта подправить слова дат. Подскажите, пожалуйста, как мне это можно сделать?добавить в плагин выбор языка:
$lang = get_locale(); if ($lang == "ru_RU") { тут перевод на русском }
ну и с латышским также, не знаю только какая у них локаль, поэтому не скажу.
Откуда Вы этот файл взяли? По этому пути: wp-content\languages\ru_RU.po?
В смысле «откуда»? Это родной лангпак ВП.
Права, боюсь при обновлении он затрётся. Поэтому пути к ланпаку надо переназначить.Но если тот старый плагин работает, то может лучше использовать его. Хотя, чесгря я думал это уже не актуально (сам никогда не использую языковые обозначения месяцев). Но да, оказывается проблема такая есть.
Дело в том, что его я тоже редактировал — не помогло.
*.po нужно перекомпилировать в *.mo. При работе в PoEdit или Loco Translate (на скрине) они это делают автоматически.
Flector, пробовал прописать в разных местах ( в Вашем плагине ) эти строчки:
$lang = get_locale(); if ($lang == "ru_RU") { тут перевод на русском }
Выдает ошибки:
Parse error: syntax error, unexpected ‘$lang’ (T_VARIABLE), expecting ‘)’ in /home/intastelv/public_html/wp-content/plugins/russian-date/russian-date.php on line 63
Parse error: syntax error, unexpected ‘=>’ (T_DOUBLE_ARROW) in /home/intastelv/public_html/wp-content/plugins/russian-date/russian-date.php on line 68Локаль латышского: lv . Так и прописывал if ($lang == «lv») {
SeVlad, так и делал. Перекомпилировал его в lv.mo, заменил на хостинге — нет никаких результатов.
Интересно, что когда я удаляю эти файлы: lv — ничего не происходит, нет никакой реакции на это действие, то есть, перевод не «ломается». Удалил LV в плагине qTranslate и в wp движке. Как найти где расположен .mo файл этого языка?
decembris нужно заменить на decembrī. Как в плагине это указать? Пробовал по разному — вылетает ошибка синтаксиса.
<?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" => "" ); return strtr($tdate, $treplace); } $lang = get_locale(); if ($lang == "LV") { "decembris" => "decembrī", } 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") { //тут перевод на латышский } 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');
Выдает ошибку:
Parse error: syntax error, unexpected ‘=>’ (T_DOUBLE_ARROW) in /home/intastelv/public_html/wp-content/plugins/russian-date/russian-date.php on line 71Прописывал так:
if ($lang == "lv") { "decembris" => ".decembrī", }
- Ответ изменён 7 лет, 9 месяцев назад пользователем Acme1994.
а где
$treplace = array ( );
?
Всё ровно выдает ошибку:
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<?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');
у последнего элемента массива не может быть запятой.
- Тема «Замена слова «Декабрь» на «Декабря»» закрыта для новых ответов.