Перейти к содержимому
Русский язык для Invision Community 5

Многоязычный форум

Помогите плз, нужно что бы в шаблоне регистрации была возможность выбора языка..... Как где хз :) ?

Рекомендованные сообщения

И не пытайся... Сам будешь не рад делать когда узнаешь сколько мороки. Можно сделать так:

При заходе в определенный раздел форума будет автоматически язык с русского на английский меняться. Делается это так: открываешь index.php в корне сайте и находишь строку:

 

 

//--------------------------------

// Set up our language choice

//--------------------------------

 

if ( !isset($ipsclass->vars['default_language']) OR $ipsclass->vars['default_language'] == "")

{

$ipsclass->vars['default_language'] = 'ru';

}

 

Ниже добавляешь:

 

if ($ipsclass->input['showforum'] == 7 or $ipsclass->input['f'] == 7 )

{

$ipsclass->vars['default_language'] = 'en';

$ipsclass->member[language] = 'en';

 

Цифры "7" - означают номер раздела. В данном случае будет переключаться на английский, так как указан параметр "en". Если у тебя несколько разделов на английском, то тогда добавляй несколько вышеуказанных фрагментов. Только не забудь в каждом правильно указывать номер раздела. Ниже я выложил мод. Но не факт что он работать будет. У меня на 2.3.4 не работал. Сегодня собрался на 2.3.6 пробовать. Если что, то пиши.

 

 

Вот тебе МОД выбора языка устанавливается только при наличии UMI

 

А вот и UMI

Изменено пользователем Lcars

  • Автор

Спасибо большое за мод, все работает. :) Только вот нужна смена языка по умолчанию именно на странице регистрации, правда можно тупо продублировать типо русский/english в языковом файле. :) Но хочется именно вменяемую смену языка как для пользователей. Стоит по умолчанию русский звонят иноземцы тупо не могут зарегится, приходится по телефону объяснять куда мышой тыкать :) :)

Напиши свою ICQ. У меня где то есть мод что бы на главной странице гости могли менять язык. Мне на этом форуме давали ссылки где то.

Изменено пользователем Lcars

Можно английский по дефолту сделать. Кому надо - тот потом на русский переключит.

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

  • Автор

Балбесы везде, мучаюсь со всеми и с русскими и англичанами и немцами..... Поколения просто разные, кто помоложе может и на китайском зарегиться без проблем, а вот те что по старше из совка взрывают себе и остальным мозг сразу столкнувшись с обычными интернет терминами.... да и вапще даешь колхозанам интернет!!! :)

 

Вообще лучше было бы по умолчанию для всех открыть выбор языка, не пойму смысла зачем запрятали только для зарегистрированных пользователей такую возможность :)

Изменено пользователем dgcs

  • Автор

Вот нашел тут такое решение, кто чего скажет?

 

На интернациональных форумах может оказаться востребованной функция смены языков незарегистрированными пользователями. Добавляя эту возможность, вы существенно облегчите доступ к вашему форуму иностранцам. Им не придется прибегать к использованию переводчиков и других онлайн/оффлайн средств для успешной ориентации по вашему форуму. Ведь даже самое простое действие – регистрация, может вызвать затруднения.

 

Установка

Стандартными возможностями форума эту функцию не реализовать, придется вносить необходимые изменения в файлы. Перед началом, не забудьте сделать резервные копии изменяемых файлов.

 

Открываем файл: ./index.php и находим строки:

//--------------------------------
// Did we choose a language?
//--------------------------------

if ( (isset($ipsclass->input['setlanguage']) AND $ipsclass->input['setlanguage']) 
AND (isset($ipsclass->input['langid']) 
AND $ipsclass->input['langid']) AND $ipsclass->member['id'] )
{
   if ( is_array( $ipsclass->cache['languages'] ) and count( $ipsclass->cache['languages'] ) )
   {
       foreach( $ipsclass->cache['languages'] as $data )
       {
           if ( $data['ldir'] == $ipsclass->input['langid'] )
           {
               $ipsclass->DB->do_update( 'members', array( 'language' => $data['ldir'] ), 
'id='.$ipsclass->member['id'] );
               $ipsclass->member['language'] = $data['ldir'];
           }
       }
   }
}

 

Заменяем их на:

//--------------------------------
// Did we choose a language?
//--------------------------------

if ( (isset($ipsclass->input['setlanguage']) AND $ipsclass->input['setlanguage']) 
AND (isset($ipsclass->input['langid']) AND $ipsclass->input['langid']) )
{
   if ( is_array( $ipsclass->cache['languages'] ) and count( $ipsclass->cache['languages'] ) )
   {
       foreach( $ipsclass->cache['languages'] as $data )
       {
           if ( $data['ldir'] == $ipsclass->input['langid'] )
           {
               if( $ipsclass->member['id'] == 0 )
               {

                   $ipsclass->my_setcookie( 'language', $data['ldir'] );
               }
               else
               {
                   $ipsclass->DB->do_update( 'members', array( 'language' => $data['ldir'] ), 
'id='.$ipsclass->member['id'] );
               }

               $ipsclass->member['language'] = $data['ldir'];
           }
       }
   }
}

 

Сохраняем внесенные изменения и закрываем файл ./index.php.

 

Открываем следующий файл ./sources/ipsclass.php и находим строку:

$this->lang_id = isset($this->member['language']) ? $this->member['language'] : 
$this->vars['default_language'];

 

Перед ней вставляем код:

if( $this->member['id'] == 0 )
   {
   $this->member['language'] = $this->my_getcookie( 'language' );
   }

 

Сохраняем внесенные изменения и закрываем файл ./sources/ipsclass.php.

 

Открываем следующий файл ./sources/classes/class_display.php и находим строки:

//-----------------------------------------
       // Showing skin jump?
       //-----------------------------------------

       if ( $this->ipsclass->member['id'] > 0 )
       {
           $lang_jump = $this->ipsclass->compiled_templates['skin_global']->global_lang_chooser( 
$this->_build_language_list() );
       }
       else
       {
           $lang_jump = "";
       }

 

Заменяем их на:

//-----------------------------------------
       // Showing skin jump?
       //-----------------------------------------


       $lang_jump = $this->ipsclass->compiled_templates['skin_global']->global_lang_chooser( 
$this->_build_language_list() );

 

Сохраняем внесенные изменения и закрываем файл ./sources/classes/class_display.php. После проделанных действий, гостям будет доступна функция выбора языка.

 

После установки хака стал доступен выбор языка для гостей, только работает со второго раза.......

То есть нужно 2 раза тыкнуть на нужный язык для его переключения, в пользовательском режиме все происходит с первого раза.

Кто подскажет что поправить......?

Похоже на мод от Сэта для 2.1

 

Вообще тема не для этого раздела.

Причем тут вообще дизайн?

  • Автор
Похоже на мод от Сэта для 2.1

 

Вообще тема не для этого раздела.

Причем тут вообще дизайн?

 

А что за мод? Можно по подробней..... :)

 

Тему создавал думая что можно небольшими манипуляциями кода в шаблоне вытащить смену языка для гостей, оказалось немного сложнее..... :)

Так это под 2.1... Он уже не популярен...

Создайте аккаунт или войдите в него для комментирования

Аккаунт

Навигация

Поиск

Поиск

Настроить push-уведомления браузера

Chrome (Android)
  1. Нажмите на иконку замка рядом с адресной строкой.
  2. Нажмите Права доступа -> Уведомления.
  3. Измените свои настройки.
Chrome (компьютер)
  1. Нажмите на иконку замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите Уведомления и измените свои настройки.