]> gitweb.fperrin.net Git - DictionaryPC.git/blobdiff - src/com/hughes/android/dictionary/parser/wiktionary/WiktionaryLangs.java
Split ZH into yue and cmn, fixed German heading.
[DictionaryPC.git] / src / com / hughes / android / dictionary / parser / wiktionary / WiktionaryLangs.java
index bf855b38da14561acaab2d5c503b8ae628c8d9b9..f87afa107ec3f9e5dbb30b26e62eb0787a67da60 100644 (file)
 
 package com.hughes.android.dictionary.parser.wiktionary;
 
+import com.hughes.android.dictionary.engine.Language;
+
 import java.util.LinkedHashMap;
+import java.util.LinkedHashSet;
 import java.util.Map;
+import java.util.Set;
 import java.util.regex.Pattern;
 
 public class WiktionaryLangs {
@@ -28,12 +32,15 @@ public class WiktionaryLangs {
     isoCodeToEnWikiName.put("HY", "Armenian");
     isoCodeToEnWikiName.put("BE", "Belarusian");
     isoCodeToEnWikiName.put("BN", "Bengali");
-    isoCodeToEnWikiName.put("BS", "Bosnian");
     isoCodeToEnWikiName.put("BG", "Bulgarian");
+    isoCodeToEnWikiName.put("MY", "Burmese");
     isoCodeToEnWikiName.put("CA", "Catalan");
+    isoCodeToEnWikiName.put("SH", "Serbo-Croatian");
     isoCodeToEnWikiName.put("HR", "Croatian");
     isoCodeToEnWikiName.put("CS", "Czech");
-    isoCodeToEnWikiName.put("ZH", "Chinese|Mandarin|Cantonese");
+    isoCodeToEnWikiName.put("ZH", "Chinese");
+    isoCodeToEnWikiName.put("cmn", "Mandarin");
+    isoCodeToEnWikiName.put("yue", "Cantonese");
     isoCodeToEnWikiName.put("DA", "Danish");
     isoCodeToEnWikiName.put("NL", "Dutch");
     isoCodeToEnWikiName.put("EN", "English");
@@ -43,6 +50,7 @@ public class WiktionaryLangs {
     isoCodeToEnWikiName.put("FR", "French");
     isoCodeToEnWikiName.put("DE", "German");
     isoCodeToEnWikiName.put("EL", "Greek");
+    isoCodeToEnWikiName.put("grc", "Ancient Greek");
     isoCodeToEnWikiName.put("haw", "Hawaiian");
     isoCodeToEnWikiName.put("HE", "Hebrew");
     isoCodeToEnWikiName.put("HI", "Hindi");
@@ -72,7 +80,6 @@ public class WiktionaryLangs {
     isoCodeToEnWikiName.put("RO", "Romanian");
     isoCodeToEnWikiName.put("RU", "Russian");
     isoCodeToEnWikiName.put("SA", "Sanskrit");
-    isoCodeToEnWikiName.put("SR", "Serbian");
     isoCodeToEnWikiName.put("SK", "Slovak");
     isoCodeToEnWikiName.put("SL", "Slovene|Slovenian");
     isoCodeToEnWikiName.put("SO", "Somali");
@@ -81,6 +88,7 @@ public class WiktionaryLangs {
     isoCodeToEnWikiName.put("SV", "Swedish");
     isoCodeToEnWikiName.put("TL", "Tagalog");
     isoCodeToEnWikiName.put("TG", "Tajik");
+    isoCodeToEnWikiName.put("TA", "Tamil");
     isoCodeToEnWikiName.put("TH", "Thai");
     isoCodeToEnWikiName.put("BO", "Tibetan");
     isoCodeToEnWikiName.put("TR", "Turkish");
@@ -90,7 +98,6 @@ public class WiktionaryLangs {
     isoCodeToEnWikiName.put("CI", "Welsh");
     isoCodeToEnWikiName.put("YI", "Yiddish");
     isoCodeToEnWikiName.put("ZU", "Zulu");
-    
     isoCodeToEnWikiName.put("AZ", "Azeri");
     isoCodeToEnWikiName.put("EU", "Basque");
     isoCodeToEnWikiName.put("BR", "Breton");
@@ -102,6 +109,16 @@ public class WiktionaryLangs {
     isoCodeToEnWikiName.put("LB", "Luxembourgish");
     isoCodeToEnWikiName.put("MK", "Macedonian");
     
+    // No longer exists in EN:
+    // isoCodeToEnWikiName.put("BS", "Bosnian");
+    // isoCodeToEnWikiName.put("SR", "Serbian");
+
+    {
+        Set<String> missing = new LinkedHashSet<String>(isoCodeToEnWikiName.keySet());
+        missing.removeAll(Language.isoCodeToResources.keySet());
+        //System.out.println(missing);
+    }
+    assert Language.isoCodeToResources.keySet().containsAll(isoCodeToEnWikiName.keySet());
   }
 
   public static final Map<String,Map<String,String>> wikiCodeToIsoCodeToWikiName = new LinkedHashMap<String, Map<String,String>>();
@@ -130,24 +147,26 @@ public class WiktionaryLangs {
     // egrep -o '\{\{=[a-zA-Z]+=\}\}' frwiktionary-pages-articles.xml | sort | uniq -c | sort -nr
     isoCodeToWikiName = new LinkedHashMap<String, String>();
     wikiCodeToIsoCodeToWikiName.put("fr", isoCodeToWikiName);
-    isoCodeToWikiName.put("FR", Pattern.quote("{{=fr=}}"));
-    isoCodeToWikiName.put("RU", Pattern.quote("{{=ru=}}"));
-    isoCodeToWikiName.put("BG", Pattern.quote("{{=bg=}}"));  // Bulgarian
-    isoCodeToWikiName.put("EN", Pattern.quote("{{=en=}}"));
-    //isoCodeToWikiName.put("", Pattern.quote("{{=sl=}}"));
-    isoCodeToWikiName.put("LA", Pattern.quote("{{=la=}}"));
-    isoCodeToWikiName.put("IT", Pattern.quote("{{=it=}}"));
-    isoCodeToWikiName.put("EO", Pattern.quote("{{=eo=}}"));
-    isoCodeToWikiName.put("CS", Pattern.quote("{{=cs=}}"));  // Czech
-    isoCodeToWikiName.put("NL", Pattern.quote("{{=nl=}}"));  // Dutch
-    //isoCodeToWikiName.put("", Pattern.quote("{{=mg=}}"));
-    //isoCodeToWikiName.put("", Pattern.quote("{{=hsb=}}"));
-    isoCodeToWikiName.put("ZH", Pattern.quote("{{=zh=}}"));
-    isoCodeToWikiName.put("JA", Pattern.quote("{{=ja=}}"));
-    isoCodeToWikiName.put("DE", Pattern.quote("{{=de=}}"));
-    isoCodeToWikiName.put("IS", Pattern.quote("{{=is=}}"));  // Icelandic
-    isoCodeToWikiName.put("ES", Pattern.quote("{{=es=}}"));
-    isoCodeToWikiName.put("UK", Pattern.quote("{{=uk=}}"));
+    isoCodeToWikiName.put("FR", Pattern.quote("{{langue|fr}}"));
+    isoCodeToWikiName.put("RU", Pattern.quote("{{langue|ru}}"));
+    isoCodeToWikiName.put("BG", Pattern.quote("{{langue|bg}}"));  // Bulgarian
+    isoCodeToWikiName.put("EN", Pattern.quote("{{langue|en}}"));
+    //isoCodeToWikiName.put("", Pattern.quote("{{langue|sl}}"));
+    isoCodeToWikiName.put("LA", Pattern.quote("{{langue|la}}"));
+    isoCodeToWikiName.put("IT", Pattern.quote("{{langue|it}}"));
+    isoCodeToWikiName.put("EO", Pattern.quote("{{langue|eo}}"));
+    isoCodeToWikiName.put("CS", Pattern.quote("{{langue|cs}}"));  // Czech
+    isoCodeToWikiName.put("NL", Pattern.quote("{{langue|nl}}"));  // Dutch
+    //isoCodeToWikiName.put("", Pattern.quote("{{langue|mg}}"));
+    //isoCodeToWikiName.put("", Pattern.quote("{{langue|hsb}}"));
+    isoCodeToWikiName.put("ZH", Pattern.quote("{{langue|zh}}"));
+    isoCodeToWikiName.put("cmn", Pattern.quote("{{langue|cmn}}"));
+    isoCodeToWikiName.put("yue", Pattern.quote("{{langue|yue}}"));
+    isoCodeToWikiName.put("JA", Pattern.quote("{{langue|ja}}"));
+    isoCodeToWikiName.put("DE", Pattern.quote("{{langue|de}}"));
+    isoCodeToWikiName.put("IS", Pattern.quote("{{langue|is}}"));  // Icelandic
+    isoCodeToWikiName.put("ES", Pattern.quote("{{langue|es}}"));
+    isoCodeToWikiName.put("UK", Pattern.quote("{{langue|uk}}"));
 
     // egrep -o '= *\{\{-[a-z]+-\}\} *=' itwiktionary-pages-articles.xml | sort | uniq -c | sort -n
     isoCodeToWikiName = new LinkedHashMap<String, String>();
@@ -167,5 +186,18 @@ public class WiktionaryLangs {
     isoCodeToWikiName.put("SV", Pattern.quote("{{-sv-}}"));
 
   }
+  public static String getEnglishName(String langCode) {
+      String name = isoCodeToEnWikiName.get(langCode);
+      if (name == null) {
+          name = isoCodeToEnWikiName.get(langCode.toUpperCase());
+      }
+      if (name == null) {
+          return null;
+      }
+      if (name.indexOf('|') != -1) {
+          return name.substring(name.indexOf('|'));
+      }
+      return name;  // can be null.
+  }
   
 }