[Помощь] Многоязычный форум

Статус
В этой теме нельзя размещать новые ответы.

texas

Писатель
Регистрация
10 Окт 2008
Сообщения
9
Реакции
0
Столкнулся с необходимость сделать форум более доступным для иностранцев, и в то же время, чтобы он оставался удобным для русскоязычных пользователей, которых на форуме большинство
Названия форумов и разделов вручную прописал на русском и английском языках.
Например,
Для кнопок тоже сделал на каждой текст на русском и английском языках. Можно было заморочиться, чтобы просто в зависимости от выбранной языковой схемы отображались соотв-но русские или англ. кнопки, но решил что-то это пока что лишнее и сделал так
Форум версии 2.3.5. nulled by Davidoff
Выбор языковой схемы - English или Russian работает, но столкнулся с несколькими неприятностями:
1) вручную добавлял в шаблоне skin_global -> global_board_header
cсылку на фотоальбом и для перехода на главную
Код:
<a href="тутбылассылка1" target=_blank">Фотоальбом</a>
<a href="тутбылассылка2">На главную</a>
Соответственно при выборе языковой схемы English они остаются на русском и не знаю как правильно и куда внести рус. и англ варианты, чтобы создать переменную и как собственно это всё сделать..
2) как сделать вариант выбора русский или английский языки на этапе Регистрации на форуме? там по умолчанию всё на русском отображается и нет возможности поменять
заранее благодарен за помощь!
 
В index.php у форума, чтоб для гостей язык по браузеру определялся.

PHP:
//Найти:
//--------------------------------
//  Set up our language choice
//--------------------------------

//и

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

//Между ними вписать:
$accept_language = strtolower(getenv('HTTP_ACCEPT_LANGUAGE'));
if ( !empty($accept_language) AND !$ipsclass->member['id'] )
{
	$pos = strpos($accept_language, ";");
	if ($pos > 0)
	{
		$lng = substr($accept_language, 0, $pos);
		$accepted_languages = explode (',', $lng);

		if(in_array("ru",$accepted_languages)) $accepted_languages[]="2";//т.к. русский у нас как "2" обозван

		if(is_array($ipsclass->cache['languages']) and count($ipsclass->cache['languages']))
		{
			foreach($ipsclass->cache['languages'] as $data)
			{

				if(in_array($data['ldir'],$accepted_languages))
				{
					$ipsclass->vars['default_language'] = $data['ldir'];
				}
			}
		}
	}
	else//I give these in IE7
	{
		$accepted_languages = explode (',', $accept_language);

		if(in_array("ru",$accepted_languages)) $accepted_languages[]="2";//т.к. русский у нас как "2" обозван

		if(is_array($ipsclass->cache['languages']) and count($ipsclass->cache['languages']))
		{
			foreach($ipsclass->cache['languages'] as $data)
			{
				if(in_array($data['ldir'],$accepted_languages))
				{
					$ipsclass->vars['default_language'] = $data['ldir'];
				}
			}
		}
	}
}
elseif ( !isset($ipsclass->vars['default_language']) OR $ipsclass->vars['default_language'] == "")
{
	$ipsclass->vars['default_language'] = 'en';
}

И дальше везде можно юзать переменные языка из lang_cache, а не извращаться с двойными названиями (;
 
Почему-то некомпетентным модератором был удалён мой пост.
Но я повторю вопрос, Csh, этот скрипт актуален для 3.0.5?
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху