Исправляем отображение месяцев в календаре WordPress
3 Авг
Во время работы над одним сайтом на любимом движке WordPress я столкнулся с проблемой: в сайдбаре стоит календарь и ссылка на предыдущий месяц выглядит так: « Июл
Когда будет апрель, то там будет ссылка: « Мар, а когда будет декабрь, то ссылка – « Ноя. Я считаю, что это ущербно и очень не эстетично.
Первым делом я полез искать ответ в Яндекс и наткнулся на форум: http://mywordpress.ru/support/viewtopic.php?pid=4793
Предлагаемый вариант я не проверял на работоспособность. Я не люблю копаться в тех кусках кода, где есть всякие не понятные мне символы (а я не программист): $, -> и всевозможные кавычки и скобки. Уж очень часто я что-то порчу и долго исправляю потом.
Я пошёл по более верному и (как мне кажется) лёгкому пути – я полез в файл: wp-includes/locale.php
Там я нашёл вот что:
$this->month_abbrev[__('January')] = /* translators: three-letter abbreviation of the month */ __(‘Jan_January_abbreviation’);
$this->month_abbrev[__('February')] = /* translators: three-letter abbreviation of the month */ __(‘Feb_February_abbreviation’);
$this->month_abbrev[__('March')] = /* translators: three-letter abbreviation of the month */ __(‘Mar_March_abbreviation’);
$this->month_abbrev[__('April')] = /* translators: three-letter abbreviation of the month */ __(‘Apr_April_abbreviation’);
$this->month_abbrev[__('May')] = /* translators: three-letter abbreviation of the month */ __(‘May_May_abbreviation’);
$this->month_abbrev[__('June')] = /* translators: three-letter abbreviation of the month */ __(‘Jun_June_abbreviation’);
$this->month_abbrev[__('July')] = /* translators: three-letter abbreviation of the month */ __(‘Jul_July_abbreviation’);
$this->month_abbrev[__('August')] = /* translators: three-letter abbreviation of the month */ __(‘Aug_August_abbreviation’);
$this->month_abbrev[__('September')] = /* translators: three-letter abbreviation of the month */ __(‘Sep_September_abbreviation’);
$this->month_abbrev[__('October')] = /* translators: three-letter abbreviation of the month */ __(‘Oct_October_abbreviation’);
$this->month_abbrev[__('November')] = /* translators: three-letter abbreviation of the month */ __(‘Nov_November_abbreviation’);
$this->month_abbrev[__('December')] = /* translators: three-letter abbreviation of the month */ __(‘Dec_December_abbreviation’);
Так вот здесь нужно менять первые три буквы месяца на английском на полный месяц по-русски, т.е. меняем Jan_January_abbreviation на Январь_January_abbreviation.
Важные моменты!
1. Файл нужно перекодировать в UTF без ВОМ (программой Notepad++)
2. Заменяйте месяц только в указанном месте, только первое слово (Январь_January_abbreviation)
3. Подумайте, нужно ли вам это! Посмотрите свою вёрстку! Если календарь выводится в сайдбаре и он у вас узкий, то оставьте как есть. Иначе, ссылка может не вместиться в ширину сайдбара при просмотре зимних месяцев (« Октябрь Декабрь »).


10.08.2010 - 23:32
Спасибо. Благодаря вашей инструкции наконец подправил дурацкие сокращения типа Июл или Июн.