Узнайте, как переводить шорткоды из плагинов, тем оформления и те, которые Вы разрабатываете самостоятельно, с помощью WPML.
С помощью WPML Вы можете переводить как текстовые, так и основанные на ID шорткоды. Текстовые шорткоды выводят текст, например, такой:
[goodmorning name="Dear client"]
С другой стороны, шорткоды на основе ID выводят элемент, используя его номер ID:
[myslider id="1"] [myslider id="2"]
Здесь каждый шорткод выводит отдельный слайдер. Например, один может выводить слайдер на английском языке, а другой — на испанском.
Чтобы перевести шорткод, Вам нужно заменить ID одного слайдера на другой (например, 1 → 2).
Перевод шорткодов из совместимых плагинов и тем оформления
Чтобы перевести шорткоды из совместимых плагинов и тем оформления, перейдите в WPML → Панель управления переводами и отправьте страницу, содержащую Ваш шорткод, на перевод. Ваш шорткод появится в Расширенном редакторе переводов среди остального контента Вашей страницы.
Например, вот как следующий шорткод выглядит в редакторе:
[goodmorning name="Dear client"]

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

Перевод шорткодов из несовместимых плагинов и тем оформления
Чтобы перевести шорткоды из несовместимых плагинов и тем оформления, сначала Вам нужно зарегистрировать их в файле Пользовательская конфигурация XML WPML.
Рассмотрим этот пример с двумя шорткодами:
[fanpage link="https://example.com"]Some content[/fanpage] [goodmorning name="dear client" type="official"]
Чтобы зарегистрировать эти шорткоды в WPML, мы будем использовать следующий код конфигурации:
<wpml-config>
<shortcodes>
<shortcode>
<tag>goodmorning</tag>
<attributes>
<attribute>name</attribute>
<attribute>type</attribute>
</attributes>
</shortcode>
<shortcode>
<tag label="Fanpage shortcode">fanpage</tag>
<attributes>
<attribute>link</attribute>
</attributes>
</shortcode>
</shortcodes>
</wpml-config>
Вот как работает настройка конфигурации в WPML:
- Поместите все шорткоды внутрь <shortcodes>
- Оберните настройки каждого отдельного шорткода в <shortcode>
- Определите названия шорткодов с помощью <tag> и при необходимости добавьте пользовательские метки. Эти метки отображаются рядом с текстом в Расширенном редакторе переводов.
- Определите название каждого атрибута с помощью <attribute>
- Оберните все атрибуты в <attributes>
Как только Вы зарегистрируете свои шорткоды, Вы сможете перевести их вместе с остальным контентом страницы в WPML → Панель управления переводами.
Перевод пользовательских шорткодов
Чтобы перевести пользовательские шорткоды, которые Вы разрабатываете самостоятельно, сначала Вам нужно зарегистрировать их в WPML. После этого Вы сможете перевести их вместе с остальным контентом страницы.
Перевод жёстко закодированных текстов внутри шорткодов
По умолчанию жёстко закодированные тексты не переводятся в WPML. Чтобы сделать их переводимыми, Вы можете использовать фреймворк Gettext. Рассмотрим этот пример с жёстко закодированным текстом «Good morning»:
function goodmorning_att($atts) {
$default = array(
'name' => 'there',
);
$a = shortcode_atts($default, $atts);
return 'Good morning, '.$a['name'];
}
add_shortcode('goodmorning', 'goodmorning_att');
Чтобы сделать текст «Good morning» переводимым, Вы можете адаптировать код для использования Gettext:
function goodmorning_att($atts) {
$default = array(
'name' => 'there',
);
$a = shortcode_atts($default, $atts);
return __('Good morning, ', 'default').$a['name'];
}
add_shortcode('goodmorning', 'goodmorning_att');
Это сделает текст «Good morning» переводимым и добавит его в Перевод строк.
Дополнительные ресурсы
Чтобы узнать больше о файле wpml-config.xml, изучите руководство Файлы языковой конфигурации. Информацию о настройке других элементов в WPML см. в наших дополнительных руководствах:
- Регистрация контента конструктора страниц для перевода
- Регистрация пользовательских виджетов конструктора страниц для перевода
- Настройка параметров перевода для произвольных полей с помощью файла конфигурации WPML
- Регистрация пользовательских терминов, Types и таксономий как переводимых
- Как сделать пользовательские блоки Gutenberg переводимыми
- Перевод текстов, которые тема оформления и плагины сохраняют в wp_options
- Настройка переключателя языков WPML с помощью файла конфигурации WPML