Эта страница предназначена для остальных случаев: менее популярных тем и плагинов, самых свежих релизов, выпущенных до того, как 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 для вставки:
- Перейдите в WPMLНастройкиПользовательская конфигурация XML.
- Вставьте их XML внутрь существующего блока
<wpml-config>(или замените содержимое, если Вам предоставили полный блок). - Сохраните.
- WPML применяет Ваш wpml-config.xml немедленно. Если он объявляет новый переводимый тип записи или поле, эта запись сразу же появляется в разделе WPMLНастройкиПеревод типов записей или WPMLНастройкиПеревод пользовательских полей.
Если Вы создаете кастомную тему или плагин и хотите поставлять их конфигурацию WPML вместе с кодом, Вам следует поместить тот же блок <wpml-config> в файл wpml-config.xml в корне Вашей темы или плагина. WPML считывает его при активации. Редактор в админ-панели предназначен для настроек, специфичных для сайта; поставляемый в комплекте файл — для собственных настроек по умолчанию темы/плагина.