Ich portiere eine Anwendung für Autoren auf die UWP-Plattform. Das einzige Puzzleteil, das ich noch habe, ist die NHunspell-Bibliothek. Ich benutze es ausgiebig für Rechtschreibprüfung und Thesaurus-Funktionen. Ich habe es ganz individuell gestaltet und benutzerdefinierte Wörterbücher für verschiedene Dinge erstellt (d. H. Ein anderes Wörterbuch für jedes Schreibprojekt). Diese Bibliothek ist eine schöne Sache.Rechtschreibbibliotheken (wie hunspell) in UWP-Anwendungen?
Allerdings kann ich nicht scheinen, diese DLL in meine UWP-Anwendung einzuschließen.
1) Gibt es eine Möglichkeit, die Verwendung dieser DLL zu erzwingen? Ich mag es wirklich, wie das NHunSpell-System eingerichtet ist. Es macht gesunden Menschenverstand und ist sehr schnell und einfach zu bedienen.
2) Wenn nicht, kann jemand eine bessere Lösung für benutzerdefinierte Wörterbücher, angepasste Rechtschreibprüfung usw. empfehlen?
Update 3
Nach umfangreicher Aktualisierung und Online-Lesen, fand ich einen Link, um die Theorie der Rechtschreibprüfung zu diskutieren. Hier ist ein kurzes Beispiel (dasjenige, das ich am meisten benutzt habe).
http://www.anotherchris.net/csharp/how-to-write-a-spelling-corrector-in-csharp/
Nach dem Lesen dieses Artikels, dass die Basiscode nehmen, und die englischen Wörter aus den Hunspell .dic Dateien Strippen, ich habe meine eigene Rechtschreibprüfung Bibliothek erstellt, die in UWP funktioniert.
Sobald ich es verfestigt habe, werde ich es als Antwort unten posten, um an die SO-Community zu spenden. :)
aktualisieren 2
ich die Verwendung von Hunspell Gegentor. Es sieht nicht so aus, als wäre es überhaupt möglich ... Gibt es noch andere Bibliotheken/Pakete, die jemand vorschlagen kann?
UPDATE:
Ich brauche wohl die Anweisung neu zu formulieren, dass ich nicht die DLL enthalten kann: Ich kann die DLL durch NuGet umfassen. Es beschwert sich, dass die DLL nicht mit der UAP/UWP-Plattform kompatibel ist.
Ich bin in der Lage, MANUELL die DLL in meinem Projekt durch Verknüpfung mit einer vorhandenen DLL (nicht NuGet). Diese DLL erweist sich jedoch als inkompatibel mit der UAP-Plattform. Ein einfacher Aufruf zur Rechtschreibprüfung eines Wortes funktioniert in WinForms einwandfrei, stürzt jedoch sofort mit System.IO.FileNotFoundException
ab.
Der Konstruktor von NHunspell reicht aus, um die zugehörigen Dateien .dic
und .aff
zu laden. Allerdings habe ich dies gemildert, indem ich die Dateien in den Speicher geladen habe und dann den alternativen Konstruktor aufgerufen habe, der für jede dieser Dateien ein Byte-Array anstelle eines Dateinamens verwendet. Es stürzt immer noch, aber mit einem neuen Method not found
Fehlern:
String System.AppDomain.get_RelativeSearchPath()
ich für jede Rechtschreibprüfung Motor suchen, die innerhalb des UAP Rahmen arbeiten. Ich würde es vorziehen NHunspell einfach aus Gründen der Vertrautheit zu sein. Ich bin jedoch nicht blind dafür, dass dies als Option immer weniger möglich wird.
Leute, mit denen ich arbeite, haben vorgeschlagen, dass ich die integrierten Rechtschreiboptionen verwende.Ich kann jedoch nicht die integrierten Rechtschreibprüfungsfunktionen von Windows 10/TextBox verwenden (die ich kenne), weil ich benutzerdefinierte Wörterbücher nicht steuern kann und Dinge wie automatische Großschreibung und Ersetzen von Wörtern (wo es ersetzt das Wort für Sie, wenn es denkt, dass es nah genug an der richtigen Schätzung ist). Diese Dinge sind Kapitelselbstmord für Schriftsteller! Ein Schreiber kann sie auf Betriebssystemebene deaktivieren, aber sie können sie für andere Apps verwenden, nur nicht für dieses.
Bitte lassen Sie mich wissen, wenn es eine Ausweichmöglichkeit für NHunspell gibt. Und wenn Sie keine Lösung kennen, lassen Sie mich Ihre beste benutzerdefinierte Rechtschreibprüfungs-Engine wissen, die innerhalb des UAP-Frameworks funktioniert.
Als Randbemerkung verwende ich NHunspell für seine Thesaurus-Fähigkeit. Es funktioniert sehr gut in meinen Windows-Apps. Ich müsste diese Funktionalität auch ersetzen - hoffentlich mit der gleichen Engine wie die Rechtschreibprüfungs-Engine. Allerdings, wenn Sie eine gute Thesaurus-Engine wissen (aber es Rechtschreibprüfung), das ist auch gut!
Vielen Dank !!
Können Sie weitere Details angeben? Bauen Sie aus der Quelle? –
Ich habe den NHunspell nicht aus der Quelle gebaut. In früheren Versionen (nicht UWP) habe ich NHunspell aus NuGet-Paketen verwendet. Mit meiner UWP-App sagt mir NuGet, dass NHunspell nicht kompatibel ist. – Jerry
NuGet ist richtig, Sie müssen die Bibliothek aus Quellcode mit dem UWP SDK erstellen. – yms