Подскажите, как более грамотно организовать на сайте мультиязычность.
В дереве делаю две ветки ru и en, и все остальное кидаю уже в них.
далее нужно сделать так, чтоб можно было переходить на разные языковые версии одного документа. Тут у меня 2 варианта, либо делать в двух ветках одинаковые алиасы, и искать по ним (но искать получается неудобно, так как в одной ветке могут быть 2 дока с одним алиасом. т.е. нужно еще и проверять где именно лежит документ).
2-й вариант добавить в документ TV в котором указывать id документа в другой яз версии (тут неудобство заключается в самом указывании айди и в случае, если языка не 2, а много)
Кто знает, как это сделать по-человечески, подскажите пожалуйста
My portfolio
Самурай без меча подобен самураю с мечом, только без меча.
Мне кажется, проще всего для переключения вызывать сниппет, в котором генерируется ссылка на аналогичную страницу. При этом структура и псевдонимы должны быть одинаковыми, а в корне папки названы, например, ru и en. Тогда в сниппете можно использовать команду типа str_replace ("/ru/", "/en/", $modx->makeURL($modx->documentIdentifier)) для генерации ссылки на английскую страницу с аналогичной русской.
Еще один вариант, так пока и не опробованный мною, поскольку раньше чем разобрался я тоже начал делить сайт на два дерева. А интересно, что из этого получится.
Вариант такой. Добавить для всех нужных полей соответствующие tv для других языков. И повесить на OnWebPagePrerender плагин, который бы в зависимости от языка заполнял нужные поля содержимым соответствующих tv. Интересно, насколько сильно упадет скорость отображения сайта?
или второе поле контент ([*content_en*]) добавить для англоверсии например
и заполнять оба поля соотв, а в шалоне вместо привычного [*content*] будет снипет который глядит какая версия щас запущена
ну как то так..
конечно реализовать такое было бы сложновато...
Quote from: p4sh0k at Oct 28, 2008, 05:15 AM
или второе поле контент ([*content_en*]) добавить для англоверсии например
и заполнять оба поля соотв, а в шалоне вместо привычного [*content*] будет снипет который глядит какая версия щас запущена
ну как то так..
конечно реализовать такое было бы сложновато...
Не очень хороший вариант, так как такие нужные поля как published, hidden, и т. д. будут одни и те же для всех версий, и если нужно будет иметь разные значения этих полей для разных версий, то эти поля тоже придется дублировать.
My portfolio
Самурай без меча подобен самураю с мечом, только без меча.
Quote from: p4sh0k at Oct 30, 2008, 05:25 AM
но такой вариант был бы идеален
На мой взгляд – как раз наоборот. Куча лишних параметров и усложнение алгоритма взамен неочевидной выгоды. А если используются заголовок, расширенный заголовок, аннотация, меню, основной текст и пара дополнительных TV, то для двуязычной версии все это надо продублировать, причем редактирование будет не таким удобным, так как поля дополнительных параметров не будут выглядеть точно так же, как и основные. А если разные языки редактируют разные люди, потом не найти концов, кто в чужом языке ошибок понаставил.
Написал небольшую статью о создании многоязычного сайта, может кому-нибудь она будет полезна –
многоязычный сайт на MODx. Если есть пожелания, что можно было бы раскрыть в следующей статье по этой же тематике, можете их высказывать.