consistent language codes for ABC mode
This commit is contained in:
parent
898bbf7a7f
commit
863b6d8480
3 changed files with 17 additions and 16 deletions
|
|
@ -129,7 +129,7 @@ class ModeABC extends InputMode {
|
|||
// There are many languages written using the same alphabet, so if the user has
|
||||
// enabled multiple ones, make it clear which one is it, by appending the unique
|
||||
// country or language code to "ABC" or "АБВ".
|
||||
if (LanguageKind.isLatinBased(language) || LanguageKind.isCyrillic(language)) {
|
||||
if (LanguageKind.isArabicBased(language) || LanguageKind.isCyrillic(language) || LanguageKind.isHebrew(language) || LanguageKind.isLatinBased(language)) {
|
||||
modeString += " / " + language.getCode();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import java.util.Locale;
|
|||
public class LanguageKind {
|
||||
public static final int KOREAN = 601579;
|
||||
|
||||
public static boolean isArabicBased(Language language) { return isArabic(language) || isFarsi(language); }
|
||||
public static boolean isCJK(Language language) { return isChinese(language) || isJapanese(language) || isKorean(language); }
|
||||
public static boolean isCyrillic(Language language) { return language != null && language.getKeyCharacters(2).contains("а"); }
|
||||
public static boolean isLatinBased(Language language) { return language != null && language.getKeyCharacters(2).contains("a"); }
|
||||
|
|
|
|||
|
|
@ -38,21 +38,21 @@ class LocaleCompat {
|
|||
String country = locale.getCountry().toLowerCase();
|
||||
String language = locale.getLanguage().toLowerCase();
|
||||
|
||||
switch (language) {
|
||||
case "en":
|
||||
if ("in".equals(country)) { // en-IN = Hinglish
|
||||
return "hi";
|
||||
}
|
||||
// otherwise, fall-through to return "en"
|
||||
case "ca":
|
||||
return language;
|
||||
case "ji":
|
||||
return "yi";
|
||||
case "zgh":
|
||||
return "tmz";
|
||||
default:
|
||||
return country;
|
||||
}
|
||||
return switch (language) {
|
||||
case "ar" -> "ع";
|
||||
case "bg" -> "бг";
|
||||
case "en" -> ("in".equals(country)) ? "hn" : language; // en-IN = Hinglish
|
||||
case "fa" -> "ف";
|
||||
case "fi" -> "su";
|
||||
case "he", "iw" -> "אב";
|
||||
case "hu" -> "mg";
|
||||
case "ji", "yi" -> "יי";
|
||||
case "ru" -> "ру";
|
||||
case "uk" -> "ук";
|
||||
case "zgh" -> "tm";
|
||||
case "ca", "ga", "sw" -> language;
|
||||
default -> country;
|
||||
};
|
||||
}
|
||||
|
||||
@NonNull
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue