MS Office拼写检查不适用于托管api中的非英语语言

本文关键字:api 语言 英语 Office 检查 适用于 不适用 MS | 更新日期: 2023-09-27 18:28:27

我正在尝试使用不同语言的MSOffice使用c#api进行拼写检查。我已经安装了所有相关的语言包。例如,如果我输入德语拼写错误的单词"buxs",我会得到英语建议:bus、buss、buds、boxes、bugs、bums、buys、box's、bucks、burs。但我期待着这样的建议:巴士,巴士,巴士。

我的代码如下。。。我做错了什么?

wordApp = new Application();
wordApp.Visible = true;
WdLanguageID language = WdLanguageID.wdGerman;
wordDocument = wordApp.Documents.Add(ref missing, ref missing, ref missing, ref missing);
wordDocument.Content.LanguageID = language;
// This is mis-spelled. 
string misSpelledWord = "buxs";
// this returns english suggestions...
SpellingSuggestions theSuggestions = wordApp.GetSpellingSuggestions( misSpelledWord, ref missing, ref missing, ref missing, ref suggestionMode, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing);

MS Office拼写检查不适用于托管api中的非英语语言

我已经在Word ApplicationRange中对GetSpellingSuggestions进行了一些测试,您描述的行为似乎是正常的。我电脑上的语言是西班牙语,当我使用你的代码(使用WdLanguageID.wdSpanish"buxs")时,我会收到你提到的建议(与我改用英语时的建议相同)。另一方面,当我换成德语时,我什么也得不到。此外,我还测试了西班牙语中"明显可暗示"的单词("kasa"或"part"),结果很好。

我的结论是,如果这个词能在目标词典中找到,它就会产生这些结果;否则,它会在英语词典中查找。显然,德语词典中没有包含"buxs"。