Polylang
Компонент позволяет создавать мультиязычные сайты без дополнительных контекстов.
Возможности
Интеграция
Купить
Возможности
- Локализация полей документов Modx
- Локализация Tv
- Локализация полей miniShop2 (добавленных через msFieldsManager)
- Локализация опций miniShop2
- Изменения типа ввода данных для полей
- Изменения порядка вывода полей в админке
- Изменение порядка вывода языков на сайте
- Автоматический перевод поля или группы полей локализации через google translate или yandex translate
- Задание полей, для которых следует использовать автоматический перевод
- Автоматическое создание локализаций для документа с автоматическим переводом полей
- Индексация полей локализаций в mSearch2
- Авто определение языковой версии сайта при первом его посещении
- URL с слэшем на конце и без
- msFieldsManager — Да
- mSearch2 — Да
- pdoTools — Да
- msMultiCurrency — Да
- msImportExport — В планах
Купить
Поблагодарить автора
Отправить деньги
Комментарии: 141
О! Еще один языковик. Было бы неплохо почитать об отличиях от Локализатора
- Работа с кастомными полями miniShop2
- Работа с опциями miniShop2
- Индексация полей для mSearch2 из коробки
- Возможность сортировки языков при выводе
- Возможность скрыть часть полей или изменить для них тип ввода, например прикрутить к полю текстовый редактор
- Перевод текста как с помощью yandex translate так и google translate + можно реализовать свой класс с нужным сервисом перевода
- Можно указать какие поля следует переводить автоматически
- Можно сразу сделать создание и перевод локализаций для ресурса
- Поддержка url как со слешем на конце так и без
- Авто определение языковой версии сайта при первом его посещении
- Сниппет который создает URL для ресурса с учетом выбранной языковой версии сайта.
- Ну и в целом меньше лишних тело движений при настройки компонента
Было бы неплохо почитать об отличиях от ЛокализатораНу если на вскидку то такие.
Выглядит внушительно. Спасибо за работу.
Вот где ты был пару месяцев назад(((( Не пришлось бы изобретать кучу велосипедов… Пошел тестить на модхост.
А с MIGX будет работать хотя бы в перспективе? Если да, то это бомба!
в перспективе да
Тогда жду с нетерпением и буду пользовать!
еще не работает c migx?
Лично не тестировал все моменты, но уже общался с несколькими клиентами которые юзают migx. Да и в принципе не должно быть проблем с migx так как это все те же TV, главное в из названии не использовать дефис. Ну а вообще все можно протестировать в бесплатном тарифе на modhost.pro/
А как насчет совместимоси с mSearch2?
совместим
Можно ли указывать разную цену для товара в зависимости от локализации?
Нет
Планируется в дальнейшем? В любом случае думаю этот функционал нужен, т.к. на примере своего сайта, мне только из за того что для ru цены в рублях, а для en цены в $, и не привязанные к курсу, пришлось собирать сайт на контекстах, а это не сильно удобно. Готов помочь со спонсированием по такому функционалу.
Что мешало создать дополнительное поле price_usd и в зависимости от назначенного cultureKey использовать необходимую цену?
Пробовал пойти по такому пути, не завелся mFilter с такими ценами и сложности с опциями товаров в Локализаторе были опять же в mFilter. Долго крутил, в итоге переделал все с помощью Babel.
Я думаю то как потом с ним работать в корзине и при оформлении заказа не говоря уже об других дополнениях которые как то модифицируют цену. Именно поэтому на данный момент такой возможности и нет даже в msMultiCurrency но в планах такое реализовать есть но для этого нужно будет сделать пару изменений в самом minishop2
Приветствую, в 2024 появиться такая возможность?
Сайт мультиязычный и планируют на каждом языке ставить свою цену на товар ?
Сайт мультиязычный и планируют на каждом языке ставить свою цену на товар ?
Пакет уже давно интегрирован с msMultiCurrency на modhost.pro/ можешь в бесплатном тарифе проверить работу этой связки
msMultiCurrency не совсем подходит.
Так как там привязка к курсу/коэффициенту.
Но дополнение мы купили (Случилось недопонимаю ТЗ)
У нас допустим 5 стран у всех одна валюта и нужно в одной из стран сделать спец предложение, и все это будут делать вручную (Где-то дороже, где-то дешевле).
Можно ли кастомизировать стандартные поля из miniShop2 в Polylang
Так как там привязка к курсу/коэффициенту.
Но дополнение мы купили (Случилось недопонимаю ТЗ)
У нас допустим 5 стран у всех одна валюта и нужно в одной из стран сделать спец предложение, и все это будут делать вручную (Где-то дороже, где-то дешевле).
Можно ли кастомизировать стандартные поля из miniShop2 в Polylang
Ответ
«не получается кастомизировать так как на нем завязана вся логика стоимости заказа».
«не получается кастомизировать так как на нем завязана вся логика стоимости заказа».
Без контекстов это конечно хорошо, но вот если на сайте через контексты разные сайты работают, то как тогда быть?
Ну в принципе всё должно работать
Охуе**о!
Добрый день!
Подскажите пожалуйста какова схема работы с данными при импорте различных языковых версий. Например при работе с Babel создаются дубликаты ресурсов в соответствующих контекстах и организовываются связи между ними. А в случае с Polylang какова схема в этом случае? На что ориентироваться?
Подскажите пожалуйста какова схема работы с данными при импорте различных языковых версий. Например при работе с Babel создаются дубликаты ресурсов в соответствующих контекстах и организовываются связи между ними. А в случае с Polylang какова схема в этом случае? На что ориентироваться?
Здравствуйте. В видео для документов html, вы убрали окончание для страниц .html? Это принципиально или сделали так чисто по привычке? На моем сайте товары с расширением .html, не будет ли проблем в работе с вашим дополнением?
Спасибо.
Спасибо.
Чисто по привычке, с html проблем не будет
И если у меня есть опыт работы с БД через HeidiSQL, я смогу через него и csv сделать быстрый перевод всех товаров и категорий? Коль msImportExport пока в планах.
Ну теоретически можешь. Поставь его на бесплатном тестовом тарифе modhost.pro/ и проверь )
Поставил, покопался, все возможно, основная сложность это свести ID контента и ID локализации. Можно как-то одним кликом создать для всех контентов (категории, страницы, товары) на сайте локализации ru и заполнить содержимым, которым уже заполнены? На сайте около 7к документов, у товара есть опции и ТВ поля, у категорий ТВ поля.
Идея какая: сайт в зоне com.ua и делать com.ua/ua не хочется. Сейчас сайт на русском языке, создать локализацию ru с нынешним содержимым (скопировать), а потом нынешнюю версию сайта которая выводиться на domen.com.ua — перевести на укр язык и сделать локализацию UA основной для сайта.
Реально ?)
Идея какая: сайт в зоне com.ua и делать com.ua/ua не хочется. Сейчас сайт на русском языке, создать локализацию ru с нынешним содержимым (скопировать), а потом нынешнюю версию сайта которая выводиться на domen.com.ua — перевести на укр язык и сделать локализацию UA основной для сайта.
Реально ?)
ну это нужно писать свой скрипт из коробки такой возможности нет
Вы про «одним кликом создать локализации»?
ну да, вопрос же про это был
Добрый день
подскажите, есть у компонента возможность массового заполнения полей?
через msPe или отдельным скриптом?
подскажите, есть у компонента возможность массового заполнения полей?
через msPe или отдельным скриптом?
Не в ту ветку обратился, *del*
Доброго времени суток! Насколько я понял по ветке выше, у модуля нет возможности запустить перевод всего сайта автоматически? Соответственно после всех предварительных настроек. В том же бесплатном локализаторе такой функционал есть.
Просто, допустим, если сайт на 1к ресурсов, то нужно будет в каждый заходить и прокликивать кнопку на перевод? По моему это было бы очень затратно по времени. Или, допустим, прокликал я 1к раз, переводя на 2 языка, а тут на следующий день надо третий язык добавить. Тогда снова ручной переобход 1к ресов?
Вы писали в ветке выше что надо писать скрипт. Не подскажете, например, через тот же модуль консоли, как бы выглядел запрос на авто-перевод всех недостающих полей в абстрактном ресурсе *ID*?
Просто, допустим, если сайт на 1к ресурсов, то нужно будет в каждый заходить и прокликивать кнопку на перевод? По моему это было бы очень затратно по времени. Или, допустим, прокликал я 1к раз, переводя на 2 языка, а тут на следующий день надо третий язык добавить. Тогда снова ручной переобход 1к ресов?
Вы писали в ветке выше что надо писать скрипт. Не подскажете, например, через тот же модуль консоли, как бы выглядел запрос на авто-перевод всех недостающих полей в абстрактном ресурсе *ID*?
у меня больше 10к ресурсов
прокликал руками основные категории и разделы, остальное нереально.
по поводу наличия скрипта массового перевода автор молчит
прокликал руками основные категории и разделы, остальное нереально.
по поводу наличия скрипта массового перевода автор молчит
А через поддержку не пробовали обращаться? Я интересуюсь заранее т.к у меня может быть заказ, где он используется, но я бы туда точно тоже написал, чтобы уточнить т.к важный момент.
ну вот сейчас сходил, спросил )
а разница… автор и там и тут видит-же тред по своему компоненту
больше функционал — всяко лучше
а разница… автор и там и тут видит-же тред по своему компоненту
больше функционал — всяко лучше
Сегодня будет сборка с таким скриптом
Новая версия 1.0.10-pl уже доступна prnt.sc/zyy7wr
Спасибо! Думаю этого многим не хватало для полного счастья) Отличный компонент!
А вот такая конструкция не будет работать для компонента?
{11 | resource : 'longtitle'}
используй pdoField
Спасибо, а если на странице 10 заголовков нужно вывести в разных местах?
На сколько критично по скорости выводить 10 вызовов pdoField?
На сколько критично по скорости выводить 10 вызовов pdoField?
Кстати, тестировал вывод TV в шаблоне при реализации своего источника файлов к примеру по пути assets/img
Получается на другом языке путь не подставляется для такого вызова
Получается на другом языке путь не подставляется для такого вызова
{set $reviewsImg = 'pdoField' | snippet : ['id' => 18,'field' => 'img']}
<img class="lazy" src="{$reviewsImg | Polylang2BaseUrl | pthumb : "w=780&h=752&zc=1&far=1&bg=ffffff&q=75"}" >
т.е. для другого языка изображение в TV не найдено, т.к. отсутствует assets/img
приходится велосипедить
{if $_modx->config.cultureKey == 'en'}
{set $uriLang = '/assets/img/'}
{/if}
{set $reviewsImg = $uriLang ~ 'pdoField' | snippet : ['id' => 18,'field' => 'img']}
но это конечно жесть…
Теперь можно не велосепедить.
Профиксено.
И migx стал фурычить с фотками корректно.
Профиксено.
И migx стал фурычить с фотками корректно.
Планы на msImportExport, а то как раз необходимость появилась =)
UPD 1.1.0-pl
- Добавлено: Поддержка переводчика PROMT
- Добавлено: Поддержка компонента msMultiCurrency
- Добавлено: Сниппет «PolylangSitemap»
- Добавлено: Опции polylang_set_currency_for_language; polylang_post_processing_translation; polylang_disallow_translation_completed_field
Раньше когда делал через контексты, если было нужно разные данные на разных языковых версиях, то я просто через IF проверял контекст, и выводил нужную информацию, как с подобным обстоит здесь?
Извиняюсь если вопрос не актуальный, но пробежался по всем комментам и вроде не увидел.
Извиняюсь если вопрос не актуальный, но пробежался по всем комментам и вроде не увидел.
Ну текущая версия языка хранится в плейсхолдере так что по идее ты так же само можешь использовать IF если я конечно правильно понял суть вопроса
Возможно так будет нагляднее, правда пример не через IF
[[*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", по которому я смогу также проверять?
[[*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", по которому я смогу также проверять?
в ++cultureKey хранится код языка
так что можно делать так
так что можно делать так
[[++cultureKey:is=`ru`:then=`img src=«logo_ru.svg»`]]
[[++cultureKey:is=`de`:then=`img src=«logo_de.svg»`]]
[[++cultureKey:is=`en`:then=`img src=«logo_en.svg»`]]
или еще проще src="logo_[[++cultureKey]].svg"
Отлично, спасибо, за идею!
Привет. Спасибо за большую проделанную работу.
А когда документация с примерами и разными готовыми решениями на PolyLang планируется и будет ли вообще?
А когда документация с примерами и разными готовыми решениями на PolyLang планируется и будет ли вообще?
…
— Авто определение языковой версии сайта при первом его посещении
Работает, определяет, но есть нюансы.
Когда первый раз заходишь на сайт по ссылке site.ru ( язык браузера на eng ) то редирект на EN версию сайта, потом ничего не меняя заходишь второй раз и попадаешь на уже версию RU (или тот язык который по дефолту без контекста)
Но правильнее запоминать язык который определился первый раз или же тот который выбрал пользователь после, то есть если пользователя устроил язык авто определения и он его далее не менял, то все гуд, его и подпихиваем ему в дальнейшем, ну и если он его сам изменил то дальше используем уже измененный.
Автор, есть ли возможность допилить?
Работает, определяет, но есть нюансы.
Когда первый раз заходишь на сайт по ссылке site.ru ( язык браузера на eng ) то редирект на EN версию сайта, потом ничего не меняя заходишь второй раз и попадаешь на уже версию RU (или тот язык который по дефолту без контекста)
Но правильнее запоминать язык который определился первый раз или же тот который выбрал пользователь после, то есть если пользователя устроил язык авто определения и он его далее не менял, то все гуд, его и подпихиваем ему в дальнейшем, ну и если он его сам изменил то дальше используем уже измененный.
Автор, есть ли возможность допилить?
Polylang 1.2.0
- Добавлено: Поддержка мультидоменности
- Добавлено: Опция «polylang_default_domain_settings»
- Добавлено: Событие «OnSetPolylangDefaultSettings»
- Добавлено: Политика доступа
- Добавлено: Клонирование контента как отдельного поля так и всей локализации
- Добавлено: Страница управления лексиконом
- Добавлено: Перевод лексиконов
- Добавлено: Клонирование лексиконов
- Исправлено: Сниппет «PolylangSitemap»
Если после обновления на версию 1.2.0 у вас в логе modx ошибка типа
Unknown column 'PolylangContent.editedby' in 'field list'
то выполстите в консоли modx следующий код$pkgName = 'Polylang';
$pkgNameLower = mb_strtolower($pkgName);
$modelPath = $modx->getOption("{$pkgNameLower}.core_path", null, $modx->getOption('core_path') . "components/{$pkgNameLower}/") . 'model/';
$modx->addPackage($pkgNameLower, $modelPath);
$manager = $modx->getManager();
$manager->createObjectContainer('PolylangTvTmplvars');
$manager->createObjectContainer('PolylangLanguageGroup');
$manager->createObjectContainer('PolylangLanguageGroupMember');
$manager->addField('PolylangContent', 'editedby', array('after' => 'content'));
$manager->addField('PolylangContent', 'editedon', array('after' => 'content'));
$manager->addField('PolylangLanguage', 'rank_translation', array('after' => 'rank'));
$manager->addField('PolylangLanguage', 'parent', array('after' => 'site_url'));
$manager->addField('PolylangLanguage', 'description', array('after' => 'name'));
Polylang 1.2.3
====================================
— Добавлено: Импорт/экспорт лексиконов
— Исправлено: Работа с контекстами
— Исправлено: Определения языков для Ajax запросов
— Исправлено: Ключ кеша ресурса
====================================
— Добавлено: Импорт/экспорт лексиконов
— Исправлено: Работа с контекстами
— Исправлено: Определения языков для Ajax запросов
— Исправлено: Ключ кеша ресурса
Polylang 1.2.8
====================================
— Добавлено: Автоматическая переадресации на домен в зависимости от геолокации посетителя
— Добавлено: Генерация 404 ошибки для ресурсов бел локализации для выбранного языка
— Добавлено: Параметр «onlyWithLocalization» для сниппетов использующих pdoTools
— Добавлено: Опции «polylang_use_error_404» и «polylang_use_error_404_resources»
— Добавлено: События «OnDetectPolylangGeoRedirectDomain» и «OnHasPolylangError404»
— Исправлено: Перевод лексиконов
====================================
— Добавлено: Автоматическая переадресации на домен в зависимости от геолокации посетителя
— Добавлено: Генерация 404 ошибки для ресурсов бел локализации для выбранного языка
— Добавлено: Параметр «onlyWithLocalization» для сниппетов использующих pdoTools
— Добавлено: Опции «polylang_use_error_404» и «polylang_use_error_404_resources»
— Добавлено: События «OnDetectPolylangGeoRedirectDomain» и «OnHasPolylangError404»
— Исправлено: Перевод лексиконов
Polylang 1.2.10
====================================
— Исправлено: Перевод Migx полей
После обновления необходимо очистит кэш браузера
====================================
— Исправлено: Перевод Migx полей
После обновления необходимо очистит кэш браузера
Доброго времени суток. Перед покупкой тестирую дополнение на modhost и не могу понять, как сделать вывод перевода товаров в каталоге (вывод товаров через msProducts). На самой странице товара всё ок, переводится, а при выводе в каталоге так и остается на одном языке. Есть ли где-то более полная документация с примерами или может тут подскажете? Спасибо.
вопрос снимается. T.к. на modhost дополнение ставится автоматом, без возможности выбора опций установки, нужно было вручную у pdoTools переопределить pdoFetch.class и pdofetch_class_path
Доброго времени суток. Продолжаю тестировать дополнение и словил ошибку:
Страница недоступна
Сайт s28089.h8.modhost.pro пока не может обработать этот запрос.
HTTP ERROR 500
Причем, если удалить что-то одно (polylang либо upgrademodx) ошибка уходит.
Почитал интернеты, пишут про конфликт guzzle в разных дополнениях. И я так предполагаю, что с некоторыми другими дополнениями, где используется guzzle другой версии, тоже такая ошибка может выскочить? Кто сталкивался с такой ошибкой и что делать?
#0 /home/s28089/www/core/components/polylang/vendor/guzzlehttp/guzzle/src/functions.php(71): GuzzleHttp\Utils::defaultUserAgent()
#1 /home/s28089/www/core/components/upgrademodx/vendor/guzzlehttp/guzzle/src/Client.php(194): GuzzleHttp\default_user_agent()
#2 /home/s28089/www/core/components/upgrademodx/vendor/guzzlehttp/guzzle/src/Client.php(75): GuzzleHttp\Client->configureDefaults()
#3 /home/s28089/www/core/components/upgrademodx/model/upgrademodx/upgrademodx.class.php(185): GuzzleHttp\Client->__construct()
#4 /home/s28089/www/core/cache/includes/elements/modsnippet/34.include.cache.php(75): UpgradeMODX->init()
Соответственно при заходе в админку вижу:Страница недоступна
Сайт s28089.h8.modhost.pro пока не может обработать этот запрос.
HTTP ERROR 500
Причем, если удалить что-то одно (polylang либо upgrademodx) ошибка уходит.
Почитал интернеты, пишут про конфликт guzzle в разных дополнениях. И я так предполагаю, что с некоторыми другими дополнениями, где используется guzzle другой версии, тоже такая ошибка может выскочить? Кто сталкивался с такой ошибкой и что делать?
upgrademodx и PolyLang использует guzzlehttp но у upgrademodx используется старая версия из-за чего происходит конфликт. Нужно писать автору upgrademodx что бы он обновил guzzlehttp
Т.е. это не решаемо на уровне вашего дополнения? И если возникнет такая же проблема с другим дополнением (например если я куплю ваше дополнение и поставлю на рабочий сайт, часть дополнений может упасть из-за разницы в версиях), это нужно решать с авторами этих дополнений, а не с вами? Это важно, я хочу ваше дополнение поставить на интернет магазин, который уже давно работает, на котором стоят дополнения, которые используют guzzlehttp (тот же upgrademodx, GoogleSheets) и самостоятельно это не решить? И конечно не стоит надеяться решить проблему тупой подменой папки guzzlehttp новой версии в дополнении?
Т.е. это не решаемо на уровне вашего дополнения?вы предлагаете мне ставить более старую версию guzzlehttp лишь бы работало какое то другое дополнение? Это же путь в некуда, так можно и в каменный век вернуться )) Поэтому логично что бы остальные дополнения шли в ногу со временем.
Тем более, что guzzlehttp использует не мое дополнение как таковое, а библиотека Google translate так что при всем моем желании я не могу понизить верию guzzlehttp
самостоятельно это не решить? И конечно не стоит надеяться решить проблему тупой подменой папки guzzlehttp новой версии в дополнении?скорей всего нет, так как могут вылезти ошибки в других библиотеках ибо зачастую guzzlehttp ставится как зависимость для других библиотек
GoogleSheets это платный компонент так что я думаю автор быстро отреагирует на просьбу обновить guzzlehttp
Ага, спасибо. Скоро будет.
Не особо пока шарю в modx, есть ряд вопросов по компоненту. Извините, если вопросы наивные)
1. Стоит задача сделать 10-ти язычный сайт, функционал polylang справится с этой задачей? Насколько комфортно будет?)
2. Нормально, что я не могу найти дополнение в менеджере пакетов? Установить можно только после покупки на modstore.pro/?
3. Не нашел описание SEO возможностей, микроразметка, link rel=«alternate» и т.д.
4. Возможна ли покупка с установкой, доп услуга сколько будет стоить, вопрос к автору) спасибо.
1. Стоит задача сделать 10-ти язычный сайт, функционал polylang справится с этой задачей? Насколько комфортно будет?)
2. Нормально, что я не могу найти дополнение в менеджере пакетов? Установить можно только после покупки на modstore.pro/?
3. Не нашел описание SEO возможностей, микроразметка, link rel=«alternate» и т.д.
4. Возможна ли покупка с установкой, доп услуга сколько будет стоить, вопрос к автору) спасибо.
Стоит задача сделать 10-ти язычный сайт, функционал polylang справится с этой задачей?Да
Нормально, что я не могу найти дополнение в менеджере пакетов? Установить можно только после покупки на modstore.pro/?Да, но можно бесплатно потестировать на modhost.pro/
Возможна ли покупка с установкой, доп услуга сколько будет стоить, вопрос к автору) спасибо.Техническая поддержка по общим проблемам бесплатна в течении года. В поддержку не входит естественно, типа установите и настройте мне все, а том не лень читать документацию. Только решение каких либо явных проблем с работой дополнения.
И еще вопрос. Редактировать добавленные локализации страниц можно после добавления?
Если исходная версия(основной) язык отредктирована. Ее локализации сами не поменяются?
Если исходная версия(основной) язык отредктирована. Ее локализации сами не поменяются?
Никак не подружить с этим?
modstore.pro/packages/other/extrafields
modstore.pro/packages/other/extrafields
Редактировать добавленные локализации страниц можно после добавления?Да
Если исходная версия(основной) язык отредктирована. Ее локализации сами не поменяются?Нет
Никак не подружить с этим?Из коробки нет, нужно будет выполнить определенный код в консоли modx. Из коробки работает только с msfieldsmanager
А как этот код получить?
$polylang = $modx->getService('polylang', 'Polylang')) {
$tools = $polylang->getTools();
$fieldName = 'my_field';
$xtype = 'polylang-field'; // textarea,polylang-text-editor,polylang-code-editor,polylang-combo,polylang-combo-boolean,polylang-field
$meta = $modx->getFieldMeta('modResource');
$data = array(
'caption' => $fieldName,
'description' => '',
'xtype' => $xtype,
'code' => '',
'active' => 1,
'required' => 0,
'rank' => 0,
'meta' => isset($meta[$fieldName]) ? $meta[$fieldName] : array()
);
$tools->addField('PolylangContent', $fieldName , $data);
Этот код не выполняется. Что поправить нужно?
Скрин: disk.yandex.ru/d/BT__LqKkBIfg9g
Скрин: disk.yandex.ru/d/BT__LqKkBIfg9g
Доброго дня! Приобрел компонент, подскажите, пожалуйста. Возможно это есть в документации, не увидел.
У меня в чанках есть русский текст, в отдельные чанки вынесена шапка, подвал.
Каким образом организовать конструкцию шаблона в моем случае, чтобы он дружил с polylang?
Индивидуальную поддержку с примерами кода можно в этой ветке получать? Тикетной системы нигде нет?
Спасибо!
У меня в чанках есть русский текст, в отдельные чанки вынесена шапка, подвал.
Каким образом организовать конструкцию шаблона в моем случае, чтобы он дружил с polylang?
Индивидуальную поддержку с примерами кода можно в этой ветке получать? Тикетной системы нигде нет?
Спасибо!
Если это текст статический т/е не из полей то тогда использовать лексиконы joxi.ru/xAeo36whbz36Zm либо же сделать tv поля если это нужно только для определенных страниц
Задать вопрос автору можно через систему тикетов
Задать вопрос автору можно через систему тикетов
Добрый день! Появилась необходимость перенести сайт-каталог с joomla на modx. Основной язык русский и несколько дополнительных языков. Планирую использовать Ваш компонент. С переносом товаров вроде вопросов не будет. А вот, например, с новостным разделом непонятно как поступить. На joomla-сайте есть новости, которые пишутся только под один конкретный язык. Например, только для русской локализации или только для английской. Но я же не могу получается создать новость на английском языке, не создав ее на русском? Есть ли какой-то способ создавать новости для отдельных языков?
Еще момент добавлю. alias новости для всех языков будет одинаков.
И скорее всего (ждем точного ответа автора, тк мне тоже интересно) нельзя так сделать.
И скорее всего (ждем точного ответа автора, тк мне тоже интересно) нельзя так сделать.
Приветствую.
Кто юзал этот компонент, подскажите есть возможность использовать из коробки разные alias-ы, для разных языковых версий? Чтобы url отличались не только префиксом ru/ua, а была транслитерация с родного языка
Кто юзал этот компонент, подскажите есть возможность использовать из коробки разные alias-ы, для разных языковых версий? Чтобы url отличались не только префиксом ru/ua, а была транслитерация с родного языка
UPD 1.3.2-pl
Добавлено
— SEO Шаблоны
— Опции: «polylang_seo_pattern_enabled» и «polylang_seo_placeholder_prefix»
Добавлено
— SEO Шаблоны
— Опции: «polylang_seo_pattern_enabled» и «polylang_seo_placeholder_prefix»
Подскажите, когда может появится поддержка msImportExport?
Думаю где то к концу года
Ух как не скоро
В первую очередь хочу поблагодарить автора!
В последних версиях много чего нового и вкусного но наверное нашлась ошибка, связаная с mfilter2
— на сайте 2 языка, рус и укр, рус — основной, укр второстепенный.
— стоит определение по стране
— есть расписание занятий, в нём есть фильтрация по тв, тв заполнены как в рус, так и укр вариантах
после долгих мучений заставить его работать (фильтр простой, без наворотов, всего 2 параметра со стандартными чанками mfilter2) выяснилось что при фильтрации по тв, в результаты ничего не попадает. (mse2PolylangFilter — указан)
прошу автора обратить внимание, проверено на 2 моих сайтах и одном клиента, ситуация аналогичная.
При каких-то странных условяих — фильтр начинает работать в укр версии, но отловить «почему» не получилось, и под иконгнито и чистками кеша и разные браузеры.
В последних версиях много чего нового и вкусного но наверное нашлась ошибка, связаная с mfilter2
— на сайте 2 языка, рус и укр, рус — основной, укр второстепенный.
— стоит определение по стране
— есть расписание занятий, в нём есть фильтрация по тв, тв заполнены как в рус, так и укр вариантах
после долгих мучений заставить его работать (фильтр простой, без наворотов, всего 2 параметра со стандартными чанками mfilter2) выяснилось что при фильтрации по тв, в результаты ничего не попадает. (mse2PolylangFilter — указан)
прошу автора обратить внимание, проверено на 2 моих сайтах и одном клиента, ситуация аналогичная.
При каких-то странных условяих — фильтр начинает работать в укр версии, но отловить «почему» не получилось, и под иконгнито и чистками кеша и разные браузеры.
Добрый день.
есть маленький момент не хороший.
Допустим мне нужно чтобы по умолчанию был не русский язык, а английский.
притом domain.dom — англ, а ru.domain.dom — русский.
И чтобы добавить перевод именно для русского языка необходимо переключить настройку manager_language в en чтобы у ресурса стал выпадать вариант рус, а не англ.
Логично, вроде чтобы это дело зависило от cultureKey а не от manager_language. Или другой какой-то настройки.
Надеюсь на исправление потому что без этого исправления я не могу пользоваться компонентом.
Спасибо.
есть маленький момент не хороший.
Допустим мне нужно чтобы по умолчанию был не русский язык, а английский.
притом domain.dom — англ, а ru.domain.dom — русский.
И чтобы добавить перевод именно для русского языка необходимо переключить настройку manager_language в en чтобы у ресурса стал выпадать вариант рус, а не англ.
Логично, вроде чтобы это дело зависило от cultureKey а не от manager_language. Или другой какой-то настройки.
Надеюсь на исправление потому что без этого исправления я не могу пользоваться компонентом.
Спасибо.
Не срабатывает автоматический перевод с русского
переводит с русского на русский
использовал yandex cloud
переводит с русского на русский
использовал yandex cloud
Привет. Получилось исправить?
да, проблема была в самом yandex там без пол литра в правах не разберешься
Значит ты там что то намудрил с настройкой языков
Прошу у сообщества помощи — не могу понять почему у меня не верно работает снипет PolylangSitemap.
Более детально можно посмотреть на тестовом сайте s30975.h8.modhost.pro/manager/ — логин — s30975, пароль — 2Z9zQyc8hXxV
- Не верно отображает карту сайта
- Не обрабатывает указанные данные в параметрах languageGroup и onlyWithLocalization — выводит ссылки на все языковые версии + ресурсы без перевода
[[!PolylangSitemap?
&languageGroup=`2`
&onlyWithLocalization=`1`
&showHidden=`1`
&resources=`-2,-5`
]]
Скриншот вывода карты сайта Более детально можно посмотреть на тестовом сайте s30975.h8.modhost.pro/manager/ — логин — s30975, пароль — 2Z9zQyc8hXxV
неплохо бы добавить Last-Modified заголовки, при использовании опредления страницы по айпи — не работает
Не совсем понял, про какое api идёт речь? Этот заголовок нужно добавить для языковых версий страниц?
не api, а ip
при активном polylang, этот заголовок пропадает. В целях улучшения дополнения — добавьте, это как минимум плюс к индексации сайтов.
при активном polylang, этот заголовок пропадает. В целях улучшения дополнения — добавьте, это как минимум плюс к индексации сайтов.
что-то типа такого
Last-Modified: Sun, 11 Dec 2022 07:05:59 GMT
Last-Modified: Sun, 11 Dec 2022 07:05:59 GMT
UPD 1.3.5-pl
Добавлено:
Добавлено:
- Поддержка переводчика DeepL
- Опция polylang_translate_detect_source_language включающая авто определения языка текста
- Опция polylang_translate_source_language явно задающая язык переводимого текста
- Сохранение UTM меток при переключении языка
- На вкладке настройки языка поля: «локаль»; «иконка»
- На вкладке настройки группы языков поле «иконка»
- Last-Modified заголовок для модификаций
Доработайте пожалуйста перевод значений для списков. Вот ситуация как должно быть по логике:
на основном языке ресурса админ выбирает из списка вид интерьера квартиры, на основании этого поля будет делаться фильтр, поэтому он был задан как (Modern==1||Minimalistic==2) чтобы фильтровало по value, далее админ не должен его видеть в локализациях ресурса, переводы этих значений должны подхватываться из настроек Polylang вкладки TV, где привязаны переводы значений для этого поля в таком же формате ((Модерн==1||Минималистичный==2)). Согласитесь это логично потому что интерьер одной и той же квартиры не меняется в зависимости от языка и тогда зачем его редактировать там?
На данный момент я перепробовал все варианты настроек и не смог добиться такого поведения
на основном языке ресурса админ выбирает из списка вид интерьера квартиры, на основании этого поля будет делаться фильтр, поэтому он был задан как (Modern==1||Minimalistic==2) чтобы фильтровало по value, далее админ не должен его видеть в локализациях ресурса, переводы этих значений должны подхватываться из настроек Polylang вкладки TV, где привязаны переводы значений для этого поля в таком же формате ((Модерн==1||Минималистичный==2)). Согласитесь это логично потому что интерьер одной и той же квартиры не меняется в зависимости от языка и тогда зачем его редактировать там?
На данный момент я перепробовал все варианты настроек и не смог добиться такого поведения
Это нельзя сделать программно, что бы работало быстро. Плюс из tv нельзя понять как в ней хранится инфа. В дальнейшем может что то с такими tv придумаю
Здравствуйте, Polylang верно выводит перевод поля MIGX только на ресурсе которому он прикреплен, если же его выводить на других ресурсах то показывает только язык оригинала, делаю так:
[[getImageList? &docid=`2` &tvname=`FactsAboutNalTV` &tpl=`NalFactChunk`]]
Есть варианты как заставить его показывать перевод?
[[getImageList? &docid=`2` &tvname=`FactsAboutNalTV` &tpl=`NalFactChunk`]]
Есть варианты как заставить его показывать перевод?
Используй одноименный сниппет дополнения
после обновления 2 сайтов на версию 1.3.6 с версии 1.3.1 в логах
[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'
)
и пропали переводы на вкладке «локализация»
[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'
)
и пропали переводы на вкладке «локализация»
выполни в консоли modx код
<?php
$pkgName = 'Polylang';
$pkgNameLower = mb_strtolower($pkgName);
$modelPath = $modx->getOption("{$pkgNameLower}.core_path", null, $modx->getOption('core_path') . "components/{$pkgNameLower}/") . 'model/';
$manager = $modx->getManager();
$manager->addField('PolylangContent', 'createdby', array('after' => 'content'));
$manager->addField('PolylangContent', 'createdon', array('after' => 'content'));
$manager->addField('PolylangLanguage', 'locale', array('after' => 'culture_key'));
$manager->addField('PolylangLanguage', 'icon', array('after' => 'culture_key'));
$manager->addField('PolylangLanguageGroup', 'icon', array('after' => 'id'));
после выполнения кода информация в консоли про ошибки дублирование это нормально
спасибо, ошибки были но данные в вкладке вернулись
ждать фикс в новой версии?
ждать фикс в новой версии?
Огромная благодарность автору за качественное дополнение и оперативное обновление. Жаль, что из-за сложности с оплатой не получается протестировать Deepl, но с Яндекс.Клауд у меня полет отличный ?
Единственная просьба, при следующем обновлении добавить перевод атрибута alt=«название картинки» и title=«заголовок картинки» внутри тега (сейчас приходится переводить вручную). Спасибо. Всех с наступающим 2023!
Единственная просьба, при следующем обновлении добавить перевод атрибута alt=«название картинки» и title=«заголовок картинки» внутри тега (сейчас приходится переводить вручную). Спасибо. Всех с наступающим 2023!
Подскажите как вывести канонические ссылки на страницах?
В документации нет примера использования, я пытался так [[PolylangCanonical]] не получается, сказано что нужно использовать параметр $tpl с чанком, можете написать пример такого чанка?
В документации нет примера использования, я пытался так [[PolylangCanonical]] не получается, сказано что нужно использовать параметр $tpl с чанком, можете написать пример такого чанка?
Смотри внимательно они должны быть, просто они добавляются не в месте вызова сниппета, а в конце тега head
Пардоньте, так точно, все есть!
А как быть с редиректом 401
у меня вместо 401 404 ошибку выдает
у меня вместо 401 404 ошибку выдает
очепятался в редиректах
Ребята нужна помощь:
msProductOptions выводит не переведенные значения опций у некоторых товаров.
У товаров добавлена локализация, в ней в опциях прописаны переведенные значения.
Но при выводе на странице, тянутся все равно значения дефолтные — русские.
А в некоторых товарах норм выводится. ХЗ что делать…
вывожу так:
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
Подскажи, плиз, что не так?
msProductOptions выводит не переведенные значения опций у некоторых товаров.
У товаров добавлена локализация, в ней в опциях прописаны переведенные значения.
Но при выводе на странице, тянутся все равно значения дефолтные — русские.
А в некоторых товарах норм выводится. ХЗ что делать…
вывожу так:
[[!msProductOptions? &tpl=`tpl-msProductOptions` &ignoreOptions=`dimensions`]]
В чанке:{foreach $options as $option}
<div class="page-item-param">
<label class="item-param-name">{('ms2_product_' ~ $option.key) | lexicon}:</label>
<div class="item-param-val">
{if $option.value is array}
{$option.value | join : ', '} {$option.measure_unit}
{else}
{$option.value}
{/if}
</div>
</div>
{/foreach}
Пример товара где опции выводятся переведенные (опция 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 = $modx->getService('polylang', 'Polylang');
$action = 'mgr/polylangcontent/create';
//$action = 'mgr/polylangcontent/update';
/** @var modProcessorResponse $response */
$response = $polylang->runProcessor($action,$data);
if ($response->isError()) {
$modx->log(modX::LOG_LEVEL_ERROR, $response->getMessage());
}
ключи/значения для массива в $data посмотри в консоли браузера на вкладке сеть при создании/редактировании локализации
Спасибо
при ограничении прав для менеджера сайта, во вкладке «Локализация» — пусто, всплывает сразу попап
«Разрешение 'polylang_language_group_list' необходимо для 'mgr/polylanglanguagegroup/getlist'!»
как можно решить?
«Разрешение 'polylang_language_group_list' необходимо для 'mgr/polylanglanguagegroup/getlist'!»
как можно решить?
В политики доступа есть вообще политика polylang_language_group_list?
да, их две
PolylangManagerPolicy и PolylangPolicy
в них всё включено
PolylangManagerPolicy и PolylangPolicy
в них всё включено
в политике доступа менеджера, нет пункта polylang_language_group_list
нет ничего про polylang
нет ничего про polylang
в политике доступа менеджера, нет пункта polylang_language_group_listНу создай ее вручную тогда
странно, скинь доступ в админку через тикет
разобрался, проблема была в том что не привязана политика к группе пользователей
Добрый день. Такая же проблема и не пойму где искать решение
Приветствую, а как скрыть от менеджера определенный таб с тб
в обычном виде — таб с тб скрывается но отображается его перевод у менеджера.
допустим есть поля — сео заголовок, сео описание (они скрыты от менеджера, но есть в табе локализация)
в обычном виде — таб с тб скрывается но отображается его перевод у менеджера.
допустим есть поля — сео заголовок, сео описание (они скрыты от менеджера, но есть в табе локализация)
Добрый день, подскажите как решить проблему или куда смотреть. Сайт на MODX Revolution 2.8.3pl, мультиязычный(Polylang 1.3.0), на всех языках все корректно отображается, кроме одного. Думали что проблема в словарях, но после очистки всех данных этого языка, проблема осталась.
/core/components/polylang/handlers/tools/polylangtools.class.php
PHP warning: array_merge(): Expected parameter 1 to be an array, string given
/core/components/polylang/handlers/tools/polylangtools.class.php
PHP warning: array_merge(): Expected parameter 1 to be an array, string given
Hi, при переводе на этапе загрузки зависает и не переводит. Api работает. Использую deepl
[2023-06-05 10:48:30] (ERROR @ /home/admin/web/icasino.club/private/core/components/polylang/handlers/tools/polylangtools.class.php : 484) [detectLanguage] Current language=ru
[2023-06-05 10:48:30] (ERROR @ /home/admin/web/icasino.club/private/core/components/polylang/handlers/tools/polylangtools.class.php : 485) [detectLanguage] Saved language=
[2023-06-05 10:48:30] (ERROR @ /home/admin/web/icasino.club/private/core/components/polylang/handlers/tools/polylangtools.class.php : 501) [detectLanguage] URL=https://сайт/ru/games/
[2023-06-05 10:48:30] (ERROR @ /home/admin/web/icasino.club/private/core/components/polylang/handlers/tools/polylangtools.class.php : 502) [detectLanguage] Default language=en
[2023-06-05 10:48:30] (ERROR @ /home/admin/web/icasino.club/private/core/components/polylang/handlers/tools/polylangtools.class.php : 503) [detectLanguage] Cache cultureKey=
[2023-06-05 10:48:30] (ERROR @ /home/admin/web/icasino.club/private/core/components/polylang/handlers/tools/polylangtools.class.php : 568) [setLanguage] Culture key=ru
[2023-06-05 10:48:30] (ERROR @ /home/admin/web/icasino.club/private/core/components/polylang/handlers/tools/polylangtools.class.php : 569) [setLanguage] Site URL=https://сайт/ru/
Нужна помощь за денежку.
Приветствую! есть ли возможность не менять основной язык панели управления, если допустим основным языком на сайте — украинский UK, но админ панель оставить на русском RU?
работает как нужно, если указать язык в панели управления — такой же как и в основном языке сайта, но вопрос в другом: может ли работать полиланг при условиях когда не нужно менять язык панели но основным языком на сайте должен быть не русский?
при попытке сделать основным UA в консоли ошибки и не позволяет выбрать RU из списка локализаций.
работает как нужно, если указать язык в панели управления — такой же как и в основном языке сайта, но вопрос в другом: может ли работать полиланг при условиях когда не нужно менять язык панели но основным языком на сайте должен быть не русский?
при попытке сделать основным 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)
Uncaught ReferenceError: tvSuperSelect is not defined
at polylang.js:241:5
at ext-all.js:21:2438
at b (ext-all.js:21:19924)
кое как работает при указании culture_key в формате ru-ru \ uk-ua
Подскажите нет ли проблем с Вьетнамским языком у компонента.
У себя на сайте введены настройки соответствия языка браузера с локализацией, по всем языкам работает.кроме вьетнамского.
В настройке polylang_geo_language_country, прописано «vn»:«vn»
У себя на сайте введены настройки соответствия языка браузера с локализацией, по всем языкам работает.кроме вьетнамского.
В настройке polylang_geo_language_country, прописано «vn»:«vn»
{"ab":"ru","az":"ru","ay":"en","sq":"en","am":"en","en":"en","ar":"ru","hy":"en","as":"en","aa":"en","af":"en","eu":"en","ba":"en","bn":"en","my":"en","bi":"en","bh":"en","bg":"en","br":"en","dz":"en","cy":"en","wa":"en","hu":"en","vo":"en","wo":"en","vi":"en","gl":"en","kl":"en","el":"en","ka":"en","gn":"en","gu":"en","gd":"en","gv":"en","da":"en","he":"en","zu":"en","yi":"en","ia":"en","ie":"en","iu":"en","ik":"en","ga":"en","is":"en","es":"es","it":"en","yo":"en","kk":"ru","km":"en","kn":"en","ca":"en","ks":"en","qu":"en","rw":"en","ky":"en","rn":"en","zh":"en","zh":"en","ko":"en","co":"en","xh":"en","ku":"en","lo":"en","lv":"en","la":"en","li":"en","ln":"en","lt":"en","mk":"en","mg":"en","ms":"en","ml":"en","mt":"en","mi":"en","mr":"en","mo":"en","mn":"en","na":"en","ne":"en","nl":"en","no":"en","oc":"en","or":"en","om":"en","pa":"en","pl":"en","pt":"pt","ps":"en","rm":"en","ro":"en","ru":"ru","sm":"en","sg":"en","sa":"en","ss":"en","sh":"en","sr":"en","st":"en","si":"en","sd":"en","sk":"en","sl":"en","so":"en","sw":"en","su":"en","tl":"en","tg":"en","th":"en","ta":"en","tt":"en","te":"en","bo":"en","ti":"en","to":"en","tn":"en","ts":"en","tk":"en","uz":"en","ug":"en","uk":"ru","ur":"en","fo":"en","fa":"en","fj":"en","fi":"en","fr":"fr","fy":"en","ha":"en","hi":"en","hr":"en","tw":"en","cs":"en","sv":"en","sn":"en","eo":"en","et":"en","jv":"en","ja":"en","de":"de","at":"de","be":"de","vn":"vn"}
Определение по IP не используем
Просто к сведению:
Вот такая конструкция не работает, отдаёт значение поля на основном языке
[[PolylangField?&id=`[[*id]]`&field=`longtitle`&top=`1`&lang=`[[++lang]]`]]
А вот такая работает
[[PolylangField?&id=`[[*parent]]`&field=`longtitle`&lang=`[[++lang]]`]]
Т.е. условие &top не обрабатывается корректно, только если подставлять id родителя.
Вот такая конструкция не работает, отдаёт значение поля на основном языке
[[PolylangField?&id=`[[*id]]`&field=`longtitle`&top=`1`&lang=`[[++lang]]`]]
А вот такая работает
[[PolylangField?&id=`[[*parent]]`&field=`longtitle`&lang=`[[++lang]]`]]
Т.е. условие &top не обрабатывается корректно, только если подставлять id родителя.
Парни почему может не переводиться MIGX поле на конкретный (немецкий) язык?
Подключен PolylangTranslatorYandexCloud для автоперевода.
Перевод этого поля на другие языки работает нормально.
В логах появляется ошибка:
Подключен PolylangTranslatorYandexCloud для автоперевода.
Перевод этого поля на другие языки работает нормально.
В логах появляется ошибка:
Error translate text:'[{"MIGX_id":"1","title":"BROKER","text":"+5% Бонус ко всем вашим депозитам"},{"MIGX_id":"2","title":"CSGOBROKER","text":"1.50$ Бесплатно"},{"MIGX_id":"3","title":"BROKER","text":"+5% Бонус ко всем вашим депозитам"},{"MIGX_id":"4","title":"CSGOBROKER","text":"1.50$ Бесплатно"}]' from ru to de
Скорее всего по причине того что в ТВ поле с типом MIGX содержимое текстовое в json формате, что не «кушает» переводчик.
поэтому в ручную эти поля необходимо заполнить.
поэтому в ручную эти поля необходимо заполнить.
В том то и прикол, что кушает.
на английский, испанский, французский — переводятся норм, а на немецкий и турецкий глючат.
на английский, испанский, французский — переводятся норм, а на немецкий и турецкий глючат.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.