Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   Пишем JavaScript перекодировки из кириллицы в латиницу (http://forum.oszone.net/showthread.php?t=141469)

maasja 30-05-2009 22:12 1131261

Пишем JavaScript перекодировки из кириллицы в латиницу
 
Здравствуйте дорогие форумчане!!! давайте в режиме онлайн напишем джава скрипт, который делает транслит з кирилицы на латиницу, типа пишем "Привет" , а получается "Privet". Кто со мной? )))

proxy 30-05-2009 22:32 1131284

так есть же, уже....
вариант 1
вариант 2
и т.д.

Да и писать то тут то не так много-то:
1. массив замен: А-A, ....Z-З и т.д.
2. и функция:
2.1. переберает текст по буквам
2.3. выясняет в каком языке буква
2.4. переводит в нужный язык / транслит

maasja 30-05-2009 22:39 1131295

У себя на сайте, на странице контактов делаю форму для задания вопроса. Я хочу чтоб вопрос мне выслало смс-кой и на мобильный и на мейл.. Даже знаю как это сделать, я на билайне, и он поддерживает отсылку смс с мейла на телефон, но есть одна проблемка. Писать нужно на латинице.

Вот потому мне нужно чтоб вопрос отправляемый на мэйл был в оригиральном варианте, а той что на смс латиницей. Типа "Privet" , а не "Привет"

proxy 30-05-2009 23:01 1131313

вот пример на js
и на php

прикручивайте...

+ вам в этот форум

maasja 31-05-2009 02:05 1131393

Всё равно есть проблемка со скриптом.А точнее в букве "и", оно не распознает с какой раскладки она писалась, с английской или с украинсой. Что делать?(((

proxy 31-05-2009 02:24 1131397

Цитата:

А точнее в букве "и"
на js скрипте у меня все ок.

Если php, то там пример неудачный, что то не глянул сначала.
Там лучше так же как и на js - на массивах.
С перебором текста, а не всех-всех замен...

maasja 05-06-2009 04:48 1135448

Как скриптом различить украинские буквы от русских? Например если у меня русская раскладка клавы, и я написал "и", то хочу чтоб она виделась как русская буква, а если написал "и" на украинской раскладке, то как украинская. Помогите плиз.

Sham 07-06-2009 21:24 1137691

maasja, браузеры вроде бы не понимают системную раскладку, те невозможно средствами JS определить, какая раскладка... хотя возможно реализовать изменение раскладки (набора символов) внутри страницы (галочкой, радио-кнопкой)...

proxy 07-06-2009 23:17 1137791

maasja, попробуйте вот тут перевод текста с автоопределением языка.
если сработает - то значет можно, тогда думаю найдем....а то у меня только рус-eng - особо не протестю...но работает.

Цитата:

(галочкой, радио-кнопкой)...
и т.д. по выбору пользователя - очень не плохое решение.

maasja 08-06-2009 03:14 1137923

Всё таки Sham, прав. В гугле на каком языке я б не писал (русском, или украинском), оно всё равно распознаёт это как русский. Пробовал любые буквы, вплоть до "ї", и с любыми настройками (Язык интерфейса, Язык поиска), все равно только русский. :cry:

proxy 08-06-2009 03:59 1137933

чёж грустить? это не смертельно ))

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

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

maasja 08-06-2009 15:27 1138343

Тогда давайте так, у меня будет три кнопки 1 -ая eng - она будет по умолчанию 2 -ая rus и 3-ая ua . А как сделать так чтоб узнать на каком языке напечатана кажда буква отдельно? Например зашел пользователь и пишет первую букву на английском (по умолчанию) "s", потом переключает на русскую и пишет "и", а потом еще й на украинской "ї"? И после нажатия кнопки отправить, текст перебирается по каждой отдельной букве и смотря на то, на каком языке написана буква так оно и перекодировует в латинницу.

Sham 08-06-2009 17:17 1138404

maasja, русский и украинский - это родственные кириллические языки, поэтому любые попытки в плане определения языка ru\ua будут малоэффективны. имхо делаете три набора символов в массивах: латиницу, кириллицу, и смешанную (какие буквы в украинском используются). также нужны будут несколько массивов для транслита (вид массива зависит от задачи)... например, массив транслита ru-en, ua-en и тд...
значение текущей раскладки можно записывать в куки, переменную или скрытое поле input...

maasja 08-06-2009 20:19 1138511

Вложений: 1
  • 02web.jpg (224.50 KB, скачиваний: 15)
Посмотрите плиз на прикрепленный файл, и поймите чего я хочу (дизайн склепал только что и он еще изменится). Когда пользователь нажмет на кнопку отправить, то всё содержимое из текста скопируется в другую переменную и отправится на мейл. Кроме этого то что будет в первой переменной, должно перекодироватся на латиницу и отправится смс-кой (отсылать буду с мейла, билайн такое поддерживает), перекодировка нужна потому что нельзя смс-кой отправить кириллицу, а только латиницу. Почему я хочу и украинской и русской язык конвертнуть, а не всё под русский? Да потому что хочу сделать всё универсально, даже сказать идеально. Коменты... )))

Sham 08-06-2009 21:35 1138581

пример функции транслита

Код:

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;
}


maasja 08-06-2009 21:48 1138588

А как сделать так чтоб печаталось на том языке на каком было выбрано? Посмотрите изображение..

Sham 08-06-2009 22:10 1138620

Цитата:

Цитата maasja
А как сделать так чтоб печаталось на том языке на каком было выбрано? »

проще всего выполнять функцию по событию onkeyup
HTML код:

<textarea id="text" onkeyup="translit()"></textarea>
соответственно, в зависимости от выбранной раскладки подсовывать нужный массив...
определение кода клавиш имхо можно опустить, тк некроссбраузерно (зависит от браузера и системы)...


Время: 15:28.

Время: 15:28.
© OSzone.net 2001-