Скрипт онлайн перевода на транслит
Ранее нами уже был рассмотрен скрипт перевода текста на транслит.
Теперь же мы решили немного доработать данный скрипт для того, чтобы он полностью соответствовал ГОСТу 7.79-2000 (схема Б), а именно пункту 6.6, который гласит:
Ц передается либо латинской C, либо сочетанием CZ. Рекомендуется употреблять С перед буквами I, Е, Y, J, а в остальных случаях — CZ.
Предыдущий наш скрипт не работал в браузере Google Chrome, что также было устранено в данном скрипте. Плюс мы еще добавили замену пробелов на нижнее подчеркивание.
Для наглядной демонстрации работы скрипта, введите в текстовое поле, расположенное чуть ниже произвольный текст на русском языке (кириллицей) и нажмите на кнопку "В транслит". В результате работы скрипта буквы текст в текстовом поле будут заменены на латинские в соответствии с ГОСТом 7.79-2000 (схема Б).
Для проверки правильности замены в тексте буквы Ц на C или CZ введите, например, строку: Цапля снесла на блюдце яйцо. В результате работы скрипта, Вы должны будете получить строку Czaplya_snesla_na_blyudce_yajczo.
Для вставки на своем сайте точно такого же скрипта перевода текста на транслит, добавьте следующий JavaScript код себе на страничку:
<script type='text/javascript'>
function send(){
var res = '';
var text = document.getElementById('text').value;
var transl = {А:'A', а:'a', Б:'B', б:'b', В:'V', в:'v', Г:'G', г:'g',
Д:'D', д:'d', Е:'E', е:'e', Ё:'Yo', ё:'yo', Ж:'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', Х:'X', х:'x', Ц:'Cz', ц:'cz',
Ч:'Ch', ч:'ch', Ш:'Sh', ш:'sh', Щ:'Shh', щ:'shh', Ъ:'"', ъ:'"', Ы:'Y\'', ы:'y\'',
Ь:'\'', ь:'\'', Э:'E\'', э:'e\'', Ю:'Yu', ю:'yu', Я:'Ya', я:'ya', ' ':'_'};
for(i=0;i<text.length;i++) {
if(transl[text[i]]!=undefined) res += transl[text[i]];
else res += text[i];
}
res = res.replace(/Cz(?=i|e|y|j|I|E|Y|J)/g, "C");
res = res.replace(/cz(?=i|e|y|j|I|E|Y|J)/g, "c");
document.getElementById('text').value = res;
}
</script>
Далее необходимо добавить текстовое поле, куда будет вводиться обычный (кириллический текст) и кнопку, по нажатию на которую будет осуществлен перевод введенного текста на транслит (латиницу). Добавить их нужно следующим образом:
<div style="text-align: center;">
<textarea id="text" cols="35" rows="8" style="width: 600px; height: 150px;
border: 1px solid #999999; background: #EEEEEE;"></textarea>
<br>
<input type="button" value="В транслит" onclick="send()">
</div>
Как Вы могли заметить, в приведенном нами скрипте присутствует замена строк по регулярным выражениям. Это сделано для того чтобы избежать излишних проверок в самом скрипте и в то же время выполнить условия пункта 6.6 ГОСТа 7.79-2000 (схема Б), о которых мы писали выше.
Перед публикацией все комментарии проходят обязательную модерацию!
Если Вы хотите задать какой-либо вопрос, то сделайте это на нашем форуме.
Таким образом, Вы сможете быстрее получить ответ на интересующий Вас вопрос.
Я долго искал в сети именно такую реализацию, благодаря вам этот скрипт был создан.
Думаю он будет пользоваться огромной популярностью благодаря своему нетривиальному функционалу.
строчку text = text.replace(/Зь/g, "\u0179");
А как переписать строку так, чтобы наоборот, после букв I, Е, Y, J читалось как "С", а в остальных случаях - "CZ". Спасибо.
ГОСТ Р 52535.1-2006. Карты идентификационные. Машиносчитываемые дорожные документы. Часть 1. Машиносчитываемые паспорта (Извлечение).
Источник - Приказ Федеральной миграционной службы (ФМС России) от 3 февраля 2010 г. N 26 г. Москва "Об утверждении Административного регламента Федеральной миграционной службы по предоставлению государственной услуги по оформлению и выдаче паспортов гражданина Российской Федерации, удостоверяющих личность гражданина Российской Федерации за пределами территории Российской Федерации, и по исполнению государственной функции по их учету" (Приложение N 10).
Ссылка - rg.ru/2010/03/05/pasport-dok.html
А как сделать, чтобы не было такого? ( Привет_как_твои_дела ).
Полосок между пробелами?
Только не много не так. JS добавить в глобальный блок, тот который нужен, а html код уже на страничку вывода (новости или там еще чего).
Так работает. Разобрался. Спасибо. С УВ.
А как переписать строку так, чтобы наоборот, после букв I, Е, Y, J читалось как "С", а в остальных случаях - "CZ". Спасибо.