我正在将编写器的应用程序移植到 UWP 平台。我剩下的唯一一块拼图是 NHunspell 库。我将它广泛用于拼写检查和词库功能。我已经定制了它,并为各种事物创建了自定义词典(即,每个写作项目都有不同的词典)。这个图书馆是一个美丽的东西。
但是,我似乎无法在我的 UWP 应用程序中包含此 DLL。
1)有没有办法强制使用这个DLL?我真的很喜欢NHunSpell 系统的设置方式。它具有常识,并且非常快速且易于使用。
2)如果没有,任何人都可以为自定义词典、自定义拼写检查等推荐一个更好的解决方案吗?
更新 3
经过大量更新和在线阅读,我找到了一个讨论拼写检查理论的链接。这是一个简单的示例(我使用最多的示例)。
http://www.anotherchris.net/csharp/how-to-write-a-spelling-corrector-in-csharp/
在阅读了这篇文章、获取了基本代码并从 Hunspell .dic 文件中删除了英文单词之后,我创建了自己的在 UWP 中工作的拼写检查库。
一旦我得到它固化,我会将它作为答案发布在下面以捐赠给 SO 社区。:)
更新 2
我承认使用 Hunspell。看起来根本不可能……还有其他人可以建议的库/包吗?
更新 :
我可能需要改写我不能包含 DLL 的声明:我不能通过 NuGet 包含 DLL。它抱怨 DLL 与 UAP/UWP 平台不兼容。
我可以通过链接到现有的 DLL(不是 NuGet)在我的项目中手动包含 DLL。但是,该 DLL 确实被证明与 UAP 平台不兼容。在 WinForms 中对单词进行拼写检查的简单调用可以正常工作,但会立即与System.IO.FileNotFoundException
.
NHunspell 的构造函数确实伸出手来加载关联的.dic
和.aff
文件。但是,我通过将文件加载到内存中来缓解这种情况,然后调用备用构造函数,该构造函数采用字节数组而不是每个文件的文件名。它仍然崩溃,但出现了一个新Method not found
错误:
String System.AppDomain.get_RelativeSearchPath()
我正在寻找可以在 UAP 框架内工作的任何拼写检查引擎。出于熟悉的原因,我更喜欢它是 NHunspell。但是,我并没有忽视这样一个事实,即作为一种选择越来越不可能。
与我一起工作的人建议我使用内置的拼写检查选项。但是,我无法使用内置的 Windows 10/TextBox 拼写检查功能(我知道),因为我无法控制自定义词典,也无法禁用自动大写和单词替换(其中如果它认为它足够接近正确的猜测,它会为你替换这个词)。那些东西对作家来说是自杀的章节!作家可以在操作系统级别关闭它们,但他们可能希望其他应用程序打开它们,而不是这个。
请让我知道是否有针对 NHunspell 的解决方法。如果您不知道解决方法,请告诉我您可以在 UAP 框架内工作的最佳替代自定义拼写检查引擎。
作为旁注,我还使用 NHunspell 的词库功能。它在我的 Windows 应用程序中运行良好。我还必须替换此功能——希望使用与拼写检查引擎相同的引擎。但是,如果您知道一个好的词库引擎(但它不进行拼写检查),那也很好!
谢谢!!