Migrate to multiplatform string resources (#10147)

* Migrate to multiplatform string resources

* Move plurals translations into separate files

* Fix lint check on generated files
This commit is contained in:
arkon
2023-11-18 13:54:56 -05:00
committed by GitHub
parent c39ae21f4a
commit 46e734fc8e
340 changed files with 5741 additions and 6292 deletions

View File

@@ -4,8 +4,8 @@ import androidx.compose.material3.AlertDialog
import androidx.compose.material3.Text
import androidx.compose.material3.TextButton
import androidx.compose.runtime.Composable
import androidx.compose.ui.res.stringResource
import eu.kanade.tachiyomi.R
import tachiyomi.i18n.MR
import tachiyomi.presentation.core.i18n.localize
@Composable
fun UpdatesDeleteConfirmationDialog(
@@ -14,7 +14,7 @@ fun UpdatesDeleteConfirmationDialog(
) {
AlertDialog(
text = {
Text(text = stringResource(R.string.confirm_delete_chapters))
Text(text = localize(MR.strings.confirm_delete_chapters))
},
onDismissRequest = onDismissRequest,
confirmButton = {
@@ -22,12 +22,12 @@ fun UpdatesDeleteConfirmationDialog(
onConfirm()
onDismissRequest()
}) {
Text(text = stringResource(R.string.action_ok))
Text(text = localize(MR.strings.action_ok))
}
},
dismissButton = {
TextButton(onClick = onDismissRequest) {
Text(text = stringResource(R.string.action_cancel))
Text(text = localize(MR.strings.action_cancel))
}
},
)

View File

@@ -18,23 +18,23 @@ import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.util.fastAll
import androidx.compose.ui.util.fastAny
import eu.kanade.presentation.components.AppBar
import eu.kanade.presentation.components.AppBarActions
import eu.kanade.presentation.manga.components.ChapterDownloadAction
import eu.kanade.presentation.manga.components.MangaBottomActionMenu
import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.data.download.model.Download
import eu.kanade.tachiyomi.ui.updates.UpdatesItem
import eu.kanade.tachiyomi.ui.updates.UpdatesScreenModel
import kotlinx.collections.immutable.persistentListOf
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import tachiyomi.i18n.MR
import tachiyomi.presentation.core.components.FastScrollLazyColumn
import tachiyomi.presentation.core.components.material.PullRefresh
import tachiyomi.presentation.core.components.material.Scaffold
import tachiyomi.presentation.core.i18n.localize
import tachiyomi.presentation.core.screens.EmptyScreen
import tachiyomi.presentation.core.screens.LoadingScreen
import kotlin.time.Duration.Companion.seconds
@@ -85,7 +85,7 @@ fun UpdateScreen(
when {
state.isLoading -> LoadingScreen(Modifier.padding(contentPadding))
state.items.isEmpty() -> EmptyScreen(
textResource = R.string.information_no_recent,
stringRes = MR.strings.information_no_recent,
modifier = Modifier.padding(contentPadding),
)
else -> {
@@ -140,12 +140,12 @@ private fun UpdatesAppBar(
) {
AppBar(
modifier = modifier,
title = stringResource(R.string.label_recent_updates),
title = localize(MR.strings.label_recent_updates),
actions = {
AppBarActions(
persistentListOf(
AppBar.Action(
title = stringResource(R.string.action_update_library),
title = localize(MR.strings.action_update_library),
icon = Icons.Outlined.Refresh,
onClick = onUpdateLibrary,
),
@@ -158,12 +158,12 @@ private fun UpdatesAppBar(
AppBarActions(
persistentListOf(
AppBar.Action(
title = stringResource(R.string.action_select_all),
title = localize(MR.strings.action_select_all),
icon = Icons.Outlined.SelectAll,
onClick = onSelectAll,
),
AppBar.Action(
title = stringResource(R.string.action_select_inverse),
title = localize(MR.strings.action_select_inverse),
icon = Icons.Outlined.FlipToBack,
onClick = onInvertSelection,
),

View File

@@ -29,7 +29,6 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.hapticfeedback.HapticFeedbackType
import androidx.compose.ui.platform.LocalDensity
import androidx.compose.ui.platform.LocalHapticFeedback
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.font.FontStyle
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp
@@ -38,13 +37,14 @@ import eu.kanade.presentation.manga.components.ChapterDownloadIndicator
import eu.kanade.presentation.manga.components.DotSeparatorText
import eu.kanade.presentation.manga.components.MangaCover
import eu.kanade.presentation.util.relativeTimeSpanString
import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.data.download.model.Download
import eu.kanade.tachiyomi.ui.updates.UpdatesItem
import tachiyomi.domain.updates.model.UpdatesWithRelations
import tachiyomi.i18n.MR
import tachiyomi.presentation.core.components.ListGroupHeader
import tachiyomi.presentation.core.components.material.ReadItemAlpha
import tachiyomi.presentation.core.components.material.padding
import tachiyomi.presentation.core.i18n.localize
import tachiyomi.presentation.core.util.selectedBackground
internal fun LazyListScope.updatesLastUpdatedItem(
@@ -56,7 +56,7 @@ internal fun LazyListScope.updatesLastUpdatedItem(
.padding(horizontal = MaterialTheme.padding.medium, vertical = MaterialTheme.padding.small),
) {
Text(
text = stringResource(R.string.updates_last_update_info, relativeTimeSpanString(lastUpdated)),
text = localize(MR.strings.updates_last_update_info, relativeTimeSpanString(lastUpdated)),
fontStyle = FontStyle.Italic,
)
}
@@ -100,8 +100,8 @@ internal fun LazyListScope.updatesUiItems(
readProgress = updatesItem.update.lastPageRead
.takeIf { !updatesItem.update.read && it > 0L }
?.let {
stringResource(
R.string.chapter_progress,
localize(
MR.strings.chapter_progress,
it + 1,
)
},
@@ -183,7 +183,7 @@ private fun UpdatesUiItem(
if (!update.read) {
Icon(
imageVector = Icons.Filled.Circle,
contentDescription = stringResource(R.string.unread),
contentDescription = localize(MR.strings.unread),
modifier = Modifier
.height(8.dp)
.padding(end = 4.dp),
@@ -193,7 +193,7 @@ private fun UpdatesUiItem(
if (update.bookmark) {
Icon(
imageVector = Icons.Filled.Bookmark,
contentDescription = stringResource(R.string.action_filter_bookmarked),
contentDescription = localize(MR.strings.action_filter_bookmarked),
modifier = Modifier
.sizeIn(maxHeight = with(LocalDensity.current) { textHeight.toDp() - 2.dp }),
tint = MaterialTheme.colorScheme.primary,