Agregar Furigan a la macro Kanji Python para LibreOffice

Damas y caballeros, el plan es este:

  • todo lo que querías saber sobre la escritura japonesa, pero tenías miedo de preguntar
  • ¿Qué es el texto ruby?
  • cómo escribir complementos para libreoffice en python
  • cómo generar lectura para kanzi
  • ¡Poniendo todo junto en un furiganizador!




El japonés moderno utiliza principalmente tres sistemas de escritura.

En primer lugar, estos son alfabetos de dos sílabas: hiragana y katakana. Hiragana es más redondeado, se ve más o menos así: こ れ は ひ ら が な で す y es, por así decirlo, el alfabeto principal. Además, llamaremos a todo esto simplemente "kana". "Alfabeto silábico" significa que en lugar de nuestras vocales y consonantes "a", "b" y "c", solo sílabas enteras como "ka", "sa" y "eso". Sin embargo, también hay vocales, hay cinco piezas (“a”, “y”, “y”, “e”, “o” + “i”, “u” y “e”) y solo una consonante “n” en orden de excepción

Es por eso que es muy difícil para los japoneses pronunciar palabras con consonantes sucesivas, simplemente no están acostumbradas, pero esto no es importante para nosotros ahora. Con una cana, en principio, puedes escribir cualquier frase en japonés.

Otro sistema son los caracteres prestados de China, que seguiremos llamando kanji , y luego se llaman así. Después de pedir prestado, el japonés, sí, el sobsno y el chino también, los kanji han cambiado significativamente, y ahora son bastante diferentes, aunque, por supuesto, son muy similares. Digamos que mirando un texto en chino, un japonés puede entender más o menos de qué está hablando. Los kanji se parecen a esto: 友 達 、 日本 酒 、 世界。 Sí, en japonés es un punto redondo.

Aquí hay un punto clave para comprender: el japonés y el chino a nivel gramatical generalmente no están relacionados en absoluto. Así que, así, era imposible tomar caracteres chinos y comenzar a escribirlos. En realidad, con la ayuda de kanji, puedes escribir palabras individuales, incluso los conceptos básicos de las palabras, y kana todavía se usa para indicar formas gramaticales y la conexión de palabras entre ellas. Se parece a esto: 送 り が な は と っ て も 便利 で す. Si observa de cerca, puede ver que el primer personaje es kanji, seguido de varios signos de kana, etc. Este truco hace que sea fácil distinguir visualmente entre el texto japonés y el chino, que se ven gráficamente más "densos" porque solo hay kanji. Este kana, que se adjunta al kanji para indicar forma gramatical, se llama "okurigan".

Aquí, y finalmente ... El número de kanji es bastante grande, y si no eres un robot, entonces recordar todo es difícil. Si la palabra está escrita por kanji, a menudo no es obvio cómo leerla en persona, a pesar del hecho de que en el lenguaje hablado la palabra bien se puede encontrar y la persona lo sabe. Para ayudar en esta situación, especialmente para kanji raros o cuando el texto está destinado a niños, extranjeros u otras categorías de ciudadanos con limitaciones mentales, la lectura de un kanji se firma desde arriba con un kana. Esto se llama la " furigana ". Se ve como en la imagen al comienzo de la publicación.

Fuh, pasa al siguiente elemento.

Para agregar anotaciones sobre el texto, se utiliza el llamado rubí. No tiene nada que ver con el lenguaje de programación. Como acabo de aprender de Wikipedia, en ruso se llama "ágata"

El soporte de Ruby está disponible en html usando la etiqueta ruby:
<ruby>
 
 <rt></rt>
</ruby>


Pero ahora estamos interesados ​​en LibreOffice. En modo manual, puede agregar anotaciones de rubí al texto a través del menú Formato -> Guía fonética asiática. Esto es algo extraño, porque puede usar el campo de fricción no solo para fonética, sino también con ellos. Si no está en el menú, puede intentar agregar soporte para idiomas asiáticos en Herramientas -> Opciones -> Configuración de idioma.

A continuación, queremos hacer esto automáticamente para el texto seleccionado. LibreOffice es maravilloso porque puedes escribir macros en Python en él. Para hacer esto, se debe instalar el módulo libreoffice-script-provider-python (instalado a través de apt-get), que no vale la pena por defecto. Ah, sí, hago todo en Ubuntu, si tienes un sistema operativo diferente, puedes compartir la receta en los comentarios :)

La macro en sí misma se escribe como una función regular en un Python. El documento es visible a través de una variable global con una instancia de la clase correspondiente y, de hecho, en él todos los métodos necesarios.

Aquí hay un ejemplo simple:
def HelloWorldPython():
    desktop = XSCRIPTCONTEXT.getDesktop()
    model = desktop.getCurrentComponent()
    if not hasattr(model, "Text"):
        model = desktop.loadComponentFromURL("private:factory/swriter","_blank", 0, () )
    text = model.Text
    tRange = text.End
    tRange.String = "Hello World (in Python)"
    return None
g_exportedScripts = HelloWorldPython,


Guardamos en un archivo, lo ponemos o hacemos un enlace simbólico en la carpeta en la que LibreOffice contiene scripts. En mi caso es "~ / .config / libreoffice / 4 / user / Scripts / python".

Abra LibreOffice Writer (OpenOffice también debería funcionar), vaya a Herramientas -> Macros -> Ejecutar macro y vea nuestro script allí, si todo funcionó.

Queda por escribir un guión que tome kanji del documento y agregue sus lecturas en rublos de los caracteres correspondientes. Todo es simple: hay programas especiales para la generación de lectura, simplemente los ejecutamos desde nuestro script macro, a través de la entrada-salida estándar, ejecutamos texto en japonés e insertamos la salida en el documento.

Un programa llamado kakasi toma texto en japonés y da una lectura completa, pero esto no es exactamente lo que necesita, porque Quiero distribuir fragmentos de pistas fonéticas entre los campos de rubí de los caracteres correspondientes. Para hacer esto, usando mecab, puede tokenizar el texto japonés y, por lo tanto, alimentarlo con kakasi en partes. De hecho, la precisión de la generación de lectura a partir de esto se está deteriorando ligeramente, pero el diseño del documento está mejorando. Algunas fallas pueden ser reparadas manualmente.

Eso no es nada y eso es todo, pon apt-get install kakasi, mecab,
ve a github.com/undertherain/furiganize , descarga el torpe guión que escribí desde allí y qué sollozos lo hacen todo. Póngalo en la carpeta deseada y disfrute. Si alguien comparte su experiencia con otros sistemas operativos, generalmente será maravilloso.

Source: https://habr.com/ru/post/es395153/


All Articles