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

Необходимо установить функцию транслита чтобы юзеры не писали на латинице,так как она запрещена на форуме.Ни у кого нет скрипта для версии 2.3.6? Вообще расскажите о транслите кто что знает.Спасибо

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

+--------------------------------------------------------------------------
|   Кнопка "Транслит"
|   ========================================
|   Сотворено: d1 для своего форума :)
|   Проверялось на IPB2 (PF2)
|   Дата: 12 Aug 2004
|   Демо: http://rhh4room.ovl.ru
+---------------------------------------------------------------------------
|
|   Добавляет в формы ответа кнопку "TRANSLIT". При нажатии выделенный в 
|   форме текст преобразуется в кириллический с учетом правил транслитерации.
|   Игнорирует BBCode и html-тэги.
|
+---------------------------------------------------------------------------
|
|   Для транслитерации используется часть кода (2 функции с небольшой 
|   переделкой) с сайта translit.ru. Автор: Игорь Ильин 2002-2004.
|   Действительно удобная и качественная транслит-перекодировка 
|   на translit.ru!
|
+---------------------------------------------------------------------------

1. Редактирование файлов:

Отредактируйте следующим образом файл /lang/*/lang_post.php
!!!ВНИМАНИЕ!!! Если у вас установлено несолько языков, эти изменения нужно 
проделать для каждого!

Найдите:

$lang = array (

Добавьте ниже:

//translit
'hb_translit'=> "Convert selected text from translitiration to cyrillic (alt + t)",
//translit

Для русского языка можно добавить:

//translit
'hb_translit'=> "Преобразовать выделенный текст из транслитерации в кириллицу (alt + t)",
//translit

Отредактируйте следующим образом файл /jscripts/ipb_bbcode.js

Найдите:

var HTML_open = 0;

Добавьте ниже:

//translit
var rus_lr2 = ('Е-е-О-о-Ё-Ё-Ё-Ё-Ж-Ж-Ч-Ч-Ш-Ш-Щ-Щ-Ъ-Ь-Э-Э-Ю-Ю-Я-Я-Я-Я-ё-ё-ж-ч-ш-щ-э-ю-я-я').split('-');
var lat_lr2 = ('/E-/e-/O-/o-ЫO-Ыo-ЙO-Йo-ЗH-Зh-ЦH-Цh-СH-Сh-ШH-Шh-ъ'+String.fromCharCode(35)+'-ь'+String.fromCharCode(39)+'-ЙE-Йe-ЙU-Йu-ЙA-Йa-ЫA-Ыa-ыo-йo-зh-цh-сh-шh-йe-йu-йa-ыa').split('-');
var rus_lr1 = ('А-Б-В-Г-Д-Е-З-И-Й-К-Л-М-Н-О-П-Р-С-Т-У-Ф-Х-Х-Ц-Щ-Ы-Я-а-б-в-г-д-е-з-и-й-к-л-м-н-о-п-р-с-т-у-ф-х-х-ц-щ-ъ-ы-ь-ь-я').split('-');
var lat_lr1 = ('A-B-V-G-D-E-Z-I-J-K-L-M-N-O-P-R-S-T-U-F-H-X-C-W-Y-Q-a-b-v-g-d-e-z-i-j-k-l-m-n-o-p-r-s-t-u-f-h-x-c-w-'+String.fromCharCode(35)+'-y-'+String.fromCharCode(39)+'-'+String.fromCharCode(96)+'-q').split('-');
//translit

В конце файла добавьте:

//==========================================
// TRANSLITIRATE (Main)
//==========================================

function translit()
{
var obj_ta = fombj.Post;

//----------------------------------------
// It's IE!
//----------------------------------------
if ( (ua_vers >= 4) && is_ie && is_win)
{
	if (obj_ta.isTextEdit)
	{
		obj_ta.focus();
		var sel = document.selection;
		var rng = sel.createRange();
		rng.colapse;
		if((sel.type == "Text" || sel.type == "None") && rng != null)
		{
			rng.text = dotranslate(rng.text);
		}
	}
	else
	{
		obj_ta.value = dotranslate(obj_ta.value);
	}
}
//----------------------------------------
// It's MOZZY!
//----------------------------------------

else if ( obj_ta.selectionEnd )
{
	var ss = obj_ta.selectionStart;
	var st = obj_ta.scrollTop;
	var es = obj_ta.selectionEnd;

	if (es <= 2)
	{
		es = obj_ta.textLength;
	}

	var start  = (obj_ta.value).substring(0, ss);
	var middle = (obj_ta.value).substring(ss, es);
	var end	= (obj_ta.value).substring(es, obj_ta.textLength);

	//-----------------------------------
	// text range?
	//-----------------------------------

	if (obj_ta.selectionEnd - obj_ta.selectionStart > 0)
	{
		middle = dotranslate(middle);
	}

	obj_ta.value = start + middle + end;

	var cpos = ss + (middle.length);

	obj_ta.selectionStart = cpos;
	obj_ta.selectionEnd   = cpos;
	obj_ta.scrollTop	  = st;


}
//----------------------------------------
// It's CRAPPY!
//----------------------------------------
else
{
	obj_ta.value = dotranslate(obj_ta.value);
}

obj_ta.focus();

return;
}

//==========================================
// TRANSLITIRATE (String convertion)
//------------------------------------------
// Original code from translit.ru
// by Igor Ilyin (2002-2004)
//==========================================


function dotranslate(text)
{
var txtnew = "";
var symb = 0;
var subsymb = "";
var trans = 1;
for (kk=0;kk<text.length;kk++)
{
	subsymb = text.substr(kk,1);
	if ((subsymb=="[") || (subsymb=="<"))
	{
		trans = 0;
	}
	if ((subsymb=="]") || (subsymb==">"))
	{
		trans = 1;
	}
	if (trans)
	{
		symb = transsymbtocyr(txtnew.substr(txtnew.length-1,1), subsymb);
	}
	else
	{
		symb = txtnew.substr(txtnew.length-1,1) + subsymb;
	}
	txtnew = txtnew.substr(0,txtnew.length-1) + symb;
}
return txtnew;
}

//==========================================
// TRANSLITIRATE (Symbol convertion)
//------------------------------------------
// Original code from translit.ru
// by Igor Ilyin (2002-2004)
//==========================================

function transsymbtocyr(pretxt,txt)
{
var doubletxt = pretxt+txt;
var code = txt.charCodeAt(0);
if (!(((code>=65) && (code<=123))||(code==35)||(code==39))) return doubletxt;
var ii;
for (ii=0; ii<lat_lr2.length; ii++)
{
	if (lat_lr2[ii]==doubletxt) return rus_lr2[ii];
}
for (ii=0; ii<lat_lr1.length; ii++)
{
	if (lat_lr1[ii]==txt) return pretxt+rus_lr1[ii];
}
return doubletxt;
}

2. Редактирование скинов:
!!!ВНИМАНИЕ!!! Если у вас установлено несолько скинов, эти изменения нужно 
проделать для каждого!

Действия выполняются в Admin CP > Skins & Templates 
> Skin Manager > Edit Skin Template HTML > Post Screen

Шаблон get_java script:

Найдите:

var list_prompt		 = "{ipb.lang['js_tag_list']}";

Добавьте ниже:

var help_translit		   = "{ipb.lang['hb_translit']}";

Шаблоны postbox_buttons и pm_postbox_buttons:

Найдите:
   <input type='button' accesskey='l' value=' LIST '	 onclick='tag_list()'		  class='codebuttons' name="LIST" onmouseover="hstat('list')" />

Добавьте ниже:

   <input type='button' accesskey='t' value=' TRANSLIT ' onclick='translit()' class='codebuttons' name='TRANSLIT' onmouseover="hstat('translit')" />

Все готово!

Надеюсь то.

 

По идее должно подойти.

Сделайте бэкап!!!

 

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Так же нашел это.

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

если вы не автор мода, то запрещается выкладывать чужие моды.

Это кстати любых модов касается.

Лично мои моды запрещено выкладывать без разрешения

  • Автор

скачаный кривой.пробовал ставить,то ли сам ошибся...этот попробую отпишусь

  • 1 год спустя...

А есть что-то подобное для 3.1.2.?

Плиизз, помогите с транслитом, работает только в опере, в мозиле вообще не работает, а в эксплоере видно с кодировкой что-то не так, переводит, но непонятными символами, ставила вот этот мод http://ipbskins.ru/forum/topic1205.html/page__view__findpost__p__6258

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

Аккаунт

Навигация

Поиск

Поиск

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

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