Jump to content
Дизайн и модификация IPS Community IPBSkinsBETA
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
dgcs

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

Recommended Posts

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

Share this post


Link to post
Share on other sites

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

При заходе в определенный раздел форума будет автоматически язык с русского на английский меняться. Делается это так: открываешь 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

Edited by Lcars

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Edited by Lcars

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

 

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

Edited by dgcs

Share this post


Link to post
Share on other sites

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

 

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

 

Установка

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

 

Открываем файл: ./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 раза тыкнуть на нужный язык для его переключения, в пользовательском режиме все происходит с первого раза.

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

Share this post


Link to post
Share on other sites

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

 

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

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

Share this post


Link to post
Share on other sites
Похоже на мод от Сэта для 2.1

 

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

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

 

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

 

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...