Gedit 或其他能够同时对两种语言进行拼写检查的非命令行编辑器

Gedit 或其他能够同时对两种语言进行拼写检查的非命令行编辑器

我正在寻找一个能够同时检查两种语言(德语和英语)的编辑器。 Gedit 无法开箱即用。

但我想使用Gedit。应该可以通过合并英语和德语词典并在“工具”->“设置语言”下选择创建的文件...

编辑

我几乎明白了(第 6 步中的一些警告,例如zzgl.(末尾带有点的单词)没有进行拼写检查):) 感谢您的帖子 Kevin Atkinson :)

(我可以补充一下,对于我使用的英语aspell6-en-7.1-0.tar.bz2(已经是新版本/更新),但对于德语,我使用http://extensions.services.openoffice.org/project/dict-de_DE_frami它是因为它更新了。使用 提取此 .oxt unzip。其中de_DE_frami有两个所需的词缀和字典文件,称为de_DE_frami.affde_DE_frami.dic。将其重命名为de_DE_frami.afftoqed_affix.dat和 thede_DE_frami.dicde.txt

注意:对于德语,还有一个扩展:http://extensions.services.openoffice.org/de/project/DFEW我稍后也会合并)

在第 6 步中,我必须使用, $ cat de_en | aspell --encoding=utf-8 create master -l ./qed ./qed.rws 因为所有 üäöß.. 都被跳过并且不在创建的字典中,但现在它们在那里:( $ aspell -d ./qed.rws -a 测试:输入例如“Käse”或“zweiunddreißig”会打印一个*,所以它现在找到这些单词)

文件大小:$ du -b qed*
18725 qed_affix.dat
第103章
12 qed 多
6763456 qed.rws
行: $ wc -l qed* de_en
       6 qed.dat
       1 qed 多
   54403 qed.rws
     第717章
  334974 de_en

下载以防有人需要这个包。

我现在在第 6 步看到的最多警告如下 - 最后 5 行:

$ 猫 de_en | aspell --encoding=utf-8 create master -l ./qed ./qed.rws
...(出现许多警告)
警告:从单词 zytostatika 中删除无效的词缀“o”。
警告:从单词 zytostatika 中删除无效的词缀“z”。
警告:从单词 zytostatikum 中删除无效的词缀“o”。
警告:从单词 zytostatikum 中删除无效的词缀“z”。
警告:“zzgl”这个词。是无效的。人物 '。' (U+2E) 不得出现在单词末尾。跳过这个词。
$

现在我删除了aspell-enand aspell-de( )并将$sudo apt-get remove aspell-en aspell-de所有四个文件qed.dat, qed.multi,qed.rws放入.顺便说一句,我的是空的。qed_affix.dat/usr/lib/aspell/var/lib/aspell

现在可以选择新包:gedit->工具->设置语言...->未知(qed)。

关于步骤 6 中的警告,zzlg.末尾带有点的单词不会进行拼写检查。我尝试qed.dat special ' -*-通过添加 a来玩线,.因为那里也de.dat使用了 a .,但不幸的是它不起作用。

编辑

解决了通过仅 grep 并将它们添加到拼写检查白名单来对末尾带有点的单词进行拼写检查。 $ cat de_en | sed -n '/\./{s/[./]\+[^./]*$//;p}' >> /home/<username>/.config/enchant/qed.dic

答案1

Vim 允许为拼写检查设置多种语言,例如

:set spelllang=de,en

德语和英语。

答案2

阿斯佩尔作者在这里。

正如我在之前的回答中所说,您不能只是组合不同语言的词典并期望它能够工作。您需要创建一种新语言,结合两种原始语言的功能。

幸运的是,对于英语和德语来说,这相当容易;但是,由于我们将禁用类似声音查找,因此英语单词的建议质量将会受到影响。

  1. 安装 aspell-en 和 aspell-de 字典包

  2. 转到一个空目录以保持一切干净。另外,为了避免任何字符集问题,请通过设置将语言环境更改为“C” LC_ALL=C

  3. 将英语和德语词典转储到计划单词列表中

    aspell dump master en > en.txt
    aspell dump master de > de.txt
    
  4. 结合 en.dat 和 de.dat,您通常可以在 中找到它们usr/lib/aspell

    英语词典使用类似音素的查找,但德语词典则不会(因为它是英语专用的,而且更易于导入,与词缀压缩不兼容),所以我们将禁用它。英语词典不使用词缀压缩,但德语词典使用,因此我们将只使用德语词典的词缀文件。(这将避免必须扩展德语词典并因此增加其大小)。

    我们将这种语言称为 qed,“q”,因为很少有语言以 q 开头,“e”代表英语,“g”代表德语。 (语言名称通常应为 2 到 3 个字母,但 aspell 并不真正关心,因此 en-de 或其他名称可能有效,但 2 或 3 个字母的名称保证有效)

    该文件将被命名qed.dat并包含以下内容:

    name qed
    charset iso8859-1
    special ' -*-
    soundslike      none
    affix           qed
    affix-compress  true
    
  5. 复制de_affix.dat到当前目录并重命名qed_affix.dat

  6. 创建组合字典:

    cat en.txt de.txt | aspell create master -l ./qed ./qed.rws
    
  7. 创建文件qed.multi

    add qed.rws
    
  8. 使用 测试字典-d ./qed。需要./强制 aspell 搜索当前目录。

  9. 安装qed.dat qed.rws qed.multiqed_affix.dat放在 aspell 能找到它的地方。有关 aspell 如何搜索词典和语言数据文件的信息,请参阅手册。

  10. 完毕。现在一切都应该正常了。更复杂的解决方案将启用某种形式的类似声音查找,以获得更好的建议质量。但与词缀压缩一起使用时需要特别小心(有关详细信息,请参阅 Aspell 手册)。作为替代方案,可以扩展德语词典并使用英语发音查找,但这对于德语单词可能不太有效。

组合英语和德语的情况很容易,因为它们都使用相同的字符集 (iso-8859-1),而且只有一种语言使用 Affix 压缩。结合其他语言将需要更多的工作,但一旦你知道自己在做什么,这是可能的。我在这里详细阐述了这些步骤,让读者了解 Aspell 的工作原理,以便类似的东西可以用于其他语言组合。

如果两种语言都使用词缀压缩,则需要组合词缀文件以便不存在冲突的标志,或者需要扩展其中一个词典。

如果两种语言使用不同的 8 位字符集,而不是我们需要使用的可以支持这两种语言的兼容字符集。如果标准不存在,则可以创建一个新的。为避免混淆,应将单词列表转换为 utf-8,并指示 Aspell 期望所有输入和输出均采用 utf-8,而不是内部使用的字符集(由于历史原因,内部使用的字符集是默认值)。

答案3

阿斯佩尔作者在这里。

您不能只是将两种不同语言的两个词典组合起来并期望它能够工作。每个词典还有一个与之关联的数据文件,用于描述语言特定的功能。

最好的选择是创建一种可以正确处理英语和德语的新语言。这样做是一项可行但不简单的任务。如果您找不到任何其他解决方案,我可能会在本周晚些时候帮助您完成此任务。

Aspell(或我所知道的大多数其他拼写检查器,包括 Hunspell)目前不支持一般的多语言拼写检查。

相关内容