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

Translit

Recommended Posts

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

Share this post


Link to post
Share on other sites

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

Все готово!

Надеюсь то.

 

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

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

 

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

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

Edited by ARMAgeddoN

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

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

Share this post


Link to post
Share on other sites

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

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...