Юлия → Iuliia. Всё о транслитерации

Транслитерация — это запись кириллических слов латиницей (Анна → Anna, Самара → Samara). Её используют в загранпаспортах, водительских удостоверениях, трансграничной доставке, библиотечных каталогах и множестве других международных процессов.

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

Кто виноват

Транслит — это хрестоматийная ситуация «у нас 14 плохих стандартов, давайте придумаем ещё один». Весь 20 век солидные, уважаемые люди придумывали всё новые и новые стандарты транслитерации.

Как приумножаются стандарты
Как приумножаются стандарты // xkcd

Получалось у них очень, очень плохо. Например, в загранпаспорте пишут Юлия → Iuliia не потому, что МИД хочет сделать вам больно, а потому что это международный стандарт ICAO Doc 9303[1] — Machine Readable Travel Documents.

Такое ощущение, что все стандарты писались людьми, которые ненавидят русский язык. Если для англо-американского творчества это объяснимо, то что заставило советских учёных превратить Лёгкий в Ljogkijj (ГОСТ 16876-71[2]) — решительно непонятно.

Zato naši kosmičeskie korabli borozdili prostory vselennoj

В 21 веке человечество оказалось с двумя наиболее распространёнными стандартами: ICO Doc 9303 (Юлия → Iuliia) и ISO 9:1995 (Юлия → Ûliâ), он же отечественный ГОСТ 7.79-2000[3]. Достойный результат для столетних усилий, ничего не скажешь.

Посмотрев на эту «красоту», ребята из Википедии взялись за голову и сделали нормальную схему транслитерации[4], благодаря которой у несчастной Юлии остаётся слабый шанс быть Yuliya. Международные и отечественные институты эту работу проигнорировали, к сожалению.

Yuliya, syesh yeshchyo etikh myagkikh frantsuzskikh bulok iz Yoshkar-Oly, da vypey altayskogo chayu

Конечно, нельзя было делать совсем уж хорошо (а то кто тогда станет придумывать новые стандарты). Поэтому у Википедии ещё превращается в yeshchyo, my ass. Схема хорошо передаёт фонетику, а вот выглядит иногда не очень — оцените E → YE, Щ → SHCH и Ё → YO в этом примере.

Не остался в стороне и Яндекс. У него две схемы — отдельно для ФИО[5], отдельно для адресов[6]. Здесь наконец-то сделали Щ → SCH. Но Юрий → Yurii, а Усолье → Usole, что понравится не всем. Не забываем оставлять пространство для новых стандартов!

И Студия Лебедева туда же (в рунете ничего без неё не обходится). Когда дизайнили схему московского метро, ребята отвергли стандарт ISO, а прочие, похоже, даже не смотрели. Ну и придумали свой вариант — Мосметро[7].

Чтобы вы представляли масштаб бедствия. Я насчитал 20 схем транслитерации, некоторые из которых предусматривают альтернативные наборы правил (например, с диакритикой и без). Из них 14 считаются действующими. Четырнадцать действующих «стандартов», прямо как в комиксе xkcd.

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

Теперь несколько практических рекомендаций.

Как выбрать схему (быстрый вариант)

Загранпаспорт или в/у. По умолчанию используйте ICAO Doc 9303 — это требование закона. Впрочем, есть лайфхак: если написать отдельное заявление при подаче документов, сделают паспорт с нормальной транслитерацией. Тогда подойдёт старый стандарт МВД-310[8] или Мосметро.

Если нужно обратимое преобразование (cyr ↔ lat). Используйте ГОСТ 7.79-2000. Это международный стандарт ISO 9:1995. Громоздкая, зато абсолютно непробиваемая схема. Есть варианты с диакритикой и без.

Если визуальная красота превыше всего. Используйте схему Мосметро, она самая лаконичная и приятная на вид.

В остальных случаях. Используйте схему Википедии. Она лучше всех по фонетике и лишь немного уступает Мосметро визуально.

Описание и примеры

Как выбрать схему (для дотошных)

Я сделал страницу со всеми схемами. Там и сценарии использования, и фильтры, и подробные описания, и примеры. Читайте, выбирайте, что больше нравится. Все схемы уже реализованы на языках JavaScript и Python, подключить библиотеку — минутное дело.

Как транслитерировать

Не пишите логику транслитерации с нуля — велик шанс ошибиться и получить очередную (N+1) схему транслитерации, «спасибо» за которую вам не скажут.

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

Я сделал аккуратные библиотеки с нормальными тестами для Python и JavaScript. Но лучше дополнительно проверьте на паре примеров, а то вы ведь знаете этих программистов.

Чего не делать

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

Но просто не надо. Уже хватит.

Не связываться с обратной транслитерацией. «Обратная транслитерация» — это когда вы восстанавливаете справедливость и превращаете Iuliia → Юлия. Тут всё даже хуже, чем с транслитерацией прямой, потому что при записи латиницей никто никаких стандартов не соблюдает, и встречаются жуткие монстры.

В обратной транслитерации куча технических нюансов, лучше использовать готовое решение. Попробуйте, например, «Дадату» — она транслитерирует в обратную сторону ФИО и адреса.

⌘ ⌘ ⌘

И если вам или коллеге когда-нибудь придётся столкнуться с транслитерацией по работе — не тратьте время на Википедию, потому что я его уже потратил и собрал всю нужную информацию:

Юлия → Iuliia. Руководство по транслитерации

Специально для подписчиков канала «Интерфейсы без шелухи»

⌘ ⌘ ⌘

Ссылки по тексту:


  1. ICAO Doc 9303 ↩︎

  2. ГОСТ 16876-71 ↩︎

  3. ГОСТ 7.79-2000, он же ISO 9:1995 ↩︎

  4. Схема Википедии ↩︎

  5. Схема Яндекс.Денег ↩︎

  6. Схема Яндекс.Карт ↩︎

  7. Схема Мосметро ↩︎

  8. МВД 310 ↩︎