Несколько вопросов про Localizator
Всем привет. Не первый год работаю с modx но, к сожалению не с fenom и вообще не хардкорный программист.
В общем просмотрел всю тему modx.pro/components/12012/ но так и не понял как создавать дополнительные поля для перевода страниц и добавление в шаблон, а так же как сделать вывод блока по условию.
Или я не правильно понимаю идеологию компонента?
1. Как куда нибудь сюда take.ms/drgEi добавить свое поле? Или например, поле контент оно ведь у нас одинаковое для всех языков, как мне вписать контент для страницы на разных языках?
2. Как в шаблоне вывести блок в зависимости от активного языка? например [если активен английский то показывать блок1 или есть активен китайский то блок2]?
3. Можно ли переключить язык не меняя url страницы? То есть мы на русской странице site.ru/about.html, переключаем язык и остаемся на этой же странице site.ru/about.html только на английском, а не на site.ru/en/about.html
Вот такие основные вопросы на которые я за два дня не нашел ответа.
В общем просмотрел всю тему modx.pro/components/12012/ но так и не понял как создавать дополнительные поля для перевода страниц и добавление в шаблон, а так же как сделать вывод блока по условию.
Или я не правильно понимаю идеологию компонента?
1. Как куда нибудь сюда take.ms/drgEi добавить свое поле? Или например, поле контент оно ведь у нас одинаковое для всех языков, как мне вписать контент для страницы на разных языках?
2. Как в шаблоне вывести блок в зависимости от активного языка? например [если активен английский то показывать блок1 или есть активен китайский то блок2]?
3. Можно ли переключить язык не меняя url страницы? То есть мы на русской странице site.ru/about.html, переключаем язык и остаемся на этой же странице site.ru/about.html только на английском, а не на site.ru/en/about.html
Вот такие основные вопросы на которые я за два дня не нашел ответа.
Комментарии: 10
да и в догонку (чувствую себя совсем новичком), как вывести в шаблоне хедера, переведенный пейджтайтл? Вот отсюда например take.ms/OMtp7
1) Какое еще поле вы хотите вывести? Если TV — то именно туда — никак. Если вы конечно не гуру extJS. Но вы вроде как обратное и говорите. А вообще если нужны переведенные TV, то придется создавать два TV, например tvname_ru и tvname_en и далее либо придется работать с условиями if/else и выводить нужные в чанках. Ну, типа такого:
Если делать по-хорошему, то можно раскопать исходники Locaziator'a и там можно найти прикольную фишку в плагине с подменой плейсхолдеров.
И можно набросать свой плагин, который будет в зависимости от языка сайта подставлять в плейсхолдер tvname значение либо русского, либо английского языка. Сложновато объяснил, но если шарить в теме, то можно понять :)
Не понял про поле Content. Оно для каждого языка разное. Вы его заполняете как раз в этой вкладке.
2) Изи, изи. См. код выше. Подойдет отлично.
3) Вот это, насколько я знаю, уже нельзя. Нет, конечно, можно заморочиться с плагином маршрутизации для Localizator и отключить всю эту штуку и будет работать.
Но если нужно менять язык страницы без изменения адреса, то можно просто писать в куки текущий язык сайта и переключать его. Я писал об этом вот здесь. То решение далеко не идеальное, но отличное направление в нужную сторону.
4) [[+pagetitle]]. Или {$_modx->resource.pagetitle}. Ну или еще как-нибудь. Все поля в нужном языке подменяются в локализаторе, я написал об этом выше. Не подменяется только поле Content, оно выводится как localizator_content. То есть тут никакой магии. Если вы правильно установили компонент, то все должно работать.
{if ('localizator_key'|option)!='ru'}
{var $tv = $_modx->resource.tvname_en}
{else}
{var $tv = $_modx->resource.tvname_ru}
{/if}
<p> {$tv} </p>
Это такой, простой и костыльный вариант.Если делать по-хорошему, то можно раскопать исходники Locaziator'a и там можно найти прикольную фишку в плагине с подменой плейсхолдеров.
И можно набросать свой плагин, который будет в зависимости от языка сайта подставлять в плейсхолдер tvname значение либо русского, либо английского языка. Сложновато объяснил, но если шарить в теме, то можно понять :)
Не понял про поле Content. Оно для каждого языка разное. Вы его заполняете как раз в этой вкладке.
2) Изи, изи. См. код выше. Подойдет отлично.
3) Вот это, насколько я знаю, уже нельзя. Нет, конечно, можно заморочиться с плагином маршрутизации для Localizator и отключить всю эту штуку и будет работать.
Но если нужно менять язык страницы без изменения адреса, то можно просто писать в куки текущий язык сайта и переключать его. Я писал об этом вот здесь. То решение далеко не идеальное, но отличное направление в нужную сторону.
4) [[+pagetitle]]. Или {$_modx->resource.pagetitle}. Ну или еще как-нибудь. Все поля в нужном языке подменяются в локализаторе, я написал об этом выше. Не подменяется только поле Content, оно выводится как localizator_content. То есть тут никакой магии. Если вы правильно установили компонент, то все должно работать.
Спасибо, Дмитрий, за подробный ответ, если есть минутка то надеюсь дополните немного
Вот например, как быть с такой ситуацией: есть главная станица. На ней слоган, небольшой текст (который надо править в админке в визуальном редакторе) + набор характеристик типа цвет — красный, район — северный, краткое описание.
Получается что для того же текста с визуальным редактором, мне надо ресурсу создать аж 3 тв (для трех языков) и потом разруливать уже не средствами не средствами локализатора а кодом if который вы привели? Для для характеристик тоже по 3 тв на каждое поле? Тогда через контексты все же удобней, по крайней мере не нужно валить все в кучу на одну страницу доп полей, открыл ресурс по нужному языку и все заполнил.
Я просто пытаюсь понять почему локализатор так хвалят в комментариях, и думаю что я просто не умея с ним работать, не понимаю преимуществ.
Какое еще поле вы хотите вывести? Если TV — то именно туда — никак.Что то я не пойму тогда в чем преимущество перед настройки через контексты + бабель, кроме как более простой установки?
Вот например, как быть с такой ситуацией: есть главная станица. На ней слоган, небольшой текст (который надо править в админке в визуальном редакторе) + набор характеристик типа цвет — красный, район — северный, краткое описание.
Получается что для того же текста с визуальным редактором, мне надо ресурсу создать аж 3 тв (для трех языков) и потом разруливать уже не средствами не средствами локализатора а кодом if который вы привели? Для для характеристик тоже по 3 тв на каждое поле? Тогда через контексты все же удобней, по крайней мере не нужно валить все в кучу на одну страницу доп полей, открыл ресурс по нужному языку и все заполнил.
Я просто пытаюсь понять почему локализатор так хвалят в комментариях, и думаю что я просто не умея с ним работать, не понимаю преимуществ.
[[+pagetitle]]. Или {$_modx->resource.pagetitle}. Ну или еще как-нибудь. Все поля в нужном языке подменяются в локализаторе, я написал об этом выше.Подскажите еще пожалуйста, а как если мне в шаблоне надо вывести [[+pagetitle]] на выбранном языке не текущего ресурса, а другого, как getfield?
Вот тут нашел ответ modx.pro/components/12012/#comment-86575 работает :)[[+pagetitle]]. Или {$_modx->resource.pagetitle}. Ну или еще как-нибудь. Все поля в нужном языке подменяются в локализаторе, я написал об этом выше.Подскажите еще пожалуйста, а как если мне в шаблоне надо вывести [[+pagetitle]] на выбранном языке не текущего ресурса, а другого, как getfield?
Ну, знаете, бывают случаи, когда ТВ на сайтах вообще не используются. Я собрал с пяток магазинов, где у меня нет ни одного ТВ. На двух из них стоит Localizator и все всем довольны.
Если не минишоп, то там понято как без полей, а если нет, то как вы характеристики товара тогда храните?
а зачем интернет-магазин без минишопа? :)
))) ну мало ли… может это какой нибудь очень маленький интернет магазин на 5 товаров. В общем других вариантов как куча тв для всех языков получается нет?
Подскажите еще пожалуйста, а как если мне в шаблоне надо вывести [[+pagetitle]] на выбранном языке не текущего ресурса, а другого, как getfield?Ну тут только сниппет писать. Где-то там же в комментах в основной теме что-то было похожее.
3. Якщо ти хочеш не міняючи ULR сторінки переключити мову, то тобі краще використовувати компонент Xlexicon
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.