Gedit 或其他能夠同時對兩種語言進行拼寫檢查的非命令行編輯器
我正在尋找能夠同時對兩種語言(德語和英語)進行拼寫檢查的編輯器。Gedit 不能開箱即用。
但我想使用Gedit。應該可以通過合併英語和德語詞典並在工具->設置語言下選擇創建的文件…
編輯
我幾乎明白了(步驟 6 中的一些警告,例如
zzgl.
(末尾帶點的單詞)沒有拼寫檢查):) 感謝您的文章 Kevin Atkinson :)(我可能會添加我使用的英語
aspell6-en-7.1-0.tar.bz2
(已經是新版本/更新)但我使用的德語http://extensions.services.openoffice.org/project/dict-de_DE_frami
是因為它更新了。使用 . 提取此 .oxtunzip
。de_DE_frami
其中兩個需要的詞綴和字典文件稱為de_DE_frami.aff
和de_DE_frami.dic
。重命名de_DE_frami.aff
toqed_affix.dat
和de_DE_frami.dic
到de.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 是 * 18725 taq_affix.dat 103個.dat 12 是.multi 6763456 taq.rws
行: $ wc -l 是 * de_en 6個.dat 1 是.multi 54403 taq.rws 第717章 334974 de_en
下載此軟體包以防有人需要。
我現在在第 6 步看到的最多警告如下所示 - 最後 5 行:
$ cat de_en | aspell --encoding=utf-8 create master -l ./qed ./qed.rws ...(出現許多警告) 警告:從單詞 zytostatika 中刪除無效的詞綴 'o'。 警告:從單詞 zytostatika 中刪除無效的詞綴“z”。 警告:從單詞 zytostatikum 中刪除無效的詞綴 'o'。 警告:從單詞 zytostatikum 中刪除無效的詞綴“z”。 警告:單詞“zzgl”。是無效的。性格 '。' (U+2E) 不能出現在詞尾。跳過單詞。 $
現在我刪除了and
aspell-en
(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->Tools->Set Language…->Unknown (qed)。
關於第 6 步中的警告,
zzlg.
末尾帶有點的單詞沒有進行拼寫檢查。qed.dat
special ' -*-
我嘗試通過添加 a來玩線,.
因為那裡也de.dat
使用了 a.
,但不幸的是它沒有用。編輯
通過僅對這些單詞進行 grepping 並將它們添加到拼寫檢查白名單中,解決了末尾帶有點的單詞的拼寫檢查問題。
$ cat de_en | sed -n '/\./{s/[./]\+[^./]*$//;p}' >> /home/<username>/.config/enchant/qed.dic
Aspell 作者在這裡。
正如我在之前的回答中所說,您不能僅僅將來自不同語言的字典組合起來並期望它能夠工作。您需要創建一種結合了兩種原始語言功能的新語言。
幸運的是,對於英語和德語來說,這相當容易。但是,由於我們將禁用 soundlike 查找,因此英語單詞的建議質量會受到影響。
- 安裝 aspell-en 和 aspell-de 字典包
- 轉到一個空目錄以保持一切清潔。此外,為了避免任何字元集問題,通過設置將語言環境更改為“C”
LC_ALL=C
。- 將英語和德語詞典轉儲到計劃詞表中
aspell dump master en > en.txt aspell dump master de > de.txt
- 結合 en.dat 和 de.dat,您通常可以在
usr/lib/aspell
.英語詞典使用聽起來像查找,但德語詞典不會(由於它是英語特定的,並且更容易導入它與 Affix 壓縮不兼容),因此我們將禁用它。英語詞典不使用詞綴壓縮,但德語詞典使用,因此我們將只使用德語詞典的詞綴文件。(這將避免必須擴展德語詞典,從而增加它的大小)。
我們將語言 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
- 複製
de_affix.dat
到目前目錄並重命名qed_affix.dat
。- 創建組合字典:
cat en.txt de.txt | aspell create master -l ./qed ./qed.rws
- 創建文件
qed.multi
:add qed.rws
- 使用 測試字典
-d ./qed
。需要./
強制 aspell 搜尋目前目錄。- 安裝在 aspell 可以找到
qed.dat
qed.rws
qed.multi
的qed_affix.dat
地方。有關 aspell 如何搜尋字典和語言數據文件的資訊,請參閱手冊。- 完畢。現在一切都應該正常了。更複雜的解決方案將啟用某種形式的聲音查找,以獲得更好的建議質量。但這在與詞綴壓縮一起使用時需要特別小心(有關詳細資訊,請參閱 Aspell 手冊)。作為替代方案,可以擴展德語詞典並使用類似英語的查找,但這可能不適用於德語單詞。
組合英語和德語的情況很容易,因為它們都使用相同的字元集 (iso-8859-1),而且只有一種語言使用 Affix 壓縮。結合其他語言需要更多的工作,但一旦你知道你在做什麼,這是可能的。我在這裡詳細說明了這些步驟,讓讀者了解 Aspell 的工作原理,以便類似的東西可以用於其他語言組合。
如果兩種語言都使用詞綴壓縮,則需要組合詞綴文件以便沒有衝突的標誌,或者需要擴展其中一個字典。
如果這兩種語言使用不同的 8 位字元集,而不是可以支持這兩種語言的兼容字元集,我們需要使用它。如果標準不存在,則可以創建新的。為避免混淆,應將單詞列表轉換為 utf-8,並且應指示 Aspell 期望所有輸入和輸出都使用 utf-8 而不是內部使用的字元集,由於歷史原因,這是預設設置。
Vim 允許為拼寫檢查設置一種以上的語言,例如
:set spelllang=de,en
德語和英語。