CrazyFreeMan |
|
---|---|
Рано обрадоваля я мультиленгу. Он работает только на страницах модулей. Очень кривое решение. Вот к примеру у меня сайт на 2 языках, и я хочу выводить название категорий структуры в произвольном месте что б каждый раз не писать все в файлах а использовать админку а так же сразу перевести названия для удобности, установил плагин и18н перевел названия, в меню добавляю ссылку на раздел пейдж и тайтл {PHP.cot_cat.diagnostika.title} - удобно же - изменил в админке и на сайте изменилось, но если у нас несколько языков то в переменную {PHP.cot_cat.diagnostika.title} не перезаписывается на текущую локаль и тогда нужно извращаться типа <!-- IF {PHP.i18n_locale} == 'ua' -->{PHP.i18n_structure.diagnostika.ua.title}<!-- ELSE -->{PHP.cot_cat.diagnostika.title}<!-- ENDIF --> ну это хорошо если 2 языка и то решение совсем не очень. Посмотрел на возможность интеграции с Polls есть идеи но они так же костыли. Можно отказіваться от идеи такой интернационализации. Предлагаю подумать на счет как я писал выше, сколько локалей на сайте столько и делать полей при добавлении статьи/голосовалки/других модулей. Так работает у всех ЦМС, если не заполнил то используется по умолчанию первое, примерно так - есть плагин в котором описать что есть 3 локали и который дает возможность записать текущую локаль в глобальную переменную доступную всем, в самом плагине контент которого нужно переводить, проверять если добавились локали то нужно добавить для них поля тем полям которые подлежат переводу, типа по умолчанию есть поле title,text,data,id ( в модуле записано что для перевода нужны только title,text) - добавляем локаль - и в самом модуле записан маханизм - для каждой новой локали создать в таблице доп поле по типу язык_поле получиться кроме title,text,data,id будет title,text,ru_title,ru_text,data,id и т.д. потом если на сайте пользователь сменил язык (в условие добавить значение локали "ru" или заменять) то в основной механизм доставать нужный пул контента в те же переменные - так на мой взгляд будет какойто стандрат работы и в любом месте будут использоваться одинаковые переменные но с разным содержанием для каждой локали, я думаю в каждом модуле / плагине добавить такой функционал для работы будет не сложно - тем более он будет примерно одинаковый для всех и скопипастить не составит труда и заменить на свои значения Писал на коленке как вариант решения, может не все точно и правильно, нужно подумать - может уже были другие версии, опишите их и почему они не подходят, я пока не знаю всех тонкостей работы ядра кота и его ограничений но очень хочется довести до ума этот раздел фремворка Ожидаю оживления :) Всем спасибо!
|
|
Bu gönderi Ярослав Романенко tarafından düzenlendi (2015-10-17 19:33, 9 yıllar önce) |