README-Kuriru-moji-ru

Lang::JA::Kana::Kuriru-moji

Документация:

Модуль транслитерации японской каны в кириллицу

Комплексный модуль Raku для конвертации японской каны (хирагана и катакана) в кириллическое письмо с использованием различных систем транслитерации, разработанных для славянских языков, среднеазиатских языков и различных контекстов использования.

Содержание

Возможности

  • 17 полных систем транслитерации с уникальными лингвистическими адаптациями

  • 85+ псевдонимов систем, включая родные названия и ISO-коды

  • Академические стандарты (Поливанов, ГОСТ, Концевич, советская)

  • Варианты для славянских языков (русский, украинский, сербский, болгарский, македонский, белорусский)

  • Среднеазиатские языки (казахский, киргизский, монгольский, таджикский)

  • Европейские варианты (молдавский румынский на кириллице)

  • Игровые и аниме системы для фан-сообществ

  • Обработка долгих гласных с академической нотацией

  • Обработка сокуон (っ) с удвоением согласных

  • Современные расширения (звуки ファ, ティ, ヴ)

  • Поддержка исторической каны (ゐゑを)

Установка

# Установка из экосистемы
zef install Lang::JA::Kana

# Или клонирование и локальная установка
git clone https://github.com/your-repo/lang-ja-kana.git
cd lang-ja-kana
zef install .

Быстрый старт

use Lang::JA::Kana::Kuriru-moji;

# Базовое использование (система Поливанова - по умолчанию)
say to-kuriru-moji("こんにちは");           # конничиха
say to-kuriru-moji("とうきょうです");       # то:кё:дэсу

# Различные системы
say to-kuriru-moji("しんぶん", :system<phonetic>);    # шинбун
say to-kuriru-moji("とうきょう", :system<static>);     # тоукёу
say to-kuriru-moji("ナルト", :system<anime>);          # наруто

# Языковые варианты
say to-kuriru-moji("さくら", :system<ukrainian>);      # сакура
say to-kuriru-moji("さくら", :system<serbian>);        # сакура
say to-kuriru-moji("さくら", :system<macedonian>);     # сакура

Системы транслитерации

Русские академические и исторические системы

СистемаОписаниеКлючевые особенности
Поливанов (по умолчанию)Академический стандартОбозначения долгих гласных (:), し→си, じゃ→дзя
PhoneticИнтуитивная для русскоязычныхし→ши, じゃ→джя, ち→чи
StaticУпрощённая, без диакритиковっ→(пусто), ー→(пусто)
ГОСТ 7.79-2000Официальный российский стандартНа основе Поливанова с модификациями
Советская учебнаяОбразовательный стандартФонетическая основа с учебными конвенциями
КонцевичАкадемическая транслитерацияち→ти, し→си с долгими гласными
Дореволюционная (ru-petr1708)Историческая русскаяИспользует символы і, ѣ, ѳ

Игровые и развлекательные системы

СистемаПсевдонимыОписание
Аниме-мангаanime, fan, anime-manga-fanПопулярна в фан-сообществах
Игроваяgame, gaming-communityИспользуется в игровых контекстах

Варианты для славянских языков

ЯзыкПсевдонимыУникальные особенности
Украинскийukraine, ukraina, ua, ukr, ukі вместо и, специфические согласные
Сербскийserbia, srbija, sr, srb, serubijaСимвол џ (дже)
Болгарскийbulgaria, balgarija, bg, bgrАдаптация фонетической основы
Македонскийmacedonia, makedonija, mk, makedonia*ќ (гье), ѓ (кье), џ (дже)
Белорусскийbelarus, belaruskaja, be, berarushi*ў (краткое у), чы/шы/жы

Среднеазиатские языки

ЯзыкПсевдонимыУникальные особенности
Казахскийkazakhstan, qazaqstan, kz, kazafusutan*ұ (у с чертой), ғ (гайн), ө (о с чертой)
Киргизскийkyrgyzstan, qyrgyz, ky, kirugisutan*ү (прямое у), ө (о с чертой), ң (энг)
Монгольскийmongolia, mongol, mn, mongoru*ү (прямое у), ө (о с чертой)
Таджикскийtajikistan, tojikiston, tj, tajiiku*ғ, қ, ҳ, ҷ персидско-адаптированные буквы

Европейские варианты

ЯзыкПсевдонимыУникальные особенности
Молдавскийmoldova, romanian-cyrillic, md, morudoba*Румынская фонология на кириллице

*Звёздочка обозначает псевдонимы на основе японской ромадзи

Примеры использования

Базовая конвертация

use Lang::JA::Kana::Kuriru-moji;

# Хирагана
say to-kuriru-moji("ひらがな");        # хирагана

# Катакана  
say to-kuriru-moji("カタカナ");        # катакана

# Смешанный текст (не-кана проходит без изменений)
say to-kuriru-moji("Hello こんにちは World");  # Hello конничиха World

Сравнение систем

my $word = "じゃじゅじょ";

say "Поливанов: " ~ to-kuriru-moji($word, :system<polivanov>);  # дзядзюдзё
say "Фонетическая: " ~ to-kuriru-moji($word, :system<phonetic>); # джяджюджё
say "Статическая: " ~ to-kuriru-moji($word, :system<static>);   # зязюзё

Долгие гласные

# Система Поливанова использует двоеточия для долгих гласных
say to-kuriru-moji("がっこう", :system<polivanov>);    # гакко:
say to-kuriru-moji("とうきょう", :system<polivanov>);   # то:кё:

# Статическая система сохраняет отдельные звуки
say to-kuriru-moji("がっこう", :system<static>);       # гаккоу
say to-kuriru-moji("とうきょう", :system<static>);      # тоукёу

Языково-специфические особенности

# Украинский использует і вместо и
say to-kuriru-moji("きみ", :system<ukrainian>);         # кімі

# Белорусский использует ў для определённых звуков
say to-kuriru-moji("うた", :system<belarusian>);        # ўта

# Македонский использует уникальные буквы
say to-kuriru-moji("きけ", :system<macedonian>);        # ќиќе

# Таджикский использует персидско-адаптированные буквы
say to-kuriru-moji("かが", :system<tajik>);             # қаға

Современные расширения

# Адаптации иностранных звуков
say to-kuriru-moji("ファイル", :system<phonetic>);      # фаиру
say to-kuriru-moji("ティーム", :system<phonetic>);      # тиму
say to-kuriru-moji("ヴァイオリン", :system<phonetic>);  # ваиорин

Псевдонимы систем

Полный справочник псевдонимов

Академические системы:

  • polivanov, academic

  • phonetic, intuitive

  • static, simple

  • gost2000, gost-7.79-2000

  • soviet, soviet-textbook

  • kontsevich

  • ru-petr1708

Развлекательные:

  • anime-manga, anime-manga-fan, anime, fan

  • gaming, gaming-community, game

Украинский:

  • ukrainian, ukraine, ukraina, ukrainski, ukuraina, ua, ukr, uk

Сербский:

  • serbian, serbia, srbija, srbski, serubija, sr, srb

Болгарский:

  • bulgarian, bulgaria, balgarija, balgarski, burugarija, burugariya, bg, bgr

Македонский:

  • macedonian, macedonia, makedonija, makedonski, makedonia, mazedoniya, mk, mkd

Белорусский:

  • belarusian, belarus, belaruskaja, belaruski, berarushi, be, blr

Казахский:

  • kazakh, kazakhstan, qazaqstan, qazaq, kazafusutan, kz, kaz

Киргизский:

  • kyrgyz, kyrgyzstan, qyrgyzstan, qyrgyz, kirugisutan, ky, kgz

Монгольский:

  • mongolian, mongolia, mongol, mongolski, mongoru, mn, mng

Таджикский:

  • tajik, tajikistan, tojikiston, tojik, tajiiku, tj, tjk

Молдавский:

  • moldovan, moldova, romanian-cyrillic, moldavia, morudoba, md, mol

Расширенные возможности

Обработка сокуон (っ)

Модуль правильно обрабатывает малое цу (っ/ッ), удваивая следующий согласный:

say to-kuriru-moji("がっこう");     # гакко: (удвоенное к)
say to-kuriru-moji("ちょっと");     # тётто (удвоенное т)
say to-kuriru-moji("いっぱい");     # иппаи (удвоенное п)

Обработка долгих гласных

Академические системы используют нотацию с двоеточием для долгих гласных:

# Расширение ー (тё:омпу)
say to-kuriru-moji("ラーメン", :system<polivanov>);  # ра:мэн

# Удвоение гласных
say to-kuriru-moji("おおきい", :system<polivanov>);  # о:ки:

# Образец ou → о:
say to-kuriru-moji("とうきょう", :system<polivanov>); # то:кё:

Поддержка исторической каны

# Довоенная кана
say to-kuriru-moji("ゐゑを");       # вивэо
say to-kuriru-moji("ゔぁゔぃ");     # вави

# Старые формы
say to-kuriru-moji("ゑいが", :system<ru-petr1708>);  # вѣига (с историческим ѣ)

Обработка смешанного контента

Символы, не являющиеся каной, проходят без изменений:

say to-kuriru-moji("彼はにほんじんです");       # 彼ханихондзиндэсу
say to-kuriru-moji("Email: [email protected]"); # Email: [email protected]
say to-kuriru-moji("価格:せんえん");          # 価格:сэнэн

Справочник API

Основная функция

sub to-kuriru-moji(Str $text, Str :$system = 'polivanov') is export

Параметры:

  • $text - Входной текст, содержащий японскую кану

  • :$system - Система транслитерации (по умолчанию: 'polivanov')

Возвращает: Строку с каной, конвертированной в кириллицу

Пример:

my $result = to-kuriru-moji("こんにちは", :system<phonetic>);

Обработка ошибок

Неизвестные системы приведут к прекращению работы функции с сообщением об ошибке:

# Это приведёт к ошибке
to-kuriru-moji("test", :system<unknown>);
# Unknown transliteration system: unknown. Use 'polivanov', 'phonetic', 'static', etc.

Интеграция с основным модулем

Этот модуль является частью более крупного пакета Lang::JA::Kana:

use Lang::JA::Kana;

# Прямой доступ
say kana-to-kuriru-moji("こんにちは");
say kana-to-kuriru-moji("さくら", :system<ukrainian>);

# Или использование подмодуля напрямую
use Lang::JA::Kana::Kuriru-moji;
say to-kuriru-moji("こんにちは");

Покрытие символов

Поддерживаемая кана

Хирагана: Вся стандартная хирагана, включая:

  • Базовый слоговой состав (あ-ん)

  • Звонкие знаки (が-ぽ)

  • Комбинации (きゃ-ぴょ)

  • Малые варианты (ぁ-ゎ)

  • Исторические формы (ゐゑゔ)

  • Современные расширения (ふぁ-ヴォ)

Катакана: Полное покрытие катаканы, включая:

  • Базовый слоговой состав (ア-ン)

  • Звонкие знаки (ガ-ポ)

  • Комбинации (キャ-ピョ)

  • Малые варианты (ァ-ヮ)

  • Знак долгого гласного (ー)

  • Адаптации иностранных звуков (ファ-ヴォ)

Неподдерживаемое содержание

  • Кандзи: Проходят без изменений

  • Латинский алфавит: Проходит без изменений

  • Числа: Проходят без изменений

  • Пунктуация: Проходит без изменений

  • Катакана половинной ширины: Должна быть сначала конвертирована в полную ширину

Лингвистические заметки

Философия дизайна систем

Каждая система транслитерации отражает различные приоритеты:

  • Академические системы приоритизируют лингвистическую точность и обратимость

  • Фонетические системы приоритизируют интуитивное произношение для носителей

  • Статические системы приоритизируют простоту и согласованность

  • Языковые варианты адаптируются к специфическим кириллическим алфавитам и фонологиям

Региональные адаптации

Языково-специфические варианты учитывают:

  • Уникальные буквы (ў, ө, ғ, ќ и т.д.)

  • Фонологические различия (образцы палатализации)

  • Орфографические конвенции (использование мягких/твёрдых знаков)

  • Исторические развития (реформы алфавита)

Тестирование

Модуль включает комплексные тесты:

# Запуск базовых тестов
raku t/01-basic.t

# Тестирование всех систем
raku test-systems.raku

# Тестирование новых систем специально  
raku test-new-systems.raku

Соображения производительности

  • Конвертация символов использует хеш-поиск (O(1) на символ)

  • Многосимвольные комбинации обрабатываются от самых длинных к самым коротким

  • Варианты постобработки применяются эффективно

  • Использование памяти масштабируется с длиной входного текста

Галерея примеров

Перевод поэзии

my $haiku = "ふるいけや\nかえるとびこむ\nみずのおと";
say to-kuriru-moji($haiku, :system<polivanov>);
# фуруикэя
# каэрутобикому
# мидзуно:то

Имена из аниме/манги

say to-kuriru-moji("ナルト", :system<anime>);        # наруто
say to-kuriru-moji("セーラームーン", :system<anime>); # серамун
say to-kuriru-moji("ピカチュウ", :system<gaming>);   # пикатюу

Географические названия

say to-kuriru-moji("とうきょう", :system<static>);   # тоукёу
say to-kuriru-moji("おおさか", :system<static>);     # оосака
say to-kuriru-moji("ひろしま", :system<polivanov>);  # хиросима

Технические термины

say to-kuriru-moji("コンピューター", :system<phonetic>); # конпюта
say to-kuriru-moji("インターネット", :system<static>);   # интанетто
say to-kuriru-moji("テクノロジー", :system<polivanov>);  # тэкунородзи:

Участие в разработке

Мы приветствуем участие в разработке. Пожалуйста, посетите репозиторий проекта:https://github.com/slavenskoj/raku-lang-ja-kana

Приносим извинения за возможные ошибки и приветствуем предложения по улучшению.

Лицензия

Эта библиотека является свободным программным обеспечением; вы можете распространять её и/или модифицировать в соответствии с Художественной лицензией 2.0.

См. также

Авторы

Данслав Славенской

Lang::JA::Kana v1.2.1

Japanese Hiragana and Katakana conversion utilities

Authors

  • Danslav Slavenskoj

License

Artistic-2.0

Dependencies

Test Dependencies

Provides

  • Lang::JA::Kana
  • Lang::JA::Kana::Hangul
  • Lang::JA::Kana::Kuriru-moji
  • Lang::JA::Kana::Romaji

The Camelia image is copyright 2009 by Larry Wall. "Raku" is trademark of the Yet Another Society. All rights reserved.