Перевод WordPress сайта и темы

В этом блоке мы поговорим о том, как сделать перевод WordPress сайт или по-другому локализацию темы.

Про перевод WordPress

Здесь главное не перепутать, мы не будем говорить о дублировании контента сайта на разные языки. Мы будем говорить исключительно о том, как при разработке темы подготовить ее к переключению языков в панели администратора WordPress.

Wordpress.org
WordPress.org

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

Любому разработчику тем 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.

Опубликовано 9 февраля 2023 в 19:03
Обновлено 9 января 2024 в 14:11
Категория: Блог
Теги: