Контакты

Официальное название с использованием транслитерации. Что такое транслитерация. Сервисы и утилиты для транслитерации

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

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

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

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

В целом, транслит строится по принципу фонетических соответствий (латинских и русских букв). Довольно часто правила чтения в разных языках сочетаются. В первую очередь, конкуренция происходит между соответствиями старо-латинских транскрипций польско-немецкого толка (й→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 миллионам человек пользоваться Интернетом на более понятном языке.

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

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

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

Некоторые использовали (и используют до сих пор) транслитерацию с русского языка на английский при отправке СМС c мобильника, если там отсутствует соответствующая языковая опция. Однако, это не единственные примеры применения translit. Сегодня об этом и поговорим.

Правила транслитерации и ее отличие от транскрипции

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

Транскрипция — это широкое понятие, которое означает по возможности точную передачу звуков конкретного языка посредством определенной системы символов.

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

Записанные с помощью спецсимволов слова чрезвычайно полезны для усвоения правильного произношения при изучении иностранных языков. Вот несколько примеров транскрипции русских слов на латинице в формате МФА (Международного Фонетического Алфавита):

Адрес — ˈadrʲɪs Алексей — ɐlʲɪksʲˈej Альманах — ɐlʲmɐnˈax Гоголь — ɡˈoɡəlʲ Дмитрий — dmʲˈitrʲɪj Евгений — jɪvɡʲˈenʲɪj Екатеринбург — jɪkətʲɪrʲɪnbˈurk Михаил — mʲɪxɐˈil Словарь — slɐvˈarʲ Татьяна — tɐtʲjˈænə Юлия — jˈʉlʲɪjə Юрий — jˈʉrʲɪj

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

Улыбка — улы́пкʌ (русская транскрипция) smile — (английская транскрипция)

Более того, буквы и слова на кириллице можно транскрибировать на английские, и наоборот.

Задачей же транслитерации, как мы уже определили, является простое отображение символов одной письменности с помощью знаков другой. Тогда приведенные выше в качестве примера русские слова (в том числе имена) будут переведены транслитом на тот же английский так:

Адрес — Adres Алексей — Aleksej Альманах — Al"manah Гоголь — Gogol" Дмитрий — Dmitrij Евгений — Evgenij Екатеринбург — Ekaterinburg Михаил — Mihail Словарь — Slovar" Татьяна — Tat"jana Юлия — Julija Юрий — Jurij

Думаю, теперь разница между транскрипцией и транслитерацией в общем значении этих терминов очевидна. Существует множество стандартов транслита, порой несовместимых между собой. Исторически были приняты несколько государственных стандартов (ГОСТ), которые включая советское время регулировали транслитерацию.

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

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

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

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

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

Способы транслита, применяемые на практике

После представления теоретической части самое время остановиться на видах практического использования транслитерации. Вот они:

1. Практическая транскрипция — базируется на стандарте типа ИСО-9, о котором я упоминал выше. Необходимо соблюдать не только грамматическое, но и фонетическое соответствие между обоими языками. Иными словами, необходимо найти "золотую середину" в написании и звучании того или иного слова на основе обоих языков.

Преимущество данного метода состоит в облегченном вводе текста. При этом используются только латинские символы. Правда, небольшие сложности могут возникнуть при прочтении некоторых специфических согласных, которые имеют такие соответствия: «ж-zh», «ч-ch», «ш-sh», «щ-shch».

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


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

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

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

Для образования русских ников это даже оригинально, но с целью отправки СМС, а тем более, при общении, такой способ явно не подходит. Правда, иногда геймерский транслит используют некоторые вебмастера для своего сайта (например, nouck.ru или kypc.ru).

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

Скажем, в нем используют для обозначения буквы «Ч» цифру «4». Также, вместо «Ж» ставят звездочку «*», вместо «Ш» — «W» и т.д. В общем, обычный translit разрешает практически любые интерпретации, главное, чтобы автору было комфортно писать текст, а читателям — легко его корректно воспринимать.

Транслитерация имен, фамилий и адресов сайтов

А теперь мы переходим к практической области, где надо жестко соблюдать соответствующие стандарты. Например, очень часто требуется указать данные (имя, фамилию, свой адрес) при регистрации на зарубежных сайтах, скажем, на том же Google Adsense () или вебсайтах платежных систем (к примеру, PayPal).

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

Потому корректное написание русского имени, фамилии, адреса (а также других необходимых данных) на английском может вам существенно помочь.

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

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

Косвенным доказательством этого может служить то обстоятельство, что, например, Яндекс при ранжировании (в о том, как ранжируют сайты поисковики) совсем недавно даже выделял жирным в результатах поиска ключевики в урлах:


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

Также следует иметь ввиду, что при составлении URL лучше всего ограничить набор символов следующим образом: использовать только цифры (0-9), буквы в верхнем (A-Z) и нижнем (a-z) регистрах, а также тире («-») и нижнее подчеркивание («_»).

Для тех, кто имеет вебресурсы, существует простое расширение (правда, этот плагин давно не обновлялся, поэтому для вроде меня существует его более современный аналог), который обеспечивает автоматический транслит русских букв в адресе страницы, создавая при этом ЧПУ (человеко-понятные урлы).

Касательно поисковой оптимизации хотелось бы остановиться еще на одном нюансе (напоминаю, что мелочей в продвижении нет). Невзирая на то, что основным международным стандартом является на данный момент ИСО-9, транслитерация в Яндексе и Гугле имеет свои особенности.

Например, в общепринятом стандарте русская буква «х» (ха) соответствует латинской «x» (икс). Однако, Yandex в выдаче не выделяет ключевики с таким вариантом в URL (выделению жирным подлежат только те ключи, где «х» транслитерирована в «h»):


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

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

В общем, вручную можно всегда проставить нужную литеру при составлении урла любой веб-страницы. Используя автоматический вариант в лице все того же RusToLat мы теряем некоторое время на редактирование, поскольку в настройках данного плагина есть возможность выставить только стандарт ISO-9 как самый подходящий. А в нем как раз соответствие «x» — «х».

Конечно, можно и здесь найти выход. А именно, чуточку изменить файл плагина, где определены соответствия между русским и латинским алфавитами. Для этого откройте его на редактирование (советую использовать в подобных случаях редактор Нотпад++) и замените нужные символы:


Только не забудьте удостовериться, что RusToLat настроен правильно в (там должна быть установлена кодировка ISO 9-95):


Естественно, проделывать такую операцию или нет, каждый для себя решает сам. Кстати, я был бы рад любому комментарию с вашей стороны относительно данного аспекта. Стоит ли игра свеч?

С целью добиться активного участия вашего сайта в поиске по картинкам можно использовать translit ключевых слов в самом названии файлов изображений. Для этих целей удобно применять программу Punto Switcher. После активации софта просто выделите название графического файла и нажмите сочетание Alt+Scroll Lock на клавиатуре (горячие клавиши по умолчанию в Свитчере).

Переводчики транслита онлайн

1. Прежде всего, я хотел бы сразу выполнить обещание и предоставить сервис, учитывающий правила Яндекса (подозреваю, что для поисковой системы Гугл он тоже подойдет). Это Translit-online.ru , где существует сразу несколько вариантов на выбор. На главной вкладке можно перевести онлайн любой текст для чтения длиной до 50 000 знаков:


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

А вот следующую страницу онлайн переводчика вы как раз можете использовать для перевода в translit адреса страницы вашего вебсайта с ЧПУ:


Также здесь имеется такой интересный инструмент как виртуальная клавиатура. Она позволяет набирать текст по-русски, даже если у вас нет русскоязычной раскладки. Переключив ее на английскую раскладку, вы можете печатать, используя латинские символы, которые максимально созвучны русским аналогам. Правда, предварительно необходимо установить виртуальную клавиатуру в режим «RU» с помощью кнопки «Esc»:

К примеру, для получения слова «транслитерация» нужно после выше описанных действий набрать на английском «t-r-a-n-s-l-i-t-e-r-a-c-i», а для вывода в текстовое поле буквы «я» надо нажать сначала Ctrl, а потом «a».

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

2. Еще одним переводчиком в транслит онлайн является известный ресурс Translit.net (бывший Транслит.ру), где свои преимущества. Тут тоже присутствует виртуальная клавиатура прямо на главной странице, которая позволяет транслитерировать текст.


И буквосочетаний.

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

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

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

Отличие от транскрипции

Отличие транслитерации от транскрипции состоит в следующем:

В противоположность транскрипции, предназначаемой для максимально точной передачи звуков языка, транслитерация, как это показывает сам термин (лат. litera - буква), касается письменной формы языка: текст, написанный на том или ином алфавите, передаётся алфавитом другой какой-либо системы. При этом обычно принимается во внимание только соответствие букв двух алфавитов, а звуки, скрывающиеся за ними, не учитываются. Транслитерация применяется преимущественно по отношению к мёртвым языкам, как санскрит, древнеперсидский и др. Кроме того, часто транслитерируют тексты живых языков, пользующихся малоизвестным или трудным алфавитом, как, например, арабский и др. При транслитерации живых языков обычно идут по пути компромисса, так как в какой-то мере необходимо учитывать и звуковой момент, чтобы не чересчур отрывать слово от его живой звучащей формы; иначе говоря, транслитерируется не алфавит, а принятая в данном языке система графики. Так, например, французская фамилия Daudet транслитерируется по-русски Додэ (или Доде), то есть учитывается, что [сочетание] au по-французски обозначает o, а конечное t не произносится. В чистой транслитерации пришлось бы эту фамилию писать Даудэт (или Даудет), что едва ли было бы рационально, так как слишком оторвало бы ее в звуковом отношении от оригинала.

М. И. Матусевич. Введение в общую фонетику. М., 1941. С. 106.

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

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

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

Зиндер. Общая фонетика. М., 1979. С. 297

Классификация

По строгости представления

Строгая

Замена каждого знака исходного текста только одним знаком другой письменности (а→a, б→b, в→v…).

Ослабленная

Замена некоторых знаков исходного текста сочетаниями двух или более знаков другой письменности (ж→zh, ч→ch, я→ya…).

Расширенная

Представление некоторых сочетаний знаков исходного текста особым образом (ый→y).

Правила

Требования

Однозначность

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

Простота

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

Желательна также обратимость этого преобразования, чтобы можно было восстановить исходное написание; на практике это соблюдается далеко не всегда.

Соблюдение правил

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

Применение

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

Примеры транслитерации алфавита

Vse lûdi roždaûtsâ svobodnymi i ravnymi v svoëm dostoinstve i pravah. Oni nadeleny razumom i sovest"û i dolžny postupat" v otnošenii drug druga v duhe bratstva.

"Ολοι οι άνθρωποι γεννιούνται ελεύθεροι και ίσοι στην αξιοπρέπεια και τα δικαιώματα. Είναι προικισμένοι με λογική και συνείδηση, και οφείλουν να συμπεριφέρονται μεταξύ τους με πνεύμα αδελφοσύνης.

Транслитерация согласно ISO 843:

Óloi oi ánthrōpoi gennioúntai eléftheroi kai ísoi stīn axioprépeia kai ta dikaiṓmata. Éinai proikisménoi me logikī́ kai synéidīsī, kai oféiloun na symperiférontai metaxý tous me pnévma adelfosýnīs.

夫谢 柳季 罗日达尤齐亚 斯沃博德内米 伊 拉夫内米 夫 斯沃约姆 多斯托因斯特韦 伊 普拉瓦赫. 奥尼 纳杰列内 拉祖莫姆 伊 索韦斯秋 伊 多尔日内 波斯图帕季 夫 奥特诺舍尼伊 德鲁格 德鲁加 夫 杜赫 布拉茨特瓦.

브세 류디 로즈흐다윧샤 스보보드니미 이 라브니미 브 스보욤 도스토인스트베 이 프라박흐. 오니 나델레니 라주몸 이 소베스티유 이 돌즈흐니 포스투팓 브 옫노셰니이 드루그 드루가 브 둑헤 브랃스트바.

vuse ryuddai rojidaiuttsuya suvii oboddonymai ai ravii nymai vii suvii oiomu dosutoai nsutovii e ai puravii akkuhu. onai naddereny razumomu ai sovii esutyu ai dorujiny posutuppatto vii onoshenai ai doraggu doraggu a vii dukkuhe burattsutovii a.

ゔせ・りゅっだい ・ろじだいうっつや・すゔぃー おぼっどんyまい ・あい ・らゔぃー んyまい ・ゔぃー ・すゔぃー おいおむ・どすとあい んすとゔぃー え・あい ・ぷらゔぃー あっくふ.・おない ・なっでれんy・らずもむ・あい ・そゔぃー えすちゅ・あい ・どるじんy・ぽすつっぱっと・ゔぃー ・おのしぇ ない あい ・どらっぐ ・どらっぐ あ・ゔぃー ・づっくへ・ぶらっつとゔぃー あ.

ヴセ・リュッダイ ・ロジダイウッツヤ・スヴィー オボッドンyマイ ・アイ ・ラヴィー ンyマイ ・ヴィー ・スヴィー オイオム・ドストアイ ンストヴィー エ・アイ ・プラヴィー アックホゥ.・オナイ ・ナッデレンy・ラズモム・アイ ・ソヴィー エステュ・アイ ・ドルジンy・ポストゥッパット・ヴィー ・オノシェナイ アイ ・ドラッグ ・ドラッグ ア・ヴィー ・ドゥックヘ・ブラッツトヴィー ア.

Vse lyudi rozhdayutsya svobodnymi i ravnymi v svoyom dostoinstve i pravakh. Oni nadeleny razumom i sovestyu i dolzhny postupat v otnoshenii drug druga v dukhe bratstva.

व्से ल्युदि रोज्दयुत्स्य स्वोबोद्निमि इ रव्निमि व् स्वोयोम् दोस्तोइन्स्त्वे इ प्रवख्. ओनि नदेलेनि रज़ुमोम् इ सोवेस्तियु इ दोल्ज़्ह्नि पोस्तुपति व् ओत्नोस्हेनिइ द्रुग् द्रुग व् दुखे ब्रत्स्त्व.

Vsē lyudi rōjdayutsya svōbōdnimi i ravnimi v svōyōm dōstōinstvē i pravakh. ōni nadēlēni razumōm i sōvēstiyu i dōlzhni pōstupati v ōtnōshēnii drug druga v dukhē bratstva.

vsE lyudi rOjdayutsya svObOdnimi i ravnimi v svOyOm dOstOinstvE i pravakh. Oni nadElEni raeumOm i sOvEstiyu i dOlehni pOstupati v OtnOshEnii drug druga v dukhE bratstva.

វ្សេ ល្យុទិ រោជ្ទយុត្ស្យ ស្វោពោទ្និមិ ឥ រវ្និមិ វ៑ ស្វោយោម៑ ទោស្តោឥន្ស្ត្វេ ឥ ប្រវខ៑. ឱនិ នទេលេនិ រជុមោម៑ ឥ សោវេស្តិយុ ឥ ទោល្ជ្ហ្និ បោស្តុបតិ វ៑ ឱត្នោស្ហេនិឥ ទ្រុគ៑ ទ្រុគ វ៑ ទុខេ ព្រត្ស្ត្វ.

ཝྶེ ལྱུདི རོཛྡཡུཏྶྱ སྭོབོདྣིམི ཨི རཝྣིམི ཝ྄ སྭོཡོམ྄ དོསྟོཨིནྶྟྭེ ཨི པྲཝཁ྄. ཨོནི ནདེལེནི རཛུམོམ྄ ཨི སོཝེསྟིཡུ ཨི དོལ྄ཛྷྣི པོསྟུཔཏི ཝ྄ ཨོཏྣོསྷེནིཨི དྲུག྄ དྲུག ཝ྄ དུཁེ བྲཏྶྟྭ.

เวฺส ลฺยุทิ โรชฺทยุตฺสฺย โสฺวโพทฺนิมิ อิ รวฺนิมิ วฺ โสฺวโยมฺ โทโไสฺตนฺสฺเตฺว อิ ปฺรวขฺ. โอนิ นเทเลนิ รชุโมมฺ อิ โสเวสฺติยุ อิ โทลฺชฺหฺนิ โปสฺตุปติ วฺ โอตฺโนเสฺหนิอิ ทฺรุคฺ ทฺรุค วฺ ทุเข พฺรตฺสฺตฺว.

См. также

  • Пиньинь (Слоговое орфографическое письмо Китая)

Примечания

Ссылки

Стандарты

Международные
  • ISO 9:1995 / ГОСТ 7.79-2000: Правила транслитерации кирилловского письма латинским алфавитом .
  • The Place Names Database (KNAB) - база данных по географическим названиям, поддерживаемая Институтом эстонского языка. (англ.)
  • Большая коллекция правил транслитерации для различных алфавитов . (англ.)
Англо-американские
  • BGN/PCGN romanization systems - система транслитерации географических названий, применяемая в США и Великобритании. (англ.)
транслитерация онлайн, транслитерация български английски
Транслитера́ция - точная передача знаков одной письменности знаками другой письменности, при которой каждый знак (или последовательность знаков) одной системы письма передаётся одним и тем же знаком (или последовательностью знаков) другой системы письма. Например, романизация - передача нелатинской письменности средствами расширенного латинского алфавита с применением диакритических знаков и буквосочетаний.

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

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

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

  • 1 Отличие от транскрипции
  • 2 Классификация
    • 2.1 По строгости представления
  • 3 Правила
    • 3.1 Требования
  • 4 Применение
  • 5 Примеры транслитерации алфавита
  • 6 См. также
  • 7 Примечания
  • 8 Ссылки
    • 8.1 Стандарты
      • 8.1.1 Международные
      • 8.1.2 Англо-американские
    • 8.2 Сервисы и утилиты для транслитерации

Отличие от транскрипции

Основная статья: Фонетическая транскрипция Основная статья: Фонематическая транскрипция

Отличие транслитерации от транскрипции состоит в следующем:

В противоположность транскрипции, предназначаемой для максимально точной передачи звуков языка, транслитерация, как это показывает сам термин (лат. litera - буква), касается письменной формы языка: текст, написанный на том или ином алфавите, передаётся алфавитом другой какой-либо системы. При этом обычно принимается во внимание только соответствие букв двух алфавитов, а звуки, скрывающиеся за ними, не учитываются. Транслитерация применяется преимущественно по отношению к мёртвым языкам, как санскрит, древнеперсидский и др. Кроме того, часто транслитерируют тексты живых языков, пользующихся малоизвестным или трудным алфавитом, как, например, арабский и др. При транслитерации живых языков обычно идут по пути компромисса, так как в какой-то мере необходимо учитывать и звуковой момент, чтобы не чересчур отрывать слово от его живой звучащей формы; иначе говоря, транслитерируется не алфавит, а принятая в данном языке система графики. Так, например, французская фамилия Daudet транслитерируется по-русски Додэ (или Доде), то есть учитывается, что au по-французски обозначает o, а конечное t не произносится. чистой транслитерации пришлось бы эту фамилию писать Даудэт (или Даудет), что едва ли было бы рационально, так как слишком оторвало бы ее в звуковом отношении от оригинала.

М. И. Матусевич. Введение в общую фонетику. М., 1941. С. 106.

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

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

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

Зиндер. Общая фонетика. М., 1979. С. 297

Классификация

По строгости представления

Строгая

Замена каждого знака исходного текста только одним знаком другой письменности (а→a, б→b, в→v, ю→û…).

Ослабленная

Замена некоторых знаков исходного текста сочетаниями двух или более знаков другой письменности (ж→zh, ч→ch, ю→yu, я→ya…).

Расширенная

Представление некоторых сочетаний знаков исходного текста особым образом (ый→y).

Правила

Требования

Однозначность

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

Простота

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

Желательна также обратимость этого преобразования, чтобы можно было восстановить исходное написание; на практике это соблюдается далеко не всегда.

Соблюдение правил

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

Применение

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

В настоящее время транслитерация часто используется при написании веб-адресов, например, vesti.ru. Развёртывание системы многоязычных доменных имен началось в июне 2003 года с доменов стран Восточной Азии - Китая, Японии, Тайваня. Первые адреса с использованием национальных алфавитов были неудобны тем, что домен верхнего уровня («.cn», .com и другие) надо было набирать латиницей, переключая раскладку клавиатуры; потому на большинстве сайтов до сих пор и домен, и остальная часть адреса пишется латиницей. Национальный домен верхнего уровня с поддержкой кириллицы - .рф - появился в 2009 году. тестовом режиме доменные имена с символами кириллицы впервые начали регистрировать в доменах «.net» и «.com» в 2001 году.

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

Примеры транслитерации алфавита

Всеобщая декларация прав человека, статья 1

Транслитерация текста на русском языке

  • Суперанская А. В. Транслитерация // Лингвистический энциклопедический словарь / Главный редактор В. Н. Ярцева. - М.: Советская энциклопедия, 1990.
  • 1 2 Домены на национальных языках. Справка
  • Я русский бы выручил...
  • Власти запрещают транслит в сотовых телефонах
  • CNews: Закон выселил транслит из российских мобильников
  • Имена сосбственные на английском
  • Русские имена собственные китайскими иероглифами
  • Hong"s Hangul Conversion Tools
  • 1 2 3 4 Asian Script Converters
  • Ссылки

    Стандарты

    Международные

    • ISO 9:1995 / ГОСТ 7.79-2000: Правила транслитерации кирилловского письма латинским алфавитом.
    • The Place Names Database (KNAB) - база данных по географическим названиям, поддерживаемая Институтом эстонского языка. (англ.)
    • Большая коллекция правил транслитерации для различных алфавитов. (англ.)

    Англо-американские

    • BGN/PCGN romanization systems - система транслитерации географических названий, применяемая в США и Великобритании. (англ.)
    • ALA-LC Romanization Tables - системы транслитерации Библиотеки Конгресса США. (англ.)
    • Система транслитерации из кириллического алфавита в латинский алфавит, используемая Госдепартаментом США.

    Сервисы и утилиты для транслитерации

    • Translit.ru - транслитератор с кириллицы в латиницу и обратно для разных языков, аналоги transl.it, Tigir.com, aylandirow.tmf.org.ru
    • Translit - транслитератор с кириллицы в латиницу для доменных имен и адресов URL
    • translit.biz - транслитерация с кириллицы в латиницу для банковских карт, URL и международных документов
    • porusski.net - виртуальная клавиатура для набора текста кириллицей, аналоги Translitor.net, Trsl.me
    • Расширение для Firefox
    • translita.appspot.com - транслитератор работающий в любом приложении Виндовс

    транслитерация 2018, транслитерация английский украинский, транслитерация български английски, транслитерация загранпаспорт украина, транслитерация имен, транслитерация латиница кирилица, транслитерация онлайн, транслитерация с украинского, транслитерация фамилий, транслитерация это

    Возможно, кто-то еще помнит, как писали 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.

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

    Понравилась статья? Поделитесь ей