Polylang
Компонент позволяет создавать мультиязычные сайты без дополнительных контекстов.
Возможности
Интеграция
Купить
Возможности
- Локализация полей документов Modx
- Локализация Tv
- Локализация полей miniShop2 (добавленных через msFieldsManager)
- Локализация опций miniShop2
- Изменения типа ввода данных для полей
- Изменения порядка вывода полей в админке
- Изменение порядка вывода языков на сайте
- Автоматический перевод поля или группы полей локализации через google translate или yandex translate
- Задание полей, для которых следует использовать автоматический перевод
- Автоматическое создание локализаций для документа с автоматическим переводом полей
- Индексация полей локализаций в mSearch2
- Авто определение языковой версии сайта при первом его посещении
- URL с слэшем на конце и без
Интеграция
- msFieldsManager — Да
- mSearch2 — Да
- pdoTools — Да
- msMultiCurrency — Да
- msImportExport — В планах
Купить
Комментарии: 145
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Сайт мультиязычный и планируют на каждом языке ставить свою цену на товар ?
Так как там привязка к курсу/коэффициенту.
Но дополнение мы купили (Случилось недопонимаю ТЗ)
У нас допустим 5 стран у всех одна валюта и нужно в одной из стран сделать спец предложение, и все это будут делать вручную (Где-то дороже, где-то дешевле).
Можно ли кастомизировать стандартные поля из miniShop2 в Polylang
«не получается кастомизировать так как на нем завязана вся логика стоимости заказа».
Подскажите пожалуйста какова схема работы с данными при импорте различных языковых версий. Например при работе с Babel создаются дубликаты ресурсов в соответствующих контекстах и организовываются связи между ними. А в случае с Polylang какова схема в этом случае? На что ориентироваться?
Спасибо.
Идея какая: сайт в зоне com.ua и делать com.ua/ua не хочется. Сейчас сайт на русском языке, создать локализацию ru с нынешним содержимым (скопировать), а потом нынешнюю версию сайта которая выводиться на domen.com.ua — перевести на укр язык и сделать локализацию UA основной для сайта.
Реально ?)
подскажите, есть у компонента возможность массового заполнения полей?
через msPe или отдельным скриптом?
Просто, допустим, если сайт на 1к ресурсов, то нужно будет в каждый заходить и прокликивать кнопку на перевод? По моему это было бы очень затратно по времени. Или, допустим, прокликал я 1к раз, переводя на 2 языка, а тут на следующий день надо третий язык добавить. Тогда снова ручной переобход 1к ресов?
Вы писали в ветке выше что надо писать скрипт. Не подскажете, например, через тот же модуль консоли, как бы выглядел запрос на авто-перевод всех недостающих полей в абстрактном ресурсе *ID*?
прокликал руками основные категории и разделы, остальное нереально.
по поводу наличия скрипта массового перевода автор молчит
а разница… автор и там и тут видит-же тред по своему компоненту
больше функционал — всяко лучше
На сколько критично по скорости выводить 10 вызовов pdoField?
Получается на другом языке путь не подставляется для такого вызова
т.е. для другого языка изображение в TV не найдено, т.к. отсутствует assets/img
но это конечно жесть…
Профиксено.
И migx стал фурычить с фотками корректно.
- Добавлено: Поддержка переводчика PROMT
- Добавлено: Поддержка компонента msMultiCurrency
- Добавлено: Сниппет «PolylangSitemap»
- Добавлено: Опции polylang_set_currency_for_language; polylang_post_processing_translation; polylang_disallow_translation_completed_field
После обновления возможно необходимо будет очистить кэш браузера.Извиняюсь если вопрос не актуальный, но пробежался по всем комментам и вроде не увидел.
[[*context_key:is=`ru`:then=`img src=«logo_ru.svg»`]]
[[*context_key:is=`de`:then=`img src=«logo_de.svg»`]]
[[*context_key:is=`en`:then=`img src=«logo_en.svg»`]]
Верно понимаю, что будет плейсхолдер-аналог "context_key", по которому я смогу также проверять?
так что можно делать так
или еще проще
А когда документация с примерами и разными готовыми решениями на PolyLang планируется и будет ли вообще?
Переводить а главное создавать переменные в словаре через стандартные функции modx очень не удобно.
Планируется ли такой функционал в PolyLang?
Работает, определяет, но есть нюансы.
Когда первый раз заходишь на сайт по ссылке site.ru ( язык браузера на eng ) то редирект на EN версию сайта, потом ничего не меняя заходишь второй раз и попадаешь на уже версию RU (или тот язык который по дефолту без контекста)
Но правильнее запоминать язык который определился первый раз или же тот который выбрал пользователь после, то есть если пользователя устроил язык авто определения и он его далее не менял, то все гуд, его и подпихиваем ему в дальнейшем, ну и если он его сам изменил то дальше используем уже измененный.
Автор, есть ли возможность допилить?
то выполстите в консоли modx следующий код
====================================
— Добавлено: Импорт/экспорт лексиконов
— Исправлено: Работа с контекстами
— Исправлено: Определения языков для Ajax запросов
— Исправлено: Ключ кеша ресурса
====================================
— Добавлено: Автоматическая переадресации на домен в зависимости от геолокации посетителя
— Добавлено: Генерация 404 ошибки для ресурсов бел локализации для выбранного языка
— Добавлено: Параметр «onlyWithLocalization» для сниппетов использующих pdoTools
— Добавлено: Опции «polylang_use_error_404» и «polylang_use_error_404_resources»
— Добавлено: События «OnDetectPolylangGeoRedirectDomain» и «OnHasPolylangError404»
— Исправлено: Перевод лексиконов
====================================
— Исправлено: Перевод Migx полей
После обновления необходимо очистит кэш браузера
Соответственно при заходе в админку вижу:
Страница недоступна
Сайт s28089.h8.modhost.pro пока не может обработать этот запрос.
HTTP ERROR 500
Причем, если удалить что-то одно (polylang либо upgrademodx) ошибка уходит.
Почитал интернеты, пишут про конфликт guzzle в разных дополнениях. И я так предполагаю, что с некоторыми другими дополнениями, где используется guzzle другой версии, тоже такая ошибка может выскочить? Кто сталкивался с такой ошибкой и что делать?
Тем более, что guzzlehttp использует не мое дополнение как таковое, а библиотека Google translate так что при всем моем желании я не могу понизить верию guzzlehttp
1. Стоит задача сделать 10-ти язычный сайт, функционал polylang справится с этой задачей? Насколько комфортно будет?)
2. Нормально, что я не могу найти дополнение в менеджере пакетов? Установить можно только после покупки на modstore.pro/?
3. Не нашел описание SEO возможностей, микроразметка, link rel=«alternate» и т.д.
4. Возможна ли покупка с установкой, доп услуга сколько будет стоить, вопрос к автору) спасибо.
Да, но можно бесплатно потестировать на modhost.pro/
Техническая поддержка по общим проблемам бесплатна в течении года. В поддержку не входит естественно, типа установите и настройте мне все, а том не лень читать документацию. Только решение каких либо явных проблем с работой дополнения.
Если исходная версия(основной) язык отредктирована. Ее локализации сами не поменяются?
modstore.pro/packages/other/extrafields
Нет
Из коробки нет, нужно будет выполнить определенный код в консоли modx. Из коробки работает только с msfieldsmanager
Скрин: disk.yandex.ru/d/BT__LqKkBIfg9g
У меня в чанках есть русский текст, в отдельные чанки вынесена шапка, подвал.
Каким образом организовать конструкцию шаблона в моем случае, чтобы он дружил с polylang?
Индивидуальную поддержку с примерами кода можно в этой ветке получать? Тикетной системы нигде нет?
Спасибо!
Задать вопрос автору можно через систему тикетов
И скорее всего (ждем точного ответа автора, тк мне тоже интересно) нельзя так сделать.
Кто юзал этот компонент, подскажите есть возможность использовать из коробки разные alias-ы, для разных языковых версий? Чтобы url отличались не только префиксом ru/ua, а была транслитерация с родного языка
Добавлено
— SEO Шаблоны
— Опции: «polylang_seo_pattern_enabled» и «polylang_seo_placeholder_prefix»
В последних версиях много чего нового и вкусного но наверное нашлась ошибка, связаная с mfilter2
— на сайте 2 языка, рус и укр, рус — основной, укр второстепенный.
— стоит определение по стране
— есть расписание занятий, в нём есть фильтрация по тв, тв заполнены как в рус, так и укр вариантах
после долгих мучений заставить его работать (фильтр простой, без наворотов, всего 2 параметра со стандартными чанками mfilter2) выяснилось что при фильтрации по тв, в результаты ничего не попадает. (mse2PolylangFilter — указан)
прошу автора обратить внимание, проверено на 2 моих сайтах и одном клиента, ситуация аналогичная.
При каких-то странных условяих — фильтр начинает работать в укр версии, но отловить «почему» не получилось, и под иконгнито и чистками кеша и разные браузеры.
есть маленький момент не хороший.
Допустим мне нужно чтобы по умолчанию был не русский язык, а английский.
притом domain.dom — англ, а ru.domain.dom — русский.
И чтобы добавить перевод именно для русского языка необходимо переключить настройку manager_language в en чтобы у ресурса стал выпадать вариант рус, а не англ.
Логично, вроде чтобы это дело зависило от cultureKey а не от manager_language. Или другой какой-то настройки.
Надеюсь на исправление потому что без этого исправления я не могу пользоваться компонентом.
Спасибо.
переводит с русского на русский
использовал yandex cloud
- Не верно отображает карту сайта
- Не обрабатывает указанные данные в параметрах languageGroup и onlyWithLocalization — выводит ссылки на все языковые версии + ресурсы без перевода
Вызов снипета с параметрами — «вывести языковую группу id-2 (en)»+«вывести только переведенные»+«вывести скрытые ресурсы»+«исключить ресурсы с id 2,5 (здесь проблем нет)»Скриншот вывода карты сайта
Более детально можно посмотреть на тестовом сайте s30975.h8.modhost.pro/manager/ — логин — s30975, пароль — 2Z9zQyc8hXxV
при активном polylang, этот заголовок пропадает. В целях улучшения дополнения — добавьте, это как минимум плюс к индексации сайтов.
Last-Modified: Sun, 11 Dec 2022 07:05:59 GMT
Добавлено:
на основном языке ресурса админ выбирает из списка вид интерьера квартиры, на основании этого поля будет делаться фильтр, поэтому он был задан как (Modern==1||Minimalistic==2) чтобы фильтровало по value, далее админ не должен его видеть в локализациях ресурса, переводы этих значений должны подхватываться из настроек Polylang вкладки TV, где привязаны переводы значений для этого поля в таком же формате ((Модерн==1||Минималистичный==2)). Согласитесь это логично потому что интерьер одной и той же квартиры не меняется в зависимости от языка и тогда зачем его редактировать там?
На данный момент я перепробовал все варианты настроек и не смог добиться такого поведения
[[getImageList? &docid=`2` &tvname=`FactsAboutNalTV` &tpl=`NalFactChunk`]]
Есть варианты как заставить его показывать перевод?
[2022-12-28 21:18:16] (ERROR @ /home/www/core/xpdo/om/xpdoobject.class.php: 240) Error 42S22 executing statement:
Array
(
[0] => 42S22
[1] => 1054
[2] => Unknown column 'PolylangContent.createdby' in 'field list'
)
и пропали переводы на вкладке «локализация»
после выполнения кода информация в консоли про ошибки дублирование это нормально
ждать фикс в новой версии?
Единственная просьба, при следующем обновлении добавить перевод атрибута alt=«название картинки» и title=«заголовок картинки» внутри тега (сейчас приходится переводить вручную). Спасибо. Всех с наступающим 2023!
В документации нет примера использования, я пытался так [[PolylangCanonical]] не получается, сказано что нужно использовать параметр $tpl с чанком, можете написать пример такого чанка?
у меня вместо 401 404 ошибку выдает
msProductOptions выводит не переведенные значения опций у некоторых товаров.
У товаров добавлена локализация, в ней в опциях прописаны переведенные значения.
Но при выводе на странице, тянутся все равно значения дефолтные — русские.
А в некоторых товарах норм выводится. ХЗ что делать…
вывожу так:
В чанке:
Пример товара где опции выводятся переведенные (опция Material):
shop.miniwarpaint.ru/en/shop/stuff/dlya-dioram-i-baz/priroda/pshenicza-razmer-l
А тут выводятся дефолтные (опция Material):
shop.miniwarpaint.ru/en/shop/stuff/dlya-dioram-i-baz/priroda/pshenicza-razmer-l
Подскажи, плиз, что не так?
Из за этого локализация товара не сохраняется…
Т.е. если зайти в редактор товара, открыть редактирование локализации и просто нажать «Сохранить», перевод начинает выводится
«Разрешение 'polylang_language_group_list' необходимо для 'mgr/polylanglanguagegroup/getlist'!»
как можно решить?
PolylangManagerPolicy и PolylangPolicy
в них всё включено
нет ничего про polylang
в обычном виде — таб с тб скрывается но отображается его перевод у менеджера.
допустим есть поля — сео заголовок, сео описание (они скрыты от менеджера, но есть в табе локализация)
/core/components/polylang/handlers/tools/polylangtools.class.php
PHP warning: array_merge(): Expected parameter 1 to be an array, string given
Нужна помощь за денежку.
работает как нужно, если указать язык в панели управления — такой же как и в основном языке сайта, но вопрос в другом: может ли работать полиланг при условиях когда не нужно менять язык панели но основным языком на сайте должен быть не русский?
при попытке сделать основным UA в консоли ошибки и не позволяет выбрать RU из списка локализаций.
Uncaught ReferenceError: tvSuperSelect is not defined
at polylang.js:241:5
at ext-all.js:21:2438
at b (ext-all.js:21:19924)
У себя на сайте введены настройки соответствия языка браузера с локализацией, по всем языкам работает.кроме вьетнамского.
В настройке polylang_geo_language_country, прописано «vn»:«vn»
Определение по IP не используем
Вот такая конструкция не работает, отдаёт значение поля на основном языке
[[PolylangField?&id=`[[*id]]`&field=`longtitle`&top=`1`&lang=`[[++lang]]`]]
А вот такая работает
[[PolylangField?&id=`[[*parent]]`&field=`longtitle`&lang=`[[++lang]]`]]
Т.е. условие &top не обрабатывается корректно, только если подставлять id родителя.
После создания лексикона, хочу его добавить на все доступные языки, едет долгая полоса загрузки, потом появляется ошибка:
В логах ошибка
Подключен PolylangTranslatorYandexCloud для автоперевода.
Перевод этого поля на другие языки работает нормально.
В логах появляется ошибка:
поэтому в ручную эти поля необходимо заполнить.
на английский, испанский, французский — переводятся норм, а на немецкий и турецкий глючат.
появились проблемы с кешированием, рандомно не меняется culturekey, после очистки кеша — всё ок
Есть желание использовать компонент polylang для автоматизации перевода с наименьшими усилиями, но есть пару вопросов, которые хотелось уточнить.
Планирую использовать google translator для перевода сайта.
1. Мне не нужно будет создавать копию для каждой страницы чтобы она имела перевод на выбранный язык? Просто сайт имеет порядка 2000 страниц и даже перещелкать каждую страницу для перевода на несколько языков это не реально.
2. На сколько я понимаю сейчас не нужно переводить каждое поле Локализации для каждого языка, они все будут переводиться автоматически. Правильно я понимаю? На видео видел что нужно создать поля для каждого языка в Лексиконе с переводом, по этому и возник вопрос.
3. Можно ли исключить некоторые страницы из перевода и показывать их такими как они есть?
4. Для организации документов в бекенде используется компонент Collection, не будет ли с ним проблем?
Сайт использует MODx 2.8.4
Заранее спасибо.
2. Верно, для перевода доступны стандартные поля ресурса MODX + 2 SEO поля (заголовок, ключевые слова) + можно указать (додать) TV. Воспользоваться лексиконами также можно, но это уже немного о другом.
3. Можно, в документации это указано
4. Не будет.
Компонент не идеален, но лучшего пока не встречал))
на сайте в сайтмап выводятся только ссылки на основную версию сайта (русскую)
а яндекс в свой выдаче выводит в основном ссылки на англоязычную версию страницы
проверяю я из браузера с системным языком русским.