Вы не зашли.
Ребят что у нас состоит с многоязычностью на NG CMS?
Как лучше и удобней ее организовать?
Die Krupps Fan Community[ [NG CMS]
Не в сети
Интерфейса - через плагин switcher,новостей - через создание подкатегорий rus, en наверное
Ээээээ. Непонял... А для чего тогда xxx/lang/russian.ini? или задумка на будующее?
Изменено vitaliy1978 (2010-11-29 19:30:29)
Не в сети
От singledomain и geo привязанности почти избывился. с глюками борюсь. но блин. tpl/russian всегда думал что для разноязыков сделан...
Не в сети
vitaliy1978, да, он для этого и сделан, но для новостей разно языковое наполнение пока что не реализовано, увы, то есть в принципе "есть все, и одновременно нет ничего")
I ♥ NGeneration CMS
Не в сети
Хотелось бы нибудь по адрессу site.ru/en/ или site.ru/ru/ да и еще с возможностью создания других языков....такой плагин я ставил на drupal, но т.к сам движок ужасно тяжелый, плагин тоже был ужасно тяжёлый, но рабочий о_О
Die Krupps Fan Community[ [NG CMS]
Не в сети
Не в сети
Оказалось все очень быстро.
Итак: у меня пока что 2 языка, их идентификаторы 1 и 2
1. engine\news.php находим функцию news_showlist
вставляем после например global **
if (!$cook=$_COOKIE['sw_template']) $cook=1;
Здесь 1 - код значения по умолчанию, если пользователь у нас первый раз.
Находим строку
$query['sql'] = $query['where']." AND approve = 1";
заменяем на
$query['sql'] = $query['where']." AND approve = 1 AND f_lang=".$cook;
2. engine\actions\addnews.php функция news_add()
вставляем после $SQL['allow_com'] = $_REQUEST['allow_com'];
$SQL['f_lang'] = $_REQUEST['f_lang'];
3. engine\actions\editnews.php функция editNews()
находим $SQL['catid'] = $cats;
после вставляем
$SQL['f_lang'] = $_REQUEST['f_lang'];
Здесь же ищем функцию editNewsForm()
меняем 'views' => $row['views']
на
'keywords' => secure_html($row['keywords']),
'views' => $row['views'],
'f_lang' => $row['f_lang']
4. engine\skins\default\tpl\addnews.tpl
Например перед [/options] вставляем:
<br /><input type="text" name="f_lang" value="1" size="10" maxlength="5"/> <label for="flag_HTML">Язык новости</label>
4. engine\skins\default\tpl\editnews\edit.tpl
Перед </td>[/options] вставляем:
<tr>
<td><input type="text" name="f_lang" value={f_lang} size="10" maxlength="5"/> <label for="flag_HTML">Язык новости</label></td>
<td width="30"></td>
<td width="30"></td>
</tr>
5. Выполняем в phpmyadmin запрос:
ALTER TABLE `ff__news` ADD `f_lang` INT NOT NULL
Теперь при создании новости указываем просто номер языка, и все, будут выводится только те новости, которые имеют язык такой же как и язык интерфейса.
upd1: забыл указать что при выполнении запроса в phpmyadmin ff__news надо поменять на свой префикс_news=)
пример работы можно посмотреть на сайте в профиле "веб-сайт".
Не в сети
d7p4x, при изменения язык меняются новости и приветственная надпись, а менюшка нет. Как сделать что бы менялась?
и как собственно ты изменяешь приветственную надпись
З.Ы пока не ставил твой хак, просто интересуюсь
Die Krupps Fan Community[ [NG CMS]
Не в сети
Разве не имелось ввиду у ОДНОЙ новости НЕСКОЛЬКО языков. А тут N новостей (N - количество языков) с полным дублированием полей в таблице news. Плагины типа top_news будут выводить все N новостей
, счетчик новостей в категории будет показывать в N раз больше новостей и т.д.
Действительно грязный)))
Не в сети
Мне кажется тут не хак нужен, а полноценный плагин с возможностью создавать любое количество языков, у которых будет свой адрес www.site.ru/en/ . С Возможностью ручками менять все надписи на сайте.
Die Krupps Fan Community[ [NG CMS]
Не в сети
Wolverine, так то да, но какая разница будет N новостей, или одна новость и N Дополнительных полей для других языков? Да это я считаю и не рационально делать отдельные поля для языков, это капец страница добавления новости растянется.
Top-news тоже немного отредактировать чтобы показывал новости только с включенным языком, думаю там нет проблемы.
Я привел быстрый хак, если надо разделить новости на языки в дополнение к плагину switcher, по-моему довольно быстро и без большого количества кода. Был вопрос - я привел свое решение, которое работает и в полной мере отвечает на тему топика. Других решений все-равно не видно )
FeSs, какая разница хак или плагин, тут быстро поправить 5 файлов и все если действительно необходима многоязычность, если не к спеху, то да можно подождать плагин. У меня идей про плагин нет, если только он будет выступать в качестве шлюза(по сути тот же news.php только с анализом флага языка новости), других путей я вот не вижу, кроме как редактирования show news ().
Есть еще мультидомены, я думал в начале через них, но не смогу разобраться в логике работы этой фичи и сделал "как смог".
Не в сети
Не в сети
d7p4x, чтото я несовсем понял, и на твоем сайте чтото невижу 2 языков, шаблон то меняется но это ж не проблема, а новости теже что и на руском что и на анг.
меня интерисует если в админке один интерфейс, сайт надо на 3 языках такое возможно, и как?
- надо 3 новости заполнять?
- надо 3 категории на разных языках?
- как состоит дело с плагинами, тегами, комментариями и т.д. ?
Изменено legenda (2011-04-23 14:02:27)
Не в сети
По хорошему для каждого нового языка необходима еще одна колонка в таблице news, типа content_ID_Языка, тогда комментарии будут только в одной новости. Но смысл смешивать русские и английские каменты? Подходы в общем разные для разных задач, многоязычные в основном корпоративные сайты, на новостных не видел, чтобы одна публикация на разных языках была...
Не в сети
Ну например такого файла
1. engine\news.php впринципе нету,
а если имеется виду engine\includes\news.php то в нем нету
$query['sql'] = $query['where']." AND approve = 1";
дальше тоже самое, но мне походу такой вариант и не подходит поэтому не продолжаю.
---
На счет двуязычия то у меня также есть проблема такая, решыл таки сделать 2 языка, походу наиболее "нормальным" вариантом вижу установка такогоже движка на субдмен, з других вариантов что на форуме обсуждаются ни один не работает на 100%, даже на 70% нереально, если сами новости и дизайн можна както сделать то с плагинами ниче не получится полюбому.
Но в моем варианте двух отдельных движков есть одна проблема - как сделать так чтоб обьеденить пользователей, чтоб тот что зарегился на одном языке был и на другом?
возможно ли еще както с изобажениями чтото придумать чтоб закидивать не на оба сайта а на один
кто может помочь?
Изменено legenda (2011-05-18 06:53:17)
Не в сети