Доброго времени суток.
Передо мной поставлена задача создать мультиязычный сайт.
Так, как я решил изучать MODX Revo, решил сделать сайт на нем. Хотелось бы узнать у уважаемой публики, как такой сайт можно реализовать на MODX Revo. Если есть возможность не использовать сторонние решения, хотелось бы узнать, как можно сайт сделать без них.
Заранее спасибо.
Алишер, привет!
По мультиязычности можно будет на днях провести совместную он-лайн конференцию.
А пока немного информации: MODX очень хорошо поддерживает мультиязычность, и дает несколько вариантов решения. Для оптимального выбора в основном надо ориентироваться на уникальность структуры сайтов на разных языках и как много полей у создаваемых документов. Если на разных языках сайты будут отличаться по структуре, то лучше всего это делать на разных контекстах с уникальными документами для каждого сайта в отдельности. Если же структура везде одинаковая, только языковые поля будут отличаться по содержанию, то однозначно лучше создавать TV-параметры под разные языки, и в одном документе сразу наполнять тексты на разных языках в разных полях.
А глобально по всему сайту текущий язык определять по системной переменной cultureKey.
$modx->getOption('cultureKey', null, 'ru');
Или [[++cultureKey]] в чанках. Или в Смарти {config name=cultureKey}
Пожалуйста.
Тоже интересует тема мультиязычности, так как например у нас в Казахстане вообще приветствуются сайты с тремя языками отображения казахский, русский, английский. Николай спасибо за комментарий, буду тоже пробовать использовать согласно пояснений.
По поводу мультиязычности ждем окончательных наработок от одного уважаемого программиста. Он как раз сейчас разрабатывает один мультиязычный сайт, и использует CRC и еще пару плюшек. Получается очень интересно, но придется подождать конечного продукта.
Не вопрос, подождем конечно, тем более с практическим опытом, это важнее и грамотнее будет применить. :)
Николай, вопрос — А что-то изменилось по теме мультиязычности за прошедшее время? Какие-то появились решения (наработки) от программистов? Можете поделиться с нами со всеми этим?
В ядро пока еще не добавлено. Но недавно вот на одном сайте делали.
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", ));
Так на уровне выборки через процессор цены преобразуются в рубли. Но это еще не все, то есть еще в нескольких местах надо прописывать (особенно надо учесть с методом добавления товара в корзину и т.п.).
В общем, будем дорабатывать это все, чтобы было более централизованно.
Доброго времени суток! Очень интересно надо сказать, получается методика конвертирования валют, применима будет для переключения языков отображения контента на сайте? Нелегкая задачка, учитывая логику вопроса.
Спасибо за интересное решение!
Будем ждать от вас Николай и ваших коллег программистов достойного решения вопроса мультиязычности сайта!
Постараемся. Тема актуальная.
Вообще за последние месяцы мы довольно много проектов реализовали (просто не писали про них еще), и кейсов уже предостаточно, в следующем релизе постараемся их максимально реализовать.
А можно как-то выводить стандартные поля админки для нескольких языков? Что я имею в виду: открывает заказчик админку, создает ресурс, при создании система определяет кол-во языков и создает сразу два поля content, pagetitle и тд, плюс дубли доступных тв-полей.
и еще вопрос, если для ресурса 10-15 полей на язык повешено, не считая стандартных, то проверяя каждое модификатором, на сколько это повлияет на скорость загрузки?
Понимаю, что заморочно, но заказчик принципиально не хочет плодить деревья в контекстах, а хочет сразу все версии на одном ресурсе заполнять.