Перевод темы WordPress на русский язык: как перевести шаблон правильно

.

Как самому перевести шаблон wordpress на русский язык (перевод плагинов)

Перевод WordPress

Написал Зеленая Буковка2013-01-26в раздел Интернет

Обновлено: 2014-03-31

Перевод пользовательского интерфейса для WordPress

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

admin-network-ru_RU.mo admin-network-ru_RU.po admin-ru_RU.mo admin-ru_RU.po continents-cities-ru_RU.mo continents-cities-ru_RU.po ru_RU.mo ru_RU.po

Найденный лут нужно сложить в папку /wp-content/languages/

Чтобы наш вордпресс их съел и начал использовать, нужно включить эту самую локаль в конфиге: /wp-config.php. Определение локали выглядит так:

define(‘WPLANG’, ‘ru_RU’);

Все, теперь WordPress полностью русифицирован. Если у установленной темы есть файлы локализации,

Перевод темы для WordPress

Язык темы меняется автоматически, вслед за изменением языка WordPress, если у нее есть файлы локализации. Например, для стандартной Twenty Twelve файлы перевода лежат там же:

/wp-content/languages/themes/twentytwelve-ru_RU.mo /wp-content/languages/themes/twentytwelve-ru_RU.po

Или они могут лежать в /wp-content/themes/theme-name/languages/de_DE.po. Место зависит от автора темы, но, в любом случае, такое развитие событий наиболее благоприятно. Если вордпресс русский, а тема — нет, то значит автор имеет лень, и от количества лени зависит объем работы для перевода. В любом случае нам понадобится программа Poedit, которая будет делать за нас грязную работу. Она свободная и кроссплатформенная, так что поиск и установка проблем не составит.

Далее есть несколько вариантов развития событий:

1. У темы есть файлы, готовые к переводу.

Это может быть файл с расширением .pot, например xx_XX.pot. Или можно взять один из переводов на другие языки, например de_DE.po (и de_DE.mo). .pot и .po файлы можно скормить Poedit, который позволит удобно перевести весь текст и сам создаст соответствующий .mo файл. Остается лишь назвать файлы так, как надо (по аналогии с .pot или другими .po файлами) и положить туда, откуда брали. Все.

2. Готовых .po файлов нет, но тема создана с возможностью перевода

Как раз такие темы мне попадаются. Тексты они выводят через gettext, но созданием pot-файлов автор не озаботился или бросил дело на половине дороги …

3. Текст вписан напрямую в .php скрипты, без использования GetText.

Тяжелый случай для перевода. Каждое слово придется переводить и править вручную, лазая по скриптам. Можно также заняться подготовкой темы к переводу и сделать вывод текста через GetText. Как это?

Ярлыки: WordPress


Ближайшие сообщения:

Похожие сообщения:

О том, как переводить wordpress темы в сети, уже написано не мало. В первую очередь, это касается ручных переводов. То есть,  вооружившись текстовым редактором, вы должны найти все нужные вам для перевода слова в коде и методично, шаг за шагом, перевести их на русский.

Сегодня разговор пойдет о двух плагинах, значительно облегчающих эту задачу. То есть переводить придется все равно вам, но сделать это будет уже гораздо удобнее.

Один плагин совершенно бесплатный, это  —  CodeStyling Localization.

Проблема с Codestyling localization

А вот второй, самый что ни на есть платный — Easy Translation Manager.

В конце статьи подведу небольшой сравнительный итог обоих плагинов.

CodeStyling Localization (CSL)

Устанавливается стандартным способом. После установки, в меню Инструменты, появляется новый раздел – локализация. Кликаем на нем и попадаем на страницу плагина – Управление языковыми файлами.

Перед вами меню с шестью закладками:

Все файлы – плагин показывает все, что он сможет перевести.

WordPress – собственно перевод самой WordPress. Не особо актуально, ибо у большинства стоит уже русский WP.

Плагины – выводит список плагинов, которые можно перевести

Темы – выводит список всех тем для перевода

Compatibility – показывает, где могут возникнуть проблемы с переводом

Security Risk – показывает, где могут возникнуть проблемы с безопасностью.

Порядок работы  с переводом примерно такой:

Выбираем в списке всех доступных (если у вас их установлено несколько) тему, нужную нам для локализации.

Если в графе Языки ничего нет, то жмем Добавить новый язык. Находим и выбираем в списке русский язык. После этого он появится в графе языков. Нажимаем Сканировать и даем плагину просканировать  тему на предмет необходимых для перевода слов. Затем нажимаем Редактировать.

Открывается список всех доступных для локализации слов. Ну и далее по очереди или выборочно переводим нужные слова нажимая напротив каждого Редактировать. Появится всплывающее окно состоящее из двух частей. Где наверху оригинал, а внизу можно вписать свой перевод. Нажимаем Сохранить или Сохранить и перейти к следующему/предыдущему.

Для того, что бы все ваши изменения вступили в силу нажимаем кнопку Генерировать МО – файл.

Вот собственно и вся процедура. Отдельно, при желании можно выбрать в выпадающем списке варианты Textdomain – это как раз и есть подготовленные для перевода части кода. Там, например, могут быть отдельно файлы, относящиеся к панели управления темой, комментариям и прочие. Можно использовать поиск, как для оригинальных слов, так и для уже переведенных.

Все то же самое применяется и в отношении плагинов.

Easy Translation Manager (ETM)

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

После установки плагина в «админке» появляется новое меню ETM Settings, состоящее из семи разделов.

Get Started: Краткое руководство о том, как начать работу с плагинов. Авторы рекомендуют выполнить три простых шага – Выбрать языки для перевода – выбрать доступ к меню выбора языков – начать перевод тем, плагинов и остального.

Plugin Translation — Перевод плагинов. Тут будет список плагинов доступных для перевода и возможность их перевести. Сам процесс перевода практически аналогичен тому, что я описывал для бесплатного плагина , поэтому не вижу особого смысла повторятся.

Theme Translation — Перевод тем. Так же как предыдущий.

Pages Translation — Перевод отдельных страниц сайта

Post Translation — Перевод всего, что связано с постами, тегами и рубриками

Menu Translation — Перевод основного меню темы

Options — Набор основных опций плагина — General Settings, Manage availability of Items, List Configuration, Design and Layout, Language, Support for other plugins, License. С виду поражает количеством настроек, но на самом деле из важных только – выбор нужных языков. Все остальное просто настройка внешнего вида самого плагина в админке, скрытие или видимость отдельных элементов и т д.

Как видим, ETM имеет гораздо больше настроек, чем его бесплатный конкурент, но большинство из них можно и нужно просто оставить как есть — без изменений.

Итоги

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

В общем и целом – оба плагина весьма придирчивы и напрочь отказались видеть плагины и темы, где авторами заранее не приготовлены файлы для локализации. То есть, если в скачанной теме или плагине нет папки – languages, то и перевода не будет. Кстати, наличие такой папки в бесплатной теме — лишнее подтверждение того, насколько серьезно автор подошел к созданию своего шаблона.

Страницы плагинов — CodeStyling Localization  Easy Translation Manager

Рекомендую почитать так же — Как и чем перевести тему и плагин?


You can manage and edit all gettext translation files (*.po/*.mo) directly out of WordPress Admin Center without any need of an external editor.

You can manage and edit all gettext translation files (.po/.mo) directly out of your WordPress Admin Center without any need of an external editor. It automatically detects the gettext ready components like WordPress itself or any Plugin / Theme supporting gettext, is able to scan the related source files and can assists you using Google Translate API or Microsoft Translator API during translation. This plugin supports WordPress MU and allows explicit WPMU Plugin translation too. It newly introduces ignore-case and regular expression search during translation. BuddyPress and bbPress as part of BuddyPress can be translated too. Produces transalation files are 100% compatible to PoEdit.

Requirements

  1. WordPress version 2.5 and later
  2. PHP Interpreter version 4.4.2 or later
  3. PHP Tokenizer Module (normally standard, required since version 1.90)
  4. PHP Curl Library (if Microsoft translation API services should be used)

Please visit the official website for further details and the latest information on this plugin.

Details

  1. automatic detection of gettext ready components like WordPress, Plugins or Themes
  2. creation of new language translation files at choosen language (ensures correct plural definitions too)
  3. inplace adjusting of .mo/.po file permissions to be able to tranlate it
  4. component specific (re)scan of source file to build the updated catalog entries
  5. wrapping multiple plugins using same textdomain into one translation unit (like plugin and it’s widget(s))
  6. extended editing of full gettext catalog assisted by using Google or Microsoft translate API
  7. full catalog search (exact match) with instant result set view for source or target language
  8. correct handling of language dependend plural forms by providing appropriated edit dialog
  9. first support of WMPU plugins started at version 1.60
  10. complete WordPress support related to multiple textdomains included (since WP 2.8 and higher)
  11. complete support of developer code comments for translators
  12. complete support of context based gettext functions and displays this at editor qualified
  13. supports also translation of non gettexted code parts, that marked as to be replaced in PHP files directly
  14. handles textdomain separation for each module (WP, Plugins, Themes) to avoid standard textdomain usage been part of *.mo file
  15. support of Theme language file sub folder (introduced at WordPress version 2.7 and higher)
  16. support of BuddyPress and also bbPress as integration part of BuddyPress
  17. support of *.pot file content during new language file creation
  18. support of encrypted premium plugins but with security risk warning
  19. support of low memory conditions (32M memory_limit) with big translation files or source codes
  20. support of IDN based installations if PHP version is 5.0 or higher

Scripting Guard

This plugin work with a world unique technology to protect it’s proper function against malfunction 3rd party plugins or bad behavior themes (see screenshot section). Often Authors are attaching javascripts at global space regardless if they damage other plugins backend pages. This plugin detects now any kind of unrelated javascripts that have been attached to it’s pages but are bad behavior. In such cases this scripts will be stipped and a warning message occures. Furthermore the protection also detects runtime exceptions of injected inline scripts and displays them too.

Announcement

Starting with version 3.4 of WordPress I faced a restructured handling of localization within the Core Files, can be read here: Important Changes for WordPress 3.4 Because I had to cope with this, the translation process of WordPress itself has been rewritten. The pugin now supports backward compatibility (for older WordPress versions) and also generates two new structured *.mo files. It depends on your installed version, if it’s less than 3.4-alpha, than you will get the old files generated otherwise the new files.

Support & Development

The plugin stays for a long time at major version 1.x now and it was planned to come up with a new major release 2.x several month ago.

Как сделать перевод шаблона WordPress на русский язык?

But because of massive changes at the WordPress core, not having that much time I would need, the new major version will be delayed again. I can’t estimate currently a timeframe for availability. That’s why I continue maintainance of version 1.x as long as I’m working on version 2.x at alpha stage in parallel.

Translation API’s & User Interface

Introduced with version 1.99.17 of this plugin, the translation API’s of Google and Microsoft have been integrated. Both require at least subscriptions and the Google API is a paid service. The plugin knows, which API is able to translated what language, so you will find the information next to your language file to be translated at the list. I did reshape the User Interface a bit more closer to WordPress Standard UI, so it should be more intuitive to use it from now on.

Translations

The german translation has been created with this plugin itself. Feel free to make your translation related to your native language. If you have a ready to publish translation of this plugin not pre-packaged yet, please send me an email. I will extend the package and remark your work at Acknowledgements.



Bookmark the permalink.

Я только что построил свой первый плагин для wp, и даже если это не отличная «поэзия кода»;) он работает так, как должен.

Knowledge Base

Это плагин, который преобразует галерею wp по умолчанию с помощью плагина jQuery GalleryView 3.0 (http://spaceforaname.com/galleryview).

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

Я пытался следить за миллионами обучающих материалов, представленных в Интернете, читать много сообщений об этой проблеме на форумах и следовать рекомендациям кода… но все равно не повезло.

вот что я сделал:

  • каждая текстовая строка находится внутри функции gettext ( и )
  • Используя poedit, я создал файлы .po и .mo, сканируя каталог плагина (каждый из них прошел нормально), затем я добавил переводы в этот файл.
  • Я назвал файл .po таким, как NAME-OF-THE-PLUGIN-it_IT.po(файл .mo был сгенерирован с тем же именем)
  • Я поместил файлы переводов внутри папки/языков плагина (имя папки совпадает с плагином и файлами переводов)
  • то я попытался добавить функцию внутри основного файла плагина. Я пробовал, потому что нет способа заставить его работать.

Единственное, на что я не уверен, это тот факт, что созданный плагин не находится под функциями класса + конструктора… просто потому, что я все еще не так хорош в кодировании.

Но я положил внутри , например:

приведенные выше строки не находятся внутри логики, они просто находятся в основном файле плагина, например.

Это пример моего использования функций gettext:

что я не понял?

pluginswordpresslocalization

задан bluantinoo 23 марта '11 в 14:28

источникподелиться

На мой взгляд, мало кто уделяет этому внимания, хотя тема достаточно важная и полезная. Начну с того, что обычно разработчики тем разрабатывают их не с нуля, а берут одну из дефолтных тем вордпресса, поставляемых вместе с движком. Поэтому многие сталкиваются с тем, что у них в шаблоне выводятся английские строки, типа Edit, Tags и так далее. Многие не заморачиваются и правят их на русские варианты прямо в шаблоне.

Как перевести WordPress шаблон или плагин. Плагин Codestyling Localization.

Я категорически не рекомендую этого делать по многим причинам, одни из которых — вашу тему могут использовать на многоязычном сайте, где также потребуется перевести эти слова на другие языки; кроме того, в самом вордпрессе уже есть специальные механизмы, облегчающие перевод строк на ваш язык, при этом без необходимости лезть в сам код шаблона для этого. Об этом и расскажу.

Если вы скачали уже локализованный дистрибутив вордпресса, то у вас все дефолтные темы по умолчанию локализованы.

Каким образом они локализованы, об этом я расскажу чуть ниже.

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

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

Несмотря на то, что все надписи, которые используются для вывода в шаблоне на английском языке — в дефолтных темах, которые поставляются с локализованным дистрибутивом — все будет на русском языке. Автоматический перевод обеспечивается специальными бинарными файлами локализаций, в которых «зашиты» сопоставления английских строк, используемых в вашем шаблоне с русскими вариантами переводов. Эти бинарные файлы (что означает, что их нельзя просто так открывать в текстовом редакторе и отредактировать, но которые специально оптимизированы для работы движка вордпресс) создаются также на основе текстовых. И хотя эти файлы в скачанном вами локализованном специально под русский язык движке лежат не в папках с дефолтными темами, все же рекомендуется при создании тем класть эти файлы в папку с соответствующей локализуемой темой для более удобной переносимости темы.

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

Будучи внимательными, вы заметите, что все файлы делятся на два типа: с расширением ; и расширением .

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

Создавать и редактировать свои переводы тем вы можете с помощью программы Poedit. Более подробно о работе с этой программой вы можете почитать как на сайте программы, так и на других популярных ресурсах, заострять внимание на этом я не буду. Если вкратце — то вы открываете текстовый вариант перевода, редактируете/добавляете что-то, после чего программа автоматически на основе созданного вами перевода компилирует новый бинарный файл.

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

В данном случае, если мы говорим о русском языке, в папке темы должна быть папка с файлом (почему указано расширение у файла, для меня тоже загадка, хотя никаких php-файлов в папке с языками быть не должно, видимо срабатывает хитрый rewrite), и если этот файл есть, то срабатывает перевод из него. ‘theme_name’ — это название текстового домена, по которому будет искаться перевод. В данном случае этот домен указывается в ваших настройках через функцию , обычно он соответствует названию вашей темы. Если вы все это укажете, то никаких проблем быть не должно, и ваш шаблон будет успешно подхватывать переводы строк из файла локализации.

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

Допустим, вы хотите добавить строку «Текущая дата» в определенное место шаблона. Естественно, в шаблон вы будете вписывать англоязычный вариант, как дефолтный — «Current data». Чтобы
вордпресс подхватил эту строку и вместо нее вставил перевод, в шаблоне надо написать примерно так:

Обратите внимание на аргументы: первым аргументом функции будет сама оригинальная строка, а вторым аргументом идет название вашей темы. Этим мы даем понять функции, что перевод надо искать в файлах локализации, связанных с нашей темой. Инициализацию выбора файлов локализации я описал чуть выше. Данная функция используется в тех ситуациях, когда строки не выводятся сразу, а записываются в какие-либо переменные. Если же нам надо сразу вывести текст на страницу (аналог ), то мы можем использовать для этого функцию .

Кроме того, в вордпрессе существует и более сложная функция перевода, позволяющая переводить числительные, которые зависят от контекста использования. Эта функция _n() Заострять внимание на этой функции не буду, о ней вы сможете почитать в кодексе по ссылке.

На этом я хочу закончить свой обзорный рассказ о том, как же локализовать тему для движка wordpress.

codex, localization, poedit, wordpress

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

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