Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
IteX

Translit

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

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

Поделиться сообщением


Ссылка на сообщение
03/23/09 12:45 (изменено)

+--------------------------------------------------------------------------
|   Кнопка "Транслит"
|   ========================================
|   Сотворено: 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

Поделиться сообщением


Ссылка на сообщение

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

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

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

Поделиться сообщением


Ссылка на сообщение

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

Поделиться сообщением


Ссылка на сообщение

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

Поделиться сообщением


Ссылка на сообщение

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

Поделиться сообщением


Ссылка на сообщение

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

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...