Localizator - поддержка TV параметров
1. Изменены окна редактирования локализаций, добавлена возможность редактирования TV-параметров

Для вывода на редактирование определенных TV-параметров добавлена настройка локализатора localizator_tv_fields

2. Сделан сниппет Localizator
Для этого нужно изменить настройку pdoFetch.class на pdotools.pdofetchlocalizator

Компонент по прежнему бесплатный и доступен на modstore.pro
Исходники на https://github.com/but1head/localizator
Отправить спасибо можете на Яндекс-кошелек 410015133943061

Для вывода на редактирование определенных TV-параметров добавлена настройка локализатора localizator_tv_fields

2. Сделан сниппет Localizator
{'Localizator' | snippet : [
'snippet' => 'pdoMenu',
'includeTVs' => 'img',
'processTVs' => 'img',
'parents' => 0,
'level' => 1,
]}TV-параметры будут заменяться на параметры из локализации.Для этого нужно изменить настройку pdoFetch.class на pdotools.pdofetchlocalizator

Компонент по прежнему бесплатный и доступен на modstore.pro
Исходники на https://github.com/but1head/localizator
Отправить спасибо можете на Яндекс-кошелек 410015133943061
Комментарии: 183
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Стрелками отмечены категории, доп.параметры распределены по категориям — вкладкам, как и при редактировании самого ресурса.
Извините за немного глупые вопросы :)
должно перевести, если это не migx
для перевода migx допилить еще надо
Сколько возьмете за допил? Штука must have, очень круто дополнила localizator. Буквально автоперевода для MIGX не хватает.
Либо пока что можете скачать из моего репозитория.
Баг поправил. Для перевода тв параметров (в том числе и migx) -их нужно также внести в системную настройку.
И если нет, то как обновить то, что сейчас установлено на сайте на версию из репозитория?
1. Через раз срабатывает визуальный редактор во вкладках (Firefox точно)
2. При выводе pdoCrumbs не показывает родителя. Только Главная и Текущая страница
2. а родительские переведены? у меня нормально выводится
2. Да. Причем в одном месте всё ок, в другом нет. На днях попробую повторить баг пошагово, или отпишусь в чем было дело.
также автоперевод migx допилил
позже выложу
Забыл добавить перевод родителю, отсюда и пустота.
А также никак не могу понять, как можно удалять записи из словаря? На данный момент можно только добавить запись и все…
Кстати, так же если изменить текст в полях главной локализации и нажать на Автоматический перевод, то в тех локах, которые являются сторонними переводами, ничего не меняется. То есть по нажатии на кнопку они не обновляются. Нужно сперва удалять их после этого нажимать. Это так задумано или баг?
Ещё в первой версии нужно было указать в системных настройках какие поля переводить.
По второму вопросу — также, в системных настройках есть параметр, переводить уже переведенные языки.
в tpl выводятся [[+longtitle]] и [[+introtext]], но они подхватываются из свойств документа. Каким должен быть вызов, чтобы они были из локализатора?
И среди сниппетов не вижу чтобы появился сниппет Localizator.
Вот так теперь выглядит.
nizart91@mail.ru
С содержимым сам разобрался. На сайте не было визуального редактора. Поставил TinyMCE, содержимое в локализаторе появилось.
Но вот вызов сниппета !Localizator все равно не отрабатывает. Сейчас попробую на другом сайте.
В таком виде и после того как скопировал сниппет Localizator все заработало.
При установке почему-то обязательно тянется MIGX
И поля отключал, и настройки форм, и переустановку локализатора делал. Можете помочь?
в русской заполнил
2. тв вставил slidermain
и ещё такой вопрос: вот создаём тв мигс оно отображается в Дополнительных полях — если там заполняешь, должно дублироваться в Локализацию или там нужно повторно всё заполнять? или заполнять только в Локализации нужно?
я сейчас заполняю в Дополнительных полях, потом в Локализации РУ версию.
В настройку localizator_translate_fields вставлять все переводимые поля, в том числе и тв
отдает 500 ошибку
Следующий код из примера тоже не работает и крашит все после себя
Так же ошибка в консоли
Теперь получается вот как, конструкция вида выводит JSON в зависимости от переключения языка правильно, но как это скормить getImageList не понятно, потому что
ничего не выводит. Буду пробовать разоборать массив через феном, если что то удасться — выложу решение
A ещё, если надо отобразить твшку другого ресурса (dockid=`1`), то такая конструкция не прокатит. Как быть в таком случае?
При использовании value в getImageList docid игнорируется, поэтому при выводе: {'getImageList' | snippet: [
'value' => $_modx->resource.tv-name,
'tpl' => 'tpl-name',
]}
выведется migx из локализатора текущего ресурса.
Решением стало использование pdoField:
{var $cat = 'pdoField' | snippet: [
'id' => '8', // id ресурса, из которого выводится tv
'field' => 'tv-name', // migx 1 уровня, который нужно вывести
]}
{'getImageList' | snippet: [
'value' => $cat | toJSON,
'tpl' => 'tpl-name', // чанк, в котором выводится migx 2 уровня (вложенный), его выводим, как обычный migx
]}
Вызываю так:
а выводится только обычная твшка, а не локализованная. С pdoMenu всё работает как надо, да и вообще всё с остальным работает правильно.
можно сделать так
tmplvarid — это id твшки в БД, а contentid — это что? У меня он пока для всех твшек и всех языков равен 1.
Интересует именно такая конструкция.
Можно сделать свой модификатор, которым будет удобно пользоваться:
Возможно и мне пригодится на будущее скопипастить, чтобы не писать заново, хотя времени на написание ушло 2 минуты.
В данной Fenom-конструкции заданные tv-поля через вкладку Локализация — игнорируются.
Для более быстрого восприятия: tv-поля имеют названия sortDate и moreButtonText.
Исходный код вызова сниппета:
Несмотря на возможно некорректное использование конструкций вида [[+placeholder]] для вызова tv-полей, это работает – для случая задания параметров традиционным способом, заложенным в MODx.
Перевод для pagetitle здесь применяется успешно.
Собственно, требуется заменить текст на кнопке на соответствующий перевод в зависимости от выбранного языка отображения сайта.
есть пример для pdoPage
В системных настройках localizator_tv_fields ="". Согласно описанию, если нужны все tv-поля для редактирования, то нужно оставить пустым. Установлено, что так и есть — все tv-поля доступы во вкладке Локализация.
Даже решил попробовать добавить tv-поле для автоперевода в строку localizator_translate_fields. Ничего не меняется.
или найдите в телеграм
Никаких вкладок нет в окне редактирования локализации для ресурса.
Выглядит вот так
Устанавливал, подключив поставщика modstore.
То есть эти вкладки — это названия категорий. И если в этих категориях есть созданные TV, то они отобразятся.
Спасибо.
Ну то есть в чем сложность.
Сниипет Localizator имеет параметр snippet куда можно передать имя сниппета.
И если мы передадим туда msProducts то наверное все сработает.
Но нам нужно передать туда pdoPage. А pdoPage по умолчанию если не указано другое, работает со сниппетом pdoResources. А нужно msProducts, но указать это никак невозможно?
Или я торможу?
Пока что все что приходит в голову, это сделать копию pdoPage, поправить в коде сниппет по умолчанию, но наверняка ведь умные люди уже придумали лучший способ?
Спасибо.
Я так понимаю, что компонент перешел к другому разработчику и вы его значительно улучшили.
Но при написании документации, Вы описали исключительно свои доработки, но потерялась информация о многом другом.
К примеру локализатор имеет вкладку Словарь, где можно задавать слова и фразы для разных языков.
Но нигде в документации не упоминается об этом, а так же о том, как их вывести на сайте, а в прошлой документации это было.
Пришлось лезть на старый сайт свой и там в коде искать, что вывести их можно так — Как будет время, добавьте это пожалуйста в документацию на docs.modx.pro/komponentyi/localizator/
Соответственно и phpthumbon должен работать, т.к. берется путь без en.
Можете скинуть доступы, посмотрю что у вас
Адрес сайта: site.ru/en Ссылка: assets/images/
На выходе site.ru/en/assets/images/
А как компонент работает с ClientConfig?
например в данный момент я сделал так:
в клиент конфиге имеется переменная address_ru и address_en
не уверен что это правильно решение. может ещё есть варианты? лучше через Fenom.
{var $key = ('localizator_key' | option)}
{('address_' ~ $key) | option}
Спасибо за помощь.
у меня получилось вот что, но этот вариант выводит только данные на той странице где они созданы, в моём случае это id=1, только там и работает.
добавлял разные параметры, ничего не помогло
так тоже писал
мигс заполняется у ресурса с id = 1, а вывести нужно у ресурса с id = 7
вот пример даже есть
прописывал эти параметры 0 результата
Подскажите как это преобразовать…
Запрос:
вывел:
выводит
2)
если так то выводит пустоту
tpl.chank
— это не понял
но как вывести опять же на другой странице
так пробовал, не помогло
ничего не выводит
т.е. в чанке просто
и пошел дальше
Но все конечно зависит от прямоты рук разработчика)
Добавил два перевода (ru,en)
Если в ресурсе для языка «en» переключаю параметр «активно» => «нет», то страница всё равно доступна на 2 языках.
Доступны так же на 2 языках те страницы, которые вообще не переводились на второй язык.
MODX Revolution 2.7.1-pl
Localizator 1.0.4-beta1
php7.2
Это только у меня так? Подскажите как исправить?
======================
была у меня как-то задача сделать нес-ко страниц на 2х языках и фраз/слов там было меньше 300.
я написал файл js
api_rez=`
word1|перевод_рус|перевод_др
word2|перевод_рус|перевод_др
`;
и на всех страницах подключил свой фреймворк на js. Он добавил кнопку переключения языков на все станицы и при нажатии — страница переводится скриптом по этому словарику на 2+ языка. без обращения к серверу и перезагрузки. Удобней это чем встроенные средства модх и пр? Наверно, но с откл скриптами это не работает и если слов/фраз много, то будет тормозить. Eще надо дополнительно в теги с этими словами добавлять класс multiLang.
на зато работает везде, даже на статичных сайтах без php+mysql
У меня на сайте, для сортировки, названия папок обычно пронумерованы, и в вкладке TV они сортируются правильно. В локализаторе же они каким-то непонятным образом выводятся:
SEO-поля из локализатора, которые не используются, типа SEO keywords можно спрятать через стили.
А родную вкладку TV-полей можно спрятать через Настройку форм самого MODX. Как в принципе и родные поля content, longtitle, description, introtext и т.д. Иначе они постоянно путаются и заполняются лишний раз — при локализаторе они бесполезный мусор, который постоянно мешает.
По поводу TV и полей, как и заметил — можешь сам все скрыть, если это нужно.
Однако же есть TV, которые нет смысла заполнять в нескольких языковых версиях, а проще заполнить основное поле — такие как изображение или дата.
Также есть ресурсы-ссылки, в которых ссылка заполняется в content, соответственно и скрывать незачем.
Но тогда и ТВ с переводом будут болтаться рядом, а если ТВ-шек много, то путаница, что где заполнять. Для себя я решил лучше уже все заполнять там, в одном месте, в том числе и даты. Даже для разных языков — один же раз заполняешь.
Это всё моя невнимательность. Я почему-то зациклился что TV параметры нужно вписывать в localizator_TV_fields а надо было в localizator_translate_fields наряду с полями ресурса.
Дошел до этого только когда заглянул в код процессора… )))
Спасибо!
Правда не знаю, это баг или фича такая…
— Создал tv joxi.ru/zANvYJoiv0dypA
— Вписал в настройках(сразу в две чуть позже для уверенности) joxi.ru/v29VPa8tZwnOjA
— создал ресурс и одну запись в русской локализации joxi.ru/zANvYJoiv0dVpA
— нажал автоматический перевод, но в англ версии не перевелось joxi.ru/n2YjabotbB9npA
Что еще надо сделать чтобы автоматом переводило? Думаю надо как то по пунктам написать по поводу migx, тут часто вопросы по нему возникают.
Также подскажите пожалуйста, в другой теме писал по поводу вызовов ms2GalleryResources
modx.pro/components/12012#comment-111846
по второму — ответил под комментарием
joxi.ru/p27V9KytKYlWwm
Но вот migx поле не переводит…
Может в разметке migx чет не то писал, добавил inputTVtype всем полям
joxi.ru/4Akjo5RtonP0N2
так же менял inputTVtype на textarea
Уже на модхосте тестил…
joxi.ru/brRv5Joi7EaBKr
Полез в процессор, выводил в журнал и выяснил, что в конце, после project_years пробел стоял, он считал это символом и частью названия ключа.
проверки пробела нет или str_replace пробелов
Все переводит, только вот цифры переводит в текст, например 1990 переводит в «One thousand nine hundred ninety». У меня это отдельное поле просто поставил inputTVtype = number.
Осталось разобраться с вызовами ms2GalleryResources.
joxi.ru/823Vx6Xt9loaQm
С цифрами беда, это да… Приходилось вручную исправлять. На китайском я исправлял наугад, на китайский он и названия тегов типа span перевёл…
Название поля должно быть и в настройке localizator_tv_fields и в localizator_translate_fields
Как я понял: либо пустая настройка для всех (кстати, image-поля он просто копирует в новый язык, что для меня очень удобно), либо если указал что-то, даже с минусом, то прийдётся перечислять все нужные поля после этого.
При обновлении/переустановке компонента затираются файлы лексикона site.inc.php!!!
Учитывая их содержимое (test), а также то что именно этот файл выводится на странице локализатора в вкладке "Словарь", я думал что именно их надо использовать для своих лексиконов сайта. Если бы не бэкапы, то потерялись бы сотни переводов…
Если этот файл затирается при обновлении, то смысл тогда вообще в вкладке «Словарь» у CMP локализатора?
На вкладка «Словарь» лексиконы добавляются в БД — точно также как и на стандартной странице админки «Управление словарями»
Спасибо, буду делать на будущее свои файлы лексиконов…
По адресу site.ru/en/ не отображается [[*content]], а title, discription, seo работают.
Прочитать документацию: Все поля ресурса подменяются локализированными, кроме , он выводится через .
Вставлял в шаблон и этот код просто появляется и всё. Подскажите пожалуйста куда его вставить нужно?
Заранее благодарен.
Появляется код, скорее всего из-за того, что не включена поддержка Fenom.
А как включить поддержку Fenom?
Открывается пуста страница без шаблона. Просто белый лист и всё. Удаляю код и сайт запускается.
Для исправления можно после скобки поставить пробел или обернуть код в тег
Всё равно белый лист
http:/sitename.ru/img/image.jpg
http:/sitename.ru/eng/img/image.jpg
http:/sitename.ru/de/img/image.jpg
joxi.ru/Drl8KRYHyYjJJr
joxi.ru/Y2L3lBZiEyD8gm
Спасибо заранее
joxi.ru/12MP7zViwjJoKm
тв поля не во вкладках, да и поля с текстовым редактором криво выглядят
к тому же при сохранении ошибка в консоли
TypeError: Cannot read property 'save' of undefined
может кто-то сталкивался с подобной проблемой?
modx.pro/components/24758