Skip to content

Commit

Permalink
Add language detection via "auto" language
Browse files Browse the repository at this point in the history
  • Loading branch information
valentjn committed Sep 8, 2021
1 parent d16d734 commit 63fc131
Show file tree
Hide file tree
Showing 5 changed files with 61 additions and 3 deletions.
3 changes: 3 additions & 0 deletions changelog.xml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,9 @@
<action type="remove">
Remove setting [`ltex.java.forceTrySystemWide`](https://valentjn.github.io/vscode-ltex/docs/settings.html#ltexjavaforcetrysystemwide)
</action>
<action type="add" issue="ltex-ls#103">
Add support for automatic language detection via language short code `auto`; language variants like `en-US` are not detected, only generic languages like `en`; this will result in spelling errors not being reported
</action>
<action type="add">
Provide ID of LanguageTool rule via diagnostics code, not as part of diagnostics message
</action>
Expand Down
35 changes: 35 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -176,6 +176,7 @@
"enum": [
"ar",
"ast-ES",
"auto",
"be-BY",
"br-FR",
"ca-ES",
Expand Down Expand Up @@ -225,6 +226,7 @@
"markdownEnumDescriptions": [
"%ltex.i18n.configuration.ltex.language.ar.markdownEnumDescription%",
"%ltex.i18n.configuration.ltex.language.ast-ES.markdownEnumDescription%",
"%ltex.i18n.configuration.ltex.language.auto.markdownEnumDescription%",
"%ltex.i18n.configuration.ltex.language.be-BY.markdownEnumDescription%",
"%ltex.i18n.configuration.ltex.language.br-FR.markdownEnumDescription%",
"%ltex.i18n.configuration.ltex.language.ca-ES.markdownEnumDescription%",
Expand Down Expand Up @@ -274,6 +276,7 @@
"enumDescriptions": [
"%ltex.i18n.configuration.ltex.language.ar.enumDescription%",
"%ltex.i18n.configuration.ltex.language.ast-ES.enumDescription%",
"%ltex.i18n.configuration.ltex.language.auto.enumDescription%",
"%ltex.i18n.configuration.ltex.language.be-BY.enumDescription%",
"%ltex.i18n.configuration.ltex.language.br-FR.enumDescription%",
"%ltex.i18n.configuration.ltex.language.ca-ES.enumDescription%",
Expand Down Expand Up @@ -331,6 +334,7 @@
"enum": [
"ar",
"ast-ES",
"auto",
"be-BY",
"br-FR",
"ca-ES",
Expand Down Expand Up @@ -393,6 +397,13 @@
},
"markdownDescription": "%ltex.i18n.configuration.ltex.dictionary.ast-ES.markdownDescription%"
},
"auto": {
"type": "array",
"items": {
"type": "string"
},
"markdownDescription": "%ltex.i18n.configuration.ltex.dictionary.auto.markdownDescription%"
},
"be-BY": {
"type": "array",
"items": {
Expand Down Expand Up @@ -734,6 +745,7 @@
"enum": [
"ar",
"ast-ES",
"auto",
"be-BY",
"br-FR",
"ca-ES",
Expand Down Expand Up @@ -796,6 +808,13 @@
},
"markdownDescription": "%ltex.i18n.configuration.ltex.disabledRules.ast-ES.markdownDescription%"
},
"auto": {
"type": "array",
"items": {
"type": "string"
},
"markdownDescription": "%ltex.i18n.configuration.ltex.disabledRules.auto.markdownDescription%"
},
"be-BY": {
"type": "array",
"items": {
Expand Down Expand Up @@ -1133,6 +1152,7 @@
"enum": [
"ar",
"ast-ES",
"auto",
"be-BY",
"br-FR",
"ca-ES",
Expand Down Expand Up @@ -1195,6 +1215,13 @@
},
"markdownDescription": "%ltex.i18n.configuration.ltex.enabledRules.ast-ES.markdownDescription%"
},
"auto": {
"type": "array",
"items": {
"type": "string"
},
"markdownDescription": "%ltex.i18n.configuration.ltex.enabledRules.auto.markdownDescription%"
},
"be-BY": {
"type": "array",
"items": {
Expand Down Expand Up @@ -1532,6 +1559,7 @@
"enum": [
"ar",
"ast-ES",
"auto",
"be-BY",
"br-FR",
"ca-ES",
Expand Down Expand Up @@ -1594,6 +1622,13 @@
},
"markdownDescription": "%ltex.i18n.configuration.ltex.hiddenFalsePositives.ast-ES.markdownDescription%"
},
"auto": {
"type": "array",
"items": {
"type": "string"
},
"markdownDescription": "%ltex.i18n.configuration.ltex.hiddenFalsePositives.auto.markdownDescription%"
},
"be-BY": {
"type": "array",
"items": {
Expand Down
9 changes: 8 additions & 1 deletion package.nls.de.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,14 @@
"ltex.i18n.walkthrough.getInvolved.markdownPath": "walkthrough/de/getInvolved.md",
"ltex.i18n.configuration.ltex.enabled.markdownDescription": "Steuert, ob die Erweiterung aktiviert ist. Erlaubt die Deaktivierung von LanguageTool für bestimmte Arbeitsbereiche oder für bestimmte Code-Sprachmodi (d. h. Dateitypen). [Weitere Informationen ...](https://valentjn.github.io/vscode-ltex/docs/settings-de.html#ltexenabled)",
"ltex.i18n.configuration.ltex.enabled.fullMarkdownDescription": "Steuert, ob die Erweiterung aktiviert ist. Erlaubt die Deaktivierung von LanguageTool für bestimmte Arbeitsbereiche oder für bestimmte Code-Sprachmodi (d. h. Dateitypen).\n\nSie können entweder einen Boolean-Wert angeben, der bestimmt, ob LTeX für alle unterstützten Auszeichnungssprachen aktiviert oder für alle deaktiviert wird, oder eine Liste von [Code-Sprachbezeichnern](https://code.visualstudio.com/docs/languages/identifiers), für die LTeX aktiviert werden soll (beachten Sie, dass Erweiterungen zusätzliche Code-Sprachbezeichner definieren können).\n\nAlle unterstützten Auszeichnungssprachen sind in der Voreinstellung dieser Einstellung aufgelistet. Zusätzlich kann LTeX Kommentare in vielen populären Programmiersprachen wie C++ oder Java überprüfen, wenn Sie die entsprechenden Code-Sprachbezeichner zu dieser Einstellung hinzufügen. Wenn Sie einen nicht-unterstützten Code-Sprachmodus hinzufügen, dann wird LTeX entsprechende Dateien als reinen Text ohne Parsen überprüfen.\n\n<!-- ltex-client-specific-de-begin -->\n\nDie Aktivierungsereignisse werden von dieser Einstellung nicht berührt. Das heißt, dass die Erweiterung aktiviert wird, sobald eine Datei mit einem unterstützten Code-Sprachmodus geöffnet wird. Falls Sie Dateien mit nicht-unterstützten Codi-Sprachmodi überprüfen wollen, müssen Sie eventuell die Erweiterung explizit mithilfe des Befehls [`LTeX: Aktiviere Erweiterung`](https://valentjn.github.io/vscode-ltex/docs/commands-de.html#ltex-aktiviere-erweiterung) aktivieren.\n\nNach Änderungen muss das Fenster von Visual Studio Code erneut geladen werden.\n\n<!-- ltex-client-specific-end -->",
"ltex.i18n.configuration.ltex.language.markdownDescription": "Die Sprache (z. B. `\"en-US\"`), mit der LanguageTool auf Fehler suchen soll. Benutzen Sie eine bestimmte Variante wie `\"en-US\"` oder `\"de-DE\"` anstelle des generischen Sprachcodes wie `\"en\"` oder `\"de\"`, um Rechtschreibfehler zu finden (zusätzlich zu Grammatikfehlern).",
"ltex.i18n.configuration.ltex.language.markdownDescription": "Die Sprache (z. B. `\"en-US\"`), mit der LanguageTool auf Fehler suchen soll. Benutzen Sie eine bestimmte Variante wie `\"en-US\"` oder `\"de-DE\"` anstelle des generischen Sprachcodes wie `\"en\"` oder `\"de\"`, um Rechtschreibfehler zu finden (zusätzlich zu Grammatikfehlern). [Weitere Informationen ...](https://valentjn.github.io/vscode-ltex/docs/settings-de.html#ltexlanguage)",
"ltex.i18n.configuration.ltex.language.fullMarkdownDescription": "Die Sprache (z. B. `\"en-US\"`), mit der LanguageTool auf Fehler suchen soll. Benutzen Sie eine bestimmte Variante wie `\"en-US\"` oder `\"de-DE\"` anstelle des generischen Sprachcodes wie `\"en\"` oder `\"de\"`, um Rechtschreibfehler zu finden (zusätzlich zu Grammatikfehlern).\n\nWenn Sie den Sprachcode `\"auto\"` benutzen, dann wird LTeX versuchen, die Sprache des Dokuments zu erkennen. Dies wird nicht empfohlen, da nur generische Sprachen wie `\"en\"` oder `\"de\"` erkannt werden und daher keine Rechtschreibfehler gemeldet werden.",
"ltex.i18n.configuration.ltex.language.ar.markdownEnumDescription": "Arabic",
"ltex.i18n.configuration.ltex.language.ar.enumDescription": "Arabic",
"ltex.i18n.configuration.ltex.language.ast-ES.markdownEnumDescription": "Asturian",
"ltex.i18n.configuration.ltex.language.ast-ES.enumDescription": "Asturian",
"ltex.i18n.configuration.ltex.language.auto.markdownEnumDescription": "Automatic language detection (not recommended)",
"ltex.i18n.configuration.ltex.language.auto.enumDescription": "Automatic language detection (not recommended)",
"ltex.i18n.configuration.ltex.language.be-BY.markdownEnumDescription": "Belarusian",
"ltex.i18n.configuration.ltex.language.be-BY.enumDescription": "Belarusian",
"ltex.i18n.configuration.ltex.language.br-FR.markdownEnumDescription": "Breton",
Expand Down Expand Up @@ -120,6 +123,7 @@
"ltex.i18n.configuration.ltex.dictionary.fullMarkdownDescription": "Listen von zusätzlichen Wörtern, die nicht als Schreibfehler gewertet werden sollen.\n\nDiese Einstellung ist sprachabhängig. Benutzen Sie daher ein Objekt der Form `{\"<SPRACHE1>\": [\"<WORT1>\", \"<WORT2>\", ...], \"<SPRACHE2>\": [\"<WORT1>\", \"<WORT2>\", ...], ...}`, wobei `<SPRACHE>` den Sprachcode in `ltex.language` bezeichnet.\n\n<!-- ltex-client-specific-de-begin -->\n\nDiese Einstellung ist eine Multi-Scope-Einstellung. [Siehe die Dokumentation für Details.](https://valentjn.github.io/vscode-ltex/docs/advanced-usage.html#multi-scope-settings)\n\nDiese Einstellung unterstützt externe Dateien. [Siehe die Dokumentation für Details.](https://valentjn.github.io/vscode-ltex/docs/advanced-usage.html#external-setting-files)\n\n<!-- ltex-client-specific-end -->\n\nStandardmäßig werden keine zusätzlichen Schreibfehler ignoriert.",
"ltex.i18n.configuration.ltex.dictionary.ar.markdownDescription": "Liste von zusätzlichen Wörtern der Sprache `ar` (Arabic), die nicht als Schreibfehler gewertet werden sollen.",
"ltex.i18n.configuration.ltex.dictionary.ast-ES.markdownDescription": "Liste von zusätzlichen Wörtern der Sprache `ast-ES` (Asturian), die nicht als Schreibfehler gewertet werden sollen.",
"ltex.i18n.configuration.ltex.dictionary.auto.markdownDescription": "Liste von zusätzlichen Wörtern der Sprache `auto` (Automatic language detection (not recommended)), die nicht als Schreibfehler gewertet werden sollen.",
"ltex.i18n.configuration.ltex.dictionary.be-BY.markdownDescription": "Liste von zusätzlichen Wörtern der Sprache `be-BY` (Belarusian), die nicht als Schreibfehler gewertet werden sollen.",
"ltex.i18n.configuration.ltex.dictionary.br-FR.markdownDescription": "Liste von zusätzlichen Wörtern der Sprache `br-FR` (Breton), die nicht als Schreibfehler gewertet werden sollen.",
"ltex.i18n.configuration.ltex.dictionary.ca-ES.markdownDescription": "Liste von zusätzlichen Wörtern der Sprache `ca-ES` (Catalan), die nicht als Schreibfehler gewertet werden sollen.",
Expand Down Expand Up @@ -169,6 +173,7 @@
"ltex.i18n.configuration.ltex.disabledRules.fullMarkdownDescription": "Listen von zusätzlichen Regeln, die deaktiviert werden sollen (falls standardmäßig durch LanguageTool aktiviert).\n\nDiese Einstellung ist sprachabhängig. Benutzen Sie daher ein Objekt der Form `{\"<SPRACHE1>\": [\"<REGEL1>\", \"<REGEL2>\", ...], \"<SPRACHE2>\": [\"<REGEL1>\", \"<REGEL2>\", ...], ...}`, wobei `<SPRACHE>` den Sprachcode in `ltex.language` und `<REGEL>` die ID der LanguageTool-Regel bezeichnet.\n\n<!-- ltex-client-specific-de-begin -->\n\nDiese Einstellung ist eine Multi-Scope-Einstellung. [Siehe die Dokumentation für Details.](https://valentjn.github.io/vscode-ltex/docs/advanced-usage.html#multi-scope-settings)\n\nDiese Einstellung unterstützt externe Dateien. [Siehe die Dokumentation für Details.](https://valentjn.github.io/vscode-ltex/docs/advanced-usage.html#external-setting-files)\n\n<!-- ltex-client-specific-end -->\n\nStandardmäßig werden keine zusätzlichen Regeln deaktiviert.",
"ltex.i18n.configuration.ltex.disabledRules.ar.markdownDescription": "Liste von zusätzlichen Regeln der Sprache `ar` (Arabic), die deaktiviert werden sollen (falls standardmäßig durch LanguageTool aktiviert).",
"ltex.i18n.configuration.ltex.disabledRules.ast-ES.markdownDescription": "Liste von zusätzlichen Regeln der Sprache `ast-ES` (Asturian), die deaktiviert werden sollen (falls standardmäßig durch LanguageTool aktiviert).",
"ltex.i18n.configuration.ltex.disabledRules.auto.markdownDescription": "Liste von zusätzlichen Regeln der Sprache `auto` (Automatic language detection (not recommended)), die deaktiviert werden sollen (falls standardmäßig durch LanguageTool aktiviert).",
"ltex.i18n.configuration.ltex.disabledRules.be-BY.markdownDescription": "Liste von zusätzlichen Regeln der Sprache `be-BY` (Belarusian), die deaktiviert werden sollen (falls standardmäßig durch LanguageTool aktiviert).",
"ltex.i18n.configuration.ltex.disabledRules.br-FR.markdownDescription": "Liste von zusätzlichen Regeln der Sprache `br-FR` (Breton), die deaktiviert werden sollen (falls standardmäßig durch LanguageTool aktiviert).",
"ltex.i18n.configuration.ltex.disabledRules.ca-ES.markdownDescription": "Liste von zusätzlichen Regeln der Sprache `ca-ES` (Catalan), die deaktiviert werden sollen (falls standardmäßig durch LanguageTool aktiviert).",
Expand Down Expand Up @@ -218,6 +223,7 @@
"ltex.i18n.configuration.ltex.enabledRules.fullMarkdownDescription": "Listen von zusätzlichen Regeln, die aktiviert werden sollen (falls standardmäßig durch LanguageTool deaktiviert).\n\nDiese Einstellung ist sprachabhängig. Benutzen Sie daher ein Objekt der Form `{\"<SPRACHE1>\": [\"<REGEL1>\", \"<REGEL2>\", ...], \"<SPRACHE2>\": [\"<REGEL1>\", \"<REGEL2>\", ...], ...}`, wobei `<SPRACHE>` den Sprachcode in `ltex.language` und `<REGEL>` die ID der LanguageTool-Regel bezeichnet.\n\n<!-- ltex-client-specific-de-begin -->\n\nDiese Einstellung ist eine Multi-Scope-Einstellung. [Siehe die Dokumentation für Details.](https://valentjn.github.io/vscode-ltex/docs/advanced-usage.html#multi-scope-settings)\n\nDiese Einstellung unterstützt externe Dateien. [Siehe die Dokumentation für Details.](https://valentjn.github.io/vscode-ltex/docs/advanced-usage.html#external-setting-files)\n\n<!-- ltex-client-specific-end -->\n\nStandardmäßig werden keine zusätzlichen Regeln aktiviert.",
"ltex.i18n.configuration.ltex.enabledRules.ar.markdownDescription": "Liste von zusätzlichen Regeln der Sprache `ar` (Arabic), die aktiviert werden sollen (falls standardmäßig durch LanguageTool deaktiviert).",
"ltex.i18n.configuration.ltex.enabledRules.ast-ES.markdownDescription": "Liste von zusätzlichen Regeln der Sprache `ast-ES` (Asturian), die aktiviert werden sollen (falls standardmäßig durch LanguageTool deaktiviert).",
"ltex.i18n.configuration.ltex.enabledRules.auto.markdownDescription": "Liste von zusätzlichen Regeln der Sprache `auto` (Automatic language detection (not recommended)), die aktiviert werden sollen (falls standardmäßig durch LanguageTool deaktiviert).",
"ltex.i18n.configuration.ltex.enabledRules.be-BY.markdownDescription": "Liste von zusätzlichen Regeln der Sprache `be-BY` (Belarusian), die aktiviert werden sollen (falls standardmäßig durch LanguageTool deaktiviert).",
"ltex.i18n.configuration.ltex.enabledRules.br-FR.markdownDescription": "Liste von zusätzlichen Regeln der Sprache `br-FR` (Breton), die aktiviert werden sollen (falls standardmäßig durch LanguageTool deaktiviert).",
"ltex.i18n.configuration.ltex.enabledRules.ca-ES.markdownDescription": "Liste von zusätzlichen Regeln der Sprache `ca-ES` (Catalan), die aktiviert werden sollen (falls standardmäßig durch LanguageTool deaktiviert).",
Expand Down Expand Up @@ -267,6 +273,7 @@
"ltex.i18n.configuration.ltex.hiddenFalsePositives.fullMarkdownDescription": "Listen von falschen Fehlern, die verborgen werden sollen (indem alle Fehler einer bestimmten Regel in einem bestimmten Satz verborgen werden).\n\nDiese Einstellung ist sprachabhängig. Benutzen Sie daher ein Objekt der Form `{\"<SPRACHE1>\": [\"<JSON1>\", \"<JSON2>\", ...], \"<SPRACHE2>\": [\"<JSON1>\", \"<JSON2>\", ...], ...}`, wobei `<SPRACHE>` den Sprachcode in `ltex.language` bezeichnet und `<JSON>` eine JSON-Zeichenfolge ist, die Informationen über die Regel und den Satz enthält.\n\nObwohl es möglich ist, diese Einstellung manuell zu ändern, ist der bevorzugte Weg, Einträge zu dieser Einstellung hinzuzufügen, die schnelle Problembehebung `Falschen Fehler verbergen`.\n\nDie JSON-Zeichenfolge hat momentan die Form `{\"rule\": \"<REGEL>\", \"sentence\": \"<SATZ>\"}`, wobei `<REGEL>` die ID der LanguageTool-Regel und `<SATZ>` einen Java-kompatiblen regulären Ausdruck bezeichnet. Alle Vorkommen der gegebenen Regel werden in allen Sätzen (die durch den LanguageTool-Tokenizer bestimmt werden) verborgen, die zum regulären Ausdruck passen. [Siehe die Dokumentation für Details.](https://valentjn.github.io/vscode-ltex/docs/advanced-usage.html#hiding-false-positives-with-regular-expressions)\n\n<!-- ltex-client-specific-de-begin -->\n\nDiese Einstellung ist eine Multi-Scope-Einstellung. [Siehe die Dokumentation für Details.](https://valentjn.github.io/vscode-ltex/docs/advanced-usage.html#multi-scope-settings)\n\nDiese Einstellung unterstützt externe Dateien. [Siehe die Dokumentation für Details.](https://valentjn.github.io/vscode-ltex/docs/advanced-usage.html#external-setting-files)\n\n<!-- ltex-client-specific-end -->\n\nDie Leistung kann darunter leiden, falls diese Liste sehr lang ist.",
"ltex.i18n.configuration.ltex.hiddenFalsePositives.ar.markdownDescription": "Liste von falschen Fehlern der Sprache `ar` (Arabic), die verborgen werden sollen.",
"ltex.i18n.configuration.ltex.hiddenFalsePositives.ast-ES.markdownDescription": "Liste von falschen Fehlern der Sprache `ast-ES` (Asturian), die verborgen werden sollen.",
"ltex.i18n.configuration.ltex.hiddenFalsePositives.auto.markdownDescription": "Liste von falschen Fehlern der Sprache `auto` (Automatic language detection (not recommended)), die verborgen werden sollen.",
"ltex.i18n.configuration.ltex.hiddenFalsePositives.be-BY.markdownDescription": "Liste von falschen Fehlern der Sprache `be-BY` (Belarusian), die verborgen werden sollen.",
"ltex.i18n.configuration.ltex.hiddenFalsePositives.br-FR.markdownDescription": "Liste von falschen Fehlern der Sprache `br-FR` (Breton), die verborgen werden sollen.",
"ltex.i18n.configuration.ltex.hiddenFalsePositives.ca-ES.markdownDescription": "Liste von falschen Fehlern der Sprache `ca-ES` (Catalan), die verborgen werden sollen.",
Expand Down
Loading

0 comments on commit 63fc131

Please sign in to comment.