Полезная информация


----

Начать новую тему Ответить на тему

Был ли полезен для вас данный анонс ???
Да, буду использовать модификацию80% 80% [ 4 ]
Нет, модификация бесполезна20% 20% [ 1 ]
Всего голосов : 5
АвторСообщение

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

Аватар пользователя

Всем доброго дня, сегодня анонс интересного мини-мода, предназначенного для транслитераций сообщений.
Ликбез от Википедии писал(а):

Трансли́т (название произведено сокращением слова «транслитерация») — передача текста, записанного не латиницей, латинскими буквами, а также цифрами и иными доступными на клавиатуре компьютера знаками. Так могут называть и сам нелатинский текст, набранный латинскими буквами.

Иначе для примера слово Привет можно транслитом написать так - Privet, а суть данного мода заключается в переводе слов такого рода Privet в Привет.

Тобишь смоделируем ситуацию, далеко ходить не надо, у меня на телефоне в опере есть только английская клавиатура, русской нет и нет возможности ею воспользоваться. Я пишу сообщение
Цитата:
Privet vsem

Жму кнопку Перевести транслит и получаю
Цитата:
Привет всем

Если хотите, можете проверить работу мода вживую на нашем форуме, напишите любое сообщение транслитом, а потом нажмите на кнопку Перевести транслит (Панель ВВ-кодов, рядом с кнопкой URL).

Вообщем если заинтересовало, то приступаем к правкам кода. Сперва скачайте сам скрипт
Вложение :
Комментарий к файлу: Скрипт транслитерации сообщений
translit.rar [1.4 KiB]
Скачиваний: 41

Разместите его по пути /styles/ваш стиль/template/, после этого открываем файл language/ru/posting.php и находим
'CANNOT_DELETE_REPLIED'      => 'Извините, но вы можете удалять только сообщения, не имеющие ответов.',
 

Вставляем перед найденным
'BBCODE_T_HELP'            => 'Транслитерация сообщения',
 


Открываем файл /styles/ваш стиль/template/overall_header.html и находим
 

Вставляем перед найденным
<script  type="text/javascript" src="{T_TEMPLATE_PATH}/translit.js"></script>
 


Открываем файл /styles/ваш стиль/template/posting_buttons.html и находим
tip: '{L_STYLES_TIP}'
 

Вставляем перед найденным
t: '{LA_BBCODE_T_HELP}',
 

Находим
<!-- IF S_BBCODE_FLASH -->
         <input type="button" class="btnbbcode" accesskey="d" name="addbbcode18" value="Flash" onclick="bbstyle(18)" onmouseover="helpline('d')" onmouseout="helpline('tip')" />
      <!-- ENDIF -->
 

Вставляем после найденного
   <input type="button" class="btnbbcode" accesskey="t" name="translitbbcode" value="Перевести транслит" onclick="javascript:translit('postform','message');"     onMouseOver="helpline('t')" onmouseout="helpline('tip')" />
 


После правок очистить кеш и радоваться результатам :dan_ser:


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!

Теги темы
Translit MOD phpbb3 (Транслитерация сообщений), скрипт-транслитератор для наших форумов
          Вернуться наверх  
 


Случайный аватар. Пользователю рекомендуется загрузить свой аватар в Настройках профиля

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

попробуйте поставить транслит тот что в первом сообщении... должен работать


          Вернуться наверх  
 


Аватар пользователя

DeaDRoMeO писал(а):

А я ж отредактировал малехо скрипт, должен работать)

он переводит латинские ники в цитате и смайлики.


_________________
Подпись:
Я уже прошел тот период когда можно было забывать про очистку кеша ©salexcorp
          Вернуться наверх  
 


Аватар пользователя

Соберусь и допилю его) А твой транслит смайлы не переводит?


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
          Вернуться наверх  
 


Аватар пользователя

Тоже не переводит.


_________________
Подпись:
Я уже прошел тот период когда можно было забывать про очистку кеша ©salexcorp
          Вернуться наверх  
 


Аватар пользователя

установила снова из этой темы.
Со смайликами ладно, я их изначально сделала в виде цифрового кода, цифрам по барабану переводят их или нет)).
Но пара недочётов всё же есть.
1.переводит латинские ники в цитате.
2. Если просто цитата, без ника, то первый (незакрытый) тег выглядит так: [qуоте]


_________________
Подпись:
Я уже прошел тот период когда можно было забывать про очистку кеша ©salexcorp

Информация о редактировании
Последний раз редактировалось Lorem Ipsum 21 июл 2013, 17:25, всего редактировалось 2 раз(а).
          Вернуться наверх  
 


Аватар пользователя

Lorem Ipsum писал(а):

переводит латинские ники в цитате

Ага, у меня тоже. Хотелось бы решить эту проблему. На первый взгляд это не смертельный баг, но глаза юзеров привыкли ведь к латинским никам...


          Вернуться наверх  
 


Аватар пользователя

Лорем Ипсум писал(а):

Если просто цитата, без ника, то первый (незакрытый) тег выглядит так: [qуоте]
Опа, только что обнаружил, что у меня тоже... :zvez_ochki:


          Вернуться наверх  
 


Аватар пользователя

Ну так что, есть какое-либо решение для цитаты без ника? Юзеры требуют и ругают меня. И ещё нужно, чтобы переводился только выделенный текст. Иногда пишешь фразу и хочешь, чтоб часть её осталась латинскими буквами. На phpbb2 был такой, поэтому знаю, что возможность существует.


_________________
Подпись:
Я уже прошел тот период когда можно было забывать про очистку кеша ©salexcorp
          Вернуться наверх  
 


Аватар пользователя

Lorem Ipsum писал(а):

На phpbb2 был такой, поэтому знаю, что возможность существует.

Вот надо найти этот скрипт и позаимствовать нужный кусок


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
          Вернуться наверх  
 


Аватар пользователя

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
          Вернуться наверх  
 


Аватар пользователя

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

Но пока... Нужно добавить спойлер тоже, и hide.


_________________
Подпись:
Я уже прошел тот период когда можно было забывать про очистку кеша ©salexcorp
          Вернуться наверх  
 


Аватар пользователя

Господа форумчующиеся, кто-нибудь решил проблему с транслитерацией ников в цитате? Ну, в смысле чтоб [quote="Luda"] не переводилось в [quote="Луда"]. По-моему, вообще не надо транслитировать всё, что между [ и ] - это решит проблему транслитерации бибкодов, добавленных к стандартной сборке. Почему вообще столь тривиальная мысль не пришла в голову автору мода?


          Вернуться наверх  
 


Аватар пользователя

Потому что это даже и не мод особо, автор взял готовое в инете и присобачил инструкцию для форумов, а о некоторых тонкостях не позаботился


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
          Вернуться наверх  
 


Аватар пользователя

ursego писал(а):

Господа форумчующиеся, кто-нибудь решил проблему с транслитерацией ников в цитате?


Help!!!!


          Вернуться наверх  
 


Аватар пользователя

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

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("Район","Майонез","Йорк","Йог","Йог"
,"Ё","Ё","Ей","Э","Ай","Ой","Ой","Уй","Уй","Я","Я","Я","Я","Ю","Ю","Ю","Ю","Ы","Ж","Ж","Й","Щ","Щ","Ч","Ч","Ш","Ш","Ц","А","Б","В","Щ","Г","Д","Е","З","И","К","Л","М","Н","О","П","Р","С","Т","У","Ф","Х","Ц","Э","Й","Х","ЯЙ","Ь","Ъ"
);
 


          Вернуться наверх  
 


Аватар пользователя

Заодно я победил маленький баг с растягиванием страницы изза такого кода без переноса строк


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
          Вернуться наверх  
 


Аватар пользователя

Делись.


_________________
Подпись:
Я уже прошел тот период когда можно было забывать про очистку кеша ©salexcorp
          Вернуться наверх  
 


Аватар пользователя

Решение не совсем верное, но работает вроде, дай свой bbcode.html


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
          Вернуться наверх  
 


Аватар пользователя

Вложение :
bbcode.rar [1.13 KiB]
Скачиваний: 3


_________________
Подпись:
Я уже прошел тот период когда можно было забывать про очистку кеша ©salexcorp
          Вернуться наверх  
 
 
Начать новую тему Ответить на тему


Дополнительные возможности

  Похожие темы  Автор  Ответов  Просмотров  Последнее сообщение 
Аватар пользователя Отправка сообщений с CTRL+ENTER в phpBB3
Многим админам наверняка хотелось бы иметь возможность отправки сообщений на форуме с помощью связки CTRL+ENTER ибо это очень удобная функция. Сам себе искал решение, нашел, теперь хочу с вами поделиться.

DeaDRoMeO

55

4080

Аватар пользователя

01 янв 2014, 11:56

DeaDRoMeO

Аватар пользователя Пометка редактированных сообщений непрочитанными в phpbb3

Sergeyg

3

352

Аватар пользователя

23 окт 2012, 12:46

DeaDRoMeO

Аватар пользователя Posts merging phpbb3 (Склейка сообщений)
Posts merging - модификация для phpbb3, позволяющая склеивать идущие подряд сообщения от одного пользователя

DeaDRoMeO

78

4764

Аватар пользователя

12 сен 2017, 09:32

DeaDRoMeO

Аватар пользователя Adaptive Hide BBcodes phpbb3 (скрытие содержимого сообщений)
Adaptive Hide BBcodes - модификация для phpbb3, добавляющая группу ВВ-кодов для скрытия содержимого сообщения (иными словами ВВ-код хайда)

DeaDRoMeO

57

3307

Аватар пользователя

23 янв 2016, 06:15

DeaDRoMeO

Аватар пользователя Вопрос про удаление сообщений

Олега

18

258

Аватар пользователя

03 апр 2017, 20:49

Олега

Оставить свой комментарий

Поделиться темой с помощью

Ссылки на тему

Прямая ссылка:
BB-код для форумов, сайтов, блогов:
HTML ссылка:
 


cron

Самая неформальная поддержка phpBB :P