]> gitweb.fperrin.net Git - DictionaryPC.git/commitdiff
go
authorThad Hughes <thadh@google.com>
Mon, 3 Dec 2012 21:47:50 +0000 (13:47 -0800)
committerThad Hughes <thadh@google.com>
Mon, 3 Dec 2012 21:47:50 +0000 (13:47 -0800)
src/com/hughes/android/dictionary/engine/DictionaryBuilderMain.java
src/com/hughes/android/dictionary/engine/LanguageTest.java
src/com/hughes/android/dictionary/parser/WikiTokenizer.java
src/com/hughes/android/dictionary/parser/wiktionary/ItFunctionCallbacks.java
src/com/hughes/android/dictionary/parser/wiktionary/WiktionaryLangs.java
todo.txt

index 2677bb422ac531ad02eb6468dc8fa909aca0cd3e..b2980409b039d85079c0a0b833752a97cd1ed248 100644 (file)
@@ -37,6 +37,7 @@ public class DictionaryBuilderMain extends TestCase {
   
   // Build the non EN ones.
   static final String[][] nonEnPairs = new String[][] {
+      /*
       {"EN"},
       {"DE"},
       {"IT"},
@@ -47,7 +48,6 @@ public class DictionaryBuilderMain extends TestCase {
       {"DE", "EN" },
       {"DE", "IT" },
           
-          
       {"AR", "DE" },
       {"AR", "ES" },
       {"AR", "FR" },
@@ -91,6 +91,7 @@ public class DictionaryBuilderMain extends TestCase {
       {"FR", "RU" },
       {"FR", "TR" },  // Turkish
       {"FR", "ZH" },
+      {"FR", "EL" },  
 
       {"IT", "DE" },
       {"IT", "EL" },  // Greek
@@ -132,6 +133,9 @@ public class DictionaryBuilderMain extends TestCase {
 
       {"FA", "HY" },  // Persian, Armenian, by request.
       {"FA", "SV" },  // Persian, Swedish, by request.
+      {"NL", "PL" },  // Dutch, Polish, by request.
+      
+      */
 
   };
 
@@ -312,15 +316,10 @@ public class DictionaryBuilderMain extends TestCase {
     final List<String[]> allPairs = new ArrayList<String[]>();
     
     allPairs.addAll(Arrays.asList(nonEnPairs));
-    
     // Add all the EN-XX pairs.
     for (final String isoCode : WiktionaryLangs.isoCodeToEnWikiName.keySet()) {
-      if (isoCode.equals("EN") || isoCode.equals("DE")) {
-        continue;
-      }
       allPairs.add(new String[] {"EN", isoCode});
     }
-    allPairs.add(new String[] {"EN", "DE"});
     
         
     final Set<List<String>> done = new LinkedHashSet<List<String>>();
@@ -332,7 +331,7 @@ public class DictionaryBuilderMain extends TestCase {
       }
       done.add(pairList);
       
-      if (!pairList.contains("IT") || !pairList.contains("EN")) {
+      if (!pairList.contains("EN") && !pairList.contains("EL")) {
         //continue;
       }
       
index 4f909623678e5498512d834a253911dc10a99599..078afaf6516af2052eecf6485c9224f4877d4e0c 100644 (file)
@@ -184,10 +184,14 @@ public class LanguageTest extends TestCase {
   
   public void testEnWiktionaryNames() {
     final Set<String> enLangs = new LinkedHashSet<String>(WiktionaryLangs.isoCodeToEnWikiName.keySet());
+    final List<String> names = new ArrayList<String>();
     for (final String code : WiktionaryLangs.isoCodeToEnWikiName.keySet()) {
+      names.add(WiktionaryLangs.isoCodeToEnWikiName.get(code));
       enLangs.add(code.toLowerCase());
     }
-    assertEquals(enLangs.toString(), Language.isoCodeToResources.keySet().toString());
+    Collections.sort(names);
+    System.out.println(names);
+    //assertEquals(enLangs, Language.isoCodeToResources.keySet());
     assertEquals(enLangs, Language.isoCodeToResources.keySet());
   }
 
index cdf2f0428fc9f2048b8d5f3efaf27124d7415e7d..4a28cee74b79660d8363c7a4427d898b76abe3e6 100644 (file)
@@ -121,8 +121,10 @@ public final class WikiTokenizer {
     this(wikiText, true);
   }
 
-  public WikiTokenizer(final String wikiText, final boolean isNewline) {
-    this.wikiText = wikiText.replaceAll("\u2028", "\n");
+  public WikiTokenizer(String wikiText, final boolean isNewline) {
+    wikiText = wikiText.replaceAll("\u2028", "\n");
+    wikiText = wikiText.replaceAll("\u0085", "\n");
+    this.wikiText = wikiText;
     this.matcher = wikiTokenEvent.matcher(wikiText);
     justReturnedNewline = isNewline;
   }
index 275aa299ec68aed8bbd4e8d1eedb43d70f2aec3b..bd975b2b503b7cfad08d044f0e78e4a6e634abad 100644 (file)
@@ -22,64 +22,72 @@ import java.util.List;
 import java.util.Map;
 
 class ItFunctionCallbacks {
-  
-  static <T extends AbstractWiktionaryParser> void addGenericCallbacks(Map<String, FunctionCallback<T>> callbacks) {
-      callbacks.put("-hyph-", new Redispatch<T>("\n==== Sillabazione ====\n"));
-      callbacks.put("-pron-", new Redispatch<T>("\n==== Pronuncia ====\n"));
-      callbacks.put("-etim-", new Redispatch<T>("\n==== Etimologia / Derivazione ====\n"));
-      callbacks.put("-syn-", new Redispatch<T>("\n==== Sinonimi ====\n"));
-      callbacks.put("-ant-", new Redispatch<T>("\n==== Antonimi/Contrari ====\n"));
-      callbacks.put("-drv-", new Redispatch<T>("\n==== Parole derivate ====\n"));
-      callbacks.put("-prov-", new Redispatch<T>("\n==== Proverbi e modi di dire ====\n"));
-      callbacks.put("-rel-", new Redispatch<T>("\n==== Termini correlati ====\n"));
-      callbacks.put("-ref-", new Redispatch<T>("\n==== Note / Riferimenti ====\n"));
 
-      callbacks.put("-trans1-", new SkipSection<T>());
-      callbacks.put("-trans2-", new SkipSection<T>());
+    static <T extends AbstractWiktionaryParser> void addGenericCallbacks(
+            Map<String, FunctionCallback<T>> callbacks) {
+        callbacks.put("-hyph-", new Redispatch<T>("\n==== Sillabazione ====\n"));
+        callbacks.put("-pron-", new Redispatch<T>("\n==== Pronuncia ====\n"));
+        callbacks.put("-etim-", new Redispatch<T>("\n==== Etimologia / Derivazione ====\n"));
+        callbacks.put("-syn-", new Redispatch<T>("\n==== Sinonimi ====\n"));
+        callbacks.put("-ant-", new Redispatch<T>("\n==== Antonimi/Contrari ====\n"));
+        callbacks.put("-drv-", new Redispatch<T>("\n==== Parole derivate ====\n"));
+        callbacks.put("-prov-", new Redispatch<T>("\n==== Proverbi e modi di dire ====\n"));
+        callbacks.put("-rel-", new Redispatch<T>("\n==== Termini correlati ====\n"));
+        callbacks.put("-ref-", new Redispatch<T>("\n==== Note / Riferimenti ====\n"));
+        callbacks.put("-var-", new Redispatch<T>("\n==== Varianti ====\n"));
 
-  }
+        callbacks.put("-trans1-", new SkipSection<T>());
+        callbacks.put("-trans2-", new SkipSection<T>());
 
-  
-  static final NameAndArgs<EnParser> NAME_AND_ARGS = new NameAndArgs<EnParser>();
-
-  
-  static final class Redispatch<T extends AbstractWiktionaryParser> implements FunctionCallback<T> {
-    final String newText;
-    public Redispatch(String newText) {
-        this.newText = newText;
     }
 
-    @Override
-      public boolean onWikiFunction(final WikiTokenizer wikiTokenizer, final String name, final List<String> args,
-          final Map<String, String> namedArgs,
-          final T parser,
-          final AppendAndIndexWikiCallback<T> appendAndIndexWikiCallback) {
-        if (!namedArgs.isEmpty() || args.size() != 0) {
-            return false;
+    static final NameAndArgs<EnParser> NAME_AND_ARGS = new NameAndArgs<EnParser>();
+
+    static final class Redispatch<T extends AbstractWiktionaryParser> implements
+            FunctionCallback<T> {
+        final String newText;
+
+        public Redispatch(String newText) {
+            this.newText = newText;
         }
-        appendAndIndexWikiCallback.dispatch(newText, null);
-        return true;
-      }
-    }
 
+        @Override
+        public boolean onWikiFunction(final WikiTokenizer wikiTokenizer, final String name,
+                final List<String> args,
+                final Map<String, String> namedArgs,
+                final T parser,
+                final AppendAndIndexWikiCallback<T> appendAndIndexWikiCallback) {
+            if (!namedArgs.isEmpty() || args.size() != 0) {
+                return false;
+            }
+            appendAndIndexWikiCallback.dispatch(newText, null);
+            return true;
+        }
+    }
 
-  static final class SkipSection<T extends AbstractWiktionaryParser> implements FunctionCallback<T> {
-      public SkipSection() {
-      }
+    static final class SkipSection<T extends AbstractWiktionaryParser> implements
+            FunctionCallback<T> {
+        public SkipSection() {
+        }
 
-      @Override
-        public boolean onWikiFunction(final WikiTokenizer wikiTokenizer, final String name, final List<String> args,
-            final Map<String, String> namedArgs,
-            final T parser,
-            final AppendAndIndexWikiCallback<T> appendAndIndexWikiCallback) {
-          while (wikiTokenizer.nextToken() != null) {
-              if (wikiTokenizer.isFunction() && wikiTokenizer.functionName().startsWith("-") && wikiTokenizer.functionName().endsWith("-")) {
-                  wikiTokenizer.returnToLineStart();
-                  return true;
-              }
-          }
-          return true;
+        @Override
+        public boolean onWikiFunction(final WikiTokenizer wikiTokenizer, final String name,
+                final List<String> args,
+                final Map<String, String> namedArgs,
+                final T parser,
+                final AppendAndIndexWikiCallback<T> appendAndIndexWikiCallback) {
+            while (wikiTokenizer.nextToken() != null) {
+                if (wikiTokenizer.isFunction() 
+                        && wikiTokenizer.functionName().startsWith("-")
+                        && wikiTokenizer.functionName().endsWith("-")
+                        // Hack to prevent infinite-looping, would be better to check that this func was at the start of the line.
+                        && !wikiTokenizer.functionName().contains("trans")) {
+                    wikiTokenizer.returnToLineStart();
+                    return true;
+                }
+            }
+            return true;
         }
-      }
+    }
 
-}
\ No newline at end of file
+}
index b7642915041a7ac6422c618faf4742815fcbbb80..4acdef73d0dc4e23eeda7fbf048839c64da8aa1c 100644 (file)
@@ -14,7 +14,9 @@
 
 package com.hughes.android.dictionary.parser.wiktionary;
 
+import com.hughes.android.dictionary.R;
 import com.hughes.android.dictionary.engine.Language;
+import com.hughes.android.dictionary.engine.Language.LanguageResources;
 
 import java.util.LinkedHashMap;
 import java.util.Map;
@@ -107,7 +109,8 @@ public class WiktionaryLangs {
     isoCodeToEnWikiName.put("HT", "Haitian Creole");
     isoCodeToEnWikiName.put("LB", "Luxembourgish");
     isoCodeToEnWikiName.put("MK", "Macedonian");
-    
+
+
     assert Language.isoCodeToResources.keySet().containsAll(isoCodeToEnWikiName.keySet());
   }
 
index 5ed7c5f46e33b3e58497950da9d932226d712c86..bd11c2533928722148b7a0e3de54524f8d0b38cd 100644 (file)
--- a/todo.txt
+++ b/todo.txt
@@ -1,3 +1,17 @@
+URLs with special chars
+encode properly.
+Link span
+de-conj
+-var-
+why does presso not show up?
+Multi search results include titles
+more distinct BG color for tokens
+no BG for see also.
+Afferrare in it, italics don't end.
+{{L
+start new intent for web link.
+
+
 {{term
 {{etyl
 {{l