Что значит транслитерация. Значение слова «транслитерация

Пожалуй, многие могут вспомнить те времена, когда мобильные телефоны не поддерживали кириллицу и СМС приходилось писать латиницей, то есть транслитерировать. Таким образом, транслит - это передача знаков одного языка знаками другого.

Транслит и транслитерация

Слово «транслит» произошло от сокращения термина «транслитерация». Однако это не совсем одно и то же.

Транслитерация - это обозначающий переложение буквенных знаков письменности одного языка на знаки другой письменности. Она бывает разных типов и видов, в зависимости от назначения и задействованных языков. Её отличает наличие системы и правил, по которым она производится.

Транслитерация как отдельная область лингвистики начала формироваться в XIX веке. Продиктовано это было практическими нуждами библиотек, которым нужно было как-то систематизировать каталоги книг, названия которых были на самых разных языках.

Что касается транслитерации конкретно с русского на латиницу, существует несколько признанных систем, таких как, например, ISO-9, система транслитерации США или международный стандарт транслитерации для загранпастпортов.

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

Таким образом, транслит - это упрощённая транслитерация. Зачастую в нём сохраняются базовые но они могут нарушаться и варьироваться от человека к человеку. Чаще всего он опирается на фонетические соответствия.

История транслита

Зачатки транслита, ввиду необходимости записывать иностранные слова буквами своего родного языка, возникли уже очень давно. Чаще всего это было связано с тем, что в одной языковой культуре могло попросту отсутствовать явление, которое присутствует в другой. И при столкновением с этим явлением, а соответственно и обозначающим его словом, перевода не находилось. И слово просто транслитерировалось. Поскольку транслитерация оформилась в отдельное направление лингвистики только два века назад, всё что было до логичнее будет назвать транслитом - как хаотичное явление, не имеющее чётких правил.

Если отправиться в более близкие к нам времена, то, например, известно о телеграммах, которые посылали советские командированные из-за границы, в которых они использовали транслит с русского на латиницу, используя его, как умели. Но это всё дела давно забытых дней. «Золотой век» транслита, конечно же, начался в компьютерную эпоху, и, по-хорошему, настоящую историю транслита надо вести именно с её начала.

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

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

Виды транслита

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

Геймерский транслит

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

Его отличительная особенность - это использование латинских букв, а также цифр и других знаков таким образом, чтобы получившееся слово в написании напоминало русские буквы. Например, фраза «Всем привет!» в таком исполнении будет выглядеть как «BceM npUBeT!», а имя «Юлия» как «I-OJIU9I».

Бытовой транслит

Сейчас уже довольно сложно представить, когда транслит может понадобиться человеку в обычном интернет-общении. Особенно если он сидит у себя дома за собственным компьютером. Пожалуй, редким исключением может стать разве что регистрация на форуме или ином ресурсе, который до сих пор по каким-то причинам не поддерживает написание ников на русском и приходится прибегать к транслиту на английский. Однако такая необходимость вполне может остро встать в поездках. Будучи заграницей и имея в своём распоряжении клавиатуру без русской раскладки в местном интернет-кафе, порой приходится вспоминать этот способ, чтобы донести свои послания друзьям на родине.

В данном случае обычно используется замещение по принципу относительного фонетического соответствия, хотя и не очень точного. Например, те же самые «Всем привет!» и «Юлия» будут выглядеть как «Vsem privet!» и «Ulia»/«Yuliya».

Как можно увидеть на примере с именем, возможны разные вариации. Иногда другие графические знаки, помимо букв, прокрадываются из «геймерского стиля» и сюда. Слово «человек» можно написать как «chelovek», а можно как «4elovek», что несколько экономит время.

Транслит с английского на русский

Транслит по-русски тоже периодически встречается в повседневном интернет-общении. Мы окружены множеством иностранных названий - логично предположить, что человеку проще написать «стиральная машина «Индезит» используя фонетическое соответствие, чем переключаться на английскую раскладку и вспоминать, как это слово правильно пишется на английском.

Правильный транслит

С ним мы можем встретиться, например, при прописывании адресов сайтов. На самом деле, данный вид транслита по своей сути уже ближе к транслитерации, поскольку зачастую тут стоит придерживаться строгих правил. Например, соблюдение принятых стандартов транслитерации при создании URL страниц будет крайне важно для успешного SEO-продвижения. Однако это не отменяет того, что многие в данном случае продолжают транслитерировать на своё усмотрение.

Типичные соответствия при использовании транслита

Несмотря на то, что транслит не имеет жёстких правил, основные соответствия обозначить можно. Предлагаем вам для наглядности таблицу.

Кириллица Латиница Кириллица Латиница
А а А a С с S s
Б б B b Т т T t
В в V v У у U u
Г г G g Ф ф F f
Д д D d Х х H h
Е е E e Ц ц Ts ts
Ё ё Yo yo Ч ч Ch ch
Ж ж Zh zh (или *) Ш ш Sh sh
З з Z z Щ щ Sch sch
И и I i Ъ ъ -
Й й J j Ы ы I i
К к K k Ь ь "
Л л L l Э э E e
М м M m Ю ю U u или Yu yu
Н н N n Я я Ya ya или Ia ia
О о O o
П п P p
Р р R r

Транслит-переводчики

В этом случае, кстати, существуют и хорошие помощники. Так, если вам кажется, что транслит - это нечто слишком сложное, но а протранслитерировать какой-либо текст понадобилось (особенно в большом объёме), могут помочь появившиеся в последнее время многочисленные онлайн-переводчики с русского на транслит.

Пользоваться ими очень просто: достаточно ввести в соответствующее поле текст на русском и программа сделает за вас всё сама. Вам останется только скопировать получившийся результат и отправить адресату.

Возможно, кто-то еще помнит, как писали SMS, а иногда и письма, «транслитом». Но зачем транслитерация сегодня, когда везде уже unicode? К сожалению, унаследованные приложения выходят из эксплуатации намного медленнее, чем хотелось бы. Например, и сегодня используются томографы, не допускающие кириллицу в именах пациентов. При том, что информационная система, используемая тем же отделением, прекрасно кириллицу понимает. И оператору томографа нужно не просто позвать пациента на исследование, но и правильно записать его фамилию в какие-нибудь документы. Похожие ситуации могут встретится в разных местах.

То есть, возникает задача как-то передать текстовые данные в унаследованную систему, чтобы:

  • человек - оператор унаследованной системы смог прочесть полученный текст «по звучанию»
  • при необходимости можно было бы однозначно восстановить исходный кириллический текст
Чтобы не было скучно, добавим более подробных требований, связанных с совместимостью и простотой для человека:
  1. использовать только буквы в узком смысле, без знаков препинания и диакритических элементов (это заодно позволит сохранить регистр)
  2. каждую исходную букву преобразовывать независимо от остальных (без сложностей вроде «в начале / в конце слова» и т.п.)
  3. замены как можно более короткие, в идеале одно-буквенные
  4. правила обратного преобразованния как можно проще, например, замены должны соответствовать условию Фано
  5. близкие по звучанию замены, в представлении «обычного человека» - на практике это некая смесь из латыни, английской, французской, немецкой и, иногда, испанской фонетики
Конечно, перечисленное не совсем требования (кроме первых двух), а, скорее, эвристики.

Можно найти много готовых вариантов транслитерации кириллицы в латиницу. Но среди них не нашлось ничего, что бы удовлетворяло всем требованиям в приемлемой степени. То использует диакритические символы, как стандарты, то выбрасывает буквы (обычно «Ъ»), то предлагают необратимые (щ -> shch) или фонетически дикие (ш -> w) варианты замены, или имеют другие фатальные недостатки .

Значит, делаем свой велосипед. Собственно, нужно составить таблицу соответствия, и описать алгоритм преобразования туда и обратно.

Таблица

Начнем со всем очевидных одно-буквенных замен:
А Б В Г Д Е Ё Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я
A B V G D E Z I K L M N O P R S T U F

Помня о требовании возможно коротких замен, и поскольку для «С» используем «S», с чистой совестью используем для «Ц» символ «C».

Для оставшихся букв традиция (и просто нехватка символов латиницы) велит нам использовать двух-буквенные сочетания. Для простоты прямого и, в особенности, обратного преобразования, хорошо бы, чтобы сочетания образовывали символы, не используемые вне сочетаний. По условию Фано, такой особый символ должен стоять в начале сочетания, но традиция слишком сильна и букву «H» будем писать все-таки в конце сочетания. Но, если отдельно символ «H» не использовать и разрешить алгоритму преобразования «возвращаться» (на самом деле, - запоминать) к предыдущему входному символу, для постфиксных сочетаний можно считать выполненным «перевернутый» аналог условия Фано. То есть алгоритм сможет их однозначно определять.

Особый символ для согласных везде один - «H». А для гласных есть два варианта: «Y» и «J». Хотя «Y» привычнее, он также часто используется отдельно, для «Й» или для «Ы». А «J» скорее воспринимается как чисто вспомогательный символ.

Решено, используем для гласных «J». А кстати освободившийся «Y» используем для «Й».

Раз «J» теперь особый символ, использовать его для «Ж» нельзя, и остается только «ZH». Аналогично, для «Х» нельзя использовать «H», и остается только «KH».

Теперь можем записать общепринятые и выбранные сочетания и одиночные символы:

А Б В Г Д Е Ё Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я
A B V G D E ZH Z I Y K L M N O P R S T U F KH C CH SH EH JU JA

Распространенные и хорошие (в смысле наших требований) замены здесь кончились, и мы вступаем на зыбкую почву «отсебятины», аналогий и компромиссов.

Начнем с «Ы». «Y» уже занят (помним про обратимость), да и фонетически это плохая замена. Посмотрим на решение для «Э» (взято, между прочим, из ISO/R 9, 1968 г.). По аналогии «Ы» должно заменятся на «IH». Странно, что такой вариант нигде не встретился.

С «Ё» ситуация тоже странная. Есть понятный, но не подходящий нам вариант «E». И есть фонетический вариант «JO». Но в русском алфавите «Ё» не случайно сделана на основе «Е», а не «О». «Ё» часто чередуется с «Е», например «клё н - кле новый», и никогда не чередуется с «О». Это получается еще одна эвристика - «алфавитная» (не фонетическая и не графическая) близость букв. В результате для «Ё» конструируем замену «JE».
Сделаем паузу:

А Б В Г Д Е Ё Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я
A B V G D E JE ZH Z I Y K L M N O P R S T U F KH C CH SH IH EH JU JA

Как хорошо было бы на этом остановится и сказать, что задача в первом приближении решена. Но остались еще три буквы, без которых никак не обойтись. Для оставшихся букв нет никаких адекватных вариантов. Знаки обычно заменяют апострофами, а буквенные замены либо просто произвольны, либо «остроумны», вроде «ь» ->«q». Для «Щ» замена без диакритических знаков обычно длиной в 3 - 4 символа, и с ней еще будут проблемы.

После долгих исканий и страданий, пришлось остановится на таком рассуждении: для букв, которым не соответствуют звуки, нельзя использовать буквы, для которых звуки есть. И нам остаются только «специальные» символы для образования сочетаний. Но по условию Фано их нельзя использовать отдельно, сочетания станут неоднозначны.

Выход - использовать сочетания специальных символов друг с другом. Это, видимо, еще немного усложнит алгоритм преобразования, но кажется возможным сохранить однозначность.

Для твердого знака (он у нас только разделительный) интуитивно кажется уместной замена «HH» (не читается, как пауза, разделение).

А для мягкого знака цепочки ассоциаций («J» -> йотированные гласные -> смягчение предыдущей согласной) + («H» -> разделение) приводят к замене «JH».

Не назовешь красивым решением, но среди гнилых яблок выбор не велик.

К сожалению, такой выбор делает невозможным использовать замену «Щ» -> «SHH». Последовательность «SHH» будет означать «СЪ», и такое сочетание встречается в русском языке (например, «съезд»). Тут снова нет симпатичных решений, и надо искать хоть как-то мотивированные. Звук «Щ» близок к смягченному «Ш», и по аналогии с мягким знаком можно это изобразить префиксным «J». Понимаю, что сейчас ссылаюсь сам на себя, что код все равно длинны 3 и не стандартный. Но, как говорится, «других писателей у нас для вас нЭт».

В результате:

А Б В Г Д Е Ё Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я
A B V G D E JE ZH Z I Y K L M N O P R S T U F KH C CH SH JSH HH IH JH EH JU JA

Алгоритм

Преобразование из кириллицы в латиницу тривиально. На регистр не обращаем внимания для краткости.

Код на Java

public class Translit { public static String cyr2lat(char ch){ switch (ch){ case "А": return "A"; case "Б": return "B"; case "В": return "V"; case "Г": return "G"; case "Д": return "D"; case "Е": return "E"; case "Ё": return "JE"; case "Ж": return "ZH"; case "З": return "Z"; case "И": return "I"; case "Й": return "Y"; case "К": return "K"; case "Л": return "L"; case "М": return "M"; case "Н": return "N"; case "О": return "O"; case "П": return "P"; case "Р": return "R"; case "С": return "S"; case "Т": return "T"; case "У": return "U"; case "Ф": return "F"; case "Х": return "KH"; case "Ц": return "C"; case "Ч": return "CH"; case "Ш": return "SH"; case "Щ": return "JSH"; case "Ъ": return "HH"; case "Ы": return "IH"; case "Ь": return "JH"; case "Э": return "EH"; case "Ю": return "JU"; case "Я": return "JA"; default: return String.valueOf(ch); } } public static String cyr2lat(String s){ StringBuilder sb = new StringBuilder(s.length()*2); for(char ch: s.toCharArray()){ sb.append(cyr2lat(ch)); } return sb.toString(); } }


Для примера результата пара известных панграмм:
SHirokaja ehlektrifikacija juzhnihkh guberniy dast mojshnihy tolchok podhhjemu seljhskogo khozjaystva.
Shheshjh zhe ejshje ehtikh mjagkikh francuzskikh bulok da vihpey chaju.

Выглядит не очень, но основное назначение этого варианта транслитерации все-таки ФИО:
Aleksandr Ivanovich Lebedjh
Georgiy Konstantinovich ZHukov

С обратным преобразованием куда интереснее. Особенно учитывая, что его хорошо бы объяснить человеку (не из IT) для выполнения «в уме».
Видимо, начать надо с особых случаев.
  • Поскольку читаем мы слева направо, первым дело обращаем внимание на символ «J». За ним обязательно должен идти один из пяти символов: «E», «H», «U», «A» или «S» (за «S» должен в этом случае обязательно быть еще «H»), и получается то, что в таблице для двух-трех буквенных сочетаний.
  • Если «J» нет, смотрим, не идет ли следом за символом буква «H». Тут самый тяжелый для внимания момент: в этот случай не должен попасть вариант, когда третьим символом снова идет «H» (это код «HH»). То есть видеть и анализировать надо три символа подряд. Вот где нарушение условия Фано аукнулось (хорошо, что один раз).
  • Если ни «J», ни одиночного «H» поблизости от символа не обнаружилось, смело заменяем его по таблице как отдельную букву.
После недолгой тренировки, как показывает практика, люди способны выполнять обратное преобразования вручную. Но заставлять их это делать без особой необходимости, конечно, не надо. Можно и автоматизировать (опять же для простоты только для строки и в верхнем регистре):

Код на Java

public static String lat2cyr(String s){ StringBuilder sb = new StringBuilder(s.length()); int i = 0; while(i < s.length()){// Идем по строке слева направо. В принципе, подходит для обработки потока char ch = s.charAt(i); if(ch == "J"){ // Префиксная нотация вначале i++; // преходим ко второму символу сочетания ch = s.charAt(i); switch (ch){ case "E": sb.append("Ё"); break; case "S": sb.append("Щ"); i++; // преходим к третьему символу сочетания if(s.charAt(i) != "H") throw new IllegalArgumentException("Illegal transliterated symbol at position "+i);// вариант третьего символа только один break; case "H": sb.append("Ь"); break; case "U": sb.append("Ю"); break; case "A": sb.append("Я"); break; default: throw new IllegalArgumentException("Illegal transliterated symbol at position "+i); } }else if(i+1 < s.length() && s.charAt(i+1)=="H" && !(i+2 < s.length() && s.charAt(i+2)=="H")){// Постфиксная нотация, требует информации о двух следующих символах. Для потока придется сделать обертку с очередью из трех символов. switch (ch){ case "Z": sb.append("Ж"); break; case "K": sb.append("Х"); break; case "C": sb.append("Ч"); break; case "S": sb.append("Ш"); break; case "E": sb.append("Э"); break; case "H": sb.append("Ъ"); break; case "I": sb.append("Ы"); break; default: throw new IllegalArgumentException("Illegal transliterated symbol at position "+i); } i++; // пропускаем постфикс }else{// одиночные символы switch (ch){ case "A": sb.append("А"); break; case "B": sb.append("Б"); break; case "V": sb.append("В"); break; case "G": sb.append("Г"); break; case "D": sb.append("Д"); break; case "E": sb.append("Е"); break; case "Z": sb.append("З"); break; case "I": sb.append("И"); break; case "Y": sb.append("Й"); break; case "K": sb.append("К"); break; case "L": sb.append("Л"); break; case "M": sb.append("М"); break; case "N": sb.append("Н"); break; case "O": sb.append("О"); break; case "P": sb.append("П"); break; case "R": sb.append("Р"); break; case "S": sb.append("С"); break; case "T": sb.append("Т"); break; case "U": sb.append("У"); break; case "F": sb.append("Ф"); break; case "C": sb.append("Ц"); break; default: sb.append(ch); } } i++; // переходим к следующему символу } return sb.toString(); }

Итог

Казалось бы, простая и давно решенная задача, а какой простор для творчества и обсуждений.

Если серьезно, получился рабочий алгоритм обратимой транслитерации всех букв русской кириллицы в буквы латиницы. При этом результат, со скидкой на жесткость требований, приемлемо читаем. Можно использовать для интеграции с унаследованными системами и библиотеками, для генерации идентификаторов.

Надеюсь, кому-нибудь решение покажется полезным, а путь к нему - занятным.

Дополнение

По мотивам обсуждения в комментариях. Надо быть короче и формальнее.
Есть не отменяемые требования:
  1. В результате транслитерации должны получаться только буквы основной латиницы

    (их всего 26)

    abcdefghijklmnopqrstuvwxyz

  2. Транслитерация должна быть полностью обратима
Есть стандарты . Ни один не соответствует требованиям.
Надо выбрать один стандарт и минимально его модифицировать, только для соответствия требованиям.
Модификации однозначно определяются по цепочке. Если Вам не нравится результат, напишите, пожалуйста, с какого пункта цепочки Вы не согласны.

Для обоснования решений немного теории.

Транслитерация - точная передача знаков одной письменности знаками другой письменности.
Не путать с фонетической транскрипцией - передача звучания поощряется, но не гарантирована.
Самый низкий приоритет имеют соображения графического сходства символов. Например передача буквы ха как икс - фонетически не приемлема.

Транслитерацию можно рассматривать как кодирование символов исходного алфавита кодами переменной длинны из символов целевого алфавита. Кодом может быть:

  1. одиночные символы
  2. некий префикс и следующий за ним базовый символ
  3. базовый символ и следующий за ним некий постфикс
  4. базовый символ и c префиксом и с постфиксом
Префикс и постфикс могут быть разной длины, разумеется, чем короче, тем лучше. И конечно, хорошо бы поменьше разных префиксов и постфиксов.
Для кириллицы и латиницы вполне можно ограничится одним префиксом и одним постфиксом, оба по одному символу.

Для «легкой обратимости» кодов введем такое условие:

никакой код не должен начинаться с постфикса и не должен заканчиваться префиксом.

Это моё обобщение префиксного кода .
При соблюдении такого условия можно утверждать, что в любом фрагменте результирующей последовательности не будет длинных «ложных кодов». То есть понятно, что можно отрезать префикс или постфикс, и оставшийся базовый символ совпадет с одиночным.
Этого не избежать и это придется помнить. Но не случится такого, что кусочек составного года считается вместе с соседним одиночным символом как незапланированный составной код.
Например, пусть мы используем код «S», код «SH» и код «HH» (нарушает условие, начинается с постфикса). Тогда в последовательности «SHH» (третий и первый коды) можно выделить фрагмент «SH» (соответствует второму коду).
Для префиксов нарушение условия «легкой обратимости» не так неприятно (разница потому, разбор идет слева направо). Но тоже затрудняет восприятие «на глаз» - при беглом просмотре мы считываем слово целиком, а не последовательно, и можем «зацепиться» за случайное сочетание.
Частным следствием введенного условия является запрет на использование префикса или постфикса как одиночных символов.

Для кириллицы и латиницы постфикс - это без вариантов «H».
Префикс бывает «Y» или «J». Если использовать префикс «Y», его нельзя будет применять для передачи «Й» или «Ы». То есть для двух букв (а «Й» довольно частая) придется придумать не стандартные, далекие от фонетики, и скорее всего длинные коды.
С «J» проблем нет. Отдельно этот символ применять и не хотелось.


I. Выберем отправной стандарт.
Самый фонетически верный, конечно, BGN. Но BGN принципиально (даже нарочито) не обратимый.
Самый близкий к базовой латинице и к обратимости, на мой взгляд, «ГОСТ 16876-71 / таблица 2», его и выберем.

...?

Спросите, почему не актуальный сейчас «ГОСТ 7.79-2000 / система Б». В основном за «Х» --> «X» и «Й» --> «J». Ну и сегодня актуальный - а завтра, как предыдущий ГОСТ.

А Б В Г Д Е Ё Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я
A B V G D E JO ZH Z I JJ K L M N O P R S T U F KH C CH SH SHH Y EH JU JA

Схема не идеальна в плане наших требований. Придется менять.
II. Первым бросается в глаза «JJ». Почему это плохо, можно посмотреть в «теоретическом» спойлере. Следуем правилу «в любой непонятной ситуации смотри на BGN». То есть «Й» --> «Y».
III. Теперь осталась без кода «Ы». BGN не помогает. Есть фонетическая аналогия в парах «И-Ы» и «Е-Э». Для получения кода буквы «Э» стандарт добавляет к коду «Е» постфикс. Поступим также: «Ы» --> «IH».
IV. Остались не-буквенные замены для «Ь» и «Ъ». Чтобы не разрушить фонетику, можем использовать только префиксы и постфиксы.
V. Заметим, что никто не запрещал (в «теоретическом» спойлере) использовать постфикс в качестве базового символа в сочетаниях с префиксом (как минимум), и наоборот. То есть у нас есть коды «JH», «JHH» и «JJH».
VI. Осталось распределить это богатство. Более частому «Ь» - самый короткий код: «Ь» --> «JH».
VII. У «Ъ» нет звука, «Н» легче не озвучивать при чтении. Так что выберем из оставшегося код, где больше «Н»: «Ъ» --> «JHH».

Получилось:

А Б В Г Д Е Ё Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я
A B V G D E JO ZH Z I Y K L M N O P R S T U F KH C CH SH SHH JHH IH JH EH JU JA

Код «SHH» единственный использует постфикс длины 2. Но общая длина кода всего 3, буква редкая. Обратимость не нарушается (и даже «легкая обратимость»).
Больше ничего в стандарте трогать нет необходимости.

Код на Java для иллюстрации

package tools; import static java.lang.Character.toUpperCase; /** * Обратимая транслитерация кириллицы в латиницу * Created by vladimir on 25.08.15. */ public class Translit { public static String lat2cyr(String s){ StringBuilder sb = new StringBuilder(s.length()); int i = 0; while(i < s.length()){// Идем по строке слева направо. В принципе, подходит для обработки потока char ch = s.charAt(i); boolean lc = Character.isLowerCase(ch); // для сохранения регистра ch = toUpperCase(ch); if(ch == "J"){ // Префиксная нотация вначале i++; // преходим ко второму символу сочетания ch = toUpperCase(s.charAt(i)); switch (ch){ case "O": sb.append(ch("Ё", lc)); break; case "H": if(i+1 < s.length() && toUpperCase(s.charAt(i+1))=="H") { // проверка на постфикс (вариант JHH) sb.append(ch("Ъ", lc)); i++; // пропускаем постфикс }else{ sb.append(ch("Ь", lc)); } break; case "U": sb.append(ch("Ю", lc)); break; case "A": sb.append(ch("Я", lc)); break; default: throw new IllegalArgumentException("Illegal transliterated symbol ""+ch+"" at position "+i); } }else if(i+1 < s.length() && toUpperCase(s.charAt(i+1))=="H"){// Постфиксная нотация, требует информации о двух следующих символах. Для потока придется сделать обертку с очередью из трех символов. switch (ch){ case "Z": sb.append(ch("Ж", lc)); break; case "K": sb.append(ch("Х", lc)); break; case "C": sb.append(ch("Ч", lc)); break; case "S": if(i+2 < s.length() && toUpperCase(s.charAt(i+2))=="H") { // проверка на двойной постфикс sb.append(ch("Щ", lc)); i++; // пропускаем первый постфикс }else{ sb.append(ch("Ш", lc)); } break; case "E": sb.append(ch("Э", lc)); break; case "I": sb.append(ch("Ы", lc)); break; default: throw new IllegalArgumentException("Illegal transliterated symbol ""+ch+"" at position "+i); } i++; // пропускаем постфикс }else{// одиночные символы switch (ch){ case "A": sb.append(ch("А", lc)); break; case "B": sb.append(ch("Б", lc)); break; case "V": sb.append(ch("В", lc)); break; case "G": sb.append(ch("Г", lc)); break; case "D": sb.append(ch("Д", lc)); break; case "E": sb.append(ch("Е", lc)); break; case "Z": sb.append(ch("З", lc)); break; case "I": sb.append(ch("И", lc)); break; case "Y": sb.append(ch("Й", lc)); break; case "K": sb.append(ch("К", lc)); break; case "L": sb.append(ch("Л", lc)); break; case "M": sb.append(ch("М", lc)); break; case "N": sb.append(ch("Н", lc)); break; case "O": sb.append(ch("О", lc)); break; case "P": sb.append(ch("П", lc)); break; case "R": sb.append(ch("Р", lc)); break; case "S": sb.append(ch("С", lc)); break; case "T": sb.append(ch("Т", lc)); break; case "U": sb.append(ch("У", lc)); break; case "F": sb.append(ch("Ф", lc)); break; case "C": sb.append(ch("Ц", lc)); break; default: sb.append(ch(ch, lc)); } } i++; // переходим к следующему символу } return sb.toString(); } public static String cyr2lat(char ch){ switch (ch){ case "А": return "A"; case "Б": return "B"; case "В": return "V"; case "Г": return "G"; case "Д": return "D"; case "Е": return "E"; case "Ё": return "JO"; case "Ж": return "ZH"; case "З": return "Z"; case "И": return "I"; case "Й": return "Y"; case "К": return "K"; case "Л": return "L"; case "М": return "M"; case "Н": return "N"; case "О": return "O"; case "П": return "P"; case "Р": return "R"; case "С": return "S"; case "Т": return "T"; case "У": return "U"; case "Ф": return "F"; case "Х": return "KH"; case "Ц": return "C"; case "Ч": return "CH"; case "Ш": return "SH"; case "Щ": return "SHH"; case "Ъ": return "JHH"; case "Ы": return "IH"; case "Ь": return "JH"; case "Э": return "EH"; case "Ю": return "JU"; case "Я": return "JA"; default: return String.valueOf(ch); } } public static String cyr2lat(String s){ StringBuilder sb = new StringBuilder(s.length()*2); for(char ch: s.toCharArray()){ char upCh = toUpperCase(ch); String lat = cyr2lat(upCh); if(ch != upCh){ lat = lat.toLowerCase(); } sb.append(lat); } return sb.toString(); } /** * Вспомогательная функция для восстановления регистра */ private static char ch(char ch, boolean toLowerCase){ return toLowerCase? Character.toLowerCase(ch): ch; } /** * Пробы */ public static void main(String args) { String s1 = cyr2lat("Александр Иванович Лебедь"); String s2 = cyr2lat("Веснушчатый Щавелевый"); String s3 = cyr2lat("Широкая электрификация южных губерний даст мощный толчок подъёму сельского хозяйства"); String s4 = cyr2lat("Съешь же ещё этих мягких французских булок да выпей чаю."); String s5 = cyr2lat("А Б В Г Д Е Ё Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я"); System.out.println(s1); System.out.println(s2); System.out.println(s3); System.out.println(s4); System.out.println(s5); System.out.println(); System.out.println(lat2cyr(s1)); System.out.println(lat2cyr(s2)); System.out.println(lat2cyr(s3)); System.out.println(lat2cyr(s4)); System.out.println(lat2cyr(s5)); } }


Код приведен только для экспериментов и наглядного описания алгоритма обратного преобразования.

Для промышленных нужд транслитерации есть соответствующие решения (хотя готового решения по требованиям 1 и 2 нет).

Из промышленных стандартов транслитерация входит в Unicode Common Locale Data Repository Project (CLDR) .
Есть очень мощная реализация в том числе CLDR: International Components for Unicode .
Конкретно Java-версия ICU: ICU4J .
Там есть фреймворк для описания и выполнения транслитерации (и много чего еще).
Для российской кириллицы там есть готовые реализации:
1. ISO 9. Обратимая, но с диакритами.
2. BGN. Без диакритов, но с пунктуационными знаками и необратимая.
Есть «неопределенный план» добавить ГОСТ.
Если будет время и силы разобраться, сделаю и выложу реализацию своей схемы средствами ICU4J.

Благодаря конструктивной критике в комментариях, решение изменилось. Моё понимание проблемы стало глубже. Задумался о «взрослой» реализации.
Всем спасибо! Хабр делает вещи лучше.

Раздел очень прост в использовании. В предложенное поле достаточно ввести нужное слово, и мы вам выдадим список его значений. Хочется отметить, что наш сайт предоставляет данные из разных источников – энциклопедического, толкового, словообразовательного словарей. Также здесь можно познакомиться с примерами употребления введенного вами слова.

Значение слова транслитерация

транслитерация в словаре кроссвордиста

Толковый словарь русского языка. Д.Н. Ушаков

транслитерация

транслитерации, мн. нет, ж. (от латин. trans - через и littera - буква) (спец.). Написание путем передачи букв одного алфавита буквами другого алфавита.

Толковый словарь русского языка. С.И.Ожегов, Н.Ю.Шведова.

транслитерация

И. ж. В языкознании: побуквенная передача текстов и отдельных слов одной графической системы средствами другой графической системы. Т. русских слов латинскими буквами.

прил. транслитерационный, -ая, -ое.

Новый толково-словообразовательный словарь русского языка, Т. Ф. Ефремова.

транслитерация

ж. Побуквенная передача иноязычных слов в соответствии с их написанием в языке- источнике путем замены букв одной графической системы буквами другой системы.

Энциклопедический словарь, 1998 г.

транслитерация

ТРАНСЛИТЕРАЦИЯ [от транс... и лат. lit(t)era - буква] передача текста, написанного с помощью одного алфавита, средствами другого алфавита. Часто используется при передаче имен собственных чужого языка.

Транслитерация

(от транс┘ и лат. littera ≈ буква), перевод одной графической системы алфавита в другую (то есть передача букв одной письменности буквами другой). Пример Т.: немецкий Schiller ≈ русский «Шиллер», где немецкие sch является сложной единицей и передаётся одной буквой «ш». Т. отличается от практической транскрипции своей универсальностью; она ориентирована не на определённый язык, а на определённую систему графики. Поэтому Т. не обязана ограничиваться средствами какого-либо одного национального алфавита, в ней могут быть специальные буквы и диакритические знаки . Т. не означает механической побуквенной подстановки; она должна учитывать исконное звучание слова. Т. имеет большое практическое значение (международная письменная унификация географических названий, собственных имён и т. п.), однако до сих пор нет единой общепринятой системы Т. русского алфавита (наиболее известные системы ≈ АН СССР 1951≈57 и библиотеки конгресса США).

Лит.: Реформатский А. А., Транслитерация русских текстов латинскими буквами, «Вопросы языкознания», 1960, ╧ 5.

В. А. Виноградов.

Википедия

Транслитерация

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

Возможна графическая передача четырёх типов:

  1. один знак в один знак;
  2. один знак в последовательность знаков;
  3. последовательность нескольких знаков в один знак;
  4. последовательность нескольких знаков в последовательность нескольких знаков, не соответствующую передаче знаков по отдельности.

Необходимость в транслитерации возникла в конце XIX в. при создании прусских научных библиотек для включения в единый каталог работ, написанных на языках с латинской, кириллической, арабской, индийскими и другими системами письма. Инструкции по транслитерации, составленные для нужд этих библиотек, послужили в XX в. основой стандарта для перевода нелатинских систем письма на латиницу.

Примеры употребления слова транслитерация в литературе.

Более важно то, что письма Вейстхора содержали множество замечаний относительно семейной традиции Вилигута, рифмованные выражения рунической мудрости, мифологические стихи, размышления о космологии и эпохах древней истории, копии девяти языческих заповедей от 1908 с их рунической транслитерацией , ирминистские молитвы на готском языке.

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

Звали его Цинь Ши-хуанди, но причуды транслитерации преобразили это имя на Западе в Чина.

Немцевича был тот же познаньский экземпляр: ведь в таком случае латинскую транслитерацию названия и опубликованного текста следовало бы приписать Ю.

Комендант записал транслитерацию на своем языке и продолжал допрос: - Наименование расы?

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

Что такое транслит ? Это передача текста чужим алфавитом. При транслите могут использоваться цифры и знаки, которые есть на клавиатуре. Этим он и отличается от транслитерации. Фактически это неформальная транслитерация. Русский транслит можно считать неформальной романизацией, поскольку в нем применяется латинский алфавит. В то время как в армянском транслите может использоваться и латинский алфавит, и кириллица.

Кстати, на нашем сайте вы можете выполнить транслитерацию слов с русского на английский и обратно, воспользовавшись Транслитерацией онлайн .

Слово «транслит» иногда в профессиональной речи используют вместо слова «транслитерация».

Принцип транслитерации.

В целом, транслит строится по принципу фонетических соответствий (латинских и русских букв). Довольно часто правила чтения в разных языках сочетаются. В первую очередь, конкуренция происходит между соответствиями старо-латинских транскрипций польско-немецкого толка (й→j, ц→c, ы→y, ю→ju, я→ja) и позднее усвоенных английских (ы→y, ц→ts, ч→ch, ш→sh, ю→yu, я→yа). Редко может использоваться визуальное сходство знаков (ш→III или ш→w; ч→4; я→9I; ы→bl). Однако, такой способ чаще всего считают не транслитом, а «кодировкой Волалюка». В написании заимствованные слова могут передаваться на языке оригинала. ТАБЛИЦА

Буква

Транслит

Буква

Транслит

Буква

Транслит

", опускается

", опускается

j;
ий → iy, y;

Применение транслитерации.

Само явление «транслит» появилось еще в докомпьютерное время, когда русские тексты передавались международными телеграфами. В связи с появлением кракозябр использование транслита стало очень популярным в интернет общении. Также он довольно активно употребляется при общении через SMS, так как сообщение, набранное латиницей, содержит вдвое больше букв, чем сообщение набранное кириллицей в кодировке Юникод.

Существует ряд несовместимых между собой правил и стандартов транслитерации (советских и российских) кириллицы латинским алфавитом:

  • СЭВ 1362-78;
  • ГОСТ 16876-71;
  • ГОСТ 7.79-2000 (перевод ISO 9)
  • ГОСТ Р 52535.1-2006 Приложение А.

Во многих стандартах (например, ГОСТ 16876-71 и ГОСТ 7.79-2000) транслитерация прописывается несколькими способами. Одним для преобразования одного символа кириллицы в несколько символов латиницы без диакритики, а другим для преображения символа в символ с использованием латинских диакритических символов.

Изменения в 21 веке - транслит в Интернете.

Транслитерация очень распространилась в Интернете в 1990-1999 годах. Тогда в группах новостей и на форумах было довольно много сообщений, написанных транслитом, даже некоторые авторские сайты были на транслите. Стремительное развитие компьютерных технологий в 21 веке кардинально изменило эту ситуацию. Упростилась процедура поддерживания ввода и чтения кириллицы на японских, немецких и английских компьютерах. По этой причине транслитерация исчезла даже на русскоязычных форумах — от Германии до Австралии.

В последнее время стало заметно, что российские пользователи всемирной паутины Интернет стремятся уйти от применения транслита не только в текстах. Такие перемены связаны с появлением кириллической зоны.рф (см. примечание).

Если говорить о целевой аудитории рф-сайтов, то «эксперты» приводят такую статистику:

Чтение. Изначально кириллица поддерживается в обычных шрифтах, которые включены в поставку каждой популярной операционной системы, независимо от того немецкая она или корейская. Так читать ru.wikipedia.org можно даже в Токио в любом интернет-кафе.

Ввод. В отличие от шрифтов, клавиатурные средства ввода кириллицы, которые тоже первоначально присутствуют, необходимо активировать путем добавления русской («RU») раскладки клавиатуры. Для одного языка можно иметь, на выбор, несколько разнообразных раскладок. К примеру, для русского языка, помимо двух стандартных обычных раскладок можно установить и фонетическую раскладку, в то время, как для английского есть лишь «раскладка Дворака».

Сейчас несколько сотен тысяч русскоговорящих людей, которые еще в 20 веке годами писали на транслите, общаются по почте, в блогах и на форумах, пользуясь стандартной кириллицей. Она имеет свои преимущества:

Во-первых, текст со стандартной, обычной русской раскладки вводить с помощью клавиатуры не обязательно. Теперь можно воспользоваться методом В. Маслова и установить фонетическую раскладку основной, системной клавиатуры. То есть, при такой раскладке ввод данных происходит в виде, привычном для людей (А—A, Б—B, Д—D, Ф—F, К—K, О—O).

Во-вторых, если Вы пользуетесь «чужим компьютером» (в барселонском интернет-кафе) Вам не нужно пользоваться такими устаревшими методами как ненадёжные «перекодировщики текста, введённого латиницей» или кропотливый ввод мышкой с помощью старого типа виртуальной клавиатуры. В настоящее время набирать текст быстро и удобно можно в любом интернет-кафе вне России. Для этого необходимо зайти на современные сайты Виртуальной Клавиатуры, где полностью имитируется «домашний», «системный» ввод. Здесь Вы сможете вводить данные с помощью той же раскладки (фонетической или стандартной), что и дома.

Примечание. По распространённости русский язык занимает пятое место в мире. Он - один из шести официальных языков Организации Объединенных Наций. Им владеют более 300 миллионов человек в мире, а 160 миллионов из них считают русский язык родным и лишь 34 % владеют английским языком на начальном уровне. Соответственно, можно сделать вывод, что зона.рф даст возможность более 100 миллионам человек пользоваться Интернетом на более понятном языке.

Транслит или транслитерация – это популярный язык сети интернет. С его помощью можно передать текст, написанный языке . Иногда в такой « » могут быть «вплетены» цифры и другие доступные знаки. Транслитерации подвергается не только русский язык, высшее руководство многих стран на законодательном уровне регулирует транслитеративные переводы, т.к. имеют место быть случаи, когда таким образом оформляются документы международного образца.

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

Как транслитерация используется сегодня

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

Благодаря сервисам транслитерации стало возможным:

Получить эмулятор русской клавиатуры. Пользователь может вводить , даже если они не указаны на клавиатуре и не содержатся в настройках операционной системы. При этом от раскладки клавиатуры ничего не зависит.

Правильно писать технологические словосочетания. Речь идет об улучшении условий труда профессиональных переводчиков и зарубежных лингвистов, которые стали руководствоваться специальными правилами, соответствующими международным стандартам и стандартам ГОСТ.

Как транслитерация помогает общению

Ее принцип до сих пор используется в разговорниках. Ведь важно не только донести свою мысль до иностранного собеседника, но и научиться понимать то, что он говорит. Здесь также существуют свои определенные правила, правда, не такие жесткие. В частности, применяют принцип фонетического соответствия, например, русская буква «б» соответствует английской b, «г» - g, «л» - l и т. д. Иногда для решения подобного рода проблем привлекается польско-немецкая транслитерация, которой пользовались во времена телеграфа и телеграмм. Главное – использовать только какой-то один вариант, чтобы корреспондент быстро привык к транслиту.

Сегодня многие пользователи уже и не представляют, зачем вообще нужен транслит, хотя проблема до сих пор актуальна, ведь не зря же продолжают пользоваться популярностью сервисы и утилиты, преобразующие текст на латинице в кириллицу.