Next Generation CMS :: Форум поддержки

Заинтересовала наша система? Тогда этот форум для Вас!

Вы не зашли.

#1 2010-11-29 13:00:23

FeSs
Участник
Откуда Сызрань
Зарегистрирован: 2010-10-22
Сообщений: 151
Рейтинг :   
Сайт

Многоязычность

Ребят что у нас состоит с многоязычностью на NG CMS?
Как лучше и удобней ее организовать?

Не в сети

#2 2010-11-29 13:19:20

Wolverine
Модератор
Откуда Домодедово
Зарегистрирован: 2008-10-13
Сообщений: 3,538
Рейтинг :   160 
Сайт

Re: Многоязычность

Интерфейса - через плагин switcher,новостей - через создание подкатегорий rus, en наверное

Не в сети

#3 2010-11-29 19:28:00

vitaliy1978
Участник
Зарегистрирован: 2010-05-11
Сообщений: 45
Рейтинг :   
Сайт

Re: Многоязычность

Wolverine пишет:

Интерфейса - через плагин switcher,новостей - через создание подкатегорий rus, en наверное

Ээээээ. Непонял... А для чего тогда xxx/lang/russian.ini? или задумка на будующее?

Изменено vitaliy1978 (2010-11-29 19:30:29)

Не в сети

#4 2010-11-29 19:29:51

vitaliy1978
Участник
Зарегистрирован: 2010-05-11
Сообщений: 45
Рейтинг :   
Сайт

Re: Многоязычность

От singledomain и geo привязанности почти избывился. с глюками борюсь. но блин. tpl/russian всегда думал что для разноязыков сделан...

Не в сети

#5 2010-11-29 20:40:30

Евгений
Модератор
Откуда Россия
Зарегистрирован: 2009-04-08
Сообщений: 1,014
Рейтинг :   38 
Сайт

Re: Многоязычность

vitaliy1978, да, он для этого и сделан, но для новостей разно языковое наполнение пока что не реализовано, увы, то есть в принципе "есть все, и одновременно нет ничего")


I NGeneration CMS

Не в сети

#6 2010-11-29 23:30:51

FeSs
Участник
Откуда Сызрань
Зарегистрирован: 2010-10-22
Сообщений: 151
Рейтинг :   
Сайт

Re: Многоязычность

Хотелось бы нибудь по адрессу site.ru/en/ или site.ru/ru/ да и еще с возможностью создания других языков....такой плагин я ставил на drupal, но т.к сам движок ужасно тяжелый, плагин тоже был ужасно тяжёлый, но рабочий о_О

Не в сети

#7 2010-11-30 00:24:48

d7p4x
Модератор
Зарегистрирован: 2008-10-13
Сообщений: 199
Рейтинг :   
Сайт

Re: Многоязычность

Вопрос решается грязными хаками в два или три счета smile

Не в сети

#8 2010-11-30 00:45:24

Wolverine
Модератор
Откуда Домодедово
Зарегистрирован: 2008-10-13
Сообщений: 3,538
Рейтинг :   160 
Сайт

Re: Многоязычность

И? Выкладывай хаки

Не в сети

#9 2010-11-30 17:25:32

d7p4x
Модератор
Зарегистрирован: 2008-10-13
Сообщений: 199
Рейтинг :   
Сайт

Re: Многоязычность

Если бы он был уже готов я бы выложил бы его сразу, а так, как сделаю так и покажу, просто буквально на днях задался тем же вопросом, и еще не успел сделать.

Не в сети

#10 2010-11-30 18:30:27

FeSs
Участник
Откуда Сызрань
Зарегистрирован: 2010-10-22
Сообщений: 151
Рейтинг :   
Сайт

Re: Многоязычность

d7p4x, было бы замечательно, очень ждем о_О

Не в сети

#11 2010-11-30 18:30:56

d7p4x
Модератор
Зарегистрирован: 2008-10-13
Сообщений: 199
Рейтинг :   
Сайт

Re: Многоязычность

Оказалось все очень быстро.

Итак: у меня пока что 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=)
пример работы можно посмотреть на сайте в профиле "веб-сайт".

Не в сети

#12 2010-11-30 20:24:38

KhadeR
Участник
Зарегистрирован: 2009-09-16
Сообщений: 207
Рейтинг :   17 

Re: Многоязычность

d7p4x, все ОК, только желательно сразу в $_COOKIE['sw_template'] записывать значение, а то получается:

Не в сети

#13 2010-11-30 21:02:32

d7p4x
Модератор
Зарегистрирован: 2008-10-13
Сообщений: 199
Рейтинг :   
Сайт

Re: Многоязычность

О, спасибо

Не в сети

#14 2010-11-30 21:56:00

FeSs
Участник
Откуда Сызрань
Зарегистрирован: 2010-10-22
Сообщений: 151
Рейтинг :   
Сайт

Re: Многоязычность

d7p4x, при изменения язык меняются новости и приветственная надпись, а менюшка нет. Как сделать что бы менялась?
и как собственно ты изменяешь приветственную надпись

З.Ы пока не ставил твой хак, просто интересуюсь

Не в сети

#15 2010-11-30 22:19:32

d7p4x
Модератор
Зарегистрирован: 2008-10-13
Сообщений: 199
Рейтинг :   
Сайт

Re: Многоязычность

Менюшку я еще не доделал ) Она у меня выводится простым html в шаблоне. Вернее ее скорее всего и не будет, а вот верхнее меню меняется как и положено.

Не в сети

#16 2010-11-30 22:33:07

Wolverine
Модератор
Откуда Домодедово
Зарегистрирован: 2008-10-13
Сообщений: 3,538
Рейтинг :   160 
Сайт

Re: Многоязычность

Разве не имелось ввиду у ОДНОЙ новости НЕСКОЛЬКО языков. А тут N новостей (N - количество языков) с полным дублированием полей в таблице news.  Плагины типа top_news будут выводить все N новостей
, счетчик новостей в категории будет показывать в N раз больше новостей и т.д.

Действительно грязный)))

Не в сети

#17 2010-11-30 23:37:15

FeSs
Участник
Откуда Сызрань
Зарегистрирован: 2010-10-22
Сообщений: 151
Рейтинг :   
Сайт

Re: Многоязычность

Мне кажется тут не хак нужен, а полноценный плагин с возможностью создавать любое количество языков, у которых будет свой адрес www.site.ru/en/ . С Возможностью ручками менять все надписи на сайте.

Не в сети

#18 2010-12-01 00:59:07

d7p4x
Модератор
Зарегистрирован: 2008-10-13
Сообщений: 199
Рейтинг :   
Сайт

Re: Многоязычность

Wolverine, так то да, но какая разница будет N новостей, или одна новость и N Дополнительных полей для других языков? Да это я считаю и не рационально делать отдельные поля для языков, это капец страница добавления новости растянется.
Top-news тоже немного отредактировать чтобы показывал новости только с включенным языком, думаю там нет проблемы.

Я привел быстрый хак, если надо разделить новости на языки в дополнение к плагину switcher, по-моему довольно быстро и без большого количества кода. Был вопрос - я привел свое решение, которое работает и в полной мере отвечает на тему топика. Других решений все-равно не видно )

FeSs, какая разница хак или плагин, тут быстро поправить 5 файлов и все если действительно необходима многоязычность, если не к спеху, то да можно подождать плагин. У меня идей про плагин нет, если только он будет выступать в качестве шлюза(по сути тот же news.php только с анализом флага языка новости), других путей я вот не вижу, кроме как редактирования show news (). 

Есть еще мультидомены, я думал в начале через них, но не смогу разобраться в логике работы этой фичи и сделал "как смог".

Не в сети

#19 2010-12-01 03:09:53

FeSs
Участник
Откуда Сызрань
Зарегистрирован: 2010-10-22
Сообщений: 151
Рейтинг :   
Сайт

Re: Многоязычность

d7p4x, спасибо тебе и за это smile

Не в сети

#20 2010-12-02 21:54:40

d7p4x
Модератор
Зарегистрирован: 2008-10-13
Сообщений: 199
Рейтинг :   
Сайт

Re: Многоязычность

Еще можно сделать дописки к alt_name вида _ru и _en то тогда будет все намного проще smile

Не в сети

#21 2011-04-23 14:00:54

legenda
Участник
Откуда ua
Зарегистрирован: 2009-12-22
Сообщений: 2,160
Рейтинг :   39 

Re: Многоязычность

d7p4x, чтото я несовсем понял, и на твоем сайте чтото невижу 2 языков, шаблон то меняется но это ж не проблема, а новости теже что и на руском что и на анг.

меня интерисует если в админке один интерфейс, сайт надо на 3 языках такое возможно, и как?
- надо 3 новости заполнять?
- надо 3 категории на разных языках?
- как состоит дело с плагинами, тегами, комментариями и т.д. ?

Изменено legenda (2011-04-23 14:02:27)

Не в сети

#22 2011-04-23 16:02:57

Wolverine
Модератор
Откуда Домодедово
Зарегистрирован: 2008-10-13
Сообщений: 3,538
Рейтинг :   160 
Сайт

Re: Многоязычность

По хорошему для каждого нового языка необходима еще одна колонка в таблице news, типа content_ID_Языка, тогда комментарии будут только в одной новости. Но смысл смешивать русские и английские каменты? Подходы в общем разные для разных задач, многоязычные в основном корпоративные сайты, на новостных не видел, чтобы одна публикация на разных языках была...

Не в сети

#23 2011-05-04 17:19:41

legenda
Участник
Откуда ua
Зарегистрирован: 2009-12-22
Сообщений: 2,160
Рейтинг :   39 

Re: Многоязычность

а для какай версии это решение? чтото я половну тех пунктов что ту описано найти немогу

Не в сети

#24 2011-05-04 17:32:16

Wolverine
Модератор
Откуда Домодедово
Зарегистрирован: 2008-10-13
Сообщений: 3,538
Рейтинг :   160 
Сайт

Re: Многоязычность

Для любой, что не можешь найти?

Не в сети

#25 2011-05-18 05:47:52

legenda
Участник
Откуда ua
Зарегистрирован: 2009-12-22
Сообщений: 2,160
Рейтинг :   39 

Re: Многоязычность

Ну например такого файла
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)

Не в сети

Подвал раздела

Работает на FluxBB