Показать полную графическую версию : Пишем JavaScript перекодировки из кириллицы в латиницу
Здравствуйте дорогие форумчане!!! давайте в режиме онлайн напишем джава скрипт, который делает транслит з кирилицы на латиницу, типа пишем "Привет" , а получается "Privet". Кто со мной? )))
так есть же, уже....
вариант 1 (http://www.translit.ru/)
вариант 2 (http://www.tigir.com/translit/translit.php)
и т.д. (http://www.google.com/search?client=opera&rls=ru&q=перевод+транслит&sourceid=opera&ie=utf-8&oe=utf-8)
Да и писать то тут то не так много-то:
1. массив замен: А-A, ....Z-З и т.д.
2. и функция:
2.1. переберает текст по буквам
2.3. выясняет в каком языке буква
2.4. переводит в нужный язык / транслит
У себя на сайте, на странице контактов делаю форму для задания вопроса. Я хочу чтоб вопрос мне выслало смс-кой и на мобильный и на мейл.. Даже знаю как это сделать, я на билайне, и он поддерживает отсылку смс с мейла на телефон, но есть одна проблемка. Писать нужно на латинице.
Вот потому мне нужно чтоб вопрос отправляемый на мэйл был в оригиральном варианте, а той что на смс латиницей. Типа "Privet" , а не "Привет"
вот пример на js (http://forum.antichat.ru/showthread.php?p=1281463)
и на php (http://www.webfocus.ru/scripts/Stat-i/translite.html)
прикручивайте...
+ вам в этот форум (http://forum.oszone.net/forum-22.html)
Всё равно есть проблемка со скриптом.А точнее в букве "и", оно не распознает с какой раскладки она писалась, с английской или с украинсой. Что делать?(((
А точнее в букве "и"
на js скрипте у меня все ок.
Если php, то там пример неудачный, что то не глянул сначала.
Там лучше так же как и на js - на массивах.
С перебором текста, а не всех-всех замен...
Как скриптом различить украинские буквы от русских? Например если у меня русская раскладка клавы, и я написал "и", то хочу чтоб она виделась как русская буква, а если написал "и" на украинской раскладке, то как украинская. Помогите плиз.
maasja, браузеры вроде бы не понимают системную раскладку, те невозможно средствами JS определить, какая раскладка... хотя возможно реализовать изменение раскладки (набора символов) внутри страницы (галочкой, радио-кнопкой)...
maasja, попробуйте вот тут (http://translate.google.com/translate_t?hl=ru&sl=en&tl=ru#) перевод текста с автоопределением языка.
если сработает - то значет можно, тогда думаю найдем....а то у меня только рус-eng - особо не протестю...но работает.
(галочкой, радио-кнопкой)...
и т.д. по выбору пользователя - очень не плохое решение.
Всё таки Sham, прав. В гугле на каком языке я б не писал (русском, или украинском), оно всё равно распознаёт это как русский. Пробовал любые буквы, вплоть до "ї", и с любыми настройками (Язык интерфейса, Язык поиска), все равно только русский. :cry:
чёж грустить? это не смертельно ))
окей, тогда, например как тут (http://www.translit.ru/), необходимы select или все те же radio, что бы пользователь сам выбирал - на каком языке пишет, и может, на какой язык переводить.
соостветственно, из учета выбранной опции, ипользовать алфавит для перевода: русский, украинский и т.д....
Тогда давайте так, у меня будет три кнопки 1 -ая eng - она будет по умолчанию 2 -ая rus и 3-ая ua . А как сделать так чтоб узнать на каком языке напечатана кажда буква отдельно? Например зашел пользователь и пишет первую букву на английском (по умолчанию) "s", потом переключает на русскую и пишет "и", а потом еще й на украинской "ї"? И после нажатия кнопки отправить, текст перебирается по каждой отдельной букве и смотря на то, на каком языке написана буква так оно и перекодировует в латинницу.
maasja, русский и украинский - это родственные кириллические языки, поэтому любые попытки в плане определения языка ru\ua будут малоэффективны. имхо делаете три набора символов в массивах: латиницу, кириллицу, и смешанную (какие буквы в украинском используются). также нужны будут несколько массивов для транслита (вид массива зависит от задачи)... например, массив транслита ru-en, ua-en и тд...
значение текущей раскладки можно записывать в куки, переменную или скрытое поле input...
Посмотрите плиз на прикрепленный файл, и поймите чего я хочу (дизайн склепал только что и он еще изменится). Когда пользователь нажмет на кнопку отправить, то всё содержимое из текста скопируется в другую переменную и отправится на мейл. Кроме этого то что будет в первой переменной, должно перекодироватся на латиницу и отправится смс-кой (отсылать буду с мейла, билайн такое поддерживает), перекодировка нужна потому что нельзя смс-кой отправить кириллицу, а только латиницу. Почему я хочу и украинской и русской язык конвертнуть, а не всё под русский? Да потому что хочу сделать всё универсально, даже сказать идеально. Коменты... )))
пример функции транслита
function translit()
{
var arr =
{
'а':'a',
'б':'b',
'и':'i',
'ш':'sh'
//и так для всех символов
};
var ereg = '';
var txt = document.getElementById('text'); //id тега textarea
var txtvar = txt.value;
for (var k in arr)
{
eval('ereg = /'+ k +'/g;');
txtvar = txtvar.replace(ereg, arr[k]);
}
txt.value = txtvar;
}
А как сделать так чтоб печаталось на том языке на каком было выбрано? Посмотрите изображение..
А как сделать так чтоб печаталось на том языке на каком было выбрано? »
проще всего выполнять функцию по событию onkeyup
<textarea id="text" onkeyup="translit()"></textarea>
соответственно, в зависимости от выбранной раскладки подсовывать нужный массив...
определение кода клавиш имхо можно опустить, тк некроссбраузерно (зависит от браузера и системы)...
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.