В этом блоке мы поговорим о том, как сделать перевод WordPress сайт или по-другому локализацию темы.
Про перевод WordPress
Здесь главное не перепутать, мы не будем говорить о дублировании контента сайта на разные языки. Мы будем говорить исключительно о том, как при разработке темы подготовить ее к переключению языков в панели администратора WordPress.
Для перевода записей на другие языки существует много методов и различных плагинов, но это тема отдельного материала, который я постараюсь опубликовать в ближайшее время. А в этой статье мы поговорим именно про локализацию.
Любому разработчику тем WordPress рекомендуется всегда локализовать свои темы, чтобы они были готовы к переводу со стороны клиента. Это довольно простой процесс, хотя и трудоемкий, и позволит людям со всего мира наслаждаться вашей темой на их родном языке.
На данный момент пользователи ожидают, что все премиум-темы WordPress локализованы и готовы к переводу. Это означает, что они включают файлы .po и .mo и соответствующий код, необходимый для перевода.
Ниже я опишу различные шаги, необходимые для того, чтобы сделать локализацию и последующего перевод темы WordPress. Надеюсь, что смогу объяснить всё самым доступным способом, чтобы вы смогли сделать все правильно с самого начала.
Функция load_theme_textdomain
Первым шагом, когда вы хотите сделать перевод WordPress темы — является включение в файл functions.php функции, которая будет искать в каталоге вашей темы файл локализации locale.mo и загружать его (где locale — текущий язык, т.е., например, pt_BR.mo).
Подробнее об этом есть в кодексе WordPress.
1. Добавляем следующую функцию в файл functions.php вашей темы:
load_theme_textdomain( 'framework', get_template_directory() . '/lang' );
2. Измените framework
на свое значение, которое вам нужно, обычно здесь используется название вашей темы.
3. Измените путь к шаблону. Вместо /lang
укажите папку, где вы будете хранить файлы .po и .mo.
Локализация темы
Следующим шагом будет редактирование файлов темы для замены всех текстовых строк на функции. Данный шаг сделает перевод WordPress темы автоматическим при смене языка в панели администратора.
Для этого нужно изменить весь текст, используемый в теме, на функции, чтобы инструменты перевода знали, какой текст нужно заменить при переводе.
1. Заменяем echo функции
Вместо использования функций echo для показа текста
<?php echo 'Some string'; ?>
Используйте функцию _e(' ')
:
<?php _e( 'Some string', 'framework' ); ?>
2. Заменяем «голые» строки
Вместо «голых строк»
<?php echo '<h2>Some string</h2>'; ?>
Используйте функцию _(' ')
:
<?php echo '<h2>' . __('Some string', 'framework') . '</h2>'; ?>
3. Изменяем обычный текст
Вместо обычного текста
Hi I am Text
Используем функцию _e(' ')
:
<?php _e('Hi I am Text','framework')
Файлы .po и .mo
Дальше создаем файлы .po и .mo и добавляем текстовый домен в файл functions.php.
Теперь, когда ваша тема готова, вы можете создать файлы .po и .mo, которые используются для перевода WordPress темы.
В этом руководстве я использую программу Poedit.
1. Откройте Poedit и перейдите в File –> New Catalog
2. Введите Name (имя) для информации о вашем проекте (подойдет название вашей темы)
3. Перейдите на вкладку Paths (пути) и введите путь к файлам, которые нужно перевести. Лично я помещаю свои файлы .po и .mo в папку lang
в моей теме, поэтому мой базовый путь — ../
.
4. Перейдите на вкладку Keywords (ключевые слова) и введите _
и _e
для ключевых слов (они были использованы в шаге 2 локализации темы)
5. Теперь сохраните файл .po по умолчанию в папке lang вашей темы.
Перевод .po и создание .mo
Если вы продаете тему или раздаете ее бесплатно, вы можете просто включить стандартные файлы .po и .mo и все готово.
Однако, если вы хотите перевести свою тему, вам придется отредактировать файл default.po, чтобы добавить свой перевод WordPress терминов и сохранить это для дальнейшего использования.
1. Переводим файл default.po
Чтобы перевести файл default.po, достаточно открыть его в Poedit и ввести перевод для каждого значения — нажмите на строку текста и введите перевод, как показано на рисунке ниже:
2. Сохраняем новый файл с переводом
Теперь вам нужно сохранить переведенный файл .po, используя определенное соглашение об именах.
Соглашение об именах основано на коде языка (например, pt для португальского), за которым следует код страны (например, _BR для Бразилии). Таким образом, файл на бразильском португальском языке будет называться pt_BR.mo. См. по ссылкам полный список кодов языков и кодов стран, чтобы точно определить свой регион.
Пример названия файлов перевода на португальский язык:
pt_BR.po
pt_BR.mo
Как показано в примере, при сохранении файла .po программа PoEdit автоматически создаст для вас файлы .po и .mo.
3. Добавляем новый .mo файл в языковую папку темы
Файл .mo, созданный в пункте 2 этого шага, нужно поместить в папку /lang
вашей темы (или туда, куда вы указали в шаге 1 этого руководства).
Меняем язык на сайте
Теперь просто перейдите в Settings -> General (Настройки -> Общие) и измените опцию Site Language (Язык сайта).
Если вы все сделали правильно, на вашем сайте должны отображаться все тексты и переведенные строки, которые вы создали в шаге 4 путем нахождения и замены строк по умолчанию в вашей теме, на новом выбранном языка.
Перевод WordPress темы задача не сложная, но зачастую довольно трудоемкая, т.к. основное время может занять сам процесс проверки всех строк в теме и перевода всех этих строк в программе PoEdit.