WPML

Узнайте, как зарегистрировать пользовательский контент конструктора страниц для перевода с помощью файла wpml-config.xml. Регистрируйте строки, медиафайлы, виджеты конструктора страниц, ID шорткодов и многое другое.

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

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

Вам нужно сгенерировать файл wpml-config.xml? Ознакомьтесь с нашим пошаговым руководством по автоматическому созданию файла конфигурации с помощью плагина Multilingual Tools.

Перевод строк

Рассмотрим пример, в котором на страницу с помощью Visual Composer добавлен текстовый разделитель. У этого разделителя есть заголовок, а его шорткод выглядит следующим образом:

[vc_text_separator title="Separator Title"]

Чтобы перевести заголовок этого текстового разделителя, Вам нужно добавить несколько строк в Ваш файл wpml-config.xml. Таким образом WPML «узнает», что заголовок этого разделителя нуждается в переводе.

Следующий код — это пример того, что Вам нужно добавить в файл wpml-config.xml в этом случае.

Пример добавления шорткода конструктора страниц в файл wpml-config.xml
<wpml-config>
  <shortcodes>
    <shortcode>
        <tag>vc_text_separator</tag>
        <attributes>
            <attribute>title</attribute>
        </attributes>
    </shortcode>
  </shortcodes>
</wpml-config>

Давайте разберем структуру приведенного выше примера:

  • Начните с тега shortcodes. Любые шорткоды на Вашем сайте, которые необходимо перевести, должны быть помещены в этот тег.
  • Используйте тег shortcode, чтобы обернуть все теги, относящиеся к одному шорткоду.
  • Используйте тег с названием tag для определения имени шорткода. В данном случае это vc_text_separator. При желании Вы можете добавить к тегам пользовательские метки. Эти метки будут отображаться рядом с текстом как в Расширенном редакторе переводов, так и в Классическом редакторе переводов. Экспортируемые файлы XLIFF также включают эти метки. В примере ниже показано, как добавить метки к тегам и атрибутам.
  • Шорткоды могут иметь один или несколько атрибутов, поэтому Вам нужно обернуть их в тег attributes (во множественном числе) и использовать тег attribute (в единственном числе) для определения названия каждого атрибута.

Конструкторы страниц (иногда) включают элементы дизайна, имеющие атрибуты ссылок.

Вы можете сделать так, чтобы внутренние ссылки автоматически указывали на переведенную версию этой записи, используя опцию ссылки: type="link".

С ним Вы можете использовать атрибут encoding. Он обрабатывает специальную кодировку, которую используют различные конструкторы страниц. Атрибут encoding обычно специфичен для используемого Вами конструктора страниц. Он принимает следующие значения:

  • base64 — шорткод Visual Composer с необработанным HTML. Шорткод хранит HTML в виде строки base64.
  • vc_link — специальное форматирование ссылок для Visual Composer.
  • vc_values — специальная кодировка Visual Composer для значений в виджетах progress-bar, pie-chart и line-chart.
  • av_link — специальное форматирование ссылок для Enfold.
  • allow_html_tags — обычно HTML-теги удаляются из атрибутов шорткода. Установите кодировку allow_html_tags, если атрибут шорткода должен разрешать HTML-теги. Используйте это с осторожностью, так как разрешение HTML-тегов в некоторых ситуациях может нарушить форматирование и создать проблему безопасности.
Пример добавления атрибута ссылки шорткода: type="link"
<wpml-config>
  <shortcodes>
    <shortcode>
            <tag>av_button</tag>
            <attributes>
                <attribute>label</attribute>
                <attribute type="link" encoding="av_link">link</attribute>
            </attributes>
    </shortcode>
  </shortcodes>
</wpml-config>

Если Вы планируете использовать шорткоды urlencoded, обязательно прочитайте страницу о переводе шорткодов urlencoded.

Пример добавления меток тегов и атрибутов
<wpml-config>
    <shortcodes>
        <shortcode>
            <tag label="My shortcode label">my_shortcode</tag>
            <attributes>
                <attribute label="Shortcode title">title</attribute>
            </attributes>
        </shortcode>
    </shortcodes>
</wpml-config>

Добавление меток к тегам и атрибутам позволяет отображать пользовательские метки в Расширенном редакторе переводов или Классическом редакторе переводов. Это может помочь переводчику лучше понять контекст строки.

Группировка полей для лучшей организации

Чтобы улучшить наглядность и организацию Вашей XML-конфигурации, Вы можете добавить к меткам полей префикс с названием группы. Рассмотрим этот пример кнопки призыва к действию (CTA):

<wpml-config>
    <shortcodes>
        <shortcode>
            <tag label="Call To Action: Content">et_pb_cta</tag>
            <attributes>
                <attribute label="Call To Action: Title">title</attribute>
                <attribute label="Call To Action: Button Text">button_text</attribute>
                <attribute label="Call To Action: Button URL" type="link">button_url</attribute>
            </attributes>
        </shortcode>
    </shortcodes>
</wpml-config>

Здесь к каждому атрибуту внутри шорткода et_pb_cta добавлен префикс с меткой Call To Action: , которая также отображается в Расширенном редакторе переводов:

Перевод кнопки CTA в Расширенном редакторе переводов
Перевод кнопки CTA в Расширенном редакторе переводов

Перевод медиафайлов

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

Пример добавления шорткода конструктора страниц в файл wpml-config.xml для перевода изображений
<wpml-config>
  <shortcodes>
    <shortcode>
        <!-- Convert media IDs in `gallery_ids` attribute, and ignore the shortcode content -->
        <tag ignore-content="1">et_pb_gallery</tag>
        <attributes>
          <attribute type="media-ids">gallery_ids</attribute>
        <attributes>
    </shortcode>
    <shortcode>
        <!-- Convert the media URL in the content, translate some string attributes for `title` and `alt`, convert media URL in `src` attribute -->
        <tag type="media-url">et_pb_image</tag>
        <attributes>
          <attribute>title_text</attribute>
          <attribute>alt</attribute>
          <attribute type="media-url">src</attribute>
        </attributes>
    </shortcode>
  </shortcodes>
</wpml-config>

Вы можете использовать следующие значения:

  • ignore-content — Вы можете использовать его внутри элемента tag. Это значение является необязательным и может быть равно 0 или 1. Вы можете использовать этот атрибут для достижения обратной совместимости для новых медиа-шорткодов. Если установлено значение 1, контент шорткода обрабатываться не будет.
  • type — Вы можете использовать его внутри элемента tag. Вы также можете использовать контент шорткода, содержащий URL-адрес медиафайла, в качестве необязательного значения внутри media-url.
  • type — Вы также можете использовать его внутри элемента attribute. В этом случае он может принимать одно из следующих необязательных значений:
    • media-ids — разделенный запятыми список ID медиафайлов.
    • media-url — URL-адрес медиафайла.
    • link — указывает на другую страницу на сайте, и WPML автоматически преобразует его в URL-адрес переведенной страницы.

Перевод медиафайлов в атрибутах блоков

Вы также можете использовать типы атрибутов media-url и media-ids с блоками Gutenberg для перевода медиафайлов, таких как фоновые изображения. Это работает аналогично шорткодам, но использует элемент <gutenberg-block> со вложенными элементами <key> для определения type="media-url" и type="media-ids".

Использование этого элемента позволяет нашему дополнению Перевод медиафайлов WPML переводить фоновые изображения.

Это работает как для блоков Gutenberg, так и для Divi 5. Эта версия Divi использует блоки для хранения контента, поэтому элемент <gutenberg-block> работает для добавления перевода медиафайлов.

Вот пример добавления перевода медиафайлов для атрибутов блока Gutenberg:

<wpml-config>
  <gutenberg-blocks>
        <gutenberg-block type="divi/section" translate="1">
            <key name="module">
                <key name="decoration">
                    <key name="background">
                        <key name="desktop">
                            <key name="value">
                                <key name="image">
                                    <key name="url" type="media-url" />
                                </key>
                            </key>
                        </key>
                    </key>
                </key>
            </key>
        </gutenberg-block>
  </gutenberg-blocks>
</wpml-config>

Перевод виджетов конструктора страниц

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

Автоматическое преобразование ID шорткодов

Начиная с версии WPML 4.5.9, Вы можете объявлять ID записей или терминов таксономии, расположенных в атрибутах шорткодов. Затем эти ID могут быть автоматически преобразованы на фронтенде Вашего сайта.

Начиная с версии WPML 4.8, эта же логика распространяется на ID объектов, хранящиеся в текстах администратора, а также на ID в произвольных полях записей и полях терминов произвольной таксономии.

Например, рассмотрим следующий шорткод:

[foo_product_list product_ids="12,34,56"]

Вы можете объявить, что атрибут product_ids содержит ID записей, с помощью следующей конфигурации:

Объявление о том, что атрибут product_ids содержит ID записей
<shortcode>
    <tag ignore-content="1">foo_product_list</tag>
    <attributes>
        <attribute type="post-ids" sub-type="product">product</attribute>
    </attributes>
</shortcode>

На фронтенде шорткод автоматически преобразуется в:

[foo_product_list product_ids="13,35,57"]

Вы можете использовать следующие атрибуты конфигурации:

  • type — либо post-ids, либо taxonomy-ids
  • sub-type (необязательно) — конкретная сущность для type, если она уже известна. Например, product для произвольного типа записи Product, поступающего из WooCommerce. Если он не определен, конкретная сущность будет угадана.

Преобразование ID универсально и пытается адаптироваться к большинству возможных форматов ID (одиночный ID, список ID, сериализованный массив, массив в кодировке JSON).

Дополнительные ресурсы

Чтобы узнать больше о файле wpml-config.xml, посетите руководство Файлы языковой конфигурации.

Для настройки других элементов с помощью файла wpml-config.xml ознакомьтесь с нашими дополнительными руководствами:

Автор: Amir · Последнее обновление: 4 февраля 2026