Романізація японської мови - це перетворення японського тексту в латинські символи. У цьому виклику вам буде надано рядок японських символів як вхідний і очікується перетворення їх у правильний рядок ASCII.
Що вам потрібно знати
У японській мові є три системи письма: хірагана (кривава, яка використовується для коротких слів), катакана (кут-у, яка використовується для звуків і слів, запозичених з інших мов) і кандзі (щільні символи спочатку з китайської). У цьому виклику ми будемо турбуватися лише про хірагану.
У навчальній програмі хірагана 46 символів. Кожен символ являє собою склад. Символи впорядковані за першим звуком (приголосний) та другим звуком (голосним). Стовпці в порядку є aiueo
.
: あいうえお
k: かきくけこ
s: さしすせそ
t: たちつてと
n: なにぬねの
h: はひふへほ
m: まみむめも
y: や ゆ よ
r: らりるれろ
w: わ を
N: ん
(якщо скопіювати та вставити цю таблицю, зауважте, що я використовував ідеографічні простори U + 3000 для пробілу y та w)
Так, наприклад, あ と め повинен отримати вихід atome
. Перший персонаж є a
, другий - to
третій me
.
Винятки
Як і будь-яка гарна мова, японська має винятки зі своїх правил, а таблиця хірагани - кілька. Ці символи вимовляються дещо інакше, ніж їх розташування в таблиці означало б:
し: shi
, не si
ち: chi
, не ti
つ: tsu
, не tu
ふ: fu
, ніhu
Дакутен ゛
Слово «дакутен» означає «каламутний знак»: дакутен перетворює звуки у їхні озвучені еквіваленти (як правило); наприклад, かka
перетворюється на か ゛ga
. Повний список змін:
k
→ g
s
→ z
t
→ d
h
→b
Винятки також змінюються: し ゛: ji
(або zhi
), не zi
ち ゛: ji
, не di
つ ゛: dzu
, не du
(ふ ゛ діє так, як ви очікували; це не виняток)
Хандакутен - це додатковий символ ゜, який застосовується до h
рядка. Якщо розміщується після символу, він змінює звук персонажа на, p
а не b
.
Як дакутен, так і хандакутен даватимуться як окремі символи. Вам не потрібно буде мати справу з заздалегідь складеними формами або об'єднаними символами.
Маленькі персонажі
Нарешті, є невеликі версії деяких персонажів. Вони змінюють персонажів, що надходять до них або після них.
ゃ ゅ ょ
Це невеликі форми ya
, yu
і yo
. Вони розміщуються лише після звуків у i
колоні; вони видаляють i
і додають звук. Отже, き や перетворюється на kiya
; き ゃ перетворюється на kya
.
Якщо розміщено після chi
або shi
(або їх документи, що містяться в документах), також y
видаляється. し ゆ є shiyu
; し ゅ є shu
.
Останнє, з чим вам доведеться зіткнутися, - це мале tsu
. っ подвоює приголосний, що йде після нього, незважаючи ні на що; він більше нічого не робить. Наприклад, き た є kita
; き っ た є kitta
.
Підсумок, вхід та вихід
Ваша програма повинна вміти транслітерувати: 46 основних гірагани, форми їх дакутенів та хандакутен та їх комбінації з малими символами.
Не визначена поведінка включає: малий ya
, yu
а yo
не після символу з i
, малий tsu
на кінці рядка, дакутен на непорушеному символі, хандакутен на не p
символі та все інше, що не згадується у вищевказаній специфікації / вступі.
Ви можете вважати, що всі введення є дійсними та містять лише японські символи, згадані вище.
Справа не має значення у виході; Ви можете також замінити r
з l
або одинаком n
з m
. Вихід може мати один пробіл між кожним складом або взагалі не мати пробілів.
Це код-гольф : найкоротший код у байтах виграє.
Випробування
Багато тестів для кожної окремої частини наведено у специфікації. Деякі додаткові випадки:
ひ ら か ゛ な → hiragana
か た か な → katakana
た ゛ い き ゛ ゃ く て ん さ い は ゛ ん → daigyakutensaiban
ふ ゜ ろ く ゛ ら み ん く ゛ は ゜ す ゛ る う と ゛ こ ゛ る ふ → puroguramingupazurucoudogorufu
か ゛ ん ほ ゛ っ て → ganbatte
Примітки
Я не знаю багато японського, окрім того, що тут написав. Будь ласка, дайте мені знати, чи я допустив помилки.
Я спочатку планував включити катакану (тому мій тест на транслітерацію з англійської мови міг бути дещо точнішим), але це було б занадто багато для проблеми з кодовим гольфом.
Імена Unicode включають транслітерацію кожного символу окремо, але без винятку. Це може вам чи не бути корисним.
Завдяки squeamishossifrage за виправлення двох помилок!
Мені шкода, якщо це занадто довго; Я намагався вкласти у виклик більшість вигадків хірагани, але деякі речі (наприклад, маленька хірагана лише для голосних, зміна n на m перед деякими приголосними та позначка повторення) повинні були бути вирізані, щоб виклик був керованим.
Мені зовсім не шкода звання. Це шедевр.
っし
бути sshi
чи shshi
?
I'm not at all sorry for the title. It's a masterpiece.
Повноцінне
きっった
?