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

  • Решено 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 ответов — с 1 по 15 (всего 31)
  • а плагином Russian Date не хотите воспользоваться?

    Автор Acme1994

    (@acme1994)

    С русским языком всё теперь отлично. А как теперь добавить в Вашем плагине еще один язык? То есть, к примеру, » «December» => «[:ru]декабря [:LV]decembrī»,» и в таком случае выводит всю строку. Как это можно подправить?

    переименовываю её на «Декабря», сохраняю файл в .mo формате — заменяю, и ничего не происходит. Подскажите, что не так делаю?

    Вот только что изменил:

    Результат:

    Автор Acme1994

    (@acme1994)

    Шаблон 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 (на скрине) они это делают автоматически.

    Автор Acme1994

    (@acme1994)

    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») {

    Автор Acme1994

    (@acme1994)

    SeVlad, так и делал. Перекомпилировал его в lv.mo, заменил на хостинге — нет никаких результатов.

    Автор Acme1994

    (@acme1994)

    Интересно, что когда я удаляю эти файлы: lv — ничего не происходит, нет никакой реакции на это действие, то есть, перевод не «ломается». Удалил LV в плагине qTranslate и в wp движке. Как найти где расположен .mo файл этого языка?

    Автор Acme1994

    (@acme1994)

    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');
    
    
    • Ответ изменён 6 лет назад пользователем Flector.
    • Ответ изменён 6 лет назад пользователем Flector.
    Автор Acme1994

    (@acme1994)

    Выдает ошибку:
    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ī",	
        
        }
    • Ответ изменён 6 лет назад пользователем Acme1994.

    а где

    
    $treplace = array (
    
    );
    

    ?

    Автор Acme1994

    (@acme1994)

    Всё ровно выдает ошибку:
    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');

    у последнего элемента массива не может быть запятой.

Просмотр 15 ответов — с 1 по 15 (всего 31)
  • Тема «Замена слова «Декабрь» на «Декабря»» закрыта для новых ответов.