mirror of
https://github.com/kiwix/kiwix-android.git
synced 2025-09-08 06:42:21 -04:00
Added country name in front of ZIM file language
This commit is contained in:
parent
192d276103
commit
ca58aecf02
@ -31,8 +31,20 @@ class BookUtils {
|
|||||||
return when {
|
return when {
|
||||||
languageCode == null -> ""
|
languageCode == null -> ""
|
||||||
languageCode.length == 2 -> LanguageContainer(languageCode).languageName
|
languageCode.length == 2 -> LanguageContainer(languageCode).languageName
|
||||||
languageCode.length == 3 -> localeMap[languageCode]?.displayLanguage.orEmpty()
|
languageCode.length == 3 -> localeMap[languageCode]?.displayLanguage.orEmpty() +
|
||||||
|
getCountryFromLanguageCode(
|
||||||
|
languageCode
|
||||||
|
)
|
||||||
else -> ""
|
else -> ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun getCountryFromLanguageCode(languageCode: String): String {
|
||||||
|
val local = LanguageUtils.iSO3ToLocale(languageCode)
|
||||||
|
return if (local?.displayCountry?.isNotEmpty() == true) {
|
||||||
|
" (${local.displayCountry})"
|
||||||
|
} else {
|
||||||
|
""
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -24,12 +24,21 @@ class LanguageContainer private constructor(val languageCode: String, val langua
|
|||||||
constructor(languageCode: String) : this(languageCode, chooseLanguageName(languageCode))
|
constructor(languageCode: String) : this(languageCode, chooseLanguageName(languageCode))
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
|
||||||
private fun chooseLanguageName(languageCode: String): String {
|
private fun chooseLanguageName(languageCode: String): String {
|
||||||
val displayLanguage = Locale(languageCode).displayLanguage
|
val displayLanguage = Locale(languageCode).displayLanguage
|
||||||
|
val displayCountry =
|
||||||
|
Locale(languageCode).displayCountry
|
||||||
return if (displayLanguage.length == 2 || displayLanguage.isEmpty())
|
return if (displayLanguage.length == 2 || displayLanguage.isEmpty())
|
||||||
Locale.ENGLISH.displayLanguage
|
Locale.ENGLISH.displayLanguage + " (${Locale.ENGLISH.displayCountry})"
|
||||||
else
|
else
|
||||||
displayLanguage
|
"${displayLanguage}${getCountry(displayCountry)}"
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun getCountry(displayCountry: String) = if (displayCountry.isNotEmpty()) {
|
||||||
|
" ($displayCountry)"
|
||||||
|
} else {
|
||||||
|
""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -34,12 +34,16 @@ class BookUtilsTest {
|
|||||||
assertEquals("code length more than 3", "", t.getLanguage("english"))
|
assertEquals("code length more than 3", "", t.getLanguage("english"))
|
||||||
|
|
||||||
// testing the hashmap created inside the BookUtils class
|
// testing the hashmap created inside the BookUtils class
|
||||||
assertEquals("code length equals 3 (English)", "English", t.getLanguage("eng"))
|
assertEquals("code length equals 3 (English)", "English (India)", t.getLanguage("eng"))
|
||||||
assertEquals("code length equals 3 (Hindi)", "Hindi", t.getLanguage("hin"))
|
assertEquals("code length equals 3 (Hindi)", "Hindi (India)", t.getLanguage("hin"))
|
||||||
assertEquals("code length equals 3 (French)", "French", t.getLanguage("fra"))
|
assertEquals("code length equals 3 (French)", "French (Rwanda)", t.getLanguage("fra"))
|
||||||
assertEquals("code length equals 3 (Akan)", "Akan", t.getLanguage("aka"))
|
assertEquals("code length equals 3 (Akan)", "Akan (Ghana)", t.getLanguage("aka"))
|
||||||
assertEquals("code length equals 3 (Burmese)", "Burmese", t.getLanguage("mya"))
|
assertEquals(
|
||||||
assertEquals("code length equals 3 (Catalan)", "Catalan", t.getLanguage("cat"))
|
"code length equals 3 (Burmese)",
|
||||||
|
"Burmese (Myanmar (Burma))",
|
||||||
|
t.getLanguage("mya")
|
||||||
|
)
|
||||||
|
assertEquals("code length equals 3 (Catalan)", "Catalan (Spain)", t.getLanguage("cat"))
|
||||||
|
|
||||||
// this case uses the result from the container nested class inside LanguageUtils. It will be tested in LanguageUtilsTest
|
// this case uses the result from the container nested class inside LanguageUtils. It will be tested in LanguageUtilsTest
|
||||||
assertEquals("code length equals 2 (dummy)", "English", t.getLanguage("en"))
|
assertEquals("code length equals 2 (dummy)", "English", t.getLanguage("en"))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user