Статьи

Многоязычные WordPress сайты с Polylang

WordPress доступен на многих языках. Однако при переключении на другой язык на панели «Общие настройки» по умолчанию вы не можете использовать несколько языков одновременно.

Иногда мы можем использовать несколько языков. Я могу проиллюстрировать это утверждение на своем собственном примере: мой блог доступен на двух языках (английском и французском). Если вы предпочитаете французский язык, вы можете переключиться на него без каких-либо проблем, мне не нужно менять все языковые настройки веб-сайта.

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

Управление несколькими языками на WordPress

Зачем использовать Polylang?

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

Многоязычный WordPress Polylang

Тем не менее, это не полное решение. Преимущество использования Polylang заключается в том, что плагин позволяет не только переводить ваши сообщения. Фактически, если ваша тема переведена на нужный язык, ваши посетители увидят весь переведенный веб-сайт. Используя мой пример, когда вы читаете французский пост в моем блоге, вы увидите переведенную боковую панель и нижний колонтитул.

Polylang — это мощный инструмент, который поможет вам создать многоязычный веб-сайт. После того, как вы настроите его, использовать Polylang для перевода ваших сообщений так же просто, как в примере, который мы видели выше. Может быть, даже проще!

Установка Polylang

Вы можете скачать плагин Polylang бесплатно через WordPress.org . Он может быть установлен и активирован как любой другой плагин.

Установка Polylang

Управление доступными языками

Polylang имеет свою собственную панель параметров, доступную из пункта «Языки» в меню «Настройки» панели администрирования. Мы рассмотрим первую вкладку этой панели, чтобы начать с «Языки». Как следует из названия, он позволяет вам управлять языками, которые вы хотите использовать на своем сайте.

Чтобы добавить новый язык, самый простой способ — использовать выпадающий список с надписью «Выберите язык». По умолчанию доступны десятки доступных языков, и есть вероятность, что вы найдете тот, который вам нужен. Если вы не можете, вы все равно можете использовать его, создав свой собственный (его имя, локаль, код и направление).

Вы также можете выбрать порядок, в котором ваши языки должны появиться в списке. При вводе текста «Порядок» указывается только номер. Языки будут отсортированы по этому номеру в порядке возрастания.

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

Конфигурирование Polylang

Посетив вкладку «Настройки» на панели параметров Polylang, вы найдете несколько полезных опций для персонализации вашего многоязычного опыта.

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

Если ваш сайт не новый, велика вероятность, что у вас уже есть несколько опубликованных постов. Поскольку вы установили Polylang после их создания, для существующих сообщений не будет установлен язык. Вы можете задать им все настройки языка по умолчанию на этой вкладке.

На этой вкладке вы также найдете еще несколько параметров, которые вы хотите проверить, в частности, ваш URL-адрес.

Полностью переведенный веб-сайт

Тематический перевод

Как уже упоминалось выше, Polylang идет дальше, чем просто переводя наши сообщения. Наши посетители могут иметь полный опыт работы на предпочитаемом им языке.

Для этого вам понадобится переведенная тема. Если используемая вами тема готова к переводу, вы должны найти в ней (вероятно, в подпапке, такой как languages ) файл POT. Этот файл содержит все строки, используемые в теме. Таким образом, вы можете перевести их на все языки, которые вы хотите.

Теперь, когда Polylang отображает нужный язык на вашем сайте, он отображает не только сообщения на этом языке, но и тему. Таким образом, ваши посетители не увидят французский текст на английской странице, например.

Обратите внимание, что если вы используете тему WordPress по умолчанию, например Twenty Fifteen, при добавлении нового языка в Polylang он пытается загрузить и установить переводы этой темы на этот язык.

Динамический перевод строки

Мы не можем перевести все с помощью простого файла POT. Например, заголовки виджетов — это строки, которые создаются пользователем (вами), поэтому, естественно, мы не можем использовать файл POT для их перевода. Тем не менее, есть еще один способ перевести их благодаря Polylang.

Перейдите на вторую вкладку панели параметров Polylang. Эта вкладка называется «Перевод строк» ​​и содержит различные строки, которые отображаются на вашем сайте. По умолчанию Polylang генерирует несколько динамических строк. Вы найдете такие строки, как название сайта и описание, вы даже можете переводить форматы времени.

Polylang также извлечет все виджеты, которые вы используете. Их заголовки и содержимое (например, для виджета Текст) могут быть переведены с помощью динамических строк. Стоит отметить, что когда вы создаете виджет, когда Polylang активен, вы можете выбрать язык в настройках виджета.

На вкладке «Перевод строк» ​​Polylang перечисляет все зарегистрированные динамические строки на языке оригинала. Затем вы можете перевести их на языки, которые вы используете. Не только ваша тема может быть переведена, но и ваш динамический контент.

Регистрация наших собственных динамических строк

Если вы разрабатываете тему или плагин, вы можете сделать его «готовым к Polylang», зарегистрировав свои собственные динамические строки. Например, это может быть полезно, если вам нужно отобразить строку, которую пользователи могут определить самостоятельно. Зарегистрировав эти строки, эти же пользователи смогут предоставлять их на нескольких языках.

Чтобы зарегистрировать строку, используйте pll_register_string() . Как и с любой другой функцией, определенной другим плагином, вы должны проверить, существует ли эта функция, с помощью следующего теста:

 if (function_exists( 'pll_register_string' )) { // The function exists, do whatever you want! } 

Даже если Polylang установлен и активирован, эта функция может отсутствовать. Например, можно попытаться вызвать его слишком рано, до его создания. Чтобы не вызывать его слишком рано, обязательно вызовите его после того, как произойдет действие «plugins_loaded». Например, это тот случай, когда вы регистрируете свои строки непосредственно в файле functions.php вашей темы.

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

Первый параметр — это имя строки. Это имя способ описать это. Обратитесь к вашей текущей вкладке «Перевод строк» ​​для примеров его использования. Например, строка типа «l, F j, Y» не всегда понятна, но с названием «Формат даты» это так.

Второй обязательный параметр — это строка для перевода. Вы можете написать это на любом языке, который хотите, но постарайтесь соответствовать остальной части вашей темы или плагина.

 pll_register_string( 'My awesome string' , 'This is a translated string.' ); 

Третий параметр представляет группу, в которую должна быть помещена ваша строка. По умолчанию эта группа называется «polylang», но вы можете определить свою собственную группу, указав, например, название вашей темы. Имена групп могут видеть ваши пользователи в списке зарегистрированных строк. Это еще один способ для ваших пользователей лучше понять, где отображается ваша строка (если несколько плагинов используют Polylang, ваши пользователи будут благодарить вас за указание, что строка предназначена для вашего плагина, а не для другой).

Последний параметр не будет полезен для всех, но может быть для некоторых. По умолчанию это логическое значение false . Если вы установите значение true , то Polylang предоставит многострочную текстовую область, чтобы позволить пользователю переводить строку вместо однострочного ввода текста.

Получение зарегистрированных строк

Как только ваши строки зарегистрированы, ваши пользователи могут перевести их на вкладке «Перевод строк». Но вам все еще нужен способ получить их, чтобы отобразить правильный перевод!

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

 $translated_string = pll__( 'This is a translated string.' ); 

Если вы не хотите ничего делать с этой переведенной строкой (например, внедрить ее в функцию, например, sprintf() ), вы можете напрямую pll_e() это с помощью pll_e() .

 pll_e( 'This is a translated string.' ); 

Вы также можете использовать третью функцию: pll_translate_string() . Этот последний исключает два параметра: строку для перевода и язык, на котором вы хотите переводить. Это может быть полезно, если вы хотите отобразить текст, например «Просмотреть это сообщение на [любом языке]» на целевом языке, например.

 echo pll_translate_string( 'View this post in French' , 'fr' ); 

Перевод сообщений

Перевод сообщения

Теперь, когда вы настроили Polylang, все ваши существующие сообщения должны быть на языке по умолчанию. Это означает, что они не появятся на других языках.

В списке сообщений вы найдете новые столбцы, представляющие состояние перевода на каждом добавленном языке. Если в строке сообщения отображается «плюс», это означает, что соответствующего перевода не существует. Вы можете добавить перевод, нажав на этот «плюс».

Нам больше ничего не нужно после этого момента. Вы пишете свой перевод как любой другой пост и все! У вас есть другое слово для этого, кроме «круто»?

Обратите внимание, что вы также можете добавить перевод к сообщению при редактировании. У Polylang есть собственный блок в редакторе, в котором перечислены существующие переводы для текущего поста. Из этого списка вы можете редактировать существующие переводы и добавлять другие.

Перевод категорий и тегов

Пока что мы перевели нашу тему, виджеты и сообщения, но есть еще несколько вещей, которые мы не рассмотрели: таксономии, такие как категории и теги. Мы можем перевести их, посетив страницу «Категории» или «Теги» вашей панели администрирования. Вы сможете переводить их точно так же, как мы делали для постов.

Как только ваши категории и теги переведены, вы можете использовать их в своих публикациях. Тем не менее, есть последний вариант Polylang, которым я хочу поделиться с вами здесь: синхронизация между переводами.

На вкладке «Настройки» в конце страницы вы найдете несколько флажков. Проверяя некоторые из них, вы можете активировать синхронизацию соответствующего элемента между всеми переводами ваших сообщений.

Например, предположим, что у вас есть категория «Моя категория», переведенная на французский язык как «Ma catégorie». Вы напишите пост в этой категории на английском языке и хотите перевести его на французский. В этом переводе не указывайте ни одну категорию: если вы активировали синхронизацию таксономий, то автоматически будет выбрана категория «Ma catégorie»!

Завоевать мир!

В этой статье я описал большинство основных опций, которые я считаю полезными в Polylang, но есть и другие, которые вы наверняка захотите проверить. Не стесняйтесь протестировать Polylang в локальной установке и протестируйте некоторые варианты перед использованием этого плагина на вашем рабочем сайте.

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