将多语言词典与 aspell 结合使用

将多语言词典与 aspell 结合使用

我有一个包含两种语言的大型 .tex 文件,我想在不发疯的情况下对其进行拼写检查。因此,仅对一种语言进行拼写检查并针对另一种语言的单词按“忽略”是不可行的。

所以我阅读了 aspell 并发现你可以定义自己的.multi文件来组合字典。但显然你不能对不同语言的字典执行此操作,它会抛出错误(或者,如果你使用 GUI 工作,字典将显示为空)。

另外,我发现了一份错误报告,将此功能列入愿望清单,但似乎还没有人实现它。

所以,我的问题是:是否有任何明智的方法可以同时使用两种不同语言的两个词典?

这个问题让我很头疼,而且互联网上几乎没有关于如何做到这一点的文档。因此,我将把我找到的解决方法作为答案,以节省其他人(包括未来的我)的麻烦。但如果您有更好的解决方案,请发布。

答案1

所以,这是我的方法:

第 1 步:在您的系统上找到您的拼写词典。我在 中找到了它们/usr/lib/aspell/。您将看到.multi.rws文件。以下所有命令都将在该目录中执行。

第 2 步:从您想要的词典生成单词列表。如果词典中存储了单词的词缀,则需要扩展它们。

aspell --lang=en --master=en.multi  dump master > /home/user/meinwoerterbuch.txt
aspell -d de dump master | aspell -l de expand | perl -e 'while(<>){ print join("\n", split), "\n";}' >> /home/user/meinwoerterbuch.txt 

这里必须扩展德语词典,因为我想要每行一个单词,所以我使用 perl 每行获取几个单词并将每个单词打印在额外的一行上。只需查看 aspell (我推荐)的输出head即可确定是否需要扩展字典。

步骤 3:为您的词典选择一个语言名称。我选择匈牙利语,因为我很确定我永远不会真正使用匈牙利语词典进行拼写检查,这样就很容易找到。我认为它必须是具有有效 ISO 语言代码的东西。对于匈牙利语来说,那就是hu

第四步:创建hu.dat文件hu_phonet.dat。似乎最有效的精简版本是:

hu.dat

name hu 
charset iso8859-1
soundslike hu 

hu_phonet.dat

version 0.1-2002.12.15-3

第 5 步:创建合并字典

sudo aspell --lang=hu --encoding=utf-8 create master ./hu.rws < /home/user/meinwoerterbuch.txt

我必须把encoding=utf-8,因为txt文件是utf-8编码的。没有它它会抛出错误。

第 6 步:创建一个适当的hu.multi文件,如下所示:

add hu.rws

第 7 步:在拼写检查器中选择匈牙利语并开始拼写检查。

相关内容