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
@@ -4,11 +4,9 @@ import androidx.compose.material3.AlertDialog
import androidx.compose.material3.Text
import androidx.compose.material3.TextButton
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.setValue
import androidx.compose.ui.res.stringResource
import eu.kanade.tachiyomi.R
import tachiyomi.domain.manga.model.Manga
import tachiyomi.i18n.MR
import tachiyomi.presentation.core.i18n.localize
@Composable
fun RemoveMangaDialog(
@@ -20,7 +18,7 @@ fun RemoveMangaDialog(
onDismissRequest = onDismissRequest,
dismissButton = {
TextButton(onClick = onDismissRequest) {
Text(text = stringResource(R.string.action_cancel))
Text(text = localize(MR.strings.action_cancel))
}
},
confirmButton = {
@@ -30,14 +28,14 @@ fun RemoveMangaDialog(
onConfirm()
},
) {
Text(text = stringResource(R.string.action_remove))
Text(text = localize(MR.strings.action_remove))
}
},
title = {
Text(text = stringResource(R.string.are_you_sure))
Text(text = localize(MR.strings.are_you_sure))
},
text = {
Text(text = stringResource(R.string.remove_manga, mangaToRemove.title))
Text(text = localize(MR.strings.remove_manga, mangaToRemove.title))
},
)
}
@@ -10,18 +10,18 @@ import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.res.stringResource
import eu.kanade.presentation.components.AppBar
import eu.kanade.presentation.components.AppBarActions
import eu.kanade.presentation.components.AppBarTitle
import eu.kanade.presentation.components.DropdownMenu
import eu.kanade.presentation.components.RadioMenuItem
import eu.kanade.presentation.components.SearchToolbar
import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.source.ConfigurableSource
import eu.kanade.tachiyomi.source.Source
import kotlinx.collections.immutable.persistentListOf
import tachiyomi.domain.library.model.LibraryDisplayMode
import tachiyomi.i18n.MR
import tachiyomi.presentation.core.i18n.localize
import tachiyomi.source.local.LocalSource
@Composable
@@ -58,7 +58,7 @@ fun BrowseSourceToolbar(
.apply {
add(
AppBar.Action(
title = stringResource(R.string.action_display_mode),
title = localize(MR.strings.action_display_mode),
icon = if (displayMode == LibraryDisplayMode.List) {
Icons.AutoMirrored.Filled.ViewList
} else {
@@ -70,14 +70,14 @@ fun BrowseSourceToolbar(
if (isLocalSource) {
add(
AppBar.OverflowAction(
title = stringResource(R.string.label_help),
title = localize(MR.strings.label_help),
onClick = onHelpClick,
),
)
} else {
add(
AppBar.OverflowAction(
title = stringResource(R.string.action_open_in_web_view),
title = localize(MR.strings.action_open_in_web_view),
onClick = onWebViewClick,
),
)
@@ -85,7 +85,7 @@ fun BrowseSourceToolbar(
if (isConfigurableSource) {
add(
AppBar.OverflowAction(
title = stringResource(R.string.action_settings),
title = localize(MR.strings.action_settings),
onClick = onSettingsClick,
),
)
@@ -99,21 +99,21 @@ fun BrowseSourceToolbar(
onDismissRequest = { selectingDisplayMode = false },
) {
RadioMenuItem(
text = { Text(text = stringResource(R.string.action_display_comfortable_grid)) },
text = { Text(text = localize(MR.strings.action_display_comfortable_grid)) },
isChecked = displayMode == LibraryDisplayMode.ComfortableGrid,
) {
selectingDisplayMode = false
onDisplayModeChange(LibraryDisplayMode.ComfortableGrid)
}
RadioMenuItem(
text = { Text(text = stringResource(R.string.action_display_grid)) },
text = { Text(text = localize(MR.strings.action_display_grid)) },
isChecked = displayMode == LibraryDisplayMode.CompactGrid,
) {
selectingDisplayMode = false
onDisplayModeChange(LibraryDisplayMode.CompactGrid)
}
RadioMenuItem(
text = { Text(text = stringResource(R.string.action_display_list)) },
text = { Text(text = localize(MR.strings.action_display_list)) },
isChecked = displayMode == LibraryDisplayMode.List,
) {
selectingDisplayMode = false
@@ -13,15 +13,15 @@ import androidx.compose.runtime.Composable
import androidx.compose.runtime.State
import androidx.compose.runtime.getValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import eu.kanade.presentation.library.components.CommonMangaItemDefaults
import eu.kanade.presentation.library.components.MangaComfortableGridItem
import eu.kanade.tachiyomi.R
import tachiyomi.domain.manga.model.Manga
import tachiyomi.domain.manga.model.MangaCover
import tachiyomi.domain.manga.model.asMangaCover
import tachiyomi.i18n.MR
import tachiyomi.presentation.core.components.material.padding
import tachiyomi.presentation.core.i18n.localize
@Composable
fun GlobalSearchCardRow(
@@ -78,7 +78,7 @@ private fun MangaItem(
@Composable
private fun EmptyResultItem() {
Text(
text = stringResource(R.string.no_results_found),
text = localize(MR.strings.no_results_found),
modifier = Modifier
.padding(
horizontal = MaterialTheme.padding.medium,
@@ -22,11 +22,11 @@ import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
import eu.kanade.tachiyomi.R
import tachiyomi.i18n.MR
import tachiyomi.presentation.core.components.material.padding
import tachiyomi.presentation.core.i18n.localize
@Composable
fun GlobalSearchResultItem(
@@ -93,7 +93,7 @@ fun GlobalSearchErrorResultItem(message: String?) {
Icon(imageVector = Icons.Outlined.Error, contentDescription = null)
Spacer(Modifier.height(4.dp))
Text(
text = message ?: stringResource(R.string.unknown_error),
text = message ?: localize(MR.strings.unknown_error),
textAlign = TextAlign.Center,
)
}
@@ -26,11 +26,11 @@ import androidx.compose.material3.VerticalDivider
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource
import eu.kanade.presentation.components.SearchToolbar
import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.ui.browse.source.globalsearch.SourceFilter
import tachiyomi.i18n.MR
import tachiyomi.presentation.core.components.material.padding
import tachiyomi.presentation.core.i18n.localize
@Composable
fun GlobalSearchToolbar(
@@ -85,7 +85,7 @@ fun GlobalSearchToolbar(
)
},
label = {
Text(text = stringResource(id = R.string.pinned_sources))
Text(text = localize(MR.strings.pinned_sources))
},
)
FilterChip(
@@ -100,7 +100,7 @@ fun GlobalSearchToolbar(
)
},
label = {
Text(text = stringResource(id = R.string.all))
Text(text = localize(MR.strings.all))
},
)
@@ -118,7 +118,7 @@ fun GlobalSearchToolbar(
)
},
label = {
Text(text = stringResource(id = R.string.has_results))
Text(text = localize(MR.strings.has_results))
},
)
}