fixed some languages from the same country being displayed using the same code in mode ABC, e.g. Spanish and Catalan were both 'ES'
This commit is contained in:
parent
340b58f1ab
commit
2e9abac16e
5 changed files with 37 additions and 8 deletions
|
|
@ -117,16 +117,14 @@ public class ModeABC extends InputMode {
|
||||||
return textCase == CASE_LOWER ? "abc" : "ABC";
|
return textCase == CASE_LOWER ? "abc" : "ABC";
|
||||||
}
|
}
|
||||||
|
|
||||||
String langCode = "";
|
String modeString = language.getAbcString();
|
||||||
|
|
||||||
|
// 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.isLatinBased(language) || LanguageKind.isCyrillic(language)) {
|
||||||
// There are many languages written using the same alphabet, so if the user has enabled multiple,
|
modeString += " / " + language.getCode();
|
||||||
// make it clear which one is it, by appending the country code to "ABC" or "АБВ".
|
|
||||||
langCode = language.getLocale().getCountry();
|
|
||||||
langCode = langCode.isEmpty() ? language.getLocale().getLanguage() : langCode;
|
|
||||||
langCode = langCode.isEmpty() ? language.getName() : langCode;
|
|
||||||
langCode = " / " + langCode;
|
|
||||||
}
|
}
|
||||||
String modeString = language.getAbcString() + langCode.toUpperCase();
|
|
||||||
|
|
||||||
return (textCase == CASE_LOWER) ? modeString.toLowerCase(language.getLocale()) : modeString.toUpperCase(language.getLocale());
|
return (textCase == CASE_LOWER) ? modeString.toLowerCase(language.getLocale()) : modeString.toUpperCase(language.getLocale());
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,7 @@ public class EmojiLanguage extends Language {
|
||||||
id = Integer.parseInt(EMOJI_SEQUENCE);
|
id = Integer.parseInt(EMOJI_SEQUENCE);
|
||||||
locale = Locale.ROOT;
|
locale = Locale.ROOT;
|
||||||
abcString = "emoji";
|
abcString = "emoji";
|
||||||
|
code = "emj";
|
||||||
name = "Emoji";
|
name = "Emoji";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@ import io.github.sspanak.tt9.languages.exceptions.InvalidLanguageCharactersExcep
|
||||||
abstract public class Language {
|
abstract public class Language {
|
||||||
protected int id;
|
protected int id;
|
||||||
protected String abcString;
|
protected String abcString;
|
||||||
|
protected String code;
|
||||||
protected String dictionaryFile;
|
protected String dictionaryFile;
|
||||||
protected Locale locale = Locale.ROOT;
|
protected Locale locale = Locale.ROOT;
|
||||||
protected String name;
|
protected String name;
|
||||||
|
|
@ -25,6 +26,10 @@ abstract public class Language {
|
||||||
return abcString;
|
return abcString;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@NonNull public String getCode() {
|
||||||
|
return code;
|
||||||
|
}
|
||||||
|
|
||||||
@NonNull final public String getDictionaryFile() {
|
@NonNull final public String getDictionaryFile() {
|
||||||
return dictionaryFile;
|
return dictionaryFile;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -173,6 +173,29 @@ public class NaturalLanguage extends Language implements Comparable<NaturalLangu
|
||||||
return abcString;
|
return abcString;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
@Override
|
||||||
|
public String getCode() {
|
||||||
|
if (code != null) {
|
||||||
|
return code;
|
||||||
|
}
|
||||||
|
|
||||||
|
String country = getLocale().getCountry().toLowerCase();
|
||||||
|
String language = getLocale().getLanguage().toLowerCase();
|
||||||
|
|
||||||
|
if ("en".equals(language) && "in".equalsIgnoreCase(country)) {
|
||||||
|
return code = "hi";
|
||||||
|
}
|
||||||
|
|
||||||
|
if ("ar".equals(language) || "ca".equals(language) || "en".equals(language)) {
|
||||||
|
return code = language;
|
||||||
|
}
|
||||||
|
|
||||||
|
return code = country.equals("ji") ? "yi" : country;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@NonNull
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
public String getName() {
|
public String getName() {
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,8 @@ public class NullLanguage extends Language {
|
||||||
locale = Locale.ROOT;
|
locale = Locale.ROOT;
|
||||||
name = context.getString(R.string.no_language);
|
name = context.getString(R.string.no_language);
|
||||||
abcString = "ABC";
|
abcString = "ABC";
|
||||||
|
code = "";
|
||||||
|
dictionaryFile = "";
|
||||||
hasUpperCase = false;
|
hasUpperCase = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue