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

Для Разработчиков:

Мультиязычные тексты в коде PHP

WordPress использует библиотеки gettext для того чтобы показывать сообщения на языке, который указан в настройках (locale). Если все тексты “обернуты” в функции gettext, можно считать, что код пригоден для переводов и переключения языков:

// Неверно! Распечатает 'Hello' независимо от выбранного языка.
echo 'Hello';
// Правильно. Переводчики могут перевести слова 'Hello' на любой язык.
echo __( 'Hello', 'my-text-domain' );

Детальные инструкции – в Руководстве WordPress i18n.

Многоязычность в Записях и Страницах

WPGlobus предлагает удобный интерфейс администратора для ввода текстов на нескольких языках. Разработчики тем должны следовать лишь одному правилу: всегда применять стандартные фильтры перед выводом на печать значений из базы данных:

$post = get_post();
// Неверно! Выведет все языки сразу.
echo $post->post_title;
// Правильно. Распечатает только часть, соответствующую выбранному языку.
echo apply_filters( 'the_title', $post->post_title );

Тексты в Произвольных Полях, Метах и Настройках

Правило здесь – аналогично вышеуказанному для Записей. Необходимо применять фильтр перед тем, как использовать данные, полученные запросом к базе. Например:

$text_in_meta = get_post_meta( $post->ID, 'meta_key', true );
echo apply_filters( 'the_title', $text_in_meta );
$text_in_options = get_option( 'option-name' );
echo apply_filters( 'the_title', $text_in_options );

Сторонние плагины, используемые темами

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

Особенно это относится к разного рода “компоновщикам страниц” (page composers) и серьезным плагинам (формы, слайдеры и т. п.).

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

Компоновщики (composers, page builders), как правило, являются очень сложными системами и не готовы работать в мультиязычном режиме без специальной настройки. Например, если Ваша тема использует WPBakery Visual Composer, пользователи WPGlobus должны установить и активировать плагин WPGlobus для WPBakery Visual Composer.

Для Администраторов

Многоязычные тексты в Панелях Настройки Тем

Если тема, которую Вы выбрали для Вашего ВордПресс-сайта, имеет панель настроек, Вы должны активировать плагин WPGlobus Translate Options и сконфигурировать его так, как указано в этой статье.