Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.68/114: Рейтинг темы: голосов - 114, средняя оценка - 4.68
weboman
 Аватар для Schtrich
210 / 195 / 63
Регистрация: 13.08.2010
Сообщений: 1,531
Записей в блоге: 6

Перевод слова из кириллицы в транслит

30.06.2011, 18:25. Показов 23953. Ответов 29

Студворк — интернет-сервис помощи студентам
нужна функция перевода слова из кириллицы в транслит
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.06.2011, 18:25
Ответы с готовыми решениями:

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

Замена кириллицы на транслит
Задача такая: В текстовое окно вводиться кириллица и автоматически переводит в транслит. Если была введена допустим ш то в транслите sh...

транслит с кириллицы на латиницу
Нужна прога для транслита с кириллицы на латиницу на питоне. То есть вводим определенное слово и после он должен вывести на латинице. Нашел...

29
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
30.06.2011, 18:41
Лучший ответ Сообщение было отмечено как решение

Решение

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
String.prototype.translit = (function(){
    var L = {
'А':'A','а':'a','Б':'B','б':'b','В':'V','в':'v','Г':'G','г':'g',
'Д':'D','д':'d','Е':'E','е':'e','Ё':'Yo','ё':'yo','Ж':'Zh','ж':'zh',
'З':'Z','з':'z','И':'I','и':'i','Й':'Y','й':'y','К':'K','к':'k',
'Л':'L','л':'l','М':'M','м':'m','Н':'N','н':'n','О':'O','о':'o',
'П':'P','п':'p','Р':'R','р':'r','С':'S','с':'s','Т':'T','т':'t',
'У':'U','у':'u','Ф':'F','ф':'f','Х':'Kh','х':'kh','Ц':'Ts','ц':'ts',
'Ч':'Ch','ч':'ch','Ш':'Sh','ш':'sh','Щ':'Sch','щ':'sch','Ъ':'"','ъ':'"',
'Ы':'Y','ы':'y','Ь':"'",'ь':"'",'Э':'E','э':'e','Ю':'Yu','ю':'yu',
'Я':'Ya','я':'ya'
        },
        r = '',
        k;
    for (k in L) r += k;
    r = new RegExp('[' + r + ']', 'g');
    k = function(a){
        return a in L ? L[a] : '';
    };
    return function(){
        return this.replace(r, k);
    };
})();
 
alert('нужна функция перевода слова из кириллицы в транслит'.translit());
4
weboman
 Аватар для Schtrich
210 / 195 / 63
Регистрация: 13.08.2010
Сообщений: 1,531
Записей в блоге: 6
30.06.2011, 19:32  [ТС]
а как ее в отдельный файл вывести, я вынес, подключаю к своей странице, а она не работает?
Странно, только что работала, теперь вообще не хочет ни в каком файле.
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
30.06.2011, 19:37
AlienNation, С первой по 23ю строки включительно в отдельный файл, и грузить его среди первых.
0
weboman
 Аватар для Schtrich
210 / 195 / 63
Регистрация: 13.08.2010
Сообщений: 1,531
Записей в блоге: 6
30.06.2011, 19:49  [ТС]
да! спасибо! Разобрался!
0
0 / 0 / 0
Регистрация: 18.05.2012
Сообщений: 17
21.06.2012, 09:48
что значит среди первых?? объясните пожалуйста, нужно создать транслит причем мгновенный но чтобы в одном input type=text мы писали русскими,а во втором инпуте который рядом он автоматически переводил на латиницу, помогите пожалуйста
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
21.06.2012, 11:06
Вообще-то схем транслита всяких-разных - очень много:
1. Схема библиотеки Конгресса США (где Щ=SHCH)
2. EuroTex-92 Покровского (где Щ=W)
3. Схема Волапюка (где Щ=H`)
4. ГОСТ-16876-71 (где Щ=HH)
5. Клавиатурная (где Щ=O)
6. КОИ-7 (где Щ=}, а щ=])
7. Универсальная (где Щ=SCH)
8. Упрощенная
и тыды и тыпы...
-----

dimkaja, где-нить в коде прописываете скриптовой блок с вышенаписанной функцией, а поля ввода прописываете так (чтобы мгновенно и не только с клавиатуры, но и путём копи-пасте)
HTML5
1
2
3
4
<input oninput         ="document.getElementById ('trans').value = this.value.translit ()"
       onpropertychange="document.getElementById ('trans').value = this.value.translit ()">
 
<input id="trans" readonly>
Разумеется, всё тоже самое будет работать и для тегов <textarea>.
0
0 / 0 / 0
Регистрация: 18.05.2012
Сообщений: 17
21.06.2012, 11:43
к сожалению я в этом совсем начинающий и в функциях мало разбираюсь, не хватает знаний чтобы создать вышеописанный мной транслит, если вы знаете решение опишите его пожалуйста
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
21.06.2012, 11:59
dimkaja, я вам ВСЁ написал.
Пишете <script> и </script>, между ними вставляете код функции из сообщения https://www.cyberforum.ru/post1808126.html - с первой и до 23 строки включительно.

Далее в нужных вам местах прописываете два тега <input> - html-коды которых я вам дал здесь https://www.cyberforum.ru/post3191909.html

Что ещё непонятно?
0
0 / 0 / 0
Регистрация: 18.05.2012
Сообщений: 17
21.06.2012, 14:37
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<script>
 
<input oninput ="document.getElementById ('trans').value = this.value.translit ()"
 
<input id="trans" readonly> 
    String.prototype.translit = (function(){ 
    var L = {
'А':'A','а':'a','Б':'B','б':'b','В':'V','в':'v','Г':'G','г':'g',
'Д':'D','д':'d','Е':'E','е':'e','Ё':'Yo','ё':'yo','Ж':'Zh','ж':'zh',
'З':'Z','з':'z','И':'I','и':'i','Й':'Y','й':'y','К':'K','к':'k',
'Л':'L','л':'l','М':'M','м':'m','Н':'N','н':'n','О':'O','о':'o',
'П':'P','п':'p','Р':'R','р':'r','С':'S','с':'s','Т':'T','т':'t',
'У':'U','у':'u','Ф':'F','ф':'f','Х':'Kh','х':'kh','Ц':'Ts','ц':'ts',
'Ч':'Ch','ч':'ch','Ш':'Sh','ш':'sh','Щ':'Sch','щ':'sch','Ъ':'"','ъ':'"',
'Ы':'Y','ы':'y','Ь':"'",'ь':"'",'Э':'E','э':'e','Ю':'Yu','ю':'yu',
'Я':'Ya','я':'ya'
        },
        r = '',
        k;
    for (k in L) r += k;
    r = new RegExp('[' + r + ']', 'g');
    k = function(a){
        return a in L ? L[a] : '';
    };
    return function(){
        return this.replace(r, k);
    };
})();
 
       onpropertychange="document.getElementById ('trans').value = this.value.translit ()">
 
 
 
</script>


вот что я сделал, покажите пожалуйста что не правильно
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
21.06.2012, 15:05
строку №1 (<script>) удалите и вставьте её между строками №5 и №6 (между <input id="trans" readonly> и String.prototype.translit = (function(){ )
0
0 / 0 / 0
Регистрация: 18.05.2012
Сообщений: 17
22.06.2012, 09:08
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<input oninput ="document.getElementById ('trans').value = this.value.translit ()"
 
<input id="trans" readonly> 
<script>
 
 
    
String.prototype.translit = (function(){ 
    var L = {
'А':'A','а':'a','Б':'B','б':'b','В':'V','в':'v','Г':'G','г':'g',
'Д':'D','д':'d','Е':'E','е':'e','Ё':'Yo','ё':'yo','Ж':'Zh','ж':'zh',
'З':'Z','з':'z','И':'I','и':'i','Й':'Y','й':'y','К':'K','к':'k',
'Л':'L','л':'l','М':'M','м':'m','Н':'N','н':'n','О':'O','о':'o',
'П':'P','п':'p','Р':'R','р':'r','С':'S','с':'s','Т':'T','т':'t',
'У':'U','у':'u','Ф':'F','ф':'f','Х':'Kh','х':'kh','Ц':'Ts','ц':'ts',
'Ч':'Ch','ч':'ch','Ш':'Sh','ш':'sh','Щ':'Sch','щ':'sch','Ъ':'"','ъ':'"',
'Ы':'Y','ы':'y','Ь':"'",'ь':"'",'Э':'E','э':'e','Ю':'Yu','ю':'yu',
'Я':'Ya','я':'ya'
        },
        r = '',
        k;
    for (k in L) r += k;
    r = new RegExp('[' + r + ']', 'g');
    k = function(a){
        return a in L ? L[a] : '';
    };
    return function(){
        return this.replace(r, k);
onpropertychange="document.getElementById ('trans').value = this.value.translit ()">
    };
})();
 
       
 
 
 
</script>
вот что то сделал, но там почему то одно поле только вышло и в нем нельзя ничего записать, покажите пожалуйста как создать то поле с которого можно будет записывать и чтобы на него реагировало поле транслита и автоматически переводило
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
22.06.2012, 13:26
dimkaja, в первой строке вы, во-первых, не дописали весь мой код (а там была реализация события onpropertychange для браузера MSIE).
И, во-вторых, вы забыли закрыть первый тег символом >. Что и привело к "непоказу" этого поля ввода.
-----

Всегда будьте внимательны - программирование этого требует.
Это вам не на заборе про "дрАва" писать
0
0 / 0 / 0
Регистрация: 18.05.2012
Сообщений: 17
22.06.2012, 13:55
спасибо у меня все получилось все переводит только вот теперь нужно сделать так чтобы была не одна строка ввода а три, и чтобы было три таких авто переводчика на каждую строку по отдлельности
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
22.06.2012, 14:06
Ну так и делайте ТРИ пары:
Первая:
<input oninput = "document.getElementById ('trans1')... и так далее>
<input id="trans1" readonly>

Вторая:
<input oninput = "document.getElementById ('trans2')... и так далее>
<input id="trans2" readonly>

Третья:
<input oninput = "document.getElementById ('trans3')... и так далее>
<input id="trans3" readonly>

Можете - и четвёртую пару добавить... и сто двадцать пятую.

Скриптовой блок - тот же. И для любого количества пар он нужен в единственном числе - как он сейчас у вас есть.
0
0 / 0 / 0
Регистрация: 18.05.2012
Сообщений: 17
22.06.2012, 14:40
спасибо действительно все заработало, а не подскажете как изменить правила перевода этого транслита? например мне нужно чтобы Х было не Kh, а H
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
22.06.2012, 14:49
Цитата Сообщение от dimkaja Посмотреть сообщение
как изменить правила перевода этого транслита? например мне нужно чтобы Х было не Kh, а H
В фигурный скобках, где много буков и кавычек, через запятую перечисляется что на что заменять:
JavaScript
1
2
3
4
5
{
    'Б' : 'B',
    'Д' : 'D',
    'Г' : 'G'
}
Вот там и меняйте.
0
0 / 0 / 0
Регистрация: 18.05.2012
Сообщений: 17
22.06.2012, 14:53
я заменял но все равно почему то даже после сохранения пишет все по старому
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
22.06.2012, 15:09
dimkaja, А Вы обе заменили - и большую, и маленькую буквы?
Ctrl+F5?
0
0 / 0 / 0
Регистрация: 18.05.2012
Сообщений: 17
22.06.2012, 22:15
да, в том то и дело, не первый раз с чем то похожим сталкиваюсь может в кодировке какая проблема?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.06.2012, 22:15
Помогаю со студенческими работами здесь

Копипаст кириллицы, транслит и тэдэ...
Довелось мне на одном форуме порасспрашивать коллег про мои проблемы с копипастом кириллицы из одной IDE в обычные редакторы. Вместо...

Транслит (перекодировка с кириллицы на латиницу)
Ребята, здравствуйте, у меня задание: написать на языке ассемблер com-программу, чтобы перекодировать с кириллицы на латиницу по правилу...

Перевод текста в транслит
Проблема, а точнее задачка: Мне нужно сделать вот такую программку. Структура такова, Дано два TMemo и кнопка. Суть программы вводим в...

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

перевод русских букв в транслит
Задача: Перевести русские буквы в транслит, с ведением протокола.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru