Fügen Sie Furigan zum Kanji Python Macro für LibreOffice hinzu

Meine Damen und Herren, der Plan ist folgender:

  • Alles, was Sie über japanisches Schreiben wissen wollten, aber Angst hatten zu fragen
  • Was ist Rubintext?
  • wie man Addons für libreoffice in Python schreibt
  • wie man lesungen für kanzi generiert
  • Alles in einem Furiganizer zusammenfügen!




Das moderne Japanisch verwendet hauptsächlich drei Schriftsysteme.

Erstens sind dies zwei Silbenalphabete: Hiragana und Katakana. Hiragana ist runder, sieht ungefähr so ​​aus: こ れ は ひ ら が な で す und ist sozusagen das Hauptalphabet. Ak Katakana ist eckiger (カ タ カ ナ デ ス) und wird hauptsächlich für geliehene Wörter verwendet. Im Allgemeinen sind die Zeichen für Hiragana und Katakana fast gleich. Weiter werden wir das alles einfach "Kana" nennen. "Silbenalphabet" bedeutet, dass anstelle unserer Vokale und Konsonanten "a", "b" und "c" nur ganze Silben wie "ka", "sa" und "das" verwendet werden. Es gibt aber auch Vokale, es gibt fünf Stücke ("a", "und", "y", "e", "o" + "i", "u" und "e") und nur einen Konsonanten "n" in Ausnahmereihenfolge.

Deshalb ist es für die Japaner sehr schwierig, Wörter mit aufeinanderfolgenden Konsonanten auszusprechen - sie sind einfach nicht daran gewöhnt, aber das ist für uns jetzt nicht wichtig. Mit einer Cana können Sie im Prinzip jede Phrase auf Japanisch schreiben.

Ein anderes System sind die aus China entliehenen Charaktere, die wir weiterhin Kanji nennen werden , dann wie sie genannt werden. Nach dem Ausleihen haben sich auch Japanisch, Ja, Schluchzen und Chinesisch, Kanji erheblich verändert, und jetzt sind sie ganz anders, obwohl sie sich natürlich weitgehend ähneln. Sagen wir einfach, wenn ein Japaner einen chinesischen Text betrachtet, kann er mehr oder weniger verstehen, wovon er spricht. Kanji sieht ungefähr so ​​aus:, 達 、 日本 日本 、 世界。 Ja, auf Japanisch ist es ein runder Punkt.

Hier ist ein wichtiger Punkt für das Verständnis: Japanisch und Chinesisch auf Grammatikebene sind im Allgemeinen überhaupt nicht miteinander verbunden. So war es einfach unmöglich, chinesische Schriftzeichen zu nehmen und sie zu schreiben. Tatsächlich können Sie mit Hilfe von Kanji einzelne Wörter schreiben, eher sogar die Grundlagen von Wörtern, und Kana wird immer noch verwendet, um grammatikalische Formen und die Verbindung von Wörtern untereinander anzuzeigen. Es sieht ungefähr so ​​aus: 送 り が な は と っ て も 便利 便利 で. Wenn Sie genau hinschauen, können Sie sehen, dass das erste Zeichen Kanji ist, gefolgt von mehreren Zeichen von Kana usw. Dieser Trick macht es einfach, visuell zwischen japanischem und chinesischem Text zu unterscheiden, die grafisch „dichter“ aussehen, weil Es gibt nur Kanji. Dieses Kana, das an Kanji angehängt ist, um die grammatikalische Form anzuzeigen, wird "Okurigan" genannt.

Hier und schließlich ... Die Anzahl der Kanji ist ziemlich groß, und wenn Sie kein Roboter sind, ist es schwierig, sich an alles zu erinnern. Wenn das Wort von Kanji geschrieben wird, ist es oft nicht offensichtlich, wie man es persönlich liest, obwohl das Wort in der gesprochenen Sprache gut gefunden werden kann und die Person es kennt. Um in dieser Situation zu helfen, insbesondere bei seltenen Kanji oder wenn der Text für Kinder, Ausländer oder andere geistig eingeschränkte Kategorien von Bürgern bestimmt ist, wird das Lesen eines Kanji von oben mit einem Kana signiert. Dies wird als " Furigana " bezeichnet. Es sieht aus wie auf dem Bild am Anfang des Beitrags.

Fuh, gehe zum nächsten Punkt.

Um Anmerkungen über Text hinzuzufügen, wird der sogenannte Rubin verwendet. Es hat nichts mit der Programmiersprache zu tun. Wie ich gerade aus Wikipedia gelernt habe, heißt es auf Russisch „Achat“.

Ruby-Unterstützung ist in HTML über das Ruby-Tag verfügbar:
<ruby>
 
 <rt></rt>
</ruby>


Aber jetzt interessieren wir uns für LibreOffice. Im manuellen Modus können Sie dem Text über das Menü Format -> Asian Phonetic Guide Rubinanmerkungen hinzufügen. Dies ist etwas seltsam, da Sie das Reibungsfeld nicht nur für die Phonetik verwenden können, sondern auch für Feigen. Wenn dies nicht im Menü enthalten ist, können Sie versuchen, die Unterstützung für asiatische Sprachen unter Extras -> Optionen -> Spracheinstellungen hinzuzufügen.

Als nächstes möchten wir dies automatisch für den ausgewählten Text tun. LibreOffice ist insofern wunderbar, als Sie darin Makros in Python schreiben können. Dazu sollte das libreoffice-script-provider-python-Modul installiert sein (installiert über apt-get), was die Standardeinstellung nicht wert ist. Oh ja, ich mache alles unter Ubuntu, wenn du ein anderes Betriebssystem hast, dann kannst du das Rezept dafür in den Kommentaren teilen :)

Das Makro selbst wird als reguläre Funktion auf einem Python geschrieben. Das Dokument ist durch eine globale Variable mit einer Instanz der entsprechenden Klasse und tatsächlich allen erforderlichen Methoden sichtbar.

Hier ist ein einfaches Beispiel:
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,


Wir speichern in einer Datei, legen sie ab oder erstellen einen symbolischen Link in dem Ordner, in dem LibreOffice Skripte enthält. In meinem Fall ist es "~ / .config / libreoffice / 4 / user / Scripts / python".

Öffnen Sie LibreOffice Writer (OpenOffice sollte auch funktionieren), gehen Sie zu Extras -> Makros -> Makro ausführen und sehen Sie dort unser Skript, wenn alles geklappt hat.

Es bleibt ein Skript zu schreiben, das Kanji aus dem Dokument entnimmt und dessen Messwerte in Rubel der entsprechenden Zeichen hinzufügt. Alles ist einfach: Es gibt spezielle Programme zur Leseerzeugung. Wir führen sie einfach über unser Makroskript aus, über die Standardeingabe und -ausgabe, führen japanischen Text aus und fügen die Ausgabe in das Dokument ein.

Ein Programm namens kakasi nimmt japanischen Text und gibt eine ganze Lesung, aber das ist nicht genau das, was Sie brauchen, weil Ich möchte phonetische Hinweisfragmente zwischen den Rubinfeldern der entsprechenden Zeichen verteilen. Zu diesem Zweck können Sie mit Mecab den japanischen Text tokenisieren und ihn daher bereits in Teilen kakasi füttern. Tatsächlich verschlechtert sich die Genauigkeit der Leseerzeugung geringfügig, aber das Layout des Dokuments verbessert sich. Einige Fehler können dann manuell behoben werden.

Das ist sobsno und das war's, setzen Sie apt-get install kakasi, mecab,
gehen Sie zu github.com/undertherain/furiganize , laden Sie das ungeschickte Skript herunter, das ich von dort geschrieben habe, und welches schluchzt alles. Legen Sie es in den gewünschten Ordner und genießen Sie. Wenn jemand seine Erfahrungen mit anderen Betriebssystemen teilt, ist dies im Allgemeinen wunderbar.

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


All Articles