На Хабре уже были подобные игры с системами письма (например, вот и вот), поэтому не вижу проблемы, чтобы добавить очередной вариант, коих и так уже много.
Критерии
Мои хотелки для этой игры:
-
Максимум латинских букв
-
Минимум кириллических
-
Минимум диакритических знаков
-
Минимум диграфов и триграфов или ещё чего похуже
Соответствия — что получилось
Тут просто таблица с соответствиями кириллицы и моей поделки. Соответствие получилось один к одному, что должно упрощать использование. Часть букв заменить вообще не получилось без жертв, поэтому я их оставил как есть.
В группу «+» вошли те буквы, которые являются чисто латинскими, либо образованы путём добавления к латинской букве какого-либо диакритического знака. В группу «-» вошли те, которые заменить не получилось. Справа подсчитаны чисто латинские буквы из базового набора из 26 букв.
а = a | +1 1б = b | +2 2в = v | +3 3г = g | +4 4д = d | +5 5е = e | +6 6ё = ё | +7ж = j | +8 7з = z | +9 8и = i | +10 9й = ĭ | +11к = k | +12 10л = l | +13 11м = m | +14 12н = n | +15 13о = o | +16 14п = p | +17 15р = r | +18 16с = s | +19 17т = t | +20 18у = u | +21 19ф = f | +22 20х = h | +23 21ц = c | +24 22ч = ч | -1ш = ш | -2щ = x | +25 23ъ = ъ | -3ы = y | +26 24ь = ь | -4э = э | -5ю = ю | -6я = я | -7Исключения:1-q, 2-w
В итоге Q и W не вошли в состав вообще, так как Q по сути дублирует K, а звука для W в русском вообще нет.
Самыми странными заменами получились: ё = ё, й = ĭ, щ = x
Думаю, с диакритическими знаками всё должно быть понятно — они просто остались на своих же местах в той же форме, то есть это умлаут и кратка (бревис).
А вот щ = x надо дополнительно прояснить: оно получилось близким к некоторым китайским словам из английского (то есть «Xiaomi», «Xi Jinping» и прочие довольно редкие слова с иксом), а также (вот тут уже помогали LLM, поисковики и несколько видео с Ютуба по произношениям) к пиньиню и языкам Пиренейского полуострова, то есть это испанский, португальский и другие языки с меньшим числом носителей, к мальтийскому языку (географически — островная страна южнее Сицилии и Италии). Икс оказался очень многозначным.
В целом получилось примерно 80% латиницы (с учётом двух букв с диакритикой) и 20% кириллицы.
Примеры и сравнения
Для примера взял «Войну и мир» в формате .fb2 (текстовый XML-подобный формат для книг) с Флибусты и прогнал через скрипт для замены букв.
Python
mapping = { 'а': 'a', 'б': 'b', 'в': 'v', 'г': 'g', 'д': 'd', 'е': 'e', 'ё': 'ё', 'ж': 'j', 'з': 'z', 'и': 'i', 'й': 'ĭ', 'к': 'k', 'л': 'l', 'м': 'm', 'н': 'n', 'о': 'o', 'п': 'p', 'р': 'r', 'с': 's', 'т': 't', 'у': 'u', 'ф': 'f', 'х': 'h', 'ц': 'c', 'ч': 'ч', 'ш': 'ш', 'щ': 'x', 'ъ': 'ъ', 'ы': 'y', 'ь': 'ь', 'э': 'э', 'ю': 'ю', 'я': 'я',}mapping.update({ k.upper(): v.upper() for k, v in mapping.items()})def translit(text): return ''.join(mapping.get(ch, ch) for ch in text)with open('input.txt', 'r', encoding='utf-8') as f: text = f.read()result = translit(text)with open('output.txt', 'w', encoding='utf-8') as f: f.write(result)
И вот начала одного из томов, которые плюс-минус одинаково расположены, так как вот эти заголовки постоянно едут и не начинаются с начала страниц (видимо, проблема самого файла книги) даже в оригинале.
Тихий ужас, но, возможно, специально разработанный шрифт с оптимизацией под такой гибрид мог бы чуть-чуть улучшить восприятие, особенно по части точек и диакритики над ĭ, i, j.
По занимаемому числу страниц вышло 1196 в оригинале и 1103 в изменённой версии. Процентное изменение, если честно, вообще не впечатляет.
Но разница в почти 100 страниц чисто на словах звучит не так уж и плохо. Правда, неоптимизированный шрифт немного портит картинку, всё же для чистоты правильнее было бы добавить кернинг, чтобы выборочно поправить межбуквенные расстояния, которые местами не самые естественные из-за смешивания двух принципиально разных алфавитов, и прочие типографские красивости вроде лигатур (мне тут видится убирание точки над i, чтобы iĭ выглядело попроще в немоноширинном шрифте), но это уже чересчур…
По занимаемому месту на диске вышло 13.8 MB и 11.8 MB ввиду кодировки UTF-8, в которой латиница кодируется одним байтом, а кириллица кодируется двумя.
И вот ещё примеры панграм со всеми буквами обоих алфавитов в разных шрифтах:

И для шрифта Хабра:
-
Съешь же ещё этих мягких французских булок, да выпей чаю.
-
Sъeшь je exё эtih mяgkih francuzskih bulok, da vypeĭ чaю.
На этом всё.
Вот кому-то делать не…
ссылка на оригинал статьи https://habr.com/ru/articles/1036964/