MODx Yams - мультиязычные сайты на modx Evo

Задача реализации мультиязычных сайтов (сайт, содержимое которого может быть на нескольких языках) возникает, пожалуй, у многих разработчиков. На сегодняшний день существует довольно много готовых решений, как выделенных в отдельные независимые библиотеки (i..n L..n), так и  в рамках конкретных движков-продуктов.

Если в MODx Revolution средства для реализации мультиязычности и мультисайтовости уже встроены, то для создания сайта на нескольких языках с использованием MODx Evo (Evolution - более ранняя версия MODx) придётся немного повозиться. Благо, сейчас есть уже готовые решения. Одно из популярных - YAMS.

YAMS - Yet Another Multilingual Solution

YAMS - модуль (а также плагин и сниппет - это выяснится при установке), который позволяет задавать контент страницы на различных языках. В последних версиях он “без напильника” позволяет решать стандартный набор задач для мультиязычного сайта.

Установка и базовая настройка YAMS  подробно и пошагово описана в документации из комплекта (на английском языке).

Language Modes - варианты настройки языка.

Unique Multilingual Aliases mode - (вкладка Other Params, alias Unique) - режим, при котором пути документов имеют различные адреса:
http://server_name/my-doc-en.html
http://server_name/mon-doc-ru.html

Server Name and Root Name modes - режимы, для которых возможно создание языковых версий сайта на поддомене или в каталоге (поддиректории) основного сайта. В общем виде адрес можно представить в виде строки:

http://(server_name)/(subfolder/)(root_name/)(path/)(filename)

При этом значения (subfolder/) задаются (если потребуется) на вкладке Other Params, а параметр (path/) используется при включенных ЧПУ.

Server name mode - организация языковой версии сайта на поддомене:

  • http://en.server_name.com/mydoc.html
  • http://ru.server_name.com/mydoc.html

Root name mode - организация различных языковых версий в подкаталогах:

  • http://server_name.com/en/mydoc.html
  • http://server_name.com/ru/mydoc.html

Root name mode only, with one language at root - различные языковые версии в подкаталогах с использованием одной основной версии в корне сайта (настраивается указанием пустого пути для ка

  • http://server_name.com/mydoc.html
  • http://server_name.com/ru/mydoc.html

Server name mode, root name mode, friendly alias paths, multilingual aliases and >7bit URLs.  - режим домен, подкаталог, ЧПУ, многоязычные адреса и URL-ы в кодировке UTF-8:

  • http://en.server_name.com/england/folder/mydoc.html
  • http://fr.server_name.com/la-france/répertoire/mon-doc.html

Особенности YAMS

Отмечу некоторые особенности, которые обнаружил не сразу (конечно, методом тыка.. в доках всё написано):

Root name mode only, with one language at root - режим устанавливается заданием пустого параметра Root Name для одного из языков (который и будет основным - в смысле для сайта без подкаталога - т.е. русская версия http://site.ru ; английская - site.ru/en/)

Варианты обращения к списку языков - [[YAMS? &get=`list`]]  или  [[YAMS? &get=`selectform`]]
Для задания собственного шаблона (более подробно - в документации по сниппету) -
[[YAMS? &get=`repeat` &repeattpl=`otherFlagItemTpl` ¤ttpl=`currentFlagItemTpl` ]]

Текст на двух языках: - чтобы вывод различался в зависимости от языка, можно обойтись без чанка
[[YAMS? &get=`text` &from=`ru::Это еще не все||en::Read more`]]

Yams + Ditto - добавляем к вызову Ditto параметр:
&extenders=`@FILE assets/modules/yams/yams.extender.inc.php`

При включенной переадресации главная страница вместо http://site.ru/ имеет вид http://site.ru/minimal_base ; аналогично и для языков в подкаталоге - лечится заданием параметру Site start filename значения don’t include filename (Other Params)

Для изменения порядка следования языков (в стандартной поставке, к примеру, язык ru идёт после en) следует отредактировать массив $this->itsActiveLangIds = array('ru', 'en' ); в файле assets/modules/yams/yams.config.inc.php с заданием нужного порядка;

ссылки по Yet Another Multilanguage Solution

YAMS English Documentation - документация по YAMS
YAMS How To - рецепты по работе с YAMS - как подружить YAMS с WayFinder, Ditto и другими сниппетами.

Метки:

Автор будет признателен, если Вы поделитесь ссылкой на статью, которая Вам помогла:
BB-код (для вставки на форум)

html-код (для вставки в ЖЖ, WP, blogger и на страницы сайта)

ссылка (для отправки по почте)

1 комментарий к записи “MODx Yams - мультиязычные сайты на modx Evo”

  1. Толян сообщает :

    Вместо редактирования файла можно просто деактивировать язык, а потом активировать - Yams сам поставит активный язык на первое место

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