alone-elvi 17 марта 2013 2 10
Доброго времени суток.

Передо мной поставлена задача создать мультиязычный сайт.
Так, как я решил изучать MODX Revo, решил сделать сайт на нем. Хотелось бы узнать у уважаемой публики, как такой сайт можно реализовать на MODX Revo. Если есть возможность не использовать сторонние решения, хотелось бы узнать, как можно сайт сделать без них.

Заранее спасибо.
10 комментариев
Fi1osof1
Fi1osof 18 марта 2013г в 04:29 #
Алишер, привет!
По мультиязычности можно будет на днях провести совместную он-лайн конференцию.
А пока немного информации: MODX очень хорошо поддерживает мультиязычность, и дает несколько вариантов решения. Для оптимального выбора в основном надо ориентироваться на уникальность структуры сайтов на разных языках и как много полей у создаваемых документов. Если на разных языках сайты будут отличаться по структуре, то лучше всего это делать на разных контекстах с уникальными документами для каждого сайта в отдельности. Если же структура везде одинаковая, только языковые поля будут отличаться по содержанию, то однозначно лучше создавать TV-параметры под разные языки, и в одном документе сразу наполнять тексты на разных языках в разных полях.
А глобально по всему сайту текущий язык определять по системной переменной cultureKey.
$modx->getOption('cultureKey', null, 'ru');
Или [[++cultureKey]] в чанках. Или в Смарти {config name=cultureKey}
a
alone-elvi 19 марта 2013г в 21:33 #
Спасибо.
Fi1osof1
Fi1osof 19 марта 2013г в 21:40 #
Пожалуйста.
gsnx1
gsnx 26 марта 2013г в 22:24 #
Тоже интересует тема мультиязычности, так как например у нас в Казахстане вообще приветствуются сайты с тремя языками отображения казахский, русский, английский. Николай спасибо за комментарий, буду тоже пробовать использовать согласно пояснений.
Fi1osof1
Fi1osof 26 марта 2013г в 23:05 #
По поводу мультиязычности ждем окончательных наработок от одного уважаемого программиста. Он как раз сейчас разрабатывает один мультиязычный сайт, и использует CRC и еще пару плюшек. Получается очень интересно, но придется подождать конечного продукта.
gsnx1
gsnx 26 марта 2013г в 23:29 #
Не вопрос, подождем конечно, тем более с практическим опытом, это важнее и грамотнее будет применить. :)
gsnx1
gsnx 16 октября 2016г в 20:58 #
Николай, вопрос — А что-то изменилось по теме мультиязычности за прошедшее время? Какие-то появились решения (наработки) от программистов? Можете поделиться с нами со всеми этим?
Fi1osof1
Fi1osof 16 октября 2016г в 22:28 #
В ядро пока еще не добавлено. Но недавно вот на одном сайте делали.
1. В modResource с установкой последней версии shopModx создается колонка currency. Для управления этим полем устанавливается modResourceField и создается ТВ-поле currency (тип ввода Дополнительное поле документа). В это поле, если это Евро, к примеру, мы пишем 2).
2. В процессор web/catalog/products/getdata в метод setSelection дописали
$eur_rate = $this->modx->getOption("shopmodx.eur_rate", 1);
$c->select(array(
    "if({$alias}.currency = 2, round({$alias}.price * {$eur_rate}, 2), {$alias}.price) as price",
));

Так на уровне выборки через процессор цены преобразуются в рубли. Но это еще не все, то есть еще в нескольких местах надо прописывать (особенно надо учесть с методом добавления товара в корзину и т.п.).
В общем, будем дорабатывать это все, чтобы было более централизованно.
gsnx1
gsnx 17 октября 2016г в 21:14 #
Доброго времени суток! Очень интересно надо сказать, получается методика конвертирования валют, применима будет для переключения языков отображения контента на сайте? Нелегкая задачка, учитывая логику вопроса.
Спасибо за интересное решение!

Будем ждать от вас Николай и ваших коллег программистов достойного решения вопроса мультиязычности сайта!
Fi1osof1
Fi1osof 17 октября 2016г в 22:14 #
Постараемся. Тема актуальная.
Вообще за последние месяцы мы довольно много проектов реализовали (просто не писали про них еще), и кейсов уже предостаточно, в следующем релизе постараемся их максимально реализовать.
Авторизуйтесь или зарегистрируйтесь (можно через соцсети ), чтобы оставлять комментарии.