Loading java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.java +55 −54 Original line number Diff line number Diff line Loading @@ -3476,60 +3476,61 @@ public final class KeyboardTextsTable { // TODO: Use the language + "_" + region representation for the locale string key. // Currently we are dropping the region from the key. private static final Object[] LANGUAGES_AND_TEXTS = { "DEFAULT", LANGUAGE_DEFAULT, /* default */ "af", LANGUAGE_af, /* Afrikaans */ "ar", LANGUAGE_ar, /* Arabic */ "az" /* "az_AZ" */, LANGUAGE_az_AZ, /* Azerbaijani (Azerbaijan) */ "be" /* "be_BY" */, LANGUAGE_be_BY, /* Belarusian (Belarus) */ "bg", LANGUAGE_bg, /* Bulgarian */ "ca", LANGUAGE_ca, /* Catalan */ "cs", LANGUAGE_cs, /* Czech */ "da", LANGUAGE_da, /* Danish */ "de", LANGUAGE_de, /* German */ "el", LANGUAGE_el, /* Greek */ "en", LANGUAGE_en, /* English */ "eo", LANGUAGE_eo, /* Esperanto */ "es", LANGUAGE_es, /* Spanish */ "et" /* "et_EE" */, LANGUAGE_et_EE, /* Estonian (Estonia) */ "fa", LANGUAGE_fa, /* Persian */ "fi", LANGUAGE_fi, /* Finnish */ "fr", LANGUAGE_fr, /* French */ "hi", LANGUAGE_hi, /* Hindi */ "hr", LANGUAGE_hr, /* Croatian */ "hu", LANGUAGE_hu, /* Hungarian */ "hy" /* "hy_AM" */, LANGUAGE_hy_AM, /* Armenian (Armenia) */ "is", LANGUAGE_is, /* Icelandic */ "it", LANGUAGE_it, /* Italian */ "iw", LANGUAGE_iw, /* Hebrew */ "ka" /* "ka_GE" */, LANGUAGE_ka_GE, /* Georgian (Georgia) */ "kk", LANGUAGE_kk, /* Kazakh */ "km" /* "km_KH" */, LANGUAGE_km_KH, /* Khmer (Cambodia) */ "ky", LANGUAGE_ky, /* Kirghiz */ "lo" /* "lo_LA" */, LANGUAGE_lo_LA, /* Lao (Laos) */ "lt", LANGUAGE_lt, /* Lithuanian */ "lv", LANGUAGE_lv, /* Latvian */ "mk", LANGUAGE_mk, /* Macedonian */ "mn" /* "mn_MN" */, LANGUAGE_mn_MN, /* Mongolian (Mongolia) */ "nb", LANGUAGE_nb, /* Norwegian Bokmål */ "ne" /* "ne_NP" */, LANGUAGE_ne_NP, /* Nepali (Nepal) */ "nl", LANGUAGE_nl, /* Dutch */ "pl", LANGUAGE_pl, /* Polish */ "pt", LANGUAGE_pt, /* Portuguese */ "rm", LANGUAGE_rm, /* Raeto-Romance */ "ro", LANGUAGE_ro, /* Romanian */ "ru", LANGUAGE_ru, /* Russian */ "sk", LANGUAGE_sk, /* Slovak */ "sl", LANGUAGE_sl, /* Slovenian */ "sr", LANGUAGE_sr, /* Serbian */ "sv", LANGUAGE_sv, /* Swedish */ "sw", LANGUAGE_sw, /* Swahili */ "th", LANGUAGE_th, /* Thai */ "tl", LANGUAGE_tl, /* Tagalog */ "tr", LANGUAGE_tr, /* Turkish */ "uk", LANGUAGE_uk, /* Ukrainian */ "vi", LANGUAGE_vi, /* Vietnamese */ "zu", LANGUAGE_zu, /* Zulu */ "zz", LANGUAGE_zz, /* Alphabet */ // "locale", TEXT_ARRAY, /* numberOfNonNullText/lengthOf_TEXT_ARRAY localeName */ "DEFAULT", LANGUAGE_DEFAULT, /* 156/156 default */ "af", LANGUAGE_af, /* 8/ 9 Afrikaans */ "ar", LANGUAGE_ar, /* 48/119 Arabic */ "az", LANGUAGE_az_AZ, /* 8/ 16 Azerbaijani (Azerbaijan) */ "be", LANGUAGE_be_BY, /* 10/ 54 Belarusian (Belarus) */ "bg", LANGUAGE_bg, /* 2/ 54 Bulgarian */ "ca", LANGUAGE_ca, /* 11/126 Catalan */ "cs", LANGUAGE_cs, /* 17/ 56 Czech */ "da", LANGUAGE_da, /* 19/ 56 Danish */ "de", LANGUAGE_de, /* 16/ 56 German */ "el", LANGUAGE_el, /* 1/ 52 Greek */ "en", LANGUAGE_en, /* 8/ 8 English */ "eo", LANGUAGE_eo, /* 26/126 Esperanto */ "es", LANGUAGE_es, /* 8/ 60 Spanish */ "et", LANGUAGE_et_EE, /* 22/ 54 Estonian (Estonia) */ "fa", LANGUAGE_fa, /* 49/119 Persian */ "fi", LANGUAGE_fi, /* 10/ 25 Finnish */ "fr", LANGUAGE_fr, /* 13/ 51 French */ "hi", LANGUAGE_hi, /* 24/ 91 Hindi */ "hr", LANGUAGE_hr, /* 9/ 56 Croatian */ "hu", LANGUAGE_hu, /* 9/ 56 Hungarian */ "hy", LANGUAGE_hy_AM, /* 7/117 Armenian (Armenia) */ "is", LANGUAGE_is, /* 13/ 54 Icelandic */ "it", LANGUAGE_it, /* 5/ 5 Italian */ "iw", LANGUAGE_iw, /* 14/ 68 Hebrew */ "ka", LANGUAGE_ka_GE, /* 3/ 54 Georgian (Georgia) */ "kk", LANGUAGE_kk, /* 16/ 52 Kazakh */ "km", LANGUAGE_km_KH, /* 2/ 57 Khmer (Cambodia) */ "ky", LANGUAGE_ky, /* 11/ 52 Kirghiz */ "lo", LANGUAGE_lo_LA, /* 2/ 58 Lao (Laos) */ "lt", LANGUAGE_lt, /* 18/ 54 Lithuanian */ "lv", LANGUAGE_lv, /* 18/ 54 Latvian */ "mk", LANGUAGE_mk, /* 9/ 54 Macedonian */ "mn", LANGUAGE_mn_MN, /* 2/ 58 Mongolian (Mongolia) */ "nb", LANGUAGE_nb, /* 11/ 54 Norwegian Bokmål */ "ne", LANGUAGE_ne_NP, /* 24/ 91 Nepali (Nepal) */ "nl", LANGUAGE_nl, /* 9/ 54 Dutch */ "pl", LANGUAGE_pl, /* 10/ 54 Polish */ "pt", LANGUAGE_pt, /* 6/ 8 Portuguese */ "rm", LANGUAGE_rm, /* 1/ 4 Raeto-Romance */ "ro", LANGUAGE_ro, /* 6/ 54 Romanian */ "ru", LANGUAGE_ru, /* 10/ 54 Russian */ "sk", LANGUAGE_sk, /* 20/ 56 Slovak */ "sl", LANGUAGE_sl, /* 8/ 56 Slovenian */ "sr", LANGUAGE_sr, /* 11/ 56 Serbian */ "sv", LANGUAGE_sv, /* 21/ 56 Swedish */ "sw", LANGUAGE_sw, /* 9/ 16 Swahili */ "th", LANGUAGE_th, /* 2/ 58 Thai */ "tl", LANGUAGE_tl, /* 7/ 8 Tagalog */ "tr", LANGUAGE_tr, /* 7/ 16 Turkish */ "uk", LANGUAGE_uk, /* 12/ 58 Ukrainian */ "vi", LANGUAGE_vi, /* 8/ 58 Vietnamese */ "zu", LANGUAGE_zu, /* 8/ 8 Zulu */ "zz", LANGUAGE_zz, /* 19/ 20 Alphabet */ }; static { Loading tools/make-keyboard-text/res/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.tmpl +1 −0 Original line number Diff line number Diff line Loading @@ -77,6 +77,7 @@ public final class KeyboardTextsTable { // TODO: Use the language + "_" + region representation for the locale string key. // Currently we are dropping the region from the key. private static final Object[] LANGUAGES_AND_TEXTS = { // "locale", TEXT_ARRAY, /* numberOfNonNullText/lengthOf_TEXT_ARRAY localeName */ /* @LANGUAGES_AND_TEXTS@ */ }; Loading tools/make-keyboard-text/src/com/android/inputmethod/keyboard/tools/ArrayInitializerFormatter.java +7 −3 Original line number Diff line number Diff line Loading @@ -29,12 +29,16 @@ public class ArrayInitializerFormatter { private int mBufferedLen; private int mBufferedIndex = Integer.MIN_VALUE; public ArrayInitializerFormatter(PrintStream out, int width, String indent) { public ArrayInitializerFormatter(final PrintStream out, final int width, final String indent) { mOut = out; mMaxWidth = width - indent.length(); mIndent = indent; } public int getCurrentIndex() { return mCurrentIndex; } public void flush() { if (mBuffer.length() == 0) { return; Loading @@ -59,13 +63,13 @@ public class ArrayInitializerFormatter { mBufferedLen = 0; } public void outCommentLines(String lines) { public void outCommentLines(final String lines) { flush(); mOut.print(lines); mFixedElement = null; } public void outElement(String element) { public void outElement(final String element) { if (!element.equals(mFixedElement)) { flush(); mBufferedIndex = mCurrentIndex; Loading tools/make-keyboard-text/src/com/android/inputmethod/keyboard/tools/MoreKeysResources.java +20 −10 Original line number Diff line number Diff line Loading @@ -38,7 +38,6 @@ public class MoreKeysResources { private static final String MARK_TEXTS = "@TEXTS@"; private static final String MARK_LANGUAGES_AND_TEXTS = "@LANGUAGES_AND_TEXTS@"; private static final String DEFAULT_LANGUAGE_NAME = "DEFAULT"; private static final String ARRAY_NAME_FOR_LANGUAGE = "LANGUAGE_%s"; private static final String EMPTY_STRING_VAR = "EMPTY"; private static final String NO_LANGUAGE_CODE = "zz"; Loading Loading @@ -144,7 +143,12 @@ public class MoreKeysResources { private void dumpDefaultTexts(final PrintStream out) { final StringResourceMap defaultResMap = mResourcesMap.get(DEFAULT_LANGUAGE_NAME); dumpTextsInternal(out, defaultResMap, defaultResMap); final int outputArraySize = dumpTextsInternal(out, defaultResMap, defaultResMap); defaultResMap.setOutputArraySize(outputArraySize); } private static String getArrayNameForLanguage(final String language) { return "LANGUAGE_" + language; } private void dumpTexts(final PrintStream out) { Loading @@ -157,8 +161,8 @@ public class MoreKeysResources { continue; } out.format(" /* Language %s: %s */\n", language, getLanguageDisplayName(language)); out.format(" private static final String[] " + ARRAY_NAME_FOR_LANGUAGE + " = {\n", language); out.format(" private static final String[] " + getArrayNameForLanguage(language) + " = {\n"); final StringResourceMap resMap = mResourcesMap.get(language); for (final StringResource res : resMap.getResources()) { if (!defaultResMap.contains(res.mName)) { Loading @@ -166,7 +170,8 @@ public class MoreKeysResources { + " doesn't have default resource"); } } dumpTextsInternal(out, resMap, defaultResMap); final int outputArraySize = dumpTextsInternal(out, resMap, defaultResMap); resMap.setOutputArraySize(outputArraySize); out.format(" };\n\n"); } } Loading @@ -176,13 +181,15 @@ public class MoreKeysResources { allLanguages.addAll(mResourcesMap.keySet()); Collections.sort(allLanguages); for (final String language : allLanguages) { final StringResourceMap resMap = mResourcesMap.get(language); final Locale locale = LocaleUtils.constructLocaleFromString(language); // If we use a different key, dump the original as comment for now. final String languageKeyToDump = locale.getCountry().isEmpty() ? String.format("\"%s\"", language) : String.format("\"%s\" /* \"%s\" */", locale.getLanguage(), language); out.format(" %s, " + ARRAY_NAME_FOR_LANGUAGE + ", /* %s */\n", languageKeyToDump, language, getLanguageDisplayName(language)); : String.format("\"%s\"", locale.getLanguage()); out.format(" %s, %-15s /* %3d/%3d %s */\n", languageKeyToDump, getArrayNameForLanguage(language) + ",", resMap.getResources().size(), resMap.getOutputArraySize(), getLanguageDisplayName(language)); } } Loading @@ -194,10 +201,11 @@ public class MoreKeysResources { return locale.getDisplayName(Locale.ENGLISH); } private static void dumpTextsInternal(final PrintStream out, final StringResourceMap resMap, private static int dumpTextsInternal(final PrintStream out, final StringResourceMap resMap, final StringResourceMap defaultResMap) { final ArrayInitializerFormatter formatter = new ArrayInitializerFormatter(out, 100, " "); int outputArraySize = 0; boolean successiveNull = false; for (final StringResource defaultRes : defaultResMap.getResources()) { if (resMap.contains(defaultRes.mName)) { Loading @@ -212,6 +220,7 @@ public class MoreKeysResources { formatter.outElement(String.format("\"%s\",", escaped)); } successiveNull = false; outputArraySize = formatter.getCurrentIndex(); } else { formatter.outElement("null,"); successiveNull = true; Loading @@ -220,6 +229,7 @@ public class MoreKeysResources { if (!successiveNull) { formatter.flush(); } return outputArraySize; } private static String addPrefix(final String prefix, final String lines) { Loading tools/make-keyboard-text/src/com/android/inputmethod/keyboard/tools/StringResourceMap.java +14 −0 Original line number Diff line number Diff line Loading @@ -39,6 +39,12 @@ public class StringResourceMap { // Name to string resource map. private final Map<String, StringResource> mResourcesMap; // The length of String[] that is created from this {@link StringResourceMap}. The length is // calculated in {@link MoreKeysResources#dumpTexts(OutputStream)} and recorded by // {@link #setOutputArraySize(int)}. The recorded length is used as a part of comment by // {@link MoreKeysResources#dumpLanguageMap(OutputStream)} via {@link #getOutputArraySize()}. private int mOutputArraySize; public StringResourceMap(final InputStream is) { final StringResourceHandler handler = new StringResourceHandler(); final SAXParserFactory factory = SAXParserFactory.newInstance(); Loading Loading @@ -77,6 +83,14 @@ public class StringResourceMap { return mResourcesMap.get(name); } public void setOutputArraySize(final int arraySize) { mOutputArraySize = arraySize; } public int getOutputArraySize() { return mOutputArraySize; } static class StringResourceHandler extends DefaultHandler2 { private static final String TAG_RESOURCES = "resources"; private static final String TAG_STRING = "string"; Loading Loading
java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.java +55 −54 Original line number Diff line number Diff line Loading @@ -3476,60 +3476,61 @@ public final class KeyboardTextsTable { // TODO: Use the language + "_" + region representation for the locale string key. // Currently we are dropping the region from the key. private static final Object[] LANGUAGES_AND_TEXTS = { "DEFAULT", LANGUAGE_DEFAULT, /* default */ "af", LANGUAGE_af, /* Afrikaans */ "ar", LANGUAGE_ar, /* Arabic */ "az" /* "az_AZ" */, LANGUAGE_az_AZ, /* Azerbaijani (Azerbaijan) */ "be" /* "be_BY" */, LANGUAGE_be_BY, /* Belarusian (Belarus) */ "bg", LANGUAGE_bg, /* Bulgarian */ "ca", LANGUAGE_ca, /* Catalan */ "cs", LANGUAGE_cs, /* Czech */ "da", LANGUAGE_da, /* Danish */ "de", LANGUAGE_de, /* German */ "el", LANGUAGE_el, /* Greek */ "en", LANGUAGE_en, /* English */ "eo", LANGUAGE_eo, /* Esperanto */ "es", LANGUAGE_es, /* Spanish */ "et" /* "et_EE" */, LANGUAGE_et_EE, /* Estonian (Estonia) */ "fa", LANGUAGE_fa, /* Persian */ "fi", LANGUAGE_fi, /* Finnish */ "fr", LANGUAGE_fr, /* French */ "hi", LANGUAGE_hi, /* Hindi */ "hr", LANGUAGE_hr, /* Croatian */ "hu", LANGUAGE_hu, /* Hungarian */ "hy" /* "hy_AM" */, LANGUAGE_hy_AM, /* Armenian (Armenia) */ "is", LANGUAGE_is, /* Icelandic */ "it", LANGUAGE_it, /* Italian */ "iw", LANGUAGE_iw, /* Hebrew */ "ka" /* "ka_GE" */, LANGUAGE_ka_GE, /* Georgian (Georgia) */ "kk", LANGUAGE_kk, /* Kazakh */ "km" /* "km_KH" */, LANGUAGE_km_KH, /* Khmer (Cambodia) */ "ky", LANGUAGE_ky, /* Kirghiz */ "lo" /* "lo_LA" */, LANGUAGE_lo_LA, /* Lao (Laos) */ "lt", LANGUAGE_lt, /* Lithuanian */ "lv", LANGUAGE_lv, /* Latvian */ "mk", LANGUAGE_mk, /* Macedonian */ "mn" /* "mn_MN" */, LANGUAGE_mn_MN, /* Mongolian (Mongolia) */ "nb", LANGUAGE_nb, /* Norwegian Bokmål */ "ne" /* "ne_NP" */, LANGUAGE_ne_NP, /* Nepali (Nepal) */ "nl", LANGUAGE_nl, /* Dutch */ "pl", LANGUAGE_pl, /* Polish */ "pt", LANGUAGE_pt, /* Portuguese */ "rm", LANGUAGE_rm, /* Raeto-Romance */ "ro", LANGUAGE_ro, /* Romanian */ "ru", LANGUAGE_ru, /* Russian */ "sk", LANGUAGE_sk, /* Slovak */ "sl", LANGUAGE_sl, /* Slovenian */ "sr", LANGUAGE_sr, /* Serbian */ "sv", LANGUAGE_sv, /* Swedish */ "sw", LANGUAGE_sw, /* Swahili */ "th", LANGUAGE_th, /* Thai */ "tl", LANGUAGE_tl, /* Tagalog */ "tr", LANGUAGE_tr, /* Turkish */ "uk", LANGUAGE_uk, /* Ukrainian */ "vi", LANGUAGE_vi, /* Vietnamese */ "zu", LANGUAGE_zu, /* Zulu */ "zz", LANGUAGE_zz, /* Alphabet */ // "locale", TEXT_ARRAY, /* numberOfNonNullText/lengthOf_TEXT_ARRAY localeName */ "DEFAULT", LANGUAGE_DEFAULT, /* 156/156 default */ "af", LANGUAGE_af, /* 8/ 9 Afrikaans */ "ar", LANGUAGE_ar, /* 48/119 Arabic */ "az", LANGUAGE_az_AZ, /* 8/ 16 Azerbaijani (Azerbaijan) */ "be", LANGUAGE_be_BY, /* 10/ 54 Belarusian (Belarus) */ "bg", LANGUAGE_bg, /* 2/ 54 Bulgarian */ "ca", LANGUAGE_ca, /* 11/126 Catalan */ "cs", LANGUAGE_cs, /* 17/ 56 Czech */ "da", LANGUAGE_da, /* 19/ 56 Danish */ "de", LANGUAGE_de, /* 16/ 56 German */ "el", LANGUAGE_el, /* 1/ 52 Greek */ "en", LANGUAGE_en, /* 8/ 8 English */ "eo", LANGUAGE_eo, /* 26/126 Esperanto */ "es", LANGUAGE_es, /* 8/ 60 Spanish */ "et", LANGUAGE_et_EE, /* 22/ 54 Estonian (Estonia) */ "fa", LANGUAGE_fa, /* 49/119 Persian */ "fi", LANGUAGE_fi, /* 10/ 25 Finnish */ "fr", LANGUAGE_fr, /* 13/ 51 French */ "hi", LANGUAGE_hi, /* 24/ 91 Hindi */ "hr", LANGUAGE_hr, /* 9/ 56 Croatian */ "hu", LANGUAGE_hu, /* 9/ 56 Hungarian */ "hy", LANGUAGE_hy_AM, /* 7/117 Armenian (Armenia) */ "is", LANGUAGE_is, /* 13/ 54 Icelandic */ "it", LANGUAGE_it, /* 5/ 5 Italian */ "iw", LANGUAGE_iw, /* 14/ 68 Hebrew */ "ka", LANGUAGE_ka_GE, /* 3/ 54 Georgian (Georgia) */ "kk", LANGUAGE_kk, /* 16/ 52 Kazakh */ "km", LANGUAGE_km_KH, /* 2/ 57 Khmer (Cambodia) */ "ky", LANGUAGE_ky, /* 11/ 52 Kirghiz */ "lo", LANGUAGE_lo_LA, /* 2/ 58 Lao (Laos) */ "lt", LANGUAGE_lt, /* 18/ 54 Lithuanian */ "lv", LANGUAGE_lv, /* 18/ 54 Latvian */ "mk", LANGUAGE_mk, /* 9/ 54 Macedonian */ "mn", LANGUAGE_mn_MN, /* 2/ 58 Mongolian (Mongolia) */ "nb", LANGUAGE_nb, /* 11/ 54 Norwegian Bokmål */ "ne", LANGUAGE_ne_NP, /* 24/ 91 Nepali (Nepal) */ "nl", LANGUAGE_nl, /* 9/ 54 Dutch */ "pl", LANGUAGE_pl, /* 10/ 54 Polish */ "pt", LANGUAGE_pt, /* 6/ 8 Portuguese */ "rm", LANGUAGE_rm, /* 1/ 4 Raeto-Romance */ "ro", LANGUAGE_ro, /* 6/ 54 Romanian */ "ru", LANGUAGE_ru, /* 10/ 54 Russian */ "sk", LANGUAGE_sk, /* 20/ 56 Slovak */ "sl", LANGUAGE_sl, /* 8/ 56 Slovenian */ "sr", LANGUAGE_sr, /* 11/ 56 Serbian */ "sv", LANGUAGE_sv, /* 21/ 56 Swedish */ "sw", LANGUAGE_sw, /* 9/ 16 Swahili */ "th", LANGUAGE_th, /* 2/ 58 Thai */ "tl", LANGUAGE_tl, /* 7/ 8 Tagalog */ "tr", LANGUAGE_tr, /* 7/ 16 Turkish */ "uk", LANGUAGE_uk, /* 12/ 58 Ukrainian */ "vi", LANGUAGE_vi, /* 8/ 58 Vietnamese */ "zu", LANGUAGE_zu, /* 8/ 8 Zulu */ "zz", LANGUAGE_zz, /* 19/ 20 Alphabet */ }; static { Loading
tools/make-keyboard-text/res/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.tmpl +1 −0 Original line number Diff line number Diff line Loading @@ -77,6 +77,7 @@ public final class KeyboardTextsTable { // TODO: Use the language + "_" + region representation for the locale string key. // Currently we are dropping the region from the key. private static final Object[] LANGUAGES_AND_TEXTS = { // "locale", TEXT_ARRAY, /* numberOfNonNullText/lengthOf_TEXT_ARRAY localeName */ /* @LANGUAGES_AND_TEXTS@ */ }; Loading
tools/make-keyboard-text/src/com/android/inputmethod/keyboard/tools/ArrayInitializerFormatter.java +7 −3 Original line number Diff line number Diff line Loading @@ -29,12 +29,16 @@ public class ArrayInitializerFormatter { private int mBufferedLen; private int mBufferedIndex = Integer.MIN_VALUE; public ArrayInitializerFormatter(PrintStream out, int width, String indent) { public ArrayInitializerFormatter(final PrintStream out, final int width, final String indent) { mOut = out; mMaxWidth = width - indent.length(); mIndent = indent; } public int getCurrentIndex() { return mCurrentIndex; } public void flush() { if (mBuffer.length() == 0) { return; Loading @@ -59,13 +63,13 @@ public class ArrayInitializerFormatter { mBufferedLen = 0; } public void outCommentLines(String lines) { public void outCommentLines(final String lines) { flush(); mOut.print(lines); mFixedElement = null; } public void outElement(String element) { public void outElement(final String element) { if (!element.equals(mFixedElement)) { flush(); mBufferedIndex = mCurrentIndex; Loading
tools/make-keyboard-text/src/com/android/inputmethod/keyboard/tools/MoreKeysResources.java +20 −10 Original line number Diff line number Diff line Loading @@ -38,7 +38,6 @@ public class MoreKeysResources { private static final String MARK_TEXTS = "@TEXTS@"; private static final String MARK_LANGUAGES_AND_TEXTS = "@LANGUAGES_AND_TEXTS@"; private static final String DEFAULT_LANGUAGE_NAME = "DEFAULT"; private static final String ARRAY_NAME_FOR_LANGUAGE = "LANGUAGE_%s"; private static final String EMPTY_STRING_VAR = "EMPTY"; private static final String NO_LANGUAGE_CODE = "zz"; Loading Loading @@ -144,7 +143,12 @@ public class MoreKeysResources { private void dumpDefaultTexts(final PrintStream out) { final StringResourceMap defaultResMap = mResourcesMap.get(DEFAULT_LANGUAGE_NAME); dumpTextsInternal(out, defaultResMap, defaultResMap); final int outputArraySize = dumpTextsInternal(out, defaultResMap, defaultResMap); defaultResMap.setOutputArraySize(outputArraySize); } private static String getArrayNameForLanguage(final String language) { return "LANGUAGE_" + language; } private void dumpTexts(final PrintStream out) { Loading @@ -157,8 +161,8 @@ public class MoreKeysResources { continue; } out.format(" /* Language %s: %s */\n", language, getLanguageDisplayName(language)); out.format(" private static final String[] " + ARRAY_NAME_FOR_LANGUAGE + " = {\n", language); out.format(" private static final String[] " + getArrayNameForLanguage(language) + " = {\n"); final StringResourceMap resMap = mResourcesMap.get(language); for (final StringResource res : resMap.getResources()) { if (!defaultResMap.contains(res.mName)) { Loading @@ -166,7 +170,8 @@ public class MoreKeysResources { + " doesn't have default resource"); } } dumpTextsInternal(out, resMap, defaultResMap); final int outputArraySize = dumpTextsInternal(out, resMap, defaultResMap); resMap.setOutputArraySize(outputArraySize); out.format(" };\n\n"); } } Loading @@ -176,13 +181,15 @@ public class MoreKeysResources { allLanguages.addAll(mResourcesMap.keySet()); Collections.sort(allLanguages); for (final String language : allLanguages) { final StringResourceMap resMap = mResourcesMap.get(language); final Locale locale = LocaleUtils.constructLocaleFromString(language); // If we use a different key, dump the original as comment for now. final String languageKeyToDump = locale.getCountry().isEmpty() ? String.format("\"%s\"", language) : String.format("\"%s\" /* \"%s\" */", locale.getLanguage(), language); out.format(" %s, " + ARRAY_NAME_FOR_LANGUAGE + ", /* %s */\n", languageKeyToDump, language, getLanguageDisplayName(language)); : String.format("\"%s\"", locale.getLanguage()); out.format(" %s, %-15s /* %3d/%3d %s */\n", languageKeyToDump, getArrayNameForLanguage(language) + ",", resMap.getResources().size(), resMap.getOutputArraySize(), getLanguageDisplayName(language)); } } Loading @@ -194,10 +201,11 @@ public class MoreKeysResources { return locale.getDisplayName(Locale.ENGLISH); } private static void dumpTextsInternal(final PrintStream out, final StringResourceMap resMap, private static int dumpTextsInternal(final PrintStream out, final StringResourceMap resMap, final StringResourceMap defaultResMap) { final ArrayInitializerFormatter formatter = new ArrayInitializerFormatter(out, 100, " "); int outputArraySize = 0; boolean successiveNull = false; for (final StringResource defaultRes : defaultResMap.getResources()) { if (resMap.contains(defaultRes.mName)) { Loading @@ -212,6 +220,7 @@ public class MoreKeysResources { formatter.outElement(String.format("\"%s\",", escaped)); } successiveNull = false; outputArraySize = formatter.getCurrentIndex(); } else { formatter.outElement("null,"); successiveNull = true; Loading @@ -220,6 +229,7 @@ public class MoreKeysResources { if (!successiveNull) { formatter.flush(); } return outputArraySize; } private static String addPrefix(final String prefix, final String lines) { Loading
tools/make-keyboard-text/src/com/android/inputmethod/keyboard/tools/StringResourceMap.java +14 −0 Original line number Diff line number Diff line Loading @@ -39,6 +39,12 @@ public class StringResourceMap { // Name to string resource map. private final Map<String, StringResource> mResourcesMap; // The length of String[] that is created from this {@link StringResourceMap}. The length is // calculated in {@link MoreKeysResources#dumpTexts(OutputStream)} and recorded by // {@link #setOutputArraySize(int)}. The recorded length is used as a part of comment by // {@link MoreKeysResources#dumpLanguageMap(OutputStream)} via {@link #getOutputArraySize()}. private int mOutputArraySize; public StringResourceMap(final InputStream is) { final StringResourceHandler handler = new StringResourceHandler(); final SAXParserFactory factory = SAXParserFactory.newInstance(); Loading Loading @@ -77,6 +83,14 @@ public class StringResourceMap { return mResourcesMap.get(name); } public void setOutputArraySize(final int arraySize) { mOutputArraySize = arraySize; } public int getOutputArraySize() { return mOutputArraySize; } static class StringResourceHandler extends DefaultHandler2 { private static final String TAG_RESOURCES = "resources"; private static final String TAG_STRING = "string"; Loading