aboutsummaryrefslogtreecommitdiffstats
path: root/tools/dicttool/src
diff options
context:
space:
mode:
authorSatoshi Kataoka <satok@google.com>2013-12-13 04:15:33 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2013-12-13 04:15:33 +0000
commit18d033405c18a8dc28f60ca22d1d0df23a679384 (patch)
tree77ae6dc696eb7f2942e6d5bfebdccb95eebf8a6e /tools/dicttool/src
parent95050f54e92ff5465e713990315e8cf421836a64 (diff)
parentc95efbbd575239b97db20b71fb347b543b5808f8 (diff)
downloadlatinime-18d033405c18a8dc28f60ca22d1d0df23a679384.tar.gz
latinime-18d033405c18a8dc28f60ca22d1d0df23a679384.tar.xz
latinime-18d033405c18a8dc28f60ca22d1d0df23a679384.zip
Merge branch 'master' of https://googleplex-android.googlesource.com/_direct/platform/packages/inputmethods/LatinIME
Diffstat (limited to 'tools/dicttool/src')
-rw-r--r--tools/dicttool/src/com/android/inputmethod/latin/dicttool/CombinedInputOutput.java15
-rw-r--r--tools/dicttool/src/com/android/inputmethod/latin/dicttool/DictionaryMaker.java6
-rw-r--r--tools/dicttool/src/com/android/inputmethod/latin/dicttool/Diff.java12
-rw-r--r--tools/dicttool/src/com/android/inputmethod/latin/dicttool/XmlDictInputOutput.java13
4 files changed, 40 insertions, 6 deletions
diff --git a/tools/dicttool/src/com/android/inputmethod/latin/dicttool/CombinedInputOutput.java b/tools/dicttool/src/com/android/inputmethod/latin/dicttool/CombinedInputOutput.java
index 16f82dafd..4b6716936 100644
--- a/tools/dicttool/src/com/android/inputmethod/latin/dicttool/CombinedInputOutput.java
+++ b/tools/dicttool/src/com/android/inputmethod/latin/dicttool/CombinedInputOutput.java
@@ -50,6 +50,8 @@ public class CombinedInputOutput {
private static final String NOT_A_WORD_TAG = "not_a_word";
private static final String WHITELIST_TAG = "whitelist";
private static final String OPTIONS_TAG = "options";
+ private static final String GERMAN_UMLAUT_PROCESSING_OPTION = "german_umlaut_processing";
+ private static final String FRENCH_LIGATURE_PROCESSING_OPTION = "french_ligature_processing";
private static final String COMMENT_LINE_STARTER = "#";
/**
@@ -110,9 +112,13 @@ public class CombinedInputOutput {
attributes.put(keyValue[0], keyValue[1]);
}
+ final boolean processUmlauts =
+ GERMAN_UMLAUT_PROCESSING_OPTION.equals(attributes.get(OPTIONS_TAG));
+ final boolean processLigatures =
+ FRENCH_LIGATURE_PROCESSING_OPTION.equals(attributes.get(OPTIONS_TAG));
attributes.remove(OPTIONS_TAG);
- final FusionDictionary dict =
- new FusionDictionary(new PtNodeArray(), new DictionaryOptions(attributes));
+ final FusionDictionary dict = new FusionDictionary(new PtNodeArray(), new DictionaryOptions(
+ attributes, processUmlauts, processLigatures));
String line;
String word = null;
@@ -210,6 +216,11 @@ public class CombinedInputOutput {
destination.write(options.get(DICTIONARY_TAG));
options.remove(DICTIONARY_TAG);
}
+ if (dict.mOptions.mGermanUmlautProcessing) {
+ destination.write("," + OPTIONS_TAG + "=" + GERMAN_UMLAUT_PROCESSING_OPTION);
+ } else if (dict.mOptions.mFrenchLigatureProcessing) {
+ destination.write("," + OPTIONS_TAG + "=" + FRENCH_LIGATURE_PROCESSING_OPTION);
+ }
for (final String key : dict.mOptions.mAttributes.keySet()) {
final String value = dict.mOptions.mAttributes.get(key);
destination.write("," + key + "=" + value);
diff --git a/tools/dicttool/src/com/android/inputmethod/latin/dicttool/DictionaryMaker.java b/tools/dicttool/src/com/android/inputmethod/latin/dicttool/DictionaryMaker.java
index b3543a0c2..5c7e8b4f2 100644
--- a/tools/dicttool/src/com/android/inputmethod/latin/dicttool/DictionaryMaker.java
+++ b/tools/dicttool/src/com/android/inputmethod/latin/dicttool/DictionaryMaker.java
@@ -159,9 +159,9 @@ public class DictionaryMaker {
if (OPTION_VERSION_2.equals(arg)) {
// Do nothing, this is the default
} else if (OPTION_VERSION_3.equals(arg)) {
- outputBinaryFormatVersion = FormatSpec.VERSION3;
+ outputBinaryFormatVersion = 3;
} else if (OPTION_VERSION_4.equals(arg)) {
- outputBinaryFormatVersion = FormatSpec.VERSION4;
+ outputBinaryFormatVersion = 4;
} else if (OPTION_HELP.equals(arg)) {
displayHelp();
} else {
@@ -358,7 +358,7 @@ public class DictionaryMaker {
final File outputFile = new File(outputFilename);
final FormatSpec.FormatOptions formatOptions = new FormatSpec.FormatOptions(version);
final DictEncoder dictEncoder;
- if (version == FormatSpec.VERSION4) {
+ if (version == 4) {
dictEncoder = new Ver4DictEncoder(outputFile);
} else {
dictEncoder = new Ver3DictEncoder(outputFile);
diff --git a/tools/dicttool/src/com/android/inputmethod/latin/dicttool/Diff.java b/tools/dicttool/src/com/android/inputmethod/latin/dicttool/Diff.java
index 7ac3c67a1..66fd084cd 100644
--- a/tools/dicttool/src/com/android/inputmethod/latin/dicttool/Diff.java
+++ b/tools/dicttool/src/com/android/inputmethod/latin/dicttool/Diff.java
@@ -85,6 +85,18 @@ public class Diff extends Dicttool.Command {
private static void diffHeaders(final FusionDictionary dict0, final FusionDictionary dict1) {
boolean hasDifferences = false;
+ if (dict0.mOptions.mFrenchLigatureProcessing != dict1.mOptions.mFrenchLigatureProcessing) {
+ System.out.println(" French ligature processing : "
+ + dict0.mOptions.mFrenchLigatureProcessing + " <=> "
+ + dict1.mOptions.mFrenchLigatureProcessing);
+ hasDifferences = true;
+ }
+ else if (dict0.mOptions.mGermanUmlautProcessing != dict1.mOptions.mGermanUmlautProcessing) {
+ System.out.println(" German umlaut processing : "
+ + dict0.mOptions.mGermanUmlautProcessing + " <=> "
+ + dict1.mOptions.mGermanUmlautProcessing);
+ hasDifferences = true;
+ }
final HashMap<String, String> options1 =
new HashMap<String, String>(dict1.mOptions.mAttributes);
for (final String optionKey : dict0.mOptions.mAttributes.keySet()) {
diff --git a/tools/dicttool/src/com/android/inputmethod/latin/dicttool/XmlDictInputOutput.java b/tools/dicttool/src/com/android/inputmethod/latin/dicttool/XmlDictInputOutput.java
index d226251c1..4e99bf979 100644
--- a/tools/dicttool/src/com/android/inputmethod/latin/dicttool/XmlDictInputOutput.java
+++ b/tools/dicttool/src/com/android/inputmethod/latin/dicttool/XmlDictInputOutput.java
@@ -57,6 +57,8 @@ public class XmlDictInputOutput {
private static final String NOT_A_WORD_ATTR = "not_a_word";
private static final String OPTIONS_KEY = "options";
+ private static final String GERMAN_UMLAUT_PROCESSING_OPTION = "german_umlaut_processing";
+ private static final String FRENCH_LIGATURE_PROCESSING_OPTION = "french_ligature_processing";
/**
* SAX handler for a unigram XML file.
@@ -118,8 +120,12 @@ public class XmlDictInputOutput {
attributes.put(attrName, attrs.getValue(attrIndex));
}
final String optionsString = attributes.get(OPTIONS_KEY);
+ final boolean processUmlauts =
+ GERMAN_UMLAUT_PROCESSING_OPTION.equals(optionsString);
+ final boolean processLigatures =
+ FRENCH_LIGATURE_PROCESSING_OPTION.equals(optionsString);
mDictionary = new FusionDictionary(new PtNodeArray(),
- new DictionaryOptions(attributes));
+ new DictionaryOptions(attributes, processUmlauts, processLigatures));
} else {
mState = UNKNOWN;
}
@@ -355,6 +361,11 @@ public class XmlDictInputOutput {
// TODO: use an XMLSerializer if this gets big
destination.write("<wordlist format=\"2\"");
final HashMap<String, String> options = dict.mOptions.mAttributes;
+ if (dict.mOptions.mGermanUmlautProcessing) {
+ destination.write(" " + OPTIONS_KEY + "=\"" + GERMAN_UMLAUT_PROCESSING_OPTION + "\"");
+ } else if (dict.mOptions.mFrenchLigatureProcessing) {
+ destination.write(" " + OPTIONS_KEY + "=\"" + FRENCH_LIGATURE_PROCESSING_OPTION + "\"");
+ }
for (final String key : dict.mOptions.mAttributes.keySet()) {
final String value = dict.mOptions.mAttributes.get(key);
destination.write(" " + key + "=\"" + value + "\"");