🏠  > Русификация  > Яролит - правильный транслит

Русский текст



Транслитерированный текст


Яролитерация - обратимая транслитерация, пригодная для идентификаторов

Ни один из упомянутых в Википедии стандартов транслитерации кириллицы непригоден для кодирования имён пользователей, E-mail, идентификаторов в программах. Эти стандарты либо превращают некоторые буквы в знаки препинания, либо по преобразованному тексту нельзя восстановить исходный (например, «эй» нельзя отличить от «ей», а Пашу - от Пасхи). Мы предлагаем Яролит - ещё один (не 15-й, а даже 16-й, ха-ха) стандарт транслитерации. Ссылка на более подробное обоснование.

Вот таблица преобразования для кириллицы:

абвгдеёжзийклмно
abvgdejozhzijjklmno

прстуфхцчшщъыьэюя
prstufkhcchshshhjqyqehjuja

Почему это обратимо? Потому что H - всегда суффикс, J - всегда префикс в двухбуквенном сочетании.

Кроме того, есть знаки переключения языка. Переключение на английский кодируется как xe, и дальше идёт латиница. Переключение на русский кодируется как xr и далее идёт опять транслит. В латинице x,j,w удваиваются.

Транслит Владимира Зайцева

Я - не первый, кто придумал обратимый транслит. Первым был Владимир Зайцев. В его записи на «Хабре» описаны условия, которым должна удовлетворять обратимая транслитерация (наша удовлетворяет обязательным из них, а некоторые можно объявить вкусовщиной).

Сравнение яролита и транслита В. Зайцева

Задача обратимого транслита кириллицы не имеет красивого решения. Вопрос лишь в том, чем жертвовать. Я считаю, что q - это лучшее изображение для мягкого знака - его просто надо мысленно перевернуть. Твёрдому знаку в любом случае не повезло, т.к. он редок. Но jq всё же чем-то похож на разрезанный твёрдый знак, кусочки которого сложили в строчку и повернули: «q» - это корешки, а «j» - вершки. Учитывая частоту использования букв кириллицы, следует постараться закодировать «ы» (1,9%), «ь» (1,7%) и «й» (1,2%) одной буквой. Здесь мы выиграли - у В.Зайцева «ы»=«ih», а «ь»=«jh». Двумя буквами представлен «й» = «jj», но он - самый редкий из этой троицы. Если уж пошла речь о частотности, попробуем проверить наше решение на обоснованность. Буквам «я»(2%) и «ч»(1,45%) в любом случае не повезло - их нельзя представить латиницей, их судьба занимать две буквы и мы эту судьбу им осуществили. Заслуженно ли пострадал «х»(0,94%)? Можно сказать, ему не повезло - его латинский аналог забрали под переключатель. Учитывая, что в транслите многие прочитают «x» как «икс», может быть, это не так страшно.

Число незадействованных букв: у Зайцева от кодировки кириллицы остались незанятыми три буквы q,w,x, а у нас только w и x. Я верю, что q потрачен на хорошее дело, но по факту у нас остаётся на расширение меньше. Далее мы истратили x на вставки из других языков - но и Зайцев так мог бы поступить.

Что надо/можно улучшить?

Похоже, что улучшать нечего. Данный транслит практически безкомпромиссен - он почти читается, если считать что j - это «йот», как в немецком (а для целей транслита немецкий кажется гораздо более подходящим). Часто встречаемые буквы по возможности сделаны короткими, буквы превращаются в буквы, и плюс можно за счёт переключателей ввести поддержку неограниченного количества других письменностей. Мягкий знак похож на себя. Например, сделать xu - украинский, xg - греческий и т.п. Буква w осталась в запасе. Информация передаётся без потерь. Единственное, в этом примере не закодировано обратное преобразование, но это - дело техники.

Расширение - дореформенная письменность

У нас в запасе - буква w, почти всё, что начинается с x, много двухбуквенных последовательностей j«буква», некоторое количество последовательностей «буква»h. Попробуем впихнуть дореформенную орфографию. Особо некогда, вот что получается в виде тяп-ляп:

і(и)ѣ(е,æ:)ѳ(ф)ѵ(и,в)
ihjhphvh

Т.е. достаточно легко поместилось. Демо переводит эти буквы, но они не являются частью стадарта

Ещё расширение - все символы юникода

Ёмкость буквы j ещё не исчерпана - мы можем закодировать юникодные буквы как jNNNNj, где N - цифры в любом количестве. Это правило не требует переключения, поскольку мы удваиваем j в латинице. Вероятно, это будет частью стандарта.

🏠  > Русификация  > Яролит - правильный транслит