]> gitweb.fperrin.net Git - DictionaryPC.git/commitdiff
Major refactor in the way wikiText is parsed.
authorThad Hughes <thad.hughes@gmail.com>
Mon, 2 Jan 2012 18:00:35 +0000 (10:00 -0800)
committerThad Hughes <thad.hughes@gmail.com>
Mon, 2 Jan 2012 18:00:35 +0000 (10:00 -0800)
src/com/hughes/android/dictionary/engine/DictionaryBuilderTest.java
src/com/hughes/android/dictionary/engine/IndexBuilder.java
src/com/hughes/android/dictionary/parser/WikiTokenizer.java
src/com/hughes/android/dictionary/parser/enwiktionary/AppendAndIndexWikiCallback.java
src/com/hughes/android/dictionary/parser/enwiktionary/EnWiktionaryXmlParser.java
src/com/hughes/android/dictionary/parser/enwiktionary/FunctionCallback.java
src/com/hughes/android/dictionary/parser/enwiktionary/FunctionCallbacksDefault.java [new file with mode: 0644]
testdata/goldens/wiktionary.de_de.quickdic.text
testdata/goldens/wiktionary.it_it.quickdic.text
testdata/goldens/wiktionary.zh_en.quickdic.text

index 7cdb3130b0c9a82495db5f0dac4b61216f7294e7..c0921c39e5b60df53d07b02cbaa76910794cabcb 100644 (file)
@@ -32,6 +32,27 @@ public class DictionaryBuilderTest extends TestCase {
   public static final String GOLDENS = "testdata/goldens/";
 
   public static final String TEST_OUTPUTS = "testdata/outputs/";
+  
+  public void testWiktionary_IT_EN() throws Exception {
+    wiktionaryTestWithLangToEn("wiktionary.it_en.quickdic", "IT", "it.txt",
+        "EN.data", "enwiktionary.english", "Italian", "it");
+  }
+
+  public void testWiktionary_ZH_EN() throws Exception {
+    wiktionaryTestWithLangToEn("wiktionary.zh_en.quickdic", "ZH", "empty.txt",
+        // These missing "e" prevents a complete match, forcing the name to be printed
+        "EN.data", "enwiktionary.english", "Chinese|Mandarin|Cantones", "zh");
+  }
+
+  public void testWiktionary_DE_EN() throws Exception {
+    wiktionaryTestWithLangToEn("wiktionary.de_en.quickdic", "DE", "de.txt",
+        "EN.data", "enwiktionary.english", "German", "it");
+  }
+
+  public void testWiktionary_IT_IT() throws Exception {
+    wiktionaryTestWithLangToEn("wiktionary.it_it.quickdic", "IT", "it.txt",
+        "IT.data", "enwiktionary.italian", "Italian", "it");
+  }
 
   // French
   public void testWiktionary_FR_FR() throws Exception {
@@ -53,34 +74,12 @@ public class DictionaryBuilderTest extends TestCase {
         "ZH.data", "enwiktionary.chinese", "Chinese|Mandarin|Cantones", "zh");
   }
 
-  public void testWiktionary_ZH_EN() throws Exception {
-    wiktionaryTestWithLangToEn("wiktionary.zh_en.quickdic", "ZH", "empty.txt",
-        // These missing "e" prevents a complete match, forcing the name to be printed
-        "EN.data", "enwiktionary.english", "Chinese|Mandarin|Cantones", "zh");
-  }
-  
   // German
   public void testWiktionary_DE_DE() throws Exception {
     wiktionaryTestWithLangToEn("wiktionary.de_de.quickdic", "DE", "de.txt",
         "DE.data", "enwiktionary.german", "German", "it");
   }
 
-  public void testWiktionary_DE_EN() throws Exception {
-    wiktionaryTestWithLangToEn("wiktionary.de_en.quickdic", "DE", "de.txt",
-        "EN.data", "enwiktionary.english", "German", "it");
-  }
-
-  // Italian
-  public void testWiktionary_IT_IT() throws Exception {
-    wiktionaryTestWithLangToEn("wiktionary.it_it.quickdic", "IT", "it.txt",
-        "IT.data", "enwiktionary.italian", "Italian", "it");
-  }
-
-  public void testWiktionary_IT_EN() throws Exception {
-    wiktionaryTestWithLangToEn("wiktionary.it_en.quickdic", "IT", "it.txt",
-        "EN.data", "enwiktionary.english", "Italian", "it");
-  }
-
   public void wiktionaryTestWithLangToEn(final String name, final String lang1,
       final String stoplist, final String data, final String dictName,
       final String langPattern, final String langCode) throws Exception {
index 9e6b6c09378bdc222739567de949ceaf83b5def5..81de5a2901e6d534a4ea63617dda451973613d24 100644 (file)
@@ -126,13 +126,14 @@ public class IndexBuilder {
   }
 
   public void addEntryWithString(final IndexedEntry indexedEntry, final String untokenizedString,
-      final EntryTypeName singleTokenEntryTypeName, final EntryTypeName multiTokenEntryTypeName) {
+      final EntryTypeName entryTypeName) {
     final Set<String> tokens = DictFileParser.tokenize(untokenizedString, DictFileParser.NON_CHAR);
-    addEntryWithTokens(indexedEntry, tokens, tokens.size() == 1 ? singleTokenEntryTypeName : multiTokenEntryTypeName);
+    addEntryWithTokens(indexedEntry, tokens, tokens.size() == 1 ? entryTypeName.singleWordInstance : entryTypeName);
   }
 
-  public void addEntryWithString(final IndexedEntry indexedEntry, final String untokenizedString,
+  public void addEntryWithStringNoSingle(final IndexedEntry indexedEntry, final String untokenizedString,
       final EntryTypeName entryTypeName) {
-    addEntryWithString(indexedEntry, untokenizedString, entryTypeName, entryTypeName);
+    final Set<String> tokens = DictFileParser.tokenize(untokenizedString, DictFileParser.NON_CHAR);
+    addEntryWithTokens(indexedEntry, tokens, entryTypeName);
   }
 }
index 6c81749006ea96d5dfe362459206d9ded25cf7e0..47aac9488de54449f81399f33b29f3e264f55ac7 100644 (file)
@@ -24,11 +24,11 @@ import java.util.regex.Pattern;
 public final class WikiTokenizer {
   
   public static interface Callback {
-    void onPlainText(WikiTokenizer wikiTokenizer);
+    void onPlainText(final String text);
     void onMarkup(WikiTokenizer wikiTokenizer);
     void onWikiLink(WikiTokenizer wikiTokenizer);
     void onNewline(WikiTokenizer wikiTokenizer);
-    void onFunction(String functionName, List<String> functionPositionArgs,
+    void onFunction(final WikiTokenizer tokenizer, String functionName, List<String> functionPositionArgs,
         Map<String, String> functionNamedArgs);
     void onHeading(WikiTokenizer wikiTokenizer);
     void onListItem(WikiTokenizer wikiTokenizer);
@@ -104,27 +104,41 @@ public final class WikiTokenizer {
     positionArgs.clear();
     namedArgs.clear();
   }
-  
-  public void dispatch(final Callback callback) {
-    while (nextToken() != null) {
-      if (isPlainText()) {
-        callback.onPlainText(this);
-      } else if (isMarkup()) {
-        callback.onMarkup(this);
-      } else if (isWikiLink) {
-        callback.onWikiLink(this);
-      } else if (isNewline()) {
-        callback.onNewline(this);
-      } else if (isFunction()) {
-        callback.onFunction(functionName(), functionPositionArgs(), functionNamedArgs());
-      } else if (isHeading()) {
-        callback.onHeading(this);
-      } else if (isListItem()) {
-        callback.onListItem(this);
-      } else if (isComment()) {
-        callback.onComment(this);
-      } else {
-        throw new IllegalStateException("Unknown wiki state.");
+
+  private static final Pattern POSSIBLE_WIKI_TEXT = Pattern.compile(
+      "\\{\\{|" +
+      "\\[\\[|" +
+      "<!--|" +
+      "''|" +
+      "[\n]"
+      );
+
+  public static void dispatch(final String wikiText, final boolean isNewline, final Callback callback) {
+    // Optimization...
+    if (!POSSIBLE_WIKI_TEXT.matcher(wikiText).find()) {
+      callback.onPlainText(wikiText);
+    } else {
+      final WikiTokenizer tokenizer = new WikiTokenizer(wikiText, isNewline);
+      while (tokenizer.nextToken() != null) {
+        if (tokenizer.isPlainText()) {
+          callback.onPlainText(tokenizer.token());
+        } else if (tokenizer.isMarkup()) {
+          callback.onMarkup(tokenizer);
+        } else if (tokenizer.isWikiLink) {
+          callback.onWikiLink(tokenizer);
+        } else if (tokenizer.isNewline()) {
+          callback.onNewline(tokenizer);
+        } else if (tokenizer.isFunction()) {
+          callback.onFunction(tokenizer, tokenizer.functionName(), tokenizer.functionPositionArgs(), tokenizer.functionNamedArgs());
+        } else if (tokenizer.isHeading()) {
+          callback.onHeading(tokenizer);
+        } else if (tokenizer.isListItem()) {
+          callback.onListItem(tokenizer);
+        } else if (tokenizer.isComment()) {
+          callback.onComment(tokenizer);
+        } else {
+          throw new IllegalStateException("Unknown wiki state.");
+        }
       }
     }
   }
index 2a5e7c6a92cbce5ce32ab43017d5b5c2ac94e856..546d0af41223f419d57bb49acd9233257e0cf931 100644 (file)
@@ -1,5 +1,7 @@
 package com.hughes.android.dictionary.parser.enwiktionary;
 
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -11,33 +13,46 @@ import com.hughes.android.dictionary.parser.WikiTokenizer;
 final class AppendAndIndexWikiCallback implements WikiTokenizer.Callback {
 
   final EnWiktionaryXmlParser parser;
-  final StringBuilder builder;
-  final IndexedEntry indexedEntry;
-  IndexBuilder defaultIndexBuilder;
-  final Map<String,FunctionCallback> functionCallbacks;
+  StringBuilder builder;
+  IndexedEntry indexedEntry;
+  IndexBuilder indexBuilder;
+  final Map<String,FunctionCallback> functionCallbacks = new LinkedHashMap<String, FunctionCallback>();
   
-  // TODO: the classes of text are wrong....
+  EntryTypeName entryTypeName = null;
   
-  public AppendAndIndexWikiCallback(
-      final EnWiktionaryXmlParser parser,
-      final String title,
-      final StringBuilder builder, 
-      final IndexedEntry indexedEntry,
-      final IndexBuilder defaultIndexBuilder,
-      final Map<String, FunctionCallback> functionCallbacks) {
+  public AppendAndIndexWikiCallback(final EnWiktionaryXmlParser parser) {
     this.parser = parser;
-    this.indexedEntry = indexedEntry;
-    this.defaultIndexBuilder = defaultIndexBuilder;
+  }
+  
+  public void reset(final StringBuilder builder, final IndexedEntry indexedEntry) {
     this.builder = builder;
-    this.functionCallbacks = functionCallbacks;
+    this.indexedEntry = indexedEntry;
+    this.indexBuilder = null;
+    entryTypeName = null;
+  }
+  
+  public void dispatch(final String wikiText, final IndexBuilder indexBuilder, final EntryTypeName entryTypeName) {
+    final IndexBuilder oldIndexBuilder = this.indexBuilder;
+    final EntryTypeName oldEntryTypeName = this.entryTypeName;
+    this.indexBuilder = indexBuilder;
+    this.entryTypeName = entryTypeName;
+    WikiTokenizer.dispatch(wikiText, false, this);
+    this.indexBuilder = oldIndexBuilder;
+    this.entryTypeName = oldEntryTypeName;
+  }
+  
+  public void dispatch(final String wikiText, final EntryTypeName entryTypeName) {
+    dispatch(wikiText, this.indexBuilder, entryTypeName);
   }
 
+  
   @Override
-  public void onPlainText(WikiTokenizer wikiTokenizer) {
+  public void onPlainText(final String plainText) {
     // The only non-recursive callback.  Just appends to the builder, and indexes.
-    final String plainText = wikiTokenizer.token(); 
     builder.append(plainText);
-    defaultIndexBuilder.addEntryWithString(indexedEntry, plainText, EntryTypeName.WIKTIONARY_TRANSLATION_OTHER_TEXT);
+    if (indexBuilder != null && entryTypeName != null) {
+      indexBuilder.addEntryWithString(indexedEntry, plainText, entryTypeName);
+    }
   }
 
   @Override
@@ -50,31 +65,34 @@ final class AppendAndIndexWikiCallback implements WikiTokenizer.Callback {
       // TODO: Check for English before appending.
       // TODO: Could also index under link dest, too.
     }
-    // TODO: save, set, restore text type...
-    new WikiTokenizer(wikiText, false).dispatch(this);
+    dispatch(wikiText, EntryTypeName.WIKTIONARY_TRANSLATION_WIKI_TEXT);
   }
 
   @Override
   public void onFunction(
+      final WikiTokenizer wikiTokenizer,
       final String name,
       final List<String> args, 
       final Map<String, String> namedArgs) {
     
     final FunctionCallback functionCallback = functionCallbacks.get(name);
-    if (functionCallback == null || !functionCallback.onWikiFunction(name, args, namedArgs, parser, title)) {
+    if (functionCallback == null || !functionCallback.onWikiFunction(wikiTokenizer, name, args, namedArgs, parser, this)) {
       // Default function handling:
+      final IndexBuilder oldIndexBuilder = indexBuilder;
+      indexBuilder = null;
       builder.append("{{").append(name);
       for (int i = 0; i < args.size(); ++i) {
         builder.append("|");
-        new WikiTokenizer(args.get(i), false).dispatch(this);
+        WikiTokenizer.dispatch(args.get(i), false, this);
       }
       for (final Map.Entry<String, String> entry : namedArgs.entrySet()) {
         builder.append("|");
-        new WikiTokenizer(entry.getKey(), false).dispatch(this);
+        WikiTokenizer.dispatch(entry.getKey(), false, this);
         builder.append("=");
-        new WikiTokenizer(entry.getValue(), false).dispatch(this);
+        WikiTokenizer.dispatch(entry.getValue(), false, this);
       }
       builder.append("}}");
+      indexBuilder = oldIndexBuilder;
     }
   }
 
@@ -102,4 +120,5 @@ final class AppendAndIndexWikiCallback implements WikiTokenizer.Callback {
   public void onListItem(WikiTokenizer wikiTokenizer) {
     assert false;
   }
+
 }
\ No newline at end of file
index cc9304906bda22ba52065d9933579febe3a70b29..eb800bfff0281babe3338bb7ef199127c6cfa299 100644 (file)
@@ -36,6 +36,7 @@ import com.hughes.android.dictionary.engine.IndexedEntry;
 import com.hughes.android.dictionary.engine.PairEntry;
 import com.hughes.android.dictionary.engine.PairEntry.Pair;
 import com.hughes.android.dictionary.parser.WikiTokenizer;
+import com.hughes.util.ListUtil;
 
 public class EnWiktionaryXmlParser {
   
@@ -63,6 +64,9 @@ public class EnWiktionaryXmlParser {
   final Pattern langPattern;
   final Pattern langCodePattern;
   final boolean swap;
+  
+  // State used while parsing.
+  String title;
 
   public EnWiktionaryXmlParser(final IndexBuilder enIndexBuilder, final IndexBuilder otherIndexBuilder, final Pattern langPattern, final Pattern langCodePattern, final boolean swap) {
     this.enIndexBuilder = enIndexBuilder;
@@ -81,10 +85,10 @@ public class EnWiktionaryXmlParser {
         return;
       }
       
-      final String title;
       try {
         title = dis.readUTF();
       } catch (EOFException e) {
+        LOG.warning("Error reading split!");
         dis.close();
         return;
       }
@@ -94,7 +98,7 @@ public class EnWiktionaryXmlParser {
       dis.readFully(bytes);
       final String text = new String(bytes, "UTF8");
       
-      parseSection(title, heading, text);
+      parseSection(heading, text);
 
       ++pageCount;
       if (pageCount % 1000 == 0) {
@@ -103,7 +107,7 @@ public class EnWiktionaryXmlParser {
     }
   }
   
-  private void parseSection(final String title, String heading, final String text) {
+  private void parseSection(String heading, final String text) {
     if (title.startsWith("Wiktionary:") ||
         title.startsWith("Template:") ||
         title.startsWith("Appendix:") ||
@@ -119,16 +123,16 @@ public class EnWiktionaryXmlParser {
     
     heading = heading.replaceAll("=", "").trim(); 
     if (heading.equals("English")) {
-      doEnglishWord(title, text);
+      doEnglishWord(text);
     } else if (langPattern.matcher(heading).find()){
-      doForeignWord(heading, title, text);
+      doForeignWord(heading, text);
     }
         
   }  // endPage()
   
   // -------------------------------------------------------------------------
   
-  private void doEnglishWord(String title, String text) {
+  private void doEnglishWord(String text) {
     
     String pos = null;
     int posDepth = -1;
@@ -153,7 +157,7 @@ public class EnWiktionaryXmlParser {
           if (pos == null) {
             LOG.warning("Translations without POS: " + title);
           }
-          doTranslations(title, wikiTokenizer, pos);
+          doTranslations(wikiTokenizer, pos);
         } else if (headerName.equals("Pronunciation")) {
           //doPronunciation(wikiLineReader);
         }
@@ -165,15 +169,10 @@ public class EnWiktionaryXmlParser {
       }
     }
   }
-
-
-  private static Set<String> encodings = new LinkedHashSet<String>(Arrays.asList("zh-ts",
-      "sd-Arab", "ku-Arab", "Arab", "unicode", "Laoo", "ur-Arab", "Thai", 
-      "fa-Arab", "Khmr", "zh-tsp", "Cyrl", "IPAchar", "ug-Arab", "ko-inline", 
-      "Jpan", "Kore", "Hebr", "rfscript", "Beng", "Mong", "Knda", "Cyrs",
-      "yue-tsj", "Mlym", "Tfng", "Grek", "yue-yue-j"));
   
-  private void doTranslations(final String title, final WikiTokenizer wikiTokenizer, final String pos) {
+  final AppendAndIndexWikiCallback appendAndIndexWikiCallback = new AppendAndIndexWikiCallback(this);
+  
+  private void doTranslations(final WikiTokenizer wikiTokenizer, final String pos) {
     if (title.equals("absolutely")) {
       //System.out.println();
     }
@@ -255,7 +254,7 @@ public class EnWiktionaryXmlParser {
         
         String rest = line.substring(colonIndex + 1).trim();
         if (rest.length() > 0) {
-          doTranslationLine(line, appendLang ? lang : null, title, pos, sense, rest);
+          doTranslationLine(line, appendLang ? lang : null, pos, sense, rest);
         }
         
       } else if (wikiTokenizer.remainderStartsWith("''See''")) {
@@ -280,76 +279,16 @@ public class EnWiktionaryXmlParser {
     }
   }
   
-  private void doTranslationLine(final String line, final String lang, final String title, final String pos, final String sense, final String rest) {
+  private void doTranslationLine(final String line, final String lang, final String pos, final String sense, final String rest) {
     // Good chance we'll actually file this one...
     final PairEntry pairEntry = new PairEntry();
     final IndexedEntry indexedEntry = new IndexedEntry(pairEntry);
     
     final StringBuilder foreignText = new StringBuilder();
-    final WikiTokenizer wikiTokenizer = new WikiTokenizer(rest, false);
-    while (wikiTokenizer.nextToken() != null) {
-      
-      if (wikiTokenizer.isPlainText()) {
-        final String plainText = wikiTokenizer.token(); 
-        foreignText.append(plainText);
-        foreignIndexBuilder.addEntryWithString(indexedEntry, plainText, EntryTypeName.WIKTIONARY_TRANSLATION_OTHER_TEXT);
-        
-      } else if (wikiTokenizer.isWikiLink()) {
-        final String plainText = wikiTokenizer.wikiLinkText(); 
-        foreignText.append(plainText);
-        // TODO: should check for English before appending.
-        foreignIndexBuilder.addEntryWithString(indexedEntry, plainText, EntryTypeName.WIKTIONARY_TRANSLATION_WIKI_TEXT);
-
-      } else if (wikiTokenizer.isFunction()) {
-        final String functionName = wikiTokenizer.functionName();
-        final List<String> args = wikiTokenizer.functionPositionArgs();
-        final Map<String,String> namedArgs = wikiTokenizer.functionNamedArgs();
-        
-        if (functionName.equals("t") || functionName.equals("t+") || functionName.equals("t-") || functionName.equals("tø") || functionName.equals("apdx-t")) {
-        } else if (functionName.equals("qualifier")) {
-        } else if (encodings.contains(functionName)) {
-          foreignText.append("").append(args.get(0));
-          foreignIndexBuilder.addEntryWithString(indexedEntry, args.get(0), EntryTypeName.WIKTIONARY_TRANSLATION_OTHER_TEXT);
-        } else if (isGender(functionName)) {
-          appendGender(foreignText, functionName, args);
-        } else if (functionName.equals("g")) {
-          foreignText.append("{g}");
-        } else if (functionName.equals("l")) {
-          // encodes text in various langs.
-          // lang is arg 0.
-          foreignText.append("").append(args.get(1));
-          foreignIndexBuilder.addEntryWithString(indexedEntry, args.get(1), EntryTypeName.WIKTIONARY_TRANSLATION_OTHER_TEXT);
-          // TODO: transliteration
-        } else if (functionName.equals("term")) {
-          // cross-reference to another dictionary
-          foreignText.append("").append(args.get(0));
-          foreignIndexBuilder.addEntryWithString(indexedEntry, args.get(0), EntryTypeName.WIKTIONARY_TRANSLATION_OTHER_TEXT);
-          // TODO: transliteration
-        } else if (functionName.equals("italbrac") || functionName.equals("gloss")) {
-          // TODO: put this text aside to use it.
-          foreignText.append("[").append(args.get(0)).append("]");
-          foreignIndexBuilder.addEntryWithString(indexedEntry, args.get(0), EntryTypeName.WIKTIONARY_TRANSLATION_OTHER_TEXT);
-        } else if (functionName.equals("ttbc")) {
-          LOG.warning("Unexpected {{ttbc}}");
-        } else if (functionName.equals("trreq")) {
-        } else if (functionName.equals("not used")) {
-          foreignText.append("(not used)");
-        } else if (functionName.equals("t-image")) {
-          // American sign language
-        } else {
-          // Unindexed!
-          namedArgs.keySet().removeAll(USELESS_WIKI_ARGS);
-          WikiTokenizer.appendFunction(foreignText.append("{{"), functionName, args, namedArgs).append("}}");
-        }
-        
-      } else if (wikiTokenizer.isNewline()) {
-      } else if (wikiTokenizer.isComment()) {
-      } else if (wikiTokenizer.isMarkup()) {
-      } else {
-        LOG.warning("Bad translation token: " + wikiTokenizer.token());
-      }
-    }  // while-token loop.
-    
+    appendAndIndexWikiCallback.reset(foreignText, indexedEntry);
+    appendAndIndexWikiCallback.functionCallbacks.clear();
+    appendAndIndexWikiCallback.functionCallbacks.putAll(FunctionCallbacksDefault.DEFAULT);
+    appendAndIndexWikiCallback.dispatch(rest, foreignIndexBuilder, EntryTypeName.WIKTIONARY_TRANSLATION_OTHER_TEXT);
     
     if (foreignText.length() == 0) {
       LOG.warning("Empty foreignText: " + line);
@@ -365,12 +304,12 @@ public class EnWiktionaryXmlParser {
     englishText.append(title);
     if (sense != null) {
       englishText.append(" (").append(sense).append(")");
-      enIndexBuilder.addEntryWithString(indexedEntry, sense, EntryTypeName.WIKTIONARY_TRANSLATION_SENSE, EntryTypeName.WIKTIONARY_TRANSLATION_SENSE);
+      enIndexBuilder.addEntryWithString(indexedEntry, sense, EntryTypeName.WIKTIONARY_TRANSLATION_SENSE);
     }
     if (pos != null) {
       englishText.append(" (").append(pos.toLowerCase()).append(")");
     }
-    enIndexBuilder.addEntryWithString(indexedEntry, title, EntryTypeName.WIKTIONARY_TITLE_SINGLE, EntryTypeName.WIKTIONARY_TITLE_MULTI);
+    enIndexBuilder.addEntryWithString(indexedEntry, title, EntryTypeName.WIKTIONARY_TITLE_MULTI);
     
     final Pair pair = new Pair(trim(englishText.toString()), trim(foreignText.toString()), swap);
     pairEntry.pairs.add(pair);
@@ -384,26 +323,11 @@ public class EnWiktionaryXmlParser {
   }
 
 
-  private void appendGender(final StringBuilder otherText,
-      final String functionName, final List<String> args) {
-    otherText.append("{");
-    otherText.append(functionName);
-    for (int i = 0; i < args.size(); ++i) {
-      otherText.append("|").append(args.get(i));
-    }
-    otherText.append("}");
-  }
-
-
-  private boolean isGender(final String functionName) {
-    return functionName.equals("m") || functionName.equals("f") || functionName.equals("n") || functionName.equals("p");
-  }
-  
   Set<String> pairsAdded = new LinkedHashSet<String>();
   
   // -------------------------------------------------------------------------
   
-  private void doForeignWord(final String lang, final String title, final String text) {
+  private void doForeignWord(final String lang, final String text) {
     final WikiTokenizer wikiTokenizer = new WikiTokenizer(text);
     while (wikiTokenizer.nextToken() != null) {
       if (wikiTokenizer.isHeading()) {
@@ -413,7 +337,7 @@ public class EnWiktionaryXmlParser {
         } else if (headingName.equals("Pronunciation")) {
           //doPronunciation(wikiLineReader);
         } else if (partOfSpeechHeader.matcher(headingName).matches()) {
-          doForeignPartOfSpeech(lang, title, headingName, wikiTokenizer.headingDepth(), wikiTokenizer);
+          doForeignPartOfSpeech(lang, headingName, wikiTokenizer.headingDepth(), wikiTokenizer);
         }
       } else {
       }
@@ -439,7 +363,7 @@ public class EnWiktionaryXmlParser {
 
 
   int foreignCount = 0;
-  private void doForeignPartOfSpeech(final String lang, String title, final String posHeading, final int posDepth, WikiTokenizer wikiTokenizer) {
+  private void doForeignPartOfSpeech(final String lang, String posHeading, final int posDepth, WikiTokenizer wikiTokenizer) {
     if (++foreignCount % 1000 == 0) {
       LOG.info("***" + lang + ", " + title + ", pos=" + posHeading + ", foreignCount=" + foreignCount);
     }
@@ -489,8 +413,10 @@ public class EnWiktionaryXmlParser {
         // I think just under fare.  But then we need a way to link to the entry (actually the row, since entries doesn't show up!)
         // for the conjugation table from "fa".
         // Would like to be able to link to a lang#token.
-        if (isGender(name)) {
-          appendGender(foreignBuilder, name, args);
+        if (FunctionCallbacksDefault.DEFAULT.get(name) instanceof FunctionCallbacksDefault.Gender) {
+          // TODO: Fix hack!
+          appendAndIndexWikiCallback.reset(foreignBuilder, null);
+          FunctionCallbacksDefault.DEFAULT.get(name).onWikiFunction(wikiTokenizer, name, args, namedArgs, this, appendAndIndexWikiCallback);
         } else if (name.equals("wikipedia")) {
           namedArgs.remove("lang");
           if (args.size() > 1 || !namedArgs.isEmpty()) {
@@ -506,7 +432,7 @@ public class EnWiktionaryXmlParser {
           // Ignore these.
         } else if (name.equals("infl") || name.equals("head")) {
           // See: http://en.wiktionary.org/wiki/Template:infl
-          final String langCode = get(args, 0);
+          final String langCode = ListUtil.get(args, 0);
           String head = namedArgs.remove("head");
           if (head == null) {
             head = namedArgs.remove("title"); // Bug
@@ -546,13 +472,13 @@ public class EnWiktionaryXmlParser {
             wordForms.add(tr);
           }
     
-          final String pos = get(args, 1);
+          final String pos = ListUtil.get(args, 1);
           if (pos != null) {
             foreignBuilder.append(" (").append(pos).append(")");
           }
           for (int i = 2; i < args.size(); i += 2) {
-            final String inflName = get(args, i);
-            final String inflValue = get(args, i + 1);
+            final String inflName = ListUtil.get(args, i);
+            final String inflValue = ListUtil.get(args, i + 1);
             foreignBuilder.append(", ").append(WikiTokenizer.toPlainText(inflName));
             if (inflValue != null && inflValue.length() > 0) {
               foreignBuilder.append(": ").append(WikiTokenizer.toPlainText(inflValue));
@@ -566,10 +492,10 @@ public class EnWiktionaryXmlParser {
           }
         } else if (name.equals("it-noun")) {
           titleAppended = true;
-          final String base = get(args, 0);
-          final String gender = get(args, 1);
-          final String singular = base + get(args, 2);
-          final String plural = base + get(args, 3);
+          final String base = ListUtil.get(args, 0);
+          final String gender = ListUtil.get(args, 1);
+          final String singular = base + ListUtil.get(args, 2, null);
+          final String plural = base + ListUtil.get(args, 3, null);
           foreignBuilder.append(String.format(" %s {%s}, %s {pl}", singular, gender, plural, plural));
           wordForms.add(singular);
           wordForms.add(plural);
@@ -645,7 +571,13 @@ public class EnWiktionaryXmlParser {
       );
 
   // Might only want to remove "lang" if it's equal to "zh", for example.
-  static final Set<String> USELESS_WIKI_ARGS = new LinkedHashSet<String>(Arrays.asList("lang", "sc", "sort", "cat"));
+  static final Set<String> USELESS_WIKI_ARGS = new LinkedHashSet<String>(
+      Arrays.asList(
+          "lang",
+          "sc",
+          "sort",
+          "cat",
+          "xs"));
 
   private void doForeignListItem(final String foreignText, String title, final Collection<String> forms, final ListSection listSection) {
     
@@ -667,29 +599,29 @@ public class EnWiktionaryXmlParser {
       // TODO handle form of....
       if (englishTokenizer.isPlainText()) {
         englishBuilder.append(englishTokenizer.token());
-        enIndexBuilder.addEntryWithString(indexedEntry, englishTokenizer.token(), EntryTypeName.WIKTIONARY_ENGLISH_DEF);
+        enIndexBuilder.addEntryWithStringNoSingle(indexedEntry, englishTokenizer.token(), EntryTypeName.WIKTIONARY_ENGLISH_DEF);
       } else if (englishTokenizer.isWikiLink()) {
         final String text = englishTokenizer.wikiLinkText();
         final String link = englishTokenizer.wikiLinkDest();
         if (link != null) {
           if (link.contains("#English")) {
             englishBuilder.append(text);
-            enIndexBuilder.addEntryWithString(indexedEntry, text, EntryTypeName.WIKTIONARY_ENGLISH_DEF_WIKI_LINK);
+            enIndexBuilder.addEntryWithStringNoSingle(indexedEntry, text, EntryTypeName.WIKTIONARY_ENGLISH_DEF_WIKI_LINK);
           } else if (link.contains("#") && this.langPattern.matcher(link).find()) {
             englishBuilder.append(text);
-            foreignIndexBuilder.addEntryWithString(indexedEntry, text, EntryTypeName.WIKTIONARY_ENGLISH_DEF_OTHER_LANG);
+            foreignIndexBuilder.addEntryWithStringNoSingle(indexedEntry, text, EntryTypeName.WIKTIONARY_ENGLISH_DEF_OTHER_LANG);
           } else if (link.equals("plural")) {
             englishBuilder.append(text);
           } else {
             //LOG.warning("Special link: " + englishTokenizer.token());
-            enIndexBuilder.addEntryWithString(indexedEntry, text, EntryTypeName.WIKTIONARY_ENGLISH_DEF_WIKI_LINK);
+            enIndexBuilder.addEntryWithStringNoSingle(indexedEntry, text, EntryTypeName.WIKTIONARY_ENGLISH_DEF_WIKI_LINK);
             englishBuilder.append(text);
           }
         } else {
           // link == null
           englishBuilder.append(text);
           if (!UNINDEXED_WIKI_TEXT.matcher(text).find()) {
-            enIndexBuilder.addEntryWithString(indexedEntry, text, EntryTypeName.WIKTIONARY_ENGLISH_DEF_WIKI_LINK);
+            enIndexBuilder.addEntryWithStringNoSingle(indexedEntry, text, EntryTypeName.WIKTIONARY_ENGLISH_DEF_WIKI_LINK);
           }
         }
       } else if (englishTokenizer.isFunction()) {
@@ -706,23 +638,23 @@ public class EnWiktionaryXmlParser {
             name.contains("plural of")) {
           String formName = name;
           if (name.equals("form of")) {
-            formName = remove(args, 0, null);
+            formName = ListUtil.remove(args, 0, null);
           }
           if (formName == null) {
             LOG.warning("Missing form name: " + title);
             formName = "form of";
           }
-          String baseForm = get(args, 1, "");
+          String baseForm = ListUtil.get(args, 1, "");
           if ("".equals(baseForm)) {
-            baseForm = get(args, 0, null);
-            remove(args, 1, "");
+            baseForm = ListUtil.get(args, 0, null);
+            ListUtil.remove(args, 1, "");
           } else {
-            remove(args, 0, null);
+            ListUtil.remove(args, 0, null);
           }
           namedArgs.keySet().removeAll(USELESS_WIKI_ARGS);
           WikiTokenizer.appendFunction(englishBuilder.append("{"), formName, args, namedArgs).append("}");
           if (baseForm != null) {
-            foreignIndexBuilder.addEntryWithString(indexedEntry, baseForm, EntryTypeName.WIKTIONARY_BASE_FORM_SINGLE, EntryTypeName.WIKTIONARY_BASE_FORM_MULTI);
+            foreignIndexBuilder.addEntryWithString(indexedEntry, baseForm, EntryTypeName.WIKTIONARY_BASE_FORM_MULTI);
           } else {
             // null baseForm happens in Danish.
             LOG.warning("Null baseform: " + title);
@@ -733,9 +665,9 @@ public class EnWiktionaryXmlParser {
           englishBuilder.append("").append(args.get(1));
           final String langCode = args.get(0);
           if ("en".equals(langCode)) {
-            enIndexBuilder.addEntryWithString(indexedEntry, args.get(1), EntryTypeName.WIKTIONARY_ENGLISH_DEF_WIKI_LINK);
+            enIndexBuilder.addEntryWithStringNoSingle(indexedEntry, args.get(1), EntryTypeName.WIKTIONARY_ENGLISH_DEF_WIKI_LINK);
           } else {
-            foreignIndexBuilder.addEntryWithString(indexedEntry, args.get(1), EntryTypeName.WIKTIONARY_ENGLISH_DEF_OTHER_LANG);
+            foreignIndexBuilder.addEntryWithStringNoSingle(indexedEntry, args.get(1), EntryTypeName.WIKTIONARY_ENGLISH_DEF_OTHER_LANG);
           }
           // TODO: transliteration
           
@@ -766,9 +698,9 @@ public class EnWiktionaryXmlParser {
     if (english.length() > 0) {
       final Pair pair = new Pair(english, trim(foreignText), this.swap);
       pairEntry.pairs.add(pair);
-      foreignIndexBuilder.addEntryWithString(indexedEntry, title, EntryTypeName.WIKTIONARY_TITLE_SINGLE, EntryTypeName.WIKTIONARY_TITLE_MULTI);
+      foreignIndexBuilder.addEntryWithString(indexedEntry, title, EntryTypeName.WIKTIONARY_TITLE_MULTI);
       for (final String form : forms) {
-        foreignIndexBuilder.addEntryWithString(indexedEntry, form, EntryTypeName.WIKTIONARY_INFLECTD_FORM_SINGLE, EntryTypeName.WIKTIONARY_INFLECTED_FORM_MULTI);
+        foreignIndexBuilder.addEntryWithString(indexedEntry, form, EntryTypeName.WIKTIONARY_INFLECTED_FORM_MULTI);
       }
     }
     
@@ -843,13 +775,13 @@ public class EnWiktionaryXmlParser {
       if (wikiTokenizer.isPlainText()) {
         builder.append(wikiTokenizer.token());
         if (indexBuilder != null) {
-          indexBuilder.addEntryWithString(indexedEntry, wikiTokenizer.token(), EntryTypeName.WIKTIONARY_EXAMPLE);
+          indexBuilder.addEntryWithStringNoSingle(indexedEntry, wikiTokenizer.token(), EntryTypeName.WIKTIONARY_EXAMPLE);
         }
       } else if (wikiTokenizer.isWikiLink()) {
         final String text = wikiTokenizer.wikiLinkText().replaceAll("'", ""); 
         builder.append(text);
         if (indexBuilder != null) {
-          indexBuilder.addEntryWithString(indexedEntry, text, EntryTypeName.WIKTIONARY_EXAMPLE);
+          indexBuilder.addEntryWithStringNoSingle(indexedEntry, text, EntryTypeName.WIKTIONARY_EXAMPLE);
         }
       } else if (wikiTokenizer.isFunction()) {
         builder.append(wikiTokenizer.token());
index e9c9fb42c4018849171f0111deca0d7e0cb7458f..d908c333bcd88cec971cc31b08c63c5d321cf63e 100644 (file)
@@ -2,79 +2,17 @@ package com.hughes.android.dictionary.parser.enwiktionary;
 
 import java.util.List;
 import java.util.Map;
-import java.util.logging.Logger;
 
 import com.hughes.android.dictionary.parser.WikiTokenizer;
-import com.hughes.util.ListUtil;
 
 public interface FunctionCallback {
   
-  static final Logger LOG = Logger.getLogger(EnWiktionaryXmlParser.class.getName());
-  
   boolean onWikiFunction(
+      final WikiTokenizer tokenizer, 
       final String name,
       final List<String> args, 
       final Map<String,String> namedArgs,
       final EnWiktionaryXmlParser parser,
-      final AppendAndIndexWikiCallback appendAndIndexWikiCallback,
-      final String title);
-
-  static final class TranslationCallback implements FunctionCallback {
-    @Override
-    public boolean onWikiFunction(final String name, final List<String> args,
-        final Map<String, String> namedArgs, final EnWiktionaryXmlParser parser,
-        final AppendAndIndexWikiCallback appendAndIndexWikiCallback,
-        final String title) {
-
-      final String transliteration = namedArgs.remove("tr");
-      
-      if (args.size() < 2 || args.size() > 3 || namedArgs.isEmpty()) {
-        LOG.warning("{{t}} with too few args: " + ", title=" + title);
-        return false;
-      }
-      final String langCode = ListUtil.get(args, 0);
-      final String word = ListUtil.get(args, 1);
-      final String gender = ListUtil.get(args, 2);
-      
-// TODO      appendAndIndexWikiCallback we're inside translation....
-      //EntryTypeName.WIKTIONARY_TITLE_SINGLE, EntryTypeName.WIKTIONARY_TITLE_MULTI
-      new WikiTokenizer(word, false).dispatch(appendAndIndexWikiCallback);
-      
-      if (gender != null) {
-        appendAndIndexWikiCallback.builder.append(String.format(" {%s}", gender));
-      }
-      if (transliteration != null) {
-     // TODO      appendAndIndexWikiCallback we're inside translation....
-        // EntryTypeName.WIKTIONARY_TRANSLITERATION
-        appendAndIndexWikiCallback.builder.append("(tr. ");
-        new WikiTokenizer(transliteration).dispatch(appendAndIndexWikiCallback);
-        appendAndIndexWikiCallback.builder.append(")");
-      }
-      return true;
-    }
-    
-  }
-
-  // ------------------------------------------------------------------
-  
-  static final class QualifierCallback implements FunctionCallback {
-    @Override
-    public boolean onWikiFunction(final String name, final List<String> args,
-        final Map<String, String> namedArgs,
-        final EnWiktionaryXmlParser parser,
-        final AppendAndIndexWikiCallback appendAndIndexWikiCallback,
-        final String title) {
-      if (args.size() != 1 || !namedArgs.isEmpty()) {
-        LOG.warning("weird qualifier: ");
-        return false;
-      }
-      String qualifier = args.get(0);
-      // Unindexed!
-      appendAndIndexWikiCallback.builder.append("(");
-      new WikiTokenizer(qualifier, false).dispatch(appendAndIndexWikiCallback);
-      appendAndIndexWikiCallback.builder.append(")");
-      return true;
-    }
-  }
+      final AppendAndIndexWikiCallback appendAndIndexWikiCallback);
 
 }
diff --git a/src/com/hughes/android/dictionary/parser/enwiktionary/FunctionCallbacksDefault.java b/src/com/hughes/android/dictionary/parser/enwiktionary/FunctionCallbacksDefault.java
new file mode 100644 (file)
index 0000000..f9ad939
--- /dev/null
@@ -0,0 +1,253 @@
+package com.hughes.android.dictionary.parser.enwiktionary;
+
+import java.util.Arrays;
+import java.util.LinkedHashMap;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.logging.Logger;
+
+import com.hughes.android.dictionary.engine.EntryTypeName;
+import com.hughes.android.dictionary.parser.WikiTokenizer;
+import com.hughes.util.ListUtil;
+
+public final class FunctionCallbacksDefault {
+  
+  static final Logger LOG = Logger.getLogger(EnWiktionaryXmlParser.class.getName());
+  
+  static final Map<String,FunctionCallback> DEFAULT = new LinkedHashMap<String, FunctionCallback>();
+  static {
+    FunctionCallback callback = new TranslationCallback();
+    DEFAULT.put("t", callback);
+    DEFAULT.put("t+", callback);
+    DEFAULT.put("t-", callback);
+    DEFAULT.put("tø", callback);
+    DEFAULT.put("apdx-t", callback);
+    
+    DEFAULT.put("qualifier", new QualifierCallback());
+
+    callback = new EncodingCallback();
+    Set<String> encodings = new LinkedHashSet<String>(Arrays.asList(
+        "zh-ts", "zh-tsp",
+        "sd-Arab", "ku-Arab", "Arab", "unicode", "Laoo", "ur-Arab", "Thai", 
+        "fa-Arab", "Khmr", "Cyrl", "IPAchar", "ug-Arab", "ko-inline", 
+        "Jpan", "Kore", "Hebr", "rfscript", "Beng", "Mong", "Knda", "Cyrs",
+        "yue-tsj", "Mlym", "Tfng", "Grek", "yue-yue-j"));
+    for (final String encoding : encodings) {
+      DEFAULT.put(encoding, callback);
+    }
+    
+    callback = new Gender();
+    DEFAULT.put("m", callback);
+    DEFAULT.put("f", callback);
+    DEFAULT.put("n", callback);
+    DEFAULT.put("p", callback);
+    DEFAULT.put("g", callback);
+
+    DEFAULT.put("l", new l());
+    DEFAULT.put("italbrac", new italbrac());
+    DEFAULT.put("gloss", new gloss());
+
+    callback = new AppendArg0();
+    DEFAULT.put("term", callback);
+
+    callback = new Ignore();
+    DEFAULT.put("trreq", callback);
+    DEFAULT.put("t-image", callback);
+
+    DEFAULT.put("not used", new not_used());
+  }
+
+  // ------------------------------------------------------------------
+
+  static final class TranslationCallback implements FunctionCallback {
+    @Override
+    public boolean onWikiFunction(final WikiTokenizer wikiTokenizer, final String name, final List<String> args,
+        final Map<String, String> namedArgs, final EnWiktionaryXmlParser parser,
+        final AppendAndIndexWikiCallback appendAndIndexWikiCallback) {
+
+      final String transliteration = namedArgs.remove("tr");
+      namedArgs.keySet().removeAll(EnWiktionaryXmlParser.USELESS_WIKI_ARGS);
+      if (args.size() < 2) {
+        LOG.warning("{{t...}} with wrong args: title=" + parser.title);
+        return false;
+      }
+      final String langCode = ListUtil.get(args, 0);
+      final String word = ListUtil.get(args, 1);
+      final String gender = ListUtil.get(args, 2);
+      // TODO: deal with second (and third...) gender, and alt.
+      
+      appendAndIndexWikiCallback.dispatch(word, EntryTypeName.WIKTIONARY_TITLE_MULTI);
+      
+      if (gender != null) {
+        appendAndIndexWikiCallback.builder.append(String.format(" {%s}", gender));
+      }
+      if (transliteration != null) {
+        appendAndIndexWikiCallback.builder.append(" (tr. ");
+        appendAndIndexWikiCallback.dispatch(transliteration, EntryTypeName.WIKTIONARY_TRANSLITERATION);
+        appendAndIndexWikiCallback.builder.append(")");
+      }
+      return true;
+    }
+    
+  }
+
+  // ------------------------------------------------------------------
+  
+  static final class QualifierCallback implements FunctionCallback {
+    @Override
+    public boolean onWikiFunction(final WikiTokenizer wikiTokenizer, final String name, final List<String> args,
+        final Map<String, String> namedArgs,
+        final EnWiktionaryXmlParser parser,
+        final AppendAndIndexWikiCallback appendAndIndexWikiCallback) {
+      if (args.size() != 1 || !namedArgs.isEmpty()) {
+        LOG.warning("weird qualifier: ");
+        return false;
+      }
+      String qualifier = args.get(0);
+      appendAndIndexWikiCallback.builder.append("(");
+      appendAndIndexWikiCallback.dispatch(qualifier, null);
+      appendAndIndexWikiCallback.builder.append(")");
+      return true;
+    }
+  }
+
+  // ------------------------------------------------------------------
+  
+  static final class EncodingCallback implements FunctionCallback {
+    @Override
+    public boolean onWikiFunction(final WikiTokenizer wikiTokenizer, final String name, final List<String> args,
+        final Map<String, String> namedArgs,
+        final EnWiktionaryXmlParser parser,
+        final AppendAndIndexWikiCallback appendAndIndexWikiCallback) {
+      if (args.size() != 1 || !namedArgs.isEmpty()) {
+        LOG.warning("weird encoding: " + wikiTokenizer.token());
+      }
+      final String wikiText = args.get(0);
+      appendAndIndexWikiCallback.dispatch(wikiText, appendAndIndexWikiCallback.entryTypeName);
+      return true;
+    }
+  }
+
+  // ------------------------------------------------------------------
+  
+  static final class Gender implements FunctionCallback {
+    @Override
+    public boolean onWikiFunction(final WikiTokenizer wikiTokenizer, final String name, final List<String> args,
+        final Map<String, String> namedArgs,
+        final EnWiktionaryXmlParser parser,
+        final AppendAndIndexWikiCallback appendAndIndexWikiCallback) {
+      if (!namedArgs.isEmpty()) {
+        return false;
+      }
+      appendAndIndexWikiCallback.builder.append("{");
+      appendAndIndexWikiCallback.builder.append(name);
+      for (int i = 0; i < args.size(); ++i) {
+        appendAndIndexWikiCallback.builder.append("|").append(args.get(i));
+      }
+      appendAndIndexWikiCallback.builder.append("}");
+      return true;
+    }
+  }
+
+  // ------------------------------------------------------------------
+  
+  static final class l implements FunctionCallback {
+    @Override
+    public boolean onWikiFunction(final WikiTokenizer wikiTokenizer, final String name, final List<String> args,
+        final Map<String, String> namedArgs,
+        final EnWiktionaryXmlParser parser,
+        final AppendAndIndexWikiCallback appendAndIndexWikiCallback) {
+      // TODO: rewrite this!
+      // encodes text in various langs.
+      // lang is arg 0.
+      // TODO: set that we're inside L
+      // EntryTypeName.WIKTIONARY_TRANSLATION_OTHER_TEXT
+      WikiTokenizer.dispatch(args.get(1), false, appendAndIndexWikiCallback);
+      // TODO: transliteration
+      return true;
+    }
+  }
+
+  // ------------------------------------------------------------------
+  
+  static final class AppendArg0 implements FunctionCallback {
+    @Override
+    public boolean onWikiFunction(final WikiTokenizer wikiTokenizer, final String name, final List<String> args,
+        final Map<String, String> namedArgs,
+        final EnWiktionaryXmlParser parser,
+        final AppendAndIndexWikiCallback appendAndIndexWikiCallback) {
+      if (args.size() != 1 || !namedArgs.isEmpty()) {
+        return false;
+      }
+      appendAndIndexWikiCallback.dispatch(args.get(0), EntryTypeName.WIKTIONARY_TRANSLATION_OTHER_TEXT);
+      // TODO: transliteration
+      return true;
+    }
+  }
+
+  // ------------------------------------------------------------------
+  
+  static final class italbrac implements FunctionCallback {
+    @Override
+    public boolean onWikiFunction(final WikiTokenizer wikiTokenizer, final String name, final List<String> args,
+        final Map<String, String> namedArgs,
+        final EnWiktionaryXmlParser parser,
+        final AppendAndIndexWikiCallback appendAndIndexWikiCallback) {
+      if (args.size() != 1 || !namedArgs.isEmpty()) {
+        return false;
+      }
+      appendAndIndexWikiCallback.builder.append("[");
+      appendAndIndexWikiCallback.dispatch(args.get(0), EntryTypeName.WIKTIONARY_TRANSLATION_OTHER_TEXT);
+      appendAndIndexWikiCallback.builder.append("]");
+      return true;
+    }
+  }
+
+  // ------------------------------------------------------------------
+  
+  static final class gloss implements FunctionCallback {
+    @Override
+    public boolean onWikiFunction(final WikiTokenizer wikiTokenizer, final String name, final List<String> args,
+        final Map<String, String> namedArgs,
+        final EnWiktionaryXmlParser parser,
+        final AppendAndIndexWikiCallback appendAndIndexWikiCallback) {
+      if (args.size() != 1 || !namedArgs.isEmpty()) {
+        return false;
+      }
+      appendAndIndexWikiCallback.builder.append("[");
+      appendAndIndexWikiCallback.dispatch(args.get(0), EntryTypeName.WIKTIONARY_TRANSLATION_OTHER_TEXT);
+      appendAndIndexWikiCallback.builder.append("]");
+      return true;
+    }
+  }
+  
+  // ------------------------------------------------------------------
+  
+  static final class Ignore implements FunctionCallback {
+    @Override
+    public boolean onWikiFunction(final WikiTokenizer wikiTokenizer, final String name, final List<String> args,
+        final Map<String, String> namedArgs,
+        final EnWiktionaryXmlParser parser,
+        final AppendAndIndexWikiCallback appendAndIndexWikiCallback) {
+      return true;
+    }
+  }
+
+  // ------------------------------------------------------------------
+  
+  static final class not_used implements FunctionCallback {
+    @Override
+    public boolean onWikiFunction(final WikiTokenizer wikiTokenizer, final String name, final List<String> args,
+        final Map<String, String> namedArgs,
+        final EnWiktionaryXmlParser parser,
+        final AppendAndIndexWikiCallback appendAndIndexWikiCallback) {
+      appendAndIndexWikiCallback.builder.append("(not used)");
+      return true;
+    }
+  }
+
+  
+
+}
index 0aa3c01ed344ff9db648d2ea1c046e30868e2a3b..a2fcb4c49d163a0d0dc802892a1a98485fb49dcd 100644 (file)
@@ -3875,7 +3875,7 @@ Index: de de->en
 ===Zigarette===
   Zigarette {{de-noun|g=f|plural=Zigaretten}} :: cigarette
 ===zit===
-  (Middle High German) zīt (noun) {{g|gmh}} :: time
+  (Middle High German) zīt (noun) {g|gmh} :: time
 ===zoom===
   zoom :: {{de-verb form of|zoomen|i|s}}
   zoom :: {colloquial} {{de-verb form of|zoomen|1|s|g}}
@@ -9622,7 +9622,7 @@ Index: en en->de
 ===Tigris===
   Tigris (proper noun) :: Tigris
 ===time===
-  (Middle High German) zīt (noun) {{g|gmh}} :: time
+  (Middle High German) zīt (noun) {g|gmh} :: time
   Zeit {{de-noun|g=f|plural=Zeiten}} :: time
   ab (preposition) :: Beginning at that time or location; from.
     ab heute verfügbar (available from today on) :: --
index b9d84e85100e35f7dc46ee9e0a09d6708ee2d39d..52295982c0a1e50f7cb6a919c2d4c6576cda9bae 100644 (file)
@@ -823,7 +823,7 @@ Index: it it->en
   Caserta {{it-proper noun|g=f}} :: Caserta {{gloss|province}}
   Caserta {{it-proper noun|g=f}} :: Caserta {{gloss|town}}
 ===cast===
-  cast (noun) {{g|inv}} :: cast {{gloss|people performing a movie}}
+  cast (noun) {g|inv} :: cast {{gloss|people performing a movie}}
 ===castrare===
   castrato {{it-pp|castrat}} :: {past participle of|castrare}
 ===castrati===
@@ -4850,7 +4850,7 @@ Index: en en->it
 ===cases===
   seme {m}, semi {pl} :: bean (in some cases)
 ===cast===
-  cast (noun) {{g|inv}} :: cast {{gloss|people performing a movie}}
+  cast (noun) {g|inv} :: cast {{gloss|people performing a movie}}
 ===castrated===
   castrato {{it-adj|castrat}} :: castrated, gelded, neutered
 ===Catania===
index 08bbbc27f1d1d8d0184b4b446b209eca8f6cb2cd..8678e798908b4da47bc4ad0e9f22d109431d8951 100644 (file)
@@ -62,7 +62,7 @@ Index: zh zh->en
 ===bai===
   打败 (tr. da bai), 击倒 (tr. ji dao) :: abate (to bring down a person physically or mentally) (verb)
 ===白===
-  [[白]][[晝]] :: day (rotational period of a planet) (noun)
+  白晝 :: day (rotational period of a planet) (noun)
 ===bǎikē===
   百科全書, 百科全书 (tr. bǎikē quánshū) :: encyclopedia (comprehensive reference with articles on a range of topic) (noun)
 ===bǎikēquánshū===
@@ -164,13 +164,13 @@ Index: zh zh->en
 ===波蘭語===
   波蘭語, 波兰语 (tr. Bōlán yǔ) :: Polish (the language of Poland) (proper noun)
 ===部===
-  [[腹]][[部]] (fùbù) :: abdomen (the posterior section of an arthopod's body) (noun)
+  腹部 (fùbù) :: abdomen (the posterior section of an arthopod's body) (noun)
 ===bùguǎn===
-  不管怎樣, 不管怎样 (tr. [[bùguǎn]] [[zěnyàng]]) :: whatever (no matter which; for any) (determiner)
+  不管怎樣, 不管怎样 (tr. bùguǎn zěnyàng) :: whatever (no matter which; for any) (determiner)
 ===不管怎样===
-  不管怎樣, 不管怎样 (tr. [[bùguǎn]] [[zěnyàng]]) :: whatever (no matter which; for any) (determiner)
+  不管怎樣, 不管怎样 (tr. bùguǎn zěnyàng) :: whatever (no matter which; for any) (determiner)
 ===不管怎樣===
-  不管怎樣, 不管怎样 (tr. [[bùguǎn]] [[zěnyàng]]) :: whatever (no matter which; for any) (determiner)
+  不管怎樣, 不管怎样 (tr. bùguǎn zěnyàng) :: whatever (no matter which; for any) (determiner)
 ===bùkěquánxìn===
   (to take with a grain of salt; not to be believed literally) 不可全信 (tr. bùkěquánxìn) :: grain of salt (with common sense and skepticism) (noun)
 ===不可全信===
@@ -181,6 +181,10 @@ Index: zh zh->en
   不可數, 不可数 (tr. bùkěshǔ) :: uncountable (linguistics: about a noun which cannot be counted) (adjective)
 ===不可數===
   不可數, 不可数 (tr. bùkěshǔ) :: uncountable (linguistics: about a noun which cannot be counted) (adjective)
+===不了===
+  會, 会 (tr. huì), 能 (tr. néng), (the ability/inability to achieve a result is expressed with various verb complements, e.g. -得了 (tr. -deliǎo)/-不了 (tr. -buliǎo)) :: can (to be able) (verb)
+===buliǎo===
+  會, 会 (tr. huì), 能 (tr. néng), (the ability/inability to achieve a result is expressed with various verb complements, e.g. -得了 (tr. -deliǎo)/-不了 (tr. -buliǎo)) :: can (to be able) (verb)
 ===bun2===
   (Cantonese) 日本 (tr. yat6 bun2) :: Japan (A Far East country in Asia) (proper noun)
 ===buōng===
@@ -463,12 +467,12 @@ Index: zh zh->en
   假 (tr. jiǎ de-), 虛擬, 虚拟 (tr. xūnǐ de-) :: pseudo- (not genuine) (prefix)
   荷蘭, 荷兰 (tr. Hélán-de) :: Dutch (of the Netherlands, people, or language) (adjective)
   荷蘭, 荷兰 (tr. Hélán de) :: Netherlands (pertaining to the Netherlands) (adjective)
-  [[自由]]的 (zìyóu de) :: free (not imprisoned) (adjective)
-  [[免]][[費]]的 (miǎnfèi de) :: free (obtainable without payment) (adjective)
-  [[自由]]的 (zìyóu de) :: free (unconstrained) (adjective)
-  [[通暢]]的 (tōngchàng de), [[順暢]]的 (shùnchàng de) :: free (unobstructed) (adjective)
-  [[自由]]的 (zìyóu de) :: free (without obligations) (adjective)
-  [[自由]]的 (zìyóu de) :: free (software: with very few limitations on distribution or improvement) (adjective)
+  自由的 (zìyóu de) :: free (not imprisoned) (adjective)
+  免費的 (miǎnfèi de) :: free (obtainable without payment) (adjective)
+  自由的 (zìyóu de) :: free (unconstrained) (adjective)
+  通暢的 (tōngchàng de), 順暢的 (shùnchàng de) :: free (unobstructed) (adjective)
+  自由的 (zìyóu de) :: free (without obligations) (adjective)
+  自由的 (zìyóu de) :: free (software: with very few limitations on distribution or improvement) (adjective)
   把某東西看作是無價值的, 把某东西看作是无价值的 (bǎ mǒu dōngxi kànzuò shì wú jiàzhí de) :: floccinaucinihilipilification (act or habit of describing or regarding something as unimportant) (noun)
   (Simplified) 英语的 (Yīngyǔ de), 英文的 (Yīngwén de) :: English (of or pertaining to the English language) (adjective)
   (Traditional) 英語的 (Yīngyǔ de), 英文的 (Yīngwén de) :: English (of or pertaining to the English language) (adjective)
@@ -481,12 +485,12 @@ Index: zh zh->en
   (Simplified) 英语的 (Yīngyǔ de), 英文的 (Yīngwén de) :: English (of or pertaining to the English language) (adjective)
   (Simplified) 英格兰的 (Yīnggélán de) :: English (of or pertaining to England) (adjective)
   可接受的 (kě jiēshòu de) :: acceptable (capable, worthy or sure of being accepted) (adjective)
-  [[自由]]的 (zìyóu de) :: free (not imprisoned) (adjective)
-  [[免]][[費]]的 (miǎnfèi de) :: free (obtainable without payment) (adjective)
-  [[自由]]的 (zìyóu de) :: free (unconstrained) (adjective)
-  [[通暢]]的 (tōngchàng de), [[順暢]]的 (shùnchàng de) :: free (unobstructed) (adjective)
-  [[自由]]的 (zìyóu de) :: free (without obligations) (adjective)
-  [[自由]]的 (zìyóu de) :: free (software: with very few limitations on distribution or improvement) (adjective)
+  自由的 (zìyóu de) :: free (not imprisoned) (adjective)
+  免費的 (miǎnfèi de) :: free (obtainable without payment) (adjective)
+  自由的 (zìyóu de) :: free (unconstrained) (adjective)
+  通暢的 (tōngchàng de), 順暢的 (shùnchàng de) :: free (unobstructed) (adjective)
+  自由的 (zìyóu de) :: free (without obligations) (adjective)
+  自由的 (zìyóu de) :: free (software: with very few limitations on distribution or improvement) (adjective)
   (Traditional) 英語的 (Yīngyǔ de), 英文的 (Yīngwén de) :: English (of or pertaining to the English language) (adjective)
   (Traditional) 英格蘭的 :: English (of or pertaining to England) (adjective)
   (measure words are used), (adjectives with) 的 :: one (impersonal pronoun) (pronoun)
@@ -502,10 +506,14 @@ Index: zh zh->en
   德國人, 德国人 (tr. Déguórén) :: German (German person) (noun)
 ===德國人===
   德國人, 德国人 (tr. Déguórén) :: German (German person) (noun)
+===得了===
+  會, 会 (tr. huì), 能 (tr. néng), (the ability/inability to achieve a result is expressed with various verb complements, e.g. -得了 (tr. -deliǎo)/-不了 (tr. -buliǎo)) :: can (to be able) (verb)
 ===délì===
   能幹, 能干 (tr. nénggàn), 得力 (tr. délì) :: able (skillful) (adjective)
 ===得力===
   能幹, 能干 (tr. nénggàn), 得力 (tr. délì) :: able (skillful) (adjective)
+===deliǎo===
+  會, 会 (tr. huì), 能 (tr. néng), (the ability/inability to achieve a result is expressed with various verb complements, e.g. -得了 (tr. -deliǎo)/-不了 (tr. -buliǎo)) :: can (to be able) (verb)
 ===děngjià===
   等價交換, 等价交换 (tr. děngjià jiāohuàn) :: quid pro quo (this for that) (noun)
 ===等价交换===
@@ -546,20 +554,20 @@ Index: zh zh->en
 ===第二===
   第二 (tr. dì'èr) :: second (second (numeral)) (adjective)
 ===dìng===
-  定意 (dìngyì); [[釋]][[義]] (shìyì) :: definition (statement of the meaning of a word or word group or a sign or symbol) (noun)
-  [[定]][[意]] (dìngyì) :: definition (statement expressing the essential nature of something) (noun)
-  [[下]][[定]][[意]] (xiàdìngyì) :: definition (action or process of defining) (noun)
-  [[下]][[定]][[意]] (xiàdìngyì) :: definition (act of defining) (noun)
-  [[定]][[意]] (dìngyì) :: definition (product of defining) (noun)
-  [[下]][[定]][[意]] (xiàdìngyì) :: definition (action or power of describing, explaining, or making definite) (noun)
+  定意 (dìngyì); 釋義 (shìyì) :: definition (statement of the meaning of a word or word group or a sign or symbol) (noun)
+  定意 (dìngyì) :: definition (statement expressing the essential nature of something) (noun)
+  下定意 (xiàdìngyì) :: definition (action or process of defining) (noun)
+  下定意 (xiàdìngyì) :: definition (act of defining) (noun)
+  定意 (dìngyì) :: definition (product of defining) (noun)
+  下定意 (xiàdìngyì) :: definition (action or power of describing, explaining, or making definite) (noun)
 ===定===
-  [[定]][[意]] (dìngyì) :: definition (statement expressing the essential nature of something) (noun)
-  [[下]][[定]][[意]] (xiàdìngyì) :: definition (action or process of defining) (noun)
-  [[下]][[定]][[意]] (xiàdìngyì) :: definition (act of defining) (noun)
-  [[定]][[意]] (dìngyì) :: definition (product of defining) (noun)
-  [[下]][[定]][[意]] (xiàdìngyì) :: definition (action or power of describing, explaining, or making definite) (noun)
+  定意 (dìngyì) :: definition (statement expressing the essential nature of something) (noun)
+  下定意 (xiàdìngyì) :: definition (action or process of defining) (noun)
+  下定意 (xiàdìngyì) :: definition (act of defining) (noun)
+  定意 (dìngyì) :: definition (product of defining) (noun)
+  下定意 (xiàdìngyì) :: definition (action or power of describing, explaining, or making definite) (noun)
 ===定意===
-  定意 (dìngyì); [[釋]][[義]] (shìyì) :: definition (statement of the meaning of a word or word group or a sign or symbol) (noun)
+  定意 (dìngyì); 釋義 (shìyì) :: definition (statement of the meaning of a word or word group or a sign or symbol) (noun)
 ===diū===
   丟棄, 丢弃 (diū qì) :: can (to discard) (verb)
 ===diu2===
@@ -599,9 +607,9 @@ Index: zh zh->en
 ===東西===
   把某東西看作是無價值的, 把某东西看作是无价值的 (bǎ mǒu dōngxi kànzuò shì wú jiàzhí de) :: floccinaucinihilipilification (act or habit of describing or regarding something as unimportant) (noun)
 ===dù===
-  [[清晰]][[度]] (qīngxīdù) :: definition (bodybuilding: the degree to which individual muscles are distinct) (noun)
+  清晰度 (qīngxīdù) :: definition (bodybuilding: the degree to which individual muscles are distinct) (noun)
 ===度===
-  [[清晰]][[度]] (qīngxīdù) :: definition (bodybuilding: the degree to which individual muscles are distinct) (noun)
+  清晰度 (qīngxīdù) :: definition (bodybuilding: the degree to which individual muscles are distinct) (noun)
 ===duan===
   (Traditional Chinese) 中斷 (tr. zhong duan) :: abort (to cause a premature termination) (verb)
 ===duānkǒu===
@@ -741,7 +749,7 @@ Index: zh zh->en
 ===fei===
   废除 (tr. fei chu) :: abate (to be defeated) (verb)
 ===費===
-  [[免]][[費]]的 (miǎnfèi de) :: free (obtainable without payment) (adjective)
+  免費的 (miǎnfèi de) :: free (obtainable without payment) (adjective)
 ===废除===
   废除 (tr. fei chu) :: abate (to be defeated) (verb)
 ===fèihuà===
@@ -782,12 +790,12 @@ Index: zh zh->en
   腹部 (tr. fùbù), 腹 (tr. fù) :: abdomen (belly) (noun)
 ===腹===
   腹部 (tr. fùbù), 腹 (tr. fù) :: abdomen (belly) (noun)
-  [[腹]][[部]] (fùbù) :: abdomen (the posterior section of an arthopod's body) (noun)
+  腹部 (fùbù) :: abdomen (the posterior section of an arthopod's body) (noun)
 ===fu3===
   (Cantonese) 副詞 (tr. fu3 ci4) :: adverb (lexical category) (noun)
 ===fùbù===
   腹部 (tr. fùbù), 腹 (tr. fù) :: abdomen (belly) (noun)
-  [[腹]][[部]] (fùbù) :: abdomen (the posterior section of an arthopod's body) (noun)
+  腹部 (fùbù) :: abdomen (the posterior section of an arthopod's body) (noun)
 ===腹部===
   腹部 (tr. fùbù), 腹 (tr. fù) :: abdomen (belly) (noun)
 ===fùcí===
@@ -1047,7 +1055,7 @@ Index: zh zh->en
   棕色 (tr. zōngsè), 褐色 (tr. hèsè) :: brown (colour) (noun)
   褐色 (tr. hèsè), 棕色 (tr. zōngsè), (coffee colour) 咖啡色 (tr. kāfēisè) :: brown (having brown colour) (adjective)
 ===héshì===
-  無論什麼, 无论什么 (tr. [[wúlùn]] [[shénme]]), 無論何事, 无论何事 (tr. [[wúlùn]] [[héshì]]) :: whatever (anything) (determiner)
+  無論什麼, 无论什么 (tr. wúlùn shénme), 無論何事, 无论何事 (tr. wúlùn héshì) :: whatever (anything) (determiner)
 ===hljids===
   (Old Chinese) 亖 (tr. *hljids) :: four (the cardinal number 4) (cardinal number)
 ===Hò===
@@ -1079,16 +1087,16 @@ Index: zh zh->en
   化身 (tr. huàshēn) :: avatar (The physical embodiment of an idea or concept; a personification) (noun)
 ===huì===
   能 (tr. néng), 會, 会 (tr. huì) :: able (permitted to) (adjective)
-  會, 会 (tr. huì), 能 (tr. néng), (the ability/inability to achieve a result is expressed with various verb complements, e.g. -{{t|zh|得了|tr=-deliǎo|sc=Hani}}/-{{t|zh|不了|tr=-buliǎo|sc=Hani}}) :: can (to be able) (verb)
+  會, 会 (tr. huì), 能 (tr. néng), (the ability/inability to achieve a result is expressed with various verb complements, e.g. -得了 (tr. -deliǎo)/-不了 (tr. -buliǎo)) :: can (to be able) (verb)
   世博會, 世博会 (tr. shìbó-huì), 世界博覽會, 世界博览会 (tr. shìjìe bólǎnhuì) :: World Exposition (a regular international exposition) (noun)
   基督教青年會 (jīdùjiào qīngnián huì) :: YMCA (Young Men's Christian Association) ({{initialism}})
   基督教女青年會 (jīdùjiào nǚqīngnián huì) :: YWCA (YWCA) ({{initialism}})
 ===会===
   能 (tr. néng), 會, 会 (tr. huì) :: able (permitted to) (adjective)
-  會, 会 (tr. huì), 能 (tr. néng), (the ability/inability to achieve a result is expressed with various verb complements, e.g. -{{t|zh|得了|tr=-deliǎo|sc=Hani}}/-{{t|zh|不了|tr=-buliǎo|sc=Hani}}) :: can (to be able) (verb)
+  會, 会 (tr. huì), 能 (tr. néng), (the ability/inability to achieve a result is expressed with various verb complements, e.g. -得了 (tr. -deliǎo)/-不了 (tr. -buliǎo)) :: can (to be able) (verb)
 ===會===
   能 (tr. néng), 會, 会 (tr. huì) :: able (permitted to) (adjective)
-  會, 会 (tr. huì), 能 (tr. néng), (the ability/inability to achieve a result is expressed with various verb complements, e.g. -{{t|zh|得了|tr=-deliǎo|sc=Hani}}/-{{t|zh|不了|tr=-buliǎo|sc=Hani}}) :: can (to be able) (verb)
+  會, 会 (tr. huì), 能 (tr. néng), (the ability/inability to achieve a result is expressed with various verb complements, e.g. -得了 (tr. -deliǎo)/-不了 (tr. -buliǎo)) :: can (to be able) (verb)
 ===会议记录===
   会议记录 :: minute (record of meeting) (noun)
 ===hùnluàn===
@@ -1336,20 +1344,20 @@ Index: zh zh->en
 ===晶狀體===
   晶狀體, 晶状体 (tr. jīngzhuàngtǐ), 水晶體, 水晶体 (tr. shuǐjīngtǐ) :: lens (anatomy: transparent crystalline structure in the eye) (noun)
 ===jīnrì===
-  今天 (tr. [[jīntiān]]), 今日 (tr. [[jīnrì]]) :: today (on the current day) (adverb)
+  今天 (tr. jīntiān), 今日 (tr. jīnrì) :: today (on the current day) (adverb)
 ===今日===
   (Cantonese) 今日 (tr. gam<sup>1</sup>yat<sup>6</sup>) :: today (on the current day) (adverb)
-  今天 (tr. [[jīntiān]]), 今日 (tr. [[jīnrì]]) :: today (on the current day) (adverb)
+  今天 (tr. jīntiān), 今日 (tr. jīnrì) :: today (on the current day) (adverb)
   (Cantonese) 今日 (gam<sup>1</sup>yat<sup>6</sup>) :: today (today (noun)) (noun)
 ===金属===
   金屬容器, 金属容器 (jīn shǔ róng qì) :: can (a tin-plate canister) (noun)
 ===金屬===
   金屬容器, 金属容器 (jīn shǔ róng qì) :: can (a tin-plate canister) (noun)
 ===jīntiān===
-  今天 (tr. [[jīntiān]]), 今日 (tr. [[jīnrì]]) :: today (on the current day) (adverb)
+  今天 (tr. jīntiān), 今日 (tr. jīnrì) :: today (on the current day) (adverb)
   今天 (jīntiān) :: today (today (noun)) (noun)
 ===今天===
-  今天 (tr. [[jīntiān]]), 今日 (tr. [[jīnrì]]) :: today (on the current day) (adverb)
+  今天 (tr. jīntiān), 今日 (tr. jīnrì) :: today (on the current day) (adverb)
   今天 (jīntiān) :: today (today (noun)) (noun)
 ===jìnyìcí===
   同義詞, 同义词 (tr. tóngyìcí), 代名詞, 代名词 (tr. dàimíngcí), (near-synonym) 近義詞, 近义词 (tr. jìnyìcí) :: synonym (word with same meaning as another) (noun)
@@ -1726,11 +1734,11 @@ Index: zh zh->en
 ===門小===
   (Cantonese) 屌/𨳒 [⿵門小] (diu2), 𨳊 [⿵門九] (gau1), 𨶙 [⿵門能] (lan2), 𨳍 [⿵門七] (cat6) :: dick (colloquial: penis) (noun)
 ===免===
-  [[免]][[費]]的 (miǎnfèi de) :: free (obtainable without payment) (adjective)
+  免費的 (miǎnfèi de) :: free (obtainable without payment) (adjective)
 ===miǎnchú===
   使免除 (shǐ miǎnchú) :: absolve (set free) (verb)
 ===miǎnfèi===
-  [[免]][[費]]的 (miǎnfèi de) :: free (obtainable without payment) (adjective)
+  免費的 (miǎnfèi de) :: free (obtainable without payment) (adjective)
 ===miǎo===
   (formal) 秒鐘, 秒钟 (tr. miǎozhōng), (informal) 秒 (tr. miǎo) :: second (SI unit of time) (noun)
 ===秒===
@@ -1835,11 +1843,11 @@ Index: zh zh->en
   內債, 内债 (tr. nèizhài) :: domestic debt (debt owed to creditors resident in the same country as debtor) (noun)
 ===néng===
   能 (tr. néng), 會, 会 (tr. huì) :: able (permitted to) (adjective)
-  會, 会 (tr. huì), 能 (tr. néng), (the ability/inability to achieve a result is expressed with various verb complements, e.g. -{{t|zh|得了|tr=-deliǎo|sc=Hani}}/-{{t|zh|不了|tr=-buliǎo|sc=Hani}}) :: can (to be able) (verb)
+  會, 会 (tr. huì), 能 (tr. néng), (the ability/inability to achieve a result is expressed with various verb complements, e.g. -得了 (tr. -deliǎo)/-不了 (tr. -buliǎo)) :: can (to be able) (verb)
   能 (tr. néng), 可以 (tr. kěyǐ) :: can (may) (verb)
 ===能===
   能 (tr. néng), 會, 会 (tr. huì) :: able (permitted to) (adjective)
-  會, 会 (tr. huì), 能 (tr. néng), (the ability/inability to achieve a result is expressed with various verb complements, e.g. -{{t|zh|得了|tr=-deliǎo|sc=Hani}}/-{{t|zh|不了|tr=-buliǎo|sc=Hani}}) :: can (to be able) (verb)
+  會, 会 (tr. huì), 能 (tr. néng), (the ability/inability to achieve a result is expressed with various verb complements, e.g. -得了 (tr. -deliǎo)/-不了 (tr. -buliǎo)) :: can (to be able) (verb)
   能 (tr. néng), 可以 (tr. kěyǐ) :: can (may) (verb)
 ===nénggàn===
   能幹, 能干 (tr. nénggàn), 得力 (tr. délì) :: able (skillful) (adjective)
@@ -1939,7 +1947,7 @@ Index: zh zh->en
   零 (líng) (numeral: 〇, 零) :: zero (cardinal number before 1, denoting nothing) (cardinal number)
   二 (tr. èr), 两 (tr. liǎng) (numeral: 貳) :: two (one plus one) (cardinal number)
   三 (sān) (numeral: 參) :: three (cardinal number 3) (cardinal number)
-  四 (tr. [[sì]]) (numeral: 肆) :: four (the cardinal number 4) (cardinal number)
+  四 (tr. ) (numeral: 肆) :: four (the cardinal number 4) (cardinal number)
   (Standard Chinese (Mandarin)) 五 (wǔ) (numeral: 伍) :: five (five (5)) (cardinal number)
   (Standard Chinese (Mandarin)) 六 (liù) (numeral: 陸) :: six (cardinal number) (cardinal number)
   (Standard Chinese (Mandarin)) 八 (bā) (numeral: 捌) :: eight (cardinal number 8) (cardinal number)
@@ -2068,7 +2076,7 @@ Index: zh zh->en
   清晰 (qīngxī) :: definition (clarity of visual presentation, distinctness of outline or detail) (noun)
   清晰 (qīngxī) :: definition (clarity, especially of musical sound in reproduction) (noun)
   清晰 (qīngxī) :: definition (sharp demarcation of outlines or limits) (noun)
-  [[清晰]][[度]] (qīngxīdù) :: definition (bodybuilding: the degree to which individual muscles are distinct) (noun)
+  清晰度 (qīngxīdù) :: definition (bodybuilding: the degree to which individual muscles are distinct) (noun)
   草 (căo), 青草 (qīng cǎo) :: grass (ground cover plant) (noun)
 ===qing===
   减弱 (tr. jian ruo), 减轻 (tr. jian qing) :: abate (to bring down or reduce to a lower state) (verb)
@@ -2084,10 +2092,10 @@ Index: zh zh->en
 ===傾盆大雨===
   傾盆大雨, 倾盆大雨 (tr. qīngpéndàyǔ) :: rain cats and dogs (to rain very heavily) (verb)
 ===清晰===
+  清晰度 (qīngxīdù) :: definition (bodybuilding: the degree to which individual muscles are distinct) (noun)
   清晰 (qīngxī) :: definition (clarity of visual presentation, distinctness of outline or detail) (noun)
   清晰 (qīngxī) :: definition (clarity, especially of musical sound in reproduction) (noun)
   清晰 (qīngxī) :: definition (sharp demarcation of outlines or limits) (noun)
-  [[清晰]][[度]] (qīngxīdù) :: definition (bodybuilding: the degree to which individual muscles are distinct) (noun)
 ===qìquán===
   避免 (tr. bìmiǎn), 戒除 (tr. jièchú), 棄權, 弃权 (tr. qìquán) :: abstain (refrain from) (verb)
 ===弃权===
@@ -2206,9 +2214,9 @@ Index: zh zh->en
 ===ri6===
   (Teochew) ri6, no6 :: two (one plus one) (cardinal number)
 ===Rìběn===
-  日本 (tr. [[Rìběn]]) :: Japan (A Far East country in Asia) (proper noun)
+  日本 (tr. Rìběn) :: Japan (A Far East country in Asia) (proper noun)
 ===日本===
-  日本 (tr. [[Rìběn]]) :: Japan (A Far East country in Asia) (proper noun)
+  日本 (tr. Rìběn) :: Japan (A Far East country in Asia) (proper noun)
   (Cantonese) 日本 (tr. yat6 bun2) :: Japan (A Far East country in Asia) (proper noun)
   (Gan) 日本 :: Japan (A Far East country in Asia) (proper noun)
   (Hakka) 日本 (tr. Ngit-pún) :: Japan (A Far East country in Asia) (proper noun)
@@ -2378,8 +2386,8 @@ Index: zh zh->en
 ===省略===
   减少 (tr. jian shao), 省略 (tr. sheng lüe) :: abate (to deduct, to omit) (verb)
 ===shénme===
-  無論什麼, 无论什么 (tr. [[wúlùn]] [[shénme]]), 無論何事, 无论何事 (tr. [[wúlùn]] [[héshì]]) :: whatever (anything) (determiner)
-  無論什麼, 无论什么 (tr. [[wúlùn]] [[shénme]]) :: whatever (anything) (pronoun)
+  無論什麼, 无论什么 (tr. wúlùn shénme), 無論何事, 无论何事 (tr. wúlùn héshì) :: whatever (anything) (determiner)
+  無論什麼, 无论什么 (tr. wúlùn shénme) :: whatever (anything) (pronoun)
 ===shèzuì===
   赦免 (shèmiǎn), 赦罪 (shèzuì) :: absolve (theology: pronounce free or give absolution from sin) (verb)
 ===赦罪===
@@ -2400,7 +2408,7 @@ Index: zh zh->en
   是 (tr. shì) :: be (used to indicate that the subject has the qualities described by a noun or noun phrase) (verb)
   是 (tr. shì) :: be (used to indicate temperature) (verb)
   是 (tr. shì) (not used with adjectives) :: is (verb)
-  定意 (dìngyì); [[釋]][[義]] (shìyì) :: definition (statement of the meaning of a word or word group or a sign or symbol) (noun)
+  定意 (dìngyì); 釋義 (shìyì) :: definition (statement of the meaning of a word or word group or a sign or symbol) (noun)
   把某東西看作是無價值的, 把某东西看作是无价值的 (bǎ mǒu dōngxi kànzuò shì wú jiàzhí de) :: floccinaucinihilipilification (act or habit of describing or regarding something as unimportant) (noun)
 ===十===
   (Standard Chinese (Mandarin)) 十 (shí) (numeral: 拾) :: ten (the cardinal number occurring after 9 and before 11) (cardinal number)
@@ -2422,7 +2430,7 @@ Index: zh zh->en
   是 (tr. shì) (not used with adjectives) :: is (verb)
   把某東西看作是無價值的, 把某东西看作是无价值的 (bǎ mǒu dōngxi kànzuò shì wú jiàzhí de) :: floccinaucinihilipilification (act or habit of describing or regarding something as unimportant) (noun)
 ===釋===
-  定意 (dìngyì); [[釋]][[義]] (shìyì) :: definition (statement of the meaning of a word or word group or a sign or symbol) (noun)
+  定意 (dìngyì); 釋義 (shìyì) :: definition (statement of the meaning of a word or word group or a sign or symbol) (noun)
 ===拾===
   (Standard Chinese (Mandarin)) 十 (shí) (numeral: 拾) :: ten (the cardinal number occurring after 9 and before 11) (cardinal number)
 ===shībài===
@@ -2536,9 +2544,9 @@ Index: zh zh->en
 ===數目===
   數, 数 (tr. shù), 數目, 数目 (tr. shùmù), 數字, 数字 (tr. shùzì) :: number (abstract entity) (noun)
 ===shùnchàng===
-  [[通暢]]的 (tōngchàng de), [[順暢]]的 (shùnchàng de) :: free (unobstructed) (adjective)
+  通暢的 (tōngchàng de), 順暢的 (shùnchàng de) :: free (unobstructed) (adjective)
 ===順暢===
-  [[通暢]]的 (tōngchàng de), [[順暢]]的 (shùnchàng de) :: free (unobstructed) (adjective)
+  通暢的 (tōngchàng de), 順暢的 (shùnchàng de) :: free (unobstructed) (adjective)
 ===shūxìn===
   信 (tr. xìn), 信件 (tr. xìnjiàn), 書信, 书信 (tr. shūxìn) :: letter (written message) (noun)
 ===书信===
@@ -2560,7 +2568,7 @@ Index: zh zh->en
 ===sǐ===
   死 (tr. sǐ), 亡 (tr. wáng), (formal) 去世 (tr. qùshì) :: die (to stop living) (verb)
 ===sì===
-  四 (tr. [[sì]]) (numeral: 肆) :: four (the cardinal number 4) (cardinal number)
+  四 (tr. ) (numeral: 肆) :: four (the cardinal number 4) (cardinal number)
   星期四 (xīngqī sì) :: Thursday (day of the week) (noun)
   四分之一 (sì fēn zhīyī) :: quarter (one of four equal parts) (noun)
   四 (sì) :: four (the digit or figure 4) (noun)
@@ -2574,12 +2582,12 @@ Index: zh zh->en
 ===亖===
   (Old Chinese) 亖 (tr. *hljids) :: four (the cardinal number 4) (cardinal number)
 ===四===
-  四 (tr. [[sì]]) (numeral: 肆) :: four (the cardinal number 4) (cardinal number)
+  四 (tr. ) (numeral: 肆) :: four (the cardinal number 4) (cardinal number)
   (Cantonese) 四 (tr. sei<sup>3</sup>) :: four (the cardinal number 4) (cardinal number)
   (Teochew) 四 (tr. si<sup>3</sup>) :: four (the cardinal number 4) (cardinal number)
   四 (sì) :: four (the digit or figure 4) (noun)
 ===肆===
-  四 (tr. [[sì]]) (numeral: 肆) :: four (the cardinal number 4) (cardinal number)
+  四 (tr. ) (numeral: 肆) :: four (the cardinal number 4) (cardinal number)
 ===si4===
   (Cantonese) 天時冷 (tr. tin1 si4 laang) :: winter (fourth season, marked by short days and lowest temperatures) (noun)
   (Cantonese) 是 (tr. si4) (formal and written), 係 (tr. hai6) (vernacular) :: be (used to indicate that the subject and object are the same) (verb)
@@ -2709,8 +2717,8 @@ Index: zh zh->en
   填色 (tián sè), 上色 (shàng sè), 著色 (zhuó sè) :: color (give something color) (verb)
 ===天===
   日 (tr. rì), 天 (tr. tiān) :: day (period of 24 hours) (noun)
-  [[一]][[天]] :: day (period from midnight to the following midnight) (noun)
-  [[一]][[天]] :: day (part of a day period which one spends at one’s job, school, etc.) (noun)
+  一天 :: day (period from midnight to the following midnight) (noun)
+  一天 :: day (part of a day period which one spends at one’s job, school, etc.) (noun)
 ===tiānkōng===
   天空 (tr. tiānkōng) :: sky (atmosphere above a point) (noun)
 ===天空===
@@ -2754,9 +2762,9 @@ Index: zh zh->en
 ===tōng===
   (Min Nan) tōng-sû :: verb ((grammar) a word that indicates an action, event, or a state) (noun)
 ===tōngchàng===
-  [[通暢]]的 (tōngchàng de), [[順暢]]的 (shùnchàng de) :: free (unobstructed) (adjective)
+  通暢的 (tōngchàng de), 順暢的 (shùnchàng de) :: free (unobstructed) (adjective)
 ===通暢===
-  [[通暢]]的 (tōngchàng de), [[順暢]]的 (shùnchàng de) :: free (unobstructed) (adjective)
+  通暢的 (tōngchàng de), 順暢的 (shùnchàng de) :: free (unobstructed) (adjective)
 ===tònghèn===
   痛恨 (tr. tònghèn) :: abhor (to regard with horror or detestation) (verb)
 ===痛恨===
@@ -2944,22 +2952,22 @@ Index: zh zh->en
 ===烏黑===
   烏鴉, 渡鴉, 烏黑 :: raven (bird) (noun)
 ===wúlùn===
-  無論什麼, 无论什么 (tr. [[wúlùn]] [[shénme]]), 無論何事, 无论何事 (tr. [[wúlùn]] [[héshì]]) :: whatever (anything) (determiner)
-  無論什麼, 无论什么 (tr. [[wúlùn]] [[shénme]]) :: whatever (anything) (pronoun)
+  無論什麼, 无论什么 (tr. wúlùn shénme), 無論何事, 无论何事 (tr. wúlùn héshì) :: whatever (anything) (determiner)
+  無論什麼, 无论什么 (tr. wúlùn shénme) :: whatever (anything) (pronoun)
 ===无论何事===
-  無論什麼, 无论什么 (tr. [[wúlùn]] [[shénme]]), 無論何事, 无论何事 (tr. [[wúlùn]] [[héshì]]) :: whatever (anything) (determiner)
+  無論什麼, 无论什么 (tr. wúlùn shénme), 無論何事, 无论何事 (tr. wúlùn héshì) :: whatever (anything) (determiner)
 ===無論何事===
-  無論什麼, 无论什么 (tr. [[wúlùn]] [[shénme]]), 無論何事, 无论何事 (tr. [[wúlùn]] [[héshì]]) :: whatever (anything) (determiner)
+  無論什麼, 无论什么 (tr. wúlùn shénme), 無論何事, 无论何事 (tr. wúlùn héshì) :: whatever (anything) (determiner)
 ===wúlùnrúhé===
   无论如何, wúlùnrúhé :: whatever (indicating the matter is not worthy of further discussion) (interjection)
 ===无论如何===
   无论如何, wúlùnrúhé :: whatever (indicating the matter is not worthy of further discussion) (interjection)
 ===无论什么===
-  無論什麼, 无论什么 (tr. [[wúlùn]] [[shénme]]), 無論何事, 无论何事 (tr. [[wúlùn]] [[héshì]]) :: whatever (anything) (determiner)
-  無論什麼, 无论什么 (tr. [[wúlùn]] [[shénme]]) :: whatever (anything) (pronoun)
+  無論什麼, 无论什么 (tr. wúlùn shénme), 無論何事, 无论何事 (tr. wúlùn héshì) :: whatever (anything) (determiner)
+  無論什麼, 无论什么 (tr. wúlùn shénme) :: whatever (anything) (pronoun)
 ===無論什麼===
-  無論什麼, 无论什么 (tr. [[wúlùn]] [[shénme]]), 無論何事, 无论何事 (tr. [[wúlùn]] [[héshì]]) :: whatever (anything) (determiner)
-  無論什麼, 无论什么 (tr. [[wúlùn]] [[shénme]]) :: whatever (anything) (pronoun)
+  無論什麼, 无论什么 (tr. wúlùn shénme), 無論何事, 无论何事 (tr. wúlùn héshì) :: whatever (anything) (determiner)
+  無論什麼, 无论什么 (tr. wúlùn shénme) :: whatever (anything) (pronoun)
 ===wùpǐn===
   產品, 产品 (chǎnpǐn), 貨物, 货物 (huòwù), 物品 (wùpǐn), 製品, 制品, (zhìpǐn), 製品, 制品 (zhìpǐn) :: merchandise (commodities offered for sale) (noun)
 ===物品===
@@ -2985,19 +2993,19 @@ Index: zh zh->en
   清晰 (qīngxī) :: definition (clarity of visual presentation, distinctness of outline or detail) (noun)
   清晰 (qīngxī) :: definition (clarity, especially of musical sound in reproduction) (noun)
   清晰 (qīngxī) :: definition (sharp demarcation of outlines or limits) (noun)
-  [[清晰]][[度]] (qīngxīdù) :: definition (bodybuilding: the degree to which individual muscles are distinct) (noun)
+  清晰度 (qīngxīdù) :: definition (bodybuilding: the degree to which individual muscles are distinct) (noun)
 ===xǐ===
   我很喜歡你, 我很喜欢你 (wǒ hěn xǐ huan nǐ) :: I love you (platonic expression of inclination or liking) (phrase)
 ===係===
   (Cantonese) 是 (tr. si4) (formal and written), 係 (tr. hai6) (vernacular) :: be (used to indicate that the subject and object are the same) (verb)
 ===xià===
-  [[下]][[定]][[意]] (xiàdìngyì) :: definition (action or process of defining) (noun)
-  [[下]][[定]][[意]] (xiàdìngyì) :: definition (act of defining) (noun)
-  [[下]][[定]][[意]] (xiàdìngyì) :: definition (action or power of describing, explaining, or making definite) (noun)
+  下定意 (xiàdìngyì) :: definition (action or process of defining) (noun)
+  下定意 (xiàdìngyì) :: definition (act of defining) (noun)
+  下定意 (xiàdìngyì) :: definition (action or power of describing, explaining, or making definite) (noun)
 ===下===
-  [[下]][[定]][[意]] (xiàdìngyì) :: definition (action or process of defining) (noun)
-  [[下]][[定]][[意]] (xiàdìngyì) :: definition (act of defining) (noun)
-  [[下]][[定]][[意]] (xiàdìngyì) :: definition (action or power of describing, explaining, or making definite) (noun)
+  下定意 (xiàdìngyì) :: definition (action or process of defining) (noun)
+  下定意 (xiàdìngyì) :: definition (act of defining) (noun)
+  下定意 (xiàdìngyì) :: definition (action or power of describing, explaining, or making definite) (noun)
 ===xiàjì===
   夏天 (tr. xiàtiān), 夏季 (tr. xiàjì) :: summer (hottest season) (noun)
 ===夏季===
@@ -3009,11 +3017,11 @@ Index: zh zh->en
 ===餡餅===
   餡餅, 馅饼 (tr. xiànbǐng), 排 (tr. pái), 派 (tr. pài) :: pie (type of pastry) (noun)
 ===xiàndài===
-  現代, 现代 (tr. [[xiàndài]]) :: today (nowadays) (adverb)
+  現代, 现代 (tr. xiàndài) :: today (nowadays) (adverb)
 ===现代===
-  現代, 现代 (tr. [[xiàndài]]) :: today (nowadays) (adverb)
+  現代, 现代 (tr. xiàndài) :: today (nowadays) (adverb)
 ===現代===
-  現代, 现代 (tr. [[xiàndài]]) :: today (nowadays) (adverb)
+  現代, 现代 (tr. xiàndài) :: today (nowadays) (adverb)
 ===xiàng===
   象 (xiàng), 大象 (dàxiàng) :: elephant (mammal) (noun)
 ===象===
@@ -3082,10 +3090,10 @@ Index: zh zh->en
 ===星期一===
   星期一 (xīngqī yī) :: Monday (day of the week) (noun)
 ===xíngróngcí===
-  [[形容詞]] (xíngróngcí) :: adjective ((grammar) a word that modifies a noun or describes a noun’s referent) (noun)
+  形容詞 (xíngróngcí) :: adjective ((grammar) a word that modifies a noun or describes a noun’s referent) (noun)
 ===形容詞===
   (Cantonese) 形容詞 :: adjective ((grammar) a word that modifies a noun or describes a noun’s referent) (noun)
-  [[形容詞]] (xíngróngcí) :: adjective ((grammar) a word that modifies a noun or describes a noun’s referent) (noun)
+  形容詞 (xíngróngcí) :: adjective ((grammar) a word that modifies a noun or describes a noun’s referent) (noun)
 ===形容词的===
   形容词的 :: adjective (functioning as an adjective) (adjective)
 ===形容詞的===
@@ -3191,13 +3199,15 @@ Index: zh zh->en
   星期一 (xīngqī yī) :: Monday (day of the week) (noun)
   一, 壹 (yī) :: one (cardinal number 1) (cardinal number)
 ===yì===
-  定意 (dìngyì); [[釋]][[義]] (shìyì) :: definition (statement of the meaning of a word or word group or a sign or symbol) (noun)
-  [[定]][[意]] (dìngyì) :: definition (statement expressing the essential nature of something) (noun)
-  [[下]][[定]][[意]] (xiàdìngyì) :: definition (action or process of defining) (noun)
-  [[下]][[定]][[意]] (xiàdìngyì) :: definition (act of defining) (noun)
-  [[定]][[意]] (dìngyì) :: definition (product of defining) (noun)
-  [[下]][[定]][[意]] (xiàdìngyì) :: definition (action or power of describing, explaining, or making definite) (noun)
+  定意 (dìngyì); 釋義 (shìyì) :: definition (statement of the meaning of a word or word group or a sign or symbol) (noun)
+  定意 (dìngyì) :: definition (statement expressing the essential nature of something) (noun)
+  下定意 (xiàdìngyì) :: definition (action or process of defining) (noun)
+  下定意 (xiàdìngyì) :: definition (act of defining) (noun)
+  定意 (dìngyì) :: definition (product of defining) (noun)
+  下定意 (xiàdìngyì) :: definition (action or power of describing, explaining, or making definite) (noun)
 ===一===
+  一天 :: day (period from midnight to the following midnight) (noun)
+  一天 :: day (part of a day period which one spends at one’s job, school, etc.) (noun)
   (Cantonese) 一 (yat1) :: one (cardinal number 1) (cardinal number)
   一, 壹 (yī) :: one (cardinal number 1) (cardinal number)
   (Min Dong (Eastern Hokkien)) 一 (sio) :: one (cardinal number 1) (cardinal number)
@@ -3205,18 +3215,16 @@ Index: zh zh->en
   (Jin) 一 (yiu) :: one (cardinal number 1) (cardinal number)
   (Teochew) 一 (ik4, zêg8) :: one (cardinal number 1) (cardinal number)
   (Wu) 一 (ye) :: one (cardinal number 1) (cardinal number)
-  [[一]][[天]] :: day (period from midnight to the following midnight) (noun)
-  [[一]][[天]] :: day (part of a day period which one spends at one’s job, school, etc.) (noun)
 ===壹===
   一, 壹 (yī) :: one (cardinal number 1) (cardinal number)
 ===意===
-  [[定]][[意]] (dìngyì) :: definition (statement expressing the essential nature of something) (noun)
-  [[下]][[定]][[意]] (xiàdìngyì) :: definition (action or process of defining) (noun)
-  [[下]][[定]][[意]] (xiàdìngyì) :: definition (act of defining) (noun)
-  [[定]][[意]] (dìngyì) :: definition (product of defining) (noun)
-  [[下]][[定]][[意]] (xiàdìngyì) :: definition (action or power of describing, explaining, or making definite) (noun)
+  定意 (dìngyì) :: definition (statement expressing the essential nature of something) (noun)
+  下定意 (xiàdìngyì) :: definition (action or process of defining) (noun)
+  下定意 (xiàdìngyì) :: definition (act of defining) (noun)
+  定意 (dìngyì) :: definition (product of defining) (noun)
+  下定意 (xiàdìngyì) :: definition (action or power of describing, explaining, or making definite) (noun)
 ===義===
-  定意 (dìngyì); [[釋]][[義]] (shìyì) :: definition (statement of the meaning of a word or word group or a sign or symbol) (noun)
+  定意 (dìngyì); 釋義 (shìyì) :: definition (statement of the meaning of a word or word group or a sign or symbol) (noun)
 ===yi3===
   (Cantonese) 我鐘意你 (ngo5 zung1 yi3 nei5) :: I love you (platonic expression of inclination or liking) (phrase)
 ===yi4===
@@ -3522,7 +3530,7 @@ Index: zh zh->en
 ===zêg8===
   (Teochew) 一 (ik4, zêg8) :: one (cardinal number 1) (cardinal number)
 ===zěnyàng===
-  不管怎樣, 不管怎样 (tr. [[bùguǎn]] [[zěnyàng]]) :: whatever (no matter which; for any) (determiner)
+  不管怎樣, 不管怎样 (tr. bùguǎn zěnyàng) :: whatever (no matter which; for any) (determiner)
 ===zhàiwù===
   外債, 外债 (tr. wàizhài), 對外債務, 对外债务 (tr. duìwài zhàiwù) :: foreign debt (a debt owed to foreigners) (noun)
   借款 (tr. jièkuǎn), 欠款 (tr. qiànkuǎn), 債務, 债务 (tr. zhàiwù) :: debt (money that one person or entity owes or is required to pay to another) (noun)
@@ -3612,7 +3620,7 @@ Index: zh zh->en
 ===周===
   星期 (tr. xīngqī), 周 (tr. zhōu), 禮拜, 礼拜 (tr. lǐbài) :: week (period of seven days) (noun)
 ===晝===
-  [[白]][[晝]] :: day (rotational period of a planet) (noun)
+  白晝 :: day (rotational period of a planet) (noun)
 ===周三===
   星期三 (xīngqī sān), 周三 (zhōu sān) :: Wednesday (day of the week) (noun)
 ===zhuānyǒu===
@@ -3656,15 +3664,15 @@ Index: zh zh->en
 ===zïtip===
   (Wu (Suzhou dialect)) zïtip :: dictionary (publication that explains the meanings of an ordered list of words) (noun)
 ===zìyóu===
-  [[自由]]的 (zìyóu de) :: free (not imprisoned) (adjective)
-  [[自由]]的 (zìyóu de) :: free (unconstrained) (adjective)
-  [[自由]]的 (zìyóu de) :: free (without obligations) (adjective)
-  [[自由]]的 (zìyóu de) :: free (software: with very few limitations on distribution or improvement) (adjective)
+  自由的 (zìyóu de) :: free (not imprisoned) (adjective)
+  自由的 (zìyóu de) :: free (unconstrained) (adjective)
+  自由的 (zìyóu de) :: free (without obligations) (adjective)
+  自由的 (zìyóu de) :: free (software: with very few limitations on distribution or improvement) (adjective)
 ===自由===
-  [[自由]]的 (zìyóu de) :: free (not imprisoned) (adjective)
-  [[自由]]的 (zìyóu de) :: free (unconstrained) (adjective)
-  [[自由]]的 (zìyóu de) :: free (without obligations) (adjective)
-  [[自由]]的 (zìyóu de) :: free (software: with very few limitations on distribution or improvement) (adjective)
+  自由的 (zìyóu de) :: free (not imprisoned) (adjective)
+  自由的 (zìyóu de) :: free (unconstrained) (adjective)
+  自由的 (zìyóu de) :: free (without obligations) (adjective)
+  自由的 (zìyóu de) :: free (software: with very few limitations on distribution or improvement) (adjective)
 ===zìyuán===
   詞源, 词源 (tr. cíyuán), 語源, 语源 (tr. yǔyuán), 字源 (tr. zìyuán) :: etymology (account of the origin and historical development of a word) (noun)
 ===字源===
@@ -3741,7 +3749,7 @@ Index: en en->zh
   (Wu) 三 (se) :: three (cardinal number 3) (cardinal number)
 ===4===
   (Old Chinese) 亖 (tr. *hljids) :: four (the cardinal number 4) (cardinal number)
-  四 (tr. [[sì]]) (numeral: 肆) :: four (the cardinal number 4) (cardinal number)
+  四 (tr. ) (numeral: 肆) :: four (the cardinal number 4) (cardinal number)
   (Cantonese) 四 (tr. sei<sup>3</sup>) :: four (the cardinal number 4) (cardinal number)
   (Teochew) 四 (tr. si<sup>3</sup>) :: four (the cardinal number 4) (cardinal number)
   四 (sì) :: four (the digit or figure 4) (noun)
@@ -3819,7 +3827,7 @@ Index: en en->zh
 ===abdomen===
   腹部 (tr. fùbù), 腹 (tr. fù) :: abdomen (belly) (noun)
   腔 (qiāng) :: abdomen (cavity) (noun)
-  [[腹]][[部]] (fùbù) :: abdomen (the posterior section of an arthopod's body) (noun)
+  腹部 (fùbù) :: abdomen (the posterior section of an arthopod's body) (noun)
 ===abhor===
   痛恨 (tr. tònghèn) :: abhor (to regard with horror or detestation) (verb)
 ===ability===
@@ -3830,7 +3838,7 @@ Index: en en->zh
   能 (tr. néng), 會, 会 (tr. huì) :: able (permitted to) (adjective)
   能幹, 能干 (tr. nénggàn), 得力 (tr. délì) :: able (skillful) (adjective)
   有資格, 有资格 (tr. yǒu zīgé) :: able (legally qualified) (adjective)
-  會, 会 (tr. huì), 能 (tr. néng), (the ability/inability to achieve a result is expressed with various verb complements, e.g. -{{t|zh|得了|tr=-deliǎo|sc=Hani}}/-{{t|zh|不了|tr=-buliǎo|sc=Hani}}) :: can (to be able) (verb)
+  會, 会 (tr. huì), 能 (tr. néng), (the ability/inability to achieve a result is expressed with various verb complements, e.g. -得了 (tr. -deliǎo)/-不了 (tr. -buliǎo)) :: can (to be able) (verb)
 ===aboard===
   (board a car, train) 上車, 上车 (tr. shàngchē), (boat, ship) 上船 (tr. shàngchuán), (aeroplane) 上飛機, 上飞机 (tr. shàng fēijī) :: aboard (on board) (adverb)
   (board a car, train) 上車, 上车 (tr. shàngchē), (boat, ship) 上船 (tr. shàngchuán), (aeroplane) 上飛機, 上飞机 (tr. shàng fēijī) :: aboard (on board of) (preposition)
@@ -3923,16 +3931,16 @@ Index: en en->zh
   縮寫, 缩写 (tr. suōxiě) :: abbreviation (act or result of shortening or reducing) (noun)
   墮胎, 堕胎 (tr. duòtāi) :: abortion (act of inducing abortion) (noun)
   See Mandarin :: definition (act of defining) (noun)
-  [[下]][[定]][[意]] (xiàdìngyì) :: definition (act of defining) (noun)
+  下定意 (xiàdìngyì) :: definition (act of defining) (noun)
   強奸, 强奸 (tr. qiángjiān) :: rape (act of forcing sexual activity) (noun)
 ===action===
   (Cantonese) 動詞 (tr. dung6 ci4) :: verb ((grammar) a word that indicates an action, event, or a state) (noun)
   動詞, 动词 (dòngcí) :: verb ((grammar) a word that indicates an action, event, or a state) (noun)
   (Min Nan) tōng-sû :: verb ((grammar) a word that indicates an action, event, or a state) (noun)
   See Mandarin :: definition (action or process of defining) (noun)
-  [[下]][[定]][[意]] (xiàdìngyì) :: definition (action or process of defining) (noun)
+  下定意 (xiàdìngyì) :: definition (action or process of defining) (noun)
   See Mandarin :: definition (action or power of describing, explaining, or making definite) (noun)
-  [[下]][[定]][[意]] (xiàdìngyì) :: definition (action or power of describing, explaining, or making definite) (noun)
+  下定意 (xiàdìngyì) :: definition (action or power of describing, explaining, or making definite) (noun)
   (of gratitude) 人情債, 人情债 (tr. rénqíngzhài) :: debt (action, state of mind, or object one has an obligation to perform for another) (noun)
 ===activity===
   強奸, 强奸 (tr. qiángjiān) :: rape (act of forcing sexual activity) (noun)
@@ -3942,7 +3950,7 @@ Index: en en->zh
   (Cantonese) 形容詞的 :: adjective (functioning as an adjective) (adjective)
   形容词的 :: adjective (functioning as an adjective) (adjective)
   (Cantonese) 形容詞 :: adjective ((grammar) a word that modifies a noun or describes a noun’s referent) (noun)
-  [[形容詞]] (xíngróngcí) :: adjective ((grammar) a word that modifies a noun or describes a noun’s referent) (noun)
+  形容詞 (xíngróngcí) :: adjective ((grammar) a word that modifies a noun or describes a noun’s referent) (noun)
   (Min Nan) hêng-iông-sû :: adjective ((grammar) a word that modifies a noun or describes a noun’s referent) (noun)
   (not used) :: be (used to connect a noun to an adjective that describes it) (verb)
 ===Administration===
@@ -4024,15 +4032,15 @@ Index: en en->zh
   反義詞, 反义词 (tr. fǎnyìcí) :: antonym (word which has the opposite meaning) (noun)
 ===any===
   烏鴉, 乌鸦 (tr. wūyā) :: crow (any bird of the genus Corvus) (noun)
-  不管怎樣, 不管怎样 (tr. [[bùguǎn]] [[zěnyàng]]) :: whatever (no matter which; for any) (determiner)
+  不管怎樣, 不管怎样 (tr. bùguǎn zěnyàng) :: whatever (no matter which; for any) (determiner)
   (Cantonese) 肉 (juk6) :: meat (any sort of flesh) (noun)
   肉 (ròu) :: meat (any sort of flesh) (noun)
   太陽, 太阳 (tr. tàiyáng), 恒星 (tr. héngxīng), 日 (tr. rì) :: sun (any star, especially when seen as the centre of any single solar system) (noun)
 ===Any===
   老鷹 (lǎoyīng) :: eagle (Any of several large carnivorous birds in the family Accipitridae) (noun)
 ===anything===
-  無論什麼, 无论什么 (tr. [[wúlùn]] [[shénme]]), 無論何事, 无论何事 (tr. [[wúlùn]] [[héshì]]) :: whatever (anything) (determiner)
-  無論什麼, 无论什么 (tr. [[wúlùn]] [[shénme]]) :: whatever (anything) (pronoun)
+  無論什麼, 无论什么 (tr. wúlùn shénme), 無論何事, 无论何事 (tr. wúlùn héshì) :: whatever (anything) (determiner)
+  無論什麼, 无论什么 (tr. wúlùn shénme) :: whatever (anything) (pronoun)
 ===April===
   四月 (sìyuè) :: April (fourth month of the Gregorian calendar) (proper noun)
 ===archaic===
@@ -4041,7 +4049,7 @@ Index: en en->zh
 ===are===
   公畝, 公亩 (gōng mǔ) :: are (unit of area) (noun)
   See Mandarin :: definition (bodybuilding: the degree to which individual muscles are distinct) (noun)
-  [[清晰]][[度]] (qīngxīdù) :: definition (bodybuilding: the degree to which individual muscles are distinct) (noun)
+  清晰度 (qīngxīdù) :: definition (bodybuilding: the degree to which individual muscles are distinct) (noun)
   (Cantonese) 是 (tr. si4) (formal and written), 係 (tr. hai6) (vernacular) :: be (used to indicate that the subject and object are the same) (verb)
   是 (tr. shì) :: be (used to indicate that the subject and object are the same) (verb)
   是 (tr. shì) :: be (used to indicate that the values on either side of an equation are the same) (verb)
@@ -4061,13 +4069,13 @@ Index: en en->zh
 ===art===
   詞典學, 词典学 (tr. cídiǎnxué), 辭書學, 辞书学 (tr. císhūxué), 詞典編輯, 词典编辑 (tr. cídiǎn biānjí) :: lexicography (art or craft of writing dictionaries) (noun)
 ===arthopod===
-  [[腹]][[部]] (fùbù) :: abdomen (the posterior section of an arthopod's body) (noun)
+  腹部 (fùbù) :: abdomen (the posterior section of an arthopod's body) (noun)
 ===article===
   (not used) :: the (article) (article)
 ===articles===
   百科全書, 百科全书 (tr. bǎikē quánshū) :: encyclopedia (comprehensive reference with articles on a range of topic) (noun)
 ===Asia===
-  日本 (tr. [[Rìběn]]) :: Japan (A Far East country in Asia) (proper noun)
+  日本 (tr. Rìběn) :: Japan (A Far East country in Asia) (proper noun)
   (Cantonese) 日本 (tr. yat6 bun2) :: Japan (A Far East country in Asia) (proper noun)
   (Gan) 日本 :: Japan (A Far East country in Asia) (proper noun)
   (Hakka) 日本 (tr. Ngit-pún) :: Japan (A Far East country in Asia) (proper noun)
@@ -4187,12 +4195,12 @@ Index: en en->zh
   行星 (tr. xíngxīng) :: planet (rocky or gaseous spherical bodies orbiting the Sun) (noun)
 ===body===
   頭, 头 (tr. tóu), 頭腦, 头脑 (tr. tóunǎo) :: head (part of the body) (noun)
-  [[腹]][[部]] (fùbù) :: abdomen (the posterior section of an arthopod's body) (noun)
+  腹部 (fùbù) :: abdomen (the posterior section of an arthopod's body) (noun)
   行星 (xíngxīng) :: planet (similar body in orbit around a star) (noun)
   恆星, 恒星 (tr. héngxīng), 明星 (tr. míngxīng), 星 (tr. xīng) :: star (luminous celestial body) (noun)
 ===bodybuilding===
   See Mandarin :: definition (bodybuilding: the degree to which individual muscles are distinct) (noun)
-  [[清晰]][[度]] (qīngxīdù) :: definition (bodybuilding: the degree to which individual muscles are distinct) (noun)
+  清晰度 (qīngxīdù) :: definition (bodybuilding: the degree to which individual muscles are distinct) (noun)
 ===bone===
   骨質, 骨质 (tr. gǔzhì) :: bone (material) (noun)
   骨頭, 骨头 (tr. gǔtóu), 骨 (tr. gǔ) :: bone (component of a skeleton) (noun)
@@ -4243,7 +4251,7 @@ Index: en en->zh
 ===calf===
   跟腱 (tr. gēnjiàn) :: Achilles tendon (strong tendon in the calf of the leg) (noun)
 ===can===
-  會, 会 (tr. huì), 能 (tr. néng), (the ability/inability to achieve a result is expressed with various verb complements, e.g. -{{t|zh|得了|tr=-deliǎo|sc=Hani}}/-{{t|zh|不了|tr=-buliǎo|sc=Hani}}) :: can (to be able) (verb)
+  會, 会 (tr. huì), 能 (tr. néng), (the ability/inability to achieve a result is expressed with various verb complements, e.g. -得了 (tr. -deliǎo)/-不了 (tr. -buliǎo)) :: can (to be able) (verb)
   能 (tr. néng), 可以 (tr. kěyǐ) :: can (may) (verb)
   罐頭, 罐头 (guàn tóu) :: can (a more or less cylindrical vessel for liquids) (noun)
   容器, 容器 (róng qì) :: can (a container used to carry and dispense water for plants) (noun)
@@ -4285,7 +4293,7 @@ Index: en en->zh
   (Teochew) san1, sam1 :: three (cardinal number 3) (cardinal number)
   (Wu) 三 (se) :: three (cardinal number 3) (cardinal number)
   (Old Chinese) 亖 (tr. *hljids) :: four (the cardinal number 4) (cardinal number)
-  四 (tr. [[sì]]) (numeral: 肆) :: four (the cardinal number 4) (cardinal number)
+  四 (tr. ) (numeral: 肆) :: four (the cardinal number 4) (cardinal number)
   (Cantonese) 四 (tr. sei<sup>3</sup>) :: four (the cardinal number 4) (cardinal number)
   (Teochew) 四 (tr. si<sup>3</sup>) :: four (the cardinal number 4) (cardinal number)
   (Standard Chinese (Mandarin)) 六 (liù) (numeral: 陸) :: six (cardinal number) (cardinal number)
@@ -4514,7 +4522,7 @@ Index: en en->zh
   (Hakka) Me̍t-sî-kô :: Mexico (country) (proper noun)
   墨西哥 (tr. Mòxīgē) :: Mexico (country) (proper noun)
   (Wu) 墨西哥 :: Mexico (country) (proper noun)
-  日本 (tr. [[Rìběn]]) :: Japan (A Far East country in Asia) (proper noun)
+  日本 (tr. Rìběn) :: Japan (A Far East country in Asia) (proper noun)
   (Cantonese) 日本 (tr. yat6 bun2) :: Japan (A Far East country in Asia) (proper noun)
   (Gan) 日本 :: Japan (A Far East country in Asia) (proper noun)
   (Hakka) 日本 (tr. Ngit-pún) :: Japan (A Far East country in Asia) (proper noun)
@@ -4556,7 +4564,7 @@ Index: en en->zh
   比索 (tr. bǐsuǒ) :: peso (currency) (noun)
 ===current===
   (Cantonese) 今日 (tr. gam<sup>1</sup>yat<sup>6</sup>) :: today (on the current day) (adverb)
-  今天 (tr. [[jīntiān]]), 今日 (tr. [[jīnrì]]) :: today (on the current day) (adverb)
+  今天 (tr. jīntiān), 今日 (tr. jīnrì) :: today (on the current day) (adverb)
 ===cylindrical===
   罐頭, 罐头 (guàn tóu) :: can (a more or less cylindrical vessel for liquids) (noun)
 ===dark===
@@ -4576,9 +4584,9 @@ Index: en en->zh
 ===day===
   (Cantonese) 日 (tr. jat6) :: day (period of 24 hours) (noun)
   日 (tr. rì), 天 (tr. tiān) :: day (period of 24 hours) (noun)
-  [[一]][[天]] :: day (period from midnight to the following midnight) (noun)
-  [[白]][[晝]] :: day (rotational period of a planet) (noun)
-  [[一]][[天]] :: day (part of a day period which one spends at one’s job, school, etc.) (noun)
+  一天 :: day (period from midnight to the following midnight) (noun)
+  白晝 :: day (rotational period of a planet) (noun)
+  一天 :: day (part of a day period which one spends at one’s job, school, etc.) (noun)
   白天 :: day (period between sunrise and sunset) (noun)
   星期一 (xīngqī yī) :: Monday (day of the week) (noun)
   星期二 (xīngqī èr) :: Tuesday (day of the week) (noun)
@@ -4588,7 +4596,7 @@ Index: en en->zh
   星期六 (xīngqī liù) :: Saturday (day of the week) (noun)
   (formal) 星期日 (tr. xīngqīrì), (informal) 星期天 (tr. xīngqītiān), 禮拜日, 礼拜日 (tr. lǐbàirì), (colloquial) 禮拜天, 礼拜天 (tr. lǐbàitiān) :: Sunday (day of the week) (noun)
   (Cantonese) 今日 (tr. gam<sup>1</sup>yat<sup>6</sup>) :: today (on the current day) (adverb)
-  今天 (tr. [[jīntiān]]), 今日 (tr. [[jīnrì]]) :: today (on the current day) (adverb)
+  今天 (tr. jīntiān), 今日 (tr. jīnrì) :: today (on the current day) (adverb)
   (not used) :: be (used to indicate time of day, day of the week, or date) (verb)
 ===days===
   (Cantonese) 星期 (singkei) :: week (period of seven days) (noun)
@@ -4629,27 +4637,27 @@ Index: en en->zh
   武器 (tr. wǔqì), 兵器 (tr. bīngqì) :: weapon (instrument of attack or defense in combat) (noun)
 ===defining===
   See Mandarin :: definition (action or process of defining) (noun)
-  [[下]][[定]][[意]] (xiàdìngyì) :: definition (action or process of defining) (noun)
+  下定意 (xiàdìngyì) :: definition (action or process of defining) (noun)
   See Mandarin :: definition (act of defining) (noun)
-  [[下]][[定]][[意]] (xiàdìngyì) :: definition (act of defining) (noun)
+  下定意 (xiàdìngyì) :: definition (act of defining) (noun)
   See Mandarin :: definition (product of defining) (noun)
-  [[定]][[意]] (dìngyì) :: definition (product of defining) (noun)
+  定意 (dìngyì) :: definition (product of defining) (noun)
 ===definite===
   See Mandarin :: definition (action or power of describing, explaining, or making definite) (noun)
-  [[下]][[定]][[意]] (xiàdìngyì) :: definition (action or power of describing, explaining, or making definite) (noun)
+  下定意 (xiàdìngyì) :: definition (action or power of describing, explaining, or making definite) (noun)
 ===definition===
   See Mandarin :: definition (statement of the meaning of a word or word group or a sign or symbol) (noun)
-  定意 (dìngyì); [[釋]][[義]] (shìyì) :: definition (statement of the meaning of a word or word group or a sign or symbol) (noun)
+  定意 (dìngyì); 釋義 (shìyì) :: definition (statement of the meaning of a word or word group or a sign or symbol) (noun)
   See Mandarin :: definition (statement expressing the essential nature of something) (noun)
-  [[定]][[意]] (dìngyì) :: definition (statement expressing the essential nature of something) (noun)
+  定意 (dìngyì) :: definition (statement expressing the essential nature of something) (noun)
   See Mandarin :: definition (action or process of defining) (noun)
-  [[下]][[定]][[意]] (xiàdìngyì) :: definition (action or process of defining) (noun)
+  下定意 (xiàdìngyì) :: definition (action or process of defining) (noun)
   See Mandarin :: definition (act of defining) (noun)
-  [[下]][[定]][[意]] (xiàdìngyì) :: definition (act of defining) (noun)
+  下定意 (xiàdìngyì) :: definition (act of defining) (noun)
   See Mandarin :: definition (product of defining) (noun)
-  [[定]][[意]] (dìngyì) :: definition (product of defining) (noun)
+  定意 (dìngyì) :: definition (product of defining) (noun)
   See Mandarin :: definition (action or power of describing, explaining, or making definite) (noun)
-  [[下]][[定]][[意]] (xiàdìngyì) :: definition (action or power of describing, explaining, or making definite) (noun)
+  下定意 (xiàdìngyì) :: definition (action or power of describing, explaining, or making definite) (noun)
   See Mandarin :: definition (clarity of visual presentation, distinctness of outline or detail) (noun)
   清晰 (qīngxī) :: definition (clarity of visual presentation, distinctness of outline or detail) (noun)
   See Mandarin :: definition (clarity, especially of musical sound in reproduction) (noun)
@@ -4657,12 +4665,12 @@ Index: en en->zh
   See Mandarin :: definition (sharp demarcation of outlines or limits) (noun)
   清晰 (qīngxī) :: definition (sharp demarcation of outlines or limits) (noun)
   See Mandarin :: definition (bodybuilding: the degree to which individual muscles are distinct) (noun)
-  [[清晰]][[度]] (qīngxīdù) :: definition (bodybuilding: the degree to which individual muscles are distinct) (noun)
+  清晰度 (qīngxīdù) :: definition (bodybuilding: the degree to which individual muscles are distinct) (noun)
 ===defocusing===
   透鏡, 透镜 (tr. tòujìng), 鏡片, 镜片 (tr. jìngpiàn), 鏡頭, 镜头 (tr. jìngtóu) :: lens (object focusing or defocusing the light passing through it) (noun)
 ===degree===
   See Mandarin :: definition (bodybuilding: the degree to which individual muscles are distinct) (noun)
-  [[清晰]][[度]] (qīngxīdù) :: definition (bodybuilding: the degree to which individual muscles are distinct) (noun)
+  清晰度 (qīngxīdù) :: definition (bodybuilding: the degree to which individual muscles are distinct) (noun)
 ===deity===
   化身 (tr. huàshēn) :: avatar (The earthly incarnation of a deity, particularly Vishnu) (noun)
 ===demarcation===
@@ -4676,13 +4684,13 @@ Index: en en->zh
   是 (tr. shì) :: be (used to indicate that the subject has the qualities described by a noun or noun phrase) (verb)
 ===describes===
   (Cantonese) 形容詞 :: adjective ((grammar) a word that modifies a noun or describes a noun’s referent) (noun)
-  [[形容詞]] (xíngróngcí) :: adjective ((grammar) a word that modifies a noun or describes a noun’s referent) (noun)
+  形容詞 (xíngróngcí) :: adjective ((grammar) a word that modifies a noun or describes a noun’s referent) (noun)
   (Min Nan) hêng-iông-sû :: adjective ((grammar) a word that modifies a noun or describes a noun’s referent) (noun)
   (not used) :: be (used to connect a noun to an adjective that describes it) (verb)
 ===describing===
   把某東西看作是無價值的, 把某东西看作是无价值的 (bǎ mǒu dōngxi kànzuò shì wú jiàzhí de) :: floccinaucinihilipilification (act or habit of describing or regarding something as unimportant) (noun)
   See Mandarin :: definition (action or power of describing, explaining, or making definite) (noun)
-  [[下]][[定]][[意]] (xiàdìngyì) :: definition (action or power of describing, explaining, or making definite) (noun)
+  下定意 (xiàdìngyì) :: definition (action or power of describing, explaining, or making definite) (noun)
 ===desert===
   遗弃 :: abandon (to leave behind or desert) (verb)
 ===designate===
@@ -4740,12 +4748,12 @@ Index: en en->zh
   容器, 容器 (róng qì) :: can (a container used to carry and dispense water for plants) (noun)
 ===distinct===
   See Mandarin :: definition (bodybuilding: the degree to which individual muscles are distinct) (noun)
-  [[清晰]][[度]] (qīngxīdù) :: definition (bodybuilding: the degree to which individual muscles are distinct) (noun)
+  清晰度 (qīngxīdù) :: definition (bodybuilding: the degree to which individual muscles are distinct) (noun)
 ===distinctness===
   See Mandarin :: definition (clarity of visual presentation, distinctness of outline or detail) (noun)
   清晰 (qīngxī) :: definition (clarity of visual presentation, distinctness of outline or detail) (noun)
 ===distribution===
-  [[自由]]的 (zìyóu de) :: free (software: with very few limitations on distribution or improvement) (adjective)
+  自由的 (zìyóu de) :: free (software: with very few limitations on distribution or improvement) (adjective)
 ===divided===
   月 (tr. yuè), 月份 (tr. yuèfèn) :: month (period into which a year is divided) (noun)
   日曆, 日历 (tr. rìlì), 曆 (tr. lì), 历 (tr. lì), 曆法, 历法 (tr. lìfǎ), (colloquial) 月份牌 (tr. yuèfènpái) :: calendar (system by which time is divided) (noun)
@@ -4797,7 +4805,7 @@ Index: en en->zh
 ===earthly===
   化身 (tr. huàshēn) :: avatar (The earthly incarnation of a deity, particularly Vishnu) (noun)
 ===East===
-  日本 (tr. [[Rìběn]]) :: Japan (A Far East country in Asia) (proper noun)
+  日本 (tr. Rìběn) :: Japan (A Far East country in Asia) (proper noun)
   (Cantonese) 日本 (tr. yat6 bun2) :: Japan (A Far East country in Asia) (proper noun)
   (Gan) 日本 :: Japan (A Far East country in Asia) (proper noun)
   (Hakka) 日本 (tr. Ngit-pún) :: Japan (A Far East country in Asia) (proper noun)
@@ -4888,7 +4896,7 @@ Index: en en->zh
   世界語, 世界语 (tr. Shìjièyǔ) :: Esperanto (auxiliary language) (proper noun)
 ===essential===
   See Mandarin :: definition (statement expressing the essential nature of something) (noun)
-  [[定]][[意]] (dìngyì) :: definition (statement expressing the essential nature of something) (noun)
+  定意 (dìngyì) :: definition (statement expressing the essential nature of something) (noun)
 ===etymology===
   (Gan) 語源學, 语源学 (tr. ngi3 ngion4 hok6) :: etymology (study of the historical development of languages, particularly of individual words) (noun)
   語源學, 语源学 (tr. yǔyuánxué) :: etymology (study of the historical development of languages, particularly of individual words) (noun)
@@ -4915,7 +4923,7 @@ Index: en en->zh
   多神教 (duōshénjiào) :: polytheism (belief of existence of many gods) (noun)
 ===explaining===
   See Mandarin :: definition (action or power of describing, explaining, or making definite) (noun)
-  [[下]][[定]][[意]] (xiàdìngyì) :: definition (action or power of describing, explaining, or making definite) (noun)
+  下定意 (xiàdìngyì) :: definition (action or power of describing, explaining, or making definite) (noun)
 ===explains===
   字典 (tr. zìdiǎn) (character dictionary); 詞典, 词典 (tr. cídiǎn) :: dictionary (publication that explains the meanings of an ordered list of words) (noun)
   (Wu (Suzhou dialect)) zïtip :: dictionary (publication that explains the meanings of an ordered list of words) (noun)
@@ -4925,7 +4933,7 @@ Index: en en->zh
   世博會, 世博会 (tr. shìbó-huì), 世界博覽會, 世界博览会 (tr. shìjìe bólǎnhuì) :: World Exposition (a regular international exposition) (noun)
 ===expressing===
   See Mandarin :: definition (statement expressing the essential nature of something) (noun)
-  [[定]][[意]] (dìngyì) :: definition (statement expressing the essential nature of something) (noun)
+  定意 (dìngyì) :: definition (statement expressing the essential nature of something) (noun)
 ===expression===
   (Cantonese) 我鐘意你 (ngo5 zung1 yi3 nei5) :: I love you (platonic expression of inclination or liking) (phrase)
   我很喜歡你, 我很喜欢你 (wǒ hěn xǐ huan nǐ) :: I love you (platonic expression of inclination or liking) (phrase)
@@ -4941,7 +4949,7 @@ Index: en en->zh
 ===FAQ===
   常見問題, 常见问题 (tr. chángjiàn wèntí), 問答集, 问答集 (tr. wèndájí) :: FAQ (acronym for Frequently Asked Questions) (noun)
 ===Far===
-  日本 (tr. [[Rìběn]]) :: Japan (A Far East country in Asia) (proper noun)
+  日本 (tr. Rìběn) :: Japan (A Far East country in Asia) (proper noun)
   (Cantonese) 日本 (tr. yat6 bun2) :: Japan (A Far East country in Asia) (proper noun)
   (Gan) 日本 :: Japan (A Far East country in Asia) (proper noun)
   (Hakka) 日本 (tr. Ngit-pún) :: Japan (A Far East country in Asia) (proper noun)
@@ -4963,7 +4971,7 @@ Index: en en->zh
   貓, 猫 (tr. māo) :: cat (member of Felidae) (noun)
 ===few===
   少 (tr. shǎo) :: few (small number) (determiner)
-  [[自由]]的 (zìyóu de) :: free (software: with very few limitations on distribution or improvement) (adjective)
+  自由的 (zìyóu de) :: free (software: with very few limitations on distribution or improvement) (adjective)
 ===fictitious===
   寓言 (tr. yùyán) :: fable (fictitious narration to enforce some useful truth or precept) (noun)
 ===field===
@@ -5011,7 +5019,7 @@ Index: en en->zh
 ===focusing===
   透鏡, 透镜 (tr. tòujìng), 鏡片, 镜片 (tr. jìngpiàn), 鏡頭, 镜头 (tr. jìngtóu) :: lens (object focusing or defocusing the light passing through it) (noun)
 ===following===
-  [[一]][[天]] :: day (period from midnight to the following midnight) (noun)
+  一天 :: day (period from midnight to the following midnight) (noun)
 ===food===
   给调味 :: season (to flavour food) (verb)
   (Cantonese) 肉 (tr. juk6) :: meat (animal flesh used as food) (noun)
@@ -5035,7 +5043,7 @@ Index: en en->zh
   两周, 兩周 (tr. liǎngzhōu) :: fortnight (period of two weeks) (noun)
 ===four===
   (Old Chinese) 亖 (tr. *hljids) :: four (the cardinal number 4) (cardinal number)
-  四 (tr. [[sì]]) (numeral: 肆) :: four (the cardinal number 4) (cardinal number)
+  四 (tr. ) (numeral: 肆) :: four (the cardinal number 4) (cardinal number)
   (Cantonese) 四 (tr. sei<sup>3</sup>) :: four (the cardinal number 4) (cardinal number)
   (Teochew) 四 (tr. si<sup>3</sup>) :: four (the cardinal number 4) (cardinal number)
   四 (sì) :: four (the digit or figure 4) (noun)
@@ -5048,12 +5056,12 @@ Index: en en->zh
   算盤, 算盘 (suànpán) :: abacus (calculating frame) (noun)
   傘, 伞 (tr. sǎn), 雨傘, 雨伞 (tr. yǔsǎn) :: umbrella (cloth-covered frame used for protection against rain or sun) (noun)
 ===free===
-  [[自由]]的 (zìyóu de) :: free (not imprisoned) (adjective)
-  [[免]][[費]]的 (miǎnfèi de) :: free (obtainable without payment) (adjective)
-  [[自由]]的 (zìyóu de) :: free (unconstrained) (adjective)
-  [[通暢]]的 (tōngchàng de), [[順暢]]的 (shùnchàng de) :: free (unobstructed) (adjective)
-  [[自由]]的 (zìyóu de) :: free (without obligations) (adjective)
-  [[自由]]的 (zìyóu de) :: free (software: with very few limitations on distribution or improvement) (adjective)
+  自由的 (zìyóu de) :: free (not imprisoned) (adjective)
+  免費的 (miǎnfèi de) :: free (obtainable without payment) (adjective)
+  自由的 (zìyóu de) :: free (unconstrained) (adjective)
+  通暢的 (tōngchàng de), 順暢的 (shùnchàng de) :: free (unobstructed) (adjective)
+  自由的 (zìyóu de) :: free (without obligations) (adjective)
+  自由的 (zìyóu de) :: free (software: with very few limitations on distribution or improvement) (adjective)
   解放 (tr. jiěfàng) :: free (make free) (verb)
   使免除 (shǐ miǎnchú) :: absolve (set free) (verb)
   寬恕, 宽恕 (kuānshù) :: absolve (pronounce free or give absolution) (verb)
@@ -5143,7 +5151,7 @@ Index: en en->zh
   動詞, 动词 (dòngcí) :: verb ((grammar) a word that indicates an action, event, or a state) (noun)
   (Min Nan) tōng-sû :: verb ((grammar) a word that indicates an action, event, or a state) (noun)
   (Cantonese) 形容詞 :: adjective ((grammar) a word that modifies a noun or describes a noun’s referent) (noun)
-  [[形容詞]] (xíngróngcí) :: adjective ((grammar) a word that modifies a noun or describes a noun’s referent) (noun)
+  形容詞 (xíngróngcí) :: adjective ((grammar) a word that modifies a noun or describes a noun’s referent) (noun)
   (Min Nan) hêng-iông-sû :: adjective ((grammar) a word that modifies a noun or describes a noun’s referent) (noun)
   及物 (tr. jíwù) :: transitive (in grammar: of a verb, that takes an object or objects) (adjective)
   單數, 单数 (tr. dānshù) :: singular (grammar: form of a word that refers to only one thing) (noun)
@@ -5171,7 +5179,7 @@ Index: en en->zh
   草 (căo), 青草 (qīng cǎo) :: grass (ground cover plant) (noun)
 ===group===
   See Mandarin :: definition (statement of the meaning of a word or word group or a sign or symbol) (noun)
-  定意 (dìngyì); [[釋]][[義]] (shìyì) :: definition (statement of the meaning of a word or word group or a sign or symbol) (noun)
+  定意 (dìngyì); 釋義 (shìyì) :: definition (statement of the meaning of a word or word group or a sign or symbol) (noun)
 ===habit===
   把某東西看作是無價值的, 把某东西看作是无价值的 (bǎ mǒu dōngxi kànzuò shì wú jiàzhí de) :: floccinaucinihilipilification (act or habit of describing or regarding something as unimportant) (noun)
 ===handle===
@@ -5246,9 +5254,9 @@ Index: en en->zh
 ===implied===
   含義, 含义 (tr. hànyì) :: connotation (suggested or implied meaning) (noun)
 ===imprisoned===
-  [[自由]]的 (zìyóu de) :: free (not imprisoned) (adjective)
+  自由的 (zìyóu de) :: free (not imprisoned) (adjective)
 ===improvement===
-  [[自由]]的 (zìyóu de) :: free (software: with very few limitations on distribution or improvement) (adjective)
+  自由的 (zìyóu de) :: free (software: with very few limitations on distribution or improvement) (adjective)
 ===in===
   在 (tr. zài), 里 (tr. ...lǐ) (traditional also: 裡, 裏) :: in (contained by) (preposition)
 ===inattentive===
@@ -5282,7 +5290,7 @@ Index: en en->zh
   (Gan) 語源學, 语源学 (tr. ngi3 ngion4 hok6) :: etymology (study of the historical development of languages, particularly of individual words) (noun)
   語源學, 语源学 (tr. yǔyuánxué) :: etymology (study of the historical development of languages, particularly of individual words) (noun)
   See Mandarin :: definition (bodybuilding: the degree to which individual muscles are distinct) (noun)
-  [[清晰]][[度]] (qīngxīdù) :: definition (bodybuilding: the degree to which individual muscles are distinct) (noun)
+  清晰度 (qīngxīdù) :: definition (bodybuilding: the degree to which individual muscles are distinct) (noun)
   專有名詞, 专有名词 (tr. zhuānyǒu míngcí), 固有名詞, 固有名词 (tr. gùyǒu míngcí) :: proper noun (The name of a particular person, place, organization or other individual entity) (noun)
 ===induced===
   流產, 流产 (tr. líuchǎn), 人工流產, 人工流产 (tr. réngōng-liúchǎn), 人流 (tr. rénliú) :: abortion (induced abortion) (noun)
@@ -5321,7 +5329,7 @@ Index: en en->zh
 ===January===
   一月 (yīyuè), 元月 (yuányuè) :: January (first month of the Gregorian calendar) (proper noun)
 ===Japan===
-  日本 (tr. [[Rìběn]]) :: Japan (A Far East country in Asia) (proper noun)
+  日本 (tr. Rìběn) :: Japan (A Far East country in Asia) (proper noun)
   (Cantonese) 日本 (tr. yat6 bun2) :: Japan (A Far East country in Asia) (proper noun)
   (Gan) 日本 :: Japan (A Far East country in Asia) (proper noun)
   (Hakka) 日本 (tr. Ngit-pún) :: Japan (A Far East country in Asia) (proper noun)
@@ -5331,7 +5339,7 @@ Index: en en->zh
 ===Jews===
   反猶太主義, 反犹太主义 (tr. fǎn-Yóutài-zhǔyì) :: anti-Semitism (prejudice or hostility against Jews) (noun)
 ===job===
-  [[一]][[天]] :: day (part of a day period which one spends at one’s job, school, etc.) (noun)
+  一天 :: day (part of a day period which one spends at one’s job, school, etc.) (noun)
 ===July===
   七月, 7月 (qīyuè) :: July (seventh month of the Gregorian calendar) (proper noun)
 ===jump===
@@ -5433,7 +5441,7 @@ Index: en en->zh
   (Cantonese) 我鐘意你 (ngo5 zung1 yi3 nei5) :: I love you (platonic expression of inclination or liking) (phrase)
   我很喜歡你, 我很喜欢你 (wǒ hěn xǐ huan nǐ) :: I love you (platonic expression of inclination or liking) (phrase)
 ===limitations===
-  [[自由]]的 (zìyóu de) :: free (software: with very few limitations on distribution or improvement) (adjective)
+  自由的 (zìyóu de) :: free (software: with very few limitations on distribution or improvement) (adjective)
 ===limits===
   See Mandarin :: definition (sharp demarcation of outlines or limits) (noun)
   清晰 (qīngxī) :: definition (sharp demarcation of outlines or limits) (noun)
@@ -5487,7 +5495,7 @@ Index: en en->zh
   混淆 (tr. hùnxiáo), 弄亂, 弄乱 (tr. nòngluàn), 搞亂, 搞乱 (tr. gǎoluàn), 使模糊 (shǐ móhu), 使混亂, 使混乱 (shǐ hùnluàn), 使糊塗, 使糊涂 (shǐ hútu) :: obfuscate (make confusing) (verb)
 ===making===
   See Mandarin :: definition (action or power of describing, explaining, or making definite) (noun)
-  [[下]][[定]][[意]] (xiàdìngyì) :: definition (action or power of describing, explaining, or making definite) (noun)
+  下定意 (xiàdìngyì) :: definition (action or power of describing, explaining, or making definite) (noun)
 ===male===
   (Cantonese) 男人 :: man (adult male human) (noun)
   男人 (tr. nánrén), 男的 (tr. nánde) :: man (adult male human) (noun)
@@ -5527,7 +5535,7 @@ Index: en en->zh
   骨質, 骨质 (tr. gǔzhì) :: bone (material) (noun)
   弹簧, 发条 (fātiáo) :: spring (device made of flexible material) (noun)
 ===matter===
-  不管怎樣, 不管怎样 (tr. [[bùguǎn]] [[zěnyàng]]) :: whatever (no matter which; for any) (determiner)
+  不管怎樣, 不管怎样 (tr. bùguǎn zěnyàng) :: whatever (no matter which; for any) (determiner)
   无论如何, wúlùnrúhé :: whatever (indicating the matter is not worthy of further discussion) (interjection)
 ===may===
   可以 (kěyǐ) :: may (have permission to) (verb)
@@ -5539,7 +5547,7 @@ Index: en en->zh
   同義詞, 同义词 (tr. tóngyìcí), 代名詞, 代名词 (tr. dàimíngcí), (near-synonym) 近義詞, 近义词 (tr. jìnyìcí) :: synonym (word with same meaning as another) (noun)
   语义学 (tr. yǔyìxué) :: semantics (science of the meaning of words) (noun)
   See Mandarin :: definition (statement of the meaning of a word or word group or a sign or symbol) (noun)
-  定意 (dìngyì); [[釋]][[義]] (shìyì) :: definition (statement of the meaning of a word or word group or a sign or symbol) (noun)
+  定意 (dìngyì); 釋義 (shìyì) :: definition (statement of the meaning of a word or word group or a sign or symbol) (noun)
 ===meaningless===
   廢話, 废话 (tr. fèihuà), 胡說, 胡说 (tr. húshuō), 胡言 (tr. húyán), (vulgar) 狗屁 (tr. gǒupì) :: nonsense (meaningless words) (noun)
 ===meanings===
@@ -5593,7 +5601,7 @@ Index: en en->zh
   (Wu) 墨西哥 :: Mexico (country) (proper noun)
   墨西哥城 (tr. Mòxīgē chéng) :: Mexico (city) (proper noun)
 ===midnight===
-  [[一]][[天]] :: day (period from midnight to the following midnight) (noun)
+  一天 :: day (period from midnight to the following midnight) (noun)
 ===millennium===
   千年 :: millennium (thousand-year period) (noun)
 ===milliard===
@@ -5619,7 +5627,7 @@ Index: en en->zh
   流產, 流产 (tr. líuchǎn), 失敗, 失败 (tr. shībài), 誤投, 误投 (tr. wùtóu) :: abortion (miscarriage) (noun)
 ===modifies===
   (Cantonese) 形容詞 :: adjective ((grammar) a word that modifies a noun or describes a noun’s referent) (noun)
-  [[形容詞]] (xíngróngcí) :: adjective ((grammar) a word that modifies a noun or describes a noun’s referent) (noun)
+  形容詞 (xíngróngcí) :: adjective ((grammar) a word that modifies a noun or describes a noun’s referent) (noun)
   (Min Nan) hêng-iông-sû :: adjective ((grammar) a word that modifies a noun or describes a noun’s referent) (noun)
 ===mollusc===
   鮑魚, 鲍鱼 (tr. bàoyú) :: abalone (edible univalve mollusc) (noun)
@@ -5657,7 +5665,7 @@ Index: en en->zh
   多元文化 (tr. duōyuán wénhuà) :: multiculturalism (societal idea) (noun)
 ===muscles===
   See Mandarin :: definition (bodybuilding: the degree to which individual muscles are distinct) (noun)
-  [[清晰]][[度]] (qīngxīdù) :: definition (bodybuilding: the degree to which individual muscles are distinct) (noun)
+  清晰度 (qīngxīdù) :: definition (bodybuilding: the degree to which individual muscles are distinct) (noun)
 ===music===
   音樂家, 音乐家 (tr. yīnyuèjiā) :: musician (person who performs or writes music) (noun)
 ===musical===
@@ -5695,7 +5703,7 @@ Index: en en->zh
   美國國家航空航天局, 美国国家航空航天局 (tr. Měiguó guójiā hángkōng hángtiānjú), (Taiwan) 美國國家航空暨太空總署, 美国国家航空暨太空总署 (tr. Měiguó guójiā hángkōng jì tàikōng zǒngshǔ) :: NASA (National Aeronautics and Space Administration) ({{acronym}})
 ===nature===
   See Mandarin :: definition (statement expressing the essential nature of something) (noun)
-  [[定]][[意]] (dìngyì) :: definition (statement expressing the essential nature of something) (noun)
+  定意 (dìngyì) :: definition (statement expressing the essential nature of something) (noun)
 ===near===
   接近 (tr. jiējìn) :: about (near) (preposition)
 ===negro===
@@ -5721,7 +5729,7 @@ Index: en en->zh
 ===ninth===
   九月 (jiǔyuè) :: September (ninth month of the Gregorian calendar) (proper noun)
 ===no===
-  不管怎樣, 不管怎样 (tr. [[bùguǎn]] [[zěnyàng]]) :: whatever (no matter which; for any) (determiner)
+  不管怎樣, 不管怎样 (tr. bùguǎn zěnyàng) :: whatever (no matter which; for any) (determiner)
 ===nominative===
   是 (tr. shì), (absent with adjectives) :: be (used to indicate that the subject plays the role of the predicate nominative) (verb)
 ===non===
@@ -5735,7 +5743,7 @@ Index: en en->zh
   荷蘭, 荷兰 (tr. Hélán) :: Netherlands (country in northwestern Europe) (proper noun)
   (Min Nan) Kē-tē-kok :: Netherlands (country in northwestern Europe) (proper noun)
 ===not===
-  [[自由]]的 (zìyóu de) :: free (not imprisoned) (adjective)
+  自由的 (zìyóu de) :: free (not imprisoned) (adjective)
   可能 (kěnéng) may be, possible :: may (possibly, but not certainly) (verb)
   无论如何, wúlùnrúhé :: whatever (indicating the matter is not worthy of further discussion) (interjection)
   假 (tr. jiǎ de-), 虛擬, 虚拟 (tr. xūnǐ de-) :: pseudo- (not genuine) (prefix)
@@ -5749,7 +5757,7 @@ Index: en en->zh
   (Min Nan) bêng-sû :: noun (grammatical category) (noun)
   專有名詞, 专有名词 (tr. zhuānyǒu míngcí), 固有名詞, 固有名词 (tr. gùyǒu míngcí) :: proper noun (The name of a particular person, place, organization or other individual entity) (noun)
   (Cantonese) 形容詞 :: adjective ((grammar) a word that modifies a noun or describes a noun’s referent) (noun)
-  [[形容詞]] (xíngróngcí) :: adjective ((grammar) a word that modifies a noun or describes a noun’s referent) (noun)
+  形容詞 (xíngróngcí) :: adjective ((grammar) a word that modifies a noun or describes a noun’s referent) (noun)
   (Min Nan) hêng-iông-sû :: adjective ((grammar) a word that modifies a noun or describes a noun’s referent) (noun)
   (Cantonese) 今日 (gam<sup>1</sup>yat<sup>6</sup>) :: today (today (noun)) (noun)
   今天 (jīntiān) :: today (today (noun)) (noun)
@@ -5760,7 +5768,7 @@ Index: en en->zh
 ===November===
   十一月 (shíyīyuè) :: November (eleventh month of the Gregorian calendar) (proper noun)
 ===nowadays===
-  現代, 现代 (tr. [[xiàndài]]) :: today (nowadays) (adverb)
+  現代, 现代 (tr. xiàndài) :: today (nowadays) (adverb)
 ===nu===
   紐, 纽 (tr. niǔ) :: nu (name for the letter of the Greek alphabet: Ν and ν) (noun)
 ===number===
@@ -5792,7 +5800,7 @@ Index: en en->zh
   (Teochew) san1, sam1 :: three (cardinal number 3) (cardinal number)
   (Wu) 三 (se) :: three (cardinal number 3) (cardinal number)
   (Old Chinese) 亖 (tr. *hljids) :: four (the cardinal number 4) (cardinal number)
-  四 (tr. [[sì]]) (numeral: 肆) :: four (the cardinal number 4) (cardinal number)
+  四 (tr. ) (numeral: 肆) :: four (the cardinal number 4) (cardinal number)
   (Cantonese) 四 (tr. sei<sup>3</sup>) :: four (the cardinal number 4) (cardinal number)
   (Teochew) 四 (tr. si<sup>3</sup>) :: four (the cardinal number 4) (cardinal number)
   少 (tr. shǎo) :: few (small number) (determiner)
@@ -5853,11 +5861,11 @@ Index: en en->zh
 ===obligation===
   (of gratitude) 人情債, 人情债 (tr. rénqíngzhài) :: debt (action, state of mind, or object one has an obligation to perform for another) (noun)
 ===obligations===
-  [[自由]]的 (zìyóu de) :: free (without obligations) (adjective)
+  自由的 (zìyóu de) :: free (without obligations) (adjective)
 ===obsolete===
   撤销 (tr. che xiao) :: abate (obsolete: to bring entirely down or put an end to) (verb)
 ===obtainable===
-  [[免]][[費]]的 (miǎnfèi de) :: free (obtainable without payment) (adjective)
+  免費的 (miǎnfèi de) :: free (obtainable without payment) (adjective)
 ===occupy===
   在 (tr. zài) :: be (occupy a place) (verb)
 ===occur===
@@ -5964,7 +5972,7 @@ Index: en en->zh
 ===parole===
   假釋, 假释 (tr. jiǎshì) :: parole (law: a release of (a prisoner)) (noun)
 ===part===
-  [[一]][[天]] :: day (part of a day period which one spends at one’s job, school, etc.) (noun)
+  一天 :: day (part of a day period which one spends at one’s job, school, etc.) (noun)
   頭, 头 (tr. tóu), 頭腦, 头脑 (tr. tóunǎo) :: head (part of the body) (noun)
 ===particle===
   噢 (tr. ō), 喔 (tr. ō) :: o (vocative particle to mark direct address) (interjection)
@@ -5988,7 +5996,7 @@ Index: en en->zh
 ===pay===
   借款 (tr. jièkuǎn), 欠款 (tr. qiànkuǎn), 債務, 债务 (tr. zhàiwù) :: debt (money that one person or entity owes or is required to pay to another) (noun)
 ===payment===
-  [[免]][[費]]的 (miǎnfèi de) :: free (obtainable without payment) (adjective)
+  免費的 (miǎnfèi de) :: free (obtainable without payment) (adjective)
 ===pencil===
   鉛筆, 铅笔 (tr. qiānbǐ) :: pencil (graphite writing-instrument) (noun)
 ===penis===
@@ -6010,9 +6018,9 @@ Index: en en->zh
   月 (tr. yuè), 月份 (tr. yuèfèn) :: month (period into which a year is divided) (noun)
   (Cantonese) 日 (tr. jat6) :: day (period of 24 hours) (noun)
   日 (tr. rì), 天 (tr. tiān) :: day (period of 24 hours) (noun)
-  [[一]][[天]] :: day (period from midnight to the following midnight) (noun)
-  [[白]][[晝]] :: day (rotational period of a planet) (noun)
-  [[一]][[天]] :: day (part of a day period which one spends at one’s job, school, etc.) (noun)
+  一天 :: day (period from midnight to the following midnight) (noun)
+  白晝 :: day (rotational period of a planet) (noun)
+  一天 :: day (part of a day period which one spends at one’s job, school, etc.) (noun)
   白天 :: day (period between sunrise and sunset) (noun)
   小時, 小时 (tr. xiǎoshí), (informal) 鐘頭, 钟头 (tr. zhōngtóu) :: hour (Time period of sixty minutes) (noun)
   千年 :: millennium (thousand-year period) (noun)
@@ -6069,7 +6077,7 @@ Index: en en->zh
   (Min Nan) 行星 (tr. hêng-seng) :: planet (each of the seven major bodies which move relative to the fixed stars in the night sky) (noun)
   行星 (tr. xíngxīng) :: planet (rocky or gaseous spherical bodies orbiting the Sun) (noun)
   行星 (xíngxīng) :: planet (similar body in orbit around a star) (noun)
-  [[白]][[晝]] :: day (rotational period of a planet) (noun)
+  白晝 :: day (rotational period of a planet) (noun)
 ===plant===
   (Cantonese) 南瓜 (tr. naam4 gwaa1),番瓜 (tr. faan1 gwaa1) :: pumpkin (plant) (noun)
   南瓜 (tr. nánguā) :: pumpkin (plant) (noun)
@@ -6134,7 +6142,7 @@ Index: en en->zh
 ===possibly===
   可能 (kěnéng) may be, possible :: may (possibly, but not certainly) (verb)
 ===posterior===
-  [[腹]][[部]] (fùbù) :: abdomen (the posterior section of an arthopod's body) (noun)
+  腹部 (fùbù) :: abdomen (the posterior section of an arthopod's body) (noun)
 ===potential===
   約會, 约会 (tr. yuēhuì), 幽會, 幽会 (tr. yōuhuì) :: date (meeting with a lover or potential lover; a person so met) (noun)
 ===pound===
@@ -6142,7 +6150,7 @@ Index: en en->zh
   (British pound) 英鎊, 英镑 (tr. Yīngbàng) :: pound (unit of currency) (noun)
 ===power===
   See Mandarin :: definition (action or power of describing, explaining, or making definite) (noun)
-  [[下]][[定]][[意]] (xiàdìngyì) :: definition (action or power of describing, explaining, or making definite) (noun)
+  下定意 (xiàdìngyì) :: definition (action or power of describing, explaining, or making definite) (noun)
 ===pre===
   約會, 约会 (tr. yuēhuì) :: date (pre-arranged social meeting) (noun)
 ===precept===
@@ -6171,12 +6179,12 @@ Index: en en->zh
 ===process===
   (Traditional Chinese) 中斷, 放棄 :: abort (The function used to abort a process) (noun)
   See Mandarin :: definition (action or process of defining) (noun)
-  [[下]][[定]][[意]] (xiàdìngyì) :: definition (action or process of defining) (noun)
+  下定意 (xiàdìngyì) :: definition (action or process of defining) (noun)
   出生 (tr. chūshēng) :: birth (process of childbearing) (noun)
 ===product===
   中止, 夭折 :: abort (The product of a miscarriage) (noun)
   See Mandarin :: definition (product of defining) (noun)
-  [[定]][[意]] (dìngyì) :: definition (product of defining) (noun)
+  定意 (dìngyì) :: definition (product of defining) (noun)
 ===promotes===
   药 (yào), 药材 (yàocái), 藥物 (yàowù), 药物 (yàowù), 经方 (jīngfāng) :: medicine (substance which promotes healing) (noun)
 ===pronoun===
@@ -6270,7 +6278,7 @@ Index: en en->zh
   百科全书 (bǎikēquánshū) :: encyclopaedia (reference book) (noun)
 ===referent===
   (Cantonese) 形容詞 :: adjective ((grammar) a word that modifies a noun or describes a noun’s referent) (noun)
-  [[形容詞]] (xíngróngcí) :: adjective ((grammar) a word that modifies a noun or describes a noun’s referent) (noun)
+  形容詞 (xíngróngcí) :: adjective ((grammar) a word that modifies a noun or describes a noun’s referent) (noun)
   (Min Nan) hêng-iông-sû :: adjective ((grammar) a word that modifies a noun or describes a noun’s referent) (noun)
 ===refers===
   單數, 单数 (tr. dānshù) :: singular (grammar: form of a word that refers to only one thing) (noun)
@@ -6343,7 +6351,7 @@ Index: en en->zh
   我愛你, 我爱你 (tr. wǒ ài nǐ) :: I love you (affirmation of romantic feeling) (phrase)
   (Wu) 我爱侬 (tr. wo ei non, ngu ei non) :: I love you (affirmation of romantic feeling) (phrase)
 ===rotational===
-  [[白]][[晝]] :: day (rotational period of a planet) (noun)
+  白晝 :: day (rotational period of a planet) (noun)
 ===sale===
   產品, 产品 (chǎnpǐn), 貨物, 货物 (huòwù), 物品 (wùpǐn), 製品, 制品, (zhìpǐn), 製品, 制品 (zhìpǐn) :: merchandise (commodities offered for sale) (noun)
 ===salt===
@@ -6357,7 +6365,7 @@ Index: en en->zh
 ===Saturday===
   星期六 (xīngqī liù) :: Saturday (day of the week) (noun)
 ===school===
-  [[一]][[天]] :: day (part of a day period which one spends at one’s job, school, etc.) (noun)
+  一天 :: day (part of a day period which one spends at one’s job, school, etc.) (noun)
   年級, 年级 (tr. niánjí), (academic year) 學年, 学年 (tr. xuénián) :: year (a level or grade at school or college) (noun)
 ===science===
   语义学 (tr. yǔyìxué) :: semantics (science of the meaning of words) (noun)
@@ -6375,7 +6383,7 @@ Index: en en->zh
   第二 (tr. dì'èr) :: second (second (numeral)) (adjective)
   (formal) 秒鐘, 秒钟 (tr. miǎozhōng), (informal) 秒 (tr. miǎo) :: second (SI unit of time) (noun)
 ===section===
-  [[腹]][[部]] (fùbù) :: abdomen (the posterior section of an arthopod's body) (noun)
+  腹部 (fùbù) :: abdomen (the posterior section of an arthopod's body) (noun)
 ===seen===
   太陽, 太阳 (tr. tàiyáng), 恒星 (tr. héngxīng), 日 (tr. rì) :: sun (any star, especially when seen as the centre of any single solar system) (noun)
 ===selling===
@@ -6447,7 +6455,7 @@ Index: en en->zh
   是 (tr. shì) :: be (used to indicate that the values on either side of an equation are the same) (verb)
 ===sign===
   See Mandarin :: definition (statement of the meaning of a word or word group or a sign or symbol) (noun)
-  定意 (dìngyì); [[釋]][[義]] (shìyì) :: definition (statement of the meaning of a word or word group or a sign or symbol) (noun)
+  定意 (dìngyì); 釋義 (shìyì) :: definition (statement of the meaning of a word or word group or a sign or symbol) (noun)
 ===similar===
   行星 (xíngxīng) :: planet (similar body in orbit around a star) (noun)
   是 (tr. shì), 有 (tr. yǒu), 在 (tr. zài), 來, 来 (tr. lái) :: be (elliptical form of "be here", or similar) (verb)
@@ -6514,7 +6522,7 @@ Index: en en->zh
 ===societal===
   多元文化 (tr. duōyuán wénhuà) :: multiculturalism (societal idea) (noun)
 ===software===
-  [[自由]]的 (zìyóu de) :: free (software: with very few limitations on distribution or improvement) (adjective)
+  自由的 (zìyóu de) :: free (software: with very few limitations on distribution or improvement) (adjective)
 ===solar===
   太陽, 太阳 (tr. tàiyáng), 恒星 (tr. héngxīng), 日 (tr. rì) :: sun (any star, especially when seen as the centre of any single solar system) (noun)
 ===some===
@@ -6554,7 +6562,7 @@ Index: en en->zh
   言論自由, 言论自由 (tr. yánlùnzìyóu) :: freedom of speech (right to speak without fear of harm) (noun)
   矛盾修飾法, 矛盾修饰法 (tr. máodùn xiūshìfǎ), 矛盾語, 矛盾语 (tr. máodùnyǔ) :: oxymoron (figure of speech) (noun)
 ===spends===
-  [[一]][[天]] :: day (part of a day period which one spends at one’s job, school, etc.) (noun)
+  一天 :: day (part of a day period which one spends at one’s job, school, etc.) (noun)
 ===spherical===
   行星 (tr. xíngxīng) :: planet (rocky or gaseous spherical bodies orbiting the Sun) (noun)
 ===spring===
@@ -6585,9 +6593,9 @@ Index: en en->zh
 ===statement===
   廢話, 废话 (tr. fèihuà), 胡說, 胡说 (tr. húshuō), 胡言 (tr. húyán), 狗屁 (tr. gǒupì) (vulgar) :: nonsense (untrue statement) (noun)
   See Mandarin :: definition (statement of the meaning of a word or word group or a sign or symbol) (noun)
-  定意 (dìngyì); [[釋]][[義]] (shìyì) :: definition (statement of the meaning of a word or word group or a sign or symbol) (noun)
+  定意 (dìngyì); 釋義 (shìyì) :: definition (statement of the meaning of a word or word group or a sign or symbol) (noun)
   See Mandarin :: definition (statement expressing the essential nature of something) (noun)
-  [[定]][[意]] (dìngyì) :: definition (statement expressing the essential nature of something) (noun)
+  定意 (dìngyì) :: definition (statement expressing the essential nature of something) (noun)
 ===stock===
   股票 (tr. gǔpiào) :: stock (finance: capital raised by a company) (noun)
 ===stop===
@@ -6647,7 +6655,7 @@ Index: en en->zh
   (give up throne) 禪讓, 禅让 (tr. shànràng), (leave any position) 退位 (tr. tuìwèi), 退出 (tr. tuìchū) :: abdicate (surrender or relinquish) (verb)
 ===symbol===
   See Mandarin :: definition (statement of the meaning of a word or word group or a sign or symbol) (noun)
-  定意 (dìngyì); [[釋]][[義]] (shìyì) :: definition (statement of the meaning of a word or word group or a sign or symbol) (noun)
+  定意 (dìngyì); 釋義 (shìyì) :: definition (statement of the meaning of a word or word group or a sign or symbol) (noun)
   零 (tr. líng), 〇 :: zero (numeric symbol of zero) (noun)
   數詞, 数词 (tr. shùcí), 數字, 数字 (tr. shùzì) :: numeral (word or symbol representing a number) (noun)
 ===symbols===
@@ -6759,8 +6767,8 @@ Index: en en->zh
   金屬容器, 金属容器 (jīn shǔ róng qì) :: can (a tin-plate canister) (noun)
 ===today===
   (Cantonese) 今日 (tr. gam<sup>1</sup>yat<sup>6</sup>) :: today (on the current day) (adverb)
-  今天 (tr. [[jīntiān]]), 今日 (tr. [[jīnrì]]) :: today (on the current day) (adverb)
-  現代, 现代 (tr. [[xiàndài]]) :: today (nowadays) (adverb)
+  今天 (tr. jīntiān), 今日 (tr. jīnrì) :: today (on the current day) (adverb)
+  現代, 现代 (tr. xiàndài) :: today (nowadays) (adverb)
   (Cantonese) 今日 (gam<sup>1</sup>yat<sup>6</sup>) :: today (today (noun)) (noun)
   今天 (jīntiān) :: today (today (noun)) (noun)
   (Min Nan) 今仔日 (kin-á-ji̍t) :: today (today (noun)) (noun)
@@ -6825,7 +6833,7 @@ Index: en en->zh
 ===umbrella===
   傘, 伞 (tr. sǎn), 雨傘, 雨伞 (tr. yǔsǎn) :: umbrella (cloth-covered frame used for protection against rain or sun) (noun)
 ===unconstrained===
-  [[自由]]的 (zìyóu de) :: free (unconstrained) (adjective)
+  自由的 (zìyóu de) :: free (unconstrained) (adjective)
 ===uncountable===
   不可數, 不可数 (tr. bùkěshǔ) :: uncountable (linguistics: about a noun which cannot be counted) (adjective)
 ===unimportant===
@@ -6844,7 +6852,7 @@ Index: en en->zh
 ===univalve===
   鮑魚, 鲍鱼 (tr. bàoyú) :: abalone (edible univalve mollusc) (noun)
 ===unobstructed===
-  [[通暢]]的 (tōngchàng de), [[順暢]]的 (shùnchàng de) :: free (unobstructed) (adjective)
+  通暢的 (tōngchàng de), 順暢的 (shùnchàng de) :: free (unobstructed) (adjective)
 ===untrue===
   廢話, 废话 (tr. fèihuà), 胡說, 胡说 (tr. húshuō), 胡言 (tr. húyán), 狗屁 (tr. gǒupì) (vulgar) :: nonsense (untrue statement) (noun)
 ===upper===
@@ -6906,7 +6914,7 @@ Index: en en->zh
 ===verbs===
   (not used) :: be ((archaic) used to form the perfect aspect with certain intransitive verbs) (verb)
 ===very===
-  [[自由]]的 (zìyóu de) :: free (software: with very few limitations on distribution or improvement) (adjective)
+  自由的 (zìyóu de) :: free (software: with very few limitations on distribution or improvement) (adjective)
   傾盆大雨, 倾盆大雨 (tr. qīngpéndàyǔ) :: rain cats and dogs (to rain very heavily) (verb)
 ===vessel===
   罐頭, 罐头 (guàn tóu) :: can (a more or less cylindrical vessel for liquids) (noun)
@@ -6950,22 +6958,22 @@ Index: en en->zh
 ===weeks===
   两周, 兩周 (tr. liǎngzhōu) :: fortnight (period of two weeks) (noun)
 ===whatever===
-  不管怎樣, 不管怎样 (tr. [[bùguǎn]] [[zěnyàng]]) :: whatever (no matter which; for any) (determiner)
-  無論什麼, 无论什么 (tr. [[wúlùn]] [[shénme]]), 無論何事, 无论何事 (tr. [[wúlùn]] [[héshì]]) :: whatever (anything) (determiner)
+  不管怎樣, 不管怎样 (tr. bùguǎn zěnyàng) :: whatever (no matter which; for any) (determiner)
+  無論什麼, 无论什么 (tr. wúlùn shénme), 無論何事, 无论何事 (tr. wúlùn héshì) :: whatever (anything) (determiner)
   无论如何, wúlùnrúhé :: whatever (indicating the matter is not worthy of further discussion) (interjection)
-  無論什麼, 无论什么 (tr. [[wúlùn]] [[shénme]]) :: whatever (anything) (pronoun)
+  無論什麼, 无论什么 (tr. wúlùn shénme) :: whatever (anything) (pronoun)
 ===when===
   太陽, 太阳 (tr. tàiyáng), 恒星 (tr. héngxīng), 日 (tr. rì) :: sun (any star, especially when seen as the centre of any single solar system) (noun)
 ===where===
   地獄, 地狱 (tr. dìyù) :: hell (where sinners go) (proper noun)
 ===which===
   月 (tr. yuè), 月份 (tr. yuèfèn) :: month (period into which a year is divided) (noun)
-  [[一]][[天]] :: day (part of a day period which one spends at one’s job, school, etc.) (noun)
+  一天 :: day (part of a day period which one spends at one’s job, school, etc.) (noun)
   反義詞, 反义词 (tr. fǎnyìcí) :: antonym (word which has the opposite meaning) (noun)
   日曆, 日历 (tr. rìlì), 曆 (tr. lì), 历 (tr. lì), 曆法, 历法 (tr. lìfǎ), (colloquial) 月份牌 (tr. yuèfènpái) :: calendar (system by which time is divided) (noun)
   See Mandarin :: definition (bodybuilding: the degree to which individual muscles are distinct) (noun)
-  [[清晰]][[度]] (qīngxīdù) :: definition (bodybuilding: the degree to which individual muscles are distinct) (noun)
-  不管怎樣, 不管怎样 (tr. [[bùguǎn]] [[zěnyàng]]) :: whatever (no matter which; for any) (determiner)
+  清晰度 (qīngxīdù) :: definition (bodybuilding: the degree to which individual muscles are distinct) (noun)
+  不管怎樣, 不管怎样 (tr. bùguǎn zěnyàng) :: whatever (no matter which; for any) (determiner)
   行星 (tr. xíngxīng) :: planet (each of the seven major bodies which move relative to the fixed stars in the night sky) (noun)
   (Min Nan) 行星 (tr. hêng-seng) :: planet (each of the seven major bodies which move relative to the fixed stars in the night sky) (noun)
   药 (yào), 药材 (yàocái), 藥物 (yàowù), 药物 (yàowù), 经方 (jīngfāng) :: medicine (substance which promotes healing) (noun)
@@ -6985,8 +6993,8 @@ Index: en en->zh
   (Cantonese) 天時冷 (tr. tin1 si4 laang) :: winter (fourth season, marked by short days and lowest temperatures) (noun)
   冬天 (tr. dōngtiān), 冬季 (tr. dōngjì) :: winter (fourth season, marked by short days and lowest temperatures) (noun)
 ===without===
-  [[免]][[費]]的 (miǎnfèi de) :: free (obtainable without payment) (adjective)
-  [[自由]]的 (zìyóu de) :: free (without obligations) (adjective)
+  免費的 (miǎnfèi de) :: free (obtainable without payment) (adjective)
+  自由的 (zìyóu de) :: free (without obligations) (adjective)
   言論自由, 言论自由 (tr. yánlùnzìyóu) :: freedom of speech (right to speak without fear of harm) (noun)
 ===wolf===
   狼 (tr. láng) :: wolf (animal) (noun)
@@ -7001,13 +7009,13 @@ Index: en en->zh
   動詞, 动词 (dòngcí) :: verb ((grammar) a word that indicates an action, event, or a state) (noun)
   (Min Nan) tōng-sû :: verb ((grammar) a word that indicates an action, event, or a state) (noun)
   (Cantonese) 形容詞 :: adjective ((grammar) a word that modifies a noun or describes a noun’s referent) (noun)
-  [[形容詞]] (xíngróngcí) :: adjective ((grammar) a word that modifies a noun or describes a noun’s referent) (noun)
+  形容詞 (xíngróngcí) :: adjective ((grammar) a word that modifies a noun or describes a noun’s referent) (noun)
   (Min Nan) hêng-iông-sû :: adjective ((grammar) a word that modifies a noun or describes a noun’s referent) (noun)
   名 (míng), 名字 (míngzì) :: name (word or phrase indicating a particular person, place, class or thing) (noun)
   縮寫, 缩写 (tr. suōxiě); 簡寫, 简写 (tr. jiǎnxiě); 略語, 略语 (tr. lüèyǔ) :: abbreviation (shortened or contracted form of a word or phrase) (noun)
   複數, 复数 (tr. fùshù), 眾數, 众数 (tr. zhòngshù) :: plural (word in plural form) (noun)
   See Mandarin :: definition (statement of the meaning of a word or word group or a sign or symbol) (noun)
-  定意 (dìngyì); [[釋]][[義]] (shìyì) :: definition (statement of the meaning of a word or word group or a sign or symbol) (noun)
+  定意 (dìngyì); 釋義 (shìyì) :: definition (statement of the meaning of a word or word group or a sign or symbol) (noun)
   數詞, 数词 (tr. shùcí), 數字, 数字 (tr. shùzì) :: numeral (word or symbol representing a number) (noun)
   單數, 单数 (tr. dānshù) :: singular (grammar: form of a word that refers to only one thing) (noun)
   縮寫, 缩写 (tr. suōxiě), 縮略詞, 缩略词 (tr. suōlüècí), 略語, 略语 (tr. lüèyǔ) :: acronym (word formed by initial letters) (noun)