i18n for Komikku
This commit is contained in:
parent
1483b71cf0
commit
271e78eaf1
48 changed files with 245 additions and 96 deletions
|
|
@ -151,6 +151,9 @@ android {
|
|||
|
||||
dependencies {
|
||||
implementation(projects.i18n)
|
||||
// KMK -->
|
||||
implementation(projects.i18nKmk)
|
||||
// KMK <--
|
||||
// SY -->
|
||||
implementation(projects.i18nSy)
|
||||
// SY <--
|
||||
|
|
|
|||
|
|
@ -57,6 +57,7 @@ import eu.kanade.tachiyomi.util.system.copyToClipboard
|
|||
import kotlinx.collections.immutable.ImmutableList
|
||||
import kotlinx.collections.immutable.persistentListOf
|
||||
import tachiyomi.i18n.MR
|
||||
import tachiyomi.i18n.kmk.KMR
|
||||
import tachiyomi.i18n.sy.SYMR
|
||||
import tachiyomi.presentation.core.components.ScrollbarLazyColumn
|
||||
import tachiyomi.presentation.core.components.material.Scaffold
|
||||
|
|
@ -107,7 +108,7 @@ fun ExtensionDetailsScreen(
|
|||
)
|
||||
add(
|
||||
AppBar.Action(
|
||||
title = stringResource(MR.strings.action_faq_and_guides),
|
||||
title = stringResource(KMR.strings.action_faq_and_guides),
|
||||
icon = Icons.AutoMirrored.Outlined.HelpOutline,
|
||||
onClick = onClickReadme,
|
||||
),
|
||||
|
|
@ -190,7 +191,7 @@ private fun ExtensionDetails(
|
|||
// SY <--
|
||||
if (extension.isUnofficial) {
|
||||
item {
|
||||
WarningBanner(MR.strings.unofficial_extension_message)
|
||||
WarningBanner(KMR.strings.unofficial_extension_message)
|
||||
}
|
||||
}
|
||||
if (extension.isObsolete) {
|
||||
|
|
|
|||
|
|
@ -57,6 +57,7 @@ import eu.kanade.tachiyomi.util.system.LocaleHelper
|
|||
import eu.kanade.tachiyomi.util.system.launchRequestPackageInstallsPermission
|
||||
import kotlinx.collections.immutable.persistentListOf
|
||||
import tachiyomi.i18n.MR
|
||||
import tachiyomi.i18n.kmk.KMR
|
||||
import tachiyomi.i18n.sy.SYMR
|
||||
import tachiyomi.presentation.core.components.FastScrollLazyColumn
|
||||
import tachiyomi.presentation.core.components.material.PullRefresh
|
||||
|
|
@ -360,7 +361,7 @@ private fun ExtensionItemContent(
|
|||
|
||||
val warning = when {
|
||||
extension is Extension.Untrusted -> MR.strings.ext_untrusted
|
||||
extension is Extension.Installed && extension.isUnofficial -> MR.strings.ext_unofficial
|
||||
extension is Extension.Installed && extension.isUnofficial -> KMR.strings.ext_unofficial
|
||||
extension is Extension.Installed && extension.isObsolete -> MR.strings.ext_obsolete
|
||||
// SY -->
|
||||
extension is Extension.Installed && extension.isRedundant -> SYMR.strings.ext_redundant
|
||||
|
|
|
|||
|
|
@ -63,6 +63,7 @@ import kotlinx.collections.immutable.ImmutableList
|
|||
import tachiyomi.domain.source.model.Pin
|
||||
import tachiyomi.domain.source.model.Source
|
||||
import tachiyomi.i18n.MR
|
||||
import tachiyomi.i18n.kmk.KMR
|
||||
import tachiyomi.i18n.sy.SYMR
|
||||
import tachiyomi.presentation.core.components.FastScrollLazyColumn
|
||||
import tachiyomi.presentation.core.components.LabeledCheckbox
|
||||
|
|
@ -109,7 +110,7 @@ fun SourcesScreen(
|
|||
listState = lazyListState,
|
||||
searchQuery = state.searchQuery,
|
||||
onChangeSearchQuery = onChangeSearchQuery,
|
||||
placeholderText = stringResource(MR.strings.action_source_search),
|
||||
placeholderText = stringResource(KMR.strings.action_source_search),
|
||||
)
|
||||
|
||||
FastScrollLazyColumn(
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ import eu.kanade.presentation.library.components.CommonMangaItemDefaults
|
|||
import eu.kanade.tachiyomi.ui.manga.RelatedManga
|
||||
import tachiyomi.domain.manga.model.Manga
|
||||
import tachiyomi.i18n.MR
|
||||
import tachiyomi.i18n.sy.SYMR
|
||||
import tachiyomi.i18n.kmk.KMR
|
||||
import tachiyomi.presentation.core.components.material.padding
|
||||
import tachiyomi.presentation.core.i18n.stringResource
|
||||
import tachiyomi.presentation.core.util.plus
|
||||
|
|
@ -59,9 +59,9 @@ fun RelatedMangasComfortableGrid(
|
|||
header(key = "${related.keyword}#header") {
|
||||
RelatedMangaTitle(
|
||||
title = if (relatedManga.keyword.isNotBlank()) {
|
||||
stringResource(SYMR.strings.related_mangas_more)
|
||||
stringResource(KMR.strings.related_mangas_more)
|
||||
} else {
|
||||
stringResource(SYMR.strings.pref_source_related_mangas)
|
||||
stringResource(KMR.strings.pref_source_related_mangas)
|
||||
},
|
||||
subtitle = null,
|
||||
onClick = {
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ import eu.kanade.presentation.library.components.CommonMangaItemDefaults
|
|||
import eu.kanade.tachiyomi.ui.manga.RelatedManga
|
||||
import tachiyomi.domain.manga.model.Manga
|
||||
import tachiyomi.i18n.MR
|
||||
import tachiyomi.i18n.sy.SYMR
|
||||
import tachiyomi.i18n.kmk.KMR
|
||||
import tachiyomi.presentation.core.components.material.padding
|
||||
import tachiyomi.presentation.core.i18n.stringResource
|
||||
import tachiyomi.presentation.core.util.plus
|
||||
|
|
@ -59,9 +59,9 @@ fun RelatedMangasCompactGrid(
|
|||
header(key = "${related.keyword}#header") {
|
||||
RelatedMangaTitle(
|
||||
title = if (relatedManga.keyword.isNotBlank()) {
|
||||
stringResource(SYMR.strings.related_mangas_more)
|
||||
stringResource(KMR.strings.related_mangas_more)
|
||||
} else {
|
||||
stringResource(SYMR.strings.pref_source_related_mangas)
|
||||
stringResource(KMR.strings.pref_source_related_mangas)
|
||||
},
|
||||
subtitle = null,
|
||||
onClick = {
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ import eu.kanade.presentation.browse.RelatedMangasLoadingItem
|
|||
import eu.kanade.tachiyomi.ui.manga.RelatedManga
|
||||
import tachiyomi.domain.manga.model.Manga
|
||||
import tachiyomi.i18n.MR
|
||||
import tachiyomi.i18n.sy.SYMR
|
||||
import tachiyomi.i18n.kmk.KMR
|
||||
import tachiyomi.presentation.core.components.material.padding
|
||||
import tachiyomi.presentation.core.i18n.stringResource
|
||||
|
||||
|
|
@ -54,9 +54,9 @@ fun RelatedMangasList(
|
|||
stickyHeader(key = "${related.keyword}#header") {
|
||||
RelatedMangaTitle(
|
||||
title = if (relatedManga.keyword.isNotBlank()) {
|
||||
stringResource(SYMR.strings.related_mangas_more)
|
||||
stringResource(KMR.strings.related_mangas_more)
|
||||
} else {
|
||||
stringResource(SYMR.strings.pref_source_related_mangas)
|
||||
stringResource(KMR.strings.pref_source_related_mangas)
|
||||
},
|
||||
subtitle = null,
|
||||
onClick = {
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@ import eu.kanade.presentation.components.TabbedDialogPaddings
|
|||
import eu.kanade.presentation.more.settings.LocalPreferenceMinHeight
|
||||
import eu.kanade.presentation.more.settings.widget.TextPreferenceWidget
|
||||
import tachiyomi.i18n.MR
|
||||
import tachiyomi.i18n.kmk.KMR
|
||||
import tachiyomi.presentation.core.i18n.stringResource
|
||||
|
||||
@Composable
|
||||
|
|
@ -162,7 +163,7 @@ fun DuplicateMangasDialog(
|
|||
},
|
||||
Modifier.align(Alignment.CenterHorizontally),
|
||||
) {
|
||||
Text(text = stringResource(MR.strings.action_allow_duplicate_manga))
|
||||
Text(text = stringResource(KMR.strings.action_allow_duplicate_manga))
|
||||
}
|
||||
|
||||
TextButton(
|
||||
|
|
@ -172,7 +173,7 @@ fun DuplicateMangasDialog(
|
|||
},
|
||||
Modifier.align(Alignment.CenterHorizontally),
|
||||
) {
|
||||
Text(text = stringResource(MR.strings.action_allow_all_duplicate_manga))
|
||||
Text(text = stringResource(KMR.strings.action_allow_all_duplicate_manga))
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -184,7 +185,7 @@ fun DuplicateMangasDialog(
|
|||
},
|
||||
Modifier.align(Alignment.CenterHorizontally),
|
||||
) {
|
||||
Text(text = stringResource(MR.strings.action_skip_duplicate_manga))
|
||||
Text(text = stringResource(KMR.strings.action_skip_duplicate_manga))
|
||||
}
|
||||
|
||||
TextButton(
|
||||
|
|
@ -194,7 +195,7 @@ fun DuplicateMangasDialog(
|
|||
},
|
||||
Modifier.align(Alignment.CenterHorizontally),
|
||||
) {
|
||||
Text(text = stringResource(MR.strings.action_skip_all_duplicate_manga))
|
||||
Text(text = stringResource(KMR.strings.action_skip_all_duplicate_manga))
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -100,7 +100,7 @@ import tachiyomi.domain.library.service.LibraryPreferences
|
|||
import tachiyomi.domain.manga.model.Manga
|
||||
import tachiyomi.domain.source.model.StubSource
|
||||
import tachiyomi.i18n.MR
|
||||
import tachiyomi.i18n.sy.SYMR
|
||||
import tachiyomi.i18n.kmk.KMR
|
||||
import tachiyomi.presentation.core.components.TwoPanelBox
|
||||
import tachiyomi.presentation.core.components.VerticalFastScroller
|
||||
import tachiyomi.presentation.core.components.material.ExtendedFloatingActionButton
|
||||
|
|
@ -584,7 +584,7 @@ private fun MangaScreenSmallImpl(
|
|||
) {
|
||||
Column {
|
||||
RelatedMangaTitle(
|
||||
title = stringResource(SYMR.strings.pref_source_related_mangas),
|
||||
title = stringResource(KMR.strings.pref_source_related_mangas),
|
||||
subtitle = null,
|
||||
onClick = onRelatedMangasScreenClick,
|
||||
onLongClick = null,
|
||||
|
|
@ -953,7 +953,7 @@ private fun MangaScreenLargeImpl(
|
|||
) {
|
||||
Column {
|
||||
RelatedMangaTitle(
|
||||
title = stringResource(SYMR.strings.pref_source_related_mangas),
|
||||
title = stringResource(KMR.strings.pref_source_related_mangas),
|
||||
subtitle = null,
|
||||
onClick = onRelatedMangasScreenClick,
|
||||
onLongClick = null,
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ import com.halilibo.richtext.ui.material3.RichText
|
|||
import com.halilibo.richtext.ui.string.RichTextStringStyle
|
||||
import eu.kanade.presentation.theme.TachiyomiPreviewTheme
|
||||
import tachiyomi.i18n.MR
|
||||
import tachiyomi.i18n.kmk.KMR
|
||||
import tachiyomi.i18n.sy.SYMR
|
||||
import tachiyomi.presentation.core.components.material.padding
|
||||
import tachiyomi.presentation.core.i18n.stringResource
|
||||
|
|
@ -36,9 +37,9 @@ fun ComingUpdatesScreen(
|
|||
) {
|
||||
InfoScreen(
|
||||
icon = Icons.Outlined.NewReleases,
|
||||
headingText = stringResource(MR.strings.update_check_notification_preview_available),
|
||||
headingText = stringResource(KMR.strings.update_check_notification_preview_available),
|
||||
subtitleText = stringResource(SYMR.strings.latest_, versionName),
|
||||
acceptText = stringResource(MR.strings.update_check_try_now),
|
||||
acceptText = stringResource(KMR.strings.update_check_try_now),
|
||||
onAcceptClick = onAcceptUpdate,
|
||||
rejectText = stringResource(MR.strings.action_not_now),
|
||||
onRejectClick = onRejectUpdate,
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ import com.halilibo.richtext.ui.material3.RichText
|
|||
import com.halilibo.richtext.ui.string.RichTextStringStyle
|
||||
import eu.kanade.presentation.theme.TachiyomiPreviewTheme
|
||||
import tachiyomi.i18n.MR
|
||||
import tachiyomi.i18n.kmk.KMR
|
||||
import tachiyomi.i18n.sy.SYMR
|
||||
import tachiyomi.presentation.core.components.material.padding
|
||||
import tachiyomi.presentation.core.i18n.stringResource
|
||||
|
|
@ -38,7 +39,7 @@ fun WhatsNewScreen(
|
|||
icon = Icons.Outlined.NewReleases,
|
||||
headingText = stringResource(MR.strings.whats_new),
|
||||
subtitleText = stringResource(SYMR.strings.latest_, versionName) +
|
||||
" - " + stringResource(SYMR.strings.current_, currentVersion),
|
||||
" - " + stringResource(KMR.strings.current_, currentVersion),
|
||||
acceptText = stringResource(MR.strings.action_ok),
|
||||
onAcceptClick = onAcceptUpdate,
|
||||
) {
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@ package eu.kanade.presentation.more.settings.screen
|
|||
import android.annotation.SuppressLint
|
||||
import android.content.ActivityNotFoundException
|
||||
import android.content.Intent
|
||||
import android.os.Build
|
||||
import android.provider.Settings
|
||||
import android.webkit.WebStorage
|
||||
import android.webkit.WebView
|
||||
|
|
@ -91,6 +90,7 @@ import tachiyomi.domain.manga.interactor.GetAllManga
|
|||
import tachiyomi.domain.manga.interactor.ResetViewerFlags
|
||||
import tachiyomi.domain.source.service.SourceManager
|
||||
import tachiyomi.i18n.MR
|
||||
import tachiyomi.i18n.kmk.KMR
|
||||
import tachiyomi.i18n.sy.SYMR
|
||||
import tachiyomi.presentation.core.components.LabeledCheckbox
|
||||
import tachiyomi.presentation.core.i18n.stringResource
|
||||
|
|
@ -221,11 +221,11 @@ object SettingsAdvancedScreen : SearchableSettings {
|
|||
),
|
||||
// KMK -->
|
||||
Preference.PreferenceItem.TextPreference(
|
||||
title = stringResource(MR.strings.pref_clean_invalid_downloads),
|
||||
subtitle = stringResource(MR.strings.pref_clean_invalid_downloads_summary),
|
||||
title = stringResource(KMR.strings.pref_clean_invalid_downloads),
|
||||
subtitle = stringResource(KMR.strings.pref_clean_invalid_downloads_summary),
|
||||
onClick = {
|
||||
Injekt.get<DownloadCache>().invalidateCache()
|
||||
context.toast(MR.strings.invalid_downloads_cleaned)
|
||||
context.toast(KMR.strings.invalid_downloads_cleaned)
|
||||
},
|
||||
),
|
||||
// KMK <--
|
||||
|
|
@ -451,7 +451,7 @@ object SettingsAdvancedScreen : SearchableSettings {
|
|||
}
|
||||
},
|
||||
),
|
||||
Preference.PreferenceItem.InfoPreference(stringResource(MR.strings.pref_private_installer_warning)),
|
||||
Preference.PreferenceItem.InfoPreference(stringResource(KMR.strings.pref_private_installer_warning)),
|
||||
Preference.PreferenceItem.TextPreference(
|
||||
title = stringResource(MR.strings.ext_revoke_trust),
|
||||
onClick = {
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@ import eu.kanade.tachiyomi.util.system.toast
|
|||
import kotlinx.collections.immutable.persistentListOf
|
||||
import kotlinx.collections.immutable.toImmutableMap
|
||||
import tachiyomi.i18n.MR
|
||||
import tachiyomi.i18n.kmk.KMR
|
||||
import tachiyomi.i18n.sy.SYMR
|
||||
import tachiyomi.presentation.core.i18n.pluralStringResource
|
||||
import tachiyomi.presentation.core.i18n.stringResource
|
||||
|
|
@ -113,15 +114,15 @@ object SettingsAppearanceScreen : SearchableSettings {
|
|||
Injekt.get<UiPreferences>().detailsPageThemeCoverBased().asState(scope)
|
||||
}
|
||||
return Preference.PreferenceGroup(
|
||||
title = stringResource(MR.strings.pref_details_page_theme),
|
||||
title = stringResource(KMR.strings.pref_details_page_theme),
|
||||
preferenceItems = persistentListOf(
|
||||
Preference.PreferenceItem.SwitchPreference(
|
||||
pref = uiPreferences.detailsPageThemeCoverBased(),
|
||||
title = stringResource(MR.strings.pref_details_page_theme_cover_based),
|
||||
title = stringResource(KMR.strings.pref_details_page_theme_cover_based),
|
||||
),
|
||||
Preference.PreferenceItem.ListPreference(
|
||||
pref = uiPreferences.themeCoverBasedStyle(),
|
||||
title = stringResource(MR.strings.pref_theme_cover_based_style),
|
||||
title = stringResource(KMR.strings.pref_theme_cover_based_style),
|
||||
enabled = detailsPageThemeCoverBased,
|
||||
entries = PaletteStyle.entries
|
||||
.associateWith { it.name }
|
||||
|
|
@ -129,7 +130,7 @@ object SettingsAppearanceScreen : SearchableSettings {
|
|||
),
|
||||
Preference.PreferenceItem.SwitchPreference(
|
||||
pref = uiPreferences.themeCoverBasedAnimate(),
|
||||
title = stringResource(MR.strings.pref_theme_cover_based_animate),
|
||||
title = stringResource(KMR.strings.pref_theme_cover_based_animate),
|
||||
enabled = detailsPageThemeCoverBased,
|
||||
),
|
||||
),
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ import mihon.domain.extensionrepo.interactor.GetExtensionRepoCount
|
|||
import tachiyomi.core.common.i18n.stringResource
|
||||
import tachiyomi.domain.UnsortedPreferences
|
||||
import tachiyomi.i18n.MR
|
||||
import tachiyomi.i18n.kmk.KMR
|
||||
import tachiyomi.i18n.sy.SYMR
|
||||
import tachiyomi.presentation.core.i18n.pluralStringResource
|
||||
import tachiyomi.presentation.core.i18n.stringResource
|
||||
|
|
@ -59,8 +60,8 @@ object SettingsBrowseScreen : SearchableSettings {
|
|||
// KMK -->
|
||||
Preference.PreferenceItem.SwitchPreference(
|
||||
pref = sourcePreferences.relatedMangas(),
|
||||
title = stringResource(SYMR.strings.pref_source_related_mangas),
|
||||
subtitle = stringResource(SYMR.strings.pref_source_related_mangas_summary),
|
||||
title = stringResource(KMR.strings.pref_source_related_mangas),
|
||||
subtitle = stringResource(KMR.strings.pref_source_related_mangas_summary),
|
||||
),
|
||||
// KMK <--
|
||||
kotlin.run {
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@ import tachiyomi.domain.category.interactor.GetCategories
|
|||
import tachiyomi.domain.category.model.Category
|
||||
import tachiyomi.domain.download.service.DownloadPreferences
|
||||
import tachiyomi.i18n.MR
|
||||
import tachiyomi.i18n.kmk.KMR
|
||||
import tachiyomi.presentation.core.i18n.pluralStringResource
|
||||
import tachiyomi.presentation.core.i18n.stringResource
|
||||
import tachiyomi.presentation.core.util.collectAsState
|
||||
|
|
@ -200,21 +201,21 @@ object SettingsDownloadScreen : SearchableSettings {
|
|||
downloadPreferences: DownloadPreferences,
|
||||
): Preference.PreferenceGroup {
|
||||
return Preference.PreferenceGroup(
|
||||
title = stringResource(MR.strings.download_cache_renew_interval),
|
||||
title = stringResource(KMR.strings.download_cache_renew_interval),
|
||||
preferenceItems = persistentListOf(
|
||||
Preference.PreferenceItem.ListPreference(
|
||||
pref = downloadPreferences.downloadCacheRenewInterval(),
|
||||
title = stringResource(MR.strings.download_cache_renew_interval),
|
||||
title = stringResource(KMR.strings.download_cache_renew_interval),
|
||||
entries = persistentMapOf(
|
||||
-1 to stringResource(MR.strings.download_cache_renew_interval_manual),
|
||||
1 to stringResource(MR.strings.download_cache_renew_interval_1hour),
|
||||
2 to stringResource(MR.strings.download_cache_renew_interval_2hour),
|
||||
6 to stringResource(MR.strings.download_cache_renew_interval_6hour),
|
||||
12 to stringResource(MR.strings.download_cache_renew_interval_12hour),
|
||||
24 to stringResource(MR.strings.download_cache_renew_interval_24hour),
|
||||
-1 to stringResource(KMR.strings.download_cache_renew_interval_manual),
|
||||
1 to stringResource(KMR.strings.download_cache_renew_interval_1hour),
|
||||
2 to stringResource(KMR.strings.download_cache_renew_interval_2hour),
|
||||
6 to stringResource(KMR.strings.download_cache_renew_interval_6hour),
|
||||
12 to stringResource(KMR.strings.download_cache_renew_interval_12hour),
|
||||
24 to stringResource(KMR.strings.download_cache_renew_interval_24hour),
|
||||
),
|
||||
),
|
||||
Preference.PreferenceItem.InfoPreference(stringResource(MR.strings.download_cache_renew_interval_info)),
|
||||
Preference.PreferenceItem.InfoPreference(stringResource(KMR.strings.download_cache_renew_interval_info)),
|
||||
),
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -57,6 +57,7 @@ import tachiyomi.core.common.util.lang.launchIO
|
|||
import tachiyomi.core.common.util.lang.withUIContext
|
||||
import tachiyomi.domain.source.service.SourceManager
|
||||
import tachiyomi.i18n.MR
|
||||
import tachiyomi.i18n.kmk.KMR
|
||||
import tachiyomi.presentation.core.components.material.padding
|
||||
import tachiyomi.presentation.core.i18n.stringResource
|
||||
import uy.kohesive.injekt.Injekt
|
||||
|
|
@ -127,11 +128,11 @@ object SettingsTrackingScreen : SearchableSettings {
|
|||
),
|
||||
Preference.PreferenceItem.SwitchPreference(
|
||||
pref = trackPreferences.updateTrackMarkedRead(),
|
||||
title = stringResource(MR.strings.pref_update_tracking_marked_read),
|
||||
title = stringResource(KMR.strings.pref_update_tracking_marked_read),
|
||||
),
|
||||
Preference.PreferenceItem.SwitchPreference(
|
||||
pref = trackPreferences.autoSyncReadChapters(),
|
||||
title = stringResource(MR.strings.pref_auto_sync_read_chapters),
|
||||
title = stringResource(KMR.strings.pref_auto_sync_read_chapters),
|
||||
),
|
||||
Preference.PreferenceGroup(
|
||||
title = stringResource(MR.strings.services),
|
||||
|
|
|
|||
|
|
@ -44,6 +44,7 @@ import tachiyomi.core.common.util.lang.withUIContext
|
|||
import tachiyomi.core.common.util.system.logcat
|
||||
import tachiyomi.domain.release.interactor.GetApplicationRelease
|
||||
import tachiyomi.i18n.MR
|
||||
import tachiyomi.i18n.kmk.KMR
|
||||
import tachiyomi.presentation.core.components.LinkIcon
|
||||
import tachiyomi.presentation.core.components.ScrollbarLazyColumn
|
||||
import tachiyomi.presentation.core.components.material.Scaffold
|
||||
|
|
@ -185,7 +186,7 @@ object AboutScreen : Screen() {
|
|||
if (isReleaseBuildType || isDevFlavor) {
|
||||
item {
|
||||
TextPreferenceWidget(
|
||||
title = stringResource(MR.strings.whats_coming),
|
||||
title = stringResource(KMR.strings.whats_coming),
|
||||
widget = {
|
||||
AnimatedVisibility(visible = isCheckingWhatsComing) {
|
||||
CircularProgressIndicator(
|
||||
|
|
|
|||
|
|
@ -34,6 +34,7 @@ import nl.adaptivity.xmlutil.serialization.XmlSerialName
|
|||
import nl.adaptivity.xmlutil.serialization.XmlValue
|
||||
import tachiyomi.core.common.util.lang.withIOContext
|
||||
import tachiyomi.i18n.MR
|
||||
import tachiyomi.i18n.kmk.KMR
|
||||
import tachiyomi.i18n.sy.SYMR
|
||||
import tachiyomi.presentation.core.components.material.padding
|
||||
import tachiyomi.presentation.core.i18n.stringResource
|
||||
|
|
@ -51,7 +52,7 @@ fun WhatsNewDialog(onDismissRequest: () -> Unit) {
|
|||
title = { Text(text = stringResource(MR.strings.updated_version, BuildConfig.VERSION_NAME)) },
|
||||
dismissButton = {
|
||||
TextButton(onClick = { context.openInBrowser(RELEASE_URL) }) {
|
||||
Text(text = stringResource(SYMR.strings.changelogs))
|
||||
Text(text = stringResource(KMR.strings.changelogs))
|
||||
}
|
||||
},
|
||||
text = {
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@ import tachiyomi.domain.manga.interactor.GetDuplicateLibraryManga
|
|||
import tachiyomi.domain.manga.model.Manga
|
||||
import tachiyomi.domain.manga.model.toMangaUpdate
|
||||
import tachiyomi.domain.source.service.SourceManager
|
||||
import tachiyomi.i18n.MR
|
||||
import tachiyomi.i18n.kmk.KMR
|
||||
import tachiyomi.presentation.core.i18n.stringResource
|
||||
import uy.kohesive.injekt.Injekt
|
||||
import uy.kohesive.injekt.api.get
|
||||
|
|
@ -493,7 +493,7 @@ fun AllowDuplicateDialog(bulkFavoriteScreenModel: BulkFavoriteScreenModel) {
|
|||
@Composable
|
||||
fun bulkSelectionButton(toggleSelectionMode: () -> Unit) =
|
||||
AppBar.Action(
|
||||
title = stringResource(MR.strings.action_bulk_select),
|
||||
title = stringResource(KMR.strings.action_bulk_select),
|
||||
icon = Icons.Outlined.Checklist,
|
||||
onClick = toggleSelectionMode,
|
||||
)
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ import eu.kanade.tachiyomi.ui.browse.extension.details.ExtensionDetailsScreen
|
|||
import eu.kanade.tachiyomi.ui.webview.WebViewScreen
|
||||
import kotlinx.collections.immutable.persistentListOf
|
||||
import tachiyomi.i18n.MR
|
||||
import tachiyomi.i18n.kmk.KMR
|
||||
import tachiyomi.presentation.core.i18n.stringResource
|
||||
|
||||
@Composable
|
||||
|
|
@ -34,7 +35,7 @@ fun extensionsTab(
|
|||
actions = persistentListOf(
|
||||
// KMK -->
|
||||
AppBar.Action(
|
||||
title = stringResource(MR.strings.action_toggle_nsfw_only),
|
||||
title = stringResource(KMR.strings.action_toggle_nsfw_only),
|
||||
icon = Icons.Outlined._18UpRating,
|
||||
iconTint = if (state.nsfwOnly) MaterialTheme.colorScheme.error else LocalContentColor.current,
|
||||
onClick = { extensionsScreenModel.toggleNsfwOnly() },
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@ import kotlinx.coroutines.flow.collectLatest
|
|||
import kotlinx.coroutines.launch
|
||||
import tachiyomi.domain.source.interactor.GetRemoteManga
|
||||
import tachiyomi.i18n.MR
|
||||
import tachiyomi.i18n.kmk.KMR
|
||||
import tachiyomi.i18n.sy.SYMR
|
||||
import tachiyomi.presentation.core.i18n.stringResource
|
||||
|
||||
|
|
@ -196,7 +197,7 @@ fun feedTab(
|
|||
// KMK <--
|
||||
|
||||
val internalErrString = stringResource(MR.strings.internal_error)
|
||||
val tooManyFeedsString = stringResource(SYMR.strings.too_many_in_feed)
|
||||
val tooManyFeedsString = stringResource(KMR.strings.too_many_in_feed)
|
||||
LaunchedEffect(Unit) {
|
||||
screenModel.events.collectLatest { event ->
|
||||
when (event) {
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@ import kotlinx.collections.immutable.persistentListOf
|
|||
import kotlinx.coroutines.flow.collectLatest
|
||||
import kotlinx.coroutines.launch
|
||||
import tachiyomi.i18n.MR
|
||||
import tachiyomi.i18n.kmk.KMR
|
||||
import tachiyomi.i18n.sy.SYMR
|
||||
import tachiyomi.presentation.core.i18n.stringResource
|
||||
|
||||
|
|
@ -57,7 +58,7 @@ fun Screen.sourcesTab(
|
|||
),
|
||||
// KMK -->
|
||||
AppBar.Action(
|
||||
title = stringResource(MR.strings.action_toggle_nsfw_only),
|
||||
title = stringResource(KMR.strings.action_toggle_nsfw_only),
|
||||
icon = Icons.Outlined._18UpRating,
|
||||
iconTint = if (state.nsfwOnly) MaterialTheme.colorScheme.error else LocalContentColor.current,
|
||||
onClick = { screenModel.toggleNsfwOnly() },
|
||||
|
|
@ -74,7 +75,7 @@ fun Screen.sourcesTab(
|
|||
persistentListOf(
|
||||
// KMK -->
|
||||
AppBar.Action(
|
||||
title = stringResource(MR.strings.action_toggle_nsfw_only),
|
||||
title = stringResource(KMR.strings.action_toggle_nsfw_only),
|
||||
icon = Icons.Outlined._18UpRating,
|
||||
iconTint = if (state.nsfwOnly) MaterialTheme.colorScheme.error else LocalContentColor.current,
|
||||
onClick = { screenModel.toggleNsfwOnly() },
|
||||
|
|
|
|||
|
|
@ -50,6 +50,7 @@ import tachiyomi.domain.source.model.EXHSavedSearch
|
|||
import tachiyomi.domain.source.model.FeedSavedSearch
|
||||
import tachiyomi.domain.source.model.SavedSearch
|
||||
import tachiyomi.domain.source.service.SourceManager
|
||||
import tachiyomi.i18n.kmk.KMR
|
||||
import tachiyomi.i18n.sy.SYMR
|
||||
import uy.kohesive.injekt.Injekt
|
||||
import uy.kohesive.injekt.api.get
|
||||
|
|
@ -272,7 +273,7 @@ open class SourceFeedScreenModel(
|
|||
screenModelScope.launchIO {
|
||||
if (hasTooManyFeeds()) {
|
||||
withUIContext {
|
||||
onToast(SYMR.strings.too_many_in_feed)
|
||||
onToast(KMR.strings.too_many_in_feed)
|
||||
}
|
||||
return@launchIO
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,6 +19,9 @@ android {
|
|||
|
||||
dependencies {
|
||||
implementation(projects.i18n)
|
||||
// KMK -->
|
||||
implementation(projects.i18nKmk)
|
||||
// KMK <--
|
||||
// SY -->
|
||||
implementation(projects.i18nSy)
|
||||
// SY <--
|
||||
|
|
|
|||
48
i18n-kmk/build.gradle.kts
Normal file
48
i18n-kmk/build.gradle.kts
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
plugins {
|
||||
id("mihon.library")
|
||||
id("dev.icerock.mobile.multiplatform-resources")
|
||||
kotlin("multiplatform")
|
||||
id("com.github.ben-manes.versions")
|
||||
}
|
||||
|
||||
kotlin {
|
||||
androidTarget()
|
||||
|
||||
applyDefaultHierarchyTemplate()
|
||||
|
||||
sourceSets {
|
||||
val commonMain by getting {
|
||||
dependencies {
|
||||
api(libs.moko.core)
|
||||
}
|
||||
}
|
||||
androidMain {
|
||||
dependsOn(commonMain) // https://github.com/icerockdev/moko-resources/issues/562
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
android {
|
||||
namespace = "tachiyomi.i18n.kmk"
|
||||
|
||||
sourceSets {
|
||||
named("main") {
|
||||
res.srcDir("src/commonMain/resources")
|
||||
}
|
||||
}
|
||||
|
||||
lint {
|
||||
disable.addAll(listOf("MissingTranslation", "ExtraTranslation"))
|
||||
}
|
||||
}
|
||||
|
||||
multiplatformResources {
|
||||
multiplatformResourcesClassName = "KMR"
|
||||
multiplatformResourcesPackage = "tachiyomi.i18n.kmk"
|
||||
}
|
||||
|
||||
tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> {
|
||||
kotlinOptions.freeCompilerArgs += listOf(
|
||||
"-Xexpect-actual-classes",
|
||||
)
|
||||
}
|
||||
3
i18n-kmk/src/commonMain/resources/MR/base/plurals.xml
Normal file
3
i18n-kmk/src/commonMain/resources/MR/base/plurals.xml
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
</resources>
|
||||
70
i18n-kmk/src/commonMain/resources/MR/base/strings.xml
Normal file
70
i18n-kmk/src/commonMain/resources/MR/base/strings.xml
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- Actions -->
|
||||
<string name="action_source_search">Search for source</string>
|
||||
<string name="action_toggle_nsfw_only">Toggle NSFW only</string>
|
||||
<string name="action_bulk_select">Bulk selection mode</string>
|
||||
<string name="action_faq_and_guides">FAQ and Guides</string>
|
||||
|
||||
<!-- Preferences -->
|
||||
<!-- General section -->
|
||||
<string name="pref_details_page_theme">Details page</string>
|
||||
<string name="pref_details_page_theme_cover_based">Details page theme based on cover</string>
|
||||
<string name="pref_theme_cover_based_style">Theme style</string>
|
||||
<string name="pref_theme_cover_based_animate">Theme animate</string>
|
||||
|
||||
<!-- Extension section -->
|
||||
<string name="ext_unofficial">Unofficial</string>
|
||||
<string name="unofficial_extension_message">This extension is not from the official repo.</string>
|
||||
|
||||
<!-- Extension repos -->
|
||||
<!-- Downloads section -->
|
||||
<string name="download_cache_renew_interval">Download cache renew interval</string>
|
||||
<string name="download_cache_renew_interval_manual">Manual</string>
|
||||
<string name="download_cache_renew_interval_1hour">1 hour</string>
|
||||
<string name="download_cache_renew_interval_2hour">2 hours</string>
|
||||
<string name="download_cache_renew_interval_6hour">6 hours</string>
|
||||
<string name="download_cache_renew_interval_12hour">12 hours</string>
|
||||
<string name="download_cache_renew_interval_24hour">1 day</string>
|
||||
<string name="download_cache_renew_interval_info">If set to "manual", either refresh each manga or using the "Invalidate downloads index" action in "Advanced"</string>
|
||||
|
||||
<!-- Tracking section -->
|
||||
<string name="pref_update_tracking_marked_read">Update progress when marked as read</string>
|
||||
<string name="pref_auto_sync_read_chapters">Auto sync read chapters from Trackers</string>
|
||||
|
||||
<!-- Sync section -->
|
||||
<!-- Advanced section -->
|
||||
<string name="pref_clean_invalid_downloads">Clean invalid downloads</string>
|
||||
<string name="pref_clean_invalid_downloads_summary">Find and remove all downloads, files, folders which are not saved in your library</string>
|
||||
<string name="invalid_downloads_cleaned">Invalid downloads cleaned</string>
|
||||
<string name="pref_private_installer_warning">Avoid using Private Installer because it\'s not stable yet, will lead to really slow start/resume App.</string>
|
||||
|
||||
<!-- About section -->
|
||||
<string name="whats_coming">What\'s coming (soon)</string>
|
||||
|
||||
<!-- Manga info -->
|
||||
<string name="action_allow_duplicate_manga">Allow it</string>
|
||||
<string name="action_skip_duplicate_manga">Skip it</string>
|
||||
<string name="action_allow_all_duplicate_manga">Allow all</string>
|
||||
<string name="action_skip_all_duplicate_manga">Skip all</string>
|
||||
|
||||
<!--UpdateCheck-->
|
||||
<string name="update_check_try_now">Try now</string>
|
||||
|
||||
<!--UpdateCheck Notifications-->
|
||||
<string name="update_check_notification_preview_available">Coming (soon) updates!</string>
|
||||
|
||||
<!-- About -->
|
||||
<string name="changelogs">Change Logs</string>
|
||||
|
||||
<!-- Browse settings -->
|
||||
<string name="pref_source_related_mangas">Related titles</string>
|
||||
<string name="pref_source_related_mangas_summary">Show related titles while viewing entry</string>
|
||||
<string name="related_mangas_more">More like these...</string>
|
||||
|
||||
<!-- Feed Tab -->
|
||||
<string name="too_many_in_feed">Too many sources in your feed, cannot add more than limited (20)</string>
|
||||
|
||||
<!-- Migration -->
|
||||
<string name="current_">Current: %1$s</string>
|
||||
</resources>
|
||||
3
i18n-kmk/src/commonMain/resources/MR/fr/plurals.xml
Normal file
3
i18n-kmk/src/commonMain/resources/MR/fr/plurals.xml
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
</resources>
|
||||
3
i18n-kmk/src/commonMain/resources/MR/fr/strings.xml
Normal file
3
i18n-kmk/src/commonMain/resources/MR/fr/strings.xml
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
</resources>
|
||||
3
i18n-kmk/src/commonMain/resources/MR/in/plurals.xml
Normal file
3
i18n-kmk/src/commonMain/resources/MR/in/plurals.xml
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
</resources>
|
||||
3
i18n-kmk/src/commonMain/resources/MR/in/strings.xml
Normal file
3
i18n-kmk/src/commonMain/resources/MR/in/strings.xml
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
</resources>
|
||||
3
i18n-kmk/src/commonMain/resources/MR/pt-rBR/plurals.xml
Normal file
3
i18n-kmk/src/commonMain/resources/MR/pt-rBR/plurals.xml
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
</resources>
|
||||
3
i18n-kmk/src/commonMain/resources/MR/pt-rBR/strings.xml
Normal file
3
i18n-kmk/src/commonMain/resources/MR/pt-rBR/strings.xml
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
</resources>
|
||||
3
i18n-kmk/src/commonMain/resources/MR/ru/plurals.xml
Normal file
3
i18n-kmk/src/commonMain/resources/MR/ru/plurals.xml
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
</resources>
|
||||
3
i18n-kmk/src/commonMain/resources/MR/ru/strings.xml
Normal file
3
i18n-kmk/src/commonMain/resources/MR/ru/strings.xml
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
</resources>
|
||||
3
i18n-kmk/src/commonMain/resources/MR/zh-rCN/plurals.xml
Normal file
3
i18n-kmk/src/commonMain/resources/MR/zh-rCN/plurals.xml
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
</resources>
|
||||
3
i18n-kmk/src/commonMain/resources/MR/zh-rCN/strings.xml
Normal file
3
i18n-kmk/src/commonMain/resources/MR/zh-rCN/strings.xml
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
</resources>
|
||||
3
i18n-kmk/src/commonMain/resources/MR/zh-rTW/plurals.xml
Normal file
3
i18n-kmk/src/commonMain/resources/MR/zh-rTW/plurals.xml
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
</resources>
|
||||
3
i18n-kmk/src/commonMain/resources/MR/zh-rTW/strings.xml
Normal file
3
i18n-kmk/src/commonMain/resources/MR/zh-rTW/strings.xml
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
</resources>
|
||||
|
|
@ -28,7 +28,6 @@
|
|||
|
||||
<!-- About -->
|
||||
<string name="changelog_version">Version %1$s</string>
|
||||
<string name="changelogs">Change Logs</string>
|
||||
|
||||
<!-- EH Settings -->
|
||||
<string name="ehentai_prefs_account_settings">E-Hentai Website Account Settings</string>
|
||||
|
|
@ -202,9 +201,6 @@
|
|||
<string name="pref_source_navigation_summery">Replace latest button with a custom browse view that includes both latest and browse</string>
|
||||
<string name="pref_local_source_hidden_folders">Local source hidden folders</string>
|
||||
<string name="pref_local_source_hidden_folders_summery">Allow local source to read hidden folders</string>
|
||||
<string name="pref_source_related_mangas">Related titles</string>
|
||||
<string name="pref_source_related_mangas_summary">Show related titles while viewing entry</string>
|
||||
<string name="related_mangas_more">More like these...</string>
|
||||
|
||||
<!-- Backup settings -->
|
||||
<string name="custom_entry_info">Custom entry info</string>
|
||||
|
|
@ -434,7 +430,6 @@
|
|||
<!-- Feed Tab -->
|
||||
<string name="feed">Feed</string>
|
||||
<string name="feed_delete">Delete feed item?</string>
|
||||
<string name="too_many_in_feed">Too many sources in your feed, cannot add more than limited</string>
|
||||
<string name="feed_tab_empty">You don\'t have any sources in your feed, navigate to the top right to add one</string>
|
||||
<string name="feed_add">Add %1$s to feed?</string>
|
||||
|
||||
|
|
@ -466,7 +461,6 @@
|
|||
<string name="skip_this_step_next_time">Skip this step next time</string>
|
||||
<string name="hide_not_found_entries">Hide not found entries</string>
|
||||
<string name="search_parameter">Search parameter (e.g. language:english)</string>
|
||||
<string name="current_">Current: %1$s</string>
|
||||
<string name="latest_">Latest: %1$s</string>
|
||||
<string name="migrating_to">migrating to</string>
|
||||
<string name="match_pinned_sources">Match pinned sources</string>
|
||||
|
|
|
|||
|
|
@ -418,7 +418,6 @@
|
|||
<!-- Feed Tab -->
|
||||
<string name="feed">Лента</string>
|
||||
<string name="feed_delete">Удалить элемент из ленты?</string>
|
||||
<string name="too_many_in_feed">Слишком большое количество источников в вашей ленте. Количество не должно превышать 10</string>
|
||||
<string name="feed_tab_empty">Ваша лента не имеет отслеживаемых источников. Чтобы добавить источник нажмите «+»</string>
|
||||
<string name="feed_add">Добавить %1$s в ленту?</string>
|
||||
|
||||
|
|
|
|||
|
|
@ -371,7 +371,6 @@
|
|||
<!-- Feed Tab -->
|
||||
<string name="feed">订阅</string>
|
||||
<string name="feed_delete">删除订阅项?</string>
|
||||
<string name="too_many_in_feed">你订阅的图源太多了,不能大于 10</string>
|
||||
<string name="feed_tab_empty">没有订阅任何图源,请使用右上角按钮添加一个</string>
|
||||
<string name="feed_add">添加 %1$s 到订阅?</string>
|
||||
|
||||
|
|
|
|||
|
|
@ -371,7 +371,6 @@
|
|||
<!-- Feed Tab -->
|
||||
<string name="feed">訂閱</string>
|
||||
<string name="feed_delete">刪除訂閱項?</string>
|
||||
<string name="too_many_in_feed">你訂閱的來源太多了,不能大於 10</string>
|
||||
<string name="feed_tab_empty">訂閱中沒有任何來源,導覽到右上角新增一個</string>
|
||||
<string name="feed_add">新增 %1$s 到訂閱?</string>
|
||||
|
||||
|
|
|
|||
|
|
@ -73,11 +73,8 @@
|
|||
<string name="action_search_hint">Search…</string>
|
||||
<string name="action_search_settings">Search settings</string>
|
||||
<string name="action_global_search">Global search</string>
|
||||
<string name="action_source_search">Search for source</string>
|
||||
<string name="action_toggle_nsfw_only">Toggle NSFW only</string>
|
||||
<string name="action_select_all">Select all</string>
|
||||
<string name="action_select_inverse">Select inverse</string>
|
||||
<string name="action_bulk_select">Bulk selection mode</string>
|
||||
<string name="action_mark_as_read">Mark as read</string>
|
||||
<string name="action_mark_as_unread">Mark as unread</string>
|
||||
<string name="action_mark_previous_as_read">Mark previous as read</string>
|
||||
|
|
@ -163,7 +160,6 @@
|
|||
<string name="action_webview_forward">Forward</string>
|
||||
<string name="action_webview_refresh">Refresh</string>
|
||||
<string name="action_start_downloading_now">Start downloading now</string>
|
||||
<string name="action_faq_and_guides">FAQ and Guides</string>
|
||||
<string name="action_not_now">Not now</string>
|
||||
<string name="action_add_anyway">Add anyway</string>
|
||||
<string name="action_migrate_duplicate">Migrate existing entry</string>
|
||||
|
|
@ -240,10 +236,6 @@
|
|||
<!-- "Today" instead of "2023-12-31" -->
|
||||
<string name="pref_relative_format_summary">\"%1$s\" instead of \"%2$s\"</string>
|
||||
<string name="pref_date_format">Date format</string>
|
||||
<string name="pref_details_page_theme">Details page</string>
|
||||
<string name="pref_details_page_theme_cover_based">Details page theme based on cover</string>
|
||||
<string name="pref_theme_cover_based_style">Theme style</string>
|
||||
<string name="pref_theme_cover_based_animate">Theme animate</string>
|
||||
|
||||
<string name="pref_manage_notifications">Manage notifications</string>
|
||||
<string name="pref_app_language">App language</string>
|
||||
|
|
@ -322,14 +314,12 @@
|
|||
<string name="ext_installing">Installing</string>
|
||||
<string name="ext_installed">Installed</string>
|
||||
<string name="ext_trust">Trust</string>
|
||||
<string name="ext_unofficial">Unofficial</string>
|
||||
<string name="ext_untrusted">Untrusted</string>
|
||||
<string name="ext_uninstall">Uninstall</string>
|
||||
<string name="ext_app_info">App info</string>
|
||||
<string name="untrusted_extension">Untrusted extension</string>
|
||||
<string name="untrusted_extension_message">Malicious extensions can read any stored login credentials or execute arbitrary code.\n\nBy trusting this extension, you accept these risks.</string>
|
||||
<string name="obsolete_extension_message">This extension is no longer available. It may not function properly and can cause issues with the app. Uninstalling it is recommended.</string>
|
||||
<string name="unofficial_extension_message">This extension is not from the official repo.</string>
|
||||
<string name="extension_api_error">Failed to fetch available extensions</string>
|
||||
<string name="ext_info_version">Version</string>
|
||||
<string name="ext_info_language">Language</string>
|
||||
|
|
@ -493,20 +483,10 @@
|
|||
<string name="save_chapter_as_cbz">Save as CBZ archive</string>
|
||||
<string name="split_tall_images">Split tall images</string>
|
||||
<string name="split_tall_images_summary">Improves reader performance</string>
|
||||
<string name="download_cache_renew_interval">Download cache renew interval</string>
|
||||
<string name="download_cache_renew_interval_manual">Manual</string>
|
||||
<string name="download_cache_renew_interval_1hour">1 hour</string>
|
||||
<string name="download_cache_renew_interval_2hour">2 hours</string>
|
||||
<string name="download_cache_renew_interval_6hour">6 hours</string>
|
||||
<string name="download_cache_renew_interval_12hour">12 hours</string>
|
||||
<string name="download_cache_renew_interval_24hour">1 day</string>
|
||||
<string name="download_cache_renew_interval_info">If set to "manual", either refresh each manga or using the "Invalidate downloads index" action in "Advanced"</string>
|
||||
|
||||
<!-- Tracking section -->
|
||||
<string name="tracking_guide">Tracking guide</string>
|
||||
<string name="pref_auto_update_manga_sync">Update progress after reading</string>
|
||||
<string name="pref_update_tracking_marked_read">Update progress when marked as read</string>
|
||||
<string name="pref_auto_sync_read_chapters">Auto sync read chapters from Trackers</string>
|
||||
<string name="services">Trackers</string>
|
||||
<string name="tracking_info">One-way sync to update the chapter progress in external tracker services. Set up tracking for individual entries from their tracking button.</string>
|
||||
<string name="enhanced_services">Enhanced trackers</string>
|
||||
|
|
@ -576,12 +556,6 @@
|
|||
<string name="pref_reset_user_agent_string">Reset default user agent string</string>
|
||||
<string name="requires_app_restart">Requires app restart to take effect</string>
|
||||
<string name="cookies_cleared">Cookies cleared</string>
|
||||
<!-- KMK >> -->
|
||||
<string name="pref_clean_invalid_downloads">Clean invalid downloads</string>
|
||||
<string name="pref_clean_invalid_downloads_summary">Find and remove all downloads, files, folders which are not saved in your library</string>
|
||||
<string name="invalid_downloads_cleaned">Invalid downloads cleaned</string>
|
||||
<string name="pref_private_installer_warning">Avoid using Private Installer because it\'s not stable yet, will lead to really slow start/resume App.</string>
|
||||
<!-- KMK << -->
|
||||
<string name="pref_invalidate_download_cache">Invalidate downloads index</string>
|
||||
<string name="pref_invalidate_download_cache_summary">Force app to recheck downloaded chapters</string>
|
||||
<string name="download_cache_invalidated">Downloads index invalidated</string>
|
||||
|
|
@ -615,7 +589,6 @@
|
|||
<string name="website">Website</string>
|
||||
<string name="version">Version</string>
|
||||
<string name="whats_new">What\'s new</string>
|
||||
<string name="whats_coming">What\'s coming (soon)</string>
|
||||
<string name="help_translate">Help translate</string>
|
||||
<string name="licenses">Open source licenses</string>
|
||||
<string name="privacy_policy">Privacy policy</string>
|
||||
|
|
@ -695,10 +668,6 @@
|
|||
<string name="remove_from_library">Remove from library</string>
|
||||
<string name="unknown_title">Unknown title</string>
|
||||
<string name="confirm_add_duplicate_manga">You have an entry in your library with the same name.\n\nDo you still wish to continue?</string>
|
||||
<string name="action_allow_duplicate_manga">Allow it</string>
|
||||
<string name="action_skip_duplicate_manga">Skip it</string>
|
||||
<string name="action_allow_all_duplicate_manga">Allow all</string>
|
||||
<string name="action_skip_all_duplicate_manga">Skip all</string>
|
||||
<string name="manga_added_library">Added to library</string>
|
||||
<string name="manga_removed_library">Removed from library</string>
|
||||
<string name="manga_info_expand">More</string>
|
||||
|
|
@ -905,7 +874,6 @@
|
|||
|
||||
<!--UpdateCheck-->
|
||||
<string name="update_check_confirm">Download</string>
|
||||
<string name="update_check_try_now">Try now</string>
|
||||
<string name="update_check_open">Open on GitHub</string>
|
||||
<!-- reserved for future use -->
|
||||
<string name="update_check_eol">This Android version is no longer supported</string>
|
||||
|
|
@ -916,7 +884,6 @@
|
|||
<string name="update_check_notification_download_complete">Tap to install update</string>
|
||||
<string name="update_check_notification_download_error">Download error</string>
|
||||
<string name="update_check_notification_update_available">New version available!</string>
|
||||
<string name="update_check_notification_preview_available">Coming (soon) updates!</string>
|
||||
<string name="update_check_fdroid_migration_info">A new version is available from the official releases. Tap to learn how to migrate from unofficial F-Droid releases.</string>
|
||||
|
||||
<!-- Information Text -->
|
||||
|
|
|
|||
|
|
@ -16,6 +16,9 @@ android {
|
|||
dependencies {
|
||||
api(projects.core.common)
|
||||
api(projects.i18n)
|
||||
// KMK -->
|
||||
api(projects.i18nKmk)
|
||||
// KMK <--
|
||||
// SY -->
|
||||
api(projects.i18nSy)
|
||||
// SY <--
|
||||
|
|
|
|||
|
|
@ -47,6 +47,9 @@ include(":core:common")
|
|||
include(":data")
|
||||
include(":domain")
|
||||
include(":i18n")
|
||||
// KMK -->
|
||||
include(":i18n-kmk")
|
||||
// KMK <--
|
||||
// SY -->
|
||||
include(":i18n-sy")
|
||||
// SY <--
|
||||
|
|
|
|||
|
|
@ -14,6 +14,9 @@ kotlin {
|
|||
api(libs.injekt.core)
|
||||
api(libs.rxjava)
|
||||
api(libs.jsoup)
|
||||
// KMK -->
|
||||
api(projects.i18nKmk)
|
||||
// KMK <--
|
||||
// SY -->
|
||||
api(projects.i18n)
|
||||
api(projects.i18nSy)
|
||||
|
|
|
|||
|
|
@ -10,6 +10,9 @@ kotlin {
|
|||
dependencies {
|
||||
implementation(projects.sourceApi)
|
||||
api(projects.i18n)
|
||||
// KMK -->
|
||||
api(projects.i18nKmk)
|
||||
// KMK <--
|
||||
// SY -->
|
||||
api(projects.i18nSy)
|
||||
// SY <--
|
||||
|
|
|
|||
Loading…
Reference in a new issue