Merge branch 'devel' into feature/stats

master
Koitharu 2 years ago
commit c451952a1e
Signed by: Koitharu
GPG Key ID: 676DEE768C17A9D7

@ -16,8 +16,8 @@ android {
applicationId 'org.koitharu.kotatsu'
minSdk = 21
targetSdk = 34
versionCode = 624
versionName = '6.7.2'
versionCode = 626
versionName = '6.7.4'
generatedDensities = []
testInstrumentationRunner 'org.koitharu.kotatsu.HiltTestRunner'
ksp {
@ -82,7 +82,7 @@ afterEvaluate {
}
dependencies {
//noinspection GradleDependency
implementation('com.github.KotatsuApp:kotatsu-parsers:3ff028c4e9') {
implementation('com.github.KotatsuApp:kotatsu-parsers:103f578c61') {
exclude group: 'org.json', module: 'json'
}
@ -126,13 +126,13 @@ dependencies {
implementation 'com.hannesdorfmann:adapterdelegates4-kotlin-dsl:4.3.2'
implementation 'com.hannesdorfmann:adapterdelegates4-kotlin-dsl-viewbinding:4.3.2'
implementation 'com.google.dagger:hilt-android:2.50'
kapt 'com.google.dagger:hilt-compiler:2.50'
implementation 'androidx.hilt:hilt-work:1.1.0'
kapt 'androidx.hilt:hilt-compiler:1.1.0'
implementation 'com.google.dagger:hilt-android:2.51'
kapt 'com.google.dagger:hilt-compiler:2.51'
implementation 'androidx.hilt:hilt-work:1.2.0'
kapt 'androidx.hilt:hilt-compiler:1.2.0'
implementation 'io.coil-kt:coil-base:2.5.0'
implementation 'io.coil-kt:coil-svg:2.5.0'
implementation 'io.coil-kt:coil-base:2.6.0'
implementation 'io.coil-kt:coil-svg:2.6.0'
implementation 'com.github.KotatsuApp:subsampling-scale-image-view:02e6d6cfe9'
implementation 'com.github.solkin:disk-lru-cache:1.4'
implementation 'io.noties.markwon:core:4.6.2'
@ -160,6 +160,6 @@ dependencies {
androidTestImplementation 'androidx.room:room-testing:2.6.1'
androidTestImplementation 'com.squareup.moshi:moshi-kotlin:1.15.1'
androidTestImplementation 'com.google.dagger:hilt-android-testing:2.50'
kaptAndroidTest 'com.google.dagger:hilt-android-compiler:2.50'
androidTestImplementation 'com.google.dagger:hilt-android-testing:2.51'
kaptAndroidTest 'com.google.dagger:hilt-android-compiler:2.51'
}

@ -57,6 +57,7 @@ class AppShortcutManagerTest {
page = 4,
scroll = 2,
percent = 0.3f,
force = false,
)
awaitUpdate()

@ -7,7 +7,9 @@ import dagger.hilt.android.testing.HiltAndroidRule
import dagger.hilt.android.testing.HiltAndroidTest
import kotlinx.coroutines.flow.first
import kotlinx.coroutines.test.runTest
import org.junit.Assert.*
import org.junit.Assert.assertEquals
import org.junit.Assert.assertNull
import org.junit.Assert.assertTrue
import org.junit.Before
import org.junit.Rule
import org.junit.Test
@ -61,6 +63,7 @@ class AppBackupAgentTest {
page = 3,
scroll = 40,
percent = 0.2f,
force = false,
)
val history = checkNotNull(historyRepository.getOne(SampleData.manga))

@ -14,7 +14,6 @@ import androidx.core.view.isVisible
import androidx.core.view.updatePadding
import org.koitharu.kotatsu.R
import org.koitharu.kotatsu.core.ui.BaseActivity
import org.koitharu.kotatsu.core.util.ext.catchingWebViewUnavailability
import org.koitharu.kotatsu.databinding.ActivityBrowserBinding
import org.koitharu.kotatsu.parsers.network.UserAgents
import com.google.android.material.R as materialR
@ -26,7 +25,7 @@ class BrowserActivity : BaseActivity<ActivityBrowserBinding>(), BrowserCallback
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
if (!catchingWebViewUnavailability { setContentView(ActivityBrowserBinding.inflate(layoutInflater)) }) {
if (!setContentViewWebViewSafe { ActivityBrowserBinding.inflate(layoutInflater) }) {
return
}
supportActionBar?.run {

@ -27,7 +27,6 @@ import org.koitharu.kotatsu.core.network.CommonHeaders
import org.koitharu.kotatsu.core.network.cookies.MutableCookieJar
import org.koitharu.kotatsu.core.ui.BaseActivity
import org.koitharu.kotatsu.core.util.TaggedActivityResult
import org.koitharu.kotatsu.core.util.ext.catchingWebViewUnavailability
import org.koitharu.kotatsu.databinding.ActivityBrowserBinding
import org.koitharu.kotatsu.parsers.network.UserAgents
import javax.inject.Inject
@ -45,13 +44,7 @@ class CloudFlareActivity : BaseActivity<ActivityBrowserBinding>(), CloudFlareCal
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
if (!catchingWebViewUnavailability {
setContentView(
ActivityBrowserBinding.inflate(
layoutInflater,
),
)
}) {
if (!setContentViewWebViewSafe { ActivityBrowserBinding.inflate(layoutInflater) }) {
return
}
supportActionBar?.run {

@ -277,6 +277,9 @@ class AppSettings @Inject constructor(@ApplicationContext context: Context) {
val isDownloadsWiFiOnly: Boolean
get() = prefs.getBoolean(KEY_DOWNLOADS_WIFI, false)
val preferredDownloadFormat: DownloadFormat
get() = prefs.getEnumValue(KEY_DOWNLOADS_FORMAT, DownloadFormat.AUTOMATIC)
var isSuggestionsEnabled: Boolean
get() = prefs.getBoolean(KEY_SUGGESTIONS, false)
set(value) = prefs.edit { putBoolean(KEY_SUGGESTIONS, value) }
@ -433,7 +436,7 @@ class AppSettings @Inject constructor(@ApplicationContext context: Context) {
fun getPagesSaveDir(context: Context): DocumentFile? =
prefs.getString(KEY_PAGES_SAVE_DIR, null)?.toUriOrNull()?.let {
DocumentFile.fromTreeUri(context, it)
DocumentFile.fromTreeUri(context, it)?.takeIf { it.canWrite() }
}
fun setPagesSaveDir(uri: Uri?) {
@ -555,6 +558,7 @@ class AppSettings @Inject constructor(@ApplicationContext context: Context) {
const val KEY_MAL = "mal"
const val KEY_KITSU = "kitsu"
const val KEY_DOWNLOADS_WIFI = "downloads_wifi"
const val KEY_DOWNLOADS_FORMAT = "downloads_format"
const val KEY_ALL_FAVOURITES_VISIBLE = "all_favourites_visible"
const val KEY_DOH = "doh"
const val KEY_EXIT_CONFIRM = "exit_confirm"

@ -0,0 +1,8 @@
package org.koitharu.kotatsu.core.prefs
enum class DownloadFormat {
AUTOMATIC,
SINGLE_CBZ,
MULTIPLE_CBZ,
}

@ -8,6 +8,7 @@ import android.os.Bundle
import android.view.KeyEvent
import android.view.View
import android.view.ViewGroup
import android.widget.Toast
import androidx.annotation.CallSuper
import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.view.ActionMode
@ -29,6 +30,7 @@ import org.koitharu.kotatsu.core.ui.util.ActionModeDelegate
import org.koitharu.kotatsu.core.ui.util.BaseActivityEntryPoint
import org.koitharu.kotatsu.core.ui.util.WindowInsetsDelegate
import org.koitharu.kotatsu.core.util.ext.getThemeColor
import org.koitharu.kotatsu.core.util.ext.isWebViewUnavailable
@Suppress("LeakingThis")
abstract class BaseActivity<B : ViewBinding> :
@ -164,6 +166,21 @@ abstract class BaseActivity<B : ViewBinding> :
intent?.putExtra(EXTRA_DATA, intent.data)
}
protected fun setContentViewWebViewSafe(viewBindingProducer: () -> B): Boolean {
return try {
setContentView(viewBindingProducer())
true
} catch (e: Exception) {
if (e.isWebViewUnavailable()) {
Toast.makeText(this, R.string.web_view_unavailable, Toast.LENGTH_LONG).show()
finishAfterTransition()
false
} else {
throw e
}
}
}
companion object {
const val EXTRA_DATA = "data"

@ -68,6 +68,14 @@ class RecyclerViewAlertDialog private constructor(
return this
}
fun setNeutralButton(
@StringRes textId: Int,
listener: DialogInterface.OnClickListener,
): Builder<T> {
delegate.setNeutralButton(textId, listener)
return this
}
fun setCancelable(isCancelable: Boolean): Builder<T> {
delegate.setCancelable(isCancelable)
return this

@ -16,6 +16,7 @@ import androidx.core.graphics.ColorUtils
import androidx.core.graphics.withClip
import com.google.android.material.color.MaterialColors
import org.koitharu.kotatsu.R
import org.koitharu.kotatsu.core.util.Colors
import kotlin.math.absoluteValue
class FaviconDrawable(
@ -44,7 +45,7 @@ class FaviconDrawable(
}
paint.textAlign = Paint.Align.CENTER
paint.isFakeBoldText = true
colorForeground = MaterialColors.harmonize(colorOfString(name), colorBackground)
colorForeground = MaterialColors.harmonize(Colors.random(name), colorBackground)
}
override fun draw(canvas: Canvas) {
@ -104,9 +105,4 @@ class FaviconDrawable(
paint.getTextBounds(text, 0, text.length, tempRect)
return testTextSize * width / tempRect.width()
}
private fun colorOfString(str: String): Int {
val hue = (str.hashCode() % 360).absoluteValue.toFloat()
return ColorUtils.HSLToColor(floatArrayOf(hue, 0.5f, 0.5f))
}
}

@ -0,0 +1,41 @@
package org.koitharu.kotatsu.core.util
import android.content.Context
import androidx.annotation.AttrRes
import androidx.annotation.ColorInt
import androidx.core.graphics.ColorUtils
import com.google.android.material.R
import com.google.android.material.color.MaterialColors
import org.koitharu.kotatsu.core.util.ext.getThemeColor
import kotlin.math.absoluteValue
object Colors {
@ColorInt
fun segmentColor(context: Context, @AttrRes resId: Int): Int {
val colorHex = String.format("%06x", context.getThemeColor(resId))
val hue = getHue(colorHex)
val color = ColorUtils.HSLToColor(floatArrayOf(hue, 0.5f, 0.5f))
val backgroundColor = context.getThemeColor(R.attr.colorSurfaceContainerHigh)
return MaterialColors.harmonize(color, backgroundColor)
}
fun random(seed: Any): Int {
val hue = (seed.hashCode() % 360).absoluteValue.toFloat()
return ColorUtils.HSLToColor(floatArrayOf(hue, 0.5f, 0.5f))
}
private fun getHue(hex: String): Float {
val r = (hex.substring(0, 2).toInt(16)).toFloat()
val g = (hex.substring(2, 4).toInt(16)).toFloat()
val b = (hex.substring(4, 6).toInt(16)).toFloat()
var hue = 0F
if ((r >= g) && (g >= b)) {
hue = 60 * (g - b) / (r - b)
} else if ((g > r) && (r >= b)) {
hue = 60 * (2 - (r - b) / (g - b))
}
return hue
}
}

@ -27,7 +27,6 @@ import android.provider.Settings
import android.view.View
import android.view.ViewPropertyAnimator
import android.view.Window
import android.widget.Toast
import androidx.activity.result.ActivityResultLauncher
import androidx.annotation.IntegerRes
import androidx.annotation.WorkerThread
@ -216,21 +215,6 @@ fun Context.findActivity(): Activity? = when (this) {
else -> null
}
inline fun Activity.catchingWebViewUnavailability(block: () -> Unit): Boolean {
return try {
block()
true
} catch (e: Exception) {
if (e.isWebViewUnavailable()) {
Toast.makeText(this, R.string.web_view_unavailable, Toast.LENGTH_LONG).show()
finishAfterTransition()
false
} else {
throw e
}
}
}
fun Context.checkNotificationPermission(): Boolean = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
ContextCompat.checkSelfPermission(this, Manifest.permission.POST_NOTIFICATIONS) == PackageManager.PERMISSION_GRANTED
} else {

@ -19,6 +19,7 @@ import java.nio.file.attribute.BasicFileAttributes
import java.util.zip.ZipEntry
import java.util.zip.ZipFile
import kotlin.io.path.ExperimentalPathApi
import kotlin.io.path.PathWalkOption
import kotlin.io.path.readAttributes
import kotlin.io.path.walk
@ -72,7 +73,7 @@ fun ContentResolver.resolveName(uri: Uri): String? {
}
suspend fun File.computeSize(): Long = runInterruptible(Dispatchers.IO) {
walkCompat().sumOf { it.length() }
walkCompat(includeDirectories = false).sumOf { it.length() }
}
fun File.children() = FileSequence(this)
@ -87,10 +88,16 @@ val File.creationTime
}
@OptIn(ExperimentalPathApi::class)
fun File.walkCompat() = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
fun File.walkCompat(includeDirectories: Boolean): Sequence<File> = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
// Use lazy loading on Android 8.0 and later
toPath().walk().map { it.toFile() }
val walk = if (includeDirectories) {
toPath().walk(PathWalkOption.INCLUDE_DIRECTORIES)
} else {
toPath().walk()
}
walk.map { it.toFile() }
} else {
// Directories are excluded by default in Path.walk(), so do it here as well
walk().filter { it.isFile }
val walk = walk()
if (includeDirectories) walk else walk.filter { it.isFile }
}

@ -2,7 +2,6 @@ package org.koitharu.kotatsu.core.util.ext
import android.content.ActivityNotFoundException
import android.content.res.Resources
import android.util.AndroidRuntimeException
import androidx.annotation.DrawableRes
import androidx.collection.arraySetOf
import coil.network.HttpException
@ -115,8 +114,8 @@ private val reportableExceptions = arraySetOf<Class<*>>(
)
fun Throwable.isWebViewUnavailable(): Boolean {
return (this is AndroidRuntimeException && message?.contains("WebView") == true) ||
cause?.isWebViewUnavailable() == true
val trace = stackTraceToString()
return trace.contains("android.webkit.WebView.<init>")
}
@Suppress("FunctionName")

@ -62,6 +62,7 @@ import org.koitharu.kotatsu.list.ui.adapter.mangaGridItemAD
import org.koitharu.kotatsu.list.ui.model.ListModel
import org.koitharu.kotatsu.list.ui.model.MangaItemModel
import org.koitharu.kotatsu.list.ui.size.StaticItemSizeResolver
import org.koitharu.kotatsu.local.ui.info.LocalInfoDialog
import org.koitharu.kotatsu.main.ui.owners.NoModalBottomSheetOwner
import org.koitharu.kotatsu.parsers.model.Manga
import org.koitharu.kotatsu.parsers.model.MangaSource
@ -102,6 +103,7 @@ class DetailsFragment :
binding.buttonScrobblingMore.setOnClickListener(this)
binding.buttonRelatedMore.setOnClickListener(this)
binding.infoLayout.textViewSource.setOnClickListener(this)
binding.infoLayout.textViewSize.setOnClickListener(this)
binding.textViewDescription.addOnLayoutChangeListener(this)
binding.textViewDescription.viewTreeObserver.addOnDrawListener(this)
binding.textViewDescription.movementMethod = LinkMovementMethodCompat.getInstance()
@ -324,6 +326,10 @@ class DetailsFragment :
)
}
R.id.textView_size -> {
LocalInfoDialog.show(parentFragmentManager, manga)
}
R.id.imageView_cover -> {
startActivity(
ImageActivity.newIntent(

@ -320,6 +320,7 @@ class DetailsViewModel @Inject constructor(
page = 0,
scroll = 0,
percent = percent,
force = true,
)
}
}

@ -8,6 +8,7 @@ import org.koitharu.kotatsu.core.ui.dialog.RecyclerViewAlertDialog
import org.koitharu.kotatsu.core.ui.list.OnListItemClickListener
import org.koitharu.kotatsu.download.ui.dialog.DownloadOption
import org.koitharu.kotatsu.download.ui.dialog.downloadOptionAD
import org.koitharu.kotatsu.settings.SettingsActivity
class DownloadDialogHelper(
private val host: View,
@ -57,6 +58,9 @@ class DownloadDialogHelper(
.setCancelable(true)
.setTitle(R.string.download)
.setNegativeButton(android.R.string.cancel)
.setNeutralButton(R.string.settings) { _, _ ->
host.context.startActivity(SettingsActivity.newDownloadsSettingsIntent(host.context))
}
.setItems(options)
.create()
.also { it.show() }

@ -91,6 +91,7 @@ class DownloadWorker @AssistedInject constructor(
private val localMangaRepository: LocalMangaRepository,
private val mangaDataRepository: MangaDataRepository,
private val mangaRepositoryFactory: MangaRepository.Factory,
private val settings: AppSettings,
@LocalStorageChanges private val localStorageChanges: MutableSharedFlow<LocalManga?>,
notificationFactoryFactory: DownloadNotificationFactory.Factory,
) : CoroutineWorker(appContext, params) {
@ -182,7 +183,7 @@ class DownloadWorker @AssistedInject constructor(
}
val repo = mangaRepositoryFactory.create(manga.source)
val mangaDetails = if (manga.chapters.isNullOrEmpty()) repo.getDetails(manga) else manga
output = LocalMangaOutput.getOrCreate(destination, mangaDetails)
output = LocalMangaOutput.getOrCreate(destination, mangaDetails, settings.preferredDownloadFormat)
val coverUrl = mangaDetails.largeCoverUrl.ifNullOrEmpty { mangaDetails.coverUrl }
if (coverUrl.isNotEmpty()) {
downloadFile(coverUrl, destination, repo.source).let { file ->

@ -57,7 +57,7 @@ class MangaSourcesRepository @Inject constructor(
observeIsNsfwDisabled(),
dao.observeEnabled(SourcesSortOrder.MANUAL),
) { skipNsfw, sources ->
sources.count { skipNsfw || !MangaSource(it.source).isNsfw() }
sources.count { !skipNsfw || !MangaSource(it.source).isNsfw() }
}.distinctUntilChanged()
}

@ -90,8 +90,8 @@ class HistoryRepository @Inject constructor(
.distinctUntilChanged()
}
suspend fun addOrUpdate(manga: Manga, chapterId: Long, page: Int, scroll: Int, percent: Float) {
if (shouldSkip(manga)) {
suspend fun addOrUpdate(manga: Manga, chapterId: Long, page: Int, scroll: Int, percent: Float, force: Boolean) {
if (!force && shouldSkip(manga)) {
return
}
assert(manga.chapters != null)

@ -24,6 +24,7 @@ class HistoryUpdateUseCase @Inject constructor(
page = readerState.page,
scroll = readerState.scroll,
percent = percent,
force = false,
)
}

@ -30,6 +30,7 @@ class MarkAsReadUseCase @Inject constructor(
page = pages.lastIndex,
scroll = 0,
percent = 1f,
force = true,
)
}

@ -18,3 +18,5 @@ fun File.hasCbzExtension() = isCbzExtension(extension)
fun Uri.isZipUri() = scheme.let {
it == URI_SCHEME_ZIP || it == "cbz" || it == "zip"
}
fun Uri.isFileUri() = scheme == "file"

@ -5,6 +5,7 @@ import androidx.core.net.toUri
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.runInterruptible
import org.koitharu.kotatsu.core.util.AlphanumComparator
import org.koitharu.kotatsu.core.util.ext.children
import org.koitharu.kotatsu.core.util.ext.creationTime
import org.koitharu.kotatsu.core.util.ext.longHashCode
import org.koitharu.kotatsu.core.util.ext.toListSorted
@ -100,8 +101,8 @@ class LocalMangaDirInput(root: File) : LocalMangaInput(root) {
override suspend fun getPages(chapter: MangaChapter): List<MangaPage> = runInterruptible(Dispatchers.IO) {
val file = chapter.url.toUri().toFile()
if (file.isDirectory) {
file.walkCompat()
.filter { hasImageExtension(it) }
file.children()
.filter { it.isFile && hasImageExtension(it) }
.toListSorted(compareBy(AlphanumComparator()) { x -> x.name })
.map {
val pageUri = it.toUri().toString()
@ -129,14 +130,16 @@ class LocalMangaDirInput(root: File) : LocalMangaInput(root) {
private fun String.toHumanReadable() = replace("_", " ").toCamelCase()
private fun getChaptersFiles() = root.walkCompat()
.filter { it.hasCbzExtension() }
private fun getChaptersFiles() = root.walkCompat(includeDirectories = true)
.filter { it != root && it.isChapterDirectory() || it.hasCbzExtension() }
.associateByTo(TreeMap(AlphanumComparator())) { it.name }
private fun findFirstImageEntry(): String? {
return root.walkCompat().firstOrNull { hasImageExtension(it) }?.toUri()?.toString()
return root.walkCompat(includeDirectories = false)
.firstOrNull { hasImageExtension(it) }?.toUri()?.toString()
?: run {
val cbz = root.walkCompat().firstOrNull { it.hasCbzExtension() } ?: return null
val cbz = root.walkCompat(includeDirectories = false)
.firstOrNull { it.hasCbzExtension() } ?: return null
ZipFile(cbz).use { zip ->
zip.entries().asSequence()
.firstOrNull { !it.isDirectory && hasImageExtension(it.name) }
@ -148,4 +151,8 @@ class LocalMangaDirInput(root: File) : LocalMangaInput(root) {
private fun fileUri(base: File, name: String): String {
return File(base, name).toUri().toString()
}
private fun File.isChapterDirectory(): Boolean {
return isDirectory && children().any { hasImageExtension(it) }
}
}

@ -4,7 +4,9 @@ import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.sync.Mutex
import kotlinx.coroutines.sync.withLock
import kotlinx.coroutines.withContext
import okhttp3.internal.format
import okio.Closeable
import org.koitharu.kotatsu.core.prefs.DownloadFormat
import org.koitharu.kotatsu.core.util.ext.printStackTraceDebug
import org.koitharu.kotatsu.local.data.input.LocalMangaInput
import org.koitharu.kotatsu.parsers.model.Manga
@ -35,22 +37,32 @@ sealed class LocalMangaOutput(
const val SUFFIX_TMP = ".tmp"
private val mutex = Mutex()
suspend fun getOrCreate(root: File, manga: Manga): LocalMangaOutput = withContext(Dispatchers.IO) {
val preferSingleCbz = manga.chapters.let {
it != null && it.size <= 3
suspend fun getOrCreate(
root: File,
manga: Manga,
format: DownloadFormat,
): LocalMangaOutput = withContext(Dispatchers.IO) {
val targetFormat = if (format == DownloadFormat.AUTOMATIC) {
if (manga.chapters.let { it != null && it.size <= 3 }) {
DownloadFormat.SINGLE_CBZ
} else {
DownloadFormat.MULTIPLE_CBZ
}
} else {
format
}
checkNotNull(getImpl(root, manga, onlyIfExists = false, preferSingleCbz))
checkNotNull(getImpl(root, manga, onlyIfExists = false, format = targetFormat))
}
suspend fun get(root: File, manga: Manga): LocalMangaOutput? = withContext(Dispatchers.IO) {
getImpl(root, manga, onlyIfExists = true, preferSingleCbz = false)
getImpl(root, manga, onlyIfExists = true, format = DownloadFormat.AUTOMATIC)
}
private suspend fun getImpl(
root: File,
manga: Manga,
onlyIfExists: Boolean,
preferSingleCbz: Boolean,
format: DownloadFormat,
): LocalMangaOutput? {
mutex.withLock {
var i = 0
@ -75,10 +87,10 @@ sealed class LocalMangaOutput(
continue
}
!onlyIfExists -> if (preferSingleCbz) {
LocalMangaZipOutput(zip, manga)
} else {
LocalMangaDirOutput(dir, manga)
!onlyIfExists -> when (format) {
DownloadFormat.AUTOMATIC -> null
DownloadFormat.SINGLE_CBZ -> LocalMangaZipOutput(zip, manga)
DownloadFormat.MULTIPLE_CBZ -> LocalMangaDirOutput(dir, manga)
}
else -> null

@ -0,0 +1,100 @@
package org.koitharu.kotatsu.local.ui.info
import android.content.res.ColorStateList
import android.os.Bundle
import android.os.Parcelable
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.annotation.AttrRes
import androidx.annotation.ColorInt
import androidx.annotation.StringRes
import androidx.core.graphics.ColorUtils
import androidx.core.widget.TextViewCompat
import androidx.fragment.app.FragmentManager
import androidx.fragment.app.viewModels
import com.google.android.material.color.MaterialColors
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.flow.combine
import org.koitharu.kotatsu.R
import org.koitharu.kotatsu.core.model.parcelable.ParcelableManga
import org.koitharu.kotatsu.core.ui.AlertDialogFragment
import org.koitharu.kotatsu.core.ui.widgets.SegmentedBarView
import org.koitharu.kotatsu.core.util.Colors
import org.koitharu.kotatsu.core.util.FileSize
import org.koitharu.kotatsu.core.util.ext.combine
import org.koitharu.kotatsu.core.util.ext.getThemeColor
import org.koitharu.kotatsu.core.util.ext.observe
import org.koitharu.kotatsu.core.util.ext.showDistinct
import org.koitharu.kotatsu.core.util.ext.withArgs
import org.koitharu.kotatsu.databinding.DialogLocalInfoBinding
import org.koitharu.kotatsu.parsers.model.Manga
import org.koitharu.kotatsu.settings.userdata.StorageUsage
import com.google.android.material.R as materialR
@AndroidEntryPoint
class LocalInfoDialog : AlertDialogFragment<DialogLocalInfoBinding>() {
private val viewModel: LocalInfoViewModel by viewModels()
override fun onBuildDialog(builder: MaterialAlertDialogBuilder): MaterialAlertDialogBuilder {
return super.onBuildDialog(builder)
.setTitle(R.string.saved_manga)
.setNegativeButton(R.string.close, null)
}
override fun onCreateViewBinding(inflater: LayoutInflater, container: ViewGroup?): DialogLocalInfoBinding {
return DialogLocalInfoBinding.inflate(inflater, container, false)
}
override fun onViewBindingCreated(binding: DialogLocalInfoBinding, savedInstanceState: Bundle?) {
super.onViewBindingCreated(binding, savedInstanceState)
viewModel.path.observe(this) {
binding.textViewPath.text = it
}
combine(viewModel.size, viewModel.availableSize, ::Pair).observe(this) {
if (it.first >= 0 && it.second >= 0) {
setSegments(it.first, it.second)
} else {
binding.barView.animateSegments(emptyList())
}
}
}
private fun setSegments(size: Long, available: Long) {
val view = viewBinding?.barView ?: return
val total = size + available
val segment = SegmentedBarView.Segment(
percent = (size.toDouble() / total.toDouble()).toFloat(),
color = Colors.segmentColor(view.context, materialR.attr.colorPrimary),
)
requireViewBinding().labelUsed.text = view.context.getString(
R.string.memory_usage_pattern,
getString(R.string.this_manga),
FileSize.BYTES.format(view.context, size),
)
requireViewBinding().labelAvailable.text = view.context.getString(
R.string.memory_usage_pattern,
getString(R.string.available),
FileSize.BYTES.format(view.context, available),
)
TextViewCompat.setCompoundDrawableTintList(
requireViewBinding().labelUsed,
ColorStateList.valueOf(segment.color),
)
view.animateSegments(listOf(segment))
}
companion object {
const val ARG_MANGA = "manga"
private const val TAG = "LocalInfoDialog"
fun show(fm: FragmentManager, manga: Manga) {
LocalInfoDialog().withArgs(1) {
putParcelable(ARG_MANGA, ParcelableManga(manga))
}.showDistinct(fm, TAG)
}
}
}

@ -0,0 +1,41 @@
package org.koitharu.kotatsu.local.ui.info
import androidx.core.net.toFile
import androidx.core.net.toUri
import androidx.lifecycle.SavedStateHandle
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.flow.MutableStateFlow
import org.koitharu.kotatsu.core.model.parcelable.ParcelableManga
import org.koitharu.kotatsu.core.ui.BaseViewModel
import org.koitharu.kotatsu.core.ui.widgets.SegmentedBarView
import org.koitharu.kotatsu.core.util.ext.computeSize
import org.koitharu.kotatsu.core.util.ext.require
import org.koitharu.kotatsu.core.util.ext.toFileOrNull
import org.koitharu.kotatsu.local.data.LocalMangaRepository
import org.koitharu.kotatsu.local.data.LocalStorageManager
import javax.inject.Inject
@HiltViewModel
class LocalInfoViewModel @Inject constructor(
savedStateHandle: SavedStateHandle,
private val localMangaRepository: LocalMangaRepository,
private val storageManager: LocalStorageManager,
) : BaseViewModel() {
private val manga = savedStateHandle.require<ParcelableManga>(LocalInfoDialog.ARG_MANGA).manga
val path = MutableStateFlow<String?>(null)
val size = MutableStateFlow(-1L)
val availableSize = MutableStateFlow(-1L)
init {
launchLoadingJob(Dispatchers.Default) {
val file = manga.url.toUri().toFileOrNull() ?: localMangaRepository.findSavedManga(manga)?.file
requireNotNull(file)
path.value = file.path
size.value = file.computeSize()
availableSize.value = storageManager.computeAvailableSize()
}
}
}

@ -47,6 +47,7 @@ import org.koitharu.kotatsu.core.util.ext.ramAvailable
import org.koitharu.kotatsu.core.util.ext.withProgress
import org.koitharu.kotatsu.core.util.progress.ProgressDeferred
import org.koitharu.kotatsu.local.data.PagesCache
import org.koitharu.kotatsu.local.data.isFileUri
import org.koitharu.kotatsu.local.data.isZipUri
import org.koitharu.kotatsu.parsers.model.MangaPage
import org.koitharu.kotatsu.parsers.model.MangaSource
@ -203,20 +204,23 @@ class PageLoader @Inject constructor(
val pageUrl = getPageUrl(page)
check(pageUrl.isNotBlank()) { "Cannot obtain full image url for $page" }
val uri = Uri.parse(pageUrl)
return if (uri.isZipUri()) {
if (uri.scheme == URI_SCHEME_ZIP) {
return when {
uri.isZipUri() -> if (uri.scheme == URI_SCHEME_ZIP) {
uri
} else { // legacy uri
uri.buildUpon().scheme(URI_SCHEME_ZIP).build()
}
} else {
val request = createPageRequest(page, pageUrl)
imageProxyInterceptor.interceptPageRequest(request, okHttp).ensureSuccess().use { response ->
val body = checkNotNull(response.body) { "Null response body" }
body.withProgress(progress).use {
cache.put(pageUrl, it.source())
}
}.toUri()
uri.isFileUri() -> uri
else -> {
val request = createPageRequest(page, pageUrl)
imageProxyInterceptor.interceptPageRequest(request, okHttp).ensureSuccess().use { response ->
val body = checkNotNull(response.body) { "Null response body" }
body.withProgress(progress).use {
cache.put(pageUrl, it.source())
}
}.toUri()
}
}
}

@ -14,6 +14,7 @@ import android.view.MotionEvent
import android.view.View
import android.view.ViewGroup.MarginLayoutParams
import android.view.WindowManager
import androidx.activity.result.ActivityResultCallback
import androidx.activity.viewModels
import androidx.core.graphics.Insets
import androidx.core.view.OnApplyWindowInsetsListener
@ -74,6 +75,7 @@ class ReaderActivity :
ReaderControlDelegate.OnInteractionListener,
OnApplyWindowInsetsListener,
IdlingDetector.Callback,
ActivityResultCallback<Uri?>,
ZoomControl.ZoomControlListener {
@Inject
@ -83,6 +85,7 @@ class ReaderActivity :
lateinit var tapGridSettings: TapGridSettings
private val idlingDetector = IdlingDetector(TimeUnit.SECONDS.toMillis(10), this)
private val savePageRequest = registerForActivityResult(PageSaveContract(), this)
private val viewModel: ReaderViewModel by viewModels()
@ -158,6 +161,10 @@ class ReaderActivity :
viewBinding.toolbarBottom.addMenuProvider(ReaderBottomMenuProvider(this, readerManager, viewModel))
}
override fun onActivityResult(result: Uri?) {
viewModel.onActivityResult(result)
}
override fun getParentActivityIntent(): Intent? {
val manga = viewModel.manga?.toManga() ?: return null
return DetailsActivity.newIntent(this, manga)
@ -376,6 +383,11 @@ class ReaderActivity :
return reader.isResumed && supportFragmentManager.fragments.lastOrNull() === reader
}
override fun onSavePageClick() {
val page = viewModel.getCurrentPage() ?: return
viewModel.saveCurrentPage(page, savePageRequest)
}
private fun onReaderBarChanged(isBarEnabled: Boolean) {
viewBinding.infoBar.isVisible = isBarEnabled && viewBinding.appbarTop.isGone
}

@ -25,8 +25,7 @@ class ReaderManager(
private val modeMap = EnumMap<ReaderMode, Class<out BaseReaderFragment<*>>>(ReaderMode::class.java)
init {
val useDoublePages = container.resources.configuration.orientation == Configuration.ORIENTATION_LANDSCAPE
&& settings.isReaderDoubleOnLandscape
val useDoublePages = isLandscape() && settings.isReaderDoubleOnLandscape
invalidateTypesMap(useDoublePages)
}
@ -49,7 +48,7 @@ class ReaderManager(
fun setDoubleReaderMode(isEnabled: Boolean) {
val prevMode = currentMode
invalidateTypesMap(isEnabled)
invalidateTypesMap(isEnabled && isLandscape())
val newMode = currentMode ?: return
if (newMode != prevMode) {
replace(newMode)
@ -70,4 +69,6 @@ class ReaderManager(
modeMap[ReaderMode.WEBTOON] = WebtoonReaderFragment::class.java
modeMap[ReaderMode.VERTICAL] = VerticalReaderFragment::class.java
}
private fun isLandscape() = container.resources.configuration.orientation == Configuration.ORIENTATION_LANDSCAPE
}

@ -39,14 +39,12 @@ import javax.inject.Inject
@AndroidEntryPoint
class ReaderConfigSheet :
BaseAdaptiveSheet<SheetReaderConfigBinding>(),
ActivityResultCallback<Uri?>,
View.OnClickListener,
MaterialButtonToggleGroup.OnButtonCheckedListener,
Slider.OnChangeListener,
CompoundButton.OnCheckedChangeListener {
private val viewModel by activityViewModels<ReaderViewModel>()
private val savePageRequest = registerForActivityResult(PageSaveContract(), this)
@Inject
lateinit var orientationHelper: ScreenOrientationHelper
@ -115,8 +113,7 @@ class ReaderConfigSheet :
}
R.id.button_save_page -> {
val page = viewModel.getCurrentPage() ?: return
viewModel.saveCurrentPage(page, savePageRequest)
findCallback()?.onSavePageClick() ?: return
dismissAllowingStateLoss()
}
@ -181,11 +178,6 @@ class ReaderConfigSheet :
(viewBinding ?: return).labelTimerValue.text = getString(R.string.speed_value, value * 10f)
}
override fun onActivityResult(result: Uri?) {
viewModel.onActivityResult(result)
dismissAllowingStateLoss()
}
private fun observeScreenOrientation() {
orientationHelper.observeAutoOrientation()
.onEach {
@ -215,6 +207,8 @@ class ReaderConfigSheet :
fun onReaderModeChanged(mode: ReaderMode)
fun onDoubleModeChanged(isEnabled: Boolean)
fun onSavePageClick()
}
companion object {

@ -32,7 +32,8 @@ class TapGridDispatcher(
if (!isDispatching) {
return true
}
return listener.onGridTouch(getArea(event.rawX, event.rawY))
val area = getArea(event.rawX, event.rawY) ?: return false
return listener.onGridTouch(area)
}
override fun onDoubleTapEvent(e: MotionEvent): Boolean {
@ -42,11 +43,12 @@ class TapGridDispatcher(
override fun onLongPress(event: MotionEvent) {
if (isDispatching) {
listener.onGridLongTouch(getArea(event.rawX, event.rawY))
val area = getArea(event.rawX, event.rawY) ?: return
listener.onGridLongTouch(area)
}
}
private fun getArea(x: Float, y: Float): TapGridArea {
private fun getArea(x: Float, y: Float): TapGridArea? {
val xIndex = (x * 2f / width).roundToInt()
val yIndex = (y * 2f / height).roundToInt()
val area = when (xIndex) {
@ -73,7 +75,8 @@ class TapGridDispatcher(
else -> null
}
return checkNotNull(area) { "Invalid area ($xIndex, $yIndex)" }
assert(area != null) { "Invalid area ($xIndex, $yIndex)" }
return area
}
interface OnGridTouchListener {

@ -1,6 +1,8 @@
package org.koitharu.kotatsu.reader.ui.thumbnails
import android.content.Context
import android.webkit.MimeTypeMap
import androidx.core.net.toFile
import androidx.core.net.toUri
import coil.ImageLoader
import coil.decode.DataSource
@ -20,6 +22,7 @@ import org.koitharu.kotatsu.core.network.ImageProxyInterceptor
import org.koitharu.kotatsu.core.network.MangaHttpClient
import org.koitharu.kotatsu.core.parser.MangaRepository
import org.koitharu.kotatsu.local.data.PagesCache
import org.koitharu.kotatsu.local.data.isFileUri
import org.koitharu.kotatsu.local.data.isZipUri
import org.koitharu.kotatsu.local.data.util.withExtraCloseable
import org.koitharu.kotatsu.parsers.model.MangaPage
@ -56,8 +59,8 @@ class MangaPageFetcher(
private suspend fun loadPage(pageUrl: String): SourceResult {
val uri = pageUrl.toUri()
return if (uri.isZipUri()) {
runInterruptible(Dispatchers.IO) {
return when {
uri.isZipUri() -> runInterruptible(Dispatchers.IO) {
val zip = ZipFile(uri.schemeSpecificPart)
val entry = zip.getEntry(uri.fragment)
SourceResult(
@ -66,32 +69,48 @@ class MangaPageFetcher(
context = context,
metadata = MangaPageMetadata(page),
),
mimeType = null,
mimeType = MimeTypeMap.getSingleton()
.getMimeTypeFromExtension(entry.name.substringAfterLast('.', "")),
dataSource = DataSource.DISK,
)
}
} else {
val request = PageLoader.createPageRequest(page, pageUrl)
imageProxyInterceptor.interceptPageRequest(request, okHttpClient).use { response ->
check(response.isSuccessful) {
"Invalid response: ${response.code} ${response.message} at $pageUrl"
}
val body = checkNotNull(response.body) {
"Null response"
}
val mimeType = response.mimeType
val file = body.use {
pagesCache.put(pageUrl, it.source())
}
uri.isFileUri() -> runInterruptible(Dispatchers.IO) {
val file = uri.toFile()
SourceResult(
source = ImageSource(
file = file.toOkioPath(),
source = file.source().buffer(),
context = context,
metadata = MangaPageMetadata(page),
),
mimeType = mimeType,
dataSource = DataSource.NETWORK,
mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension(file.extension),
dataSource = DataSource.DISK,
)
}
else -> {
val request = PageLoader.createPageRequest(page, pageUrl)
imageProxyInterceptor.interceptPageRequest(request, okHttpClient).use { response ->
check(response.isSuccessful) {
"Invalid response: ${response.code} ${response.message} at $pageUrl"
}
val body = checkNotNull(response.body) {
"Null response"
}
val mimeType = response.mimeType
val file = body.use {
pagesCache.put(pageUrl, it.source())
}
SourceResult(
source = ImageSource(
file = file.toOkioPath(),
metadata = MangaPageMetadata(page),
),
mimeType = mimeType,
dataSource = DataSource.NETWORK,
)
}
}
}
}

@ -54,7 +54,7 @@ class AppearanceSettingsFragment :
}
summaryProvider = Preference.SummaryProvider<ActivityListPreference> {
val locale = AppCompatDelegate.getApplicationLocales().get(0)
locale?.getDisplayName(locale)?.toTitleCase(locale) ?: getString(R.string.automatic)
locale?.getDisplayName(locale)?.toTitleCase(locale) ?: getString(R.string.follow_system)
}
setDefaultValueCompat("")
}
@ -105,7 +105,7 @@ class AppearanceSettingsFragment :
.sortedWithSafe(LocaleComparator())
preference.entries = Array(locales.size + 1) { i ->
if (i == 0) {
getString(R.string.automatic)
getString(R.string.follow_system)
} else {
val lc = locales[i - 1]
lc.getDisplayName(lc).toTitleCase(lc)

@ -7,6 +7,7 @@ import android.os.Bundle
import android.view.View
import androidx.activity.result.contract.ActivityResultContracts
import androidx.documentfile.provider.DocumentFile
import androidx.preference.ListPreference
import androidx.preference.Preference
import com.google.android.material.snackbar.Snackbar
import dagger.hilt.android.AndroidEntryPoint
@ -15,13 +16,17 @@ import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import org.koitharu.kotatsu.R
import org.koitharu.kotatsu.core.prefs.AppSettings
import org.koitharu.kotatsu.core.prefs.DownloadFormat
import org.koitharu.kotatsu.core.prefs.ReaderAnimation
import org.koitharu.kotatsu.core.ui.BasePreferenceFragment
import org.koitharu.kotatsu.core.util.ext.printStackTraceDebug
import org.koitharu.kotatsu.core.util.ext.resolveFile
import org.koitharu.kotatsu.core.util.ext.setDefaultValueCompat
import org.koitharu.kotatsu.core.util.ext.tryLaunch
import org.koitharu.kotatsu.core.util.ext.viewLifecycleScope
import org.koitharu.kotatsu.download.ui.worker.DownloadWorker
import org.koitharu.kotatsu.local.data.LocalStorageManager
import org.koitharu.kotatsu.parsers.util.names
import org.koitharu.kotatsu.settings.storage.MangaDirectorySelectDialog
import org.koitharu.kotatsu.settings.storage.directories.MangaDirectoriesActivity
import org.koitharu.kotatsu.settings.utils.DozeHelper
@ -46,6 +51,10 @@ class DownloadsSettingsFragment :
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
addPreferencesFromResource(R.xml.pref_downloads)
findPreference<ListPreference>(AppSettings.KEY_DOWNLOADS_FORMAT)?.run {
entryValues = DownloadFormat.entries.names()
setDefaultValueCompat(DownloadFormat.AUTOMATIC.name)
}
dozeHelper.updatePreference()
}

@ -27,6 +27,8 @@ import org.koitharu.kotatsu.scrobbling.mal.data.MALRepository
import org.koitharu.kotatsu.scrobbling.shikimori.data.ShikimoriRepository
import org.koitharu.kotatsu.sync.domain.SyncController
import org.koitharu.kotatsu.sync.ui.SyncSettingsIntent
import org.koitharu.kotatsu.core.util.ext.printStackTraceDebug
import org.koitharu.kotatsu.scrobbling.kitsu.ui.KitsuAuthActivity
import javax.inject.Inject
@AndroidEntryPoint
@ -112,7 +114,7 @@ class ServicesSettingsFragment : BasePreferenceFragment(R.string.services),
AppSettings.KEY_KITSU -> {
if (!kitsuRepository.isAuthorized) {
launchScrobblerAuth(kitsuRepository)
startActivity(Intent(preference.context, KitsuAuthActivity::class.java))
} else {
startActivity(ScrobblerConfigActivity.newIntent(preference.context, ScrobblerService.KITSU))
}

@ -22,7 +22,6 @@ import org.koitharu.kotatsu.core.parser.MangaRepository
import org.koitharu.kotatsu.core.parser.RemoteMangaRepository
import org.koitharu.kotatsu.core.ui.BaseActivity
import org.koitharu.kotatsu.core.util.TaggedActivityResult
import org.koitharu.kotatsu.core.util.ext.catchingWebViewUnavailability
import org.koitharu.kotatsu.core.util.ext.getSerializableExtraCompat
import org.koitharu.kotatsu.databinding.ActivityBrowserBinding
import org.koitharu.kotatsu.parsers.MangaParserAuthProvider
@ -43,7 +42,7 @@ class SourceAuthActivity : BaseActivity<ActivityBrowserBinding>(), BrowserCallba
@SuppressLint("SetJavaScriptEnabled")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
if (!catchingWebViewUnavailability { setContentView(ActivityBrowserBinding.inflate(layoutInflater)) }) {
if (!setContentViewWebViewSafe { ActivityBrowserBinding.inflate(layoutInflater) }) {
return
}
val source = intent?.getSerializableExtraCompat<MangaSource>(EXTRA_SOURCE)

@ -14,6 +14,7 @@ import com.google.android.material.color.MaterialColors
import kotlinx.coroutines.flow.FlowCollector
import org.koitharu.kotatsu.R
import org.koitharu.kotatsu.core.ui.widgets.SegmentedBarView
import org.koitharu.kotatsu.core.util.Colors
import org.koitharu.kotatsu.core.util.FileSize
import org.koitharu.kotatsu.core.util.ext.getThemeColor
import org.koitharu.kotatsu.databinding.PreferenceMemoryUsageBinding
@ -38,15 +39,15 @@ class StorageUsagePreference @JvmOverloads constructor(
val binding = PreferenceMemoryUsageBinding.bind(holder.itemView)
val storageSegment = SegmentedBarView.Segment(
usage?.savedManga?.percent ?: 0f,
segmentColor(materialR.attr.colorPrimary),
Colors.segmentColor(context, materialR.attr.colorPrimary),
)
val pagesSegment = SegmentedBarView.Segment(
usage?.pagesCache?.percent ?: 0f,
segmentColor(materialR.attr.colorSecondary),
Colors.segmentColor(context, materialR.attr.colorSecondary),
)
val otherSegment = SegmentedBarView.Segment(
usage?.otherCache?.percent ?: 0f,
segmentColor(materialR.attr.colorTertiary),
Colors.segmentColor(context, materialR.attr.colorTertiary),
)
with(binding) {
@ -81,27 +82,4 @@ class StorageUsagePreference @JvmOverloads constructor(
context.getString(emptyResId)
}
}
private fun getHue(hex: String): Float {
val r = (hex.substring(0, 2).toInt(16)).toFloat()
val g = (hex.substring(2, 4).toInt(16)).toFloat()
val b = (hex.substring(4, 6).toInt(16)).toFloat()
var hue = 0F
if ((r >= g) && (g >= b)) {
hue = 60 * (g - b) / (r - b)
} else if ((g > r) && (r >= b)) {
hue = 60 * (2 - (r - b) / (g - b))
}
return hue
}
@ColorInt
private fun segmentColor(@AttrRes resId: Int): Int {
val colorHex = String.format("%06x", context.getThemeColor(resId))
val hue = getHue(colorHex)
val color = ColorUtils.HSLToColor(floatArrayOf(hue, 0.5f, 0.5f))
val backgroundColor = context.getThemeColor(materialR.attr.colorSurfaceContainerHigh)
return MaterialColors.harmonize(color, backgroundColor)
}
}

@ -293,6 +293,7 @@ class TrackWorker @AssistedInject constructor(
setCategory(NotificationCompat.CATEGORY_SERVICE)
setDefaults(0)
setOngoing(false)
setOnlyAlertOnce(true)
setSilent(true)
setContentIntent(
PendingIntentCompat.getActivity(

@ -58,6 +58,7 @@
android:autofillHints="emailAddress"
android:imeOptions="actionDone"
android:inputType="textEmailAddress"
android:maxLength="512"
android:singleLine="true"
android:textSize="16sp"
tools:hint="Email" />
@ -84,7 +85,7 @@
android:autofillHints="password"
android:imeOptions="actionDone"
android:inputType="textPassword"
android:maxLength="24"
android:maxLength="512"
android:singleLine="true"
android:textSize="16sp"
tools:hint="Password" />

@ -0,0 +1,54 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="?dialogPreferredPadding">
<TextView
android:id="@+id/textView_path_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
android:text="@string/location"
android:textAppearance="?textAppearanceLabelMedium" />
<TextView
android:id="@+id/textView_path"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:textAppearance="?textAppearanceBodyMedium"
tools:text="/storage/emulated/0/Manga/lorem.cbz" />
<org.koitharu.kotatsu.core.ui.widgets.SegmentedBarView
android:id="@+id/barView"
android:layout_width="match_parent"
android:layout_height="18dp"
android:layout_marginTop="12dp"
android:background="?colorSecondaryContainer" />
<TextView
android:id="@+id/label_used"
style="@style/Widget.Kotatsu.TextView.Indicator"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin_normal"
android:text="@string/this_manga"
app:drawableStartCompat="@drawable/bg_rounded_square"
tools:drawableTint="?colorPrimary" />
<TextView
android:id="@+id/label_available"
style="@style/Widget.Kotatsu.TextView.Indicator"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin_small"
android:text="@string/available"
app:drawableStartCompat="@drawable/bg_rounded_square"
app:drawableTint="?colorSecondaryContainer" />
</LinearLayout>

@ -3,7 +3,7 @@
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/scrollView"
android:layout_width="wrap_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clipToPadding="false"
android:paddingHorizontal="12dp"
@ -13,6 +13,8 @@
android:id="@+id/chips_tags"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clipChildren="false"
android:clipToPadding="false"
android:paddingVertical="@dimen/margin_small"
app:chipStyle="@style/Widget.Kotatsu.Chip.Filter"
app:selectionRequired="false"

@ -61,7 +61,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:barrierDirection="bottom"
app:constraint_referenced_ids="imageView_cover,textView_status,imageView_expand" />
app:constraint_referenced_ids="imageView_cover,textView_status,imageView_expand,textView_details" />
<com.google.android.material.progressindicator.LinearProgressIndicator
android:id="@+id/progressBar"
@ -141,7 +141,7 @@
app:layout_constraintEnd_toStartOf="@id/textView_percent"
app:layout_constraintStart_toEndOf="@id/imageView_cover"
app:layout_constraintTop_toBottomOf="@id/textView_status"
tools:text="@tools:sample/lorem[3]" />
tools:text="@tools:sample/lorem[10]" />
<Button
android:id="@+id/button_pause"

@ -66,6 +66,7 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/custom_selectable_item_background"
android:visibility="gone"
app:drawableTopCompat="@drawable/ic_storage"
tools:text="1.8 GiB"

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
<string name="detailed_list">تفاصيل القائمة</string>
<string name="detailed_list">قائمة مفصلة</string>
<string name="error_occurred">حدث خطأ</string>
<string name="details">التفاصيل</string>
<string name="grid">شبكة</string>
@ -11,8 +11,8 @@
<string name="favourites">المفضلة</string>
<string name="network_error">‌خطاء في الشبكة</string>
<string name="loading_">جار التحميل…</string>
<string name="chapter_d_of_d">فصل %1$d في %2$d</string>
<string name="close">غلق</string>
<string name="chapter_d_of_d">فصل %1$d من %2$d</string>
<string name="close">إغلاق</string>
<string name="try_again">حاول مجدداً</string>
<string name="computing_">جاري الحوسبة …</string>
<string name="local_storage">التخزين المحلي</string>
@ -28,16 +28,16 @@
<string name="newest">الأحدث</string>
<string name="by_rating">تقييم</string>
<string name="pages">صفحات</string>
<string name="read">اقرأ</string>
<string name="read">إقرأ</string>
<string name="share">شارك</string>
<string name="nothing_found">لم يتم عثور على اي شيء</string>
<string name="nothing_found">لا شيء موجود</string>
<string name="you_have_not_favourites_yet">لا مفضلة بعد</string>
<string name="search">بحث</string>
<string name="search_manga">البحث في المانجا</string>
<string name="manga_downloading_">جاري التنزيل…</string>
<string name="create_shortcut">انشاء اختصار…</string>
<string name="theme">مظهر</string>
<string name="automatic">حسب النظام</string>
<string name="follow_system">حسب النظام</string>
<string name="share_s">شارك %s</string>
<string name="processing_">في طور معالجة…</string>
<string name="updated">محدث</string>
@ -48,7 +48,7 @@
<string name="clear">مسح</string>
<string name="remove">ازالة</string>
<string name="popular">شائع</string>
<string name="add_new_category">أضف فئة جديدة</string>
<string name="add_new_category">فئة جديدة</string>
<string name="download_complete">تم التنزيل</string>
<string name="text_clear_history_prompt">هل تريد محو سجل القراءة بالكامل بشكل دائم؟</string>
<string name="save_page">احفظ الصفحة</string>
@ -211,7 +211,7 @@
<string name="detect_reader_mode_summary">اكتشف تلقائيًا ما إذا كانت المانجا عبارة عن webtoon</string>
<string name="appwidget_recent_description">المانجا التي قرأتها مؤخرًا</string>
<string name="appearance">مظهر</string>
<string name="bookmark_remove">حذف من المحفظة</string>
<string name="bookmark_remove">حذف الإشارة المرجعية</string>
<string name="disable_battery_optimization_summary">يساعد في فحص التحديثات في الخلفية</string>
<string name="auth_not_supported_by">تسجيل الدخول على %s غير مدعوم</string>
<string name="status_on_hold">معلقَّة</string>
@ -228,7 +228,7 @@
<string name="sync_title">مزامنة بياناتك</string>
<string name="appwidget_shelf_description">مانغا من المفضلة لديك</string>
<string name="send">إرسال</string>
<string name="bookmark_add">اضافة للمحفظة</string>
<string name="bookmark_add">اضافة إشارة مرجعية</string>
<string name="screenshots_block_all">احظر دائما</string>
<string name="new_sources_text">تتوفر مصادر مانغا جديدة</string>
<string name="zoom_mode_fit_height">مناسب للارتفاع</string>
@ -338,4 +338,12 @@
<string name="folder_with_images_import_description">يمكنك اختيار مكان في الذاكرة يحتوي على أرشيفات أو صور. سيتم التعرف على كل أرشيف (أو مجلد فرعي) على أنه فصل.</string>
<string name="speed">السرعة</string>
<string name="restore_backup_description">استيراد نسخة احتياطية تم إنشاؤها لبيانات المستخدم.</string>
<string name="feed">الموجز</string>
<string name="light_indicator">مؤشر إل إي دي</string>
<string name="comics_archive">أرشيف القصص المصورة</string>
<string name="importing_manga">استيراد المانجا</string>
<string name="import_completed">تم الإستيراد</string>
<string name="import_completed_hint">يمكنك حذف الملف الأصلي من التخزين لتوفير مساحة</string>
<string name="import_will_start_soon">الإستيراد سيبدأ عن قريب</string>
<string name="history_shortcuts">إظهار اختصارات المانجا الحديثة</string>
</resources>

@ -45,7 +45,7 @@
<string name="theme">Тэма</string>
<string name="light">Светлая</string>
<string name="dark">Цёмная</string>
<string name="automatic">Як у сістэме</string>
<string name="follow_system">Як у сістэме</string>
<string name="pages">Старонкi</string>
<string name="clear">Ачысціць</string>
<string name="text_clear_history_prompt">Вы ўпэўненыя, што жадаеце ачысціць гісторыю\?</string>
@ -201,7 +201,7 @@
<string name="screenshots_block_all">Заўсёды блакуйце</string>
<string name="screenshots_block_nsfw">Забараніць для NSFW</string>
<string name="filter_load_error">Немагчыма загрузіць спіс жанраў</string>
<string name="disabled">Адключаны</string>
<string name="disabled">Адкл.</string>
<string name="enabled">Ўключаны</string>
<string name="exclude_nsfw_from_suggestions">Ня прапаноўваць NSFW мангу</string>
<string name="text_suggestion_holder">Пачніце чытаць мангу, і вы атрымаеце персаналізаваныя прапановы</string>
@ -313,7 +313,7 @@
<string name="manga_error_description_pattern">Дэталі памылкі:&lt;br&gt;&lt;tt&gt;%1$s&lt;/tt&gt;&lt;br&gt;&lt;br&gt;1. Паспрабуйце &lt;a href=%2$s&gt;адкрыць мангу ў вэб-браўзеры&lt;/a&gt;, каб пераканацца, што яна даступная ў крыніцы&lt;br&gt;2. Упэўніцеся, што вы выкарыстоўваеце &lt;a href=kotatsu://about&gt;апошнюю версію Kotatsu&lt;/a&gt;&lt;br&gt;3. Калі ён даступны, адпраўце распрацоўнікам справаздачу аб памылцы.</string>
<string name="history_shortcuts">Паказаць апошнія ярлыкі мангі</string>
<string name="history_shortcuts_summary">Зрабіце нядаўнюю мангу даступнай, доўга націскаючы на значок праграмы</string>
<string name="reader_control_ltr_summary">Навігацыя \"Далей\" заўсёды прыводзіць да наступнай старонцы пры выкарыстанні мышы і клавіятуры.</string>
<string name="reader_control_ltr_summary">Націск на правы край або націск правай клавішы заўсёды перамыкае на наступную старонку.</string>
<string name="reader_control_ltr">Эрганамічны упраўленне чытаннем</string>
<string name="color_correction">Карэкцыя колеру</string>
<string name="brightness">Яркасць</string>
@ -469,7 +469,7 @@
<string name="disable_nsfw">Адключыць NSFW</string>
<string name="too_many_requests_message">Занадта шмат запытаў. Паўтарыце спробу пазней</string>
<string name="related_manga_summary">Паказаць спіс звязанай мангі. У некаторых выпадках ён можа быць недакладным або адсутнічаць</string>
<string name="advanced">Пашыраныя</string>
<string name="advanced">Прасунутая</string>
<string name="default_section">Раздзел па змаўчанні</string>
<string name="manga_list">Спіс мангі</string>
<string name="error_corrupted_file">Вяртаюцца няправільныя дадзеныя ці файл пашкоджаны</string>
@ -588,4 +588,10 @@
<string name="check_for_new_chapters_disabled">Праверка новых раздзелаў адключана</string>
<string name="reading_time_estimation">Паказаць прыблізны час чытання</string>
<string name="reading_time_estimation_summary">Значэнне ацэнкі часу можа быць недакладным</string>
<string name="show_labels_in_navbar">Паказаць меткі на панэлі навігацыі</string>
<string name="ask_for_dest_dir_every_time">Кожны раз запытваць каталог прызначэння</string>
<string name="default_page_save_dir">Каталог захавання старонкі па змаўчанні</string>
<string name="remove_from_history">Выдаліць з гісторыі</string>
<string name="pages_saving">Захаванне старонак</string>
<string name="location">Размяшчэнне</string>
</resources>

@ -64,7 +64,7 @@
<string name="theme">থিম</string>
<string name="light">আলো</string>
<string name="dark">আঁধার</string>
<string name="automatic">সিস্টেম অনুযায়ী</string>
<string name="follow_system">সিস্টেম অনুযায়ী</string>
<string name="pages">পৃষ্ঠাগুলি</string>
<string name="webtoon">ওয়েবটুন</string>
<string name="read_mode">পড়ার মোড</string>

@ -33,7 +33,7 @@
<string name="theme">Téma</string>
<string name="light">Světlé</string>
<string name="dark">Tmavé</string>
<string name="automatic">Následovat systém</string>
<string name="follow_system">Následovat systém</string>
<string name="remove">Odstranit</string>
<string name="_s_deleted_from_local_storage">\"%s\" smazáno z místního uložiště</string>
<string name="share_image">Sdílet obrázek</string>

@ -4,7 +4,7 @@
<string name="text_clear_history_prompt">Gesamten Leseverlauf unwiderruflich löschen\?</string>
<string name="theme">Design</string>
<string name="pages">Seiten</string>
<string name="automatic">Wie System</string>
<string name="follow_system">Wie System</string>
<string name="dark">Dunkel</string>
<string name="light">Hell</string>
<string name="filter">Filter</string>

@ -31,7 +31,7 @@
<string name="by_rating">Βαθμολογία</string>
<string name="filter">Φίλτρο</string>
<string name="dark">Σκοτεινό</string>
<string name="automatic">Όπως στο σύστημα</string>
<string name="follow_system">Όπως στο σύστημα</string>
<string name="clear">Εκκαθάριση</string>
<string name="text_clear_history_prompt">Να διαγράψετε μόνιμα όλο το ιστορικό ανάγνωσης;</string>
<string name="remove">Διαγραφή</string>

@ -45,7 +45,7 @@
<string name="theme">Tema</string>
<string name="light">Claro</string>
<string name="dark">Oscuro</string>
<string name="automatic">De acuerdo al sistema</string>
<string name="follow_system">De acuerdo al sistema</string>
<string name="pages">Páginas</string>
<string name="clear">Limpiar</string>
<string name="text_clear_history_prompt">Borrar todo el historial de lectura de forma permanente\?</string>
@ -328,7 +328,7 @@
<string name="color_correction_hint">Los ajustes de color elegidos serán recordados para este manga</string>
<string name="feed">Fuente</string>
<string name="history_shortcuts">Mostrar los accesos directos a los mangas recientes</string>
<string name="reader_control_ltr_summary">Tocando el borde derecho o pulsando la tecla derecha se pasa siempre a la página siguiente</string>
<string name="reader_control_ltr_summary">Tocando en el borde derecho, o pulsando la tecla derecha, se pasa siempre a la página siguiente.</string>
<string name="reader_control_ltr">Control ergonómico del lector</string>
<string name="color_correction">Corrección del color</string>
<string name="brightness">Brillo</string>
@ -588,4 +588,10 @@
<string name="reading_time_estimation_summary">El valor estimado puede ser inexacto</string>
<string name="check_for_new_chapters_disabled">La búsqueda de nuevos capítulos está desactivada</string>
<string name="suggestions_unavailable_text">Sugerencias desactivadas</string>
<string name="show_labels_in_navbar">Mostrar etiquetas en la barra de navegación</string>
<string name="ask_for_dest_dir_every_time">Preguntar siempre por el directorio de destino</string>
<string name="remove_from_history">Eliminar del historial</string>
<string name="pages_saving">Guardar páginas</string>
<string name="default_page_save_dir">Directorio predeterminado para guardar páginas</string>
<string name="location">Ubicación</string>
</resources>

@ -168,7 +168,7 @@
<string name="scale_mode">skaala mood</string>
<string name="advanced">Täiustatud</string>
<string name="only_using_wifi">Ainult Wi-Fi-l</string>
<string name="automatic">Jälgne süsteemile</string>
<string name="follow_system">Jälgne süsteemile</string>
<string name="sync_settings">Sünkroniseeri seadeid</string>
<string name="black_dark_theme">Must</string>
<string name="text_history_holder_primary">Mis sa loed näidatakse siin</string>

@ -14,7 +14,7 @@
<string name="internal_storage">حافظه ی درونی</string>
<string name="right_to_left">راست به چپ</string>
<string name="reader_mode_hint">پیکربندی انتخاب شده برای این مانگا بخاطر خواهد ماند</string>
<string name="automatic">تم سیستم</string>
<string name="follow_system">تم سیستم</string>
<string name="pages">صفحات</string>
<string name="clear">پاکسازی</string>
<string name="domain">دامنه</string>

@ -137,7 +137,7 @@
<string name="text_clear_history_prompt">Haluatko todella tyhjentää koko lukuhistoriasi\?</string>
<string name="clear">Tyhjennä</string>
<string name="pages">Sivut</string>
<string name="automatic">Automaattinen</string>
<string name="follow_system">Automaattinen</string>
<string name="dark">Tumma</string>
<string name="light">Vaalea</string>
<string name="theme">Teema</string>

@ -1,27 +1,39 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<plurals name="items">
<item quantity="one">%1$d aytem</item>
<item quantity="other">%1$d (na) aytem</item>
</plurals>
<plurals name="minutes_ago">
<item quantity="one">%1$d minutong nakakalipas</item>
<item quantity="other">%1$d (na) minutong nakakalipas</item>
</plurals>
<plurals name="new_chapters">
<item quantity="one">%1$d bagong kabanata</item>
<item quantity="other">%1$d mga bagong kabanata</item>
</plurals>
<plurals name="chapters">
<item quantity="one">"%1$d kabanata"</item>
<item quantity="other">%1$d (na) kabanata</item>
</plurals>
<plurals name="hours_ago">
<item quantity="one">%1$d oras ang nakalipas</item>
<item quantity="other">%1$d (na) oras ang nakalipas</item>
</plurals>
<plurals name="days_ago">
<item quantity="one">%1$d araw ang nakalipas</item>
<item quantity="other">%1$d (na) araw ang nakalipas</item>
</plurals>
<plurals name="items">
<item quantity="one">%1$d aytem</item>
<item quantity="other">%1$d (na) aytem</item>
</plurals>
<plurals name="minutes_ago">
<item quantity="one">%1$d minutong nakakalipas</item>
<item quantity="other">%1$d (na) minutong nakakalipas</item>
</plurals>
<plurals name="new_chapters">
<item quantity="one">%1$d bagong kabanata</item>
<item quantity="other">%1$d mga bagong kabanata</item>
</plurals>
<plurals name="chapters">
<item quantity="one">"%1$d kabanata"</item>
<item quantity="other">%1$d (na) kabanata</item>
</plurals>
<plurals name="hours_ago">
<item quantity="one">%1$d oras ang nakalipas</item>
<item quantity="other">%1$d (na) oras ang nakalipas</item>
</plurals>
<plurals name="days_ago">
<item quantity="one">%1$d araw ang nakalipas</item>
<item quantity="other">%1$d (na) araw ang nakalipas</item>
</plurals>
<plurals name="months_ago">
<item quantity="one">%1$d buwan nakakalipas</item>
<item quantity="other">%1$d (na) buwan nakakalipas</item>
</plurals>
<plurals name="hours">
<item quantity="one">%1$d oras</item>
<item quantity="other">%1$d (na) oras</item>
</plurals>
<plurals name="minutes">
<item quantity="one">%1$d minuto</item>
<item quantity="other">%1$d (na) minuto</item>
</plurals>
</resources>

@ -7,7 +7,7 @@
<string name="filter">Pansala</string>
<string name="theme">Tema</string>
<string name="dark">Madilim</string>
<string name="automatic">Sundan ang sistema</string>
<string name="follow_system">Sundan ang sistema</string>
<string name="error_occurred">May nangyaring error</string>
<string name="network_error">Error sa network</string>
<string name="details">Mga detalye</string>
@ -346,7 +346,7 @@
<string name="allow_unstable_updates_summary">Makakuha ng paunawa tungkol sa mga unstable build</string>
<string name="network_unavailable">Hindi magagamit ang network</string>
<string name="network_unavailable_hint">I-on ang Wi-Fi o mobile network para magbasa ng manga online</string>
<string name="reader_control_ltr_summary">Mag-tap sa kanang gilid o ang pagpindot sa kanang key ay palaging lilipat sa susunod na pahina</string>
<string name="reader_control_ltr_summary">Ang susunod na pag-navigate ay palaging magdadala sa iyo sa susunod na pahina kapag gumagamit ng mouse at keyboard.</string>
<string name="reader_slider">Ipakita ang slider ng paglipat ng pahina</string>
<string name="manga_error_description_pattern">Mga detalye ng error:&lt;br&gt;&lt;tt&gt;%1$s&lt;/tt&gt;&lt;br&gt;&lt;br&gt;1. Subukang &lt;a href=%2$s&gt;magbukas ng manga sa isang web browser&lt;/a&gt; upang matiyak na available ito sa souce&lt;br&gt;2. Tiyaking ginagamit mo ang &lt;a href=kotatsu://about&gt;pinakabagong bersyon ng Kotatsu&lt;/a&gt;&lt;br&gt;3. Kung available ito, magpadala ng ulat ng error sa mga developer.</string>
<string name="enable_logging">Paganahin ang pag-log</string>
@ -377,7 +377,7 @@
<string name="show_on_shelf">Ipakita sa Istante</string>
<string name="speed">Bilis</string>
<string name="comics_archive_import_description">Maaari kang pumili ng isa o higit pang .cbz o .zip file, ang bawat file ay makikilala bilang isang hiwalay na manga.</string>
<string name="folder_with_images_import_description">Maaari kang pumili ng isang directory na may mga archive o mga larawan. Ang bawat archive (o subdirectory) ay makikilala bilang isang kabanata.</string>
<string name="folder_with_images_import_description">Maaari kang pumili ng isang direktoryo na may mga archive o mga larawan. Ang bawat archive (o subdirectory) ay makikilala bilang isang kabanata.</string>
<string name="find_similar">Maghanap ng katulad</string>
<string name="sync_auth_hint">Maaari kang mag-sign in sa isang umiiral na account o lumikha ng bago</string>
<string name="translations">Mga pagsasalin</string>
@ -438,7 +438,7 @@
<string name="download_option_manual_selection">Manu-manong pumili ng mga kabanata</string>
<string name="invert_colors">Baliktarin ang mga kulay</string>
<string name="custom_directory">Custom na direktoryo</string>
<string name="pick_custom_directory">Pumili ng Custom na direktoryo</string>
<string name="pick_custom_directory">Pumili ng custom na direktoryo</string>
<string name="no_access_to_file">Wala kang access sa file o direktoryo na ito</string>
<string name="local_manga_directories">Mga lokal na direktoryo ng manga</string>
<string name="password">Password</string>
@ -478,7 +478,7 @@
<string name="on_device">Sa device</string>
<string name="moved_to_top">Nailipat sa itaas</string>
<string name="items_limit_exceeded">Wala nang mga aytem na pwedeng idagdag</string>
<string name="directories">Mga Directory</string>
<string name="directories">Mga direktoryo</string>
<string name="reader_zoom_buttons">Ipakita ang mga button ng pag-zoom</string>
<string name="main_screen_sections">Mga pangunahing seksyon ng screen</string>
<string name="zoom_out">Mag-zoom palabas</string>
@ -502,7 +502,7 @@
<string name="periodic_backups">Mga periodic na pag-backup</string>
<string name="frequency_twice_per_month">Dalawang beses bawat buwan</string>
<string name="frequency_once_per_month">Isang beses bawat buwan</string>
<string name="backups_output_directory">Output directory ng mga backup</string>
<string name="backups_output_directory">Output na direktoryo sa mga backup</string>
<string name="last_successful_backup">Huling matagumpay na pag-backup: %s</string>
<string name="speed_value">x%.1f</string>
<string name="sources_catalog">Katalugo ng mga source</string>
@ -557,4 +557,41 @@
\n
\nBabala: mawawala ang kasalukuyang progress sa pagbabasa.</string>
<string name="category_hidden_done">Nakatago ang kategoryang ito mula sa pangunahing screen at naa-access sa pamamagitan ng Menu → Ayusin ang mga kategorya</string>
<string name="remove_from_history">Alisin sa kasaysayan</string>
<string name="incognito_mode_hint">Hindi mase-save ang iyong progress sa pagbabasa</string>
<string name="last_read">Huling nabasa</string>
<string name="default_webtoon_zoom_out">Default zoom out sa webtoon</string>
<string name="show_labels_in_navbar">Ipakita ang mga label sa navigation bar</string>
<string name="pages_saving">Nagse-save ng mga pahina</string>
<string name="ask_for_dest_dir_every_time">Laging magtanong sa direktoryo ng patutunguhan</string>
<string name="default_page_save_dir">Default na direktoryo ng pag-save ng pahina</string>
<string name="email_password_enter_hint">Ilagay ang iyong email at password upang magpatuloy</string>
<string name="remaining_time_pattern">%1$s %2$s</string>
<string name="volume_">Volume %d</string>
<string name="volume_unknown">Hindi kilalang volume</string>
<string name="approximate_remaining_time">Tinatayang natitirang oras</string>
<string name="vertical">Patayo</string>
<string name="show_menu">Ipakita ang menu</string>
<string name="tap_action">Aksyon sa pag-tap</string>
<string name="long_tap_action">Aksyon sa matagal na pag-tap</string>
<string name="none">Wala</string>
<string name="config_reset_confirm">I-reset ang mga setting sa mga default na value? Ang gawaing ito ay hindi pwedeng bawiin.</string>
<string name="use_two_pages_landscape">Gumamit ng dalawang page na layout sa landscape na oryentasyon (beta)</string>
<string name="fullscreen_mode">Fullscreen mode</string>
<string name="reader_fullscreen_summary">Itago ang status ng system at mga navigation bar</string>
<string name="two_pages">Dalawang pahina</string>
<string name="toggle_ui">Ipakita/itago ang UI</string>
<string name="prev_chapter">Nakaraang kabanata</string>
<string name="next_chapter">Sunod na kabanata</string>
<string name="prev_page">Nakaraang pahina</string>
<string name="next_page">Susunod na pahina</string>
<string name="reader_actions">Mga aksyon sa reader</string>
<string name="reader_actions_summary">Ayusin ang mga pagkilos para sa mga nata-tap na lugar ng screen</string>
<string name="switch_pages_volume_buttons">Paganahin ang mga volume button</string>
<string name="switch_pages_volume_buttons_summary">Gumamit ng mga volume button para sa paglipat ng mga pahina</string>
<string name="suggestions_unavailable_text">Naka-disable ang feature na Mga suhestiyon</string>
<string name="check_for_new_chapters_disabled">Naka-disable ang pagsuri para sa mga bagong kabanata</string>
<string name="reading_time_estimation">Ipakita ang tinantyang oras ng pagbabasa</string>
<string name="reading_time_estimation_summary">Maaaring hindi tumpak ang halaga ng pagtatantya ng oras</string>
<string name="location">Lokasyon</string>
</resources>

@ -36,13 +36,13 @@
<item quantity="other">Il y a %1$d mois</item>
</plurals>
<plurals name="hours">
<item quantity="one">heure</item>
<item quantity="many">heures</item>
<item quantity="other">heures</item>
<item quantity="one">%1$d heure</item>
<item quantity="many">%1$d heures</item>
<item quantity="other">%1$d heures</item>
</plurals>
<plurals name="minutes">
<item quantity="one">minute</item>
<item quantity="many">minutes</item>
<item quantity="other">minutes</item>
<item quantity="one">%1$d minute</item>
<item quantity="many">%1$d minutes</item>
<item quantity="other">%1$d minutes</item>
</plurals>
</resources>

@ -66,7 +66,7 @@
<string name="size_s">Taille : %s</string>
<string name="new_version_s">Nouvelle version : %s</string>
<string name="search_results">Résultats de la recherche</string>
<string name="text_feed_holder">Les nouveaux chapitres de ce que vous lisez sont présentés ici</string>
<string name="text_feed_holder">Les nouveaux chapitres de ce que vous lisez sont affichés ici</string>
<string name="updates">Mises à jour</string>
<string name="read_later">Lire plus tard</string>
<string name="favourites_category_empty">Catégorie vide</string>
@ -134,7 +134,7 @@
<string name="text_clear_history_prompt">Effacer définitivement l\'historique de lecture \?</string>
<string name="clear">Effacer</string>
<string name="pages">Pages</string>
<string name="automatic">Suivre le système</string>
<string name="follow_system">Suivre le système</string>
<string name="dark">Sombre</string>
<string name="light">Clair</string>
<string name="theme">Thème</string>
@ -328,7 +328,7 @@
<string name="text_unsaved_changes_prompt">Sauvegarde ou abandon des modifications non sauvegardées \?</string>
<string name="discard">Abandonner</string>
<string name="history_shortcuts_summary">Rendre les mangas récents disponibles en appuyant longuement sur l\'icône de l\'application</string>
<string name="reader_control_ltr_summary">Taper sur le bord droit ou appuyer sur la touche droite permet toujours de passer à la page suivante</string>
<string name="reader_control_ltr_summary">Taper sur le bord droit ou appuyer sur la touche droite permet toujours de passer à la page suivante.</string>
<string name="reader_control_ltr">Contrôle ergonomique du lecteur</string>
<string name="history_shortcuts">Afficher les raccourcis des mangas récents</string>
<string name="color_correction">Correction des couleurs</string>
@ -424,7 +424,7 @@
<string name="authorization_optional">Autorisation (optionnel)</string>
<string name="invalid_port_number">Numéro de port invalide</string>
<string name="restore_summary">Restaurer la sauvegarde précédemment créée</string>
<string name="webtoon_zoom_summary">Autoriser le geste de zoom avant en mode webtoon</string>
<string name="webtoon_zoom_summary">Autoriser le geste de zoom en mode webtoon</string>
<string name="reader_info_bar_summary">Afficher l\'heure actuelle et la progression de la lecture en haut de l\'écran</string>
<string name="pages_animation_summary">Animation de tournage de page</string>
<string name="details_button_tip">Appuyez et maintenez le bouton Lire pour voir plus d\'options</string>
@ -543,8 +543,8 @@
<string name="this_manga">Ce manga</string>
<string name="apply">Appliqué</string>
<string name="genres_search_hint">Commence a écrit un nom de genre</string>
<string name="downloads_settings_info">Vous pouvez activer la vitesse de téléchargement réduite individuellement pour chaque source de manga dans les paramètres si vous rencontrez des problèmes de bloquage avec le serveur.</string>
<string name="backup_date_">Date de sauvegarde: %s</string>
<string name="downloads_settings_info">Vous pouvez réduire la vitesse de téléchargement individuellement pour chaque source de manga dans les paramètres si vous rencontrez des problèmes de blocage avec le serveur</string>
<string name="backup_date_">Date de sauvegarde: %s</string>
<string name="by_name_reverse">Nom inversé</string>
<string name="mark_as_completed">Marquer comme terminé</string>
<string name="mark_as_completed_prompt">Marquer le manga sélectionné comme terminé?
@ -570,12 +570,27 @@
<string name="switch_pages_volume_buttons">Activer les boutons de volume</string>
<string name="switch_pages_volume_buttons_summary">Utiliser les boutons de volume pour changer de page</string>
<string name="none">Aucun</string>
<string name="config_reset_confirm">Revenir aux paramètres par défaut?
\nCette action ne pourra pas être annulée.</string>
<string name="config_reset_confirm">Revenir aux paramètres par défaut? Cette action ne pourra pas être annulée.</string>
<string name="use_two_pages_landscape">Utiliser la disposition pages doubles en orientation paysage (bêta)</string>
<string name="fullscreen_mode">Mode plein écran</string>
<string name="category_hidden_done">Cette catégorie a été cachée du menu principal et est accessible via Menu → Gérer les catégories</string>
<string name="two_pages">Pages doubles</string>
<string name="reading_time_estimation">Afficher le temps de lecture estimé</string>
<string name="reading_time_estimation_summary">Le temps estimé peut être inexact</string>
<string name="ask_for_dest_dir_every_time">Demander pour le répertoire de destination à chaque fois</string>
<string name="default_page_save_dir">Répertoire par défaut pour les pages sauvegardées</string>
<string name="remove_from_history">Retirer de l\'historique</string>
<string name="reader_actions">Actions du lecteur</string>
<string name="reader_fullscreen_summary">Cache la barre d\'état et les barres de navigations</string>
<string name="suggestions_unavailable_text">La fonctionnalité de suggestions est désactivée</string>
<string name="check_for_new_chapters_disabled">La vérification des nouveaux chapitres est désactivée</string>
<string name="rating_suggestive">Suggestif</string>
<string name="disable_battery_optimization_summary_downloads">Peut aider à démarrer le téléchargement si vous avez des problèmes avec</string>
<string name="remaining_time_pattern">%1$s %2$s</string>
<string name="reader_actions_summary">Configurer les actions pour les zones décran tactiles</string>
<string name="tap_action">Action de tapoter</string>
<string name="long_tap_action">Action d\'appuyez longuement</string>
<string name="show_labels_in_navbar">Afficher les étiquettes dans la barre de navigation</string>
<string name="pages_saving">Sauvegarder les pages</string>
<string name="default_webtoon_zoom_out">Zoom webtoon par défaut</string>
</resources>

@ -6,15 +6,15 @@
<string name="history_is_empty">अभी तक कोई इतिहास नहीं है</string>
<string name="read">पढ़ें</string>
<string name="add_to_favourites">इसे पसंद करें</string>
<string name="add">जोड़</string>
<string name="save">संचय करो</string>
<string name="add">जोड़ें</string>
<string name="save">हेजे</string>
<string name="newest">नवीनतम</string>
<string name="light">उजाला</string>
<string name="dark">अँधेरा</string>
<string name="close">बंद कर</string>
<string name="light">हल्की</string>
<string name="dark">गहरी</string>
<string name="close">बंद कर</string>
<string name="try_again">पुनः प्रयास करें</string>
<string name="you_have_not_favourites_yet">अभी तक कोई पसंदीदा नहीं है</string>
<string name="remove">निकालो</string>
<string name="remove">हटाएँ</string>
<string name="by_name">नाम</string>
<string name="popular">लोकप्रिय</string>
<string name="local_storage">स्थानीय स्टॉरेज</string>
@ -22,69 +22,69 @@
<string name="network_error">नेटवर्क समस्या</string>
<string name="favourites">पसंदीदा</string>
<string name="detailed_list">विस्तृत सूची</string>
<string name="settings">सेटिंग्स</string>
<string name="list_mode">सूची रुपी</string>
<string name="settings">सेटिंग्स</string>
<string name="list_mode">सूची मोड</string>
<string name="chapter_d_of_d">अध्याय %1$d, %2$d में से</string>
<string name="computing_">गणना हो रही है…</string>
<string name="add_new_category">नई श्रेणी</string>
<string name="clear_history">इतिहास मिटाए</string>
<string name="share">भेजो</string>
<string name="share">शेयर</string>
<string name="create_shortcut">शॉर्टकट बनाएं…</string>
<string name="share_s">%s भेजो</string>
<string name="search">खोज</string>
<string name="search_manga">ांगा खोजो</string>
<string name="share_s">%s साझा करें</string>
<string name="search">खोजें</string>
<string name="search_manga">ंगा खोजें</string>
<string name="manga_downloading_">डाउनलोड हो रहा है…</string>
<string name="downloads">डाउनलोड किए गए मांगा</string>
<string name="downloads">डाउनलोड्स</string>
<string name="by_rating">रेटिंग</string>
<string name="clear">साफ करें</string>
<string name="page_saved">पन्ना संचय हो गया</string>
<string name="share_image">चित्र को भेजें</string>
<string name="page_saved">सहेजा गया</string>
<string name="share_image">छवि साझा करें</string>
<string name="delete">मिटाएं</string>
<string name="clear_pages_cache">न्ने के कैछ को मिटाए</string>
<string name="clear_pages_cache">ेज कैश साफ़ करे</string>
<string name="text_file_sizes">B|kB|MB|GB|TB</string>
<string name="standard">सामान्य</string>
<string name="webtoon">वैबटून</string>
<string name="webtoon">Webtoon</string>
<string name="remote_sources">मांगा स्रोत</string>
<string name="download_complete">डाउनलोड हो गया</string>
<string name="processing_">प्रक्रिया चल रही है…</string>
<string name="history">इतिहास</string>
<string name="grid">ग्रिड</string>
<string name="loading_">लोड हो रहा है…</string>
<string name="text_file_not_supported">या तो झीप नहीं तो सीबीझेड फाईल को चुनें।</string>
<string name="text_file_not_supported">ZIP या CBZ मैं से एक फ़ाइल चुनें।</string>
<string name="updated">अपडेट हो गया</string>
<string name="_s_deleted_from_local_storage">\"%s\", स्थानीय स्टॉरेज में से मिट गईं</string>
<string name="_s_deleted_from_local_storage">\"%s\" को स्थानीय स्टोरेज से हटा दिया गया</string>
<string name="text_clear_history_prompt">पढ़ने का इतिहास सदा के लिए मिटाए\?</string>
<string name="save_page">न्ना संचय करो</string>
<string name="_import">आयात करें</string>
<string name="save_page">ेज सहेजें</string>
<string name="_import">आयात</string>
<string name="operation_not_supported">यह कार्य समर्थित नहीं है</string>
<string name="sort_order">छंटाई क्रम</string>
<string name="sort_order">क्रमबद्धता क्रम</string>
<string name="list">सूची</string>
<string name="filter">फिल्टर</string>
<string name="theme">थीम</string>
<string name="automatic">फोन जैसा</string>
<string name="follow_system">सिस्टम की पालन करें</string>
<string name="pages">पन्ने</string>
<string name="no_description">कोई विवरण नहीं है</string>
<string name="updates">अपडेट</string>
<string name="manga_shelf">शेल्फ</string>
<string name="text_history_holder_secondary">«अन्वेषण» विभाग में जो भी आपको पढ़ना है उसे खोजे</string>
<string name="all_favourites">र्वे प्रिय</string>
<string name="light_indicator">LED इंडिकेटर</string>
<string name="favourites_categories">पसंदिता केटेगरी</string>
<string name="text_history_holder_secondary">\"एक्सप्लोर करें\" अनुभाग में जानें कि क्या पढ़ना है</string>
<string name="all_favourites">भी पसंदीदा</string>
<string name="light_indicator">LED सूचक</string>
<string name="favourites_categories">पसंदीदा श्रेणियां</string>
<string name="gestures_only">केवल जेस्चर</string>
<string name="clear_thumbs_cache">थंबनेल कैच को साफ करे</string>
<string name="taps_on_edges">किनारे पर टैप</string>
<string name="switch_pages">ेज को बदले</string>
<string name="rotate_screen">स्क्रीन गुमाए</string>
<string name="text_shelf_holder_secondary">«अन्वेषण» विभाग में जो भी पढ़ना है उसे खोजे</string>
<string name="vibration">वैब्रेश</string>
<string name="remove_category">निकालो</string>
<string name="switch_pages">न्नो को बदले</string>
<string name="rotate_screen">स्क्रीन घुमायें</string>
<string name="text_shelf_holder_secondary">\"एक्सप्लोर करें\" अनुभाग में जानें कि क्या पढ़ना है</string>
<string name="vibration">कंप</string>
<string name="remove_category">हटाएँ</string>
<string name="read_mode">पढ़ने की विधि</string>
<string name="internal_storage">आंतरिक स्टोरेज</string>
<string name="read_later">बाद में पढ़े</string>
<string name="cannot_find_available_storage">स्टोरेज उपलब्ध नहीं हैं</string>
<string name="enabled_d_of_d" tools:ignore="PluralsCandidate">%2$d में से %1$d</string>
<string name="text_feed_holder">आप जो पढ़ रहे हैं उसके नए अध्याय यहां दिखाए गए हैं</string>
<string name="favourites_category_empty">केटेगोरी खाली हैं</string>
<string name="favourites_category_empty">रिक्त श्रेणी</string>
<string name="manga_save_location">डाउनलोड फ़ोल्डर</string>
<string name="updates_feed_cleared">साफ हो गया</string>
<string name="update">अपडेट</string>
@ -92,40 +92,506 @@
<string name="app_update_available">इस ऐप का नया संस्करण उपलब्ध हैं</string>
<string name="new_version_s">नया संस्करण: %s</string>
<string name="text_delete_local_manga">डिवाइस से \"%s\" को स्थायी रूप से हटाएं?</string>
<string name="text_history_holder_primary">जो भी आप पढ़ोगे वे सब यहां दिखेगा</string>
<string name="delete_manga">ांगा को नष्ट करे</string>
<string name="text_history_holder_primary">आप जो पढ़ेंगे वह यहां प्रदर्शित किया जाएगा</string>
<string name="delete_manga">ंगा हटाएं</string>
<string name="notification_sound">सूचना की ध्वनि</string>
<string name="search_history_cleared">साफ हो गया</string>
<string name="open_in_browser">ब्राउसर में खोले</string>
<string name="open_in_browser">वेब ब्राउज़र में खोलें</string>
<string name="notifications">सूचनाएं</string>
<string name="not_available">उपल्ब्ध नहीं हैं</string>
<string name="track_sources">अपडेट के लिए देखे</string>
<string name="track_sources">अपडेट देखे</string>
<string name="clear_search_history">खोजा हुवा इतिहास को साफ करे</string>
<string name="download">डाउनलोड</string>
<string name="size_s">साइज: %s</string>
<string name="text_shelf_holder_primary">आपके मांगा यहाँ दिखाई देंगे</string>
<string name="size_s">आकार: %s</string>
<string name="text_shelf_holder_primary">आपका मंगा यहां प्रदर्शित किया जाएगा</string>
<string name="new_chapters">नये अध्याय</string>
<string name="volume_buttons">वॉल्यूम बटन</string>
<string name="clear_updates_feed">अपडेट्स फीड को साफ करे</string>
<string name="clear_updates_feed">अपडेट फीड साफ करे</string>
<string name="notifications_settings">सुचना के सेटिंग</string>
<string name="domain">क्षेत्र</string>
<string name="save_manga">जमा करो</string>
<string name="large_manga_save_confirm">इस मांगा में %s हैं। सबको जमा करे\?</string>
<string name="domain">डोमेन</string>
<string name="save_manga">सहेजें</string>
<string name="large_manga_save_confirm">इस मंगा में %s है। यह सब सहेजें?</string>
<string name="reader_settings">रीडर के सेटिंग</string>
<string name="text_search_holder_secondary">क्वेरी को पुन बनाने का प्रयास करें।</string>
<string name="text_search_holder_secondary">क्वेरी को पुन: तैयार करने का प्रयास करें।</string>
<string name="error">त्रुटि</string>
<string name="grid_size">ग्रिड का आकार</string>
<string name="_continue">जारी रखें</string>
<string name="recent_manga">अभी के</string>
<string name="search_on_s">%s पर खोज</string>
<string name="recent_manga">हालिया</string>
<string name="search_on_s">%s पर खोजें</string>
<string name="search_results">खोज के परिणाम</string>
<string name="pages_animation">पेज का एनीमेशन</string>
<string name="pages_animation">पेज एनीमेशन</string>
<string name="other_storage">अन्य स्टोरेज</string>
<string name="external_storage">बाहरी स्टोरेज</string>
<string name="text_local_holder_secondary">किसी ऑनलाइन कैटलॉग से कुछ सहेजें या किसी फ़ाइल से आयात करें।</string>
<string name="text_local_holder_primary">पहले कुछ जमा कर</string>
<string name="text_empty_holder_primary">लगता है यहां तोह कुछ नहीं हैं</string>
<string name="done">होगया</string>
<string name="text_local_holder_primary">पहले कुछ सहेजे</string>
<string name="text_empty_holder_primary">यहाँ कुछ खाली सा है</string>
<string name="done">हो गया</string>
<string name="dont_check">जाँच मत करो</string>
<string name="enter_password">पासवर्ड दर्ज करें</string>
<string name="advanced">विकसित</string>
<string name="catalog">कैटलॉग</string>
<string name="manage_sources">स्रोत प्रबंधित करें</string>
<string name="screenshots_policy">स्क्रीनशॉट नीति</string>
<string name="screenshots_allow">अनुमति दें</string>
<string name="suggestions">सुझाव</string>
<string name="suggestions_enable">सुझाव सक्षम करें</string>
<string name="suggestions_summary">अपनी प्राथमिकताओं के आधार पर मंगा का सुझाव दें</string>
<string name="suggestions_info">सभी डेटा का विश्लेषण केवल इस डिवाइस पर स्थानीय रूप से किया जाता है और कभी भी कहीं नहीं भेजा जाता है।</string>
<string name="filter_load_error">शैलियों की सूची लोड करने में असमर्थ</string>
<string name="reset_filter">फ़िल्टर रीसेट करें</string>
<string name="onboard_text">उन भाषाओं का चयन करें जिन्हें आप मंगा पढ़ना चाहते हैं। आप इसे बाद में सेटिंग में बदल सकते हैं।</string>
<string name="chapters_empty">इस मंगा में कोई अध्याय नहीं</string>
<string name="suggestions_excluded_genres">शैलियों को छोड़ें</string>
<string name="removal_completed">निष्कासन पूरा हुआ</string>
<string name="download_slowdown_summary">आपके IP पते को ब्लॉक होने से बचाने में मदद करता है</string>
<string name="local_manga_processing">सहेजे गए मंगा का प्रसंस्करण</string>
<string name="chapters_will_removed_background">अध्याय पृष्ठभूमि में हटा दिए जाएंगे</string>
<string name="comics_archive">कॉमिक्स संग्रह</string>
<string name="webtoon_zoom">वेबटून ज़ूम</string>
<string name="repeat_password">पासवर्ड दोहराएँ</string>
<string name="passwords_mismatch">बेमेल पासवर्ड</string>
<string name="app_version">संस्करण %s</string>
<string name="check_for_updates">अपडेट के लिए जांचें</string>
<string name="no_update_available">कोई अपडेट उपलब्ध नहीं</string>
<string name="scale_mode">स्केल मोड</string>
<string name="black_dark_theme">काली</string>
<string name="black_dark_theme_summary">AMOLED स्क्रीन पर कम पावर का उपयोग होता है</string>
<string name="create_backup">डेटा बैकअप बनाएं</string>
<string name="restore_backup">बैकअप से पुनर्स्थापित करें</string>
<string name="data_restored">पुनर्स्थापित किया गया</string>
<string name="data_restored_with_errors">डेटा पुनर्स्थापित कर दिया गया था, लेकिन त्रुटियाँ हैं</string>
<string name="just_now">अभी</string>
<string name="yesterday">कल</string>
<string name="long_ago">बहुत पहले</string>
<string name="group">समूह</string>
<string name="today">आज</string>
<string name="tap_to_try_again">दोबारा प्रयास करने के लिए टैप करें</string>
<string name="reader_mode_hint">इस मंगा के लिए चुना गया कॉन्फ़िगरेशन याद रखा जाएगा</string>
<string name="silent">खामोश</string>
<string name="captcha_required">CAPTCHA आवश्यक है</string>
<string name="captcha_solve">हल करें</string>
<string name="cookies_cleared">सभी कुकीज़ हटा दी गईं</string>
<string name="backup_saved">बैकअप सहेजा गया</string>
<string name="welcome">स्वागत है</string>
<string name="tracker_warning">कुछ डिवाइसों में अलग-अलग सिस्टम व्यवहार होता है, जो पृष्ठभूमि कार्यों को बाधित कर सकता है।</string>
<string name="read_more">और पढ़ें</string>
<string name="chapter_is_missing">अध्याय गायब है</string>
<string name="about_app_translation_summary">इस ऐप का अनुवाद करें</string>
<string name="auth_complete">अधिकृत</string>
<string name="auth_not_supported_by">%s पर लॉग इन करना समर्थित नहीं है</string>
<string name="text_clear_cookies_prompt">आप सभी स्रोतों से लॉग आउट हो जायेंगे</string>
<string name="state_finished">समाप्त</string>
<string name="state_ongoing">चल रही है</string>
<string name="system_default">डिफ़ॉल्ट</string>
<string name="exclude_nsfw_from_history">इतिहास से NSFW मंगा को बाहर करें</string>
<string name="show_pages_numbers">क्रमांकित पन्ने</string>
<string name="enabled_sources">प्रयुक्त स्रोत</string>
<string name="available_sources">उपलब्ध स्रोत</string>
<string name="screenshots_block_nsfw">NSFW पर रोक लगाएं</string>
<string name="screenshots_block_all">हमेशा ब्लॉक करें</string>
<string name="text_suggestion_holder">मंगा पढ़ना शुरू करें और आपको व्यक्तिगत सुझाव मिलेंगे</string>
<string name="exclude_nsfw_from_suggestions">NSFW मंगा का सुझाव न दें</string>
<string name="disabled">अक्षम</string>
<string name="never">कभी नहीं</string>
<string name="only_using_wifi">केवल Wi-Fi पर</string>
<string name="always">हमेशा</string>
<string name="nsfw">18+</string>
<string name="various_languages">विभिन्न भाषाएँ</string>
<string name="search_chapters">अध्याय खोजें</string>
<string name="percent_string_pattern">%1$s%%</string>
<string name="appearance">दिखावट</string>
<string name="preload_pages">पन्ने प्रीलोड करें</string>
<string name="edit">संपादित करें</string>
<string name="download_slowdown">धीमी गति से डाउनलोड करें</string>
<string name="edit_category">श्रेणी संपादित करें</string>
<string name="tracking">ट्रैकिंग</string>
<string name="empty_favourite_categories">कोई पसंदीदा श्रेणियां नहीं</string>
<string name="logout">लॉग आउट</string>
<string name="bookmark_add">बुकमार्क जोड़ें</string>
<string name="bookmark_remove">बुकमार्क हटाएँ</string>
<string name="bookmarks">बुकमार्क्स</string>
<string name="bookmark_removed">बुकमार्क हटा दिया गया</string>
<string name="bookmark_added">बुकमार्क जोड़ा गया</string>
<string name="undo">पूर्ववत</string>
<string name="removed_from_history">इतिहास से हटा दिया गया</string>
<string name="detect_reader_mode">ऑटोडिटेक्ट रीडर मोड</string>
<string name="detect_reader_mode_summary">स्वचालित रूप से पता लगाएं कि मंगा वेबटून है या नहीं</string>
<string name="disable_battery_optimization">बैटरी अनुकूलन अक्षम करें</string>
<string name="send">भेजें</string>
<string name="disable_all">सब अक्षम करें</string>
<string name="use_fingerprint">यदि उपलब्ध हो तो फ़िंगरप्रिंट का उपयोग करें</string>
<string name="appwidget_shelf_description">आपके पसंदीदा में से मंगा</string>
<string name="appwidget_recent_description">आपने हाल ही में पढ़ा मंगा</string>
<string name="report">रिपोर्ट</string>
<string name="status_planned">योजना बनाई</string>
<string name="status_reading">पढ़ रहा हूँ</string>
<string name="status_re_reading">दोबारा पढ़ना</string>
<string name="status_completed">पूरा किया हुआ</string>
<string name="status_on_hold">होल्ड पर</string>
<string name="status_dropped">गिरा दिया गया</string>
<string name="show_reading_indicators">पढ़ने की प्रगति संकेतक दिखाएँ</string>
<string name="data_deletion">डेटा विलोपन</string>
<string name="exclude_nsfw_from_history_summary">NSFW के रूप में चिह्नित मंगा को इतिहास में कभी नहीं जोड़ा जाएगा और आपकी प्रगति सहेजी नहीं जाएगी</string>
<string name="clear_cookies_summary">कुछ समस्या होने पर मदद मिल सकती है. सभी प्राधिकरण अमान्य कर दिए जाएंगे</string>
<string name="invalid_domain_message">अमान्य डोमेन</string>
<string name="select_range">रेंज चुनें</string>
<string name="clear_all_history">सारा इतिहास साफ़ करें</string>
<string name="last_2_hours">पिछले 2 घंटे</string>
<string name="history_cleared">इतिहास साफ़ हो गया</string>
<string name="manage">प्रबंधित करें</string>
<string name="explore">अन्वेषण करें</string>
<string name="confirm_exit">बाहर निकलने के लिए फिर से वापस दबाएँ</string>
<string name="exit_confirmation">बाहर निकलने की पुष्टि</string>
<string name="saved_manga">सहेजा गया मंगा</string>
<string name="pages_cache">पन्नो का कैश</string>
<string name="other_cache">अन्य कैश</string>
<string name="available">उपलब्ध</string>
<string name="memory_usage_pattern">%s - %s</string>
<string name="removed_from_favourites">पसंदीदा से हटाया गया</string>
<string name="options">विकल्प</string>
<string name="not_found_404">सामग्री नहीं मिली या हटाई गई</string>
<string name="incognito_mode">गुप्त मोड</string>
<string name="reader_info_pattern">Ch. %1$d/%2$d Pg. %3$d/%4$d</string>
<string name="reader_info_bar">रीडर में सूचना पट्टी दिखाएं</string>
<string name="folder_with_images">छवियों वाला फ़ोल्डर</string>
<string name="import_completed">आयात पूरा हुआ</string>
<string name="history_shortcuts_summary">एप्लिकेशन आइकन पर लंबे समय तक दबाकर हालिया मंगा को उपलब्ध कराएं</string>
<string name="reader_control_ltr">एर्गोनोमिक रीडर नियंत्रण</string>
<string name="color_correction">रंग सुधार</string>
<string name="brightness">चमक</string>
<string name="storage_usage">स्टोरेज उपयोग</string>
<string name="contrast">कंट्रास्ट</string>
<string name="reset">रीसेट</string>
<string name="color_correction_hint">इस मंगा के लिए चुनी गई रंग सेटिंग्स याद रखी जाएंगी</string>
<string name="text_unsaved_changes_prompt">सहेजे न गए परिवर्तन सहेजें या हटाएँ?</string>
<string name="error_no_space_left">डिवाइस पर जगह समाप्त</string>
<string name="reader_slider">पेज स्विचिंग स्लाइडर दिखाएँ</string>
<string name="different_languages">विभिन्न भाषाएं</string>
<string name="network_unavailable">नेटवर्क उपलब्ध नहीं है</string>
<string name="server_error">सर्वर साइड त्रुटि (%1$d). कृपया बाद में पुन: प्रयास करें</string>
<string name="clear_new_chapters_counters">नए अध्यायों के बारे में भी स्पष्ट जानकारी</string>
<string name="compact">सघन</string>
<string name="mark_as_current">वर्तमान के रूप में चिह्नित करें</string>
<string name="language">भाषा</string>
<string name="enable_logging">लॉगिंग सक्षम करें</string>
<string name="show_suspicious_content">संदिग्ध सामग्री दिखाएं</string>
<string name="theme_name_dynamic">गतिशील</string>
<string name="color_theme">रंग योजना</string>
<string name="show_in_grid_view">ग्रिड दृश्य में दिखाएँ</string>
<string name="theme_name_miku">Miku</string>
<string name="theme_name_rikka">Rikka</string>
<string name="theme_name_kanade">Kanade</string>
<string name="scrobbling_empty_hint">पढ़ने की प्रगति को ट्रैक करने के लिए, मंगा विवरण स्क्रीन पर मेनू → ट्रैक का चयन करें।</string>
<string name="services">सेवाएं</string>
<string name="settings_apply_restart_required">कृपया इन परिवर्तनों को लागू करने के लिए एप्लिकेशन को पुनः आरंभ करें</string>
<string name="comics_archive_import_description">आप एक या अधिक .cbz या .zip फ़ाइलों का चयन कर सकते हैं, प्रत्येक फ़ाइल को एक अलग मंगा के रूप में पहचाना जाएगा।</string>
<string name="user_agent">UserAgent हेडर</string>
<string name="speed">गति</string>
<string name="restore_backup_description">उपयोगकर्ता डेटा का पहले से बनाया गया बैकअप आयात करें</string>
<string name="show_on_shelf">शेल्फ पर दिखाएँ</string>
<string name="sync_auth_hint">आप किसी मौजूदा खाते में साइन इन कर सकते हैं या एक नया खाता बना सकते हैं</string>
<string name="mirror_switching_summary">यदि मिरर उपलब्ध हैं तो त्रुटियों पर मंगा स्रोतों के लिए स्वचालित रूप से डोमेन स्विच करें</string>
<string name="find_similar">समान खोजें</string>
<string name="pause">विराम</string>
<string name="resume">फिर से शुरू करें</string>
<string name="paused">रुका हुआ</string>
<string name="cancel_all">सभी रद्द करें</string>
<string name="mirror_switching">स्वचालित रूप से मिरर चुनें</string>
<string name="downloads_wifi_only_summary">मोबाइल नेटवर्क पर स्विच करते समय डाउनलोड करना बंद कर दें</string>
<string name="suggestion_manga">सुझाव: %s</string>
<string name="suggestions_notifications_summary">कभी-कभी सुझाए गए मंगा के साथ सूचनाएं दिखाएं</string>
<string name="more">अधिक</string>
<string name="enable">सक्षम</string>
<string name="no_thanks">जी नहीं, धन्यवाद</string>
<string name="cancel_all_downloads_confirm">सभी सक्रिय डाउनलोड रद्द कर दिए जाएंगे, आंशिक रूप से डाउनलोड किया गया डेटा खो जाएगा</string>
<string name="remove_completed_downloads_confirm">आपका डाउनलोड इतिहास स्थायी रूप से हटा दिया जाएगा</string>
<string name="text_downloads_list_holder">आपके पास कोई डाउनलोड नहीं है</string>
<string name="downloads_resumed">डाउनलोड फिर से शुरू कर दिए गए हैं</string>
<string name="downloads_paused">डाउनलोड रोक दिए गए हैं</string>
<string name="downloads_removed">डाउनलोड हटा दिए गए हैं</string>
<string name="suggestions_enable_prompt">क्या आप वैयक्तिकृत मंगा सुझाव प्राप्त करना चाहते हैं?</string>
<string name="web_view_unavailable">WebView उपलब्ध नहीं है: जांचें कि WebView प्रदाता स्थापित है या नहीं</string>
<string name="clear_network_cache">नेटवर्क कैश साफ़ करें</string>
<string name="type">प्रकार</string>
<string name="address">पता</string>
<string name="port">पोर्ट</string>
<string name="proxy">प्रॉक्सी</string>
<string name="invalid_value_message">अमान्य मान</string>
<string name="manga_branch_title_template">%1$s (%2$s)</string>
<string name="password">पासवर्ड</string>
<string name="invert_colors">रंगों को उलटा करें</string>
<string name="invalid_port_number">अमान्य पोर्ट नंबर</string>
<string name="network">नेटवर्क</string>
<string name="pages_animation_summary">एनिमेट पेज स्विचिंग</string>
<string name="show_pages_numbers_summary">निचले कोने में पेज संख्याएँ दिखाएँ</string>
<string name="restore_summary">पहले बनाए गए बैकअप को पुनर्स्थापित करें</string>
<string name="webtoon_zoom_summary">वेबटून मोड में ज़ूम इन जेस्चर की अनुमति दें</string>
<string name="reader_info_bar_summary">स्क्रीन के शीर्ष पर वर्तमान समय और पढ़ने की प्रगति दिखाएं</string>
<string name="volume_">वॉल्यूम %d</string>
<string name="volume_unknown">अज्ञात वॉल्यूम</string>
<string name="downloads_settings_info">यदि आपको सर्वर-साइड ब्लॉकिंग की समस्या हो रही है तो आप स्रोत सेटिंग्स में प्रत्येक मंगा स्रोत के लिए व्यक्तिगत रूप से डाउनलोड मंदी को सक्षम कर सकते हैं</string>
<string name="approximate_reading_time">अनुमानित पढ़ने का समय</string>
<string name="remove_from_history">इतिहास से हटा दें</string>
<string name="translations">अनुवाद</string>
<string name="skip">छोड़ें</string>
<string name="incognito_mode_hint">आपकी पढ़ने की प्रगति सहेजी नहीं जाएगी</string>
<string name="content_rating">सामग्री मूल्यांकन</string>
<string name="genres_exclude">शैलियों को छोड़ें</string>
<string name="rating_safe">सुरक्षित</string>
<string name="rating_adult">वयस्क</string>
<string name="rating_suggestive">सुझावात्मक</string>
<string name="last_read">अंतिम पढ़ा</string>
<string name="lock_screen_rotation">लॉक स्क्रीन रोटेशन</string>
<string name="vertical">लंबवत</string>
<string name="download_started">डाउनलोड प्रारंभ हुआ</string>
<string name="manga_list">मंगा सूची</string>
<string name="disable_nsfw">NSFW अक्षम करें</string>
<string name="images_proxy_title">छवियाँ अनुकूलन प्रॉक्सी</string>
<string name="data_and_privacy">डेटा और गोपनीयता</string>
<string name="email_password_enter_hint">जारी रखने के लिए अपना ईमेल और पासवर्ड डालें</string>
<string name="clear_source_cookies_summary">केवल निर्दिष्ट डोमेन के लिए कुकीज़ साफ़ करें। अधिकांश मामलों में प्राधिकरण अमान्य हो जाएगा</string>
<string name="details_button_tip">अधिक विकल्प देखने के लिए पढ़ें बटन को दबाकर रखें</string>
<string name="download_option_next_unread_n_chapters">अगला अपठित %s</string>
<string name="no_access_to_file">आपके पास इस फ़ाइल या डॉयरेक्टरी तक कोई पहुंच नहीं है</string>
<string name="voice_search">ध्वनि खोज</string>
<string name="related_manga">संबंधित मंगा</string>
<string name="description">विवरण</string>
<string name="this_month">इस महीने</string>
<string name="background">पृष्ठभूमि</string>
<string name="local_manga_directories">स्थानीय मंगा डॉयरेक्टरी</string>
<string name="data_not_restored_text">सुनिश्चित करें कि आपने सही बैकअप फ़ाइल का चयन किया है</string>
<string name="data_not_restored">डेटा पुनर्स्थापित नहीं किया गया</string>
<string name="suggestions_wifi_only_summary">मीटर्ड नेटवर्क कनेक्शन का उपयोग करके सुझावों को अपडेट न करें</string>
<string name="tracker_wifi_only_summary">मीटर्ड नेटवर्क कनेक्शन का उपयोग करके नए अध्यायों की जाँच न करें</string>
<string name="search_hint">मंगा शीर्षक, शैली या स्रोत का नाम दर्ज करें</string>
<string name="progress">प्रगति</string>
<string name="order_added">जोड़ा गया</string>
<string name="show">दिखाएँ</string>
<string name="languages">भाषाएं</string>
<string name="unknown">अज्ञात</string>
<string name="in_progress">प्रगति पर है</string>
<string name="error_corrupted_file">अमान्य डेटा लौटाया गया है या फ़ाइल दूषित है</string>
<string name="items_limit_exceeded">कोई और आइटम नहीं जोड़ा जा सकता</string>
<string name="on_device">डिवाइस पर</string>
<string name="main_screen_sections">मुख्य स्क्रीन अनुभाग</string>
<string name="directories">डॉयरेक्टरी</string>
<string name="to_top">शीर्ष पर</string>
<string name="moved_to_top">शीर्ष पर ले जाया गया</string>
<string name="zoom_out">ज़ूम आउट</string>
<string name="zoom_in">ज़ूम इन</string>
<string name="reader_zoom_buttons">ज़ूम बटन दिखाएँ</string>
<string name="reader_zoom_buttons_summary">निचले दाएं कोने में ज़ूम नियंत्रण बटन दिखाना है या नहीं</string>
<string name="keep_screen_on">स्क्रीन चालू रखें</string>
<string name="keep_screen_on_summary">जब आप मंगा पढ़ रहे हों तो स्क्रीन बंद न करें</string>
<string name="enhanced_colors_summary">बैंडिंग को कम करता है, लेकिन प्रदर्शन को प्रभावित कर सकता है</string>
<string name="enhanced_colors">32-बिट रंग मोड</string>
<string name="suggest_new_sources">ऐप अपडेट के बाद नए स्रोत सुझाएं</string>
<string name="suggest_new_sources_summary">एप्लिकेशन को अपडेट करने के बाद नए जोड़े गए स्रोतों को सक्षम करने का संकेत दें</string>
<string name="online_variant">ऑनलाइन संस्करण</string>
<string name="periodic_backups">आवधिक बैकअप</string>
<string name="backup_frequency">बैकअप निर्माण आवृत्ति</string>
<string name="frequency_every_day">प्रतिदिन</string>
<string name="frequency_once_per_week">हर हफ्ते एक बार</string>
<string name="frequency_twice_per_month">प्रति माह दो बार</string>
<string name="frequency_once_per_month">प्रति महीना एक बार</string>
<string name="frequency_every_2_days">हर 2 दिन में</string>
<string name="periodic_backups_enable">आवधिक बैकअप सक्षम करें</string>
<string name="backups_output_directory">बैकअप आउटपुट डायरेक्टरी</string>
<string name="last_successful_backup">अंतिम सफल बैकअप: %s</string>
<string name="speed_value">x%.1f</string>
<string name="content_type_manga">मंगा</string>
<string name="content_type_hentai">हेंताई</string>
<string name="content_type_comics">कॉमिक्स</string>
<string name="source_summary_pattern">%1$s, %2$s</string>
<string name="content_type_other">अन्य</string>
<string name="source_enabled">स्रोत सक्षम</string>
<string name="sources_catalog">स्रोत कैटलॉग</string>
<string name="no_manga_sources_catalog_text">इस अनुभाग में कोई स्रोत उपलब्ध नहीं है, या यह सब पहले ही जोड़ा जा चुका होगा।
\nबने रहें</string>
<string name="no_manga_sources_found">आपकी क्वेरी से कोई उपलब्ध मंगा स्रोत नहीं मिला</string>
<string name="manual">मैन्युअल</string>
<string name="available_d">उपलब्ध: %1$d</string>
<string name="disable_nsfw_summary">यदि संभव हो तो NSFW स्रोतों को अक्षम करें और वयस्क मंगा को सूची से छिपाएँ</string>
<string name="state_paused">रोके गए</string>
<string name="reader_optimize">मेमोरी खपत कम करें (beta)</string>
<string name="state">अवस्था</string>
<string name="error_multiple_genres_not_supported">अनेक शैलियों द्वारा फ़िल्टर करना इस मंगा स्रोत द्वारा समर्थित नहीं है</string>
<string name="error_search_not_supported">खोज इस मंगा स्रोत द्वारा समर्थित नहीं है</string>
<string name="genres_search_hint">शैली का नाम लिखना प्रारंभ करें</string>
<string name="disable_battery_optimization_summary_downloads">यदि आपको इसमें कोई समस्या है तो डाउनलोड शुरू करने में मदद मिल सकती है</string>
<string name="restore">पुनर्स्थापित करें</string>
<string name="backup_date_">बैकअप दिनांक: %s</string>
<string name="state_upcoming">आगामी</string>
<string name="by_name_reverse">नाम उलटा</string>
<string name="mark_as_completed">पूर्ण के रूप में चिह्नित करें</string>
<string name="mark_as_completed_prompt">चयनित मंगा को पूरी तरह से पढ़ा गया के रूप में चिह्नित करें?
\n
\nचेतावनी: वर्तमान पठन प्रगति नष्ट हो जाएगी।</string>
<string name="approximate_remaining_time">अनुमानित समय शेष है</string>
<string name="remaining_time_pattern">%1$s %2$s</string>
<string name="two_pages">दो पन्ने</string>
<string name="show_menu">मेन्यू दिखाएँ</string>
<string name="long_tap_action">लंबे टैप पर कार्रवाई</string>
<string name="tap_action">टैप पर कार्रवाई</string>
<string name="none">कोई नहीं</string>
<string name="config_reset_confirm">सेटिंग्स को डिफ़ॉल्ट मानों पर रीसेट करें? इस एक्शन को वापस नहीं किया जा सकता।</string>
<string name="use_two_pages_landscape">लैंडस्केप ओरिएंटेशन पर दो पेज लेआउट का उपयोग करें (beta)</string>
<string name="got_it">समझ गया</string>
<string name="default_tab">डिफ़ॉल्ट टैब</string>
<string name="download_option_all_chapters">अनुवाद सहित सभी अध्याय %s</string>
<string name="download_option_whole_manga">संपूर्ण मंगा</string>
<string name="download_option_first_n_chapters">प्रथम %s</string>
<string name="download_option_all_unread">सभी अपठित अध्याय</string>
<string name="download_option_all_unread_b">सभी अपठित अध्याय (%s)</string>
<string name="download_option_manual_selection">अध्यायों का चयन मैन्युअल रूप से करें</string>
<string name="color_light">हल्का</string>
<string name="color_dark">गहरा</string>
<string name="color_white">सफ़ेद</string>
<string name="color_black">काला</string>
<string name="view_list">सूची देखें</string>
<string name="manage_categories">श्रेणी व्यवस्थित करें</string>
<string name="downloaded">डाउनलोड किया गया</string>
<string name="too_many_requests_message">बहुत सारे अनुरोध. बाद में पुन: प्रयास</string>
<string name="related_manga_summary">संबंधित मंगा की एक सूची दिखाएं. कुछ मामलों में यह ग़लत या गायब हो सकता है</string>
<string name="custom_directory">कस्टम डायरेक्टरी</string>
<string name="pick_custom_directory">कस्टम डायरेक्टरी चुनें</string>
<string name="default_webtoon_zoom_out">डिफ़ॉल्ट वेबटून ज़ूम आउट</string>
<string name="captcha_required_summary">%s को ठीक से काम करने के लिए कैप्चा को हल करने की आवश्यकता है</string>
<string name="fullscreen_mode">पूर्ण स्क्रीन मोड</string>
<string name="reader_fullscreen_summary">सिस्टम स्थिति और नेविगेशन बार छिपाएँ</string>
<string name="username">उपयोक्तानाम</string>
<string name="authorization_optional">प्राधिकरण (वैकल्पिक)</string>
<string name="category_hidden_done">यह श्रेणी मुख्य स्क्रीन से छिपी हुई थी और मेनू → श्रेणियों को प्रबंधित करें के माध्यम से पहुंच योग्य है</string>
<string name="globally">वैश्विक स्तर पर</string>
<string name="grayscale">ग्रेस्केल</string>
<string name="apply">लागू करें</string>
<string name="ignore_ssl_errors">SSL त्रुटियों को नजरअंदाज करें</string>
<string name="downloads_wifi_only">केवल Wi-Fi के ज़रिए डाउनलोड करें</string>
<string name="show_notification_new_chapters_off">आपको सूचनाएं प्राप्त नहीं होंगी लेकिन नए अध्याय सूचियों में हाइलाइट किए जाएंगे</string>
<string name="notifications_enable">सूचनाएं सक्षम करें</string>
<string name="name">नाम</string>
<string name="bookmarks_removed">बुकमार्क हटा दिए गए</string>
<string name="no_manga_sources">कोई मंगा स्रोत नहीं</string>
<string name="no_manga_sources_text">मंगा को ऑनलाइन पढ़ने के लिए मंगा स्रोतों को सक्षम करें</string>
<string name="random">यादृच्छिक</string>
<string name="reorder">पुन: व्यवस्थित करें</string>
<string name="empty">खाली</string>
<string name="import_will_start_soon">आयात जल्द शुरू होगा</string>
<string name="feed">फ़ीड</string>
<string name="history_shortcuts">हाल के मंगा शॉर्टकट दिखाएँ</string>
<string name="discard">खारिज</string>
<string name="sources_reorder_tip">किसी आइटम को पुन: व्यवस्थित करने के लिए उस पर टैप करके रखें</string>
<string name="wrong_password">गलत पासवर्ड</string>
<string name="protect_application">ऐप को सुरक्षित रखें</string>
<string name="protect_application_summary">Kotatsu शुरू करते समय पासवर्ड मांगें</string>
<string name="right_to_left">दाएं-से-बाएं</string>
<string name="create_category">नई श्रेणी</string>
<string name="zoom_mode_fit_center">केंद्र फिट</string>
<string name="zoom_mode_fit_height">ऊंचाई के अनुरूप</string>
<string name="zoom_mode_fit_width">चौड़ाई के अनुरूप</string>
<string name="zoom_mode_keep_start">प्रारंभ में रखें</string>
<string name="clear_cookies">कूकीज साफ़ करें</string>
<string name="clear_feed">फ़ीड साफ़ करें</string>
<string name="text_clear_updates_feed_prompt">सभी अपडेट इतिहास स्थायी रूप से साफ़ करें?</string>
<string name="check_for_new_chapters">नए अध्यायों की जाँच करें</string>
<string name="reverse">उलटा</string>
<string name="sign_in">साइन इन</string>
<string name="canceled">रद्द किया गया</string>
<string name="account_already_exists">खाता पहले से मौजूद है</string>
<string name="back">पीछे</string>
<string name="sync">सिंक्रनाइज़ेशन</string>
<string name="sync_title">अपना डेटा सिंक करें</string>
<string name="email_enter_hint">जारी रखने के लिए अपना ईमेल दर्ज करें</string>
<string name="hide">छुपाएं</string>
<string name="new_sources_text">नए मंगा स्रोत उपलब्ध हैं</string>
<string name="check_new_chapters_title">नए अध्यायों की जाँच करें और इसके बारे में सूचित करें</string>
<string name="remove_completed">पूर्ण हटा दें</string>
<string name="toggle_ui">UI दिखाएँ/छिपाएँ</string>
<string name="next_chapter">अगला अध्याय</string>
<string name="reader_actions">पाठक क्रियाएँ</string>
<string name="switch_pages_volume_buttons">वॉल्यूम बटन सक्षम करें</string>
<string name="next_page">अगला पेज</string>
<string name="reading_time_estimation">पढ़ने का अनुमानित समय दिखाएँ</string>
<string name="reading_time_estimation_summary">समय अनुमान मान ग़लत हो सकता है</string>
<string name="location">जगह</string>
<string name="queued">कतारबद्ध</string>
<string name="about_app_translation">अनुवाद</string>
<string name="enabled">सक्रिय</string>
<string name="auth_required">इस सामग्री को देखने के लिए साइन इन करें</string>
<string name="default_s">डिफ़ॉल्ट: %s</string>
<string name="next">अगला</string>
<string name="genres">शैलियां</string>
<string name="logged_in_as">%s के रूप में लॉग इन किया गया</string>
<string name="protect_application_subtitle">ऐप शुरू करने के लिए एक पासवर्ड दर्ज करें</string>
<string name="suggestions_updating">सुझाव अपडेट हो रहे हैं</string>
<string name="confirm">पुष्टि करें</string>
<string name="suggestions_excluded_genres_summary">वे शैलियाँ निर्दिष्ट करें जिन्हें आप सुझावों में नहीं देखना चाहते</string>
<string name="password_length_hint">पासवर्ड 4 अक्षर या अधिक का होना चाहिए</string>
<string name="text_delete_local_manga_batch">डिवाइस से चयनित आइटम स्थायी रूप से हटाएं?</string>
<string name="text_clear_search_history_prompt">हाल की सभी खोज क्वेरी को स्थायी रूप से हटा दें?</string>
<string name="about">बारे में</string>
<string name="backup_restore">बैकअप और पुनर्स्थापना</string>
<string name="preparing_">तैयार कर रहे हैं…</string>
<string name="file_not_found">फाइल नहीं मिली</string>
<string name="data_restored_success">सारा डेटा पुनर्स्थापित कर दिया गया</string>
<string name="backup_information">आप अपने इतिहास और पसंदीदा का बैकअप बना सकते हैं और उसे पुनर्स्थापित कर सकते हैं</string>
<string name="show_notification_new_chapters_on">आप जो मंगा पढ़ रहे हैं उसके अपडेट के बारे में आपको सूचनाएं प्राप्त होंगी</string>
<string name="dns_over_https">HTTPS पर DNS</string>
<string name="default_mode">डिफ़ॉल्ट मोड</string>
<string name="disable_battery_optimization_summary">बैकग्राउंड अपडेट जांच में मदद करता है</string>
<string name="crash_text">कुछ गलत हो गया। कृपया इसे ठीक करने में हमारी सहायता के लिए डेवलपर्स को एक बग रिपोर्ट सबमिट करें।</string>
<string name="show_reading_indicators_summary">इतिहास और पसंदीदा में पढ़ा गया प्रतिशत दिखाएँ</string>
<string name="show_all">सब दिखाएं</string>
<string name="downloads_cancelled">डाउनलोड रद्द कर दिए गए हैं</string>
<string name="default_section">डिफ़ॉल्ट अनुभाग</string>
<string name="no_bookmarks_yet">अभी तक कोई बुकमार्क नहीं</string>
<string name="no_bookmarks_summary">आप मंगा पढ़ते समय बुकमार्क बना सकते हैं</string>
<string name="sync_settings">सिंक्रोनाइज़ेशन सेटिंग्स</string>
<string name="exit_confirmation_summary">ऐप से बाहर निकलने के लिए बैक को दो बार दबाएँ</string>
<string name="server_address">सर्वर पता</string>
<string name="sync_host_description">आप स्व-होस्टेड सिंक्रनाइज़ेशन सर्वर या डिफ़ॉल्ट सर्वर का उपयोग कर सकते हैं। यदि आप निश्चित नहीं हैं कि आप क्या कर रहे हैं तो इसे न बदलें।</string>
<string name="no_chapters">कोई अध्याय नहीं</string>
<string name="automatic_scroll">स्वचालित स्क्रॉल</string>
<string name="importing_manga">मंगा आयात किया जा रहा है</string>
<string name="import_completed_hint">स्थान बचाने के लिए आप मूल फ़ाइल को स्टोरेज से हटा सकते हैं</string>
<string name="network_unavailable_hint">मंगा को ऑनलाइन पढ़ने के लिए Wi-Fi या मोबाइल नेटवर्क चालू करें</string>
<string name="source_disabled">स्रोत अक्षम किया गया</string>
<string name="prefetch_content">सामग्री प्रीलोड हो रही है</string>
<string name="share_logs">लॉग साझा करें</string>
<string name="enable_logging_summary">डिबग उद्देश्यों के लिए कुछ क्रियाएँ रिकॉर्ड करें। यदि आप निश्चित नहीं हैं कि आप क्या कर रहे हैं तो इसे चालू न करें</string>
<string name="theme_name_asuka">Asuka</string>
<string name="theme_name_mion">Mion</string>
<string name="theme_name_sakura">Sakura</string>
<string name="theme_name_mamimi">Mamimi</string>
<string name="allow_unstable_updates">अस्थिर अपडेट की अनुमति दें</string>
<string name="nothing_here">यहां कुछ नहीं है</string>
<string name="allow_unstable_updates_summary">अस्थिर बिल्ड के बारे में सूचनाएं प्राप्त करें</string>
<string name="categories_delete_confirm">क्या आप वाकई चयनित पसंदीदा श्रेणियां हटाना चाहते हैं?
\nइसमें मौजूद सारा मंगा नष्ट हो जाएगा और इसे पूर्ववत नहीं किया जा सकता।</string>
<string name="manga_error_description_pattern">त्रुटि विवरण:&lt;br&gt;&lt;tt&gt;%1$s&lt;/tt&gt;&lt;br&gt;&lt;br&gt;1. यह सुनिश्चित करने के लिए कि यह अपने स्रोत पर उपलब्ध है &lt;a href=%2$s&gt;मंगा को वेब ब्राउज़र में खोलने का प्रयास करें&lt;/a&gt;&lt;br&gt;2। सुनिश्चित करें कि आप &lt;a href=kotatsu://about&gt;Kotatsu के नवीनतम संस्करण&lt;/a&gt;&lt;br&gt;3 का उपयोग कर रहे हैं। यदि यह उपलब्ध है, तो डेवलपर्स को एक त्रुटि रिपोर्ट भेजें।</string>
<string name="folder_with_images_import_description">आप अभिलेखों या छवियों वाली एक डॉयरेक्टरी का चयन कर सकते हैं। प्रत्येक संग्रह (या उपडॉयरेक्टरी) को एक अध्याय के रूप में पहचाना जाएगा।</string>
<string name="images_procy_description">यदि संभव हो तो ट्रैफ़िक उपयोग को कम करने और छवि लोडिंग को तेज़ करने के लिए wsrv.nl सेवा का उपयोग करें</string>
<string name="state_abandoned">गिरा दिया गया</string>
<string name="list_options">विकल्पों की सूची बनाएं</string>
<string name="by_relevance">प्रासंगिकता</string>
<string name="categories">श्रेणियाँ</string>
<string name="reader_optimize_summary">कम मेमोरी का उपयोग करने के लिए ऑफस्क्रीन पन्नो की गुणवत्ता कम करें</string>
<string name="error_multiple_states_not_supported">एकाधिक राज्यों द्वारा फ़िल्टर करना इस मंगा स्रोत द्वारा समर्थित नहीं है</string>
<string name="color_correction_apply_text">ये सेटिंग्स विश्व स्तर पर या केवल वर्तमान मंगा पर लागू की जा सकती हैं। यदि विश्व स्तर पर लागू किया जाता है, तो व्यक्तिगत सेटिंग्स को ओवरराइड नहीं किया जाएगा।</string>
<string name="this_manga">यह मंगा</string>
<string name="error_filter_locale_genre_not_supported">शैलियों और स्थान दोनों के आधार पर फ़िल्टर करना इस स्रोत द्वारा समर्थित नहीं है</string>
<string name="welcome_text">कृपया चुनें कि आप कौन से सामग्री स्रोत सक्षम करना चाहते हैं। इसे बाद में सेटिंग्स में भी कॉन्फ़िगर किया जा सकता है</string>
<string name="sync_auth">खाता सिंक करने के लिए लॉगिन करें</string>
<string name="error_filter_states_genre_not_supported">शैलियों और राज्यों दोनों द्वारा फ़िल्टर करना इस स्रोत द्वारा समर्थित नहीं है</string>
<string name="prev_chapter">पिछला अध्याय</string>
<string name="default_page_save_dir">डिफॉल्ट पेज सेव डायरेक्टरी</string>
<string name="reader_actions_summary">टैप करने योग्य स्क्रीन क्षेत्रों के लिए क्रियाएँ कॉन्फ़िगर करें</string>
<string name="reader_control_ltr_summary">दाएँ किनारे पर टैप करने या दाएँ कुंजी दबाने से हमेशा अगले पेज पर स्विच हो जाता है।</string>
<string name="prev_page">पिछला पेज</string>
<string name="switch_pages_volume_buttons_summary">पन्ने बदलने के लिए वॉल्यूम बटन का उपयोग करें</string>
<string name="suggestions_unavailable_text">सुझाव सुविधा अक्षम है</string>
<string name="check_for_new_chapters_disabled">नए अध्यायों की जाँच अक्षम है</string>
<string name="show_labels_in_navbar">नेविगेशन बार में लेबल दिखाएँ</string>
<string name="pages_saving">पन्ने सहेजा जा रहा है</string>
<string name="ask_for_dest_dir_every_time">हर बार गंतव्य स्थान के लिए पूछें</string>
</resources>

@ -32,7 +32,7 @@
<string name="by_rating">Értékelés</string>
<string name="filter">Szűrő</string>
<string name="light">Fényes</string>
<string name="automatic">Rendszer alapján</string>
<string name="follow_system">Rendszer alapján</string>
<string name="clear">Törlés</string>
<string name="text_clear_history_prompt">Véglegesen törli az összes olvasási előzményt?</string>
<string name="remove">Eltávolítás</string>

@ -42,7 +42,7 @@
<string name="theme">Tema</string>
<string name="light">Terang</string>
<string name="dark">Gelap</string>
<string name="automatic">Ikuti sistem</string>
<string name="follow_system">Ikuti sistem</string>
<string name="pages">Halaman</string>
<string name="clear">Bersihkan</string>
<string name="remove">Hapus</string>
@ -107,7 +107,7 @@
<string name="new_version_s">Versi baru: %s</string>
<string name="size_s">Ukuran: %s</string>
<string name="updates_feed_cleared">Dibersihkan</string>
<string name="update">Pembaruan</string>
<string name="update">Perbarui</string>
<string name="track_sources">Mencari pembaruan</string>
<string name="dont_check">Jangan periksa</string>
<string name="wrong_password">Kata sandi salah</string>

@ -9,7 +9,7 @@
<string name="page_saved">Pagina salvata correttamente</string>
<string name="save_page">Salva la pagina</string>
<string name="pages">Pagine</string>
<string name="automatic">Automatico</string>
<string name="follow_system">Automatico</string>
<string name="dark">Scuro</string>
<string name="light">Chiaro</string>
<string name="theme">Tema</string>

@ -38,7 +38,7 @@
<string name="newest">最新</string>
<string name="by_rating">評価</string>
<string name="sort_order">並べ替え</string>
<string name="automatic">システムに従う</string>
<string name="follow_system">システムに従う</string>
<string name="clear">消去</string>
<string name="text_clear_history_prompt">すべての履歴を永久に消去しますか?</string>
<string name="remove">削除</string>

@ -48,7 +48,7 @@
<string name="theme">Кейіп</string>
<string name="dark">Қараңғы</string>
<string name="light">Ақшыл</string>
<string name="automatic">Жүйедегідей</string>
<string name="follow_system">Жүйедегідей</string>
<string name="pages">Беттер</string>
<string name="clear">Тазалау</string>
<string name="remove">Жою</string>

@ -62,7 +62,7 @@
<string name="processing_">처리중…</string>
<string name="updated">최근 업데이트 순</string>
<string name="newest">최근 발간 순</string>
<string name="automatic">시스템 설정</string>
<string name="follow_system">시스템 설정</string>
<string name="delete">지우기</string>
<string name="text_file_sizes">바이트|kB|MB|GB|TB</string>
<string name="clear_pages_cache">페이지 캐시 지우기</string>

@ -45,7 +45,7 @@
<string name="filter">Tapis</string>
<string name="light">Terang</string>
<string name="dark">Gelap</string>
<string name="automatic">Ikut sistem</string>
<string name="follow_system">Ikut sistem</string>
<string name="pages">Muka surat</string>
<string name="clear">Kosongkan</string>
<string name="text_clear_history_prompt">Kosongkan semua sejarah pembacaan selama-lamanya?</string>

@ -137,7 +137,7 @@
<string name="remove">Fjern</string>
<string name="clear">Tøm</string>
<string name="pages">Sider</string>
<string name="automatic">Følg systemet</string>
<string name="follow_system">Følg systemet</string>
<string name="dark">Mørk</string>
<string name="light">Lys</string>
<string name="by_name">Navn</string>

@ -34,7 +34,7 @@
<string name="sort_order">क्रमबद्ध क्रम</string>
<string name="theme">थीम</string>
<string name="light">उज्यालो</string>
<string name="automatic">सिस्टम पालना गर्नुहोस्</string>
<string name="follow_system">सिस्टम पालना गर्नुहोस्</string>
<string name="computing_">कम्प्युटिङ…</string>
<string name="favourites">मनपर्ने</string>
<string name="details">विवरण</string>

@ -100,7 +100,7 @@
<string name="by_name">Namn</string>
<string name="updated">Oppdatert</string>
<string name="theme">Vising</string>
<string name="automatic">Lyd systemet</string>
<string name="follow_system">Lyd systemet</string>
<string name="dark">Mørk</string>
<string name="text_local_holder_primary">Hent noko først</string>
<string name="not_available">Ikkje tilgjengeleg</string>

@ -174,7 +174,7 @@
<string name="notifications_settings">Ustawienia powiadomień</string>
<string name="remote_sources">Zewnętrzne źródła</string>
<string name="theme">Motyw</string>
<string name="automatic">Systemowy</string>
<string name="follow_system">Systemowy</string>
<string name="clear_pages_cache">Wyczyść pamięć podręczną stron</string>
<string name="text_file_sizes">B|kB|MB|GB|TB</string>
<string name="grid_size">Wielkość siatki</string>

@ -188,7 +188,7 @@
<string name="various_languages">Vários idiomas</string>
<string name="text_clear_history_prompt">Limpar todo o histórico de leitura permanentemente\?</string>
<string name="operation_not_supported">Esta operação não é suportada</string>
<string name="automatic">Automático (segue o sistema)</string>
<string name="follow_system">Automático (segue o sistema)</string>
<string name="enabled_d_of_d" tools:ignore="PluralsCandidate">%1$d de %2$d em</string>
<string name="webtoon">Webtoon</string>
<string name="switch_pages">Alternar páginas</string>

@ -34,7 +34,7 @@
<string name="sort_order">Ordem de classificação</string>
<string name="filter">Filtro</string>
<string name="dark">Escuro</string>
<string name="automatic">Siga o sistema</string>
<string name="follow_system">Siga o sistema</string>
<string name="pages">Páginas</string>
<string name="clear">Limpar</string>
<string name="text_clear_history_prompt">Limpar todo o histórico de leitura permanentemente\?</string>
@ -343,7 +343,7 @@
<string name="import_will_start_soon">A importação começará em breve</string>
<string name="feed">Fluxo</string>
<string name="manga_error_description_pattern">Detalhes do erro:&lt;br&gt;&lt;tt&gt;%1$s&lt;/tt&gt;&lt;br&gt;&lt;br&gt;1. Tente &lt;a href=%2$s&gt;abra a página do mangá em um navegador da web&lt;/a&gt; para garantir que o mesmo esteja disponível em sua fonte&lt;br&gt;2. Se estiver disponível, envie um relatório de erro para os desenvolvedores.</string>
<string name="reader_control_ltr_summary">Tocar na borda direita ou pressionar a tecla direita sempre muda para a próxima página</string>
<string name="reader_control_ltr_summary">Tocar na borda direita ou pressionar a tecla direita, sempre muda para a próxima página.</string>
<string name="reader_control_ltr">Controle ergonômico do leitor</string>
<string name="color_correction_hint">As configurações de cores escolhidas serão lembradas para este mangá</string>
<string name="discard">Descartar</string>
@ -588,4 +588,10 @@
<string name="check_for_new_chapters_disabled">A verificação de novos capítulos está desativada</string>
<string name="reading_time_estimation">Mostrar tempo estimado de leitura</string>
<string name="reading_time_estimation_summary">O valor do tempo estimado pode ser impreciso</string>
<string name="remove_from_history">Remover do histórico</string>
<string name="show_labels_in_navbar">Mostrar rótulos na barra de navegação</string>
<string name="default_page_save_dir">Diretório de salvamento de página padrão</string>
<string name="location">Localização</string>
<string name="pages_saving">Salvando páginas</string>
<string name="ask_for_dest_dir_every_time">Sempre pedir diretório de destinação</string>
</resources>

@ -45,7 +45,7 @@
<string name="theme">Тема</string>
<string name="light">Светлая</string>
<string name="dark">Тёмная</string>
<string name="automatic">Как в системе</string>
<string name="follow_system">Как в системе</string>
<string name="pages">Страницы</string>
<string name="clear">Очистить</string>
<string name="text_clear_history_prompt">Очистить всю историю чтения полностью\?</string>
@ -206,7 +206,7 @@
<string name="text_suggestion_holder">Начните читать мангу, чтобы получать персональные предложения</string>
<string name="exclude_nsfw_from_suggestions">Не предлагать NSFW мангу</string>
<string name="enabled">Включено</string>
<string name="disabled">Выключено</string>
<string name="disabled">Выкл.</string>
<string name="filter_load_error">Не удалось загрузить список жанров</string>
<string name="computing_">Вычисление…</string>
<string name="reset_filter">Сбросить фильтр</string>
@ -327,7 +327,7 @@
<string name="manga_error_description_pattern">Сведения об ошибке:&lt;br&gt;&lt;tt&gt;%1$s&lt;/tt&gt;&lt;br&gt;&lt;br&gt;1. Попробуйте &lt;a href=%2$s&gt;открыть мангу в веб-браузере&lt;/a&gt;, чтобы убедиться, что она доступна в источнике&lt;br&gt;2. Убедитесь, что вы используете &lt;a href=kotatsu://about&gt;последнюю версию Kotatsu&lt;/a&gt;&lt;br&gt;3. Если возможно, отправьте отчёт об ошибке разработчикам.</string>
<string name="history_shortcuts">Показывать ярлыки последней прочитанной манги</string>
<string name="history_shortcuts_summary">Сделать недавно прочитанную мангу доступной по долгому нажатию на иконку приложения</string>
<string name="reader_control_ltr_summary">Навигация «Далее» всегда приводит к следующей странице при использовании мыши и клавиатуры.</string>
<string name="reader_control_ltr_summary">Нажатие на правый край или нажатие правой клавиши всегда переключает на следующую страницу.</string>
<string name="reader_control_ltr">Эргономичное управление режимом чтения</string>
<string name="reset">Сбросить</string>
<string name="discard">Отклонить</string>
@ -469,7 +469,7 @@
<string name="disable_nsfw">Отключить NSFW</string>
<string name="too_many_requests_message">Слишком много запросов. Попробуйте повторить позже</string>
<string name="related_manga_summary">Показывать список связанной манги. В некоторых случаях список может быть нерелевантным или отсутствовать вовсе</string>
<string name="advanced">Расширенные</string>
<string name="advanced">Продвинутая</string>
<string name="default_section">Раздел по умолчанию</string>
<string name="manga_list">Список манги</string>
<string name="error_corrupted_file">Возвращаются неверные данные или файл поврежден</string>
@ -588,4 +588,10 @@
<string name="reading_time_estimation_summary">Данное значение может быть неточным</string>
<string name="check_for_new_chapters_disabled">Проверка новых глав отключена</string>
<string name="suggestions_unavailable_text">Функция предложения отключена</string>
<string name="pages_saving">Сохранение страниц</string>
<string name="ask_for_dest_dir_every_time">Спрашивать папку для сохранения каждый раз</string>
<string name="remove_from_history">Убрать из истории</string>
<string name="show_labels_in_navbar">Показывать подписи на панели навигации</string>
<string name="default_page_save_dir">Папка для сохранений по умолчанию</string>
<string name="location">Расположение</string>
</resources>

@ -6,7 +6,7 @@
<item quantity="other">%1$d ставки</item>
</plurals>
<plurals name="minutes_ago">
<item quantity="one">пре %1$d минута</item>
<item quantity="one">пре %1$d минут</item>
<item quantity="few">пре %1$d минута</item>
<item quantity="other">пре %1$d минута</item>
</plurals>
@ -26,7 +26,7 @@
<item quantity="other">%1$d нових поглавља</item>
</plurals>
<plurals name="chapters">
<item quantity="one">%1$d поглављe</item>
<item quantity="one">%1$d поглавље</item>
<item quantity="few">%1$d поглавља</item>
<item quantity="other">%1$d поглавља</item>
</plurals>

@ -52,7 +52,7 @@
<string name="notification_sound">Звук обавештења</string>
<string name="vibration">Вибрација</string>
<string name="text_empty_holder_primary">Овде је некако празно…</string>
<string name="pages_animation">Анимација превлачења</string>
<string name="pages_animation">Анимација превлачења странице</string>
<string name="about">О апликацији</string>
<string name="app_version">Верзија %s</string>
<string name="black_dark_theme">Црна</string>
@ -85,7 +85,7 @@
<string name="newest">Најновије</string>
<string name="light">Светла</string>
<string name="dark">Мрачна</string>
<string name="automatic">Прати систем</string>
<string name="follow_system">Прати систем</string>
<string name="filter">Филтер</string>
<string name="theme">Тема</string>
<string name="pages">Странице</string>
@ -118,7 +118,7 @@
<string name="volume_buttons">Притисни дугмад за јачину звука</string>
<string name="notifications">Обавештења</string>
<string name="pages_cache">Кеш страница</string>
<string name="text_shelf_holder_secondary">Пронађите шта да читате у одељку „Преглед“</string>
<string name="text_shelf_holder_secondary">Пронађи шта ћеш да читаш у одељку „Преглед“</string>
<string name="manga_shelf">Полица</string>
<string name="check_for_updates">Провери ажурирања</string>
<string name="feed">Новости</string>
@ -127,13 +127,13 @@
<string name="explore">Преглед</string>
<string name="options">Опције</string>
<string name="add_to_favourites">Додај у омиљене</string>
<string name="text_history_holder_secondary">Пронађите ствари за читање у одељку „Преглед“</string>
<string name="light_indicator">ЛЕД показатељ</string>
<string name="text_history_holder_secondary">Пронађи ствари за читање у одељку „Преглед“</string>
<string name="light_indicator">Показатељ ЛЕД светла</string>
<string name="favourites_categories">Омиљене категорије</string>
<string name="remove_category">Избриши</string>
<string name="remove_category">Уклони</string>
<string name="enabled_d_of_d" tools:ignore="PluralsCandidate">Омогућено је %1$d од %2$d</string>
<string name="clear">Избриши</string>
<string name="text_history_holder_primary">Оно што прочитате биће приказано овде</string>
<string name="text_history_holder_primary">Оно што прочиташ биће приказано овде</string>
<string name="delete">Избриши</string>
<string name="search_history_cleared">Очишћено</string>
<string name="_s_deleted_from_local_storage">\"%s\" избрисано из локалне меморије</string>
@ -418,7 +418,7 @@
<string name="no_access_to_file">Немаш приступ овој датотеци или директоријуму</string>
<string name="exclude_nsfw_from_history_summary">Манга означена за одрасле никада неће бити додата у историју и ваш напредак неће бити сачуван</string>
<string name="mark_as_current">Означи као тренутно</string>
<string name="protect_application_summary">Затражи лозинку када покрећете Котатсу</string>
<string name="protect_application_summary">Затражи лозинку када покрећеш Kotatsu</string>
<string name="right_to_left">Са десна на лево</string>
<string name="show_reading_indicators_summary">Прикажи проценат читања у историји и омиљеним</string>
<string name="random">Насумично</string>
@ -442,7 +442,7 @@
<string name="theme_name_rikka">Рикка</string>
<string name="disabled">Онемогући</string>
<string name="long_ago">Давно</string>
<string name="reader_control_ltr_summary">Додиром на десну ивицу или притиском на десну стрелицу пребацује се на следећу страницу</string>
<string name="reader_control_ltr_summary">Додиривање десне ивице, или притискање десне стрелице, увек прелази на следећу страницу.</string>
<string name="incognito_mode">Режим без чувања</string>
<string name="no_bookmarks_summary">Можеш направити обележивач док читаш мангу</string>
<string name="theme_name_mamimi">Мамими</string>
@ -588,4 +588,10 @@
<string name="reading_time_estimation_summary">Вредност процене времена може бити нетачна</string>
<string name="check_for_new_chapters_disabled">Провера нових поглавља је искључена</string>
<string name="fullscreen_mode">Режим целог екрана</string>
<string name="remove_from_history">Уклони из историје</string>
<string name="location">Локација</string>
<string name="ask_for_dest_dir_every_time">Затражи одредишни дииректоријум сваки пут</string>
<string name="default_page_save_dir">Подразумевани директоријум за чување странице</string>
<string name="show_labels_in_navbar">Прикажи ознаке на навигационој траци</string>
<string name="pages_saving">Чување страница</string>
</resources>

@ -39,7 +39,7 @@
<string name="manga_downloading_">Laddar ned…</string>
<string name="processing_">Behandlar…</string>
<string name="theme">Tema</string>
<string name="automatic">Systemtema</string>
<string name="follow_system">Systemtema</string>
<string name="remove">Ta bort</string>
<string name="text_file_sizes">B|kB|MB|GB|TB</string>
<string name="add_new_category">Ny kategori</string>

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
<string name="light">สว่าง</string>
<string name="automatic">ตั้งค่าตามเครื่อง</string>
<string name="follow_system">ตั้งค่าตามเครื่อง</string>
<string name="text_clear_history_prompt">จะเคลียร์ประวัติการอ่านทั้งหมดแบบถาวรใช่ไหม\?</string>
<string name="remove">ลบ</string>
<string name="_s_deleted_from_local_storage">\"%s\" ได้ถูกลบจากที่จัดเก็บในเครื่องแล้ว</string>

@ -37,7 +37,7 @@
<string name="theme">Tema</string>
<string name="light">ık</string>
<string name="dark">Koyu</string>
<string name="automatic">Sistemle uyumlu</string>
<string name="follow_system">Sistemle uyumlu</string>
<string name="pages">Sayfalar</string>
<string name="clear">Temizle</string>
<string name="text_clear_history_prompt">Tüm okuma geçmişi kalıcı olarak silinsin mi\?</string>
@ -331,7 +331,7 @@
<string name="contrast">Kontrast</string>
<string name="reset">Sıfırla</string>
<string name="color_correction_hint">Seçilen renk ayarları bu manga için hatırlanacaktır</string>
<string name="text_unsaved_changes_prompt">Kaydedilmeyen değişiklikler kaydedilsin mi?</string>
<string name="text_unsaved_changes_prompt">Kaydedilmeyen değişiklikler kaydedilsin mi yoksa yok mu sayılsın?</string>
<string name="discard">Yoksay</string>
<string name="error_no_space_left">Cihazda yer yok</string>
<string name="webtoon_zoom">Webtoon yakınlaştırma</string>
@ -344,7 +344,7 @@
<string name="server_error">Sunucu hatası (%1$d). Lütfen daha sonra tekrar deneyin</string>
<string name="saved_manga">Kaydedilen mangalar</string>
<string name="history_shortcuts_summary">Uygulama simgesine uzun basarak son mangaları kullanılabilir hale getirin</string>
<string name="reader_control_ltr_summary">Fare ve klavye kullanırken sonraki seçeneği sizi her zaman bir sonraki sayfaya götürür.</string>
<string name="reader_control_ltr_summary">Sağ kenara dokunulduğunda veya sağ tuşa basıldığında her zaman bir sonraki sayfaya geçilir.</string>
<string name="source_disabled">Kaynak devre dışı</string>
<string name="prefetch_content">İçerik ön yüklemesi</string>
<string name="mark_as_current">Geçerli olarak işaretle</string>
@ -578,14 +578,20 @@
<string name="next_chapter">Sonraki bölüm</string>
<string name="prev_page">Önceki sayfa</string>
<string name="next_page">Sonraki sayfa</string>
<string name="config_reset_confirm">Ayarlar öntanımlı değerlere sıfırlansın mı? Bu eylem geri alınamaz.</string>
<string name="config_reset_confirm">Ayarlar varsayılan değerlere sıfırlansın mı? Bu eylem geri alınamaz.</string>
<string name="use_two_pages_landscape">Yatay yönde iki sayfa düzeni kullan (beta)</string>
<string name="email_password_enter_hint">Devam etmek için e-posta adresinizi ve parolanızı girin</string>
<string name="default_webtoon_zoom_out">Öntanımlı webtoon uzaklaştırması</string>
<string name="default_webtoon_zoom_out">Varsayılan webtoon uzaklaştırması</string>
<string name="fullscreen_mode">Tam ekran modu</string>
<string name="reader_fullscreen_summary">Sistem durumunu ve gezinme çubuklarını gizle</string>
<string name="suggestions_unavailable_text">Öneriler özelliği devre dışı</string>
<string name="check_for_new_chapters_disabled">Yeni bölümlerin denetlenmesi devre dışı</string>
<string name="reading_time_estimation">Tahmini okuma süresini göster</string>
<string name="reading_time_estimation_summary">Süre tahmin değeri yanlış olabilir</string>
<string name="show_labels_in_navbar">Gezinme çubuğunda etiketleri göster</string>
<string name="pages_saving">Sayfalar kaydediliyor</string>
<string name="ask_for_dest_dir_every_time">Her seferinde hedef dizini sor</string>
<string name="default_page_save_dir">Varsayılan sayfa kaydetme konumu</string>
<string name="remove_from_history">Geçmişten kaldır</string>
<string name="location">Konum</string>
</resources>

@ -191,7 +191,7 @@
<string name="manga_downloading_">Завантаження…</string>
<string name="clear">Очистити</string>
<string name="downloads">Завантаження</string>
<string name="automatic">Як в системі</string>
<string name="follow_system">Як в системі</string>
<string name="chapter_is_missing">Розділ відсутній</string>
<string name="genres">Жанри</string>
<string name="system_default">За умовчанням</string>
@ -327,7 +327,7 @@
<string name="manga_error_description_pattern">Деталі помилки:&lt;br&gt;&lt;tt&gt;%1$s&lt;/tt&gt;&lt;br&gt;&lt;br&gt;1. Спробуйте &lt;a href=%2$s&gt;відкрити манґу у веб-браузері&lt;/a&gt;, щоб переконатися, що вона доступна в джерелі&lt;br&gt;2. Переконайтеся, що ви використовуєте &lt;a href=kotatsu://about&gt;останню версію Kotatsu&lt;/a&gt;&lt;br&gt;3. Якщо він доступний, надішліть звіт про помилку розробникам.</string>
<string name="history_shortcuts">Показувати ярлики останньої прочитаної манґи</string>
<string name="history_shortcuts_summary">Зробити нещодавно прочитану манґу доступною за довгим натисканням на іконку застосунку</string>
<string name="reader_control_ltr_summary">Навігація «Далі» завжди веде до наступної сторінки під час використання миші та клавіатури.</string>
<string name="reader_control_ltr_summary">Натискання на правий край або натискання правої клавіші завжди перемикається на наступну сторінку.</string>
<string name="reader_control_ltr">Ергономічне керування режимом читання</string>
<string name="brightness">Яскравість</string>
<string name="color_correction">Корекція кольору</string>
@ -469,7 +469,7 @@
<string name="disable_nsfw">Вимкнути NSFW</string>
<string name="related_manga_summary">Показати список пов\'язаної манґи. У деяких випадках він може бути неточним або відсутнім</string>
<string name="too_many_requests_message">Занадто багато запитів. Спробуйте пізніше</string>
<string name="advanced">Розширені</string>
<string name="advanced">Просунута</string>
<string name="default_section">Розділ за умовчанням</string>
<string name="manga_list">Список манґи</string>
<string name="error_corrupted_file">Повертаються неправильні дані або файл пошкоджено</string>
@ -588,4 +588,10 @@
<string name="reading_time_estimation_summary">Це значення може бути неточним</string>
<string name="check_for_new_chapters_disabled">Перевірка нових глав вимкнена</string>
<string name="suggestions_unavailable_text">Функція пропозицій вимкнена</string>
<string name="pages_saving">Збереження сторінок</string>
<string name="ask_for_dest_dir_every_time">Щоразу запитувати директорію призначення</string>
<string name="remove_from_history">Видалити з історії</string>
<string name="show_labels_in_navbar">Показувати мітки на панелі навігації</string>
<string name="default_page_save_dir">Директорія збереження сторінки за замовчуванням</string>
<string name="location">Розташування</string>
</resources>

@ -201,7 +201,7 @@
<string name="sort_order">Sắp xếp theo</string>
<string name="dark">Tối</string>
<string name="light">Sáng</string>
<string name="automatic">Theo hệ thống</string>
<string name="follow_system">Theo hệ thống</string>
<string name="_s_deleted_from_local_storage">\"%s\" đã bị xoá khỏi bộ nhớ cục bộ</string>
<string name="share_image">Chia sẻ hình ảnh</string>
<string name="page_saved">Đã lưu</string>

@ -4,11 +4,11 @@
<string name="local_storage">本地</string>
<string name="favourites">收藏</string>
<string name="history">历史</string>
<string name="error_occurred">发生错误</string>
<string name="error_occurred">出错了</string>
<string name="network_error">网络错误</string>
<string name="chapters">章节</string>
<string name="list">列表</string>
<string name="data_restored_with_errors">数据已恢复,但发生了一些错误</string>
<string name="data_restored_with_errors">数据已恢复,但出现了一些错误</string>
<string name="processing_">正在处理…</string>
<string name="newest">最新</string>
<string name="by_rating">评分</string>
@ -24,21 +24,21 @@
<string name="group">分组</string>
<string name="tap_to_try_again">点击重试</string>
<string name="reader_mode_hint">所选模式只会在此漫画上使用</string>
<string name="captcha_required">需要通过验证</string>
<string name="captcha_required">需要通过人机身份验证</string>
<string name="captcha_solve">开始验证</string>
<string name="today">今天</string>
<string name="clear_cookies">清除 Cookies</string>
<string name="new_sources_text">有新的可用图源</string>
<string name="new_sources_text">以下是新增的可用图源</string>
<string name="suggestions_summary">根据你的喜好推荐漫画</string>
<string name="suggestions_info">所有数据都在本地设备上进行分析,不会发送到其他地方。</string>
<string name="suggestions_info">所有数据都在本地分析,不会发送到其他地方。</string>
<string name="never">从不</string>
<string name="show_notification_new_chapters_on">发送正在阅读漫画的更新通知</string>
<string name="show_notification_new_chapters_on">接收在读漫画的更新通知</string>
<string name="nsfw">R18</string>
<string name="various_languages">多语言</string>
<string name="search_chapters">查找章节</string>
<string name="suggestions_excluded_genres">排除分类</string>
<string name="suggestions_updating">正在更新漫画推荐</string>
<string name="check_new_chapters_title">检查新章节并通知结果</string>
<string name="check_new_chapters_title">检查漫画新章节并接收通知</string>
<string name="details">详情</string>
<string name="detailed_list">卡片</string>
<string name="grid">网格</string>
@ -49,13 +49,13 @@
<string name="chapter_d_of_d">%1$d/%2$d 章</string>
<string name="close">关闭</string>
<string name="try_again">重试</string>
<string name="clear_history">清除历史</string>
<string name="clear_history">清除历史记录</string>
<string name="nothing_found">结果为空</string>
<string name="history_is_empty">暂无历史记录</string>
<string name="read">阅读</string>
<string name="you_have_not_favourites_yet">暂无漫画收藏</string>
<string name="add_to_favourites">收藏此漫画</string>
<string name="add_new_category">新分类</string>
<string name="add_new_category">添加新分类</string>
<string name="add">添加</string>
<string name="save">保存</string>
<string name="share">分享</string>
@ -71,16 +71,16 @@
<string name="updated">最近更新</string>
<string name="sort_order">排序方式</string>
<string name="filter">筛选</string>
<string name="theme">主题</string>
<string name="theme">颜色模式</string>
<string name="dark">深色</string>
<string name="light">浅色</string>
<string name="automatic">跟随系统</string>
<string name="follow_system">跟随系统</string>
<string name="pages">页面</string>
<string name="clear">清除</string>
<string name="text_clear_history_prompt">要永久清除所有阅读历史吗?</string>
<string name="text_clear_history_prompt">确定永久清除所有阅读历史?</string>
<string name="remove">删除</string>
<string name="_s_deleted_from_local_storage">已从本地存储中删除“%s”</string>
<string name="save_page">保存本页</string>
<string name="save_page">保存图片</string>
<string name="page_saved">保存成功</string>
<string name="share_image">分享图片</string>
<string name="_import">导入</string>
@ -96,7 +96,7 @@
<string name="grid_size">网格大小</string>
<string name="search_on_s">在%s上搜索</string>
<string name="delete_manga">删除漫画</string>
<string name="text_delete_local_manga">要从设备中永久删除\"%s\"吗?</string>
<string name="text_delete_local_manga">确定从设备中永久删除\"%s\"?</string>
<string name="reader_settings">阅读</string>
<string name="switch_pages">翻页方式</string>
<string name="volume_buttons">音量键</string>
@ -104,7 +104,7 @@
<string name="taps_on_edges">点击边缘</string>
<string name="error">错误</string>
<string name="clear_thumbs_cache">清除缩略图缓存</string>
<string name="clear_search_history">清除搜索历史</string>
<string name="clear_search_history">清除搜索记录</string>
<string name="search_history_cleared">清除完毕</string>
<string name="gestures_only">仅限滑动手势</string>
<string name="internal_storage">内部存储</string>
@ -112,7 +112,7 @@
<string name="domain">图源域名</string>
<string name="app_update_available">发现新版本</string>
<string name="open_in_browser">在浏览器中打开</string>
<string name="large_manga_save_confirm">这部漫画有 %s 要全部保存吗?</string>
<string name="large_manga_save_confirm">这部漫画有 %s 要全部保存吗?</string>
<string name="save_manga">保存</string>
<string name="notifications">通知</string>
<string name="new_chapters">新章节</string>
@ -126,13 +126,13 @@
<string name="text_empty_holder_primary">什么都没有…</string>
<string name="text_search_holder_secondary">试试换一个词再搜索。</string>
<string name="text_history_holder_primary">看过的漫画将在这里显示</string>
<string name="text_history_holder_secondary">&lt;浏览&gt;页面搜索读的漫画</string>
<string name="text_local_holder_primary">请先在线下载或进行本地导入</string>
<string name="text_local_holder_secondary">下载图源内容或通过本地文件导入</string>
<string name="text_history_holder_secondary">&lt;浏览&gt;页面搜索读的漫画</string>
<string name="text_local_holder_primary">存点什么吧</string>
<string name="text_local_holder_secondary">可下载在线图源里的漫画或导入本地漫画文件</string>
<string name="manga_shelf">书架</string>
<string name="recent_manga">最近</string>
<string name="pages_animation">翻页动画</string>
<string name="manga_save_location">存储目录</string>
<string name="manga_save_location">选择存储目录</string>
<string name="not_available">不可用</string>
<string name="cannot_find_available_storage">没有多余的存储空间</string>
<string name="other_storage">其他存储</string>
@ -141,14 +141,14 @@
<string name="favourites_category_empty">目前分类为空</string>
<string name="read_later">稍后阅读</string>
<string name="updates">更新内容</string>
<string name="text_feed_holder">读漫画的新章节将在这里显示</string>
<string name="text_feed_holder">在读漫画的新章节将在这里显示</string>
<string name="search_results">搜索结果</string>
<string name="new_version_s">新版本: %s</string>
<string name="clear_updates_feed">清除订阅更新记录</string>
<string name="updates_feed_cleared">订阅更新已清除</string>
<string name="clear_updates_feed">清除漫画更新记录</string>
<string name="updates_feed_cleared">更新记录已清除</string>
<string name="rotate_screen">旋转屏幕</string>
<string name="update">开始更新</string>
<string name="feed_will_update_soon">即将开始更新订阅</string>
<string name="feed_will_update_soon">即将开始更新漫画</string>
<string name="track_sources">章节更新范围</string>
<string name="dont_check">不检查</string>
<string name="enter_password">输入密码</string>
@ -158,11 +158,11 @@
<string name="repeat_password">重复密码</string>
<string name="passwords_mismatch">密码不一致</string>
<string name="about">关于</string>
<string name="app_version">版本 %s</string>
<string name="app_version">版本 (%s)</string>
<string name="check_for_updates">检查更新</string>
<string name="no_update_available">无可用更新</string>
<string name="no_update_available">已是最新版本</string>
<string name="right_to_left">从右到左</string>
<string name="create_category">新分类</string>
<string name="create_category">添加新分类</string>
<string name="scale_mode">显示模式</string>
<string name="zoom_mode_fit_center">填充屏幕</string>
<string name="zoom_mode_fit_height">适应高度</string>
@ -174,9 +174,9 @@
<string name="create_backup">创建备份</string>
<string name="restore_backup">恢复备份</string>
<string name="data_restored">恢复完成</string>
<string name="clear_feed">清除订阅</string>
<string name="text_clear_updates_feed_prompt">要永久清除所有的更新历史吗</string>
<string name="check_for_new_chapters">章节更新</string>
<string name="clear_feed">清除更新</string>
<string name="text_clear_updates_feed_prompt">确定永久清除所有漫画更新记录</string>
<string name="check_for_new_chapters">漫画更新</string>
<string name="reverse">倒序</string>
<string name="sign_in">登录</string>
<string name="auth_required">登录后可查看此内容</string>
@ -185,10 +185,10 @@
<string name="protect_application_subtitle">输入密码以解锁</string>
<string name="confirm">确认</string>
<string name="password_length_hint">密码必须大于或等于4个字符</string>
<string name="text_clear_search_history_prompt">要永久删除所有搜索记录吗</string>
<string name="text_clear_search_history_prompt">确定永久清除所有搜索记录</string>
<string name="welcome">欢迎</string>
<string name="backup_saved">备份已保存</string>
<string name="tracker_warning">不同设备导致不同的系统调度可能会杀掉本应用的后台任务。</string>
<string name="tracker_warning">不同设备不同的系统调度可能会杀掉本应用的后台任务。</string>
<string name="read_more">了解详情</string>
<string name="queued">等待</string>
<string name="chapter_is_missing">该章缺失</string>
@ -205,7 +205,7 @@
<string name="show_pages_numbers">页码</string>
<string name="enabled_sources">已用图源</string>
<string name="available_sources">可用图源</string>
<string name="screenshots_policy">截图限制</string>
<string name="screenshots_policy">阅读时截图限制</string>
<string name="screenshots_allow">无限制</string>
<string name="screenshots_block_nsfw">仅阅读成人内容时禁止</string>
<string name="screenshots_block_all">总是禁止截图</string>
@ -214,10 +214,10 @@
<string name="text_suggestion_holder">开始阅读漫画,即可获取个性化推荐</string>
<string name="exclude_nsfw_from_suggestions">禁止推荐成人漫画</string>
<string name="enabled">启用</string>
<string name="disabled">禁用</string>
<string name="disabled">关闭</string>
<string name="filter_load_error">无法加载分类列表</string>
<string name="reset_filter">重置筛选</string>
<string name="onboard_text">选择想要阅读漫画的语言可之后在设置中更改。</string>
<string name="onboard_text">选择想要阅读漫画的语言可之后在设置中更改。</string>
<string name="only_using_wifi">仅连接 Wi-Fi 时</string>
<string name="always">总是</string>
<string name="preload_pages">页面预加载</string>
@ -225,14 +225,14 @@
<string name="chapters_empty">此漫画没有章节</string>
<string name="appearance">外观</string>
<string name="suggestions_excluded_genres_summary">输入不希望在推荐中看到的分类</string>
<string name="text_delete_local_manga_batch">要从系统中永久删除所选项目吗</string>
<string name="text_delete_local_manga_batch">确定从设备中永久删除所选漫画</string>
<string name="removal_completed">删除成功</string>
<string name="download_slowdown">限速下载</string>
<string name="download_slowdown_summary">有助于避免封禁你的IP地址</string>
<string name="local_manga_processing">正在处理已保存漫画</string>
<string name="chapters_will_removed_background">章节将在后台被删除</string>
<string name="hide">隐藏</string>
<string name="show_notification_new_chapters_off">不会发送通知但新的章节将在列表中高亮显示</string>
<string name="show_notification_new_chapters_off">不会接收更新通知但新的章节将在漫画列表中高亮显示</string>
<string name="notifications_enable">开启通知</string>
<string name="name">名称</string>
<string name="edit">编辑</string>
@ -244,16 +244,16 @@
<string name="bookmark_removed">书签已删除</string>
<string name="bookmark_added">书签已添加</string>
<string name="undo">撤销</string>
<string name="removed_from_history">已从历史记录中删除</string>
<string name="removed_from_history">历史记录已删除</string>
<string name="dns_over_https">基于 HTTPS 的 DNS</string>
<string name="default_mode">默认阅读模式</string>
<string name="detect_reader_mode">自动检测阅读模式</string>
<string name="detect_reader_mode_summary">自动检测是否应用条漫模式</string>
<string name="disable_battery_optimization">禁用电池优化</string>
<string name="disable_battery_optimization_summary">有助于进行后台更新检查</string>
<string name="crash_text">出错了请向开发人员提交错误报告以帮助修复问题。</string>
<string name="detect_reader_mode">自动检测条漫模式</string>
<string name="detect_reader_mode_summary">阅读条漫时自动应用条漫模式</string>
<string name="disable_battery_optimization">关闭电池优化</string>
<string name="disable_battery_optimization_summary">有助于检查更新的后台运行</string>
<string name="crash_text">出错了请向开发人员提交错误报告以帮助修复问题。</string>
<string name="send">发送</string>
<string name="disable_all">全部禁用</string>
<string name="disable_all">全部关闭</string>
<string name="status_planned">想读</string>
<string name="status_on_hold">休刊中</string>
<string name="report">报告</string>
@ -269,12 +269,12 @@
<string name="show_reading_indicators">显示阅读进度</string>
<string name="data_deletion">数据删除</string>
<string name="exclude_nsfw_from_history_summary">标记为含有成人内容的漫画将不会添加到历史记录,也不会保存阅读记录</string>
<string name="clear_cookies_summary">能对部分问题起到一些作用。所有网站的授权将会失效</string>
<string name="clear_cookies_summary">可帮助稍微解决部分问题,所有网站的授权将会失效</string>
<string name="show_all">显示全部</string>
<string name="manga_error_description_pattern">错误详情:&lt;br&gt;&lt;tt&gt;%1$s&lt;/tt&gt;&lt;br&gt;&lt;br&gt;1.尝试&lt;a href=%2$s&gt;网络浏览器中打开漫画&lt;/a&gt;以确保在其图源中可用&lt;br&gt;2.请确保使用的是&lt;a href=kotatsu://about&gt;最新版本的Kotatsu&lt;/a&gt;&lt;br&gt;3.若图源没有问题,请向开发人员发送错误报告。</string>
<string name="manga_error_description_pattern">错误详情:&lt;br&gt;&lt;tt&gt;%1$s&lt;/tt&gt;&lt;br&gt;&lt;br&gt;1.尝试&lt;a href=%2$s&gt;在浏览器中打开漫画&lt;/a&gt;确保漫画在图源中正常显示&lt;br&gt;2.确认正在使用的是&lt;a href=kotatsu://about&gt;最新版本的Kotatsu&lt;/a&gt;&lt;br&gt;3.若已排除以上问题,请向开发人员发送错误报告。</string>
<string name="invalid_domain_message">无效域名</string>
<string name="text_shelf_holder_primary">此处将显示你的漫画</string>
<string name="text_shelf_holder_secondary">&lt;浏览&gt;页面搜索读的漫画</string>
<string name="text_shelf_holder_secondary">&lt;浏览&gt;页面搜索读的漫画</string>
<string name="percent_string_pattern">%1$s%%</string>
<string name="canceled">已取消</string>
<string name="account_already_exists">账号已存在</string>
@ -284,23 +284,23 @@
<string name="email_enter_hint">输入邮箱地址以继续</string>
<string name="status_dropped">已腰斩</string>
<string name="select_range">选择范围</string>
<string name="clear_all_history">清除所有历史</string>
<string name="clear_all_history">清除所有历史记录</string>
<string name="last_2_hours">过去2小时</string>
<string name="bookmarks_removed">书签已删除</string>
<string name="history_cleared">历史记录已清除</string>
<string name="manage">管理</string>
<string name="no_bookmarks_yet">暂无书签</string>
<string name="no_bookmarks_summary">可在阅读漫画时创建书签</string>
<string name="no_manga_sources">没有图源</string>
<string name="no_manga_sources_text">启用图源即可在线阅读漫画</string>
<string name="no_manga_sources">暂无图源</string>
<string name="no_manga_sources_text">开启一个图源即可在线阅读漫画</string>
<string name="random">随机</string>
<string name="categories_delete_confirm">确定要删除选定的分类吗
<string name="categories_delete_confirm">确定删除选中分类
\n该分类中的所有漫画将丢失且无法恢复。</string>
<string name="reorder">重新排序</string>
<string name="empty">分类为空</string>
<string name="explore">浏览</string>
<string name="automatic_scroll">自动滚动</string>
<string name="reader_info_bar">阅读时显示状态信息</string>
<string name="automatic_scroll">自动翻页</string>
<string name="reader_info_bar">显示阅读状态</string>
<string name="comics_archive">漫画压缩包</string>
<string name="folder_with_images">图片文件夹</string>
<string name="importing_manga">漫画导入中</string>
@ -315,18 +315,18 @@
<string name="other_cache">其他缓存</string>
<string name="storage_usage">存储占用</string>
<string name="available">可用</string>
<string name="removed_from_favourites">已从收藏中删除</string>
<string name="removed_from_favourites">收藏漫画已删除</string>
<string name="options">选项</string>
<string name="incognito_mode">无痕模式</string>
<string name="no_chapters">没有章节</string>
<string name="import_completed">导入完毕</string>
<string name="import_completed_hint">可删除原文件节省存储空间</string>
<string name="import_will_start_soon">即将开始导入</string>
<string name="feed">订阅</string>
<string name="feed">更新</string>
<string name="memory_usage_pattern">%s - %s</string>
<string name="not_found_404">没有章节或已被删除</string>
<string name="reader_control_ltr_summary">当使用鼠标或键盘时,向下导航更改为下一页。</string>
<string name="reader_control_ltr">简易控制</string>
<string name="reader_control_ltr_summary">点击屏幕右侧边缘或按下右键总是翻到下一页</string>
<string name="reader_control_ltr">简易操作</string>
<string name="history_shortcuts_summary">长按应用图标显示最近阅读的漫画</string>
<string name="history_shortcuts">显示最近阅读漫画的快捷方式</string>
<string name="reset">重置</string>
@ -345,7 +345,7 @@
<string name="clear_new_chapters_counters">同时清除新章节信息</string>
<string name="server_error">服务器错误 (%1$d)。请稍后重试</string>
<string name="compact">列表</string>
<string name="source_disabled">图源已禁用</string>
<string name="source_disabled">图源已关闭</string>
<string name="prefetch_content">内容预加载</string>
<string name="mark_as_current">标为当前</string>
<string name="language">语言</string>
@ -354,7 +354,7 @@
<string name="enable_logging_summary">出于调试目的记录某些操作,若不知道有何用处请不要自行开启</string>
<string name="show_suspicious_content">显示可疑内容</string>
<string name="theme_name_dynamic">动态</string>
<string name="color_theme">颜色方案</string>
<string name="color_theme">配色主题</string>
<string name="show_in_grid_view">切换为网格视图</string>
<string name="theme_name_miku">Miku</string>
<string name="theme_name_asuka">Asuka</string>
@ -365,23 +365,23 @@
<string name="theme_name_mamimi">Mamimi</string>
<string name="theme_name_kanade">Kanade</string>
<string name="nothing_here">这里什么也没有</string>
<string name="scrobbling_empty_hint">要记录阅读进度,在漫画详情选中【菜单】→【进度记录】。</string>
<string name="allow_unstable_updates">允许更新不稳定版本</string>
<string name="allow_unstable_updates_summary">接收不稳定版本的更新通知</string>
<string name="download_started">已开始下载</string>
<string name="scrobbling_empty_hint">要记录阅读进度,在漫画详情页里选中【菜单】→【进度记录】。</string>
<string name="allow_unstable_updates">允许更新至测试版本</string>
<string name="allow_unstable_updates_summary">接收测试版本的更新通知</string>
<string name="download_started">下载已开始</string>
<string name="user_agent">UserAgent 标识</string>
<string name="settings_apply_restart_required">要应用这些更改请重启程序</string>
<string name="settings_apply_restart_required">重启程序后更改</string>
<string name="sources_reorder_tip">点击并长按项目排序</string>
<string name="got_it">知道了</string>
<string name="speed">速度</string>
<string name="restore_backup_description">导入先前创建的用户数据备份</string>
<string name="show_on_shelf">在书架上显示</string>
<string name="comics_archive_import_description">可选择一个或多个 .cbz 或 .zip 文件,每个文件都将识别为一个单独的漫画。</string>
<string name="folder_with_images_import_description">可选择一个包含压缩包或图片的文件夹。每个压缩包(或子文件夹)都会被识别为一个章节。</string>
<string name="comics_archive_import_description">可选择一个或多个 cbz 或 zip 文件,每个文件都将识别为一个单独的漫画。</string>
<string name="folder_with_images_import_description">可选择一个包含压缩包或图片的文件夹,每个压缩包 (或子文件夹) 都会被识别为一个章节。</string>
<string name="find_similar">搜索相似漫画</string>
<string name="translations">翻译</string>
<string name="web_view_unavailable">WebView不可用检查是否已安装WebView</string>
<string name="sync_host_description">可使用自建同步服务器或默认同步服务器若不知道有何用处请不要自行修改。</string>
<string name="sync_host_description">可使用自建同步服务器或默认同步服务器若不知道有何用处请不要自行修改。</string>
<string name="mirror_switching">自动选择镜像网址</string>
<string name="mirror_switching_summary">若存在可用的镜像网址,在出错时开始自动切换</string>
<string name="paused">已暂停</string>
@ -399,13 +399,13 @@
<string name="text_downloads_list_holder">暂无下载任务</string>
<string name="downloads_resumed">下载已继续</string>
<string name="downloads_paused">下载已暂停</string>
<string name="downloads_removed">下载记录已全部清除</string>
<string name="downloads_removed">下载记录已清除</string>
<string name="downloads_cancelled">下载已取消</string>
<string name="suggestions_enable_prompt">想要接收个性化的漫画推荐吗?</string>
<string name="suggestion_manga">推荐:%s</string>
<string name="suggestions_notifications_summary">偶尔显示漫画推荐通知</string>
<string name="more">更多</string>
<string name="cancel_all_downloads_confirm">将取消所有进行中的下载,部分下载完成的数据将会删除</string>
<string name="cancel_all_downloads_confirm">将取消所有进行中的下载,部分已下载完成的数据将会丢失</string>
<string name="remove_completed_downloads_confirm">所有已完成的下载记录将会永久清除</string>
<string name="sync_auth_hint">可登陆已有账号或创建新账号</string>
<string name="address">地址</string>
@ -417,13 +417,13 @@
<string name="restore_summary">从以前创建的备份恢复</string>
<string name="show_pages_numbers_summary">在右下角显示页码</string>
<string name="details_button_tip">长按阅读按钮可显示更多选项</string>
<string name="clear_source_cookies_summary">仅清除特定域名的 Cookies大多数情况下会使网站授权失效</string>
<string name="clear_source_cookies_summary">仅清除特定域名的 Cookies大多数情况下会使网站授权失效</string>
<string name="data_and_privacy">数据与隐私</string>
<string name="reader_info_bar_summary">在屏幕顶部显示当前时间和阅读进度</string>
<string name="webtoon_zoom_summary">允许在条漫模式下使用缩放手势</string>
<string name="invalid_port_number">无效端口</string>
<string name="no_access_to_file">没有权限访问该文件或目录</string>
<string name="local_manga_directories">本地漫画目录</string>
<string name="local_manga_directories">漫画本地目录</string>
<string name="port">端口</string>
<string name="manga_branch_title_template">%1$s (%2$s)</string>
<string name="download_option_all_unread">所有未读章节</string>
@ -447,10 +447,10 @@
<string name="voice_search">语音搜索</string>
<string name="this_month">本月</string>
<string name="languages">语言</string>
<string name="captcha_required_summary">%s 需要通过验证才能正常运行</string>
<string name="captcha_required_summary">%s 需要通过人机身份验证才能正常运行</string>
<string name="progress">阅读进度</string>
<string name="error_corrupted_file">回传的数据无效或文件已损坏</string>
<string name="related_manga_summary">显示相关漫画。可能并不准确或缺失</string>
<string name="related_manga_summary">显示相关漫画,可能并不相关或没有相关漫画</string>
<string name="tracker_wifi_only_summary">使用移动网络时停止检查新章节</string>
<string name="order_added">添加日期</string>
<string name="on_device">本地</string>
@ -487,7 +487,7 @@
<string name="suggest_new_sources">推荐新增图源</string>
<string name="enhanced_colors_summary">减少色带,但可能会影响性能</string>
<string name="enhanced_colors">32位色彩模式</string>
<string name="suggest_new_sources_summary">应用更新后提示开启新增图源</string>
<string name="suggest_new_sources_summary">应用更新后推荐最近新增图源</string>
<string name="frequency_every_day">每天一次</string>
<string name="categories">分类</string>
<string name="backup_frequency">备份频率</string>
@ -499,10 +499,10 @@
<string name="frequency_twice_per_month">每月两次</string>
<string name="frequency_once_per_month">每月一次</string>
<string name="last_successful_backup">上次备份成功:%s</string>
<string name="backups_output_directory">备份保存路径</string>
<string name="backups_output_directory">备份保存目录</string>
<string name="download_option_all_chapters">所有已翻译的章节 (%s)</string>
<string name="state_upcoming">即将推出</string>
<string name="by_name_reverse">名称倒序</string>
<string name="by_name_reverse">名称 (倒序)</string>
<string name="manage_sources">管理图源</string>
<string name="catalog">图源目录</string>
<string name="content_type_comics">美漫</string>
@ -510,14 +510,14 @@
<string name="content_type_manga">日漫</string>
<string name="source_summary_pattern">%1$s%2$s</string>
<string name="sources_catalog">图源目录</string>
<string name="source_enabled">已启用图源</string>
<string name="source_enabled">图源已开启</string>
<string name="content_type_hentai">成人</string>
<string name="no_manga_sources_found">本次搜索未发现可用图源</string>
<string name="no_manga_sources_catalog_text">此页面没有可用图源,或可能已添加所有可用图源。
<string name="no_manga_sources_catalog_text">此页面暂无可用图源,或可能已添加所有可用图源。
\n敬请期待后续更新</string>
<string name="welcome_text">请选择需要开启的图源内容。可稍后在设置选项中设定</string>
<string name="welcome_text">请选择需要开启的图源内容,可之后在设置中更改</string>
<string name="sync_auth">网络同步</string>
<string name="downloads_settings_info">遇到服务器端阻塞,可以在图源设置中为每个图源单独开启限速下载功能</string>
<string name="downloads_settings_info">出现服务器阻塞的情况,可在图源设置中为每个图源单独开启限速下载功能</string>
<string name="skip">跳过</string>
<string name="backup_date_">备份日期:%s</string>
<string name="content_rating">内容分级</string>
@ -526,7 +526,7 @@
<string name="rating_suggestive">R15</string>
<string name="rating_adult">R18</string>
<string name="lock_screen_rotation">锁定屏幕方向</string>
<string name="default_tab">作品详情页默认界面</string>
<string name="default_tab">漫画详情页默认界面</string>
<string name="grayscale">灰度</string>
<string name="globally">全局</string>
<string name="this_manga">此漫画</string>
@ -537,22 +537,22 @@
<string name="state_abandoned">已腰斩</string>
<string name="manual">手动</string>
<string name="available_d">%1$d 个可用</string>
<string name="disable_nsfw_summary">禁用含有成人内容的图源并尽可能从列表中隐藏成人漫画</string>
<string name="disable_nsfw_summary">关闭含有成人内容的图源并尽可能从列表中隐藏成人漫画</string>
<string name="speed_value">x%.1f</string>
<string name="error_filter_locale_genre_not_supported">此图源不支持同时按分类和区域筛选</string>
<string name="error_filter_states_genre_not_supported">此图源不支持同时按分类和状态筛选</string>
<string name="genres_search_hint">开始输入分类名称</string>
<string name="state_paused">休刊中</string>
<string name="reader_optimize">降低内存占用(测试)</string>
<string name="reader_optimize">降低内存占用 (测试)</string>
<string name="reader_optimize_summary">降低当前画面外的页面质量以减少内存占用</string>
<string name="disable_battery_optimization_summary_downloads">可能帮助解决下载过程相关的问题</string>
<string name="disable_battery_optimization_summary_downloads">也许能帮助解决下载过程中的相关问题</string>
<string name="error_search_not_supported">此图源不支持搜索</string>
<string name="state">状态</string>
<string name="error_multiple_genres_not_supported">此图源不支持按多个分类筛选</string>
<string name="error_multiple_states_not_supported">此图源不支持按多个状态筛选</string>
<string name="by_relevance">关联</string>
<string name="mark_as_completed">标记为已读</string>
<string name="mark_as_completed_prompt">要将选定的漫画标记为已读吗
<string name="mark_as_completed_prompt">确定将选定漫画标记为已读
\n
\n警告 当前的阅读进度将会丢失。</string>
<string name="category_hidden_done">此分类已从主页隐藏,可通过菜单 → 管理分类来访问</string>
@ -562,7 +562,7 @@
<string name="volume_">第 %d 卷</string>
<string name="volume_unknown">未知卷</string>
<string name="incognito_mode_hint">阅读进度不会保存</string>
<string name="vertical">垂直</string>
<string name="vertical">从上到下</string>
<string name="last_read">最近阅读</string>
<string name="switch_pages_volume_buttons_summary">使用音量键翻页</string>
<string name="two_pages">双页</string>
@ -578,14 +578,20 @@
<string name="reader_actions_summary">配置屏幕点按区域的操作</string>
<string name="reader_actions">阅读操作</string>
<string name="tap_action">点按操作</string>
<string name="use_two_pages_landscape">在横屏时开启双页模式(测试)</string>
<string name="config_reset_confirm">要恢复为默认设置吗?恢复后无法撤销。</string>
<string name="use_two_pages_landscape">横屏时开启双页模式 (测试)</string>
<string name="config_reset_confirm">确定恢复为默认设置?恢复后无法撤销。</string>
<string name="email_password_enter_hint">输入邮箱和密码以继续</string>
<string name="fullscreen_mode">全屏模式</string>
<string name="default_webtoon_zoom_out">条漫默认缩小值</string>
<string name="reader_fullscreen_summary">将系统状态栏与通知栏隐藏</string>
<string name="suggestions_unavailable_text">漫画推荐功能已被禁用</string>
<string name="check_for_new_chapters_disabled">章节更新功能已被禁用</string>
<string name="reading_time_estimation">作品详情页显示估计阅读时间</string>
<string name="suggestions_unavailable_text">漫画推荐功能已被关闭</string>
<string name="check_for_new_chapters_disabled">漫画更新功能已被关闭</string>
<string name="reading_time_estimation">漫画详情页显示估计阅读时间</string>
<string name="reading_time_estimation_summary">估计阅读时间可能会不准确</string>
<string name="show_labels_in_navbar">显示底部导航栏名称</string>
<string name="ask_for_dest_dir_every_time">保存图片时总是询问保存目录</string>
<string name="pages_saving">图片保存</string>
<string name="default_page_save_dir">图片默认保存目录</string>
<string name="remove_from_history">删除阅读历史</string>
<string name="location">存储位置</string>
</resources>

@ -34,7 +34,7 @@
<string name="show_reading_indicators_summary">在歷史紀錄與最愛中顯示閱讀百分比</string>
<string name="confirm_exit">再點擊一次返回鍵以退出</string>
<string name="local_storage">本機儲存區</string>
<string name="reader_control_ltr_summary">輕觸右邊緣或按右鍵總是切換到下一頁</string>
<string name="reader_control_ltr_summary">點擊右側邊緣或按下右鍵,總是切換到下一頁。</string>
<string name="text_unsaved_changes_prompt">儲存或放棄未儲存的變更?</string>
<string name="import_completed_hint">您可以從儲存區中刪除原始檔案以節省空間</string>
<string name="favourites">最愛</string>
@ -236,7 +236,7 @@
<string name="by_rating">評分</string>
<string name="sort_order">排列順序</string>
<string name="dark">深色</string>
<string name="automatic">跟隨系統</string>
<string name="follow_system">跟隨系統</string>
<string name="pages">頁數</string>
<string name="_import">匯入</string>
<string name="no_description">沒有描述</string>
@ -564,4 +564,34 @@
<string name="enhanced_colors_summary">減少色帶,但可能會影響效能</string>
<string name="approximate_remaining_time">大約剩餘時間</string>
<string name="remaining_time_pattern">%1$s %2$s</string>
<string name="remove_from_history">從歷史記錄中移除</string>
<string name="email_password_enter_hint">請輸入您的電子郵件和密碼以繼續</string>
<string name="two_pages">雙頁</string>
<string name="config_reset_confirm">重置設定為預設值?此動作無法撤銷。</string>
<string name="use_two_pages_landscape">在橫向模式下使用雙頁佈局(測試版)</string>
<string name="default_webtoon_zoom_out">預設網頁漫畫縮小</string>
<string name="fullscreen_mode">全螢幕模式</string>
<string name="reader_fullscreen_summary">隱藏系統狀態欄和導航欄</string>
<string name="show_menu">顯示選單</string>
<string name="prev_chapter">前一個章節</string>
<string name="prev_page">前一頁</string>
<string name="next_page">下一頁</string>
<string name="toggle_ui">顯示/隱藏介面</string>
<string name="none"></string>
<string name="reader_actions">閱讀器動作</string>
<string name="switch_pages_volume_buttons">啟用音量鍵</string>
<string name="switch_pages_volume_buttons_summary">使用音量鍵來翻頁</string>
<string name="long_tap_action">長按動作</string>
<string name="suggestions_unavailable_text">建議功能已禁用</string>
<string name="check_for_new_chapters_disabled">檢查新章節功能已禁用</string>
<string name="reading_time_estimation">顯示預估閱讀時間</string>
<string name="reading_time_estimation_summary">預估時間值可能不準確</string>
<string name="location">位置</string>
<string name="next_chapter">下一個章節</string>
<string name="reader_actions_summary">設定可點擊螢幕區域的動作</string>
<string name="tap_action">點擊動作</string>
<string name="show_labels_in_navbar">在導航欄顯示標籤</string>
<string name="pages_saving">正在儲存頁面</string>
<string name="ask_for_dest_dir_every_time">每次都詢問目的地目錄</string>
<string name="default_page_save_dir">預設頁面儲存目錄</string>
</resources>

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="themes" translatable="false">
<item>@string/automatic</item>
<item>@string/follow_system</item>
<item>@string/light</item>
<item>@string/dark</item>
</string-array>
@ -82,4 +82,9 @@
<item>@string/chapters</item>
<item>@string/pages</item>
</string-array>
<string-array name="download_formats" translatable="false">
<item>@string/automatic</item>
<item>@string/single_cbz_file</item>
<item>@string/multiple_cbz_files</item>
</string-array>
</resources>

File diff suppressed because it is too large Load Diff

@ -13,6 +13,12 @@
android:persistent="false"
android:title="@string/manga_save_location" />
<ListPreference
android:entries="@array/download_formats"
android:key="downloads_format"
android:title="@string/preferred_download_format"
app:useSimpleSummaryProvider="true" />
<SwitchPreferenceCompat
android:defaultValue="false"
android:key="downloads_wifi"

@ -6,8 +6,8 @@ buildscript {
dependencies {
classpath 'com.android.tools.build:gradle:8.2.2'
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.22'
classpath 'com.google.dagger:hilt-android-gradle-plugin:2.50'
classpath 'com.google.devtools.ksp:symbol-processing-gradle-plugin:1.9.22-1.0.16'
classpath 'com.google.dagger:hilt-android-gradle-plugin:2.51'
classpath 'com.google.devtools.ksp:symbol-processing-gradle-plugin:1.9.22-1.0.17'
}
}

Loading…
Cancel
Save