From 18b4b071a8683a0411c00af3f5a8799fda6c5824 Mon Sep 17 00:00:00 2001 From: Cuong-Tran Date: Sun, 8 Sep 2024 00:44:47 +0700 Subject: [PATCH] e-hentai language flag (#343) * add language flag to BrowseList * add Japanese support * show language flag in metadata view --- .../components/BrowseSourceEHentaiList.kt | 14 ++++++-- .../adapters/EHentaiDescriptionAdapter.kt | 11 +++++- app/src/main/java/exh/util/SourceTagsUtil.kt | 36 +++++++++++++++++++ .../moko-resources/base/plurals.xml | 4 +-- .../commonMain/moko-resources/es/plurals.xml | 6 ++-- .../commonMain/moko-resources/fil/plurals.xml | 4 +-- .../commonMain/moko-resources/fr/plurals.xml | 4 +-- .../commonMain/moko-resources/in/plurals.xml | 4 +-- .../commonMain/moko-resources/ja/plurals.xml | 4 +-- .../moko-resources/pt-rBR/plurals.xml | 4 +-- .../commonMain/moko-resources/ru/plurals.xml | 8 ++--- .../moko-resources/zh-rCN/plurals.xml | 2 +- .../moko-resources/zh-rTW/plurals.xml | 2 +- 13 files changed, 79 insertions(+), 24 deletions(-) diff --git a/app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceEHentaiList.kt b/app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceEHentaiList.kt index 23e027126..a6c8457d3 100644 --- a/app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceEHentaiList.kt +++ b/app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceEHentaiList.kt @@ -53,6 +53,7 @@ import tachiyomi.i18n.sy.SYMR import tachiyomi.presentation.core.components.BadgeGroup import tachiyomi.presentation.core.components.material.padding import tachiyomi.presentation.core.i18n.stringResource +import tachiyomi.presentation.core.icons.FlagEmoji.Companion.getEmojiLangFlag import tachiyomi.presentation.core.util.selectedBackground import java.time.Instant import java.time.ZoneId @@ -137,12 +138,21 @@ fun BrowseSourceEHentaiListItem( SYMR.plurals.browse_language_and_pages, pageCount, pageCount, - locale.toLanguageTag().uppercase(), + // KMK --> + getEmojiLangFlag( + // KMK <-- + locale.toLanguageTag(), // KMK: .uppercase() + ), ) } else if (pageCount != null) { context.pluralStringResource(SYMR.plurals.num_pages, pageCount, pageCount) } else { - locale?.toLanguageTag()?.uppercase().orEmpty() + locale?.toLanguageTag() + // KMK --> + ?.let { getEmojiLangFlag(it) } + // .uppercase() + // KMK <-- + .orEmpty() } } } diff --git a/app/src/main/java/exh/ui/metadata/adapters/EHentaiDescriptionAdapter.kt b/app/src/main/java/exh/ui/metadata/adapters/EHentaiDescriptionAdapter.kt index 8cbde29e4..8e0b16661 100644 --- a/app/src/main/java/exh/ui/metadata/adapters/EHentaiDescriptionAdapter.kt +++ b/app/src/main/java/exh/ui/metadata/adapters/EHentaiDescriptionAdapter.kt @@ -18,11 +18,13 @@ import eu.kanade.tachiyomi.util.system.copyToClipboard import exh.metadata.MetadataUtil import exh.metadata.metadata.EHentaiSearchMetadata import exh.ui.metadata.adapters.MetadataUIUtil.bindDrawable +import exh.util.SourceTagsUtil import exh.util.SourceTagsUtil.genreTextColor import tachiyomi.core.common.i18n.pluralStringResource import tachiyomi.core.common.i18n.stringResource import tachiyomi.i18n.MR import tachiyomi.i18n.sy.SYMR +import tachiyomi.presentation.core.icons.FlagEmoji.Companion.getEmojiLangFlag @Composable fun EHentaiDescription( @@ -91,7 +93,14 @@ fun EHentaiDescription( binding.pages.setTextColor(textColor) // KMK <-- - val language = meta.language ?: context.stringResource(MR.strings.unknown) + val language = (meta.language ?: context.stringResource(MR.strings.unknown)) + // KMK --> + .let { lang -> + getEmojiLangFlag( + SourceTagsUtil.getLocaleSourceUtil(lang.lowercase())?.toLanguageTag().orEmpty(), + ) + " " + lang + } + // KMK <-- binding.language.text = if (meta.translated == true) { context.stringResource(SYMR.strings.language_translated, language) } else { diff --git a/app/src/main/java/exh/util/SourceTagsUtil.kt b/app/src/main/java/exh/util/SourceTagsUtil.kt index afd5220c7..446d0d459 100644 --- a/app/src/main/java/exh/util/SourceTagsUtil.kt +++ b/app/src/main/java/exh/util/SourceTagsUtil.kt @@ -2,6 +2,11 @@ package exh.util import android.graphics.Color import androidx.annotation.ColorInt +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.FlowRow +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.tooling.preview.Preview import exh.metadata.metadata.base.RaisedTag import exh.source.EH_SOURCE_ID import exh.source.EXH_SOURCE_ID @@ -9,6 +14,7 @@ import exh.source.PURURIN_SOURCE_ID import exh.source.TSUMINO_SOURCE_ID import exh.source.mangaDexSourceIds import exh.source.nHentaiSourceIds +import tachiyomi.presentation.core.icons.FlagEmoji.Companion.getEmojiLangFlag import java.util.Locale object SourceTagsUtil { @@ -122,6 +128,7 @@ object SourceTagsUtil { fun getLocaleSourceUtil(language: String?) = when (language) { "english", "eng" -> Locale("en") + "japanese" -> Locale("ja") "chinese" -> Locale("zh") "spanish" -> Locale("es") "korean" -> Locale("ko") @@ -142,3 +149,32 @@ object SourceTagsUtil { private val spaceRegex = "\\s".toRegex() } + +@Preview +@Composable +private fun LanguageFlagPreview() { + val locales = listOf( + Locale("en"), + Locale("ja"), + Locale("zh"), + Locale("es"), + Locale("ko"), + Locale("ru"), + Locale("fr"), + Locale("pt"), + Locale("th"), + Locale("de"), + Locale("it"), + Locale("vi"), + Locale("pl"), + Locale("hu"), + Locale("nl"), + ) + Column { + FlowRow { + locales.forEach { + Text(text = getEmojiLangFlag(it.toLanguageTag())) + } + } + } +} diff --git a/i18n-sy/src/commonMain/moko-resources/base/plurals.xml b/i18n-sy/src/commonMain/moko-resources/base/plurals.xml index 9f2970ac7..c4a31d978 100644 --- a/i18n-sy/src/commonMain/moko-resources/base/plurals.xml +++ b/i18n-sy/src/commonMain/moko-resources/base/plurals.xml @@ -38,8 +38,8 @@ - %2$s, %1$d page - %2$s, %1$d pages + %2$s %1$d page + %2$s %1$d pages diff --git a/i18n-sy/src/commonMain/moko-resources/es/plurals.xml b/i18n-sy/src/commonMain/moko-resources/es/plurals.xml index 47d798e35..67c3b742a 100644 --- a/i18n-sy/src/commonMain/moko-resources/es/plurals.xml +++ b/i18n-sy/src/commonMain/moko-resources/es/plurals.xml @@ -36,9 +36,9 @@ %1$d páginas - %2$s, %1$d página - %2$s, %1$d páginas - %2$s, %1$d páginas + %2$s %1$d página + %2$s %1$d páginas + %2$s %1$d páginas hace %1$d año diff --git a/i18n-sy/src/commonMain/moko-resources/fil/plurals.xml b/i18n-sy/src/commonMain/moko-resources/fil/plurals.xml index 2bf3c3314..cee52e50c 100644 --- a/i18n-sy/src/commonMain/moko-resources/fil/plurals.xml +++ b/i18n-sy/src/commonMain/moko-resources/fil/plurals.xml @@ -41,8 +41,8 @@ %1$d na mga pahina - %2$s, %1$d na pahina - %2$s, %1$d na mga pahina + %2$s %1$d na pahina + %2$s %1$d na mga pahina %1$d taon ang nakalipas diff --git a/i18n-sy/src/commonMain/moko-resources/fr/plurals.xml b/i18n-sy/src/commonMain/moko-resources/fr/plurals.xml index 33cac4d99..179f9eb0d 100644 --- a/i18n-sy/src/commonMain/moko-resources/fr/plurals.xml +++ b/i18n-sy/src/commonMain/moko-resources/fr/plurals.xml @@ -34,8 +34,8 @@ - %2$s, %1$d page - %2$s, %1$d pages + %2$s %1$d page + %2$s %1$d pages diff --git a/i18n-sy/src/commonMain/moko-resources/in/plurals.xml b/i18n-sy/src/commonMain/moko-resources/in/plurals.xml index 3eb360ca4..04c7bb809 100644 --- a/i18n-sy/src/commonMain/moko-resources/in/plurals.xml +++ b/i18n-sy/src/commonMain/moko-resources/in/plurals.xml @@ -39,8 +39,8 @@ - %2$s, %1$d page - %2$s, %1$d pages + %2$s %1$d page + %2$s %1$d pages diff --git a/i18n-sy/src/commonMain/moko-resources/ja/plurals.xml b/i18n-sy/src/commonMain/moko-resources/ja/plurals.xml index 9af26db91..851dd6b11 100644 --- a/i18n-sy/src/commonMain/moko-resources/ja/plurals.xml +++ b/i18n-sy/src/commonMain/moko-resources/ja/plurals.xml @@ -35,8 +35,8 @@ - %2$s, %1$d ページ - %2$s, %1$d ページ + %2$s %1$d ページ + %2$s %1$d ページ diff --git a/i18n-sy/src/commonMain/moko-resources/pt-rBR/plurals.xml b/i18n-sy/src/commonMain/moko-resources/pt-rBR/plurals.xml index ea93298ef..0eca8d4ea 100644 --- a/i18n-sy/src/commonMain/moko-resources/pt-rBR/plurals.xml +++ b/i18n-sy/src/commonMain/moko-resources/pt-rBR/plurals.xml @@ -35,8 +35,8 @@ - %2$s, %1$d página - %2$s, %1$d páginas + %2$s %1$d página + %2$s %1$d páginas diff --git a/i18n-sy/src/commonMain/moko-resources/ru/plurals.xml b/i18n-sy/src/commonMain/moko-resources/ru/plurals.xml index e9686317f..063aa823b 100644 --- a/i18n-sy/src/commonMain/moko-resources/ru/plurals.xml +++ b/i18n-sy/src/commonMain/moko-resources/ru/plurals.xml @@ -51,10 +51,10 @@ - %2$s, %1$d страница - %2$s, %1$d страницы - %2$s, %1$d страниц - %2$s, %1$d страниц + %2$s %1$d страница + %2$s %1$d страницы + %2$s %1$d страниц + %2$s %1$d страниц diff --git a/i18n-sy/src/commonMain/moko-resources/zh-rCN/plurals.xml b/i18n-sy/src/commonMain/moko-resources/zh-rCN/plurals.xml index 327b7740a..79d5c03b0 100644 --- a/i18n-sy/src/commonMain/moko-resources/zh-rCN/plurals.xml +++ b/i18n-sy/src/commonMain/moko-resources/zh-rCN/plurals.xml @@ -30,7 +30,7 @@ - %2$s, %1$d 页 + %2$s %1$d 页 diff --git a/i18n-sy/src/commonMain/moko-resources/zh-rTW/plurals.xml b/i18n-sy/src/commonMain/moko-resources/zh-rTW/plurals.xml index 8e25253da..3b66c82be 100644 --- a/i18n-sy/src/commonMain/moko-resources/zh-rTW/plurals.xml +++ b/i18n-sy/src/commonMain/moko-resources/zh-rTW/plurals.xml @@ -30,7 +30,7 @@ - %2$s, %1$d 頁 + %2$s %1$d 頁