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

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

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

Содержание

  1. Установка компонентов WPML
  2. Учебный пример – тема Resort от WooThemes
  3. Перевод заголовка
  4. Перевод меню
  5. Перевод слайдера WooThemes
  6. Перевод элементов пользовательских тем или плагинов
  7. Перевод текста записи
  8. Перевод виджетов
  9. Перевод нижнего колонтитула
  10. Создание файла конфигурации языков для вашей темы
  11. Поддержка GetText для жестко заданных строк
  12. Подсказки и советы по отладке

1. Установка компонентов WPML

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

Вам следует активировать основные компоненты WPML, благодаря чему вы сможете полностью перевести свою тему, включая ядро WPML, перевод строк WPML и управления переводами WPML.

Требуемые компоненты WPML
Требуемые компоненты WPML

Чтобы получить их, перейдите в свою учетную запись WPML и щелкните Загрузки.

Кроме этого, о других компонентах можно узнать на странице Ядро и надстройки WPML.

2. Учебный пример – тема Resort от WooThemes

Рассмотрим пример сайта, созданного с использованием темы Resort от WooThemes:

пример-главной-страницы

По мере рассмотрения различных элементов данного сайта вы узнаете, как переводить темы или плагины с помощью WPML!

3. Перевод заголовка

Заголовок темы или плагина извлекается из общих параметров WordPress:

общие-параметры
Параметры->Общие

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

пример-перевода-строк
WPML->Перевод строк

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

4. Перевод меню

WPML переводит меню WordPress без вашего вмешательства. Если ваша тема использует стандартную систему меню WordPress, WPML переведет меню.

Элементы управления переводом меню
Элементы управления переводом меню

Перейдя во Внешний вид->Меню, вы увидите элементы управления переводом меню WPML. Узнайте подробнее о переводе меню и его применении.

5. Перевод слайдера WooThemes (с использованием пользовательских типов записей)

Рассматриваемый пример темы использует пользовательский тип записи (ПТЗ) для слайдера под названием «slide». Это означает, что с небольшой настройкой WPML его легко переведет.

Следует указать для WPML, что пользовательский тип записи «slide» является многоязычным. Это означает, что WPML предлагает пользователю перевести ее.

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

Когда контент многоязычный, WPML фильтрует его и будет показывать только результаты на текущем языке. В некоторых случаях необходимо использовать одинаковый контент для всех языков. Например, если вы хотите показать одинаковые слайды (с теми же названиями) на всех языках, вы бы оставили ПТЗ slide непереведенными. Мы хотим перевести slides, чтобы у слайдов были разные названия на каждом языке.

В графическом интерфейсе пользователя WPML отредактируйте слайд и прокрутите страницу в самый низ. Там вы увидите раздел под названием ‘Настройка многоязычного контента‘.

Настройка многоязычного контента
Настройка многоязычного контента

Установите флажок, чтобы ПТЗ стали переводимыми и нажмите Применить.

На снимке экрана он неактивен. Это не случайно. Это потому, что мы обеспечили файл конфигурации языков с темой или плагином.

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

6. Перевод элементов пользовательских тем или плагинов

У многих тем или плагинов есть уникальные функции, которые сохраняют тексты в таблице wp_options. Приветствие в Resort делает все в точности так.

Приветствие в Resort
Приветствие в Resort

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

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

7. Перевод текста записи

WPML позволяет пользователям с легкостью переводить контент. В окна редактирования записей включены элементы управления переводом WPML, которые позволяют создавать новые переводы и редактировать существующие.

Добавление переводов
Добавление переводов

Чтобы это заработало, никакие изменения в теме или плагине не требуются. Перевод контента является основной функцией WPML.

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

Тексты тем
Тексты тем

Если вы раньше не пользовались GetText, узнайте об этом вызове подробнее в нашем разделе вопросов и ответов о переводе текстов тем.

8. Перевод виджетов

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

9. Перевод нижнего колонтитула

В этой теме есть пользовательский экран администратора для сохранения текста нижнего колонтитула.

Тексты нижнего колонтитула
Тексты нижнего колонтитула

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

10. Создание файла конфигурации языков для вашей темы

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

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

Этот крошечный XML-файл сэкономит вашим клиентам часы времени, позволяя без усилий управлять многоязычными сайтами. У ваших клиентов все будет работать, и не нужно будет определять, что переводить. Он также поможет вам сэкономить на работе по поддержке.

11. Поддержка GetText для жестко заданных строк

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

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

Заключение в вызовы GetText само по себе является обширной темой. Если вы не знакомы с ней или вам требуется помощь в решении проблем с локализацией кода, перейдите по этим ссылкам:

Следует знать, что WPML полностью интегрируется с GetText. Как только вы заключите жестко заданные строки в вызовы GetText, вы сможете переводить их непосредственно из консоли администратора WordPress с помощью экрана перевода строк WPML. WPML также может экспортировать и импортировать .po-файлы, позволяя переводить все строки вашей темы прямо из WordPress.

12. Подсказки и советы по отладке

Если вы уже знакомы с основами WPML и работаете над его совместимостью со своей темой или плагином, ознакомьтесь с руководством по отладке совместимости тем. Вы найдете подсказки и советы о том, как легко сделать вашу тему совместимой с WPML.

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