mirror of
https://github.com/aniyomiorg/aniyomi.git
synced 2024-11-24 13:48:55 +03:00
parent
f705e19182
commit
b3c911ea28
29 changed files with 337 additions and 229 deletions
|
@ -29,16 +29,17 @@
|
|||
<application
|
||||
android:name=".App"
|
||||
android:allowBackup="false"
|
||||
android:enableOnBackInvokedCallback="true"
|
||||
android:hardwareAccelerated="true"
|
||||
android:icon="@mipmap/ic_launcher"
|
||||
android:label="@string/app_name"
|
||||
android:largeHeap="true"
|
||||
android:localeConfig="@xml/locales_config"
|
||||
android:networkSecurityConfig="@xml/network_security_config"
|
||||
android:requestLegacyExternalStorage="true"
|
||||
android:roundIcon="@mipmap/ic_launcher_round"
|
||||
android:theme="@style/Theme.Tachiyomi"
|
||||
android:supportsRtl="true"
|
||||
android:networkSecurityConfig="@xml/network_security_config">
|
||||
android:theme="@style/Theme.Tachiyomi">
|
||||
|
||||
<!-- enable profiling by macrobenchmark -->
|
||||
<profileable
|
||||
|
|
|
@ -98,6 +98,7 @@ fun Manga.hasCustomCover(coverCache: MangaCoverCache = Injekt.get()): Boolean {
|
|||
fun getComicInfo(manga: Manga, chapter: Chapter, chapterUrl: String) = ComicInfo(
|
||||
title = ComicInfo.Title(chapter.name),
|
||||
series = ComicInfo.Series(manga.title),
|
||||
number = chapter.chapterNumber.takeIf { it >= 0 }?.let { ComicInfo.Number(it.toString()) },
|
||||
web = ComicInfo.Web(chapterUrl),
|
||||
summary = manga.description?.let { ComicInfo.Summary(it) },
|
||||
writer = manga.author?.let { ComicInfo.Writer(it) },
|
||||
|
|
|
@ -29,6 +29,8 @@ import eu.kanade.domain.ui.UiPreferences
|
|||
import eu.kanade.domain.ui.model.setAppCompatDelegateThemeMode
|
||||
import eu.kanade.tachiyomi.crash.CrashActivity
|
||||
import eu.kanade.tachiyomi.crash.GlobalExceptionHandler
|
||||
import eu.kanade.tachiyomi.data.cache.ChapterCache
|
||||
import eu.kanade.tachiyomi.data.cache.EpisodeCache
|
||||
import eu.kanade.tachiyomi.data.coil.AnimeCoverFetcher
|
||||
import eu.kanade.tachiyomi.data.coil.AnimeCoverKeyer
|
||||
import eu.kanade.tachiyomi.data.coil.AnimeKeyer
|
||||
|
@ -58,6 +60,7 @@ import org.acra.ktx.initAcra
|
|||
import org.acra.sender.HttpSender
|
||||
import org.conscrypt.Conscrypt
|
||||
import tachiyomi.core.util.system.logcat
|
||||
import tachiyomi.domain.library.service.LibraryPreferences
|
||||
import tachiyomi.presentation.widget.entries.anime.TachiyomiAnimeWidgetManager
|
||||
import tachiyomi.presentation.widget.entries.manga.TachiyomiMangaWidgetManager
|
||||
import uy.kohesive.injekt.Injekt
|
||||
|
@ -68,9 +71,12 @@ import java.security.Security
|
|||
class App : Application(), DefaultLifecycleObserver, ImageLoaderFactory {
|
||||
|
||||
private val basePreferences: BasePreferences by injectLazy()
|
||||
private val libraryPreferences: LibraryPreferences by injectLazy()
|
||||
private val networkPreferences: NetworkPreferences by injectLazy()
|
||||
|
||||
private val disableIncognitoReceiver = DisableIncognitoReceiver()
|
||||
private val chapterCache: ChapterCache by injectLazy()
|
||||
private val episodeCache: EpisodeCache by injectLazy()
|
||||
|
||||
@SuppressLint("LaunchActivityFromNotification")
|
||||
override fun onCreate() {
|
||||
|
@ -186,6 +192,11 @@ class App : Application(), DefaultLifecycleObserver, ImageLoaderFactory {
|
|||
|
||||
override fun onStop(owner: LifecycleOwner) {
|
||||
SecureActivityDelegate.onApplicationStopped()
|
||||
|
||||
if (libraryPreferences.autoClearItemCache().get()) {
|
||||
chapterCache.clear()
|
||||
episodeCache.clear()
|
||||
}
|
||||
}
|
||||
|
||||
override fun getPackageName(): String {
|
||||
|
|
|
@ -23,7 +23,12 @@ import kotlinx.coroutines.flow.onStart
|
|||
import kotlinx.coroutines.flow.receiveAsFlow
|
||||
import kotlinx.coroutines.flow.shareIn
|
||||
import kotlinx.coroutines.flow.stateIn
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.sync.Mutex
|
||||
import kotlinx.coroutines.sync.withLock
|
||||
import kotlinx.coroutines.withTimeoutOrNull
|
||||
import kotlinx.serialization.decodeFromByteArray
|
||||
import kotlinx.serialization.protobuf.ProtoBuf
|
||||
import logcat.LogPriority
|
||||
import tachiyomi.core.util.lang.launchIO
|
||||
import tachiyomi.core.util.lang.launchNonCancellable
|
||||
|
@ -34,6 +39,7 @@ import tachiyomi.domain.items.episode.model.Episode
|
|||
import tachiyomi.domain.source.anime.service.AnimeSourceManager
|
||||
import uy.kohesive.injekt.Injekt
|
||||
import uy.kohesive.injekt.api.get
|
||||
import java.io.File
|
||||
import java.util.concurrent.ConcurrentHashMap
|
||||
import kotlin.time.Duration.Companion.hours
|
||||
import kotlin.time.Duration.Companion.seconds
|
||||
|
@ -76,6 +82,10 @@ class AnimeDownloadCache(
|
|||
.debounce(1000L) // Don't notify if it finishes quickly enough
|
||||
.stateIn(scope, SharingStarted.WhileSubscribed(), false)
|
||||
|
||||
private val diskCacheFile: File
|
||||
get() = File(context.cacheDir, "dl_index_cache")
|
||||
|
||||
private val rootDownloadsDirLock = Mutex()
|
||||
private var rootDownloadsDir = RootDirectory(getDirectoryFromPreference())
|
||||
|
||||
init {
|
||||
|
@ -85,6 +95,21 @@ class AnimeDownloadCache(
|
|||
invalidateCache()
|
||||
}
|
||||
.launchIn(scope)
|
||||
|
||||
// Attempt to read cache file
|
||||
scope.launch {
|
||||
rootDownloadsDirLock.withLock {
|
||||
try {
|
||||
val diskCache = diskCacheFile.inputStream().use {
|
||||
ProtoBuf.decodeFromByteArray<RootDirectory>(it.readBytes())
|
||||
}
|
||||
rootDownloadsDir = diskCache
|
||||
lastRenew = System.currentTimeMillis()
|
||||
} catch (e: Throwable) {
|
||||
diskCacheFile.delete()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -304,9 +304,11 @@ class AnimeDownloadManager(
|
|||
val oldFolder = provider.findSourceDir(oldSource) ?: return
|
||||
val newName = provider.getSourceDirName(newSource)
|
||||
|
||||
if (oldFolder.name == newName) return
|
||||
|
||||
val capitalizationChanged = oldFolder.name.equals(newName, ignoreCase = true)
|
||||
if (capitalizationChanged) {
|
||||
val tempName = newName + "_tmp"
|
||||
val tempName = newName + AnimeDownloader.TMP_DIR_SUFFIX
|
||||
if (oldFolder.renameTo(tempName).not()) {
|
||||
logcat(LogPriority.ERROR) { "Failed to rename source download folder: ${oldFolder.name}" }
|
||||
return
|
||||
|
@ -336,6 +338,9 @@ class AnimeDownloadManager(
|
|||
.firstOrNull()
|
||||
|
||||
val newName = provider.getEpisodeDirName(newEpisode.name, newEpisode.scanlator)
|
||||
|
||||
if (oldFolder?.name == newName) return
|
||||
|
||||
if (oldFolder?.renameTo(newName) == true) {
|
||||
cache.removeEpisode(oldEpisode, anime)
|
||||
cache.addEpisode(newName, animeDir, anime)
|
||||
|
|
|
@ -59,6 +59,17 @@ class AnimeDownloadStore(
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes a list of downloads from the store.
|
||||
*
|
||||
* @param downloads the download to remove.
|
||||
*/
|
||||
fun removeAll(downloads: List<AnimeDownload>) {
|
||||
preferences.edit {
|
||||
downloads.forEach { remove(getKey(it)) }
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes all the downloads from the store.
|
||||
*/
|
||||
|
|
|
@ -226,8 +226,14 @@ class AnimeDownloader(
|
|||
5,
|
||||
)
|
||||
.subscribe(
|
||||
{ completedDownload ->
|
||||
completeAnimeDownload(completedDownload)
|
||||
{
|
||||
// Remove successful download from queue
|
||||
if (it.status == AnimeDownload.State.DOWNLOADED) {
|
||||
removeFromQueue(it)
|
||||
}
|
||||
if (areAllAnimeDownloadsFinished()) {
|
||||
stop()
|
||||
}
|
||||
},
|
||||
{ error ->
|
||||
logcat(LogPriority.ERROR, error)
|
||||
|
@ -676,9 +682,16 @@ class AnimeDownloader(
|
|||
}
|
||||
it.delete()
|
||||
tmpDir.delete()
|
||||
queueState.value.find { Anime -> Anime.video == video }?.let { Anime ->
|
||||
Anime.status = AnimeDownload.State.DOWNLOADED
|
||||
completeAnimeDownload(Anime)
|
||||
queueState.value.find { Anime -> Anime.video == video }?.let { download ->
|
||||
download.status = AnimeDownload.State.DOWNLOADED
|
||||
// Delete successful downloads from queue
|
||||
if (download.status == AnimeDownload.State.DOWNLOADED) {
|
||||
// Remove downloaded episode from queue
|
||||
removeFromQueue(download)
|
||||
}
|
||||
if (areAllAnimeDownloadsFinished()) {
|
||||
stop()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -750,20 +763,6 @@ class AnimeDownloader(
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Completes a download. This method is called in the main thread.
|
||||
*/
|
||||
private fun completeAnimeDownload(download: AnimeDownload) {
|
||||
// Delete successful downloads from queue
|
||||
if (download.status == AnimeDownload.State.DOWNLOADED) {
|
||||
// Remove downloaded episode from queue
|
||||
removeFromQueue(download)
|
||||
}
|
||||
if (areAllAnimeDownloadsFinished()) {
|
||||
stop()
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if all the queued downloads are in DOWNLOADED or ERROR state.
|
||||
*/
|
||||
|
@ -807,14 +806,26 @@ class AnimeDownloader(
|
|||
}
|
||||
}
|
||||
|
||||
fun removeFromQueue(episodes: List<Episode>) {
|
||||
episodes.forEach { episode ->
|
||||
queueState.value.find { it.episode.id == episode.id }?.let { removeFromQueue(it) }
|
||||
private inline fun removeFromQueueByPredicate(predicate: (AnimeDownload) -> Boolean) {
|
||||
_queueState.update { queue ->
|
||||
val downloads = queue.filter { predicate(it) }
|
||||
store.removeAll(downloads)
|
||||
downloads.forEach { download ->
|
||||
if (download.status == AnimeDownload.State.DOWNLOADING || download.status == AnimeDownload.State.QUEUE) {
|
||||
download.status = AnimeDownload.State.NOT_DOWNLOADED
|
||||
}
|
||||
}
|
||||
queue - downloads
|
||||
}
|
||||
}
|
||||
|
||||
fun removeFromQueue(episodes: List<Episode>) {
|
||||
val episodeIds = episodes.map { it.id }
|
||||
removeFromQueueByPredicate { it.episode.id in episodeIds }
|
||||
}
|
||||
|
||||
fun removeFromQueue(anime: Anime) {
|
||||
queueState.value.filter { it.anime.id == anime.id }.forEach { removeFromQueue(it) }
|
||||
removeFromQueueByPredicate { it.anime.id == anime.id }
|
||||
}
|
||||
|
||||
private fun _clearQueue() {
|
||||
|
|
|
@ -26,7 +26,7 @@ import kotlinx.coroutines.flow.onStart
|
|||
import kotlinx.coroutines.flow.receiveAsFlow
|
||||
import kotlinx.coroutines.flow.shareIn
|
||||
import kotlinx.coroutines.flow.stateIn
|
||||
import kotlinx.coroutines.runBlocking
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.sync.Mutex
|
||||
import kotlinx.coroutines.sync.withLock
|
||||
import kotlinx.coroutines.withTimeoutOrNull
|
||||
|
@ -97,7 +97,7 @@ class MangaDownloadCache(
|
|||
get() = File(context.cacheDir, "dl_index_cache")
|
||||
|
||||
private val rootDownloadsDirLock = Mutex()
|
||||
private var rootDownloadsDir: RootDirectory
|
||||
private var rootDownloadsDir = RootDirectory(getDirectoryFromPreference())
|
||||
|
||||
init {
|
||||
downloadPreferences.downloadsDirectory().changes()
|
||||
|
@ -107,20 +107,20 @@ class MangaDownloadCache(
|
|||
}
|
||||
.launchIn(scope)
|
||||
|
||||
rootDownloadsDir = runBlocking(Dispatchers.IO) {
|
||||
try {
|
||||
val diskCache = diskCacheFile.inputStream().use {
|
||||
ProtoBuf.decodeFromByteArray<RootDirectory>(it.readBytes())
|
||||
// Attempt to read cache file
|
||||
scope.launch {
|
||||
rootDownloadsDirLock.withLock {
|
||||
try {
|
||||
val diskCache = diskCacheFile.inputStream().use {
|
||||
ProtoBuf.decodeFromByteArray<RootDirectory>(it.readBytes())
|
||||
}
|
||||
rootDownloadsDir = diskCache
|
||||
lastRenew = System.currentTimeMillis()
|
||||
} catch (e: Throwable) {
|
||||
diskCacheFile.delete()
|
||||
}
|
||||
lastRenew = 1 // Just so that the banner won't show up
|
||||
diskCache
|
||||
} catch (e: Throwable) {
|
||||
diskCacheFile.delete()
|
||||
null
|
||||
}
|
||||
} ?: RootDirectory(getDirectoryFromPreference())
|
||||
|
||||
notifyChanges()
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -302,9 +302,11 @@ class MangaDownloadManager(
|
|||
val oldFolder = provider.findSourceDir(oldSource) ?: return
|
||||
val newName = provider.getSourceDirName(newSource)
|
||||
|
||||
if (oldFolder.name == newName) return
|
||||
|
||||
val capitalizationChanged = oldFolder.name.equals(newName, ignoreCase = true)
|
||||
if (capitalizationChanged) {
|
||||
val tempName = newName + "_tmp"
|
||||
val tempName = newName + MangaDownloader.TMP_DIR_SUFFIX
|
||||
if (oldFolder.renameTo(tempName).not()) {
|
||||
logcat(LogPriority.ERROR) { "Failed to rename source download folder: ${oldFolder.name}" }
|
||||
return
|
||||
|
@ -338,6 +340,8 @@ class MangaDownloadManager(
|
|||
newName += ".cbz"
|
||||
}
|
||||
|
||||
if (oldDownload.name == newName) return
|
||||
|
||||
if (oldDownload.renameTo(newName)) {
|
||||
cache.removeChapter(oldChapter, manga)
|
||||
cache.addChapter(newName, mangaDir, manga)
|
||||
|
|
|
@ -59,6 +59,17 @@ class MangaDownloadStore(
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes a list of downloads from the store.
|
||||
*
|
||||
* @param downloads the download to remove.
|
||||
*/
|
||||
fun removeAll(downloads: List<MangaDownload>) {
|
||||
preferences.edit {
|
||||
downloads.forEach { remove(getKey(it)) }
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes all the downloads from the store.
|
||||
*/
|
||||
|
|
|
@ -223,7 +223,13 @@ class MangaDownloader(
|
|||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(
|
||||
{
|
||||
completeDownload(it)
|
||||
// Remove successful download from queue
|
||||
if (it.status == MangaDownload.State.DOWNLOADED) {
|
||||
removeFromQueue(it)
|
||||
}
|
||||
if (areAllDownloadsFinished()) {
|
||||
stop()
|
||||
}
|
||||
},
|
||||
{ error ->
|
||||
logcat(LogPriority.ERROR, error)
|
||||
|
@ -375,7 +381,29 @@ class MangaDownloader(
|
|||
}
|
||||
|
||||
// Do after download completes
|
||||
ensureSuccessfulDownload(download, mangaDir, tmpDir, chapterDirname)
|
||||
if (!isDownloadSuccessful(download, tmpDir)) {
|
||||
download.status = MangaDownload.State.ERROR
|
||||
return
|
||||
}
|
||||
|
||||
createComicInfoFile(
|
||||
tmpDir,
|
||||
download.manga,
|
||||
download.chapter,
|
||||
download.source,
|
||||
)
|
||||
|
||||
// Only rename the directory if it's downloaded
|
||||
if (downloadPreferences.saveChaptersAsCBZ().get()) {
|
||||
archiveChapter(mangaDir, chapterDirname, tmpDir)
|
||||
} else {
|
||||
tmpDir.renameTo(chapterDirname)
|
||||
}
|
||||
cache.addChapter(chapterDirname, mangaDir, download.manga)
|
||||
|
||||
DiskUtil.createNoMediaFile(tmpDir, context)
|
||||
|
||||
download.status = MangaDownload.State.DOWNLOADED
|
||||
} catch (error: Throwable) {
|
||||
if (error is CancellationException) throw error
|
||||
// If the page list threw, it will resume here
|
||||
|
@ -530,21 +558,15 @@ class MangaDownloader(
|
|||
* @param tmpDir the directory where the download is currently stored.
|
||||
* @param dirname the real (non temporary) directory name of the download.
|
||||
*/
|
||||
private suspend fun ensureSuccessfulDownload(
|
||||
private fun isDownloadSuccessful(
|
||||
download: MangaDownload,
|
||||
mangaDir: UniFile,
|
||||
tmpDir: UniFile,
|
||||
dirname: String,
|
||||
) {
|
||||
): Boolean {
|
||||
// Page list hasn't been initialized
|
||||
val downloadPageCount = download.pages?.size ?: run {
|
||||
download.status = MangaDownload.State.ERROR
|
||||
return
|
||||
}
|
||||
val downloadPageCount = download.pages?.size ?: return false
|
||||
// Ensure that all pages have been downloaded
|
||||
if (download.downloadedImages != downloadPageCount) {
|
||||
download.status = MangaDownload.State.ERROR
|
||||
return
|
||||
return false
|
||||
}
|
||||
// Ensure that the chapter folder has all the pages
|
||||
val downloadedImagesCount = tmpDir.listFiles().orEmpty().count {
|
||||
|
@ -558,27 +580,9 @@ class MangaDownloader(
|
|||
}
|
||||
}
|
||||
if (downloadedImagesCount != downloadPageCount) {
|
||||
download.status = MangaDownload.State.ERROR
|
||||
return
|
||||
}
|
||||
|
||||
createComicInfoFile(
|
||||
tmpDir,
|
||||
download.manga,
|
||||
download.chapter,
|
||||
download.source,
|
||||
)
|
||||
|
||||
// Only rename the directory if it's downloaded
|
||||
if (downloadPreferences.saveChaptersAsCBZ().get()) {
|
||||
archiveChapter(mangaDir, dirname, tmpDir)
|
||||
} else {
|
||||
cache.addChapter(dirname, mangaDir, download.manga)
|
||||
|
||||
DiskUtil.createNoMediaFile(tmpDir, context)
|
||||
|
||||
download.status = MangaDownload.State.DOWNLOADED
|
||||
return false
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -634,20 +638,6 @@ class MangaDownloader(
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Completes a download. This method is called in the main thread.
|
||||
*/
|
||||
private fun completeDownload(download: MangaDownload) {
|
||||
// Delete successful downloads from queue
|
||||
if (download.status == MangaDownload.State.DOWNLOADED) {
|
||||
// Remove downloaded chapter from queue
|
||||
removeFromQueue(download)
|
||||
}
|
||||
if (areAllDownloadsFinished()) {
|
||||
stop()
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if all the queued downloads are in DOWNLOADED or ERROR state.
|
||||
*/
|
||||
|
@ -675,14 +665,26 @@ class MangaDownloader(
|
|||
}
|
||||
}
|
||||
|
||||
fun removeFromQueue(chapters: List<Chapter>) {
|
||||
chapters.forEach { chapter ->
|
||||
queueState.value.find { it.chapter.id == chapter.id }?.let { removeFromQueue(it) }
|
||||
private inline fun removeFromQueueByPredicate(predicate: (MangaDownload) -> Boolean) {
|
||||
_queueState.update { queue ->
|
||||
val downloads = queue.filter { predicate(it) }
|
||||
store.removeAll(downloads)
|
||||
downloads.forEach { download ->
|
||||
if (download.status == MangaDownload.State.DOWNLOADING || download.status == MangaDownload.State.QUEUE) {
|
||||
download.status = MangaDownload.State.NOT_DOWNLOADED
|
||||
}
|
||||
}
|
||||
queue - downloads
|
||||
}
|
||||
}
|
||||
|
||||
fun removeFromQueue(chapters: List<Chapter>) {
|
||||
val chapterIds = chapters.map { it.id }
|
||||
removeFromQueueByPredicate { it.chapter.id in chapterIds }
|
||||
}
|
||||
|
||||
fun removeFromQueue(manga: Manga) {
|
||||
queueState.value.filter { it.manga.id == manga.id }.forEach { removeFromQueue(it) }
|
||||
removeFromQueueByPredicate { it.manga.id == manga.id }
|
||||
}
|
||||
|
||||
private fun _clearQueue() {
|
||||
|
|
|
@ -111,6 +111,6 @@ class AndroidAnimeSourceManager(
|
|||
registerStubSource(it)
|
||||
return it
|
||||
}
|
||||
return StubAnimeSource(id, "", "")
|
||||
return StubAnimeSource(id = id, lang = "", name = "")
|
||||
}
|
||||
}
|
||||
|
|
|
@ -111,6 +111,6 @@ class AndroidMangaSourceManager(
|
|||
registerStubSource(it)
|
||||
return it
|
||||
}
|
||||
return StubMangaSource(id, "", "")
|
||||
return StubMangaSource(id = id, lang = "", name = "")
|
||||
}
|
||||
}
|
||||
|
|
|
@ -72,8 +72,6 @@ import eu.kanade.tachiyomi.Migrations
|
|||
import eu.kanade.tachiyomi.R
|
||||
import eu.kanade.tachiyomi.animesource.model.Video
|
||||
import eu.kanade.tachiyomi.core.Constants
|
||||
import eu.kanade.tachiyomi.data.cache.ChapterCache
|
||||
import eu.kanade.tachiyomi.data.cache.EpisodeCache
|
||||
import eu.kanade.tachiyomi.data.download.anime.AnimeDownloadCache
|
||||
import eu.kanade.tachiyomi.data.download.manga.MangaDownloadCache
|
||||
import eu.kanade.tachiyomi.data.notification.NotificationReceiver
|
||||
|
@ -124,9 +122,6 @@ class MainActivity : BaseActivity() {
|
|||
private val uiPreferences: UiPreferences by injectLazy()
|
||||
private val preferences: BasePreferences by injectLazy()
|
||||
|
||||
private val episodeCache: EpisodeCache by injectLazy()
|
||||
private val chapterCache: ChapterCache by injectLazy()
|
||||
|
||||
private val animeDownloadCache: AnimeDownloadCache by injectLazy()
|
||||
private val downloadCache: MangaDownloadCache by injectLazy()
|
||||
|
||||
|
@ -493,17 +488,6 @@ class MainActivity : BaseActivity() {
|
|||
return true
|
||||
}
|
||||
|
||||
override fun onBackPressed() {
|
||||
if (navigator?.size == 1 &&
|
||||
!onBackPressedDispatcher.hasEnabledCallbacks() &&
|
||||
libraryPreferences.autoClearItemCache().get()
|
||||
) {
|
||||
chapterCache.clear()
|
||||
episodeCache.clear()
|
||||
}
|
||||
super.onBackPressed()
|
||||
}
|
||||
|
||||
init {
|
||||
registerSecureActivity(this)
|
||||
}
|
||||
|
|
|
@ -44,6 +44,7 @@ fun SManga.copyFromComicInfo(comicInfo: ComicInfo) {
|
|||
data class ComicInfo(
|
||||
val title: Title?,
|
||||
val series: Series?,
|
||||
val number: Number?,
|
||||
val summary: Summary?,
|
||||
val writer: Writer?,
|
||||
val penciller: Penciller?,
|
||||
|
@ -75,6 +76,10 @@ data class ComicInfo(
|
|||
@XmlSerialName("Series", "", "")
|
||||
data class Series(@XmlValue(true) val value: String = "")
|
||||
|
||||
@Serializable
|
||||
@XmlSerialName("Number", "", "")
|
||||
data class Number(@XmlValue(true) val value: String = "")
|
||||
|
||||
@Serializable
|
||||
@XmlSerialName("Summary", "", "")
|
||||
data class Summary(@XmlValue(true) val value: String = "")
|
||||
|
|
|
@ -5,9 +5,9 @@ import tachiyomi.domain.source.anime.model.StubAnimeSource
|
|||
|
||||
val animeSourceMapper: (eu.kanade.tachiyomi.animesource.AnimeSource) -> AnimeSource = { source ->
|
||||
AnimeSource(
|
||||
source.id,
|
||||
source.lang,
|
||||
source.name,
|
||||
id = source.id,
|
||||
lang = source.lang,
|
||||
name = source.name,
|
||||
supportsLatest = false,
|
||||
isStub = false,
|
||||
)
|
||||
|
|
|
@ -5,9 +5,9 @@ import tachiyomi.domain.source.manga.model.StubMangaSource
|
|||
|
||||
val mangaSourceMapper: (eu.kanade.tachiyomi.source.MangaSource) -> Source = { source ->
|
||||
Source(
|
||||
source.id,
|
||||
source.lang,
|
||||
source.name,
|
||||
id = source.id,
|
||||
lang = source.lang,
|
||||
name = source.name,
|
||||
supportsLatest = false,
|
||||
isStub = false,
|
||||
)
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[versions]
|
||||
kotlin_version = "1.8.21"
|
||||
serialization_version = "1.5.0"
|
||||
xml_serialization_version = "0.85.0"
|
||||
xml_serialization_version = "0.86.0"
|
||||
|
||||
[libraries]
|
||||
reflect = { module = "org.jetbrains.kotlin:kotlin-reflect", version.ref = "kotlin_version" }
|
||||
|
|
|
@ -663,4 +663,5 @@
|
|||
<string name="pref_invalidate_download_cache">অবৈধ ডাউনলোড সমুহ</string>
|
||||
<string name="action_not_now">এখন না</string>
|
||||
<string name="pref_debug_info">ডিবাগ তথ্য</string>
|
||||
<string name="skipped_reason_not_always_update">বাদ দেওয়া হয়েছে কারণ সিরিজের আপডেটের প্রয়োজন নেই৷</string>
|
||||
</resources>
|
|
@ -633,8 +633,8 @@
|
|||
<string name="update_check_fdroid_migration_info">Eine neue Version ist aus dem offiziellen Repository verfügbar. Tippe, um zu erfahren, wie man aus inoffiziellen F-Droid-Versionen migriert.</string>
|
||||
<string name="empty_backup_error">Keine zu sichernden Bibliothekseinträge verfügbar</string>
|
||||
<string name="update_check_open">Auf GitHub öffnen</string>
|
||||
<string name="pref_clear_webview_data">Webansicht-Daten löschen</string>
|
||||
<string name="webview_data_deleted">Webansicht-Daten gelöscht</string>
|
||||
<string name="pref_clear_webview_data">WebView-Daten löschen</string>
|
||||
<string name="webview_data_deleted">WebView-Daten gelöscht</string>
|
||||
<string name="action_close">Schließen</string>
|
||||
<string name="battery_not_low">Wenn der Akkustand nicht niedrig ist</string>
|
||||
<string name="pref_duplicate_pinned_sources_summary">Angeheftete Quellen in ihren jeweiligen Sprachgruppen wiederholen</string>
|
||||
|
@ -697,7 +697,7 @@
|
|||
<string name="pref_appearance_summary">Thema, Datums- und Zeitformat</string>
|
||||
<string name="pref_reader_summary">Lesemodus, Anzeige, Navigation</string>
|
||||
<string name="pref_downloads_summary">Automatische Downloads, im Voraus herunterladen</string>
|
||||
<string name="pref_library_summary">Kategorien, globale Aktualisierungen, Kapitel-Streichen</string>
|
||||
<string name="pref_library_summary">Kategorien, globale Aktualisierungen, Kapitelstreichen</string>
|
||||
<string name="crash_screen_restart_application">Anwendung neustarten</string>
|
||||
<string name="pref_tracking_summary">Einweg-Synchronisation, erweiterte Synchronisation</string>
|
||||
<string name="pref_browse_summary">Quellen, Erweiterungen, globale Suche</string>
|
||||
|
@ -740,9 +740,9 @@
|
|||
<string name="missing_items_unknown">Es könnten Kapitel fehlen</string>
|
||||
<string name="pref_page_rotate_invert">Ausrichtung gedrehter breiter Seiten spiegeln</string>
|
||||
<string name="pref_debug_info">Debug-Info</string>
|
||||
<string name="pref_chapter_swipe">Kapitel-Streichen</string>
|
||||
<string name="pref_chapter_swipe_end">Zur rechten Aktion streichen</string>
|
||||
<string name="pref_chapter_swipe_start">Zur linken Aktion streichen</string>
|
||||
<string name="pref_chapter_swipe">Kapitelstreichen</string>
|
||||
<string name="pref_chapter_swipe_end">Aktion beim Streichen nach rechts</string>
|
||||
<string name="pref_chapter_swipe_start">Aktion beim Streichen nach links</string>
|
||||
<string name="pref_double_tap_zoom">Zum Zoomen doppeltippen</string>
|
||||
<string name="pref_library_columns_per_row">%d pro Zeile</string>
|
||||
</resources>
|
|
@ -155,8 +155,8 @@
|
|||
<string name="scale_type_fit_screen">Pagkasyahin sa screen</string>
|
||||
<string name="pref_image_scale_type">Uri ng pagsasalaki</string>
|
||||
<string name="pager_viewer">Nakapahina</string>
|
||||
<string name="vertical_plus_viewer">Patayong tuloy-tuloy</string>
|
||||
<string name="webtoon_viewer">Pa-webtoon</string>
|
||||
<string name="vertical_plus_viewer">Pahabang strip na may puwang</string>
|
||||
<string name="webtoon_viewer">Pahabang strip</string>
|
||||
<string name="vertical_viewer">Pahina (patayo)</string>
|
||||
<string name="right_to_left_viewer">Pahina (kanan pakaliwa)</string>
|
||||
<string name="left_to_right_viewer">Pahina (kaliwa pakanan)</string>
|
||||
|
@ -226,7 +226,7 @@
|
|||
<string name="pref_category_library_update">Panlahatang update</string>
|
||||
<string name="landscape">Pahiga</string>
|
||||
<string name="portrait">Patayo</string>
|
||||
<string name="pref_library_columns">Item kada hilera</string>
|
||||
<string name="pref_library_columns">Laki ng grid</string>
|
||||
<string name="pref_category_display">Pagpapakita</string>
|
||||
<string name="hide_notification_content">Itago ang laman ng abiso</string>
|
||||
<string name="secure_screen_summary">Tinatago ng seguridad sa screen ang laman ng app habang nagpapalit ng app at hinaharangan din nito ang mga screenshot</string>
|
||||
|
@ -621,7 +621,7 @@
|
|||
<string name="skipped_reason_not_caught_up">Nilaktawan dahil may di pa nabasang mga kabanata</string>
|
||||
<string name="skipped_reason_not_started">Nilaktawan dahil wala pang nabasang mga kabanata</string>
|
||||
<string name="pref_landscape_zoom">Mag-zoom sa pahigang larawan</string>
|
||||
<string name="pref_navigate_pan">I-pan ang malapad na larawan kapag nag-tap</string>
|
||||
<string name="pref_navigate_pan">I-pan ang mga malalapad na larawan</string>
|
||||
<string name="learn_more">Matuto pa</string>
|
||||
<string name="channel_skipped">Nilaktawan</string>
|
||||
<string name="notification_update_error">Nabigo ang %1$d (na) update</string>
|
||||
|
@ -700,7 +700,7 @@
|
|||
<string name="pref_backup_summary">Manu-mano at kusang backups</string>
|
||||
<string name="pref_security_summary">Lock ng app, bantayan ang screen</string>
|
||||
<string name="pref_advanced_summary">Itambak ang mga crash log, pag-o-optimisa sa baterya</string>
|
||||
<string name="pref_library_summary">Mga kategorya, panlahatang update</string>
|
||||
<string name="pref_library_summary">Mga kategorya, panlahatang update, pag-swipe ng kabanata</string>
|
||||
<string name="pref_browse_summary">Mga source, extension, panlahatang paghanap</string>
|
||||
<string name="crash_screen_description">Nagkaroon ng hindi inaasahang error ang %s. Iminumungkahi naming ibahagi mo ang mga crash log sa aming support channel sa Discord.</string>
|
||||
<string name="crash_screen_title">Ay!</string>
|
||||
|
|
|
@ -5,13 +5,13 @@
|
|||
<string name="label_settings">Paramètres</string>
|
||||
<string name="label_library">Bibliothèque</string>
|
||||
<string name="label_recent_manga">Historique</string>
|
||||
<string name="label_recent_updates">Nouveautés</string>
|
||||
<string name="label_recent_updates">Mises à jour</string>
|
||||
<string name="label_backup">Sauvegarder et restaurer</string>
|
||||
|
||||
<string name="action_settings">Paramètres</string>
|
||||
<string name="action_filter">Filtre</string>
|
||||
<string name="action_filter_downloaded">Téléchargés</string>
|
||||
<string name="action_filter_bookmarked">Signets</string>
|
||||
<string name="action_filter_bookmarked">Favori</string>
|
||||
<string name="action_filter_unread">Non lus</string>
|
||||
<string name="action_filter_empty">Retirer le filtre</string>
|
||||
<string name="action_sort_alpha">Alphabétiquement</string>
|
||||
|
@ -23,7 +23,7 @@
|
|||
<string name="action_mark_previous_as_read">Marquer les précédents comme lus</string>
|
||||
<string name="action_download">Télécharger</string>
|
||||
<string name="action_bookmark">Marquer le chapitre</string>
|
||||
<string name="action_remove_bookmark">Enlever le signet</string>
|
||||
<string name="action_remove_bookmark">Retirer des favoris</string>
|
||||
<string name="action_delete">Supprimer</string>
|
||||
<string name="action_update_library">Mettre à jour la bibliothèque</string>
|
||||
<string name="action_edit">Modifier</string>
|
||||
|
@ -31,8 +31,8 @@
|
|||
<string name="action_add_category">Ajouter une catégorie</string>
|
||||
<string name="action_edit_categories">Modifier les catégories</string>
|
||||
<string name="action_rename_category">Renommer la catégorie</string>
|
||||
<string name="action_move_category">Déplacer vers une catégorie</string>
|
||||
<string name="action_edit_cover">Changer l\'image de couverture</string>
|
||||
<string name="action_move_category">Définir la catégorie</string>
|
||||
<string name="action_edit_cover">Modifier la couverture</string>
|
||||
<string name="action_pause">Pause</string>
|
||||
<string name="action_previous_chapter">Chapitre précédent</string>
|
||||
<string name="action_next_chapter">Chapitre suivant</string>
|
||||
|
@ -61,7 +61,7 @@
|
|||
<string name="pref_category_advanced">Avancé</string>
|
||||
<string name="pref_category_about">À propos</string>
|
||||
|
||||
<string name="pref_library_columns">Nombre de colonnes</string>
|
||||
<string name="pref_library_columns">Taille de grille</string>
|
||||
<string name="portrait">Portrait</string>
|
||||
<string name="landscape">Paysage</string>
|
||||
<string name="pref_library_update_interval">Mises à jour automatiques</string>
|
||||
|
@ -86,8 +86,8 @@
|
|||
<string name="white_background">Blanc</string>
|
||||
<string name="black_background">Noir</string>
|
||||
<string name="pref_viewer_type">Mode de lecture par défaut</string>
|
||||
<string name="left_to_right_viewer">Pages (gauche à droite)</string>
|
||||
<string name="right_to_left_viewer">Pages (droite à gauche)</string>
|
||||
<string name="left_to_right_viewer">Pagé (gauche à droite)</string>
|
||||
<string name="right_to_left_viewer">De droite à gauche</string>
|
||||
<string name="vertical_viewer">Pages (vertical)</string>
|
||||
<string name="webtoon_viewer">Bande continue</string>
|
||||
<string name="pref_image_scale_type">Type de mise à l\'échelle</string>
|
||||
|
@ -232,7 +232,7 @@
|
|||
<string name="backup_choice">Que voulez-vous sauvegarder \?</string>
|
||||
<string name="delete_downloads_for_manga">Supprimer les chapitres téléchargés ?</string>
|
||||
<string name="track">Suivi</string>
|
||||
<string name="action_sort_total">Nombre de chapitres</string>
|
||||
<string name="action_sort_total">Total de chapitres</string>
|
||||
<string name="pref_create_backup">Créer une sauvegarde</string>
|
||||
<string name="pref_create_backup_summ">Peut être utilisé pour restaurer la bibliothèque actuelle</string>
|
||||
<string name="pref_restore_backup">Restaurer une sauvegarde</string>
|
||||
|
@ -507,7 +507,7 @@
|
|||
<string name="set_chapter_settings_as_default">Appliquer par défaut</string>
|
||||
<string name="share_page_info">%1$s : %2$s, page %3$d</string>
|
||||
<string name="downloaded_chapters">Chapitres téléchargés</string>
|
||||
<string name="action_search_settings">Rechercher des paramètres</string>
|
||||
<string name="action_search_settings">Rechercher les paramètres</string>
|
||||
<string name="clear_history_confirmation">Êtes-vous sûr(e) \? Tout l\'historique sera effacé.</string>
|
||||
<string name="pref_incognito_mode">Mode navigation privée</string>
|
||||
<string name="pref_clear_history">Effacer l\'historique</string>
|
||||
|
@ -582,7 +582,7 @@
|
|||
<string name="cover_saved">Couverture enregistrée</string>
|
||||
<string name="manga_cover">Couverture</string>
|
||||
<string name="tracking_guide">Manuel de suivi</string>
|
||||
<string name="off">Désactivé(e)</string>
|
||||
<string name="off">Désactivé</string>
|
||||
<string name="on">Activé</string>
|
||||
<string name="categorized_display_settings">Rendre les réglages de tri et d\'affichage propres à chaque catégorie</string>
|
||||
<string name="information_empty_category_dialog">Vous n\'avez pas encore de catégories.</string>
|
||||
|
@ -634,11 +634,11 @@
|
|||
<string name="ext_installer_legacy">Legacy</string>
|
||||
<string name="ext_installer_pref">Installateur</string>
|
||||
<string name="ext_install_service_notif">Installation de l\'extension…</string>
|
||||
<string name="action_sort_count">Total des entrées</string>
|
||||
<string name="action_sort_count">Entrées totales</string>
|
||||
<string name="pref_verbose_logging">Rapports détaillés</string>
|
||||
<string name="pref_verbose_logging_summary">Inclut des rapports détaillés dans les traces systèmes (réduit les performances de l\'application)</string>
|
||||
<string name="action_display_language_badge">Langue</string>
|
||||
<string name="label_warning">Attention</string>
|
||||
<string name="label_warning">Avertissement</string>
|
||||
<string name="notification_size_warning">Les mises à jour importantes nuisent aux sources et peuvent entraîner un ralentissement des mises à jour ainsi qu\'une augmentation de l\'utilisation de la batterie. Appuyez pour en savoir plus.</string>
|
||||
<string name="backup_info">Vous devez également conserver des copies des sauvegardes à d\'autres endroits.</string>
|
||||
<string name="connected_to_wifi">Uniquement en Wi-Fi</string>
|
||||
|
@ -746,7 +746,7 @@
|
|||
<string name="crash_screen_restart_application">Redémarrer l\'application</string>
|
||||
<string name="pref_general_summary">Langage d\'application, notifications</string>
|
||||
<string name="pref_browse_summary">Sources, extensions, recherche globale</string>
|
||||
<string name="pref_library_summary">Catégories, mise à jour globale, glissement de chapitre</string>
|
||||
<string name="pref_library_summary">Catégories, mise à jour globale, faire glisser le chapitre</string>
|
||||
<string name="pref_reader_summary">Mode de lecture, affichage, navigation</string>
|
||||
<string name="pref_security_summary">Verrouillage des applications, écran sécurisé</string>
|
||||
<string name="crash_screen_description">%s a rencontré une erreur inattendue. Nous vous suggérons de nous partager les rapports de plantage dans notre salon d\'assistance sur Discord.</string>
|
||||
|
@ -781,9 +781,9 @@
|
|||
<string name="pref_page_rotate_invert">Inverser l\'orientation des pages larges retournées</string>
|
||||
<string name="pref_page_rotate">Tourner les pages larges pour qu\'elles rentrent</string>
|
||||
<string name="pref_debug_info">Informations de débogage</string>
|
||||
<string name="pref_chapter_swipe_start">Action de Glisser vers la gauche</string>
|
||||
<string name="pref_chapter_swipe_start">Action de glisser à gauche</string>
|
||||
<string name="pref_library_columns_per_row">%d par ligne</string>
|
||||
<string name="pref_chapter_swipe">Glissement de chapitre</string>
|
||||
<string name="pref_chapter_swipe_end">Action de Glisser vers la droite</string>
|
||||
<string name="pref_chapter_swipe_end">Action de glisser à droite</string>
|
||||
<string name="pref_double_tap_zoom">Appuyez deux fois pour zoomer</string>
|
||||
</resources>
|
|
@ -44,11 +44,11 @@
|
|||
<string name="scale_type_fit_screen">Axustar á pantalla</string>
|
||||
<string name="pref_image_scale_type">Tipo de escala</string>
|
||||
<string name="pager_viewer">Paxinado</string>
|
||||
<string name="vertical_plus_viewer">Vertical contínuo</string>
|
||||
<string name="webtoon_viewer">Webtoon</string>
|
||||
<string name="vertical_viewer">Vertical</string>
|
||||
<string name="right_to_left_viewer">De dereita a esquerda</string>
|
||||
<string name="left_to_right_viewer">De esquerda a dereita</string>
|
||||
<string name="vertical_plus_viewer">Tira longa con espacios</string>
|
||||
<string name="webtoon_viewer">Tira longa</string>
|
||||
<string name="vertical_viewer">Por páxinas (vertical)</string>
|
||||
<string name="right_to_left_viewer">Páxinas (De dereita a esquerda)</string>
|
||||
<string name="left_to_right_viewer">Por páxinas (de esquerda a dereita)</string>
|
||||
<string name="pref_viewer_type">Modo de lectura por defecto</string>
|
||||
<string name="black_background">Negro</string>
|
||||
<string name="gray_background">Gris</string>
|
||||
|
@ -116,7 +116,7 @@
|
|||
<string name="pref_category_library_update">Actualización global</string>
|
||||
<string name="landscape">Horizontal</string>
|
||||
<string name="portrait">Vertical</string>
|
||||
<string name="pref_library_columns">Elementos por fila</string>
|
||||
<string name="pref_library_columns">Tamaño da reixa</string>
|
||||
<string name="pref_category_display">Amosar</string>
|
||||
<string name="parental_controls_info">Isto non evita que as extensións non oficiais ou mal clasificadas mostren contido NSFW (+18) dentro da aplicación.</string>
|
||||
<string name="hide_notification_content">Esconde os contidos das notificacións</string>
|
||||
|
@ -344,7 +344,7 @@
|
|||
<string name="pref_low">Baixa</string>
|
||||
<string name="creating_backup">Creando a copia de seguridade</string>
|
||||
<string name="pref_general_summary">Idioma da interface, notificacións</string>
|
||||
<string name="pref_library_summary">Categorías, actualización global</string>
|
||||
<string name="pref_library_summary">Categorías, actualización global, accións ao arrastrar</string>
|
||||
<string name="pref_reader_summary">Modo de lectura, aparencia e navegación</string>
|
||||
<string name="pref_downloads_summary">Baixadas automáticas e por adiantado</string>
|
||||
<string name="pref_backup_summary">Copias de seguridade manuais e automáticas</string>
|
||||
|
@ -371,7 +371,7 @@
|
|||
<string name="ext_installer_shizuku_unavailable_dialog">Instala e inicia Shizuku para utilizalo como instalador de extensións.</string>
|
||||
<string name="automatic_background">Automático</string>
|
||||
<string name="l_nav">En forma de L</string>
|
||||
<string name="pref_navigate_pan">Desprazarse polas imaxes anchas ao premer</string>
|
||||
<string name="pref_navigate_pan">Desprazarse polas imaxes anchas</string>
|
||||
<string name="pref_auto_update_manga_sync">Actualizar o progreso ao rematar a lectura</string>
|
||||
<string name="services">Servizos</string>
|
||||
<string name="restoring_backup_canceled">Cancelouse a restauración</string>
|
||||
|
@ -386,7 +386,7 @@
|
|||
<string name="pref_backup_directory">Localización da copia de seguridade</string>
|
||||
<string name="pref_backup_service_category">Copias de seguridade automáticas</string>
|
||||
<string name="backup_in_progress">Xa se está facendo unha copia de seguridade</string>
|
||||
<string name="pref_dump_crash_logs">Baixar os rexistros de erros</string>
|
||||
<string name="pref_dump_crash_logs">Compartir os rexistros de erros</string>
|
||||
<string name="error_sharing_cover">Error ao compartir a portada</string>
|
||||
<string name="cache_delete_error">Produciuse un erro ao borrar</string>
|
||||
<string name="pref_relative_time_short">Curto (Hoxe, Onte)</string>
|
||||
|
@ -634,7 +634,7 @@
|
|||
<string name="reading">Lendo</string>
|
||||
<string name="notification_check_updates">Procurando capítulos novos</string>
|
||||
<string name="download_notifier_text_only_wifi">Non hai ningunha conexión Wi-Fi dispoñible</string>
|
||||
<string name="crash_screen_description">%s pechouse por un problema inesperado. Aconsellámoste que fagas unha captura de pantalla desta mensaxe, baixes os rexistros de erros e logo os compartas na canle de soporte no Discord (en inglés).</string>
|
||||
<string name="crash_screen_description">%s pechouse por un problema inesperado. Aconsellámoste que compartas os rexistros de erros na canle de soporte no Discord (en inglés).</string>
|
||||
<string name="crash_screen_restart_application">Reinicia a aplicación</string>
|
||||
<string name="source_filter_empty_screen">Non se atopou ninguna fonte instalada</string>
|
||||
<string name="download_queue_size_warning">Advertencia: As baixadas grandes poden facer que as fontes se volvan máis lentas e/ou bloqueen Tachiyomi. Preme para saber máis.</string>
|
||||
|
@ -784,4 +784,10 @@
|
|||
<string name="pref_page_rotate">Xirar as páxinas anchas para adaptalas á pantalla</string>
|
||||
<string name="pref_page_rotate_invert">Voltear a orientación das páxinas anchas xiradas</string>
|
||||
<string name="overlay_header">Superposición</string>
|
||||
<string name="pref_library_columns_per_row">%d por fila</string>
|
||||
<string name="pref_chapter_swipe_start">Acción de arrastrar á esquerda</string>
|
||||
<string name="pref_double_tap_zoom">Amplía dando dous toques na pantalla</string>
|
||||
<string name="pref_chapter_swipe">Arrastre de capítulo</string>
|
||||
<string name="pref_chapter_swipe_end">Acción de arrastrar á dereita</string>
|
||||
<string name="pref_debug_info">Información de depuración</string>
|
||||
</resources>
|
|
@ -3,7 +3,7 @@
|
|||
<string name="theme_dark">अन</string>
|
||||
<string name="theme_light">अफ</string>
|
||||
<string name="pref_theme_mode">अँध्यारो मोड</string>
|
||||
<string name="pref_category_theme">थीम</string>
|
||||
<string name="pref_category_theme">थिम</string>
|
||||
<string name="pref_category_about">बारेमा</string>
|
||||
<string name="pref_category_advanced">उन्नत सेटिङहरू</string>
|
||||
<string name="pref_category_tracking">ट्र्याकिङ</string>
|
||||
|
@ -16,11 +16,11 @@
|
|||
<string name="action_webview_refresh">रिफ्रेस गर्नुहोस्</string>
|
||||
<string name="action_webview_forward">अगाडि</string>
|
||||
<string name="action_webview_back">पछाडि</string>
|
||||
<string name="action_restore">पुनर्स्थापना गर्नुहोस्</string>
|
||||
<string name="action_restore">रिस्टोर गर्नुहोस्</string>
|
||||
<string name="action_open_log">लग खोल्नुहोस्</string>
|
||||
<string name="action_undo">पूर्ववत गर्नुहोस्</string>
|
||||
<string name="action_reset">रिसेट गर्नुहोस्</string>
|
||||
<string name="action_save">बचत गर्नुहोस्</string>
|
||||
<string name="action_save">सेभ गर्नुहोस्</string>
|
||||
<string name="action_share">साझा गर्नुहोस्</string>
|
||||
<string name="action_install">स्थापना गर्नुहोस्</string>
|
||||
<string name="action_move_to_bottom">तल सार्नुहोस्</string>
|
||||
|
@ -60,9 +60,9 @@
|
|||
<string name="action_edit_categories">वर्गहरू सम्पादन गर्नुहोस्</string>
|
||||
<string name="action_add_category">वर्ग थप्नुहोस्</string>
|
||||
<string name="action_add">थप्नुहोस्</string>
|
||||
<string name="action_edit">सम्पादन</string>
|
||||
<string name="action_disable_all">सबैलाई अस्वीकार गर्नुहोस्</string>
|
||||
<string name="action_enable_all">सबैलाई स्वीकार गर्नुहोस्</string>
|
||||
<string name="action_edit">सम्पादन गर्नुहोस्</string>
|
||||
<string name="action_disable_all">सबैलाई असक्षम गर्नुहोस्</string>
|
||||
<string name="action_enable_all">सबैलाई सक्षम गर्नुहोस्</string>
|
||||
<string name="action_update_library">पुस्तकालय अपडेट गर्नुहोस्</string>
|
||||
<string name="action_delete">हटाउनुहोस्</string>
|
||||
<string name="action_remove_bookmark">अध्यायमा पुस्तकचिनो हटाउनुहोस्</string>
|
||||
|
@ -75,7 +75,7 @@
|
|||
<string name="action_global_search">ग्लोबल खोज</string>
|
||||
<string name="action_search_settings">सेटिङमा खोज्नुहोस्</string>
|
||||
<string name="action_search">खोज्नुहोस्</string>
|
||||
<string name="action_sort_last_read">अन्तिम पढिएको</string>
|
||||
<string name="action_sort_last_read">पछिल्लो पटक पढिएको</string>
|
||||
<string name="action_sort_total">कुल अध्यायहरू</string>
|
||||
<string name="action_sort_alpha">वर्णमाला अनुसार</string>
|
||||
<string name="action_filter_empty">फिल्टर हटाउनुहोस्</string>
|
||||
|
@ -90,7 +90,7 @@
|
|||
<string name="track">ट्र्याकिङ</string>
|
||||
<string name="chapters">अध्याय</string>
|
||||
<string name="manga">पुस्तकालयका इन्ट्रीहरू</string>
|
||||
<string name="information_empty_category">तपाईंसँग कुनै वर्गहरू छैन। तपाईंको पुस्तकालय व्यवस्थित गर्न प्लस बटन थिच्नुहोस्।</string>
|
||||
<string name="information_empty_category">तपाईंसँग कुनै वर्गहरू छैन। वर्ग बनाएर पुस्तकालय व्यवस्थित गर्न प्लस बटन थिच्नुहोस्।</string>
|
||||
<string name="information_empty_library">तपाईंको पुस्तकालय खाली छ</string>
|
||||
<string name="information_no_recent_manga">हालै केहि पढेको छैन</string>
|
||||
<string name="information_no_recent">कुनै नयाँ अपडेटहरू छैन</string>
|
||||
|
@ -100,7 +100,7 @@
|
|||
<string name="label_extension_info">एक्सटेन्शनको जानकारी</string>
|
||||
<string name="label_extensions">एक्सटेन्शन</string>
|
||||
<string name="label_migration">स्थानान्तरण</string>
|
||||
<string name="label_backup">ब्याकअप र पुनर्स्थापना</string>
|
||||
<string name="label_backup">ब्याकअप र रिस्टोर</string>
|
||||
<string name="label_sources">स्रोतहरू</string>
|
||||
<string name="label_recent_manga">इतिहास</string>
|
||||
<string name="label_recent_updates">अपडेटहरू</string>
|
||||
|
@ -113,7 +113,7 @@
|
|||
<string name="action_select_inverse">उल्टो चयन गर्नु</string>
|
||||
<string name="action_sort_date_added">राखिएको मिती</string>
|
||||
<string name="action_sort_chapter_fetch_date">अध्याय ल्याएको मिति</string>
|
||||
<string name="action_sort_latest_chapter">सबैभन्दा नयाँ अध्याय</string>
|
||||
<string name="action_sort_latest_chapter">नवीनतम अध्याय</string>
|
||||
<string name="pref_library_update_refresh_trackers_summary">पुस्तकालय अपडेट गर्दा ट्र्याकरहरू अपडेट गर्नुहोस्</string>
|
||||
<string name="pref_library_update_refresh_trackers">ट्र्याकरहरू स्वचालित रूपमा रिफ्रेस गर्नुहोस्</string>
|
||||
<string name="pref_library_update_refresh_metadata_summary">पुस्तकालय अपडेट गर्दा नयाँ आवरण र विवरणहरूको लागि जाँच गर्नुहोस्</string>
|
||||
|
@ -121,7 +121,7 @@
|
|||
<string name="pref_update_only_non_completed">\"समाप्त\" स्थिति भएको</string>
|
||||
<string name="restrictions">प्रतिबन्धहरू: %s</string>
|
||||
<string name="charging">चार्ज हुँदा</string>
|
||||
<string name="pref_library_update_restriction">स्वचालित अपडेटहरू को यन्त्र प्रतिबन्धहरू</string>
|
||||
<string name="pref_library_update_restriction">स्वचालित अपडेटहरू यन्त्र प्रतिबन्धहरू</string>
|
||||
<string name="update_weekly">साप्ताहिक</string>
|
||||
<string name="update_48hour">प्रत्येक २ दिन</string>
|
||||
<string name="update_24hour">दैनिक</string>
|
||||
|
@ -142,7 +142,7 @@
|
|||
<string name="pref_show_nsfw_source">स्रोत र एक्सटेन्शन सूची मा देखाउनुहोस्</string>
|
||||
<string name="pref_category_nsfw_content">NSFW (१८+) स्रोतहरू</string>
|
||||
<string name="hide_notification_content">सूचना को सामग्री लुकाउनुहोस्</string>
|
||||
<string name="secure_screen_summary">एपहरू स्विच गर्दा \"सुरक्षित स्क्रिनले\" एप सामग्रीहरू लुकाउँछ र स्क्रिनसटहरू रोक्छ</string>
|
||||
<string name="secure_screen_summary">एपहरू स्विच गर्दा \"स्क्रिन सुरक्षित गर्नुहोस्\" ले एप सामग्रीहरू लुकाउँछ र स्क्रिनसटहरू रोक्छ</string>
|
||||
<string name="secure_screen">स्क्रिन सुरक्षित गर्नुहोस्</string>
|
||||
<plurals name="lock_after_mins">
|
||||
<item quantity="one">%1$s मिनेट पछि</item>
|
||||
|
@ -169,7 +169,7 @@
|
|||
<string name="theme_midnightdusk">मिडनाइट डस्क</string>
|
||||
<string name="theme_greenapple">हरियो स्याउ</string>
|
||||
<string name="theme_monet">गतिशील</string>
|
||||
<string name="pref_app_theme">एपको थीम</string>
|
||||
<string name="pref_app_theme">एपको थिम</string>
|
||||
<string name="theme_system">सिस्टम पालना गर्नुहोस्</string>
|
||||
<string name="pref_category_appearance">रूप</string>
|
||||
<string name="action_start_downloading_now">अहिले डाउनलोड गर्न सुरु गर्नुहोस्</string>
|
||||
|
@ -187,11 +187,11 @@
|
|||
<string name="pref_acra_summary">कुनै पनि बगहरू ठीक गर्न मद्दत गर्दछ। कुनै संवेदनशील डाटा पठाइने छैन</string>
|
||||
<string name="pref_enable_acra">क्रेश रिपोर्टहरू पठाउनुहोस्</string>
|
||||
<string name="updated_version">v%1$s मा अपडेट गरियो</string>
|
||||
<string name="check_for_updates">अपडेटका लागि चेक गर्नुहोस्</string>
|
||||
<string name="check_for_updates">अपडेटका लागि जाँच गर्नुहोस्</string>
|
||||
<string name="decode_image_error">छवि लोड गर्न सकिएन</string>
|
||||
<string name="download_queue_error">अध्यायहरू डाउनलोड गर्न सकिएन। तपाईं डाउनलोड कतारमा फेरि प्रयास गर्न सक्नुहुन्छ</string>
|
||||
<string name="ext_uninstall">स्थापना रद्द गर्नुहोस्</string>
|
||||
<string name="third_to_last">तेस्रो अन्तिम अध्याय</string>
|
||||
<string name="third_to_last">अन्तिम पढिएको अध्याय भन्दा २ अध्याय अघि</string>
|
||||
<string name="portrait">पोर्ट्रेट</string>
|
||||
<string name="pref_color_filter_mode">रङ फिल्टर मिश्रण मोड</string>
|
||||
<string name="default_category_summary">सधैं सोध्नुहोस्</string>
|
||||
|
@ -250,7 +250,7 @@
|
|||
<string name="filter_mode_screen">स्क्रिन</string>
|
||||
<string name="filter_mode_lighten">डज / हल्का</string>
|
||||
<string name="filter_mode_darken">जलाउनु / अँध्यारो गर्नु</string>
|
||||
<string name="pref_create_folder_per_manga">पृष्ठहरू अलग फोल्डरहरूमा बचत गर्नुहोस्</string>
|
||||
<string name="pref_create_folder_per_manga">फरक फोल्डरमा पृष्ठहरू सेभ गर्नुहोस्</string>
|
||||
<string name="pref_keep_screen_on">स्क्रिन अन राख्नुहोस्</string>
|
||||
<string name="pref_create_folder_per_manga_summary">इन्ट्रीहरूको शीर्षक अनुसार फोल्डरहरू सिर्जना गर्दछ</string>
|
||||
<string name="action_sort_count">कुल इन्ट्रीहरू</string>
|
||||
|
@ -285,13 +285,13 @@
|
|||
<string name="vertical_viewer">पृष्ठबद्ध (ठाडो)</string>
|
||||
<string name="webtoon_viewer">लामो स्ट्रिप</string>
|
||||
<string name="vertical_plus_viewer">खाली ठाउँ भएको लामो स्ट्रिप</string>
|
||||
<string name="nav_zone_prev">पछिल्लो</string>
|
||||
<string name="nav_zone_prev">पहिलेको</string>
|
||||
<string name="kindlish_nav">किन्डल जस्तै</string>
|
||||
<string name="right_to_left_viewer">पृष्ठबद्ध (दायाँ देखि बायाँ)</string>
|
||||
<string name="right_to_left_viewer">दायाँ देखि बायाँ</string>
|
||||
<string name="right_and_left_nav">दायाँ र बायाँ</string>
|
||||
<string name="nav_zone_next">अघिल्लो</string>
|
||||
<string name="nav_zone_next">अर्को</string>
|
||||
<string name="nav_zone_left">बायाँ</string>
|
||||
<string name="left_to_right_viewer">पृष्ठबद्ध (बायाँ देखि दायाँ)</string>
|
||||
<string name="left_to_right_viewer">बायाँ देखि दायाँ</string>
|
||||
<string name="nav_zone_right">दायाँ</string>
|
||||
<string name="browse">ब्राउज</string>
|
||||
<string name="creating_backup">ब्याकअप सिर्जना गर्दै</string>
|
||||
|
@ -312,14 +312,14 @@
|
|||
<string name="webtoon_side_padding_25">२५%</string>
|
||||
<string name="pref_hide_threshold">स्क्रोलमा मेनु लुकाउनको लागि संवेदनशीलता</string>
|
||||
<string name="pref_download_directory">डाउनलोड स्थान</string>
|
||||
<string name="second_to_last">दोस्रो अन्तिम अध्याय</string>
|
||||
<string name="second_to_last">अन्तिम पढिएको अध्याय भन्दा पहिले १ अध्याय</string>
|
||||
<string name="pref_category_auto_download">स्वत: डाउनलोड गर्नुहोस्</string>
|
||||
<string name="tracking_guide">ट्र्याकिङ गाइड</string>
|
||||
<string name="last_read_chapter">पछिल्लो पढिएको अध्याय</string>
|
||||
<string name="last_read_chapter">अन्तिम पढिएको अध्याय</string>
|
||||
<string name="enhanced_tracking_info">सेवाहरू जसले विशिष्ट स्रोतहरूको लागि परिष्कृत सुविधाहरू प्रदान गर्दछ। तपाईंको पुस्तकालयमा इन्ट्री थप्दा स्वतः ट्र्याक गरिन्छ।</string>
|
||||
<string name="action_track">ट्र्याक</string>
|
||||
<string name="pref_search_pinned_sources_only">पिन गरिएका स्रोतहरू मात्र समावेश गर्नुहोस्</string>
|
||||
<string name="restore_completed">पुनर्स्थापना सम्पन्न भयो</string>
|
||||
<string name="restore_completed">रिस्टोर सम्पन्न भयो</string>
|
||||
<plurals name="restore_completed_message">
|
||||
<item quantity="one">%2$s त्रुटिको साथ %1$s मा सम्पन्न भयो</item>
|
||||
<item quantity="other">%2$s त्रुटिहरूसँग %1$s मा सम्पन्न भयो</item>
|
||||
|
@ -343,10 +343,10 @@
|
|||
<string name="services">सेवाहरू</string>
|
||||
<string name="invalid_backup_file">अवैध ब्याकअप फाइल</string>
|
||||
<string name="backup_created">ब्याकअप सिर्जना गरियो</string>
|
||||
<string name="backup_restore_content_full">ब्याकअप फाइलबाट डाटा पुनर्स्थापित हुनेछ।
|
||||
<string name="backup_restore_content_full">ब्याकअप फाइलबाट डाटा रिस्टोर हुनेछ।
|
||||
\n
|
||||
\nतपाईंले कुनै पनि छुटेका एक्सटेन्शन स्थापना गर्न र तिनीहरूलाई प्रयोग गर्न पछि ट्र्याकिङ सेवाहरूमा लगइन गर्न आवश्यक हुनेछ।</string>
|
||||
<string name="restore_in_progress">पुनर्स्थापना पहिले नै प्रगतिमा छ</string>
|
||||
\nतपाईंले कुनै पनि छुटेको एक्सटेन्शनहरू स्थापना गर्न र तिनीहरूलाई प्रयोग गर्न पछि ट्र्याकिङ सेवाहरूमा लगइन गर्न आवश्यक हुनेछ।</string>
|
||||
<string name="restore_in_progress">रिस्टोर पहिले नै प्रगतिमा छ</string>
|
||||
<string name="label_network">नेटवर्क</string>
|
||||
<string name="restoring_backup_error">ब्याकअप पुनर्स्थापना असफल भयो</string>
|
||||
<string name="backup_info">तपाईंले ब्याकअपको प्रतिलिपिहरू अन्य ठाउँहरूमा पनि राख्नु पर्छ।</string>
|
||||
|
@ -358,7 +358,7 @@
|
|||
<string name="pref_highest">उच्चतम</string>
|
||||
<string name="disabled">असक्षम</string>
|
||||
<string name="enhanced_services">परिष्कृत सेवाहरू</string>
|
||||
<string name="restoring_backup_canceled">पुनर्स्थापना रद्द गरियो</string>
|
||||
<string name="restoring_backup_canceled">रिस्टोर रद्द गरियो</string>
|
||||
<string name="download_notifier_title_error">त्रुटि</string>
|
||||
<string name="scale_type_stretch">तन्काउनुहोस्</string>
|
||||
<string name="scale_type_smart_fit">स्मार्ट फिट</string>
|
||||
|
@ -373,8 +373,8 @@
|
|||
<string name="pref_high">उच्च</string>
|
||||
<string name="pref_lowest">सबैभन्दा कम</string>
|
||||
<string name="custom_dir">कस्टम स्थान</string>
|
||||
<string name="save_chapter_as_cbz">CBZ अभिलेख को रूपमा बचत गर्नुहोस्</string>
|
||||
<string name="fourth_to_last">चौथो अन्तिम अध्याय</string>
|
||||
<string name="save_chapter_as_cbz">CBZ अभिलेख को रूपमा सेभ गर्नुहोस्</string>
|
||||
<string name="fourth_to_last">अन्तिम पढिएको अध्याय भन्दा ३ अध्याय अघि</string>
|
||||
<string name="pref_download_new">नयाँ अध्यायहरू डाउनलोड गर्नुहोस्</string>
|
||||
<string name="notification_chapters_multiple">अध्यायहरू %1$s</string>
|
||||
<plurals name="update_check_notification_ext_updates">
|
||||
|
@ -386,14 +386,14 @@
|
|||
<string name="tracking_info">ट्र्याकिङ सेवाहरूमा अध्याय प्रगति अपडेट गर्न एकतर्फी सिङ्क। तिनीहरूको ट्र्याकिङ बटनबाट व्यक्तिगत इन्ट्रीहरूको लागि ट्र्याकिङ सेट अप गर्नुहोस्।</string>
|
||||
<string name="backup_restore_missing_trackers">ट्र्याकरहरूमा लगइन छैनन्:</string>
|
||||
<string name="backup_restore_missing_sources">छुटेको स्रोतहरू:</string>
|
||||
<string name="fifth_to_last">पाँचौं अन्तिम अध्याय</string>
|
||||
<string name="fifth_to_last">अन्तिम पढिएको अध्याय भन्दा ४ अध्याय अघि</string>
|
||||
<string name="pref_download_new_categories_details">\"बहिष्कृत\" वर्गहरूमा इन्ट्री \"समावेश गरिएका\" वर्गहरूमा भए पनि डाउनलोड गरिने छैन।</string>
|
||||
<plurals name="notification_chapters_multiple_and_more">
|
||||
<item quantity="one">अध्याय %1$s र 1 थप</item>
|
||||
<item quantity="other">अध्याय %1$s र %2$d थप</item>
|
||||
</plurals>
|
||||
<string name="pref_create_backup">ब्याकअप सिर्जना गर्नुहोस्</string>
|
||||
<string name="pref_create_backup_summ">हालको पुस्तकालय पुनर्स्थापना गर्न प्रयोग गर्न सकिन्छ</string>
|
||||
<string name="pref_create_backup_summ">हालको पुस्तकालय रिस्टोर गर्न प्रयोग गर्न सकिन्छ</string>
|
||||
<string name="cookies_cleared">कुकीहरू खाली गरियो</string>
|
||||
<string name="label_data">डाटा</string>
|
||||
<string name="cache_delete_error">खाली गर्दा त्रुटि भयो</string>
|
||||
|
@ -417,7 +417,7 @@
|
|||
<string name="extension_api_error">एक्सटेन्शनहरूको सूची प्राप्त गर्न असफल भयो</string>
|
||||
<string name="zoom_start_right">दायाँ</string>
|
||||
<string name="pref_restore_backup">ब्याकअप रिस्टोर गर्नुहोस्</string>
|
||||
<string name="pref_restore_backup_summ">ब्याकअप फाइलबाट पुस्तकालय पुनर्स्थापना गर्नुहोस्</string>
|
||||
<string name="pref_restore_backup_summ">ब्याकअप फाइलबाट पुस्तकालय रिस्टोर गर्नुहोस्</string>
|
||||
<string name="pref_backup_service_category">स्वचालित ब्याकअपहरू</string>
|
||||
<string name="invalid_backup_file_missing_manga">ब्याकअपमा कुनै पनि पुस्तकालयका इन्ट्री समावेश छैन।</string>
|
||||
<string name="pref_backup_directory">ब्याकअप स्थान</string>
|
||||
|
@ -447,7 +447,7 @@
|
|||
<string name="local_source">लोकल स्रोत</string>
|
||||
<string name="other_source">अन्य</string>
|
||||
<string name="tabs_header">ट्याबहरू</string>
|
||||
<string name="latest">पछिल्लो</string>
|
||||
<string name="latest">नवीनतम</string>
|
||||
<string name="local_filter_order_by">द्वारा अर्डर गर्नुहोस्</string>
|
||||
<string name="date">मिति</string>
|
||||
<string name="login_title">%1$s मा लग इन गर्नुहोस्</string>
|
||||
|
@ -485,14 +485,14 @@
|
|||
<string name="local_source_help_guide">लोकल स्रोत गाइड</string>
|
||||
<string name="ongoing">जारी छ</string>
|
||||
<string name="unknown_status">अज्ञात स्थिति</string>
|
||||
<string name="licensed">इजाजतपत्र प्राप्त</string>
|
||||
<string name="licensed">लाइसेन्स प्राप्त</string>
|
||||
<string name="password">पासवर्ड</string>
|
||||
<string name="database_clean">सफा गर्न केही छैन</string>
|
||||
<string name="pref_refresh_library_tracking">ट्र्याकिङ ताजा गर्नुहोस्</string>
|
||||
<string name="version">संस्करण</string>
|
||||
<string name="website">वेबसाइट</string>
|
||||
<string name="help_translate">अनुवाद गर्न मद्दत गर्नुहोस्</string>
|
||||
<string name="licenses">खुला स्रोत इजाजतपत्रहरू</string>
|
||||
<string name="licenses">खुला स्रोत लाइसेन्सहरू</string>
|
||||
<string name="remove_from_library">पुस्तकालयबाट हटाउनुहोस्</string>
|
||||
<string name="publishing_finished">प्रकाशन सकियो</string>
|
||||
<string name="cancelled">रद्द गरेको</string>
|
||||
|
@ -539,7 +539,7 @@
|
|||
<string name="set_chapter_settings_as_default">पूर्वनिर्धारित रूपमा सेट गर्नुहोस्</string>
|
||||
<string name="confirm_set_image_as_cover">यो छवि आवरण को रूपमा राख्न चाहनुहुन्छ\?</string>
|
||||
<string name="download_unread">नपढिएको</string>
|
||||
<string name="cover_saved">आवरण बचत भयो</string>
|
||||
<string name="cover_saved">आवरण सेभ भयो</string>
|
||||
<string name="pref_category_for_this_series">यो श्रृंखलाको लागि</string>
|
||||
<string name="transition_pages_loading">पृष्ठहरू लोड हुँदै…</string>
|
||||
<string name="migration_dialog_what_to_include">डाटा समावेश गर्न चुन्नुहोस्</string>
|
||||
|
@ -557,10 +557,10 @@
|
|||
<string name="viewer">पढ्ने मोड</string>
|
||||
<string name="transition_finished">सकिएको:</string>
|
||||
<string name="updating_library">पुस्तकालय अपडेट गर्दै</string>
|
||||
<string name="confirm_set_chapter_settings">के तपाइँ निश्चित रूपमा यी सेटिङहरूलाई पूर्वनिर्धारित रूपमा बचत गर्न चाहनुहुन्छ\?</string>
|
||||
<string name="confirm_set_chapter_settings">के तपाइँ निश्चित रूपमा यी सेटिङहरूलाई पूर्वनिर्धारित रूपमा सेभ गर्न चाहनुहुन्छ\?</string>
|
||||
<string name="no_chapters_error">अध्यायहरू भेटिएन</string>
|
||||
<string name="track_status">स्थिति</string>
|
||||
<string name="picture_saved">फोटो बचत गरियो</string>
|
||||
<string name="picture_saved">फोटो सेभ गरियो</string>
|
||||
<string name="unread">नपढिएको</string>
|
||||
<string name="paused">रोकिएको</string>
|
||||
<string name="transition_no_next">अर्को अध्याय छैन</string>
|
||||
|
@ -572,7 +572,7 @@
|
|||
<item quantity="other">%d ट्र्याकरहरू</item>
|
||||
</plurals>
|
||||
<string name="repeating">फेरी पढ्दै</string>
|
||||
<string name="transition_current">वर्तमान:</string>
|
||||
<string name="transition_current">हालको:</string>
|
||||
<string name="error_no_match">कुनै मेल फेला परेन</string>
|
||||
<string name="myanimelist_relogin">कृपया MAL मा फेरि लगइन गर्नुहोस्</string>
|
||||
<string name="source_unsupported">स्रोत समर्थित छैन</string>
|
||||
|
@ -592,7 +592,7 @@
|
|||
<string name="migrate">स्थानान्तरण</string>
|
||||
<string name="action_faq_and_guides">बारम्बार सोधिएका प्रश्न उत्तर र गाइडहरू</string>
|
||||
<string name="manga_download">डाउनलोड</string>
|
||||
<string name="transition_no_previous">पहिलेको अध्याय छैन</string>
|
||||
<string name="transition_no_previous">अघिल्लो अध्याय छैन</string>
|
||||
<string name="notification_updating">पुस्तकालय अपडेट गर्दै...(%1$d/%2$d)</string>
|
||||
<string name="tracker_komga_warning">यो ट्रयाकर कोग्मामा कोस्रोत सँग मात्र चलाउन मिल्छ!</string>
|
||||
<string name="manga_tracking_tab">ट्र्याकिङ</string>
|
||||
|
@ -628,7 +628,7 @@
|
|||
<string name="pref_landscape_zoom">जूम ल्यान्डस्केप छवि</string>
|
||||
<string name="notification_update_error">%1$d अपडेट(हरू) असफल भयो</string>
|
||||
<string name="notification_update_skipped">%1$d अपडेट(हरू) छोडियो</string>
|
||||
<string name="disabled_nav">अक्षम</string>
|
||||
<string name="disabled_nav">असक्षम</string>
|
||||
<string name="library_errors_help">पुस्तकालय अपडेट त्रुटिहरू कसरी समाधान गर्ने भन्ने बारे मद्दतको लागि, %1$s हेर्नुहोस्</string>
|
||||
<string name="action_sort_unread_count">नपढिएको संख्या</string>
|
||||
<string name="action_close">बन्द</string>
|
||||
|
@ -651,12 +651,12 @@
|
|||
<string name="pref_skip_dupe_chapters">डुप्लिकेट अध्यायहरू छोड्नुहोस्</string>
|
||||
<string name="action_display_show_continue_reading_button">जारी राख्नुहोस् बटन</string>
|
||||
<string name="label_stats">तथ्याङ्क</string>
|
||||
<string name="label_started">सुरु भएको</string>
|
||||
<string name="label_started">सुरु गरिएको</string>
|
||||
<string name="label_local">लोकल</string>
|
||||
<string name="label_downloaded">डाउनलोड गरेको</string>
|
||||
<string name="label_downloaded">डाउनलोड गरिएको</string>
|
||||
<string name="network_not_metered">मापन नगरिएको नेटवर्कमा मात्र</string>
|
||||
<string name="download_ahead">अगाडि डाउनलोड गर्नुहोस्</string>
|
||||
<string name="pref_appearance_summary">थीम, मिति र समय ढाँचा</string>
|
||||
<string name="pref_appearance_summary">थिम, मिति र समय ढाँचा</string>
|
||||
<string name="download_ahead_info">केवल पुस्तकालयका इन्ट्रीहरूमा काम गर्दछ र यदि हालको अध्याय + अर्को पहिले नै डाउनलोड गरिएको छ</string>
|
||||
<string name="theme_tidalwave">समुन्द्री लहर</string>
|
||||
<string name="ext_info_version">संस्करण</string>
|
||||
|
@ -767,8 +767,8 @@
|
|||
</plurals>
|
||||
<string name="pref_debug_info">Debug जानकारी</string>
|
||||
<string name="pref_chapter_swipe">अध्याय स्वाइप</string>
|
||||
<string name="pref_chapter_swipe_end">दायाँ कार्यमा स्वाइप गर्नुहोस्</string>
|
||||
<string name="pref_chapter_swipe_start">बायाँ कार्यमा स्वाइप गर्नुहोस्</string>
|
||||
<string name="pref_chapter_swipe_end">दायाँ स्वाइप</string>
|
||||
<string name="pref_chapter_swipe_start">बायाँ स्वाइप</string>
|
||||
<string name="pref_double_tap_zoom">जूम गर्न डबल ट्याप गर्नुहोस्</string>
|
||||
<string name="pref_library_columns_per_row">%d प्रति पङ्क्ति</string>
|
||||
</resources>
|
|
@ -58,7 +58,7 @@
|
|||
<string name="pref_category_downloads">Pobieranie</string>
|
||||
<string name="pref_category_advanced">Zaawansowane</string>
|
||||
<string name="pref_category_about">O aplikacji</string>
|
||||
<string name="pref_library_columns">Ilość okładek w rzędzie</string>
|
||||
<string name="pref_library_columns">Rozmiar siatki</string>
|
||||
<string name="remove_from_library">Usuń z biblioteki</string>
|
||||
<string name="display_mode_chapter">Rozdział %1$s</string>
|
||||
<string name="manga_download">Pobierz</string>
|
||||
|
@ -640,7 +640,7 @@
|
|||
<string name="pref_update_only_started">Brak przeczytanych rozdziałów</string>
|
||||
<string name="webtoon_side_padding_5">5%</string>
|
||||
<string name="pref_landscape_zoom">Przybliżaj poziome obrazy</string>
|
||||
<string name="pref_navigate_pan">Dotknij aby przesunąć</string>
|
||||
<string name="pref_navigate_pan">Przesuń szeroki obraz</string>
|
||||
<string name="action_display_cover_only_grid">Siatka z samych okładek</string>
|
||||
<string name="skipped_reason_not_started">Pominięto - brak przeczytanych rozdziałów</string>
|
||||
<string name="skipped_reason_completed">Pominięto ponieważ seria została ukończona</string>
|
||||
|
@ -745,4 +745,8 @@
|
|||
<item quantity="many">Brakuje %1$s rozdziałów</item>
|
||||
<item quantity="other">Brakuje %1$s rozdziałów</item>
|
||||
</plurals>
|
||||
<string name="pref_library_columns_per_row">%d na rząd</string>
|
||||
<string name="pref_double_tap_zoom">Dotknij dwukrotnie, aby powiększyć</string>
|
||||
<string name="pref_chapter_swipe_end">Przesuń palcem w prawo</string>
|
||||
<string name="pref_chapter_swipe_start">Przesuń palcem w lewo</string>
|
||||
</resources>
|
|
@ -183,7 +183,7 @@
|
|||
|
||||
<string name="download_notifier_title_error">Erro</string>
|
||||
<string name="download_notifier_unknown_error">Não foi possível transferir o capítulo devido a um erro inesperado</string>
|
||||
<string name="download_notifier_text_only_wifi">Sem ligação de Wi-Fi disponível</string>
|
||||
<string name="download_notifier_text_only_wifi">A ligação Wi-Fi está indisponível</string>
|
||||
<string name="manga">Itens da biblioteca</string>
|
||||
<string name="track">Monitorização</string>
|
||||
<string name="history">Histórico</string>
|
||||
|
@ -291,8 +291,9 @@
|
|||
<string name="copy">Copiar</string>
|
||||
<string name="notification_cover_update_failed">Falha ao atualizar a capa</string>
|
||||
<string name="information_empty_category">Não tem nenhuma categoria. Toque no botão (+) para criar uma e organizar a sua biblioteca.</string>
|
||||
<string name="download_notifier_downloader_title">Descarregador</string>
|
||||
<string name="download_notifier_no_network">Conexão à rede indisponível</string>
|
||||
<string name="download_notifier_downloader_title">Gestor de transferências</string>
|
||||
<string name="download_notifier_no_network">A ligação à rede está indisponível</string>
|
||||
<string name="download_notifier_download_paused">Transferências em pausa</string>
|
||||
<string name="channel_common">Comum</string>
|
||||
<string name="filter_mode_overlay">Sobrepor</string>
|
||||
<string name="filter_mode_multiply">Multiplicação</string>
|
||||
|
@ -514,7 +515,7 @@
|
|||
<string name="spen_next_page">Página seguinte</string>
|
||||
<string name="spen_previous_page">Página anterior</string>
|
||||
<string name="migration_help_guide">Guia de migração de fonte</string>
|
||||
<string name="file_picker_error">Não foi encontrada app de selecção de ficheiros</string>
|
||||
<string name="file_picker_error">Não foi encontrada nenhuma app de seleção de ficheiros</string>
|
||||
<string name="myanimelist_relogin">Por favor inicie sessão no MAL novamente</string>
|
||||
<string name="pref_show_nsfw_source">Mostrar na lista de fontes e extensões</string>
|
||||
<string name="pref_viewer_nav">Zonas de toque</string>
|
||||
|
@ -775,7 +776,7 @@
|
|||
<string name="label_mean_score">Avaliação média</string>
|
||||
<string name="label_used">Usados</string>
|
||||
<string name="seconds_short">%ds</string>
|
||||
<string name="download_notifier_cache_renewal">A verificar as descargas</string>
|
||||
<string name="download_notifier_cache_renewal">A verificar as transferências</string>
|
||||
<string name="track_remove_date_conf_title">Remover data\?</string>
|
||||
<string name="label_overview_section">Visão geral</string>
|
||||
<string name="label_completed_titles">Itens completos</string>
|
||||
|
|
|
@ -69,8 +69,8 @@
|
|||
<string name="pref_category_tracking">Праћење</string>
|
||||
<string name="pref_category_advanced">Напредно</string>
|
||||
<string name="pref_category_about">O апликацији</string>
|
||||
<string name="pref_library_columns">Број ставки по реду</string>
|
||||
<string name="portrait">Вертикално</string>
|
||||
<string name="pref_library_columns">Величина мреже</string>
|
||||
<string name="portrait">Усправно</string>
|
||||
<string name="landscape">Хоризонтално</string>
|
||||
<string name="pref_library_update_interval">Аутоматска ажурирања</string>
|
||||
<string name="update_never">Искључено</string>
|
||||
|
@ -110,10 +110,10 @@
|
|||
<string name="white_background">Бела</string>
|
||||
<string name="black_background">Црна</string>
|
||||
<string name="pref_viewer_type">Подразумевани начин читања</string>
|
||||
<string name="left_to_right_viewer">Слева надесно</string>
|
||||
<string name="right_to_left_viewer">Здесна налево</string>
|
||||
<string name="vertical_viewer">Вертикално</string>
|
||||
<string name="webtoon_viewer">Webtoon</string>
|
||||
<string name="left_to_right_viewer">Страница (слева надесно)</string>
|
||||
<string name="right_to_left_viewer">Страница (сдесна налево)</string>
|
||||
<string name="vertical_viewer">Страница (вертикално)</string>
|
||||
<string name="webtoon_viewer">Дуги стрип</string>
|
||||
<string name="pager_viewer">Странично</string>
|
||||
<string name="pref_image_scale_type">Тип скалирања</string>
|
||||
<string name="scale_type_fit_screen">Попуни екран</string>
|
||||
|
@ -234,7 +234,7 @@
|
|||
<string name="theme_dark">Укључено</string>
|
||||
<string name="theme_system">По систему</string>
|
||||
<string name="pref_manage_notifications">Управљај обавештењима</string>
|
||||
<string name="pref_category_security">Безбедност</string>
|
||||
<string name="pref_category_security">Безбедност и приватност</string>
|
||||
<string name="lock_when_idle">Закључај приликом мировања</string>
|
||||
<string name="lock_always">Увек</string>
|
||||
<string name="lock_never">Никада</string>
|
||||
|
@ -351,7 +351,7 @@
|
|||
<string name="pref_webtoon_side_padding">Растојање од ивице</string>
|
||||
<string name="pref_category_reading">Читање</string>
|
||||
<string name="pref_always_show_chapter_transition">Увек прикажи транзицију поглавља</string>
|
||||
<string name="vertical_plus_viewer">Континуирано вертикално</string>
|
||||
<string name="vertical_plus_viewer">Дуги стрип са размацима</string>
|
||||
<string name="pref_skip_filtered_chapters">Прескочи филтрирана поглавља</string>
|
||||
<string name="pref_cutout_short">Прикажи садржај у исечку</string>
|
||||
<string name="set_as_cover">Постави као омот</string>
|
||||
|
@ -440,9 +440,9 @@
|
|||
<string name="pref_category_reading_mode">Начин читања</string>
|
||||
<string name="ext_installer_pref">Instaler</string>
|
||||
<plurals name="missing_chapters_warning">
|
||||
<item quantity="one">Preskače se %d poglavlje,ili ne postoji u izvori ili su izdvojeni filterom</item>
|
||||
<item quantity="few">Preskače se %d poglavlje,ili ne postoji u izvori ili su izdvojeni filterom</item>
|
||||
<item quantity="other">Preskače se %d poglavlje,ili ne postoji u izvori ili su izdvojeni filterom</item>
|
||||
<item quantity="one">Прескаче се %d поглавље, или не постоји у извору или је филтером издвојено</item>
|
||||
<item quantity="few">Прескаче се %d поглавља, или не постоји у извору или је филтером издвојено</item>
|
||||
<item quantity="other">Прескаче се %d поглавља, или не постоји у извору или је филтером издвојено</item>
|
||||
</plurals>
|
||||
<string name="pref_category_auto_download">Аутоматско преузимање</string>
|
||||
<string name="action_track">Прати</string>
|
||||
|
@ -487,7 +487,7 @@
|
|||
\nМораћете да инсталирате све додатке које недостају и да се после тога пријавите на трекере да бисте их користили.</string>
|
||||
<string name="enhanced_tracking_info">Сервиси који пружају побољшане услуге за одређене изворе. Наслов се аутоматски прати када га додате у колекцију.</string>
|
||||
<string name="help_translate">Помозите у превођењу</string>
|
||||
<string name="pref_dump_crash_logs">Избаци извештаје о паду</string>
|
||||
<string name="pref_dump_crash_logs">Дели извештаје о паду</string>
|
||||
<string name="pref_verbose_logging_summary">Исписуј детаљне извештаје у системски дневник (смањује перформансе апликације)</string>
|
||||
<string name="battery_optimization_setting_activity_not_found">Није могуће отворити подешавања уређаја</string>
|
||||
<string name="pref_refresh_library_covers">Освежи омоте у колекцији</string>
|
||||
|
@ -540,7 +540,7 @@
|
|||
<item quantity="few">Поглавља %1$s и још %2$d</item>
|
||||
<item quantity="other">Поглавља %1$s и још %2$d</item>
|
||||
</plurals>
|
||||
<string name="pref_search_pinned_sources_only">Укључи само означене изворе</string>
|
||||
<string name="pref_search_pinned_sources_only">Претражи само означене изворе у глобалној претрази</string>
|
||||
<string name="tracker_komga_warning">Овај пратилац је компатибилан само са извором Komga.</string>
|
||||
<string name="pref_show_navigation_mode">Прикажи начин навигације</string>
|
||||
<string name="track_finished_reading_date">Датум завршетка</string>
|
||||
|
@ -637,7 +637,7 @@
|
|||
<string name="skipped_reason_not_started">Прескочено јер ниједно поглавље није прочитано</string>
|
||||
<string name="channel_skipped">Прескочено</string>
|
||||
<string name="action_display_cover_only_grid">Мрежа насловница</string>
|
||||
<string name="pref_navigate_pan">Померај широке слике додиром</string>
|
||||
<string name="pref_navigate_pan">Померај широке слике</string>
|
||||
<string name="pref_landscape_zoom">Зумирај пејзажну слику</string>
|
||||
<string name="action_faq_and_guides">Питања и водичи</string>
|
||||
<string name="save_chapter_as_cbz">Sačuvaj kao CBZ arhivu</string>
|
||||
|
@ -655,7 +655,7 @@
|
|||
<string name="battery_not_low">Батерија није празна</string>
|
||||
<string name="pref_clear_webview_data">Обриши податке WebView-a</string>
|
||||
<string name="webview_data_deleted">Подаци WebView-a су обрисани</string>
|
||||
<string name="pref_library_summary">Категорије, глобално ажурирање</string>
|
||||
<string name="pref_library_summary">Категорије, глобално ажурирање, листање поглавља</string>
|
||||
<string name="pref_reader_summary">Режим читања, дисплеј, навигација</string>
|
||||
<string name="pref_downloads_summary">Аутоматско преузимање, преузимање унапред</string>
|
||||
<string name="pref_tracking_summary">Једносмерна синхронизација напретка, побољшана синхронизација</string>
|
||||
|
@ -666,7 +666,7 @@
|
|||
<string name="pref_reset_viewer_flags_success">Сва подешавања читача су ресетована</string>
|
||||
<string name="pref_invalidate_download_cache_summary">Присили апликацију да поново провери преузета поглавља</string>
|
||||
<string name="not_installed">Није инсталирано</string>
|
||||
<string name="crash_screen_description">%s је наишао на неочекивану грешку. Предлажемо да снимите ову поруку и евиденције о паду, а затим да их поделите на нашем каналу за подршку на Discord-у.</string>
|
||||
<string name="crash_screen_description">%s је наишао на неочекивану грешку. Предлажемо да поделите запис о прекиду програма на нашем каналу за подршку на Discord-у.</string>
|
||||
<string name="appwidget_unavailable_locked">Widget није доступан када је омогућено закључавање апликације</string>
|
||||
<string name="wish_list">Листа жеља</string>
|
||||
<string name="enhanced_services_not_installed">Доступно, али извор није преузет: %s</string>
|
||||
|
@ -709,7 +709,7 @@
|
|||
<string name="minute_short">%d минута</string>
|
||||
<string name="seconds_short">%d секунди</string>
|
||||
<string name="description_placeholder">Нема описа</string>
|
||||
<string name="action_display_show_continue_reading_button">Покажи дугме за наставак читања</string>
|
||||
<string name="action_display_show_continue_reading_button">Дугме за наставак читања</string>
|
||||
<string name="internal_error">InternalError: Провери записнике о прекиду програма за даље информације</string>
|
||||
<string name="pref_skip_dupe_chapters">Прескочи дупликатска поглавља</string>
|
||||
<string name="multi_lang">Више језика</string>
|
||||
|
@ -769,4 +769,27 @@
|
|||
<string name="pref_user_agent_string">Подразумеван низ корисничког агента</string>
|
||||
<string name="track_error">%1$s грешка: %2$s</string>
|
||||
<string name="information_required_plain">*неопходно</string>
|
||||
<string name="action_update_category">Ажурирај категорију</string>
|
||||
<string name="pref_hide_in_library_items">Сакри уносе који се већ налазе у колекцији</string>
|
||||
<string name="overlay_header">Прекривање</string>
|
||||
<string name="split_tall_images">Растави високе слике</string>
|
||||
<string name="pref_library_columns_per_row">%d по реду</string>
|
||||
<string name="pref_chapter_swipe_end">Превуци удесно</string>
|
||||
<string name="pref_chapter_swipe_start">Превуци улево</string>
|
||||
<string name="pref_chapter_swipe">Прелистај поглавље</string>
|
||||
<string name="pref_double_tap_zoom">Додирни двапут за зумирање</string>
|
||||
<plurals name="download_amount">
|
||||
<item quantity="one">Следеће поглавље</item>
|
||||
<item quantity="few">Следећа %d поглавља</item>
|
||||
<item quantity="other">Следећих %d поглавља</item>
|
||||
</plurals>
|
||||
<string name="action_copy_to_clipboard">Копирај</string>
|
||||
<string name="pref_page_rotate_invert">Окрени положај широких страница</string>
|
||||
<string name="pref_page_rotate">Прилагоди широке странице ротирањем</string>
|
||||
<string name="pref_debug_info">Информације за отклањање грешака</string>
|
||||
<plurals name="missing_chapters">
|
||||
<item quantity="one">Недостаје %1$s поглавље</item>
|
||||
<item quantity="few">Недостају %1$s поглавља</item>
|
||||
<item quantity="other">Недостаје %1$s поглавља</item>
|
||||
</plurals>
|
||||
</resources>
|
|
@ -70,7 +70,7 @@
|
|||
<string name="pref_category_tracking">İzleme</string>
|
||||
<string name="pref_category_advanced">Gelişmiş</string>
|
||||
<string name="pref_category_about">Hakkında</string>
|
||||
<string name="pref_library_columns">Satır başına öge</string>
|
||||
<string name="pref_library_columns">Izgara boyutu</string>
|
||||
<string name="portrait">Dikey</string>
|
||||
<string name="landscape">Yatay</string>
|
||||
<string name="pref_library_update_interval">Otomatik güncellemeler</string>
|
||||
|
@ -621,7 +621,7 @@
|
|||
<string name="skipped_reason_completed">Manga tamamlandığı için atlandı</string>
|
||||
<string name="skipped_reason_not_caught_up">Okunmamış bölümler olduğu için atlandı</string>
|
||||
<string name="skipped_reason_not_started">Hiçbir bölüm okunmadığı için atlandı</string>
|
||||
<string name="pref_navigate_pan">Dokunulduğunda geniş görselleri kaydır</string>
|
||||
<string name="pref_navigate_pan">Geniş görüntüleri kaydır</string>
|
||||
<string name="pref_landscape_zoom">Yatay görseli yakınlaştır</string>
|
||||
<string name="notification_update_error">%1$d güncelleme başarısız oldu</string>
|
||||
<string name="notification_update_skipped">%1$d güncelleme atlandı</string>
|
||||
|
@ -744,4 +744,5 @@
|
|||
<string name="pref_chapter_swipe_end">Sağa kaydırma eylemi</string>
|
||||
<string name="pref_chapter_swipe_start">Sola kaydırma eylemi</string>
|
||||
<string name="pref_double_tap_zoom">Yakınlaştırmak için iki kez dokun</string>
|
||||
<string name="pref_library_columns_per_row">Satır başına %d</string>
|
||||
</resources>
|
|
@ -149,15 +149,15 @@
|
|||
<string name="download_notifier_title_error">錯誤</string>
|
||||
<string name="download_notifier_text_only_wifi">沒有可用的 Wi-Fi 連線</string>
|
||||
<string name="download_notifier_no_network">尚未連接至網路</string>
|
||||
<string name="pref_library_columns">書櫃欄位數目</string>
|
||||
<string name="pref_library_columns">格線大小</string>
|
||||
<string name="pref_page_transitions">翻頁轉場動畫</string>
|
||||
<string name="pref_crop_borders">邊緣裁剪</string>
|
||||
<string name="pref_color_filter_mode">濾鏡融合機制</string>
|
||||
<string name="filter_mode_overlay">覆蓋</string>
|
||||
<string name="filter_mode_multiply">色彩增值</string>
|
||||
<string name="filter_mode_screen">濾色</string>
|
||||
<string name="filter_mode_lighten">減淡 / 變亮</string>
|
||||
<string name="filter_mode_darken">加深 / 變暗</string>
|
||||
<string name="filter_mode_lighten">減淡/變亮</string>
|
||||
<string name="filter_mode_darken">加深/變暗</string>
|
||||
<string name="pref_reader_navigation">導覽</string>
|
||||
<string name="pref_read_with_volume_keys">音量按鈕</string>
|
||||
<string name="pref_read_with_volume_keys_inverted">反轉音量按鈕</string>
|
||||
|
@ -603,7 +603,7 @@
|
|||
<string name="action_faq_and_guides">常見問題與指南</string>
|
||||
<string name="webtoon_side_padding_5">5%</string>
|
||||
<string name="pref_landscape_zoom">縮放橫向圖片</string>
|
||||
<string name="pref_navigate_pan">輕觸大圖時先平移後翻頁</string>
|
||||
<string name="pref_navigate_pan">導覽寬頁時先平移後翻頁</string>
|
||||
<string name="action_display_cover_only_grid">純封面格狀</string>
|
||||
<string name="action_filter_started">已開始閱讀</string>
|
||||
<string name="pref_update_only_started">無已讀的章節</string>
|
||||
|
@ -728,4 +728,5 @@
|
|||
<string name="pref_double_tap_zoom">輕觸兩下以縮放</string>
|
||||
<string name="pref_chapter_swipe_end">向右滑動</string>
|
||||
<string name="pref_chapter_swipe">目錄滑動動作</string>
|
||||
<string name="pref_library_columns_per_row">每列 %d 欄</string>
|
||||
</resources>
|
Loading…
Reference in a new issue