Skip Navigation

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

Способ 1) Использование фильтров WordPress

WPML использует стандартные фильтры WordPress и переводит отфильтрованный вами контент.

Все стандартные виджеты WordPress применяют фильтры по умолчанию. Создав свои виджеты, вы захотите, чтобы то же самое касалось и их.

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

$wtitle = apply_filters('widget_title', $wtitle);

WPML подключится к вызову apply_filters и сделает эту строку переводимой через страницу Перевод строк.

Способ 2) Регистрирование строк вручную

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

Чтобы зарегистрировать строки, используйте вызов icl_register_string:

icl_register_string($context, $name, $value)
    • $context – имя плагина в понятном для человека формате
    • $name – имя строки, которое помогает пользователю (или переводчику) понять, что переводится.
    • $value – строка, которую необходимо перевести.

Затем, когда вы показываете тексты, используйте icl_t, чтобы они отображались с переводом:

icl_t($context, $name, $value)

Способ 3) Использование GetText для жестко закодированных строк

Оба описанные выше способа лучше всего подходят для динамически созданных текстов. Пользователи могут их редактировать через консоль администратора WordPress.

Если у вас статические тексты, жестко закодированные в PHP, просто используйте вызовы GetText вида:

<?php __('Hello world','cool_theme'); ?>

WPML привязывается к вызовам GetText и делает эти тексты переводимыми через интерфейс перевод строк. Обратите внимание, что этот способ подходит только для зафиксированных в теме текстов, которые нельзя редактировать.