WPML

Эта страница предназначена для остальных случаев: менее популярных тем и плагинов, самых свежих релизов, выпущенных до того, как WPML успел обеспечить совместимость, и небольшого числа общих вспомогательных инструментов для сайтов, столкнувшихся с определенными симптомами. Большинство клиентов никогда сюда не заходят. Если Вы здесь, то обычно потому, что служба поддержки WPML указала Вам на конкретный переключатель или на wpml-config.xml, который нужно вставить.

Совместимость охватывают две подстраницы раздела «Настройки», и на этой странице описаны обе:

  • WPMLНастройкиСовместимость содержит переключатели для распространенных симптомов.
  • WPMLНастройкиПользовательская конфигурация XML — здесь Вы пишете собственный wpml-config.xml (описано во второй половине этой страницы).

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

Переключатели совместимости

Перейдите в WPMLНастройкиСовместимость.

На странице есть четыре карточки. Каждая карточка предназначена для определенного класса проблем совместимости.

Параметры локализации — для тем и плагинов, переводы которых не загружаются

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

  • Автоматически загружать файл .mo темы с помощью load_textdomain. Заставляет WPML вызывать load_textdomain() для текстового домена темы. Используйте, если переводы темы находятся на диске, но не отображаются.
  • Введите текстовый домен. Переопределяет автоматически определенный текстовый домен. Некоторые темы регистрируют свой текстовый домен нестандартными способами; это поле позволяет указать его явно.
  • Использовать текстовые домены темы или плагина, когда вызовы gettext не используют строковый литерал. Флаг совместимости для тем/плагинов, которые используют вызовы __() с переменными аргументами вместо строковых литералов. WPML не может обнаружить их автоматически, и этот переключатель помогает ему все равно применять переводы.

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

Обеспечение многоязычной работы тем

Корректировать ID для многоязычной функциональности. Слой совместимости для тем, в которых жестко заданы предположения для одного языка (например, тема, которая один раз сохраняет «ID миниатюры записи» и использует одно и то же изображение для всех языков).

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

Фильтрация по языку для операций AJAX

Сохранять cookie языка для поддержки фильтрации по языку для AJAX. Некоторые плагины используют AJAX для получения контента: отфильтрованных списков товаров, списков записей с AJAX-пагинацией, результатов поиска по мере ввода. Без cookie языка конечная точка AJAX не знает, на каком языке отвечать, и возвращает результаты на неправильном языке.

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

Страницы входа и регистрации

Разрешить перевод страниц входа и регистрации. Встроенный в WordPress /wp-login.php и экран регистрации не являются частью обычного контента, который переводит WPML. Они находятся вне цепочки шаблонов темы. Этот переключатель добавляет их в набор переводимых страниц WPML.

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

Тексты тем и плагинов — настройки здесь, сканер в другом месте

Два вида работы со строками тем и плагинов разделены на два экрана:

  • Настройки на этой странице. Они обеспечивают совместимость для переводов, которые тема/плагин уже включает: load_textdomain, переопределение текстового домена, нелитеральный gettext.
  • Сканер находится на отдельном экране. Если Вам нужно найти строки темы и плагина, которые еще не зарегистрированы для перевода, используйте экран Перевод текстов администратора. На него можно перейти со вкладки Строки в разделе Переводы, в блоке «Не видите строки, которые ищете?».

Полный рабочий процесс сканирования строк описан в статье Перевод строк.

Пользовательский wpml-config.xml

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

Если файла wpml-config.xml, поставляемого с темой или плагином, недостаточно для Вашего сайта, Вы пишете свой собственный. WPML применяет его поверх того, что поставляется с темой или плагином.

Когда нужно писать собственный wpml-config.xml

Три сценария.

  • Поле, которое нужно перевести, отсутствует в поставляемом wpml-config.xml. Разработчик темы или плагина не объявил произвольное поле как переводимое, но Вам нужно перевести его на своем сайте.
  • Для поля задано неправильное значение по умолчанию. Поставляемый wpml-config.xml помечает что-то как Копировать, а Вы хотите Перевести, или наоборот.
  • Вы создаете кастомную тему или плагин и хотите объявить их поведение при переводе со страницы настроек WPML вместо того, чтобы включать файл wpml-config.xml в свой код.

В любом случае служба поддержки WPML может направить Вас сюда с точным кодом wpml-config.xml для вставки. В основном это действие выполняется по указанию службы поддержки, иногда — по инициативе разработчика.

Почему стоит редактировать wpml-config.xml в админ-панели WPML, а не в файле темы

Вы могли бы отредактировать собственный wpml-config.xml темы или плагина напрямую. Но это изменение будет потеряно при следующем обновлении темы или плагина. Редактор в админ-панели WPML в разделе WPMLНастройкиПользовательская конфигурация XML накладывает Ваш wpml-config.xml поверх того, что поставляется с темой или плагином, и сохраняется при обновлениях. Это правильное место для настроек, специфичных для сайта.

Структура wpml-config.xml

Эта страница представляет собой редактор XML. Вставьте блок <wpml-config>...</wpml-config>, сохраните, и WPML применит Ваш wpml-config.xml.

Минимальный wpml-config.xml, объявляющий шорткод переводимым:

<wpml-config>
  <shortcodes>
    <shortcode>
      <tag>add_to_cart_link</tag>
    </shortcode>
  </shortcodes>
</wpml-config>

Типы элементов, которые Вы обычно объявляете:

  • <custom-fields>. Помечает произвольное поле как translate, copy, copy-once или nothing.
  • <custom-types>. Объявляет произвольный тип записи как переводимый.
  • <taxonomies>. Объявляет произвольную таксономию как переводимую.
  • <shortcodes>. Перечисляет шорткоды, контент которых WPML должен переводить.
  • <custom-term-fields>. Для метаданных элемента.

Каждый элемент имеет собственные атрибуты (например, action="translate" в произвольном поле). Полный справочник по wpml-config.xml (каждый элемент, каждый атрибут, каждое допустимое значение) см. в разделе Информация для разработчиков WPML.

Практический рабочий процесс

Если служба поддержки WPML предоставляет Вам блок wpml-config.xml для вставки:

  1. Перейдите в WPMLНастройкиПользовательская конфигурация XML.
  2. Вставьте их XML внутрь существующего блока <wpml-config> (или замените содержимое, если Вам предоставили полный блок).
  3. Сохраните.
  4. WPML применяет Ваш wpml-config.xml немедленно. Если он объявляет новый переводимый тип записи или поле, эта запись сразу же появляется в разделе WPMLНастройкиПеревод типов записей или WPMLНастройкиПеревод пользовательских полей.

Если Вы создаете кастомную тему или плагин и хотите поставлять их конфигурацию WPML вместе с кодом, Вам следует поместить тот же блок <wpml-config> в файл wpml-config.xml в корне Вашей темы или плагина. WPML считывает его при активации. Редактор в админ-панели предназначен для настроек, специфичных для сайта; поставляемый в комплекте файл — для собственных настроек по умолчанию темы/плагина.

Автор:Amir

Автор:Amir