Как руссифицировать тему WordPress

Подбирая для очередного блога тему WordPress, натыкаешься порой на какой-нибудь западный ресурс, где находишь просто кладезь сногсшибательных тем, которые не только практически уникальны для рунета, но и с хорошим дизайном и функционалом.

Одна незадача: её ещё ни один «лекактус» не успел  перевести. Это и неудивительно: переводчиков-руссификаторов мало, а темы растут, как грибы после дождя. Более того, ни один из переводчиков не захочет делиться секретом о том, как правильно и быстро перевести тему. Причина банальна: после перевода темы, переводчик указывает в теме ссылку на свой ресурс, таким образом порождая на него вирусный трафик и создавая себе популярное имя.

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

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

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

Руссификация тем WordPress

1. archive.php

  • <?php /* If this is a category archive */ if (is_category()) { ?><h2 class=»pagetitle»>Archive &#8216;<?php echo single_cat_title(); ?>&#8217; categories</h2>
  • <?php /* If this is a category archive */ if (is_category()) { ?><h2 class=»pagetitle»>Архив &#8216;<?php echo single_cat_title(); ?>&#8217; категории</h2>
*****
  • <?php /* If this is a daily archive */ } elseif (is_day()) { ?><h2 class=»pagetitle»>Archive <?php the_time(‘F jS, Y’); ?></h2>
  • <?php /* If this is a daily archive */ } elseif (is_day()) { ?><h2 class=»pagetitle»>Архив <?php the_time(‘F jS, Y’); ?></h2>
*****
  • <?php /* If this is a monthly archive */ } elseif (is_month()) { ?><h2 class=»pagetitle»> Archive  <?php the_time(‘F, Y’); ?></h2>
  • <?php /* If this is a monthly archive */ } elseif (is_month()) { ?><h2 class=»pagetitle»> Архив  <?php the_time(‘F, Y’); ?></h2>
*****
  • <?php /* If this is a yearly archive */ } elseif (is_year()) { ?><h2 class=»pagetitle»> Archive  <?php the_time(‘Y’); ?></h2>
  • <?php /* If this is a yearly archive */ } elseif (is_year()) { ?><h2 class=»pagetitle»> Архив  <?php the_time(‘Y’); ?></h2>
*****
  • <?php /* If this is an author archive */ } elseif (is_author()) { ?><h2 class=»pagetitle»>Autor archive</h2>
  • <?php /* If this is an author archive */ } elseif (is_author()) { ?><h2 class=»pagetitle»>Авторский архив</h2>
*****
  • <?php /* If this is a paged archive */ } elseif (isset($_GET['paged']) && !empty($_GET['paged'])) { ?><h2 class=»pagetitle»>Blog archive</h2>
  • <?php /* If this is a paged archive */ } elseif (isset($_GET['paged']) && !empty($_GET['paged'])) { ?><h2 class=»pagetitle»>Архив блога</h2>
*****
  • <div class=»subtitle»>Posted (<i><?php the_author() ?></i>) in <?php the_category(‘, ‘) ?> on <?php the_time(‘F-j-Y’) ?></div>
  • <div class=»subtitle»>Опубликовано (<i><?php the_author() ?></i>) в <?php the_category(‘, ‘) ?> <?php the_time(‘F-j-Y’) ?></div>
*****
  • <?php the_content(‘Read the rest of this entry &raquo;’); ?>
  • <?php the_content(‘Читать остальные посты &raquo;’); ?>
*****
  • <?php comments_popup_link(‘(0) Comments’, ‘(1) Comment’, ‘(%) Comments’); ?>
  • <?php comments_popup_link(‘(0) Комментарии’, ‘(1) Комментарии’, ‘(%) Комментарии’); ?>
*****
  • <a href=»<?php the_permalink() ?>» class=»readmore»>Read more</a>
  • <a href=»<?php the_permalink() ?>» class=»readmore»>Читать дальше</a>
*****
  • <?php edit_post_link(‘Edit’, », »); ?>
  • <?php edit_post_link(‘Редактировать’, », »); ?>
*****
  • <h2 class=»center»>Not Found</h2>
  • <h2 class=»center»>Не найдено</h2>

2. comments.php

  • <p class=»nocomments»>This post is password protected. Enter the password to view comments.<p>
  • <p class=»nocomments»>Этот пост защищен паролем. Введите пароль, чтобы увидеть комментарии.<p>
*****
  • <div class=»comm_title»>Comments:</div>
  • <div class=»comm_title»>Комментарии:</div>
*****
  • <p class=»nocomments»>Comments are closed.</p>
  • <p class=»nocomments»>Комментарии закрыты.</p>
*****
  • <p>You must be <a href=»<?php echo get_option(‘siteurl’); ?>/wp-login.php?redirect_to=<?php the_permalink(); ?>»>logged in</a> to post a comment.</p>
  • <p>Вы должны <a href=»<?php echo get_option(‘siteurl’); ?>/wp-login.php?redirect_to=<?php the_permalink(); ?>»>войти</a>, чтобы комментировать.</p>
*****
  • <div id=»form_title_text»>Post a comment</div>
  • <div id=»form_title_text»>Оставить комментарий</div>
*****
  • <td>Logged in as <a href=»<?php echo get_option(‘siteurl’); ?>/wp-admin/profile.php»><?php echo $user_identity; ?></a>. <a href=»<?php echo get_option(‘siteurl’); ?>/wp-login.php?action=logout» title=»Log out of this account»>Logout &raquo;</a></td>
  • <td>Вы зашли как <a href=»<?php echo get_option(‘siteurl’); ?>/wp-admin/profile.php»><?php echo $user_identity; ?></a>. <a href=»<?php echo get_option(‘siteurl’); ?>/wp-login.php?action=logout» title=»Log out of this account»>Выйти &raquo;</a></td>
*****
  • <td align=»right» width=»110″>Name:&nbsp;</td>
  • <td align=»right» width=»110″>Имя:&nbsp;</td>
*****
  • <td align=»right» valign=»top»>Comments:&nbsp;</td>
  • <td align=»right» valign=»top»>Комментарии:&nbsp;</td>
*****
  • <!—<div class=»comm_count»><?php comments_number(’0 Comment’, ’1 Comment’, ‘% Comments’ );?> posted on «<?php the_title(); ?>»</div> —>
  • <!—<div class=»comm_count»><?php comments_number(’0 Комментарий’, ’1 Комментарий’, ‘% Комментариев’ );?> Опубликовано «<?php the_title(); ?>»</div> —>

3. index.php

  • <div class=»subtitle»>Posted (<i><?php the_author() ?></i>) in <?php the_category(‘, ‘) ?> on <?php the_time(‘F-j-Y’) ?></div>
  • <div class=»subtitle»>Опубликовано (<i><?php the_author() ?></i>) in <?php the_category(‘, ‘) ?> on <?php the_time(‘F-j-Y’) ?></div>
*****
  • <?php comments_popup_link(‘(0) Comments’, ‘(1) Comment’, ‘(%) Comments’); ?>
  • <?php comments_popup_link(‘(0) Комментарий’, ‘(1) Комментарий’, ‘(%) Комментариев’); ?>
*****
  • <a href=»<?php the_permalink() ?>» class=»readmore»>Read more</a>
  • <a href=»<?php the_permalink() ?>» class=»readmore»>Читать дальше</a>
*****
  • <?php edit_post_link(‘Edit’, », »); ?>
  • <?php edit_post_link(‘Редактировать’, », »); ?>
*****
  • <h2 class=»center»>Not Found</h2>
  • <h2 class=»center»>Не найдено</h2>
*****
  • <p class=»center»>Sorry, but you are looking for something that isn’t here.</p>
  • <p class=»center»>Извините, но того, что Вы искали, здесь не найдено.</p>

4. search.php

  • <h2 class=»pagetitle»>Search Results</h2>
  • <h2 class=»pagetitle»>Результаты поиска</h2>
*****
  • <div class=»subtitle»>Posted (<i><?php the_author() ?></i>) in <?php the_category(‘, ‘) ?> on <?php the_time(‘F-j-Y’) ?></div>
  • <div class=»subtitle»>Опубликовано (<i><?php the_author() ?></i>) в <?php the_category(‘, ‘) ?>  <?php the_time(‘F-j-Y’) ?></div>
*****
  • <?php comments_popup_link(‘(0) Comments’, ‘(1) Comment’, ‘(%) Comments’); ?>
  • <?php comments_popup_link(‘(0) Комментарии’, ‘(1) Комментарии’, ‘(%) Комментарии’); ?>
*****
  • <a href=»<?php the_permalink() ?>» class=»readmore»>Read More</a>
  • <a href=»<?php the_permalink() ?>» class=»readmore»>Читать дальше</a>
*****
  • <?php edit_post_link(‘Edit’, », »); ?>
  • <?php edit_post_link(‘Редактировать’, », »); ?>
*****
  • <h2 class=»center»>No posts found. Try a different search?</h2>
  • <h2 class=»center»>Постов не найдено. Хотите продолжить поиск?</h2>

5. single.php

  • <?php the_content(‘Read the rest of this entry &raquo;’); ?>
  • <?php the_content(‘Читать остальные посты &raquo;’); ?>
*****
  • <a href=»<?php the_permalink() ?>» class=»readmore»>Read More</a>
  • <a href=»<?php the_permalink() ?>» class=»readmore»>Читать дальше</a>
*****
  • <?php edit_post_link(‘Edit’, », »); ?>
  • <?php edit_post_link(‘Редактировать’, », »); ?>
*****
  • <p>Sorry, no posts matched your criteria.</p>
  • <p>Извините, нет постов, соотетствующих Вашим критериям.</p>

6. attachment.php

  • This entry was posted <?php /* This is commented, because it requires a little adjusting sometimes. You’ll need to download this plugin, and follow the instructions: http://binarybonsai.com/archives/2004/08/17/time-since-plugin/ *//* $entry_datetime = abs(strtotime($post->post_date) — (60*120)); echo time_since($entry_datetime); echo ‘ ago’; */ ?> on <?php the_time(‘l, F jS, Y’) ?> at <?php the_time() ?>and is filed under <?php the_category(‘, ‘) ?>. You can follow any responses to this entry through the <?php comments_rss_link(‘RSS 2.0′); ?> feed.
  • Этот пост был опубликован <?php /* This is commented, because it requires a little adjusting sometimes. You’ll need to download this plugin, and follow the instructions: http://binarybonsai.com/archives/2004/08/17/time-since-plugin/ *//* $entry_datetime = abs(strtotime($post->post_date) — (60*120)); echo time_since($entry_datetime); echo ‘ ago’; */ ?> <?php the_time(‘l, F j, Y’) ?> <?php the_time() ?>в категории <?php the_category(‘, ‘) ?>. Подпишитесь на рассылку посредством <?php comments_rss_link(‘RSS 2.0′); ?> фида.
*****
  • You can <a href=»#respond»>leave a response</a>, or <a href=»<?php trackback_url(true); ?>» rel=»trackback»>trackback</a> from your own site.
  • Вы можете <a href=»#respond»>оставить комментарий</a>, либо <a href=»<?php trackback_url(true); ?>» rel=»trackback»>отправить трекбек</a> с Вашего сайта.
*****
  • Responses are currently closed, but you can <a href=»<?php trackback_url(true); ?> » rel=»trackback»>trackback</a> from your own site.
  • Комментарии временно закрыты, но Вы можете <a href=»<?php trackback_url(true); ?> » rel=»trackback»>отправить трекбек</a> с Вашего сайта.
*****
  • You can skip to the end and leave a response. Pinging is currently not allowed.
  • Вы можете оставить сообщение. Пингование на данный момент приостановлено.
*****
  • Both comments and pings are currently closed.
  • Комментарии и пинги временно закрыты.
*****
  • <?php } edit_post_link(‘Edit this entry.’,»,»); ?>
  • <?php } edit_post_link(‘Редактировать этот пост.’,»,»); ?>
*****
  • <p>Sorry, no attachments matched your criteria.</p>
  • <p>Извините, но приложений, соответствующих Вашим критериям, не обнаружено.</p>

7. comments-popup.php

  • <title><?php echo get_option(‘blogname’); ?> — Comments on <?php the_title(); ?></title>
  • <title><?php echo get_option(‘blogname’); ?> — Комментарии в<?php the_title(); ?></title>
*****
  • <h2 id=»comments»>Comments</h2>
  • <h2 id=»comments»>Комментарии</h2>
*****
  • <p><a href=»<?php echo get_option(‘siteurl’); ?>/wp-commentsrss2.php?p=<?php echo $post->ID; ?>»><abbr title=»Really Simple Syndication»>RSS</abbr> feed for comments on this post.</a></p>
  • <p><a href=»<?php echo get_option(‘siteurl’); ?>/wp-commentsrss2.php?p=<?php echo $post->ID; ?>»><abbr title=»Really Simple Syndication»>RSS</abbr> feed комментариев этого поста.</a></p>
*****
  • <p><?php _e(«The <abbr title=\»Universal Resource Locator\»>URL</abbr> to TrackBack this entry is:»); ?> <em><?php trackback_url() ?></em></p>
  • <p><?php _e(«The <abbr title=\»Universal Resource Locator\»>URL</abbr> к трекбеку этого поста:»); ?> <em><?php trackback_url() ?></em></p>
*****
  • <p>No comments yet.</p>
  • <p>Коментариев пока нет.</p>
*****
  • <h2>Leave a comment</h2>
  • <h2>Оставить комментарий</h2>
*****
  • <p>Line and paragraph breaks automatic, e-mail address never displayed, <acronym title=»Hypertext Markup Language»>HTML</acronym> allowed: <code><?php echo allowed_tags(); ?></code></p>
  • <p>Строки и параграфы создаются автоматически, e-mail никогда не отображается, <acronym title=»Hypertext Markup Language»>HTML</acronym> разрешен: <code><?php echo allowed_tags(); ?></code></p>
*****
  • <label for=»author»>Name</label>
  • <label for=»author»>Имя</label>
*****
  • <label for=»comment»>Your Comment</label>
  • <label for=»comment»>Ваш комментарий</label>
*****
  • <p>Sorry, the comment form is closed at this time.</p>
  • <p>Извините, комментарии на данный момент закрыты.</p>
*****
  • <div><strong><a href=»javascript:window.close()»>Close this window.</a></strong></div>
  • <div><strong><a href=»javascript:window.close()»>Закрыть это окно.</a></strong></div>
*****
  • <p class=»credit»><?php timer_stop(1); ?> <cite>Powered by <a href=»http://wordpress.org/» title=»Powered by WordPress, state-of-the-art semantic personal publishing platform»><strong>Wordpress</strong></a></cite></p>
  • <p class=»credit»><?php timer_stop(1); ?> <cite>Разработано <a href=»http://wordpress.org/» title=»Powered by WordPress, state-of-the-art semantic personal publishing platform»><strong>Wordpress</strong></a></cite></p>

8. functions.php

Как правило, здесь ничего менять не надо.

9. page.php

  • <?php the_content(‘<p class=»serif»>Read the rest of this page &raquo;</p>’); ?>
  • <?php the_content(‘<p class=»serif»>Читать дальше &raquo;</p>’); ?>
*****
  • <?php edit_post_link(‘Edit this entry.’, ‘<p>’, ‘</p>’); ?>
  • <?php edit_post_link(‘Редактировать этот пост.’, ‘<p>’, ‘</p>’); ?>
*****
  • <?php wp_link_pages(array(‘before’ => ‘<p><strong>Pages:</strong> ‘, ‘after’ => ‘</p>’, ‘next_or_number’ => ‘number’)); ?>
  • <?php wp_link_pages(array(‘before’ => ‘<p><strong>Страницы:</strong> ‘, ‘after’ => ‘</p>’, ‘next_or_number’ => ‘number’)); ?>

10. sidebar.php

  • <h2>Categories</h2>
  • <h2>Категории</h2>
*****
  • <h2>Archives</h2>
  • <h2>Архивы</h2>
*****
  • <h2>Meta</h2>
  • <h2>Meтa</h2>
*****
  • <li><a href=»http://validator.w3.org/check/referer» title=»This page validates as XHTML 1.0 Transitional»>Valid <abbr title=»eXtensible HyperText Markup Language»>XHTML</abbr></a></li>
  • <li><a href=»http://validator.w3.org/check/referer» title=»This page validates as XHTML 1.0 Transitional»>Соответствует <abbr title=»eXtensible HyperText Markup Language»>XHTML</abbr></a></li>

11. 404.php

  • <h2 class=»center»>Error 404 — Not Found</h2>
  • <h2 class=»center»>Ошибка 404 — Страница не найдена</h2>

12. archives.php

  • <h2>Archives by Month:</h2>
  • <h2>Архив по месяцам:</h2>
*****
  • <h2>Archives by Subject:</h2>
  • <h2>Архив по темам:</h2>

13. footer.php

  • <div class=»alignleft»><?php next_posts_link(‘Previous Page’) ?></div>
  • <div class=»alignleft»><?php next_posts_link(‘Предыдущая страница’) ?></div>
*****
  • <div class=»alignright»><?php previous_posts_link(‘Next Page’) ?></div>
  • <div class=»alignright»><?php previous_posts_link(‘Следующая страница’) ?></div>
*****
  • <?php bloginfo(‘name’);?></strong> &copy; 2007 All Rights Reserved. Using <a href=»http://wordpress.org/»>WordPress</a> Engine<br /><a href=»http://www.themebox.org/bloomingday-3-column-wordpress-theme/» title=»BloomingDay WP Theme»>BloomingDay 1.0</a> made by <a href=»http://www.themebox.org/» title=»ThemeBox WordPress Themes»>WordPress Themes</a>
  • <?php bloginfo(‘name’);?></strong> &copy; 2007 Все права защищены. Использована тема <a href=»http://wordpress.org/»>WordPress</a> Engine<br /><a href=»http://www.themebox.org/bloomingday-3-column-wordpress-theme/» title=»BloomingDay WP Theme»>BloomingDay 1.0</a>, разработана <a href=»http://www.themebox.org/» title=»ThemeBox WordPress Themes»>WordPress Themes</a>

14. header.php

  • <a href=»<?php bloginfo(‘home’); ?>»>Home</a>
  • <a href=»<?php bloginfo(‘home’); ?>»>Главная</a>
*****
  • <td>Search:</td>
  • <td>Поиск:</td>

15. links.php

  • <h2>Links:</h2>
  • <h2>Ссылки:</h2>
*****

Если Вы заметили, там, где в коде речь идет о комментариях, я их не стал склонять, так как не всегда угадаешь русские окончания и падежи. Но, если у Вас есть большое желание, можете более тщательно изучить такие моменты. О каких-либо неточностях или недостающих моментах, пишите в комментариях. Исправим, дополним…

Продолжение следует (по мере поступления заявок, либо нахождения новых файлов для руссификации вордпресса)… Полная версия руссификации файлов вордпресса будет в одном из разделов моей книги по вордпрессу, которая должна выйти в этом году.

P.S. Кстати, у меня никак руки не доходят до руссификации этого блога. Друзьям уже все темы перевел. Как говорят: сапожник без сапог!


Метки: , ,

Если Вам понравилась заметка, пожалуйста, прокомментируйте ее, подпишитесь на фид и получайте будущие публикации по RSS, либо поделитесь с друзьями в социальных сетях:

Комментарии

Полезная вещь! А то я все время заново перекапываю все файлы wp и ищу английские слова :)

никак не могу русифицировать свой сайт((( кириллицу не поддерживает чтоли…иероглифы появляются..вроде поняла где и что переименовывать, но вот такая беда

auditor_se

Аня, проверьте, чтобы все файлы темы были в кодировке UTF-8 (и без ВОМ). Если проблема не решится, напишите мне.

Блиин)) статья в зачёт. Раньше и не пользовался забугорными стилями из за проблем с руссификацией, спасибо =)

Над будет щас опробовать =) Результаты отпишу =)

Спасибо! На самом деле, в последнее время появилось очень много разных интересных тем с файлами, которых здесь нет. Всё охватить и невозможно. Если у кого-то возникнут затруднения с переводом, обращайтесь. Простая тема — 5wmz, премиум — 10 wmz.

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

Спасибо за нужную информацию! Недавно поставила западную тему — красива и мне очень подходит, а вот с переводом кое-где разобралась, а кое-что так и светит английским языком — не от незнания языка, а от вопросов по переводу как и что!

auditor_se

Пожалуйста! Чтобы искать ненайденные английские слова, можно воспользоваться поиском по файлам, например Тотал Коммандером или бесплатным инструментом гугла. Пересматривать все файлы, особенно если вы не знаете где это находится — непродуктивная работа…

Отличный пост, добавила в избранное. Сейчас редко встретить что-то особенное. Еще раз спасибо!

auditor_se

Chara, я рад, что Вам понравилось!)

Все это замечательно, но большинство премиум-тем не позволяют произвести русификацию таким образом, так как иногда требуется корректировать po-файлы, либо другие шаблонные файлы.
А по поводу кодировки — используйте notepad++ и пересохраняйте все в UTF-8 без BOM — и будет вам счастье!
Всем удачи!

auditor_se

Я таких не встречал на своем пути. А может, недостаточно переводил…)

Комментирование закрыто.