Немного про стандарты транслитерации
Тема транслитерации долго волновала мой ум и казалось что должен быть какой-то ГОСТ или хотя бы логика на данную область. А потом Сбербанк перевыпустил мою карту с другой транслитерацией имени:
Кто я - Sergei или Sergey? Википедия любезно предоставляет справку по данному вопросу в виде сравнительной таблицы систем транслитерации, изучение которой дало несколько интересных выводов:
* многие транслитерации забыли про букву J в английском;
* зачастую для транслитерации используются символы, отсутствующие на клавиатуре, в том числе диакритические;
* мягкое и твёрдое произношение не везде чётко прослеживается;
* среди этих конкурирующих стандартов отсутствует один, унифцирующий их все.
По мотивам последнего пункта и возникла идея замутить и свой стандарт, чего бы нет :)
В интернетике уже есть ресурсы, позволяющие прогнать свой текст по нескольким возможным ГОСТам, но мне было интересно и самому увидеть чуть ближе эту задачу, и попробовать набросать тот свой стандарт, которого придерживался с неизвестных времён.
Я не стал погружаться в историю вопроса и вообще как-то изучать тему, скажу лишь что я всегда считал логичным следующие комбинации:
ж = j
й = i
и = y
Для мягкого знака я, как и многие стандарты использовал обратный апостроф, а для твёрдого знак выбрал решётку просто потому что. Получилось:
ь = `
ъ = #
Далее осталось перенести таблицу с Википедии в код, взять общий шаблон для всех стандартов и написать немного свежего горячего ароматного говнокода, способного вывести заданную строку в виде всех тех стандартов, что были в таблице.
Буквы, которые могут иметь два варианта написания в рамках одного стандарта заключены в скобки и разделены слэшем, например: й = (e/yo/ye). Буквы, не имеющие транслитерации в рамках стандарта заменены на тире.
Пробуем получившееся:
Попробовать самому можно тут: https://repl.it/@Melodyn/GOSTs-of-transliteration
Достаточно заменить заготовленный текст на ваш и нажать кнопку Run, обработанная строка вывалится в консоль сервиса.


Лига программистов
2.1K постов11.9K подписчиков
Правила сообщества
- Будьте взаимовежливы, аргументируйте критику
- Приветствуются любые посты по тематике программирования
- Если ваш пост содержит ссылки на внешние ресурсы - он должен быть самодостаточным. Вариации на тему "далее читайте в моей телеге" будут удаляться из сообщества