Локализация шаблонов и плагинов. Плагин Codestyling Localization

Локализация шаблонов и плагинов. Плагин Codestyling Localization

В прошлой статье Как самостоятельно русифицировать шаблон для WordPress? 1 часть — Подготовка мы установили на свой сайт шаблон/плагин, а также подготовили все необходимые для локализации инструменты.

Замечу, что советы в этой статье подойдут одинаково как для локализации шаблона, так и для локализации плагина.

Содержание статьи:

  1. Создание файла локализации с помощью плагина Codestyling Localization
  2. Перевод файла локализации с помощью плагина Codestyling Localization

Вы можете просмотреть видеоуроки по данной теме: 1 часть, 2 часть, 3 часть.


Создание файла локализации

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

После установки плагина, в админке в разделе Инструменты появится подраздел Локализация.

На этой странице сверху есть меню: WordPress, Плагины, Темы и т.д.

Рабочий интерфейс плагина
Рабочий интерфейс плагина

Нас в первую очередь интересуют пункты Плагины и Темы. В этих разделах находятся все темы и плагины, которые установлены на сайте (они не обязательно должны быть активированы, чтобы их увидел плагин Codestyling Localization).

Так как мы говорим о локализации шаблона, то переходим по ссылке Темы. Видим список установленных тем. Для каждой темы в колонке Языки указаны доступные языки в виде наличия файлов локализации с расширением .po и .mo.

Файл .po — это файл для редактирования перевода. С ним работают программы. После сохранения перевода в программе Poedit или плагине Codestyling Localization компилируется файл .mo. Именно, из этого файла функции тем и плагинов подтягивают перевод для своих выражений.

Т.е., чтобы отредактировать перевод в файле .mo — необходимо открыть и отредактировать файл .po. Думаю, это понятно.

Для примера я установил и активировал зарубежный премиум-шаблон Sahifa. Этот шаблон по умолчанию не имеет русской локализации.

Настройки темы Sahifa
Настройки темы Sahifa

В колонке Языки отсутствуют языки. Нам нужно добавить Русский язык.

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

cod_loc_1

В списке языков находим пункт «ru_RU Русский/Россия», отмечаем этот пункт и нажимаем на кнопку «создать po-файл».

cod_loc_2

По умолчанию создается пустой файл .po.

cod_loc_3

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

Сканирование продукта

Каким образом плагин Codestyling Localization выполняет сканирование продукта?

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

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

Примеры таких функций локализации:

Оформление таких функций зависит от конкретного места в исходном коде.

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

Примеры имен:

Строки должны быть всегда на английском языке.

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

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

Примеры продуктов, которые очень часто включают в шаблоны:

— WordPress importer
— Redux framework
— Другие фреймворки
— Слайдеры
— Woocommerce
— Установка плагинов
и др.

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

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

Сегодня большинство шаблонов и плагинов имеют поддержку локализации на разные языки (в описании продукта автор указывает Translation Support или Translation Ready). Когда я говорю о поддержке локализации, я имею ввиду то, что автор уже оформил все выражения в соответствующие функции локализации. В рамках данной статьи я не рассматриваю сам процесс оформления выражений, а только работу с уже готовыми функциями.

Сканирование продукта плагином Codestyling Localization

После того как мы добавили язык нажимаем на кнопку «Сканировать».

cod_loc_4

Появится окно «Сканирование PHP файлов» в котором снова нажимаем на кнопку «Сканировать».

cod_loc_5

Начнется процесс сканирования. После завершения процесса — нажимаем на кнопку «завершить».

После сканирования в папке продукта на сайте появится файл .po со всеми выражениями.
Нажмите на кнопку «Редактировать».

cod_loc_6

Плагин Codestyling Localization нашел 1156 строк и 2 домена локализации + строки в которых не указан домен локализации (эти строки отмечены в поле Textdomain как Default).

Страница с информацией о переводе и строки для перевода продукта
Страница с информацией о переводе и строки для перевода продукта

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

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

В моем случае эта функция находится в файле \framework\functions\theme-functions.php

И имеет такой вид:

По этой функции мы видим, что основной домен — tie, а сам файл локализации находится в языковой папке шаблона.

Но, у нас есть два домена, который нашел плагин Codestyling Localization. Первый основной — tie, а второй — tgmpa.

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

Пример:

Это позволит из одного файла локализации подтягивать перевод для разных продуктов/модулей. Рекомендую так всегда делать, если есть несколько доменов.

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

Примеры функций подключения локализации для темы:

Примеры функций подключения локализации для плагина:

Языковые папки могут иметь разные названия: languages, lang, locales и др. А сами файлы локализации могут находится в этих папках, а могут находится и в корневой папке продукта. А иногда основной файл локализации после сканирования падает в языковую папку вторичного продукта, который подключен к основному продукту. В этом случае файл локализации нужно скачать через ФТП из этой папки, перевести и закачать в основную языковую папку продукта.

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

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

В следующей статье я расскажу о том, как переводить файлы локализации.

Дополнительно:

Как найти в исходном коде продукта функцию подключения файла локализации?

Это можно сделать через Total Commander, через поиск слова textdomain. Или можно создать проект в программе Adobe Dreamweaver CS6 и уже через поиск найти слово textdomain.

Свои вопросы, замечания и рекомендации — пишите в комментариях.


Перевод файла локализации

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

Существует два основных способа перевода файла локализации:

  • через плагин Codestyling Localization
  • в программе Poedit

Я рекомендую делать перевод в программе PoEdit, особенно больших файлов локализации.

Как пример я буду использовать созданный файл локализации для темы Sahifa.


Перевод файла локализации через плагин Codestyling Localization

В админке переходим в меню Инструменты — Локализация.
Вкладка: Темы

Находим тему Sahifa и возле языка нажимаем на кнопку «Редактировать».

В выпадающем поле «Textdomain» вы должны поочередно выбирать домены и переводить строки в них. Можете начать с самого основного домена.

Для перевода строки нажмите напротив нее на ссылку «Редактировать.»

cod_loc_10

В появившемся окне в нижней текстовой области введите перевод на русском. Нажмите «Сохранить» (окно закроется) или «Save & Next» — в этом окне откроется следующая строка.

cod_loc_11

После того, как вы перевели все или несколько строк вам нужно создать файл .mo. Для этого нажимаем на кнопку «генерировать mo-файл».

Файл локализации с расширением .mo будет создан в языковой папке продукта.

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

cod_loc_12

Полезная функция:

Иногда, нужно узнать в каком файле находится строка и какой домен точно прописан для нее. Плагин Codestyling Localization поможет нам узнать это.

Наведите на ссылку «php» возле строки.

cod_loc_13

Появится всплывающая подсказка с списком файлов, в которых находится это выражение. Кликните на нужный файл. Появится окно, в котором будет отображаться исходный код файла и красным будет выделено само выражение.

cod_loc_14

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

В следующей статье будет рассмотрен перевод файла локализации в программе Poedit.

Codestyling localization скачать

Альтернатива этому плагину — плагин Loco Translate

Рейтинг 0/5 (0 голосов)
 

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

avatar