diff --git a/app/src/main/java/io/github/sspanak/tt9/ime/modes/ModeABC.java b/app/src/main/java/io/github/sspanak/tt9/ime/modes/ModeABC.java index 999d828d..b955d30a 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ime/modes/ModeABC.java +++ b/app/src/main/java/io/github/sspanak/tt9/ime/modes/ModeABC.java @@ -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(); } diff --git a/app/src/main/java/io/github/sspanak/tt9/languages/LanguageKind.java b/app/src/main/java/io/github/sspanak/tt9/languages/LanguageKind.java index 84265227..a6e9f520 100644 --- a/app/src/main/java/io/github/sspanak/tt9/languages/LanguageKind.java +++ b/app/src/main/java/io/github/sspanak/tt9/languages/LanguageKind.java @@ -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"); } diff --git a/app/src/main/java/io/github/sspanak/tt9/languages/LocaleCompat.java b/app/src/main/java/io/github/sspanak/tt9/languages/LocaleCompat.java index bff93afe..dee25934 100644 --- a/app/src/main/java/io/github/sspanak/tt9/languages/LocaleCompat.java +++ b/app/src/main/java/io/github/sspanak/tt9/languages/LocaleCompat.java @@ -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