将Furigan添加到LibreOffice的日文汉字Python宏

女士们,先生们,计划是这样的:

  • 您想知道的有关日语写作的一切,但又害怕问
  • 什么是红宝石文字
  • 如何在python中为libreoffice编写插件
  • 如何为看书生成阅读
  • 将所有这些放在一起,放入整形机中!




现代日语主要使用三种书写系统。

首先,这是两个音节字母:平假名和片假名。平假名更加圆润,看起来像这样:Katはらががすすis is is is main the Kat Kat Kat片假名更棱角分明(kaタナス),主要用于借来的单词,通常,平假名和片假名的符号集几乎相同。此外,我们将所有这些简称为“假名”。 “音节字母”是指代替我们的元音和辅音“ a”,“ b”和“ c”,仅包括整个音节,例如“ ka”,“ sa”和“ that”。但是,也有元音,但有五种元音(“ a”,“ and”,“ y”,“ e”,“ o” +“ i”,“ u”和“ e”),而其中只有一个辅音“ n”例外顺序。

这就是为什么日语很难发音带有连续辅音的单词的原因-它们根本不习惯,但这对我们现在不重要。原则上,使用一个卡纳您可以用日语写任何短语。

另一个系统是从中国借来的字符,我们将继续称其为汉字,即所谓的汉字。借来之后,日语(当然是sobsno)和中文也有所变化,汉字有了很大的变化,现在它们已经大为不同,尽管在另一方面,它们在很大程度上是相似的。让我们说,看中文文本,日语可以或多或少地理解他们在说什么。汉字看起来像这样:友达,日本酒,世界。是的,在日语中,它是一个圆点。

这是理解的重点:语法级别的日语和汉语通常根本不相关。因此,就这样,不可能带上汉字并开始写它们。实际上,借助汉字,您可以编写单个单词,甚至可以写单词的基础知识,而假名仍然用于表示语法形式和单词之间的联系。看起来像这样:送りととも便利设施す。如果仔细观察,您会发现第一个字符是汉字,其后是假名的几个标志,等等。通过此技巧,可以轻松地在视觉上区分日语文本和中文,而日语文本和中文在图形上看起来更“密集”,因为只有汉字。附在汉字上以表示语法形式的假名被称为“ okurigan”。

在这里,最后...汉字的数量非常多,如果您不是机器人,那么记住所有内容将很困难。如果这个单词是由汉字写成的,那么尽管亲自在口语中就能找到这个单词并且这个人知道这个单词,但是如何亲自去读它通常并不明显。为了在这种情况下提供帮助,尤其是对于稀有的汉字或当文字是针对儿童,外国人或其他精神上受限的公民的文字时,请从上方用假名签署汉字。这称为“ 假名假名 ”。看起来就像帖子开头的图片一样。

嗯,继续进行下一项。

为了在文本上添加注释,使用了所谓的ruby。它与编程语言无关。正如我刚从Wikipedia中学到的,俄语中称为“玛瑙”

Ruby支持使用ruby标签在html中提供:
<ruby>
 
 <rt></rt>
</ruby>


但是现在我们对LibreOffice感兴趣。在手动模式下,您可以通过菜单格式->亚洲语音指南,在文本中添加红宝石注释。这有点奇怪,因为您不仅可以将rub字段用于语音,而且可以将无花果与它们一起使用。如果菜单中没有此选项,则可以尝试在工具->选项->语言设置中添加对亚洲语言的支持。

接下来,我们要针对所选文本自动执行此操作。LibreOffice很棒,因为您可以在其中编写Python宏。为此,应该安装libreoffice-script-provider-python模块(通过apt-get安装),这不值得默认设置。哦,是的,我在Ubuntu下执行所有操作,如果您使用的是其他操作系统,则可以在评论中分享其配方:)

宏本身作为常规函数编写在Python上。通过带有相应类的实例的全局变量以及实际上所有必需的方法,可以看到该文档。

这是一个简单的示例:
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,


我们将文件保存,放置或在LibreOffice存放脚本的文件夹中建立符号链接。在我的情况下,它是“〜/ .config / libreoffice / 4 / user /脚本/ python”。

打开LibreOffice Writer(OpenOffice也可以使用),如果一切正常,请转到“工具”->“宏”->“运行宏”,然后在此处查看我们的脚本。

剩下的就是编写一个脚本,该脚本将从文档中提取汉字并将其读数添加到对应字符的卢布中。一切都很简单:有一些特殊的程序可以生成阅读信息,我们只需从宏脚本通过标准输入输出运行它们,运行日语文本,然后将输出插入文档中即可。

名为kakasi的程序会获取日语文本并进行完整的阅读,但这并不是您所需要的,因为 我想在对应字符的红宝石字段之间分配语音线索片段。为此,您可以使用mecab标记化日语文本,因此已经部分地将其输入了kakasi。实际上,由此产生的读取的准确性略有下降,但是文档的布局正在改善。然后可以手动修复一些缺陷。

就是这样,就放apt-get install kakasi,mecab,
转到github.com/undertherain/furiganize,下载我从那里编写的笨拙脚本,然后由哪个sobs完成。将其放在所需的文件夹中并享受。如果有人分享他们在其他操作系统上的经验,那通常会很棒。

Source: https://habr.com/ru/post/zh-CN395153/


All Articles