La romanización del japonés está convirtiendo el texto japonés en caracteres latinos. En este desafío, se le dará una cadena de caracteres japoneses como entrada y se espera que los convierta a la cadena ASCII correcta.
Lo que necesita saber
El idioma japonés tiene tres sistemas de escritura: hiragana (el curvilíneo usado para palabras cortas), katakana (el ángulo-y usado para sonidos y palabras tomadas de otros idiomas) y kanji (los caracteres densos originalmente del chino). En este desafío solo nos preocuparemos por hiragana.
Hay 46 caracteres en el silabario hiragana. Cada personaje representa una sílaba. Los caracteres están organizados por primer sonido (consonante) y segundo sonido (vocal). Las columnas en orden son aiueo
.
: あいうえお
k: かきくけこ
s: さしすせそ
t: たちつてと
n: なにぬねの
h: はひふへほ
m: まみむめも
y: や ゆ よ
r: らりるれろ
w: わ を
N: ん
(si copia y pega esta tabla, tenga en cuenta que he usado espacios ideográficos U + 3000 para espaciar y y w)
Entonces, por ejemplo, あ と め debería producir una salida de atome
. El primer personaje es a
, el segundo es to
y el tercero es me
.
Excepciones
Como cualquier buen idioma, el japonés tiene excepciones a sus reglas, y la tabla hiragana tiene varias. Estos caracteres se pronuncian de forma ligeramente diferente de lo que su ubicación en la tabla implicaría:
し: shi
no si
ち: chi
no ti
つ: tsu
no tu
ふ: fu
nohu
Dakuten ゛
La palabra 'dakuten' significa 'marca fangosa': el dakuten convierte los sonidos en sus equivalentes sonoros (generalmente); por ejemplo, か se ka
convierte en か ゛ga
. Una lista completa de los cambios:
k
→ g
s
→ z
t
→ d
h
→b
Las excepciones también cambian: し ゛: ji
(o zhi
), no zi
ち ゛: ji
, no di
つ ゛: dzu
, no du
(ふ ゛ actúa como cabría esperar; no es una excepción)
El handakuten es un carácter adicional゜ que se aplica a la h
fila. Si se coloca después de un personaje, cambia el sonido del personaje en p
lugar de hacerlo b
.
Tanto el dakuten como el handakuten se darán como personajes individuales. No necesitará lidiar con las formas precompuestas o los caracteres combinados.
Pequeños personajes
Finalmente, hay versiones pequeñas de algunos de los personajes. Modifican los caracteres que vienen antes o después de ellos.
ゃ ゅ ょ
Estas son las pequeñas formas de ya
, yu
y yo
. Solo se colocan después de los sonidos en la i
columna; quitan el i
y agregan su sonido. Entonces, き や se convierte en kiya
; き ゃ se convierte en kya
.
Si se coloca después de chi
o shi
(o sus formas dakuten-ED), el y
se elimina también. し ゆ es shiyu
; ゅ ゅ es shu
.
Lo último con lo que tendrá que lidiar es con lo pequeño tsu
. っ duplica la consonante que le sigue, pase lo que pase; No hace nada más. Por ejemplo, き た es kita
; き っ た es kitta
.
Resumen, entrada y salida
Su programa debe ser capaz de transcribir: los 46 hiragana básicos, sus formas dakuten y handakuten, y sus combinaciones con caracteres pequeños.
El comportamiento indefinido incluye: pequeño ya
, yu
y yo
no después de un carácter con i
, pequeño tsu
al final de una cadena, dakuten en un carácter no afectado, handakuten en un no p
carácter y cualquier otra cosa no mencionada en la especificación / introducción anterior.
Puede suponer que todas las entradas son válidas y contienen solo los caracteres japoneses mencionados anteriormente.
El caso no importa en la salida; También puede reemplazar r
con l
o solo n
con m
. La salida puede tener un espacio entre cada sílaba o ningún espacio en absoluto.
Esto es code-golf : el código más corto en bytes gana.
Casos de prueba
Muchos casos de prueba para cada parte individual se dan en la especificación. Algunos casos adicionales:
ひ ら か ゛ な → hiragana
か た か な → katakana
た ゛ い き ゛ ゃ く て ん さ い は ゛ ん → daigyakutensaiban
ふ ゜ ろ く ゛ ら み ん く ゛ は ゜ す ゛ る こ う と ゛ こ ゛ る ふ → puroguramingupazurucoudogorufu
か ゛ ん ほ ゛ っ て → ganbatte
Notas
No sé mucho japonés además de lo que he escrito aquí. Avísame si he cometido algún error.
Originalmente planeaba incluir katakana también (por lo que mi caso de prueba de transliteración en inglés podría ser un poco más preciso), pero eso sería demasiado para un desafío de golf de código.
Los nombres Unicode incluyen la transcripción de cada carácter individualmente, pero sin las excepciones. Esto puede o no ser útil para usted.
¡Gracias a squeamishossifrage por corregir dos errores tipográficos!
Lo siento si esto es demasiado largo; Intenté adaptar la mayoría de las peculiaridades de hiragana al desafío, pero algunas cosas (como hiragana de solo vocal pequeña, cambiar de n a m frente a algunas consonantes y la marca de repetición) tuvieron que cortarse para mantener el desafío manejable.
No siento nada por el título. Es una obra de arte.
っし
ser sshi
o shshi
?
I'm not at all sorry for the title. It's a masterpiece.
Votación negativa
きっった
?