Merge "Load Portuguese and German hyphenation in Hyphenator"

This commit is contained in:
Roozbeh Pournader
2015-12-14 21:54:26 +00:00
committed by Android (Google) Code Review

View File

@@ -72,10 +72,20 @@ public class Hyphenator {
return result;
}
// TODO: Convert this a proper locale-fallback system
// If there's a variant, fall back to language+variant only, if available
final String variant = locale.getVariant();
if (!variant.isEmpty()) {
final Locale languageAndVariantOnlyLocale =
new Locale(locale.getLanguage(), "", variant);
result = sMap.get(languageAndVariantOnlyLocale);
if (result != null) {
sMap.put(locale, result);
return result;
}
}
// Fall back to language-only, if available
Locale languageOnlyLocale = new Locale(locale.getLanguage());
final Locale languageOnlyLocale = new Locale(locale.getLanguage());
result = sMap.get(languageOnlyLocale);
if (result != null) {
sMap.put(locale, result);
@@ -83,9 +93,9 @@ public class Hyphenator {
}
// Fall back to script-only, if available
String script = locale.getScript();
final String script = locale.getScript();
if (!script.equals("")) {
Locale scriptOnlyLocale = new Locale.Builder()
final Locale scriptOnlyLocale = new Locale.Builder()
.setLanguage("und")
.setScript(script)
.build();
@@ -142,6 +152,11 @@ public class Hyphenator {
{"en-UM", "en-US"}, // English (United States Minor Outlying Islands)
{"en-VI", "en-US"}, // English (Virgin Islands)
// For German, we're assuming the 1996 (and later) orthography by default.
{"de", "de-1996"},
// Liechtenstein uses the Swiss hyphenation rules for the 1901 orthography.
{"de-LI-1901", "de-CH-1901"},
// Norwegian is very probably Norwegian Bokmål.
{"no", "nb"},
@@ -166,7 +181,18 @@ public class Hyphenator {
sMap.put(null, null);
// TODO: replace this with a discovery-based method that looks into /system/usr/hyphen-data
String[] availableLanguages = {"en-US", "es", "eu", "hu", "hy", "nb", "nn", "und-Ethi"};
String[] availableLanguages = {
"de-1901", "de-1996", "de-CH-1901",
"en-US",
"es",
"eu",
"hu",
"hy",
"nb",
"nn",
"pt",
"und-Ethi"
};
for (int i = 0; i < availableLanguages.length; i++) {
String languageTag = availableLanguages[i];
Hyphenator h = loadHyphenator(languageTag);