Преглед на файлове

Normalize some locale names

arkon преди 1 година
родител
ревизия
36f307e3bb

+ 1 - 1
app/src/main/java/eu/kanade/presentation/browse/GlobalSearchScreen.kt

@@ -77,7 +77,7 @@ internal fun GlobalSearchContent(
                     title = fromSourceId?.let {
                         "▶ ${source.name}".takeIf { source.id == fromSourceId }
                     } ?: source.name,
-                    subtitle = LocaleHelper.getDisplayName(source.lang),
+                    subtitle = LocaleHelper.getLocalizedDisplayName(source.lang),
                     onClick = { onClickSource(source) },
                 ) {
                     when (result) {

+ 2 - 3
app/src/main/java/eu/kanade/presentation/more/settings/screen/appearance/AppLanguageScreen.kt

@@ -34,7 +34,6 @@ import tachiyomi.core.i18n.stringResource
 import tachiyomi.i18n.MR
 import tachiyomi.presentation.core.components.material.Scaffold
 import tachiyomi.presentation.core.i18n.stringResource
-import java.util.Locale
 
 class AppLanguageScreen : Screen() {
 
@@ -104,9 +103,9 @@ class AppLanguageScreen : Screen() {
                 for (i in 0..<parser.attributeCount) {
                     if (parser.getAttributeName(i) == "name") {
                         val langTag = parser.getAttributeValue(i)
-                        val displayName = LocaleHelper.getDisplayName(langTag)
+                        val displayName = LocaleHelper.getLocalizedDisplayName(langTag)
                         if (displayName.isNotEmpty()) {
-                            langs.add(Language(langTag, displayName, Locale.forLanguageTag(langTag).displayName))
+                            langs.add(Language(langTag, displayName, LocaleHelper.getDisplayName(langTag)))
                         }
                     }
                 }

+ 13 - 3
app/src/main/java/eu/kanade/tachiyomi/util/system/LocaleHelper.kt

@@ -21,7 +21,7 @@ object LocaleHelper {
         } else if (b == "all") {
             1
         } 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)
             "other" -> context.stringResource(MR.strings.other_source)
             "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.
      *
      * @param lang empty for system language
      */
-    fun getDisplayName(lang: String?): String {
+    fun getLocalizedDisplayName(lang: String?): String {
         if (lang == null) {
             return ""
         }