Как сделать поля ACF мультиязычными с помощью polylang


Содержание материала:

Polylang: как перевести пользовательские строки?

Моя проблемаЯ перевожу свой веб-сайт с помощью Polylang, но мне сложно переводить пользовательские строки. Строки не будут отображаться в меню «Перевод строк» ​​на панели инструментов WP.

Важный: Я не знаю много о PHP, так что функция pll_register_string это очень сбивает с толку для меня.

Цитируется из документа Polylang:

Позволяет плагинам добавлять свои собственные строки в «перевод строк»
панель. Функция должна вызываться на стороне администратора (functions.php
файл в порядке для тем). Можно зарегистрировать пустые строки (для
пример, когда они приходят из вариантов), но они не появятся в списке
Таблица.

pll_register_string ($ name, $ string, $ group, $ multiline); Name $ name ’=>
(обязательное) имя для удобства сортировки (например: «myplugin»)
String $ string ’=> (требуется) строка для перевода‘ $ group ’=> (необязательно)
группа, в которой зарегистрирована строка, по умолчанию имеет значение «polylang»
Multi $ multiline ’=> (необязательно), если установлено значение true, текстовое поле перевода
будет многострочным, по умолчанию false

pll__

переводит строку, ранее зарегистрированную в pll_register_string
Использование:

ФАПЧ __ ($ строка); Требуется уникальный параметр:

String $ string ’=> строка для перевода возвращает переведенную строку.

pll_e

Выводит переведенную строку, ранее зарегистрированную в
Использование pll_register_string:

pll_e ($ строка); Требуется уникальный параметр:

String $ string ’=> строка для перевода

С наилучшими пожеланиями

Решение

Сначала вы должны зарегистрировать все эти строки для перевода.

Например, вы выводите «Hello world» в файле шаблона, например:

Чтобы показать строку в «Перевод строки» добавьте в свой functions.php :

Добавьте все пользовательские строки, которые вы хотите перевести в эту функцию.

Другие решения

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

Поэтому я предлагаю этот подход:
в functions.php для темы в файле вашего плагина вы можете создать оболочки для необходимых функций Polylang с запасными вариантами, если polylang был удален или обновлен, поэтому WP не завершится с ошибкой неопределенной функции.

ПРИМЕЧАНИЕ мы создали функции с одним l в pl__ а также pl_e и оригинальные функции Polylang pll__ а также pll_e ,

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

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

Если вы работаете с темой, вероятно, хорошо инициализировать их в after_setup_theme крючок вот так:

Working with ACF Pro

The compatibility with ACF Pro is provided by Polylang Pro. This integration is available only for post types and taxonomies. It does not work yet for options pages (this is planned for a future version). There is however an integration contributed by the Be API Agency to achieve that, see: https://github.com/BeAPI/acf-options-for-polylang.

1. Before you start

The first question to ask yourself is: “Do I need to translate the label and the instructions?”

If yes, thus you need to translate your field groups in all your languages. If not, it is preferable not to translate your field groups.

2. Activate the Field Groups translation

Go to Languages > Settings > Custom post types and Taxonomies and activate the translation as shown here:

3. Translate a Field Group

Go to Custom Fields > Field Groups.
As you see in the following screenshot, the field groups are now translatable. Before translating your field groups you need to activate the duplicate tool as below, it will allow you to copy all the content from the source field group to the translation.

We recommend you to create entirely your field group with the wanted custom fields before translating it. Indeed there is no synchronization between the translated field groups. It means that a modification made for example in the English field group won’t impact its French translation.

Once you have duplicated your field group into another language, you just need to edit new field group to translate the label and the instructions.

Important : note that you must not modify the field name value across your translation. You must keep the same value.

4. Polylang makes a smart copy

When translating a content (post, page, taxonomy …) in another language, Polylang decides which custom fields must be copied and which ones must be translated. The ones which must be translated are image, file, gallery, post object, relationship, page link and taxonomy. It means that Polylang prefills the field with the correct translation when creating new translations. This also works when these custom fields are included in repeater fields. If the translation doesn’t exist Polylang will keep the value as is.

This smart copy works in the same way whether the fields groups are marked as translatable or not in Custom Fields > Field Groups.

5. Activate the custom fields synchronization

It is possible to synchronize the custom fields across the translations. As a reminder, ‘synchronization’ means that a modification made in a post impacts all its translations.
You can activate this synchronization by checking the “custom fields” option in Languages > Settings > Synchronization module. See: Synchronize metadatas between translations

Polylang synchronizes the translated values of custom fields

If you decide to modify a translated value from a custom field, Polylang will automatically synchronize the custom field of all the other translations. In the example below we set the English value of a post object field to “A post in English”. As you can see in the following screenshot its translated French value “Un article en Français” is automatically copied to the translated French post.

Polylang synchronizes the untranslated value of custom fields

If you decide to modify an untranslated value from a custom field, Polylang will copy this value to the other translations. In the example below we set the English value of a post object field to a post not translated in French. As you can see below Polylang has copied the untranslated English value into the French translation.

Polylang synchronizes the copied custom fields

If you modify a copied value (text, number, email, url custom field …) for example in a French post, Polylang will automatically keep this same value in the translated English post.

A modification made on the layouts (group, repeater, flexible content) will impact the translations. For example, if you choose to add a flexible content in a French post, Polylang will automatically add this flexible content to the translated Englih post. It’s the same behavior if you decide to remove it.

Фриланс проекты › Подружить ACF и Polylang Подружить ACF и Polylang

Кто знает, как «подружить» два известных плагина на ВП : Advanced Custom Fields и Polylang ??

Суть моей проблемы:
Есть мультиязычный сайт (Polylang). На нем строятся произвольные поля с помощью ACF.
Надо, чтобы при переводе страницы\матерала (в данном случае, перевод — это дубликат страницы на другом языке) была возможность заполнять произвольное поле на нужном языке.

Еще уточню «на пальцах»))
Создали страницу на англ.языке — заполнили ( название — title-page\текст страницы — desc-page \нужное поле — field-random)
При переводе мы можем ввести название и текст на другом языке, а нужное нам доп.поле дублируется из материала на языке-оригинале. Если поменяем его тут — поменяется в оригинале.
В общем, кто в теме — поймет))

Бюджет поставлен просто, чтобы поставить (не знаю как оценить).

Прошу откликнуться тех кто реально проводил интеграцию этих плагинов.
Интересует документация (или примеры) — за них и будет оплата.

Как сделать поля ACF мультиязычными с помощью polylang?

В разделе Идеи пока ничего нет

В разделе Вопросы пока ничего нет

В разделе Проблемы пока ничего нет

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

Исходя из рекомендации google

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

Google может найти альтернативные версии ваших страниц, даже если вы не предпримете никаких действий, но все же желательно указывать их явно.

Сообщить Google о вариантах страницы можно с помощью файла Sitemap. Для этого добавьте в него элемент , указав в нем URL страницы, а в дочерних тегах – ссылки на все ее языковые и региональные варианты, включая саму страницу. Таким образом, если у вас есть три варианта страницы, в файле Sitemap будет три элемента с тремя идентичными дочерними тегами.

Правила для файлов Sitemap

  • Указывайте пространство имен xhtml следующим образом:
    xmlns:xhtml=»http://www.w3.org/1999/xhtml»
  • Создавайте отдельный элемент для каждого URL.
  • В каждом элементе должен быть дочерний элемент , в котором указывается URL страницы.
  • В каждом элементе должен быть дочерний элемент , в котором перечисляются все варианты страницы, включая текущую. Порядок дочерних элементов не имеет значения, но вы можете придерживаться определенной последовательности, чтобы было проще отслеживать ошибки.
Топ-пост этого месяца:  Что такое циклы Python основы работы с For и While, примеры кода

Для реализации будем использовать плагин XML Multilanguage Sitemap Generator. Он хорошо подходит, и совместим с плагином polylang, но есть несколько минусов.

-Нету hreflang для языка по умолчанию (это не обязательно, но рекомендовано google).

— Нет страниц других языков

Чтобы это все исправить нужно немного подправить плагин!!

Все изменения делаем в папке xml-multilanguage-sitemap-generator\includes\loop\polylang\

файл polylang-post-type.php

Код ниже можно закомментировать (он удаляет язык по умолчанию)

файл polylang-taxonomies.php

Также закомментировать код:

Код внизу файла:

Все.теперь карта будет по рекомендация google

Мультиязычный сайт на WordPress : 9 полезных плагинов для перевода

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

Возможна ситуация, когда человек из Германии или США зайдёт на ваш веб-сайт, а он весь на русском. Вы потеряете ценного посетителя (если он не знает русского). Для избежания такого развития событий нужно переводить веб-сайты на местный язык вашей аудитории.

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

Как правило, вы устанавливаете WordPress на двух и более языках, и устанавливаете плагин, который будет переключать эти языки. А также нужно установить специальные .mo-файлы локализации для требуемых языков.

Вы можете сделать свой сайт WordPress многоязычным несколькими способами:

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

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

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

Убедитесь также, что ваш плагин для перевода совместим с вашей темой. Отличной идеей будет создать резервную копию вашего веб-сайта перед установкой любого плагина, если вы не уверены в их совместимости (либо используйте сервис VaultPress ).

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

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

1. WPML

WPML – широко используемый плагин для перевода. Он разработан компанией OnTheGoSystems, которая заявляет, что более 400,000 онлайн сайтов в 100 странах используют WPML. Плагин обеспечивает поддержку 40 языков плюс возможность добавления любого другого языка при помощи редактора языков.

WPML легок в использовании и не требует технических навыков. Готовый API встроен для интеграции с другими плагинами и системами для перевода. WPML постоянно обновляется, чтобы оставаться совместимым с обновлениями WordPress.

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

URL-адреса остаются чистыми без всяких меток и префиксов, а все элементы навигации переведены. Над переводом одновременно может работать команда переводчиков благодаря мощной функции управления переводом. Услугами перевода ICanLocalize можно воспользоваться прямо из консоли. Комментарии посетителей переводятся автоматически. Виджет переключения языков, который показывает возможные языки перевода, можно расположить в любой области для виджетов.

Есть три тарифных плана для пользователей плагина: Multilingual Blog, Multilingual CMS и Multilingual CMS Lifetime. С тарифом Multilingual CMS Lifetime вы платите один раз $195 и свободно пользуетесь всеми их услугами неограниченное количество времени для многочисленных веб-сайтов.

С помощью Multilingual Blog, вы можете переводить записи, страницы, теги пользователей, категории, таксономии и меню WordPress за $29 в год , включая бесплатные обновления и поддержку. А пошлина за продление пакета составляет $15.

Такие дополнительные возможности как перевод настраиваемых полей, виджетов, текста в темах и админ-плагина, поддержка мультиязычной электронной коммерции, управление вложениями на нескольких языках и многопользовательским переводом, клейкие ссылки и навигация по CMS, доступны за $79 в год . Стоимость продления пакета составляет $39. Все тарифы предлагают бесплатную поддержку и обновления, и могут быть использованы на любом количестве веб-сайтов.

2. Polylang

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

Перевод производится вручную редактором сайта. Для профессионального и автоматического перевода попробуйте воспользоваться Lingotek Translation. Они предлагают полуавтоматический сервис для перевода, а также сервис памяти переводов.

Можно перевести всё – рекламу, меню, виджеты, закрепленные посты, форматы записей, RSS-каналы. Выбор языка можно установить в содержимом или в URL. Можно, по желанию, присвоить разные доменные имена для каждого языка. Предоставляется поддержка RTL.

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

3. qTranslate X

qTranslate X произошел от плагина qTranslate, автор которого забросил свой проект. Без обновлений он быстро перестал синхронизироваться с новыми версиями WordPress. Другие разработчики решили исправить эту ситуацию, усовершенствовали плагин, исправили баги, добавили новые функции и синхронизировали с последней версией WordPress.

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

Для каждого языка используется свой URL, что облегчает работу поисковых систем. Но будьте осторожны, при деактивации этого плагина записи на всех языках попадут в основной контент сайта. qTranslate X имеет ряд встроенных языков – английский, немецкий, китайский и другие.

4. Xili-language

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

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

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

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

5. Transposh

Преимуществом этого бесплатного плагина является автоматический перевод контента на один из более 92 языков. Можно перевести всё — линки, теги, заголовки, комментарии RSS-каналы. Перевод осуществляется с помощью таких бесплатных ресурсов как Google Translate, MS Translate или Apertium backends. Профессиональный перевод (платная услуга) можно заказать у One Hour Translation.

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

Внешние плагины переводят и без .po/.mo файлов. Transposh поддерживает RTL и объединён с Buddypress.

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

6. Google Language Translator

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

Доступны некоторые изменения настроек, вы можете показать или скрыть определенные языки, панель инструментов и логотип Google. Перевод можно осуществлять на 81 язык. Вручную редактировать перевод можно в премиум версии, которая стоит $30.

7. Bogo

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

Переключатель языков можно вставить в поле для виджетов, на отдельную страницу или запись. Языковые параметры можно установить в консоль или страницу профиля. Есть возможность использовать команду переводчиков WordPress. Для каждого языка нужно создавать отдельную запись.

8. Multisite Language Switcher

Если вы используете разные веб-сайты для разных языков, то вам нужен плагин, который будет их связывать. Multisite Language Switcher – это отличный выбор для такого вида перевода. С помощью этого плагина вы сможете управлять контентом, тегами и таксономиями.

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

9. MultilingualPress

MultilingualPress – это бесплатный плагин, доступный на WordPress.org (доступна также премиум версия). Этот плагин объединен с режимом Multisite для WordPress, а с помощью настраиваемого виджета соединяет несколько сайтов на разных языках для работы с мультиязычным сайтом WordPress.

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

Доступно 174 языка. Дубликат вашего контента на выбранном языке создается автоматически. А с премиум версией вы сможете устанавливать разные параметры для фронтенда и бэкенда.

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

Заключение

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

Топ-пост этого месяца:  Урок 7. Препроцессор Sass. Миксины. Часть 2
Источник: wpexplorer.com

Насколько полезным был этот пост?

Нажмите на звезду, чтобы оценить этот пост!

Средний рейтинг: 4.6 / 5. Количество голосов: 20

Мультиязычный сайт на WordPress

Создать сайт на нескольких языках не сложно. Существует специальный плагин, называется Polylang.

  • Плагин Polylang. Часть первая. Настройка и установка

  • Плагин Polylang. Часть вторая. Настройка записей
  • Плагин Polylang. Вставка переключателя языков
  • Как добавить переключатель языков в любом месте шаблона?
  • Добавление переключателя языков в нужном месте шаблона
  • Код для вывода переключателя в виде флажков
  • Код для переключателя в виде выпадающего списка
  • Возможные проблемы при работе плагина Polylang
  • 1. Ошибка 404
  • 2. Использование технологии AJAX
  • 3. Не переводиться главная страница
  • 4. Куда пропадают рубрики-записи-страницы?
  • 5. Куда пропадает переключатель языков в меню?
  • 6. Объединение комментариев на разных языках

Принцип его работы прост и незамысловат — для каждой записи или страницы создается дублирующий контент на нужном языке. А дальше плагин сам распределяет для какого языка и какую страницу выводить.

Более подробно о настройке плагина можно посмотреть ниже

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

Плагин Polylang. Часть первая. Настройка и установка

Плагин Polylang. Часть вторая. Настройка записей

Плагин Polylang. Вставка переключателя языков

Переключатель языков можно установить по-разному:

  • в боковой панели через виджеты

Как добавить переключатель языков в любом месте шаблона?

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

Где $args может принимать следующие аргументы

  • ‘dropdown’ => 0 — простой список, 1 — выпадающий список (по умолчанию: 0)
  • ‘show_names’ => вывод названий языков (по умолчанию: 1)
  • ‘display_names_as’ => или ‘name’ или ‘slug’ (по умолчанию: ‘name’)
  • ‘show_flags’ => 1 — показывать картинки флагов (по умолчанию: 0)
  • ‘hide_if_empty’ => 1 — скрывает записи и страницы без контента (по умолчанию: 1)
  • ‘force_home’ => 1 — добавляется ссылка на главную страницу (по умолчанию: 0)
  • ‘hide_if_no_translation’ => 1- скрывает язык если перевода не существует (по умолчанию: 0)
  • ‘hide_current’=> 1 — скрывает текущий язык (по умолчанию: 0)
  • ‘raw’ => 1 — создание собственного переключателя с нужными параметрами (по умолчанию:0)

Примеры:

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

Функция вернет массив данных

  • [id] => идентификатор языка
  • [slug] => код языка используемый в ссылке
  • [name] => название языка
  • [url] => ссылка на перевод
  • [flag] => ссылка на флаг
  • [current_lang] => вернет true если текущий язык, если нет, то false
  • [no_translation] => вернет true если нет перевода, иначе — false

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

Добавление переключателя языков в нужном месте шаблона

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

Урок конечно общий, так можно вставлять в нужное место не только переключатели

Код для вывода переключателя в виде флажков

И стили, что бы флажки были в одну строку:

Код для переключателя в виде выпадающего списка

Данная функция сразу формирует нужный хтмл код.

Возможные проблемы при работе плагина Polylang

Пока я встретился с тремя проблемами.

1. Ошибка 404

После настройки плагина могут поехать все ссылки на сайте и начнет выдавать ошибку 404. Страшного ничего в этом нет, достаточно по новой пересохранить постоянные ссылки, по адресу Консоль — Настройки — Постоянные ссылки просто нажмите Сохранить.

2. Использование технологии AJAX

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

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

3. Не переводиться главная страница

Допустим, вам требуется сделать главную страницу в виде одностраничника, что бы на ней выводить некий контент. И при этом, еще используется несколько языков. Проблема будет только в одном — нет возможности перевести главную страницу, потому что для создания этой самой главной страницы используется не отдельная страница, а сам файл index.php Проверить это можно только заглянув в код самого этого файла… Ну а так, как невозможно сделать дублирующую страницу для файла index.php то и перевод к ней прикрутить не получиться.

Решений может быть два — менять шаблон или создавать отдельную страницу для главной…

4. Куда пропадают рубрики-записи-страницы?

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

Как работает такой переключатель?

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

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

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

Оп-па! Сразу видим кучу записей на русском языке! То же самое происходит с рубриками и страницами. Чаще всего виноват в том, что вы не видите нужных вам записей-рубрик-страниц именно переключатель в верхней админ панели.

Ставьте переключатель в положение «Показать все языки» и все увидите.

5. Куда пропадает переключатель языков в меню?

Здесь по проще. Если вы вдруг при создании меню не видите раздела «Переключатель языков»

Обратите внимание на вкладку «Настройки экрана», в ней должна стоять галочка «Переключатель языков»

Установите галочку и появиться раздел «Переключатель языков»

6. Объединение комментариев на разных языках

Решение такое: добавляем в файл functions.php такой код

Если есть вопросы задавайте в комментариях. Всегда рад помочь.

thierrypigot / acf-polylang.php

add_filter( ‘ pll_get_post_types ‘ , ‘ wearewp_add_acf_pll ‘ , 10 , 2 );
function wearewp_add_acf_pll ( $post_types , $is_settings ) <
$post_types [] = ‘ acf-field-group ‘ ;
return $post_types ;
>

This comment has been minimized.

Copy link Quote reply

MikeiLL commented Apr 25, 2020

You rock for sharing this, friend.

  • © 2020 GitHub , Inc.
  • Terms
  • Privacy
  • Security
  • Status
  • Help

You can’t perform that action at this time.

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.

Мультиязычность сайта на WordPress

Приветствую, дорогие друзья!

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

Записано простым и понятным языком, надеюсь вам понравится. 🙂

Если вы хотите поблагодарить меня за материал — можете сделать это здесь 🙂

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Мультиязычность сайта на WordPress: 81 комментарий

Добрый день.
У меня сайт с 3-мя языками. Как мне связать страничку ру с СУЩЕСТВУЮЩЕЙ английской страничкой? Плагин Polylang.

Добрый день!
Я совсем новый в этом деле человек, подскажите пожалуйста как мне сделать, что бы при смене языка менялся так же язык названий в меню, все страницы перевёл, а вот с самим меню не могу разобраться… А также меня интересует может ли этот плагин менять язык в стандартных виджетах темы… Спасибо…

Добрый день! Возможно кто-то сталкивался. Стоит шаблон на основе cherry frameworks. При добавлении pll_register_string сайт перестает работать. Аналогично с функциями pll__(‘…’);
pll_e(‘…’);
В какую сторону смотреть?

Зравствуйте.подскажите,установил плагин Polylang

Username or E-mail — название этого поля для ввода перевелось
Password — это тоже
Remember Me — даже кнопка «запомнить меня» тоже перевелась

а вот ниже «Ругистрация» и «забыли пароль?» не перевелись. ну и всё то не переводится когда нажимаешь «Регистацию» и «Забыли пароль?» как перевести это?подскажите пожалуйста.и ту информацию когда воодишь поля не правильно.чтоб люди смогли прочитать на своем языке ошибку.

Мне на англ нужно перевести.

Здравствуйте! Подскажите пожалуйста, как с помощью Polylang плагина перевести некоторые строки в шаблоне. В данном случае это ссылки после статьи типа «новости по теме». В самом плагине настроек этой строки нет. Вижу такой ответ «Вместо функций _e() или __() используем функции pll__(), pll_e() вместе с pll_register_string() и переводим в админке WordPress на странице настроек Polylang.» Не пойму что и где прописать? Как это сделать? Спасибо!

Дмитрий, у вас скорее всего этот блок выполняется сторонним плагином и смотреть надо в его сторону, а не в саму тему.

Здравствуйте!
После установки и настройки плагина Polylang, перестали hаботать плагины MetaSlider и jQuery Vertical Accordion Menu.
Подскажите с чем связано и где искать решение проблемы. Заранее спасибо!

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

Оказывается проблема была таки в другом: вносил кое-какие изменения в футер темы, пропала подгрузка js файлов.
Поправил — все заработало)
П.С. а блог, мне как новичку, очень интересный, спасибо 🙂

Добрый день. А как в WP с помощью этого плагина перевести «вредные» главные страницы темы?

Спасибо большое за видео!

Здравствуйте! Спасибо большое за видео!
Подскажите, пожалуйста, как отобразить в переключатели языков не полное названия языка, например : «Русский», а сокращенное: «ru»?

Не готов ответить на ваш вопрос, т.к. в данный момент этим плагином не пользуюсь. Но, как мне подсказывает интуиция, название языка берётся либо из кода плагина, либо из его локализации (файлы в директории languages или где-то ещё).

Спасибо! Нашла, файл languages.php в папке polylangsettings .

Добрый вечер Александр, спасибо огромное вам за обзор, очень полезная и подробная инструкция по установке плагина Polylang. Установила плагин и была в восторге, пока не столкнулась с такой проблемой: плагин не все строки определил для перевода. Несколько строк не появилось в закладке настроек Перевод строк. И как результат несколько строк на втором языке не переводятся. В интернете я нашла, что можно произвольно добавлять строки, путем изменения и добавления кода

У Polylang есть свои собственные маленькие функции, полезные для таких целей. Конкретно в этом случае, есть 3 варианта:

1. Локализация строки обычным методом WordPRess — в шаблоне находим где этот текст и оборачиваем его в функцию _e() или __(). После этого делаем перевод строки в POedit, Как обычно.

Топ-пост этого месяца:  Как автоматически добавить alt к загруженной картинке

2. Локализация строки точно так же, как в п.1, только вместо внешнего POedit ставим плагин Loco Translate и переводим строку прямо в админке.

3. Вместо функций _e() или __() используем функции pll__(), pll_e() вместе с pll_register_string() и переводим в админке WordPress на странице настроек Polylang.

Вы сталкивались с такой проблемой? Может сможете подсказать и научит как это делается. Заранее спасибо за помощь.

Вот строки, которые не перевелись. Сайт http://www.italiatut.com

Только что этим развлекалась.
1. В функции темы (functions.php) добавляете строчку
pll_register_string(‘Читать далее’, ‘readmore’);
2. В настройках Polylang в Переводе строк появляется строчка readmore. Добавляете русскую и английскую версию.
3. В файле архивы или где у Вас встречается эта строка заменяете текст Читать далее на
Всё.

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

Возможно моя проблема кроется в том, что название кнопки Читать дальше у меня вводиться через функции настройки темы?

Поскольку все надписи (найденные прямиком в файле), которые необходимо было заменить у меня получилось изменить благодаря вашему совету. За что отдельное вас спасибо ) А вот надпись, которую я ввела в настройках темы, и которой соответственно нет прямиком в файлах (Читать дальше) не получается изменить.

Сорри, у Вас итальянский :))
У меня это сейчас вылядит вот так.
http://world-evolution.ru/en/
Осталось ещё пару десятков блох выловить :))

Здравствуйте! Ниже в комментариях на этой странице уже обсуждали эту проблему и предложили ссылки с материалами 🙂

Спасибо за ответ, я воспользовалась данной ссылкой. Но проблема не решилась, видимо какие то проблемы в коде.

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

Не в выходной день, Елизавета. Выходные я провожу целиком с семьёй, извините.
Если напомните во второй половине дня понедельника — попробую выделить время 🙂

Прошу прощения, совершенно потерялась во времени, не заметила как наступила суббота. Спасибо большое за ответ, напомню в понедельник. Хороших выходных вам )

Добрый день Александр, для того, чтобы изменить текст кнопки Читать дальше (на главной странице) я добавила вот такую строку в function.php:
pll_register_string(‘Read more…’, ‘Read more…2’);
Далее в админ панели заменила в шаблоне (standart.php):
pll_e(‘Read more…’);
После чего в настройках Языки, Перевод строк у меня появились 2 строки, в которых я ввела текст для на русском и на итальянском языках. Но никаких изменения не произошло, или я не туда вставила код pll_e или неправильно его вставила. Спасибо за внимание.

Здравствуйте, Александр!
После активации плагина развалилась вся шапка. С чем это может быть связано?
Можно с этим что-то сделать, или нужно искать другой плагин?

Здравствуйте! А покажите скриншот, что именно случилось и приложение ссылку на ваш сайт.

http://world-evolution.ru/
Картинка не загружается, я сейчас на некоторое время опять активирую плагин на посмотреть :))

А теперь отключите плагин и посмотрим, как будет без него.

Мультиязычный сайт на WordPress. Плагин Polylang. Часть вторая. Настройка записей

Поделиться ссылкой:

Понравилось это:

Похожее

Меня зовут Артем Абрамович и я являюсь фрилансером-вордпресером. Занимаюсь настройкой и редактированием сайтов созданных на CMS WordPress. Это основная моя специализация, есть еще несколько работ, которыми я занимаюсь, но обо этом вы можете более подробно узнать из моего портфолио.

66 комментариев к “Мультиязычный сайт на WordPress. Плагин Polylang. Часть вторая. Настройка записей”

Здравствуйте, столкнулась с тем, что фотографии нужно загружать в каждый язык, Если три языка, получается тройной сайт, при огромном количестве фотографий это очень неудобно. Подскажите, пожалуйста, есть ли переводчик -плагин автоматический для фотографий. С ув. Наталья.

Приветствую! А зачем фотографии несколько раз загружать? Вы же фотки загружаете в Библиотеку мультимедиа и ничего не мешает использовать одну и ту же фотку в разных записях или страницах на разных языках. Это если все правильно понял

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

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

+Наталья Васильева Скорее всего только так и придется делать. Любой другой плагин по тому же принципу работает дублирования контента. Есть еще платный подобный плагин http://wpml.org/ или делать копии WP в разных папках, абсолютно независимых

+Наталья Васильева не знаю насколько для вас это еще актуально, нашел простой способ.
В записи нажимаете «Добавить медиафайл» -> «Вставить с сайта» (слева) -> Вставляете ссылку на ваше изображение, загруженное ранее и уже опубликованное для другого языка. К примеру пост уже есть на русском, с загруженной картинкой и вы создаете на английском.

Здравствуйте, очень понятное видео. Спасибо!
У меня плагин не реагирует на пользовательский тип записей — типа как у вас Accomodations или Tours. Он там вообще не появляется. Соответственно не могу использовать мультиязычность. А в стандартных Записях и Страницах — работает. Понятно,что дело в теме . Как мне это можно исправить?

+MIRALIS Добрый день! Рад, что видео понравилось.
Не факт, что проблема в шаблоне, вы в настройках синхронизацию для пользовательских типов устанавливали http://snap.ashampoo.com/uV9ONeKK ?

+WPRUSeСпасибо за оперативный ответ ! Помогло ! Отличный плагин.

+MIRALIS Пожалуйста. Рад оказаться полезным

У меня еще вопрос: нужен ли Codestyling Localization дополнительно?
После моих попыток подобрать подходящий плагин , т.е. я пробовала и Polylang, и параллельно Codestyling Localization , после их удаления попробовала Multilanguage, и в конце мой сайт на Денвере стал выдавать ошибку Maximum function nesting level of ‘100’ reached, aborting! — т.е. где-то зациклился перевод. создала параллельно новый сайт — с нуля там же на Денвере — попыталась установитьть платный плагин sitepress-multilingual-cms.3.1.5 (рекомендованный создателем темы. ) с паблика — активизировать его не удалось, удалила. опять установила polylang (очень понравился!) Пока не устанавливала Демо данные — все работало, как только импортировало демо — опять сайт не работает — указывает ту же ошибку Maximum function nesting level of ‘100’ reached, aborting! на строку «return translate( $text, $domain );» Может ли быть дело в теме, чтобы автор специально все настроил под платный плагин, и другие не смогут работать? Просто ваше мнение ))). Или вся загвоздка в Денвере — у него не хватает функционала для обработки большого объема контента — уже не могу понять — от чего отказаться : от темы или от плагина, или от Денвера? Так что SOS!)))

+MIRALIS Добрый день!
Так на первый прикид к носу))) это не шаблон и не плагин, скорее всего у вас Денвер тупит.
Но может быть и еще один момент — Полиланг просто не может сразу обработать слишком большое количество страниц. Попробуйте наоборот делать, сначала демо контент загружать а у же потом — Полиланг подключать. Есть там такие узкие места, связанные с обработкой большого количества контента

+WPRUSe И вам добрый!
Скорее всего вы правы в отношении большого количества контента! Перезаписала новый Денвер, перенесла сайт и Бд на новый хост. Теперь боюсь что-то испортить, как говорится — дую на воду ))). Пока все работает, настраиваю Polylang. Сайт туристический , картинок и текста очень много — все дублировать еще и на 3 языка нереально.
В теме есть такие пункты: «+» — я включила синхронизацию, а другие — не знаю. Посоветуйте.
(Извините за настойчивость)))

Таксономия +
Пользовательские поля +
Статус комментария
Статус отклика
Прилепленные записи
Дата опубликования
Формат записи
Родительская страница
Шаблон страницы
Порядок страниц
Выбранный рисунок

+MIRALIS Это все зависит от вашего шаблона, что-то используется что-то нет:
Статус комментария — когда комент на модерацию уходит можно сделать на нескольких языках сообщения

Статус отклика — это я не поймню что-такое, вспомню напишу

Прилепленные записи — проще говоря, это записи которые всегда будут первыми
выводиться независимо от даты, если не используете такие записи, то и не нужно вам

Дата опубликования — Дата опубликования статьи на нескольких языках

Формат записи — это такая вещь… когда используются несколько разные записи в шаблоне, например запись с видео, запись с аудио и тд, как правило на простых сайтах такой функционал не используют

Родительская страница — страницы, которые могут быть как бы вложенными одна в другую, соответственна для каждой такой страницы будет своя родительская

Шаблон страницы — это специальные файлы для вывода страниц с определенным дизайном, например есть страница с сайдбаром и без, в премиум-шаблонах такое часто используется

Порядок страниц — в каком порядке будут выводиться страницы, зачем только этот порядок переводить не знаю

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

Плагин Polylang добавление строк в настройки плагина в «Перевод строк»

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

Добавить комментарий