Всем привет! Вот и началась сессия, та самая сессия, которую уважающий себя студен ее не уважает. Единственное, что привлекало меня в ней…стипендия. Только ради нее я учился на отлично, ибо достойного образования можно получить только совместно с самообучением.

Как русифицировать шаблон на WordPress

Что-то я отвлекся, сегодня речь пойдет о русификации шаблонов для WordPress. Каждый шаблон, который попадал мне в руки для изучения был либо на иностранном языке, в частности английским, либо переведен частично. Данный изъян очень пагубно влияет на блог, в особенности внешнего вида.

Перевод кода шаблона и плагина в CMS WordPress

Часто не переведены в таких шаблонах поля для комментариев, даты и автор публикации. На фоне русского текста это смотрится неказисто и требует исправления, так как есть вероятность того, что блог потеряет доверие. Первый способ, которым можно русифицировать шаблон — редактирование кода файлов. Способ довольно трудоемкий, однако для тех, кто изучает язык программирования PHP возможно будет полезным.

Для того, чтобы приступить к редактированию шаблона и его русификации перейдите на страницу Редактор в блоке Внешний вид. Теперь нам потребуется правая панель, которая содержит список файлов шаблона. На примере своего шаблона начнем русификацию темы (по структуре многие шаблоны схожи, поэтому трудностей в переводе участка текста возникнуть не должно). Начну с файла архивов (archive.php), в котором нужно найти тот текст, который не входит ни в тег, ни в оператор. Следовательно на примере он должен иметь вид:

<h3>
Posted on : <?php the_time('d-m-Y') ?> | By : <span>
<?php the_author() ?></span> | In : <span class="post_cats"><?php the_category(', ') ?></span>
</h3>

Изучив код, ясно, что здесь требуется перевод фраз Posted on, By, In. Если хорошо знаем английский язык, то процесс перевода пройдет быстрее и приятнее. Ну а если нет, то в переводе нам поможет любой переводчик, будь то Lingvo или переводчик от Google, а возможно и словарь. Перевод слов (по порядку) Добавлено, Кем, В — подсказка в PHP командах, изучайте каждый участок, который собираетесь переводить, это будет полезно. Следовательно код будет иметь вид:

<h3>
Добавлено : <?php the_time('d-m-Y') ?> | Автор : <span>
<?php the_author() ?></span> | Категория : <span class="post_cats"><?php the_category(', ') ?></span>
</h3>

Как видно из кода я по другому написал перевод двух последних слов исходя из участка кода после данных предлогов. Согласитесь, что Кем и В не передадут всей ясности, нежели Автор и Категория. Двигаемся дальше по коду…участок:

<div class="postmetadata">
<p><a href="<?php the_permalink() ?>">Read Full Article</a></p>
</div>

не имеет перевода Read Full Article, который читается как «Читать всю статью». Ну и последний участок кода, который так же нуждается в переводе:

<h2 class="center">Not Found</h2>
<?php include (TEMPLATEPATH . '/searchform.php'); ?>

Not Found — не найдено, то есть результат поиска не дал результатов.

В файле sidebar.php тоже есть не переведенные участки кода:

<h2>Category</h2>
...
<li class="widget_archives"><h2>Archives</h2>

которые переводятся как Категории и Архивы.
Теперь приступим к русификации файла заголовка. Порадовало, что в переводе нуждается лишь один участок кода, который расположен в меню и является простой ссылкой на главную страницу:

<li class="first <? if(is_home()) echo 'current_page_item'; ?>">
<a href="<?php echo get_option('home'); ?>/">Home</a></li>

В данном коде ищем слово Home, которое по смыслу перевести следует как Главная страница.

Далее файлы comments.php, single.php так далее. Принцип такой же, как у файлов, которые описаны выше. Не помешает так же перевести плагины, которые редактируются таким же образом, как и шаблон. Для этого в Блоке Плагины найдите Редактор и перейдите на страницу редактирования плагина.

В правой колонке расположены файлы, а сверху выбор редактируемого плагина. Русифицировать плагин не обязательно, так как в основном редактируется только интерфейс в панели администратора, но если блог ведется не одним человеком, то стоит перевести все атрибуты плагина на русский.

Перевод шаблона и плагинов WordPress с помощью плагина Codestyling-Localization — как установить и настроить плагин. Работа в Codestyling-Localization

Пожалуй самый простой способ, который предполагает русификацию шаблона и плагинаплагин Codestyling-localization (тавтология получается). Именно с помощью него в первое время я русифицировал шаблоны, но позже, когда разобрался с кодом , то полностью перешел на ручной перевод.

Ну а для новичков или лентяев (или все вместе) данный плагин будет очень полезен, так как многие шаблоны в сети не имеют перевода, или же переведены с большой натяжкой. Установить плагин не составит труда — в блоке Плагины выберите Добавить новый и в строке поиска введите Codestyling-localization , затем установите и активируйте его.

Codestyling-localization русификация шаблона WordPress  с помощью плагина

Далее в блоке Инструменты найдите Локализация и перейдите на страницу. Сверху меню выбора компонентов локализации, то есть будь-то плагин или же шаблон. На примере шаблона создадим для него русскую локализацию. Для этого в меню выбора компонентов нажмите на Темы и найдите напротив шаблона, который собираетесь русифицировать Добавить язык.

Добавить русский файл к шаблону

После этого в списке найдите Русский язык и добавить po-файл. На данный момент создан файл локализации, который является пустым. Следовательно приступим к его заполнению — нажмите Редактировать рядом с файлом русификации.

Редактирования шаблона для перевода

Попадаем на страницу с редактируемыми элементами уже шаблона. Опять напротив фраз на английском жмем Редактировать и начинаем переводить.

Перевод шаблона на русский язык с помощью пллагина

Для тех, кто торопится есть возможность перевода с помощью Google API, но не всегда он выручит, так как (упомянул выше) не всегда перевод соответствует логике. Жмем Save & Next и приступаем ко второй фразе и так далее. После перевода всех элементов (плагины, шаблоны) обязательно нажмите на кнопку генерировать mo-файл, иначе все труды пойдут на смарку.

Все, шаблон и плагины русифицированы. Способ выбирать вам, но я добавлю лишь одно — Перед изменением кода обязательно сделайте резервную копию вашего блога, так как в случае ошибки можно без труда все загрузить обратно. И последнее — плагин не всегда находит те шаблоны, которые вам нужно русифицировать. Если так и случилось, то придется все делать первым способом, но в этом случае можно изучить структуру файлов шаблона, что будет очень полезным. Ну а тем, кто ищет готовые решения, то на сайте русских шаблонов можно найти подходящий для себя.

Комментариев: 19

  1. writer

    Orcinus Orca Вот как раз хочу сказать насчет с темами для WordPress — почему бы не создать стартовую тему, как на Drupal и сделать ее на свое усмотрение. А так кодить, проще готовый переделать — вероятность допустить ошибку меньше…ну это только мое мнение)))

  2. writer

    West Blogger Спасибо, поправил)
    Второй способ не всегда работает) И что в нем меня так сказать иронизировало — часто забывал нажать кнопку Обновить!

  3. Orcinus Orca

    writer, не знаю просто мне приходится иногда делать очень сложные шаблоны. Но если я понимаю, что совсем всё туго, то делаю свой собственный движок для конкретного сайта.

  4. Александр

    У меня шаблон русифицирован был. Но до этого применял не полностью русифицированные шаблоны. А так можно и поэкспериментировать, только сначала скопировать прежний вид php блога.

  5. West Blogger

    Шаблоны распространяются под лицензией GPL (что-то типа general public license) Если не ошибаюсь она позволяет распространять и модифицировать созданные шаблоны.

  6. writer

    Вот насчет GPL нужно почитать повнимательнее, они еще и имеют версии и прочие дополнения, также желательно наличие строк free for commercial use.

  7. Orcinus Orca

    Все эти надписи обязательны в лицензионном файле, лежащем в дистрибутиве. ГПЛ второй версии обязывает распространять в исходниках тот файл, что ты создал на основе продукта распространяемого под подобной лицензией.

  8. writer

    Orcinus Orca Как насчет того, что бывает отсутствие файла лицензии. Да и потом, чаще всего все сводится лишь к распространению продукта, а не на его использование, так как плагины для навигации меняют код шаблона.

  9. Александр

    Отличная статья! Сам пользуюсь русификацией wordpress’овских шаблонов через исходный код. Самому писать шаблоны для wordpress — пока знаний маловато, а подправить шаблончик — почему бы и нет!

  10. Rafael

    Хотел перевести с помощью Codestyling-Localization
    а там выходит сообщение

    Your translation file doesn’t support the multiple textdomains in one translation file extension.
    Please re-scan the related source files at the overview page to enable this feature.

    перевод: Ваш файл перевода не поддерживает кратное textdomains в одном файловом расширении перевода.
    Пожалуйста см.- сканирование связанные исходные файлы на обзорной странице, чтобы приспосабливаться эту характеристику.

    Что это значит?

    1. writer

      Проблема с файлом (он использует не те запросы, которые использует wordpress, в особенности вызова). С simple-press пока до уровня кода работать не приходилось, но в скором времени постараюсь сделать запись про него и с вашей проблемой

  11. Awwa

    Народ, прошу помощи.
    Я перевёл шаблон classipress_318 с помощью плагина CodeStyling Localization. Есть два файла ru_RU.po и ru_RU.mo, но шаблон остаётся на английском языке. Подскажите, пожалуйста, что надо сделать чтоб шаб стал русским?
    Буду благодарен за любую помощь

  12. maksim

    а у меня файл создает а после нажатия редактировать выдает:

    Error: The actual loaded translation content does not match the textdomain: cosmotheme
    Expect, that any text you translate will not occure as long as the textdomain is mismatching!
    This is a coding issue at the source files you try to translate, please contact the original Author and explain this mismatch.

    что делать

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>