Страница 1 из 3

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

Добавлено: 09 ноя 2012, 21:24
DeaDRoMeO
Всем доброго дня, сегодня анонс интересного мини-мода, предназначенного для транслитераций сообщений.
Ликбез от Википедии писал(а):Трансли́т (название произведено сокращением слова «транслитерация») — передача текста, записанного не латиницей, латинскими буквами, а также цифрами и иными доступными на клавиатуре компьютера знаками. Так могут называть и сам нелатинский текст, набранный латинскими буквами.
Иначе для примера слово Привет можно транслитом написать так - Privet, а суть данного мода заключается в переводе слов такого рода Privet в Привет.

Тобишь смоделируем ситуацию, далеко ходить не надо, у меня на телефоне в опере есть только английская клавиатура, русской нет и нет возможности ею воспользоваться. Я пишу сообщение
Privet vsem
Жму кнопку Перевести транслит и получаю
Привет всем
Если хотите, можете проверить работу мода вживую на нашем форуме, напишите любое сообщение транслитом, а потом нажмите на кнопку Перевести транслит (Панель ВВ-кодов, рядом с кнопкой URL).

Вообщем если заинтересовало, то приступаем к правкам кода. Сперва скачайте сам скрипт
translit.rar
Скрипт транслитерации сообщений
(1.4 КБ) 54 скачивания
Разместите его по пути /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:

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

Добавлено: 26 фев 2013, 15:17
Lorem Ipsum
Не работает здесь на форуме почему-то..

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

Добавлено: 27 фев 2013, 09:25
dqdmitry
Lorem Ipsum писал(а):Не работает здесь на форуме почему-то..
Ага :-00): , я тоже на этом попался, даже тему дублирующую открыл, где эти правки выложил))).
Но, как понял, Сергей просто не ставил себе это.

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

Добавлено: 27 фев 2013, 10:53
DeaDRoMeO
ВОт же блин)) и правда не работает у меня, вечером поковыряюсь, наверное чтото затер))

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

Добавлено: 04 июл 2013, 11:35
DeaDRoMeO
Ап теме, переписал инструкцию, перезалил скрипт, все работает, на моем форуме так же все исправлено :bra_vo:

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

Добавлено: 04 июл 2013, 18:17
ursego
Огромное спасибище за Транслит! Это просто критичный по важности мод, особенно у нас, в дальнем зарубежье :-0=) . Несколько вопросиков: Можно ли...

1. ...убрать подчёркивание из надписи на кнопке "Транслит"?
2. ...игнорировать коды смайликов точно так-же, как игнорируются бибикоды?
3. ...переводить ВСЕ буквы так, как в http://translit.ru/ , а то некоторые буквы переводятся иначе (например, "w" превращается не в "щ", а в "в", так что если хочешь получить "щ", то надо набрать "shh" - не знаю что именно курил автор этой модификации и почему было не сделать так, как все привыкли в транслит.ру :okays: ). Я пытался ковыряться и даже изменил некоторые PHP-шные массивы (и даже очистил кэш чтоб умилостивить Богов PHPBB), но бестолку.

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

Добавлено: 04 июл 2013, 20:16
DeaDRoMeO
1. Можно
2. Можно, только надо внести значения смайлов в массив исключений
3. Погляжу на том сайте как идет транслитерация в скрипте

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

Добавлено: 09 июл 2013, 18:55
ursego
ursego писал(а):3. ...переводить ВСЕ буквы так, как в http://translit.ru/ , а то некоторые буквы переводятся иначе (например, "w" превращается не в "щ", а в "в", так что если хочешь получить "щ", то надо набрать "shh" - не знаю что именно курил автор этой модификации и почему было не сделать так, как все привыкли в транслит.ру :okays: ). Я пытался ковыряться и даже изменил некоторые PHP-шные массивы (и даже очистил кэш чтоб умилостивить Богов PHPBB), но бестолку.
Итак, я изменил массив в alltranslit.js (в корневой директории форума) следующим образом:

mSets:[[{A:"А",a:"а",B:"Б",b:"б",V:"В",v:"в",G:"Г",g:"г",D:"Д",d:"д",E:"Е",e:"е",Z:"З",z:"з",I:"И"
,i:"и",J:"Й",j:"й",K:"К",k:"к",L:"Л",l:"л",M:"М",m:"м",N:"Н",n:"н",O:"О",o:"о",P:"П",p:"п",R:"Р",r:"р",S:"С",s:"с",T:"Т",t:"т",U:"У",u:"у",F:"Ф",f:"ф",X:"Х",x:"х",H:"Х",h:"х",C:"Ц",c:
"ц",W:"Щ",w:"щ","ъъ":"Ъ","\u0022":"ъ",Y:"Ы",y:"ы","ьь":"Ь","\u0027":"ь",Ä:"Э",ä:"э",Ö:"Ё",ö:"ё"
,Ü:"Ю",ü:"ю","#":"№",ЙЕ:"Э",Йе:"Э",йе:"э",ЙО:"Ё",Йо:"Ё",йо:"ё",ЫО:"Ё",Ыо:"Ё",ыо:"ё
",ЙУ:"Ю",Йу:"Ю",йу:"ю",ЫУ:"Ю",Ыу:"Ю",ыу:"ю",Q:"Я",q:"я",ЙА:"Я",Йа:"Я",йа:"я",ЫА:"Я",Ыа:"Я",ы
а:"я",ЦХ:"Ч",Цх:"Ч",цх:"ч",СХ:"Ш",Сх:"Ш",сх:"ш",ЗХ:"Ж",Зх:"Ж",зх:"ж",ШХ:"Щ",Шх:"Щ",шх:"щ","#":"№"},{А:"A",а:"a",Б:"B",б:"b",В:"V",в:"v",Г:
"G",г:"g",Д:"D",д:"d",Е:"E",е:"e",Ё:"Jo",ё:"jo",Ж:
"Zh",ж:"zh",З:"Z",з:"z",И:"I",и:"i",Й:"J",й:"j",К:"K",к:"k",Л:"L",л:"l",М:"M
",м:"m",Н:"N",н:"n
",О:"O",о:"o",П:"P",п:"p",Р:"R",р:"r",С:"S",с:"s",Т:"T",т:"t",
:"U",у:"u",Ф:"F",ф:"f",Х:"H",х:"h",Ц:"C",ц:"c",Ч:"Ch",ч:"ch",Ш:"Sh",ш:"sh",Щ:"W",щ:"w",Ъ:"\"\"",ъ:"\"",Ы:"Y",ы:"y",Ь:"''",ь:"'",Э:"Je",э:
"je",Ю:"Ju",ю:"ju",Я:"Ja",я:"ja","№":"#"}]], // Русский язык Universal

Но ни фига не помогло - "W" по-прежнему переводится в "В", а не в "Щ" как хочет дядя Миша. Что не так?

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

Добавлено: 10 июл 2013, 10:49
DeaDRoMeO
Не тот скрипт редактируете, нужен этот

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

http://forum.north-ameri.ca/styles/absolution/template/translit.js
подчеркивание кнопки убрал, тока забыл уведомить об этом

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

Добавлено: 10 июл 2013, 15:31
ursego
ОК, спасибо! Правда, для чего нужен тот первый файл, в котором я редактировал массив буквенных соответствий, так и останется загадкой...

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

Добавлено: 10 июл 2013, 15:44
ursego
Блин, а бибикоды-то косячат:

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

[url]http://translit.ru/[/url]
[Youtube]EpJye0HHT78[/Youtube]
превращается в

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

[url]хттп://транслит.ру/[/url]
[Ёутубе]ЕпЙые0ХХТ78[/Ёутубе]
Глянешь? И чтоб смайлики игнорировались. А то инструкция для юзеров как пользоваться кнопкой транслит напоминает инструкцию от самолёта Боинг (так что легче просто использовать translit.ru чем разбираться во всей этой алгебре).

Сенькс!

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

Добавлено: 11 июл 2013, 13:58
DeaDRoMeO
Ну код ютуба по понятным соображениям кривится, он не прописан в код, разберусь с этим делом

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

Добавлено: 11 июл 2013, 22:34
ursego
Как можно добавить слова чтоб переводились целиком, а не по буквам? Например, я хочу добавить слова "район", "майонез" и "Йорк" чтоб не переводились как "раён", "маёнез" и "Ёрк". Если не ошибаюсь, раньше массив таких слов был был вшит в translit.js, а сейчас он откуда-то считывается, что-ли - не пойму...

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

Добавлено: 12 июл 2013, 11:19
DeaDRoMeO
ursego писал(а):Если не ошибаюсь, раньше массив таких слов был был вшит в translit.js,
Был, но он вызывал нестабильную работу скрипта вцелом, пришлось удалить иначе скрипт не работал

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

Добавлено: 12 июл 2013, 13:05
kulyasov
ursego,
слова можно добавить прямо в массив с буквами...
например:

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

var lat = new Array("rajon", "eh","jo",

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

var cyr = new Array("район", "э","ё",
или как вариант можно убрать замену "jo" на "ё"... тогда, скорей всего, будет правильная обработка ("j" будет "й", "о" будет "о")... но тогда не будет буквы "ё"

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

Добавлено: 13 июл 2013, 13:18
ursego
kulyasov писал(а):слова можно добавить прямо в массив с буквами
Ага, спасибо за идею - так и сделал. Просто поразительно как самые очевидные решения обходят нас стороной...

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

Добавлено: 17 июл 2013, 19:00
Lorem Ipsum
Охохо, у меня не переводит, если сообщение зацитировано. То есть, то, что стоит в цитате переводит, а сам комментарий после цитаты нет...

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

Добавлено: 17 июл 2013, 20:01
kulyasov
Lorem Ipsum,
Вы какие-то изменения производили в файле translit.js ?
на этом форуме и на моём тестовом форуме вроде все нормально...
(или я не правильно проблему понял? попробуйте на этом форуме проделать то что у Вас не получается)

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

Добавлено: 17 июл 2013, 20:05
Lorem Ipsum
kulyasov писал(а):Вы какие-то изменения производили в файле translit.js ?
нет, ничего не меняла.
вспомнила, я же этот транслит удалила (не работал) и поставила отсюда http://www.phpbbguru.net/community/topi ... ml#p370083

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

Добавлено: 17 июл 2013, 20:28
DeaDRoMeO
Lorem Ipsum писал(а):вспомнила, я же этот транслит удалила (не работал)
А я ж отредактировал малехо скрипт, должен работать)