Поступил проще
Создал два снипета
getTranslate
(&snip=Снипет;string;getTranslate &language=Язык;string;russian &word=Слово;string;)
<?php
global $_lang;
if(file_exists("assets/snippets/$snip/lang/$language.inc.php")){
include_once("assets/snippets/$snip/lang/$language.inc.php");
}
return $_lang[$word];
?>
Второй
getCurrentLanguage
(&format=Get Format;string;0)
<?php
$cid = $modx->documentIdentifier;
$parents_array = $modx->getParentIds($cid);
if (is_array($parents_array))
{
$parent = $modx->getDocument(array_pop($parents_array));
}
if ($format == 0)
{
return $parent['longtitle'];
}
else {
return $parent['alias'];
}
?>
Если надо какие-то данные менять в зависимости от текущего языка.
Вставляю в чанке [!getTranslate? &language=[[getCurrentLanguage]] &snip=`feedback` &word=`feedback_fio`!]
&snip - это название папки снипета который юзает текущий чанк
&word - ключ массива
include_once("assets/snippets/$snip/lang/$language.inc.php");
заносит в global $_lang порцию набора
<?php
/**
* Russian language file for feedback
*/
$_lang["feedback_fio"] = "Ваше имя и фамилия";
$_lang["feedback_email"] = "Адрес электронной почты";
$_lang["feedback_message"] = "Текст сообщения";
$_lang["feedback_spam_title"] = "Защита от спама";
$_lang["feedback_spam_picture"] = "Код на картинке";
$_lang["feedback_send"] = "Отправить";
$_lang["feedback_thanks"] = "Сообщение отправлено, ответ будет выслан по указанному вами адресу.";
?>