Normalize some locale names
This commit is contained in:
parent
89678ebb17
commit
36f307e3bb
3 changed files with 16 additions and 7 deletions
|
@ -77,7 +77,7 @@ internal fun GlobalSearchContent(
|
||||||
title = fromSourceId?.let {
|
title = fromSourceId?.let {
|
||||||
"▶ ${source.name}".takeIf { source.id == fromSourceId }
|
"▶ ${source.name}".takeIf { source.id == fromSourceId }
|
||||||
} ?: source.name,
|
} ?: source.name,
|
||||||
subtitle = LocaleHelper.getDisplayName(source.lang),
|
subtitle = LocaleHelper.getLocalizedDisplayName(source.lang),
|
||||||
onClick = { onClickSource(source) },
|
onClick = { onClickSource(source) },
|
||||||
) {
|
) {
|
||||||
when (result) {
|
when (result) {
|
||||||
|
|
|
@ -34,7 +34,6 @@ import tachiyomi.core.i18n.stringResource
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
import tachiyomi.presentation.core.components.material.Scaffold
|
import tachiyomi.presentation.core.components.material.Scaffold
|
||||||
import tachiyomi.presentation.core.i18n.stringResource
|
import tachiyomi.presentation.core.i18n.stringResource
|
||||||
import java.util.Locale
|
|
||||||
|
|
||||||
class AppLanguageScreen : Screen() {
|
class AppLanguageScreen : Screen() {
|
||||||
|
|
||||||
|
@ -104,9 +103,9 @@ class AppLanguageScreen : Screen() {
|
||||||
for (i in 0..<parser.attributeCount) {
|
for (i in 0..<parser.attributeCount) {
|
||||||
if (parser.getAttributeName(i) == "name") {
|
if (parser.getAttributeName(i) == "name") {
|
||||||
val langTag = parser.getAttributeValue(i)
|
val langTag = parser.getAttributeValue(i)
|
||||||
val displayName = LocaleHelper.getDisplayName(langTag)
|
val displayName = LocaleHelper.getLocalizedDisplayName(langTag)
|
||||||
if (displayName.isNotEmpty()) {
|
if (displayName.isNotEmpty()) {
|
||||||
langs.add(Language(langTag, displayName, Locale.forLanguageTag(langTag).displayName))
|
langs.add(Language(langTag, displayName, LocaleHelper.getDisplayName(langTag)))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,7 +21,7 @@ object LocaleHelper {
|
||||||
} else if (b == "all") {
|
} else if (b == "all") {
|
||||||
1
|
1
|
||||||
} else {
|
} else {
|
||||||
getDisplayName(a).compareTo(getDisplayName(b))
|
getLocalizedDisplayName(a).compareTo(getLocalizedDisplayName(b))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -34,16 +34,26 @@ object LocaleHelper {
|
||||||
SourcesScreenModel.PINNED_KEY -> context.stringResource(MR.strings.pinned_sources)
|
SourcesScreenModel.PINNED_KEY -> context.stringResource(MR.strings.pinned_sources)
|
||||||
"other" -> context.stringResource(MR.strings.other_source)
|
"other" -> context.stringResource(MR.strings.other_source)
|
||||||
"all" -> context.stringResource(MR.strings.multi_lang)
|
"all" -> context.stringResource(MR.strings.multi_lang)
|
||||||
else -> getDisplayName(lang)
|
else -> getLocalizedDisplayName(lang)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun getDisplayName(lang: String): String {
|
||||||
|
val normalizedLang = when (lang) {
|
||||||
|
"zh-CN" -> "zh-Hans"
|
||||||
|
"zh-TW" -> "zh-Hant"
|
||||||
|
else -> lang
|
||||||
|
}
|
||||||
|
|
||||||
|
return Locale.forLanguageTag(normalizedLang).displayName
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns display name of a string language code.
|
* Returns display name of a string language code.
|
||||||
*
|
*
|
||||||
* @param lang empty for system language
|
* @param lang empty for system language
|
||||||
*/
|
*/
|
||||||
fun getDisplayName(lang: String?): String {
|
fun getLocalizedDisplayName(lang: String?): String {
|
||||||
if (lang == null) {
|
if (lang == null) {
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
Reference in a new issue