Revision: 7468
          
http://languagetool.svn.sourceforge.net/languagetool/?rev=7468&view=rev
Author:   dnaber
Date:     2012-06-23 08:29:04 +0000 (Sat, 23 Jun 2012)
Log Message:
-----------
[de] no spell check suggestions for performance reasons

Modified Paths:
--------------
    trunk/JLanguageTool/CHANGES.txt
    trunk/JLanguageTool/src/java/org/languagetool/language/German.java
    trunk/JLanguageTool/src/java/org/languagetool/language/GermanyGerman.java
    trunk/JLanguageTool/src/java/org/languagetool/openoffice/Main.java
    
trunk/JLanguageTool/src/java/org/languagetool/rules/spelling/hunspell/HunspellRule.java
    trunk/JLanguageTool/src/test/org/languagetool/JLanguageToolTest.java

Added Paths:
-----------
    
trunk/JLanguageTool/src/java/org/languagetool/rules/spelling/hunspell/HunspellNoSuggestionRule.java

Modified: trunk/JLanguageTool/CHANGES.txt
===================================================================
--- trunk/JLanguageTool/CHANGES.txt     2012-06-23 07:27:28 UTC (rev 7467)
+++ trunk/JLanguageTool/CHANGES.txt     2012-06-23 08:29:04 UTC (rev 7468)
@@ -7,7 +7,11 @@
 
  -German:
    -many new rules and rule updates
-   -added spelling check dictionary for the standalone version
+   -added spellcheck dictionary for the standalone version; the dictionary 
used is the
+    one by Franz Michael Baumann,
+    see 
http://extensions.libreoffice.org/extension-center/german-de-de-frami-dictionaries
+    LanguageTool can now detect spelling errors, but it does not offer 
suggestions
+    for performance reasons (German only)
    -added variants for Austria, Germany, and Switzerland
    -added several thousand words to the internal dictionary for better
     error detection and less false alarms
@@ -25,7 +29,7 @@
    -major update, including many new rules and new tokenization (Jaume Ortolà 
i Font)
    -new synthesizer (given a part-of-speech, this generates the inflected word
    forms) (Jaume Ortolà i Font)
-   -added spelling check dictionary for the standalone version
+   -added spellcheck dictionary for the standalone version
 
  -Russian:
    -fixed a few false alarms
@@ -36,22 +40,22 @@
 
  -Italian:
    -several new rules (Riccardo Murri and Agnese Dal Borgo)
-   -added spelling check dictionary for the standalone version
+   -added spellcheck dictionary for the standalone version
 
  -French:
    -updated dictionary to use Dicollecte-4.5
    -several new rules and fixed false alarms
-   -added spelling check dictionary for the standalone version
+   -added spellcheck dictionary for the standalone version
 
  -Breton
    -updated dictionary to use Apertium svn r38896.
    -several new rules and fixed false alarms
    -added some references to the Breton grammar:
     "La grammaire bretonne pour tous (Eugène CHALM)".
-   -added spelling check dictionary for the standalone version
+   -added spellcheck dictionary for the standalone version
 
  -Polish
-   -added spelling check dictionary for the standalone version
+   -added spellcheck dictionary for the standalone version
    -major update of the tagger dictionary
 
  -Portuguese

Modified: trunk/JLanguageTool/src/java/org/languagetool/language/German.java
===================================================================
--- trunk/JLanguageTool/src/java/org/languagetool/language/German.java  
2012-06-23 07:27:28 UTC (rev 7467)
+++ trunk/JLanguageTool/src/java/org/languagetool/language/German.java  
2012-06-23 08:29:04 UTC (rev 7468)
@@ -23,7 +23,7 @@
 import org.languagetool.Language;
 import org.languagetool.rules.*;
 import org.languagetool.rules.de.*;
-import org.languagetool.rules.spelling.hunspell.HunspellRule;
+import org.languagetool.rules.spelling.hunspell.HunspellNoSuggestionRule;
 import org.languagetool.tagging.Tagger;
 import org.languagetool.tagging.de.GermanTagger;
 import org.languagetool.tokenizers.SRXSentenceTokenizer;
@@ -100,7 +100,7 @@
             CommaWhitespaceRule.class,
             GermanDoublePunctuationRule.class,
             GenericUnpairedBracketsRule.class,
-            HunspellRule.class,
+            HunspellNoSuggestionRule.class,
             UppercaseSentenceStartRule.class,
             WhitespaceRule.class,
             // specific to German:

Modified: 
trunk/JLanguageTool/src/java/org/languagetool/language/GermanyGerman.java
===================================================================
--- trunk/JLanguageTool/src/java/org/languagetool/language/GermanyGerman.java   
2012-06-23 07:27:28 UTC (rev 7467)
+++ trunk/JLanguageTool/src/java/org/languagetool/language/GermanyGerman.java   
2012-06-23 08:29:04 UTC (rev 7468)
@@ -18,26 +18,6 @@
  */
 package org.languagetool.language;
 
-import java.util.Arrays;
-import java.util.List;
-
-import org.languagetool.rules.CommaWhitespaceRule;
-import org.languagetool.rules.GenericUnpairedBracketsRule;
-import org.languagetool.rules.Rule;
-import org.languagetool.rules.UppercaseSentenceStartRule;
-import org.languagetool.rules.WhitespaceRule;
-import org.languagetool.rules.de.AgreementRule;
-import org.languagetool.rules.de.CaseRule;
-import org.languagetool.rules.de.CompoundRule;
-import org.languagetool.rules.de.DashRule;
-import org.languagetool.rules.de.GermanDoublePunctuationRule;
-import org.languagetool.rules.de.GermanWordRepeatBeginningRule;
-import org.languagetool.rules.de.GermanWordRepeatRule;
-import org.languagetool.rules.de.GermanWrongWordInContextRule;
-import org.languagetool.rules.de.WiederVsWiderRule;
-import org.languagetool.rules.de.WordCoherencyRule;
-import org.languagetool.rules.de.MorfologikGermanyGermanSpellerRule;
-
 public class GermanyGerman extends German {
 
   @Override
@@ -50,28 +30,4 @@
     return "German (Germany)";
   }
 
-  @Override
-  public List<Class<? extends Rule>> getRelevantRules() {
-    return Arrays.asList(
-            CommaWhitespaceRule.class,
-            GermanDoublePunctuationRule.class,
-            GenericUnpairedBracketsRule.class,            
-            UppercaseSentenceStartRule.class,
-            WhitespaceRule.class,
-            // specific to German:
-            GermanWordRepeatRule.class,
-            GermanWordRepeatBeginningRule.class,
-            GermanWrongWordInContextRule.class,
-            AgreementRule.class,
-            CaseRule.class,
-            CompoundRule.class,
-            DashRule.class,
-            WordCoherencyRule.class,
-            WiederVsWiderRule.class,
-            //specific to Germany: speller
-            MorfologikGermanyGermanSpellerRule.class
-    );
-  }
-
-  
 }

Modified: trunk/JLanguageTool/src/java/org/languagetool/openoffice/Main.java
===================================================================
--- trunk/JLanguageTool/src/java/org/languagetool/openoffice/Main.java  
2012-06-23 07:27:28 UTC (rev 7467)
+++ trunk/JLanguageTool/src/java/org/languagetool/openoffice/Main.java  
2012-06-23 08:29:04 UTC (rev 7468)
@@ -67,6 +67,7 @@
 import org.languagetool.Language;
 import org.languagetool.gui.Configuration;
 import org.languagetool.rules.RuleMatch;
+import org.languagetool.rules.spelling.hunspell.HunspellNoSuggestionRule;
 import org.languagetool.rules.spelling.hunspell.HunspellRule;
 import org.languagetool.rules.spelling.morfologik.MorfologikSpellerRule;
 import org.languagetool.tools.StringTools;
@@ -359,6 +360,7 @@
       langTool.activateDefaultPatternRules();
       langTool.activateDefaultFalseFriendRules();
       langTool.disableRule(HunspellRule.RULE_ID);
+      langTool.disableRule(HunspellNoSuggestionRule.RULE_ID);
       langTool.disableRule(MorfologikSpellerRule.RULE_ID);
       recheck = false;
     } catch (final Throwable t) {

Added: 
trunk/JLanguageTool/src/java/org/languagetool/rules/spelling/hunspell/HunspellNoSuggestionRule.java
===================================================================
--- 
trunk/JLanguageTool/src/java/org/languagetool/rules/spelling/hunspell/HunspellNoSuggestionRule.java
                         (rev 0)
+++ 
trunk/JLanguageTool/src/java/org/languagetool/rules/spelling/hunspell/HunspellNoSuggestionRule.java
 2012-06-23 08:29:04 UTC (rev 7468)
@@ -0,0 +1,36 @@
+package org.languagetool.rules.spelling.hunspell;
+
+import org.languagetool.Language;
+
+import java.io.IOException;
+import java.util.ResourceBundle;
+
+/**
+ * Like {@link HunspellRule}, but does not offer suggestions for incorrect 
words
+ * as that is very slow with Hunspell.
+ */
+public class HunspellNoSuggestionRule extends HunspellRule {
+
+  public static final String RULE_ID = "HUNSPELL_NO_SUGGEST_RULE";
+
+  public HunspellNoSuggestionRule(final ResourceBundle messages, final 
Language language) throws UnsatisfiedLinkError, UnsupportedOperationException, 
IOException {
+    super(messages, language);
+  }
+
+  @Override
+       public String getId() {
+               return RULE_ID;
+       }
+
+       @Override
+       public String getDescription() {
+     // TODO: make i18n after LT 1.8? or will it only be used for German 
anyway?
+               return "Möglicher Rechtschreibfehler (ohne Korrekturvorschlag)";
+       }
+
+  @Override
+  protected boolean offerSuggestions() {
+    return false;
+  }
+
+}

Modified: 
trunk/JLanguageTool/src/java/org/languagetool/rules/spelling/hunspell/HunspellRule.java
===================================================================
--- 
trunk/JLanguageTool/src/java/org/languagetool/rules/spelling/hunspell/HunspellRule.java
     2012-06-23 07:27:28 UTC (rev 7467)
+++ 
trunk/JLanguageTool/src/java/org/languagetool/rules/spelling/hunspell/HunspellRule.java
     2012-06-23 08:29:04 UTC (rev 7468)
@@ -98,9 +98,11 @@
                 len, len + word.length(),
                 messages.getString("spelling"),
                 messages.getString("desc_spelling_short"));
-        final List<String> suggestions = dictionary.suggest(word);
-        if (suggestions != null) {
-          ruleMatch.setSuggestedReplacements(suggestions);
+        if (offerSuggestions()) {
+          final List<String> suggestions = dictionary.suggest(word);
+          if (suggestions != null) {
+            ruleMatch.setSuggestedReplacements(suggestions);
+          }
         }
         ruleMatches.add(ruleMatch);
       }
@@ -110,6 +112,10 @@
                return toRuleMatchArray(ruleMatches);
        }
 
+  protected boolean offerSuggestions() {
+    return true;
+  }
+
   private String[] tokenizeText(final String sentence) throws IOException {
     return nonWordPattern.split(sentence);
   }

Modified: trunk/JLanguageTool/src/test/org/languagetool/JLanguageToolTest.java
===================================================================
--- trunk/JLanguageTool/src/test/org/languagetool/JLanguageToolTest.java        
2012-06-23 07:27:28 UTC (rev 7467)
+++ trunk/JLanguageTool/src/test/org/languagetool/JLanguageToolTest.java        
2012-06-23 08:29:04 UTC (rev 7468)
@@ -88,7 +88,7 @@
     tool.activateDefaultPatternRules();
     tool.setListUnknownWords(true);
     // German rule has no effect with English error, but they are spelling 
mistakes:
-    assertEquals(8, tool.check("I can give you more a detailed 
description").size());
+    assertEquals(6, tool.check("I can give you more a detailed 
description").size());
     //test unknown words listing
     assertEquals("[I, can, detailed, give, more, you]", 
tool.getUnknownWords().toString());
   }

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.


------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Languagetool-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/languagetool-cvs

Reply via email to