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

Привет всем!

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

Я расскажу подробно как его установить, как настроить и как сделать все страницы и записи, чтобы они были именно на том языке, который вам нужен.

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

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

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

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

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

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

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

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

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

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

Установка Polylang

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

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

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

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

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

Вы также можете выбрать порядок, в котором должны отображаться ваши языки в списке. Текстовое поле «Order» включает в себя число (вам нужнл установить его). Языки будут отсортированы с использованием этого числа в порядке возрастания.

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

Настройка Polylang

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

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

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

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

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

Перевод Темы

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

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

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

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

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

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

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

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

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

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

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

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

if (function_exists('pll_register_string')) {
    // Функция существует, делайте все, что хотите!
}

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

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

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

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

pll_register_string('Моя удивительная строка', 'Это переведенная строка.');

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

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

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

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

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

$translated_string = pll__('Это переведенная строка.');

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

pll_e('Это переведенная строка.');

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

echo pll_translate_string('Посмотреть этот пост на французском языке', 'fr');

Перевод постов

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

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

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

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

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

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

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

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

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

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

Покоряем мир!

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

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

На этом все!

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

P.S. Не забывайте подписываться на новые статьи блога.

Вам понравилась статья?
плохохорошо (Пока оценок нет)
Загрузка...
Обо мне
Юрич:
Занимаюсь созданием сайтов на ВордПресс более 5 лет. Работал в нескольких веб-студиях, да и сейчас работаю. Иногда подрабатываю на фрилансе, как на нашем так и на зарубежном. Везде зарекомендовал себя очень хорошо. Если нужен сайт на вордресс, шаблон для сайта или лендинг - не стесняйтесь - пишите. Рад буду помочь!