Поддержка Проблемы и решения Замена слова «Декабрь» на «Декабря»

  • Решено Acme1994

    (@acme1994)


    Вопрос с локализацией.
    В файле 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.

Просмотр 15 ответов — с 16 по 30 (всего 31)
  • Автор Acme1994

    (@acme1994)

    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

    Модератор Denis Yanchevskiy

    (@denisco)

    WordPress-разработчик, denisco.pro

    Всё ровно пишет: 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’ он без проблем меняет.

    Модератор Yuri

    (@yube)

    if ($lang == «LV») {

    Не может быть LV. Язык обычно в нижнем регистре, страна — в верхнем.

    Автор Acme1994

    (@acme1994)

    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 декабря

    • Ответ изменён 6 лет назад пользователем SeVlad. Причина: Оформляйте код как следует
    Модератор Denis Yanchevskiy

    (@denisco)

    WordPress-разработчик, denisco.pro

    denisco, добавил перед strtr,

    NULL

    Ну вот, как видите, переменная $lang не определена и «decembris» в списке нет, поэтому не очень понятно как этот код должен работать. Ищите что не делаете не так, если не выйдет, то можно обратиться к фрилансерам на нашем форуме или на любой другой фриланс-бирже.

    латышский указывается в нижнем регистре — «lv», как я вам изначально и писал.

    Автор Acme1994

    (@acme1994)

    <?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 для русского языка.

    • Ответ изменён 6 лет назад пользователем Flector.
    Автор Acme1994

    (@acme1994)

    и lv, и lv_LV, и LV пробовал — ничего не помогает. «Магический» какой-то язык…

    Автор Acme1994

    (@acme1994)

    Такой код на данный момент:

    
    <?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');
    

    у меня этот последний вариант работает при установке латышского:

    Автор Acme1994

    (@acme1994)

    Не понимаю…
    Снимок

    Удаляю все в плагине — нет никакой реакции…

    кэш то сбрасываете после своих манипуляций?

    Автор Acme1994

    (@acme1994)

    Спасибо! Про кэш забыл.

    Заработал плагин в таком виде:

    <?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');
Просмотр 15 ответов — с 16 по 30 (всего 31)
  • Тема «Замена слова «Декабрь» на «Декабря»» закрыта для новых ответов.