Translit MOD phpbb3 (Транслитерация сообщений)

В данном подфоруме я буду выкладывать разнообразные украшения форума phpbb3, от смайлов до скриптов, от ВВ-кодов до различных полезных программ.

Модераторы: Vl@d1m1r, Lorem Ipsum, Atlas

Правила форума
----

Был ли полезен для вас данный анонс ???

Да, буду использовать модификацию
4
80%
Нет, модификация бесполезна
1
20%
 
Всего голосов: 5

kulyasov
Зашел немного посидеть
Зашел немного посидеть
Сообщения: 68
Стаж: 11 лет 5 месяцев

Translit MOD phpbb3 (Транслитерация сообщений)

Сообщение kulyasov »

Lorem Ipsum,
ошибка понятна... там прописано для тега [quote], а тега вида [quote="ник"] скрипт не понимает... поэтому идет сбой... по идее автора то что в цитате не должно переводится в транслит, а то что после окончания цитаты должно... но из-за этого сбоя получается наоборот...

попробуйте поставить транслит тот что в первом сообщении... должен работать
#21
Аватара пользователя
Lorem Ipsum
Прописался тут надолго
Прописался тут надолго
Сообщения: 1974
Стаж: 11 лет 7 месяцев
Контактная информация:

Translit MOD phpbb3 (Транслитерация сообщений)

Сообщение Lorem Ipsum »

DeaDRoMeO писал(а):А я ж отредактировал малехо скрипт, должен работать)
он переводит латинские ники в цитате и смайлики.
Я уже прошел тот период когда можно было забывать про очистку кеша ©salexcorp
#22
Аватара пользователя
DeaDRoMeO
Старожил Форума
Старожил Форума
Сообщения: 16763
Стаж: 13 лет
Откуда: Витебск
Контактная информация:

Translit MOD phpbb3 (Транслитерация сообщений)

Сообщение DeaDRoMeO »

Соберусь и допилю его) А твой транслит смайлы не переводит?
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
#23
Аватара пользователя
Lorem Ipsum
Прописался тут надолго
Прописался тут надолго
Сообщения: 1974
Стаж: 11 лет 7 месяцев
Контактная информация:

Translit MOD phpbb3 (Транслитерация сообщений)

Сообщение Lorem Ipsum »

Тоже не переводит.
Я уже прошел тот период когда можно было забывать про очистку кеша ©salexcorp
#24
Аватара пользователя
Lorem Ipsum
Прописался тут надолго
Прописался тут надолго
Сообщения: 1974
Стаж: 11 лет 7 месяцев
Контактная информация:

Translit MOD phpbb3 (Транслитерация сообщений)

Сообщение Lorem Ipsum »

установила снова из этой темы.
Со смайликами ладно, я их изначально сделала в виде цифрового кода, цифрам по барабану переводят их или нет)).
Но пара недочётов всё же есть.
1.переводит латинские ники в цитате.
2. Если просто цитата, без ника, то первый (незакрытый) тег выглядит так: [qуоте]
Последний раз редактировалось Lorem Ipsum 21 июл 2013, 17:25, всего редактировалось 2 раза.
Я уже прошел тот период когда можно было забывать про очистку кеша ©salexcorp
#25
Аватара пользователя
ursego
Свой на все 100
Свой на все 100
Сообщения: 478
Стаж: 11 лет 2 месяца
Откуда: Днепропетровск
Контактная информация:

Translit MOD phpbb3 (Транслитерация сообщений)

Сообщение ursego »

Lorem Ipsum писал(а):переводит латинские ники в цитате
Ага, у меня тоже. Хотелось бы решить эту проблему. На первый взгляд это не смертельный баг, но глаза юзеров привыкли ведь к латинским никам...
#26
Аватара пользователя
ursego
Свой на все 100
Свой на все 100
Сообщения: 478
Стаж: 11 лет 2 месяца
Откуда: Днепропетровск
Контактная информация:

Translit MOD phpbb3 (Транслитерация сообщений)

Сообщение ursego »

Лорем Ипсум писал(а):Если просто цитата, без ника, то первый (незакрытый) тег выглядит так: [qуоте]
Опа, только что обнаружил, что у меня тоже... :zvez_ochki:
#27
Аватара пользователя
Lorem Ipsum
Прописался тут надолго
Прописался тут надолго
Сообщения: 1974
Стаж: 11 лет 7 месяцев
Контактная информация:

Translit MOD phpbb3 (Транслитерация сообщений)

Сообщение Lorem Ipsum »

Ну так что, есть какое-либо решение для цитаты без ника? Юзеры требуют и ругают меня. И ещё нужно, чтобы переводился только выделенный текст. Иногда пишешь фразу и хочешь, чтоб часть её осталась латинскими буквами. На phpbb2 был такой, поэтому знаю, что возможность существует.
Я уже прошел тот период когда можно было забывать про очистку кеша ©salexcorp
#28
Аватара пользователя
DeaDRoMeO
Старожил Форума
Старожил Форума
Сообщения: 16763
Стаж: 13 лет
Откуда: Витебск
Контактная информация:

Translit MOD phpbb3 (Транслитерация сообщений)

Сообщение DeaDRoMeO »

Lorem Ipsum писал(а):На phpbb2 был такой, поэтому знаю, что возможность существует.
Вот надо найти этот скрипт и позаимствовать нужный кусок
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
#29
Аватара пользователя
ursego
Свой на все 100
Свой на все 100
Сообщения: 478
Стаж: 11 лет 2 месяца
Откуда: Днепропетровск
Контактная информация:

Translit MOD phpbb3 (Транслитерация сообщений)

Сообщение ursego »

Lorem Ipsum писал(а):нужно, чтобы переводился только выделенный текст. Иногда пишешь фразу и хочешь, чтоб часть её осталась латинскими буквами
Прямо мои мысли читаете! Это было бы супер-здорово если б кнопка Транслит воздейстаовала только на выделенное (а если ничего не выделено, то на всё сообщение)!
#30
Аватара пользователя
Lorem Ipsum
Прописался тут надолго
Прописался тут надолго
Сообщения: 1974
Стаж: 11 лет 7 месяцев
Контактная информация:

Translit MOD phpbb3 (Транслитерация сообщений)

Сообщение Lorem Ipsum »

DeaDRoMeO писал(а):Вот надо найти этот скрипт и позаимствовать нужный кусок
Того форума уже давно не существует, но я успела скоммуниздить

Код: Выделить всё

<SCRIPT language=javascript>
<!--
// Maid for Translit.ru by Igor Iline

var language = (navigator.appName=='Netscape');

var DOM = document.getElementById ? 1 : 0,
        opera = window.opera && DOM ? 1 : 0,
        IE = !opera && document.all ? 1 : 0,
        NN6 = DOM && !IE && !opera ? 1 : 0;

function setfoc(){document.post.message.focus();}

//the core function of the transliteration

var rus_lr2 = ('Ё-Ж-Ч-Ш-Щ-Ъ-Ь-Э-Ю-Ю-Я-Я-ё-ж-ч-ш-щ-э-ю-ю-я-я').split('-');
var lat_lr2 = ('ЙO-ЗH-ЦH-СH-ШH-ъ'+String.fromCharCode(35)+'-ь'+String.fromCharCode(39)+'-ЙE-ЙU-ЫU-ЙA-ЫA-йo-зh-цh-сh-шh-йe-йu-ы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)+'-q').split('-');

function translatesymboltocyrillic(pretxt,txt)
{
	var doubletxt = pretxt+txt;

//	var code = txt.charCodeAt(0);
//	if ((code>123) || (code<64))  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;
}


function AkeyIsDown()
{
    if (event.ctrlKey && event.altKey && navigator.appName!='Netscape') changelanguage();
    return false;
}

function translate_letter()
{
	if (navigator.appName=='Netscape') return
  if (language==1) return
  var code = event.keyCode;
	txt=String.fromCharCode(code);
  cursor_pos_selection = document.selection.createRange();
	cursor_pos_selection.text="";
  cursor_pos_selection.moveStart("character",-1);
	pretxt = cursor_pos_selection.text;
	if (pretxt.length>1) {pretxt="";}
	event.keyCode = 0;
	result = translatesymboltocyrillic(pretxt,txt)
	if (pretxt!="") { cursor_pos_selection.select(); cursor_pos_selection.collapse();}
	with(document.selection.createRange()) {text = result; collapse(); select()}
	return;
}

function translateAlltoCyrillic()
{


	var is_skip_transform = false;
	if (navigator.appName=='Netscape')
	{// NN scenario
    var userselection = "";
    var is_selection_flag = 0;
    var txtarea = document.post.message;
    var txt = document.post.message.value;
    txtarea.focus();
    if (txtarea.selectionEnd && (txtarea.selectionEnd - txtarea.selectionStart > 0)){
    	var selLength = txtarea.textLength;
    	var selStart = txtarea.selectionStart;
    	var selEnd = txtarea.selectionEnd;
    	if (selEnd == 1 || selEnd == 2)
        selEnd = selLength;
    	var s1 = (txtarea.value).substring(0,selStart);
    	var txt = (txtarea.value).substring(selStart, selEnd)
    	var s3 = (txtarea.value).substring(selEnd, selLength);
    	is_selection_flag = 1;
    	//txtarea.value = s1 + open + s2 + close + s3;
    }



    var txtnew ="";
    if (txt.substr(0,1)!="[")
	        {
    	txtnew = translatesymboltocyrillic("",txt.substr(0,1));
    }
    else{
    	txtnew="[";
    	is_skip_transform = true;
    }

    var symb = "";
    for (kk=1;kk<txt.length;kk++)
    {
    	if (txt.substr(kk,1)=="[")
    	{
        is_skip_transform = true;
    	}
    	if (txt.substr(kk,1)=="]")
    	{
        is_skip_transform = false;
    	}
    	if (is_skip_transform){
        symb = txtnew.substr(txtnew.length-1,1) + txt.substr(kk,1);
    	}
    	else {
        symb = translatesymboltocyrillic(txtnew.substr(txtnew.length-1,1),txt.substr(kk,1));
    	}
    	txtnew = txtnew.substr(0,txtnew.length-1) + symb;
    }
    if (is_selection_flag)
    {
    	document.post.message.value = s1+txtnew+s3;
    }
    else
    {
    	document.post.message.value = txtnew;
    }

    document.post.message.focus();
	} //end NN scenario
	else
	{ // IE scenario
    var is_selection_flag = 1;
    var userselection = document.selection.createRange();
    var txt = userselection.text;
    if (userselection==null || userselection.text==null || userselection.parentElement==null || userselection.parentElement().type!="textarea")
    {
    	// no text selected, all the text in the textarea is to be processed
    	is_selection_flag = 0;
    	txt = document.post.message.value;
    }
    var txtnew = ""
    var symb = "";
    for (kk=0;kk<txt.length;kk++)
    {	if (txt.substr(kk,1)=="[")
    	{
        is_skip_transform = true;
    	}
    	if (txt.substr(kk,1)=="]")
    	{
        is_skip_transform = false;
    	}
    	if (is_skip_transform)
    	{
        symb = txtnew.substr(txtnew.length-1,1) + txt.substr(kk,1);
    	}
    	else
    	{
        symb = translatesymboltocyrillic(txtnew.substr(txtnew.length-1,1),txt.substr(kk,1));
    	}
    	txtnew = txtnew.substr(0,txtnew.length-1) + symb;
    }
    if (is_selection_flag)
    {
    	userselection.text = txtnew; userselection.collapse(); userselection.select();
    }
    else
    {
    	document.post.message.value = txtnew;
    	document.post.message.focus();
    }
	} //end IE scenario
}


	function CallTrans()
	{


        document.post.method="post";


	document.post.action="http://www.translate.ru/rus/erre.asp";
        document.post.AvailableDirections.value="English-Russian translation,Russian-English translation";
        var i = document.post.directions.value;

	if (i==65538)
	{
    document.post.action="http://www.translate.ru/rus/erre.asp";
	        document.post.AvailableDirections.value="English-Russian translation,Russian-English translation";
    document.post.message.language="ru";
	}
	if (i==131076)
	{
    document.post.action="http://www.translate.ru/rus/grfr.asp";
    document.post.AvailableDirections.value="German-Russian translation,French-Russian translation,Italian-Russian translation";
    document.post.message.language="de";
                document.post.TwoStep.value="true";
	}
	if (i==262146)
	{
    document.post.action="http://www.translate.ru/rus/rgrf.asp";
    document.post.AvailableDirections.value="German-Russian translation,French-Russian translation,Italian-Russian translation";
    document.post.message.language="ru";
                document.post.TwoStep.value="True";
	}
	document.post.source.value=document.post.message.value;
  	document.post.submit();
	return true;
	}



//-->
</SCRIPT>
Я уже прошел тот период когда можно было забывать про очистку кеша ©salexcorp
#31
Аватара пользователя
Lorem Ipsum
Прописался тут надолго
Прописался тут надолго
Сообщения: 1974
Стаж: 11 лет 7 месяцев
Контактная информация:

Translit MOD phpbb3 (Транслитерация сообщений)

Сообщение Lorem Ipsum »

Мне кажется, если применять транслит только к выделенному тексту, то добавлять в массив исключений уже ничего не надо. Я правильно думаю или нет?

Но пока... Нужно добавить спойлер тоже, и hide.
Я уже прошел тот период когда можно было забывать про очистку кеша ©salexcorp
#32
Аватара пользователя
ursego
Свой на все 100
Свой на все 100
Сообщения: 478
Стаж: 11 лет 2 месяца
Откуда: Днепропетровск
Контактная информация:

Translit MOD phpbb3 (Транслитерация сообщений)

Сообщение ursego »

Господа форумчующиеся, кто-нибудь решил проблему с транслитерацией ников в цитате? Ну, в смысле чтоб [quote="Luda"] не переводилось в [quote="Луда"]. По-моему, вообще не надо транслитировать всё, что между [ и ] - это решит проблему транслитерации бибкодов, добавленных к стандартной сборке. Почему вообще столь тривиальная мысль не пришла в голову автору мода?
#33
Аватара пользователя
DeaDRoMeO
Старожил Форума
Старожил Форума
Сообщения: 16763
Стаж: 13 лет
Откуда: Витебск
Контактная информация:

Translit MOD phpbb3 (Транслитерация сообщений)

Сообщение DeaDRoMeO »

Потому что это даже и не мод особо, автор взял готовое в инете и присобачил инструкцию для форумов, а о некоторых тонкостях не позаботился
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
#34
Аватара пользователя
ursego
Свой на все 100
Свой на все 100
Сообщения: 478
Стаж: 11 лет 2 месяца
Откуда: Днепропетровск
Контактная информация:

Translit MOD phpbb3 (Транслитерация сообщений)

Сообщение ursego »

ursego писал(а):Господа форумчующиеся, кто-нибудь решил проблему с транслитерацией ников в цитате?
Help!!!!
#35
Аватара пользователя
ursego
Свой на все 100
Свой на все 100
Сообщения: 478
Стаж: 11 лет 2 месяца
Откуда: Днепропетровск
Контактная информация:

Translit MOD phpbb3 (Транслитерация сообщений)

Сообщение ursego »

Хочу поделиться с публикой некоторыми изменениями, сделанными в моде транслита. Изменений, собсна, два:

1. Транслитерация теперь осуществляется по правилам сайта транслит.ру (например, je -> э, jo -> ё, w -> щ, # -> ъ и т.д.). Этот сайт используется большинством нуждающихся в транслитерации, и люди привыкли к его правилам (я бы сказал, они вошли в кровь), а правила транслитерации, предлагаемые в моде, значительно отличаются когда дело касается сложных букв.

2. Исправлен баг когда не переводились буквы в словах, полностью написанных в верхнем регистре (например, "Sh" переводилось в "Ш", а "SH" уже нет, в результате вместо "США" получалось "ССХА").

Внести изменения несложно. Откройте файл styles/<ваш стиль>/template/translit.js - в его самом начале объявлены 4 массива: lat, cyr, latcap и cyrcap. Просто замените их на следующие:

Код: Выделить всё

var lat = new Array("rajon","majonez","jork","jog","yog"
,"je","jo","aju","oju","oje","oja","oj","yj","ya","ja","ju","ja","juju","aja","y","zh","j","shch","shh","ch","sh","a","b","v","w","g","d","e","z","i","k","l","m","n","o","p","r","s","t","u","f","x","c","'e","'","#","j","h","jaj"
);

var cyr = new Array("район","майонез","йорк","йог","йог"
,"э","ё","aю","ою","ое","оя","ой","ый","я","я","ю","я","юю","ая","ы","ж","й","щ","щ","ч","ш","а","б","в","щ","г","д","е","з","и","к","л","м","н","о","п","р","с","т","у","ф","х","ц","э","ь","ъ","й","х","яй"
);

var latcap = new Array("Rajon","Majonez","Jork","Jog","Yog"
,"Yo","Jo","Ey","Je","Ay","Oy","Oj","Uy","Uj","Ya","YA","Ja","JA","Ju","JU","Yu","YU","Y","Zh","ZH","J","Sch","SCH","Ch","CH","Sh","SH","Tz","A","B","V","W","G","D","E","Z","I","K","L","M","N","O","P","R","S","T","U","F","X","C","EA","J","H","JAJ","''","##"
);

var cyrcap = new Array("Район","Майонез","Йорк","Йог","Йог"
,"Ё","Ё","Ей","Э","Ай","Ой","Ой","Уй","Уй","Я","Я","Я","Я","Ю","Ю","Ю","Ю","Ы","Ж","Ж","Й","Щ","Щ","Ч","Ч","Ш","Ш","Ц","А","Б","В","Щ","Г","Д","Е","З","И","К","Л","М","Н","О","П","Р","С","Т","У","Ф","Х","Ц","Э","Й","Х","ЯЙ","Ь","Ъ"
);
#36
Аватара пользователя
DeaDRoMeO
Старожил Форума
Старожил Форума
Сообщения: 16763
Стаж: 13 лет
Откуда: Витебск
Контактная информация:

Translit MOD phpbb3 (Транслитерация сообщений)

Сообщение DeaDRoMeO »

Заодно я победил маленький баг с растягиванием страницы изза такого кода без переноса строк
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
#37
Аватара пользователя
Lorem Ipsum
Прописался тут надолго
Прописался тут надолго
Сообщения: 1974
Стаж: 11 лет 7 месяцев
Контактная информация:

Translit MOD phpbb3 (Транслитерация сообщений)

Сообщение Lorem Ipsum »

Делись.
Я уже прошел тот период когда можно было забывать про очистку кеша ©salexcorp
#38
Аватара пользователя
DeaDRoMeO
Старожил Форума
Старожил Форума
Сообщения: 16763
Стаж: 13 лет
Откуда: Витебск
Контактная информация:

Translit MOD phpbb3 (Транслитерация сообщений)

Сообщение DeaDRoMeO »

Решение не совсем верное, но работает вроде, дай свой bbcode.html
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
#39
Аватара пользователя
Lorem Ipsum
Прописался тут надолго
Прописался тут надолго
Сообщения: 1974
Стаж: 11 лет 7 месяцев
Контактная информация:

Translit MOD phpbb3 (Транслитерация сообщений)

Сообщение Lorem Ipsum »

bbcode.rar
(1.13 КБ) 16 скачиваний
Я уже прошел тот период когда можно было забывать про очистку кеша ©salexcorp
#40
Ответить