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

@ -9,6 +9,8 @@ kotlin {
val commonMain by getting {
dependencies {
implementation(project(":source-api"))
api(project(":i18n"))
implementation(libs.unifile)
implementation(libs.junrar)
}

View File

@ -16,6 +16,7 @@ import kotlinx.serialization.json.decodeFromStream
import logcat.LogPriority
import nl.adaptivity.xmlutil.AndroidXmlReader
import nl.adaptivity.xmlutil.serialization.XML
import tachiyomi.core.i18n.localize
import tachiyomi.core.metadata.comicinfo.COMIC_INFO_FILE
import tachiyomi.core.metadata.comicinfo.ComicInfo
import tachiyomi.core.metadata.comicinfo.copyFromComicInfo
@ -26,6 +27,7 @@ import tachiyomi.core.util.system.ImageUtil
import tachiyomi.core.util.system.logcat
import tachiyomi.domain.chapter.service.ChapterRecognition
import tachiyomi.domain.manga.model.Manga
import tachiyomi.i18n.MR
import tachiyomi.source.local.filter.OrderBy
import tachiyomi.source.local.image.LocalCoverManager
import tachiyomi.source.local.io.Archive
@ -55,7 +57,7 @@ actual class LocalSource(
private val POPULAR_FILTERS = FilterList(OrderBy.Popular(context))
private val LATEST_FILTERS = FilterList(OrderBy.Latest(context))
override val name: String = context.getString(R.string.local_source)
override val name: String = context.localize(MR.strings.local_source)
override val id: Long = ID
@ -310,9 +312,9 @@ actual class LocalSource(
.map { dir -> File(dir, chapter.url) }
.find { it.exists() }
?.let(Format.Companion::valueOf)
?: throw Exception(context.getString(R.string.chapter_not_found))
?: throw Exception(context.localize(MR.strings.chapter_not_found))
} catch (e: Format.UnknownFormatException) {
throw Exception(context.getString(R.string.local_invalid_format))
throw Exception(context.localize(MR.strings.local_invalid_format))
} catch (e: Exception) {
throw e
}

View File

@ -2,11 +2,12 @@ package tachiyomi.source.local.filter
import android.content.Context
import eu.kanade.tachiyomi.source.model.Filter
import tachiyomi.source.local.R
import tachiyomi.core.i18n.localize
import tachiyomi.i18n.MR
sealed class OrderBy(context: Context, selection: Selection) : Filter.Sort(
context.getString(R.string.local_filter_order_by),
arrayOf(context.getString(R.string.title), context.getString(R.string.date)),
context.localize(MR.strings.local_filter_order_by),
arrayOf(context.localize(MR.strings.title), context.localize(MR.strings.date)),
selection,
) {
class Popular(context: Context) : OrderBy(context, Selection(0, true))

View File

@ -2,14 +2,15 @@ package tachiyomi.source.local.io
import android.content.Context
import eu.kanade.tachiyomi.util.storage.DiskUtil
import tachiyomi.source.local.R
import tachiyomi.core.i18n.localize
import tachiyomi.i18n.MR
import java.io.File
actual class LocalSourceFileSystem(
private val context: Context,
) {
private val baseFolderLocation = "${context.getString(R.string.app_name)}${File.separator}local"
private val baseFolderLocation = "${context.localize(MR.strings.app_name)}${File.separator}local"
actual fun getBaseDirectories(): Sequence<File> {
return DiskUtil.getExternalStorages(context)