modx словари и мультиязычность.
Здравствуйте. Встала задача сделать мультиязычный сайт, решил сделать это через словари, но столкнулся с рядом проблем.
Пытаюсь создать свое пространство имен, чтобы в словарях перевод хранился в нем, а не вперемешку с допустим ACE, не получается. Видимо для этого надо писать целый компонент, т.к создал я пространство. Иду в словари, выбираю созданное пространство, туда создаю запись RU — а она после создания не отображается. И в фильтрах даже RU нету, только EN. Но это пол беды. Даже если я в пространстве имен ACE создам какую то запись, например link_home с значением «ссылка на главную», дальше я иду в документ, вставляю [[%link_home]], и вместо ожидаемой надписи «ссылка на главную» по итогу я вижу link_home.
Можно конечно через контексты, но это неудобно. Во первых децентрализованность, нужно поддерживать сразу несколько контекстов, во вторых обьемность. А если языков будет 3-4-5, тут можно будет прикурить.
Подскажите пожалуйста, может быть я что то не знаю о словарях? Пытался гуглить — информации нужной не нашел.
UPD методом тыка выяснил, что если записи в пространство имен core добавлять — они работают.
Пытаюсь создать свое пространство имен, чтобы в словарях перевод хранился в нем, а не вперемешку с допустим ACE, не получается. Видимо для этого надо писать целый компонент, т.к создал я пространство. Иду в словари, выбираю созданное пространство, туда создаю запись RU — а она после создания не отображается. И в фильтрах даже RU нету, только EN. Но это пол беды. Даже если я в пространстве имен ACE создам какую то запись, например link_home с значением «ссылка на главную», дальше я иду в документ, вставляю [[%link_home]], и вместо ожидаемой надписи «ссылка на главную» по итогу я вижу link_home.
Можно конечно через контексты, но это неудобно. Во первых децентрализованность, нужно поддерживать сразу несколько контекстов, во вторых обьемность. А если языков будет 3-4-5, тут можно будет прикурить.
Подскажите пожалуйста, может быть я что то не знаю о словарях? Пытался гуглить — информации нужной не нашел.
UPD методом тыка выяснил, что если записи в пространство имен core добавлять — они работают.
Комментарии: 10
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
В ней директорию lexicon и в ней уже папки по языкам.
То есть, если пространство называется langs, то так:
В каждой языковой папке создайте файл default.inc.php и пропишите туда Ваши переменные:
После этого все записи появятся в словарях, их можно будет править и т. д.
Выводить надежнее так:
Я даже в index.php перед $modx->initialize('web'); вставил, для опыта. Не меняется язык никак…
Если только у контекста сам руками прописываю en или ru — меняется…
А вернет исходную системную настройку.
Беру, и вандально добавляю в index.php
по всякому пытался. Не могу понять что не так…