Поддержка многоязычности не должна вызывать головную боль у авторов тем и плагинов. Если разработка ведется по стандартам ВордПресс, все должно происходить гладко и без проблем. Вот некоторые основные правила и рекомендации, которые следует соблюдать:
Для Разработчиков:
Мультиязычные тексты в коде 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 и сконфигурировать его так, как указано в этой статье.