From 66ca01d4f9017547742f43472c4bd9021480ea11 Mon Sep 17 00:00:00 2001 From: Daniel Naber Date: Wed, 6 Dec 2023 17:13:43 +0100 Subject: [PATCH 1/5] wip -see https://bugs.openjdk.org/browse/JDK-8264160 --- .../org/languagetool/rules/patterns/PatternRuleHandler.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/languagetool-core/src/main/java/org/languagetool/rules/patterns/PatternRuleHandler.java b/languagetool-core/src/main/java/org/languagetool/rules/patterns/PatternRuleHandler.java index 6fe102e6f20a..dff7d2088f3f 100644 --- a/languagetool-core/src/main/java/org/languagetool/rules/patterns/PatternRuleHandler.java +++ b/languagetool-core/src/main/java/org/languagetool/rules/patterns/PatternRuleHandler.java @@ -33,6 +33,8 @@ import java.util.*; import java.util.regex.Pattern; +import static java.util.regex.Pattern.UNICODE_CHARACTER_CLASS; + public class PatternRuleHandler extends XMLRuleHandler { @Override @@ -762,7 +764,7 @@ private void createRules(List elemList, rule.setDistanceTokens(distanceTokens); rule.setXmlLineNumber(xmlLineNumber); } else if (regex.length() > 0) { - int flags = regexCaseSensitive ? 0 : Pattern.CASE_INSENSITIVE|Pattern.UNICODE_CASE; + int flags = regexCaseSensitive ? UNICODE_CHARACTER_CLASS : Pattern.CASE_INSENSITIVE|Pattern.UNICODE_CASE|UNICODE_CHARACTER_CLASS; String regexStr = regex.toString(); if (regexMode == RegexpMode.SMART) { // Note: it's not that easy to add \b because the regex might look like '(foo)' or '\d' so we cannot just look at the last character From 27b1320bfa57cf2ad19c8bba27d92ab461ec5fc9 Mon Sep 17 00:00:00 2001 From: Daniel Naber Date: Wed, 6 Dec 2023 17:13:58 +0100 Subject: [PATCH 2/5] revert - makes other tests fail :-( --- .../org/languagetool/rules/patterns/PatternRuleHandler.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/languagetool-core/src/main/java/org/languagetool/rules/patterns/PatternRuleHandler.java b/languagetool-core/src/main/java/org/languagetool/rules/patterns/PatternRuleHandler.java index dff7d2088f3f..ecf52cc8e310 100644 --- a/languagetool-core/src/main/java/org/languagetool/rules/patterns/PatternRuleHandler.java +++ b/languagetool-core/src/main/java/org/languagetool/rules/patterns/PatternRuleHandler.java @@ -764,7 +764,7 @@ private void createRules(List elemList, rule.setDistanceTokens(distanceTokens); rule.setXmlLineNumber(xmlLineNumber); } else if (regex.length() > 0) { - int flags = regexCaseSensitive ? UNICODE_CHARACTER_CLASS : Pattern.CASE_INSENSITIVE|Pattern.UNICODE_CASE|UNICODE_CHARACTER_CLASS; + int flags = regexCaseSensitive ? 0 : Pattern.CASE_INSENSITIVE|Pattern.UNICODE_CASE; String regexStr = regex.toString(); if (regexMode == RegexpMode.SMART) { // Note: it's not that easy to add \b because the regex might look like '(foo)' or '\d' so we cannot just look at the last character From 3529ec74f544af1deb1a3218864e09e29346cab8 Mon Sep 17 00:00:00 2001 From: Daniel Naber Date: Thu, 7 Dec 2023 10:11:28 +0100 Subject: [PATCH 3/5] wip --- .../resources/org/languagetool/rules/de/grammar.xml | 6 +++--- .../resources/org/languagetool/rules/de/style.xml | 2 +- .../rules/fr/MakeContractionsFilter.java | 11 ++++++----- .../resources/org/languagetool/rules/fr/grammar.xml | 12 ++++++------ 4 files changed, 16 insertions(+), 15 deletions(-) diff --git a/languagetool-language-modules/de/src/main/resources/org/languagetool/rules/de/grammar.xml b/languagetool-language-modules/de/src/main/resources/org/languagetool/rules/de/grammar.xml index 7d419b89b45f..298533a4309e 100644 --- a/languagetool-language-modules/de/src/main/resources/org/languagetool/rules/de/grammar.xml +++ b/languagetool-language-modules/de/src/main/resources/org/languagetool/rules/de/grammar.xml @@ -14857,7 +14857,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA Für das Groß der Studierenden sind die Bedingungen schlecht. - \ben gro(ß|ss)\b + (?U)\ben gro(ß|ss)\b Meinten Sie en gros? https://www.duden.de/rechtschreibung/en_gros &verw; @@ -74789,7 +74789,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA https://languagetool.org/insights/de/beitrag/grammatik-deppenapostroph/ - \b(an|in|für|auf|durch|hinter|über|um|unter|vor)['’´`‘]s + (?U)\b(an|in|für|auf|durch|hinter|über|um|unter|vor)['’´`‘]s Das Wort \1s (\1 das) wird ohne Apostroph geschrieben. 'Ans', 'ins' usw. werden ohne Apostroph geschrieben. Ich ging ans Fenster. @@ -74800,7 +74800,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA Er wurde hinter's Licht geführt! - \b(hinter|über|unter)['’´`‘](n|m) + (?U)\b(hinter|über|unter)['’´`‘](n|m) Das umgangssprachliche Wort \1\2 wird ohne Apostroph geschrieben. 'übern', 'untern' usw. werden ohne Apostroph geschrieben. Ich bin über'n Berg. diff --git a/languagetool-language-modules/de/src/main/resources/org/languagetool/rules/de/style.xml b/languagetool-language-modules/de/src/main/resources/org/languagetool/rules/de/style.xml index db640288469d..6f09bfbfb116 100644 --- a/languagetool-language-modules/de/src/main/resources/org/languagetool/rules/de/style.xml +++ b/languagetool-language-modules/de/src/main/resources/org/languagetool/rules/de/style.xml @@ -5183,7 +5183,7 @@ USA Das sind die Klausuren. - \b(üblichen?) (Gepflogenheit(en)?)\b + (?U)\b(üblichen?) (Gepflogenheit(en)?)\b Mögliche Redundanz: Die Bedeutung des Nomens '\2' beinhaltet bereits das durch das Adjektiv '\1' ausgedrückte Merkmal. \2 &redundanz; diff --git a/languagetool-language-modules/fr/src/main/java/org/languagetool/rules/fr/MakeContractionsFilter.java b/languagetool-language-modules/fr/src/main/java/org/languagetool/rules/fr/MakeContractionsFilter.java index 3837ddd01816..bb8a85616d0c 100644 --- a/languagetool-language-modules/fr/src/main/java/org/languagetool/rules/fr/MakeContractionsFilter.java +++ b/languagetool-language-modules/fr/src/main/java/org/languagetool/rules/fr/MakeContractionsFilter.java @@ -25,11 +25,12 @@ import org.languagetool.rules.AbstractMakeContractionsFilter; public class MakeContractionsFilter extends AbstractMakeContractionsFilter { - - private static final Pattern DE_LE = Pattern.compile("\\bde le\\b", Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE); - private static final Pattern A_LE = Pattern.compile("\\bà le\\b", Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE); - private static final Pattern DE_LES = Pattern.compile("\\bde les\\b", Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE); - private static final Pattern A_LES = Pattern.compile("\\bà les\\b", Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE); + + private static final int FLAGS = Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE | Pattern.UNICODE_CHARACTER_CLASS; + private static final Pattern DE_LE = Pattern.compile("\\bde le\\b", FLAGS); + private static final Pattern A_LE = Pattern.compile("\\bà le\\b", FLAGS); + private static final Pattern DE_LES = Pattern.compile("\\bde les\\b", FLAGS); + private static final Pattern A_LES = Pattern.compile("\\bà les\\b", FLAGS); protected String fixContractions(String suggestion) { Matcher matcher = DE_LE.matcher(suggestion); diff --git a/languagetool-language-modules/fr/src/main/resources/org/languagetool/rules/fr/grammar.xml b/languagetool-language-modules/fr/src/main/resources/org/languagetool/rules/fr/grammar.xml index 4f38f1aff317..d1fbc8d31abe 100644 --- a/languagetool-language-modules/fr/src/main/resources/org/languagetool/rules/fr/grammar.xml +++ b/languagetool-language-modules/fr/src/main/resources/org/languagetool/rules/fr/grammar.xml @@ -45419,7 +45419,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4466 - \bau (banc) (?:des nations|de la (?:société|ville|communauté|France)|de l['´‘’′](?:Europe|empire|église|islam))\b + (?U)\bau (banc) (?:des nations|de la (?:société|ville|communauté|France)|de l['´‘’′](?:Europe|empire|église|islam))\b Confusion probable entre « banc » et ban. Il a été mis au banc de la société. Il a été mis au banc de l’empire. @@ -119325,7 +119325,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA Il habite en Franche-Comté. - \b(?-i)(?![ÎI]le-de-France\b)(?i)[IÎ]ll?es?[-‑‐  ]de[-‑‐  ]France\b + (?U)\b(?-i)(?![ÎI]le-de-France\b)(?i)[IÎ]ll?es?[-‑‐  ]de[-‑‐  ]France\b Cette région s'écrit avec un trait d'union. Île-de-France Ile-de-France @@ -119358,14 +119358,14 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA Il habite à Vitry sur Seine. - \b(?-i)(?!Asnières-sur-Seine\b)(?i)As?nn?i[èe]rr?es?[-‑‐  ]sur[-‑‐  ]Sei?nes?\b + (?U)\b(?-i)(?!Asnières-sur-Seine\b)(?i)As?nn?i[èe]rr?es?[-‑‐  ]sur[-‑‐  ]Sei?nes?\b Cette ville s'écrit avec des traits d'union. Asnières-sur-Seine https://fr.wikipedia.org/wiki/Asnières-sur-Seine Il habite à Asnières sur Seine. - \b(?-i)(?!Épinay-sur-Seine\b)(?i)[ÉE]pp?inn?[ae][yi]s?[-‑‐  ]sur[-‑‐  ]Sei?nes?\b + (?U)\b(?-i)(?!Épinay-sur-Seine\b)(?i)[ÉE]pp?inn?[ae][yi]s?[-‑‐  ]sur[-‑‐  ]Sei?nes?\b Cette ville s'écrit avec des traits d'union. Épinay-sur-Seine https://fr.wikipedia.org/wiki/Épinay-sur-Seine @@ -120301,7 +120301,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA http://www.academie-francaise.fr/abreviations-des-adjectifs-numeraux - \b(([IVXLC]+|\d+)[-‑‐]?(i?[eèé]mes?|è))\b + (?U)\b(([IVXLC]+|\d+)[-‑‐]?(i?[eèé]mes?|è))\b Faute de typographie. Un écrivain du XIX-ième siècle @@ -120311,7 +120311,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA La 2ᵉ à droite - \b(([IVXLC]+|\d+)[-‑‐]?(i?[eèé]mes?|è))\b + (?U)\b(([IVXLC]+|\d+)[-‑‐]?(i?[eèé]mes?|è))\b Faute de typographie. Les 2ᵉˢ du tournoi From 4e83456dc1850dce7447a49a82d7cf7eede9e22f Mon Sep 17 00:00:00 2001 From: Daniel Naber Date: Thu, 7 Dec 2023 14:40:39 +0100 Subject: [PATCH 4/5] wip --- .../ca/CatalanSentenceTokenizerTest.java | 2 + .../rules/de/UnitConversionRule.java | 2 +- .../org/languagetool/rules/en/grammar.xml | 2 +- .../pt/PortugueseUnitConversionRule.java | 54 +++++++++---------- 4 files changed, 31 insertions(+), 29 deletions(-) diff --git a/languagetool-language-modules/ca/src/test/java/org/languagetool/tokenizers/ca/CatalanSentenceTokenizerTest.java b/languagetool-language-modules/ca/src/test/java/org/languagetool/tokenizers/ca/CatalanSentenceTokenizerTest.java index 6d18958c654a..9f466cc3cd7d 100644 --- a/languagetool-language-modules/ca/src/test/java/org/languagetool/tokenizers/ca/CatalanSentenceTokenizerTest.java +++ b/languagetool-language-modules/ca/src/test/java/org/languagetool/tokenizers/ca/CatalanSentenceTokenizerTest.java @@ -19,12 +19,14 @@ package org.languagetool.tokenizers.ca; +import org.junit.Ignore; import org.junit.Test; import org.languagetool.TestTools; import org.languagetool.language.Catalan; import org.languagetool.tokenizers.SRXSentenceTokenizer; import org.languagetool.tokenizers.SentenceTokenizer; +@Ignore // TODO public class CatalanSentenceTokenizerTest { private final SentenceTokenizer stokenizer = new SRXSentenceTokenizer(new Catalan()); diff --git a/languagetool-language-modules/de/src/main/java/org/languagetool/rules/de/UnitConversionRule.java b/languagetool-language-modules/de/src/main/java/org/languagetool/rules/de/UnitConversionRule.java index 6fcd37faafb6..0d7205dfa002 100644 --- a/languagetool-language-modules/de/src/main/java/org/languagetool/rules/de/UnitConversionRule.java +++ b/languagetool-language-modules/de/src/main/java/org/languagetool/rules/de/UnitConversionRule.java @@ -52,7 +52,7 @@ public UnitConversionRule(ResourceBundle messages) { addUnit("Meilen?", MILE, "Meile", 1, false); addUnit("Yard", YARD, "Yard", 1, false); - addUnit("Fuß", FEET, "Fuß", 1, false); + addUnit("(?U)Fuß", FEET, "Fuß", 1, false); addUnit("Zoll", INCH, "Zoll", 1, false); addUnit("(Kilometer pro Stunde|Stundenkilometer)", KILOMETRE_PER_HOUR, "Kilometer pro Stunde", 1, true); diff --git a/languagetool-language-modules/en/src/main/resources/org/languagetool/rules/en/grammar.xml b/languagetool-language-modules/en/src/main/resources/org/languagetool/rules/en/grammar.xml index ec338d218be1..3e3c5fe650b8 100644 --- a/languagetool-language-modules/en/src/main/resources/org/languagetool/rules/en/grammar.xml +++ b/languagetool-language-modules/en/src/main/resources/org/languagetool/rules/en/grammar.xml @@ -111874,7 +111874,7 @@ The accident victim died from her injuries. - (?<![A-Z\$€£¥฿฿=]-?[0-9\.]{0,5})((\b|\-)[0-9]{1,5}[0-9,.]{0,5}(€|¥|฿|฿|°C|°F|°De?|°R[éeøa]?|(Z|E|P|T|G|M|k|h|da|d|c|m|µ|n|f|z|y)[ΩΩm]|[ΩΩ]|(Z|E|P|T|G|M|k|h|da|d|c|m|µ|n|p|f|a|z|y)?N|[kKMGTPEZY]i?B|[kmµnp]g|[Mk]t|kWh|GWa|MWd|MWh)(?!\w)) + (?U)(?<![A-Z\$€£¥฿฿=]-?[0-9\.]{0,5})((\b|\-)[0-9]{1,5}[0-9,.]{0,5}(€|¥|฿|฿|°C|°F|°De?|°R[éeøa]?|(Z|E|P|T|G|M|k|h|da|d|c|m|µ|n|f|z|y)[ΩΩm]|[ΩΩ]|(Z|E|P|T|G|M|k|h|da|d|c|m|µ|n|p|f|a|z|y)?N|[kKMGTPEZY]i?B|[kmµnp]g|[Mk]t|kWh|GWa|MWd|MWh)(?!\w)) Insert a space between the numerical value and the unit symbol. The temperature is 25°C. diff --git a/languagetool-language-modules/pt/src/main/java/org/languagetool/rules/pt/PortugueseUnitConversionRule.java b/languagetool-language-modules/pt/src/main/java/org/languagetool/rules/pt/PortugueseUnitConversionRule.java index af98cedc3a4c..6178d28aa601 100644 --- a/languagetool-language-modules/pt/src/main/java/org/languagetool/rules/pt/PortugueseUnitConversionRule.java +++ b/languagetool-language-modules/pt/src/main/java/org/languagetool/rules/pt/PortugueseUnitConversionRule.java @@ -48,49 +48,49 @@ public PortugueseUnitConversionRule(ResourceBundle messages) { addUnit("grama", KILOGRAM, "gramas", 1e-3, true); addUnit("toneladas?", KILOGRAM, "toneladas", 1e3, true); addUnit("libras?", POUND, "libras", 1, false); - addUnit("onças?", OUNCE, "onças", 1, false); + addUnit("(?U)onças?", OUNCE, "onças", 1, false); addUnit("milhas?", MILE, "milhas", 1, false); addUnit("jardas?", YARD, "jardas", 1, false); - addUnit("pés?", FEET, "pés", 1, false); + addUnit("(?U)pés?", FEET, "pés", 1, false); addUnit("polegadas?", INCH, "polegadas", 1, false); - addUnit("(qu|k)ilômetros? por hora", KILOMETRE_PER_HOUR, "quilômetros por hora", 1, true); + addUnit("(?U)(qu|k)ilômetros? por hora", KILOMETRE_PER_HOUR, "quilômetros por hora", 1, true); addUnit("milhas? por hora", MILE.divide(HOUR), "milhas por hora", 1, false); addUnit("metros?", METRE, "metros", 1, true); - addUnit("(qu|k)ilômetros?", METRE, "quilômetros", 1e3, true); - addUnit("decímetros?", METRE, "decímetros", 1e-1, false); // metric, but should not be suggested - addUnit("centímetros?", METRE, "centímetros", 1e-2, true); - addUnit("milímetros?", METRE, "milímetros", 1e-3, true); - addUnit("micrômetros?", METRE, "micrômetros", 1e-6, true); - addUnit("nanômetros?", METRE, "nanômetros", 1e-9, true); - addUnit("picômetros?", METRE, "picômetros", 1e-12, true); - addUnit("fentômetros?", METRE, "fentômetros", 1e-15, true); + addUnit("(?U)(qu|k)ilômetros?", METRE, "quilômetros", 1e3, true); + addUnit("(?U)decímetros?", METRE, "decímetros", 1e-1, false); // metric, but should not be suggested + addUnit("(?U)centímetros?", METRE, "centímetros", 1e-2, true); + addUnit("(?U)milímetros?", METRE, "milímetros", 1e-3, true); + addUnit("(?U)micrômetros?", METRE, "micrômetros", 1e-6, true); + addUnit("(?U)nanômetros?", METRE, "nanômetros", 1e-9, true); + addUnit("(?U)picômetros?", METRE, "picômetros", 1e-12, true); + addUnit("(?U)fentômetros?", METRE, "fentômetros", 1e-15, true); addUnit("metros? quadrados?", SQUARE_METRE, "metros quadrados", 1, true); addUnit("hectar(es)?", SQUARE_METRE, "hectares", 1e4, true); addUnit("ares?", SQUARE_METRE, "ares", 1e2, true); - addUnit("(k|qui)ilômetros? quadrados?", SQUARE_METRE, "quilômetros quadrados", 1e6, true); - addUnit("decímetros? quadrados?", SQUARE_METRE, "decímetros quadrados", 1e-2, false/*true*/); // Metric, but not commonly used - addUnit("centímetros? quadrados?", SQUARE_METRE, "centímetros quadrados", 1e-4, true); - addUnit("milímetros? quadrados?", SQUARE_METRE, "milímetros quadrados", 1e-6, true); - addUnit("micrômetros? quadrados?", SQUARE_METRE, "micrômetros quadrados", 1e-12, true); - addUnit("nanômetros? quadrados?", SQUARE_METRE, "nanômetros quadrados", 1e-18, true); - - addUnit("metros? cúbicos?", CUBIC_METRE,"metros cúbicos", 1, true); - addUnit("(k|qu)ilômetros? cúbicos?", CUBIC_METRE, "quilômetros cúbicos", 1e9, true); - addUnit("decímetros? cúbicos?", CUBIC_METRE, "decímetros cúbicos", 1e-3, false/*true*/); // Metric, but not commonly used - addUnit("centímetros? cúbicos?", CUBIC_METRE,"centímetros cúbicos", 1e-6, true); - addUnit("milímetros? cúbicos?", CUBIC_METRE,"milímetros cúbicos", 1e-9, true); - addUnit("micrômetros? cúbicos?", CUBIC_METRE,"micrômetros cúbicos", 1e-18, true); - addUnit("nanômetros? cúbicos?", CUBIC_METRE, "nanômetros cúbicos", 1e-27, true); + addUnit("(?U)(k|qui)ilômetros? quadrados?", SQUARE_METRE, "quilômetros quadrados", 1e6, true); + addUnit("(?U)decímetros? quadrados?", SQUARE_METRE, "decímetros quadrados", 1e-2, false/*true*/); // Metric, but not commonly used + addUnit("(?U)centímetros? quadrados?", SQUARE_METRE, "centímetros quadrados", 1e-4, true); + addUnit("(?U)milímetros? quadrados?", SQUARE_METRE, "milímetros quadrados", 1e-6, true); + addUnit("(?U)micrômetros? quadrados?", SQUARE_METRE, "micrômetros quadrados", 1e-12, true); + addUnit("(?U)nanômetros? quadrados?", SQUARE_METRE, "nanômetros quadrados", 1e-18, true); + + addUnit("(?U)metros? cúbicos?", CUBIC_METRE,"metros cúbicos", 1, true); + addUnit("(?U)(k|qu)ilômetros? cúbicos?", CUBIC_METRE, "quilômetros cúbicos", 1e9, true); + addUnit("(?U)decímetros? cúbicos?", CUBIC_METRE, "decímetros cúbicos", 1e-3, false/*true*/); // Metric, but not commonly used + addUnit("(?U)centímetros? cúbicos?", CUBIC_METRE,"centímetros cúbicos", 1e-6, true); + addUnit("(?U)milímetros? cúbicos?", CUBIC_METRE,"milímetros cúbicos", 1e-9, true); + addUnit("(?U)micrômetros? cúbicos?", CUBIC_METRE,"micrômetros cúbicos", 1e-18, true); + addUnit("(?U)nanômetros? cúbicos?", CUBIC_METRE, "nanômetros cúbicos", 1e-27, true); addUnit("litros?", LITRE, "litros", 1, true); addUnit("mililitros?", LITRE, "mililitros", 1e-3, true); - addUnit( "(?:Graus)? Fahrenheit", FAHRENHEIT, "graus Fahrenheit", 1, false); - addUnit( "(?:Graus)? (Celsi[ou]s|[cC]entígrados?)", CELSIUS, "graus Celsius", 1, true); + addUnit("(?:Graus)? Fahrenheit", FAHRENHEIT, "graus Fahrenheit", 1, false); + addUnit("(?U)(?:Graus)? (Celsi[ou]s|[cC]entígrados?)", CELSIUS, "graus Celsius", 1, true); } @Override From 51c251dc4f6aa3308dee1c4bdd69447915b977de Mon Sep 17 00:00:00 2001 From: Daniel Naber Date: Mon, 28 Oct 2024 09:05:44 +0100 Subject: [PATCH 5/5] [ca] fix after merge --- .../languagetool/tokenizers/ca/CatalanSentenceTokenizerTest.java | 1 - 1 file changed, 1 deletion(-) diff --git a/languagetool-language-modules/ca/src/test/java/org/languagetool/tokenizers/ca/CatalanSentenceTokenizerTest.java b/languagetool-language-modules/ca/src/test/java/org/languagetool/tokenizers/ca/CatalanSentenceTokenizerTest.java index 89194b6bbab0..f3388a9912ee 100644 --- a/languagetool-language-modules/ca/src/test/java/org/languagetool/tokenizers/ca/CatalanSentenceTokenizerTest.java +++ b/languagetool-language-modules/ca/src/test/java/org/languagetool/tokenizers/ca/CatalanSentenceTokenizerTest.java @@ -26,7 +26,6 @@ import org.languagetool.tokenizers.SRXSentenceTokenizer; import org.languagetool.tokenizers.SentenceTokenizer; -@Ignore // TODO public class CatalanSentenceTokenizerTest { private final SentenceTokenizer stokenizer = new SRXSentenceTokenizer(new Catalan());