Compare commits

...

18 Commits

Author SHA1 Message Date
Koitharu
42bb5a65ab Fix crash in ScrobblingInfoSheet 2023-07-24 16:08:25 +03:00
Koitharu
0c37265a5b Update parsers 2023-07-24 16:03:08 +03:00
plum7x
7a65ae3ea7 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (447 of 447 strings)

Co-authored-by: plum7x <plumgift@hotmail.com>
Translate-URL: https://hosted.weblate.org/projects/kotatsu/strings/zh_Hant/
Translation: Kotatsu/Strings
2023-07-24 15:56:11 +03:00
InfinityDouki56
ee027cd64f Translated using Weblate (Filipino)
Currently translated at 91.0% (407 of 447 strings)

Co-authored-by: InfinityDouki56 <ced.paltep10@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/kotatsu/strings/fil/
Translation: Kotatsu/Strings
2023-07-22 13:59:48 +03:00
Макар Разин
7b2bb5ea8f Translated using Weblate (Polish)
Currently translated at 100.0% (447 of 447 strings)

Translated using Weblate (Korean)

Currently translated at 79.6% (356 of 447 strings)

Co-authored-by: Макар Разин <makarrazin14@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/kotatsu/strings/ko/
Translate-URL: https://hosted.weblate.org/projects/kotatsu/strings/pl/
Translation: Kotatsu/Strings
2023-07-22 13:59:48 +03:00
plum7x
eff2d6bcb6 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (447 of 447 strings)

Co-authored-by: plum7x <plumgift@hotmail.com>
Translate-URL: https://hosted.weblate.org/projects/kotatsu/strings/zh_Hant/
Translation: Kotatsu/Strings
2023-07-22 13:59:48 +03:00
Koitharu
08acf2d882 Fix crashes 2023-07-19 15:18:30 +03:00
Koitharu
1d78c64350 Move coroutines from UserDataSettingsFragment to ViewModel 2023-07-19 13:32:02 +03:00
Koitharu
321a9ecf62 Update parsers 2023-07-19 12:30:58 +03:00
Koitharu
439a01c43f Fix bookmark has direct url detection #424 2023-07-18 11:43:31 +03:00
Koitharu
3a9d0def7d Update parsers 2023-07-18 10:13:46 +03:00
Koitharu
e4c80b4443 Remove rubbish file 2023-07-17 14:14:23 +03:00
Koitharu
940d448e00 Fix local manga update on shelf 2023-07-17 14:13:16 +03:00
Koitharu
5ab48a7545 Fix scrobbling rating 2023-07-17 13:30:50 +03:00
Koitharu
cb2bdbdd9a Update parsers 2023-07-17 13:08:39 +03:00
Cookies
8fdaf92cc4 Translated using Weblate (Vietnamese)
Currently translated at 89.2% (399 of 447 strings)

Co-authored-by: Cookies <Nekop1845@proton.me>
Translate-URL: https://hosted.weblate.org/projects/kotatsu/strings/vi/
Translation: Kotatsu/Strings
2023-07-17 12:39:46 +03:00
Shubham Niraula
0416077964 Translated using Weblate (Nepali)
Currently translated at 51.9% (232 of 447 strings)

Co-authored-by: Shubham Niraula <niraulas018@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/kotatsu/strings/ne/
Translation: Kotatsu/Strings
2023-07-17 12:39:46 +03:00
Koitharu
7b60ed6bad Fix new sources dialog list 2023-07-13 13:12:21 +03:00
23 changed files with 806 additions and 564 deletions

View File

@@ -17,8 +17,8 @@ android {
//TODO: update as soon as sources becomes available
//noinspection OldTargetApi
targetSdkVersion 33
versionCode 561
versionName '5.3.4'
versionCode 566
versionName '5.3.9'
generatedDensities = []
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
@@ -81,7 +81,7 @@ afterEvaluate {
}
dependencies {
//noinspection GradleDependency
implementation('com.github.KotatsuApp:kotatsu-parsers:06a043d290') {
implementation('com.github.KotatsuApp:kotatsu-parsers:42cc0430f8') {
exclude group: 'org.json', module: 'json'
}
@@ -127,8 +127,8 @@ 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.46.1'
kapt 'com.google.dagger:hilt-compiler:2.46.1'
implementation 'com.google.dagger:hilt-android:2.47'
kapt 'com.google.dagger:hilt-compiler:2.47'
implementation 'androidx.hilt:hilt-work:1.0.0'
kapt 'androidx.hilt:hilt-compiler:1.0.0'
@@ -138,8 +138,8 @@ dependencies {
implementation 'com.github.solkin:disk-lru-cache:1.4'
implementation 'io.noties.markwon:core:4.6.2'
implementation 'ch.acra:acra-http:5.10.1'
implementation 'ch.acra:acra-dialog:5.10.1'
implementation 'ch.acra:acra-http:5.11.0'
implementation 'ch.acra:acra-dialog:5.11.0'
debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.12'
@@ -157,6 +157,6 @@ dependencies {
androidTestImplementation 'androidx.room:room-testing:2.5.2'
androidTestImplementation 'com.squareup.moshi:moshi-kotlin:1.15.0'
androidTestImplementation 'com.google.dagger:hilt-android-testing:2.46.1'
kaptAndroidTest 'com.google.dagger:hilt-android-compiler:2.46.1'
androidTestImplementation 'com.google.dagger:hilt-android-testing:2.47'
kaptAndroidTest 'com.google.dagger:hilt-android-compiler:2.47'
}

View File

@@ -17,7 +17,7 @@ import java.util.EnumSet
class DummyParser(context: MangaLoaderContext) : MangaParser(context, MangaSource.DUMMY) {
override val configKeyDomain: ConfigKey.Domain
get() = ConfigKey.Domain()
get() = ConfigKey.Domain("")
override val sortOrders: Set<SortOrder>
get() = EnumSet.allOf(SortOrder::class.java)

View File

@@ -1,5 +1,6 @@
package org.koitharu.kotatsu.bookmarks.domain
import org.koitharu.kotatsu.local.data.ImageFileFilter
import org.koitharu.kotatsu.parsers.model.Manga
import org.koitharu.kotatsu.parsers.model.MangaPage
import java.util.Date
@@ -26,7 +27,8 @@ class Bookmark(
)
private fun isImageUrlDirect(): Boolean {
return imageUrl.substringAfterLast('.').length in 2..4
val extension = imageUrl.substringAfterLast('.')
return extension.isNotEmpty() && ImageFileFilter().isExtensionValid(extension)
}
override fun equals(other: Any?): Boolean {

View File

@@ -5,15 +5,19 @@ import coil.ImageLoader
import com.hannesdorfmann.adapterdelegates4.dsl.adapterDelegateViewBinding
import org.koitharu.kotatsu.R
import org.koitharu.kotatsu.bookmarks.domain.Bookmark
import org.koitharu.kotatsu.core.ui.drawable.TextDrawable
import org.koitharu.kotatsu.core.ui.image.CoverSizeResolver
import org.koitharu.kotatsu.core.ui.list.AdapterDelegateClickListenerAdapter
import org.koitharu.kotatsu.core.ui.list.OnListItemClickListener
import org.koitharu.kotatsu.core.util.ext.decodeRegion
import org.koitharu.kotatsu.core.util.ext.disposeImageRequest
import org.koitharu.kotatsu.core.util.ext.enqueueWith
import org.koitharu.kotatsu.core.util.ext.getThemeResId
import org.koitharu.kotatsu.core.util.ext.newImageRequest
import org.koitharu.kotatsu.core.util.ext.source
import org.koitharu.kotatsu.databinding.ItemBookmarkBinding
import org.koitharu.kotatsu.parsers.util.format
import com.google.android.material.R as materialR
fun bookmarkListAD(
coil: ImageLoader,

View File

@@ -0,0 +1,100 @@
package org.koitharu.kotatsu.core.ui.drawable
import android.annotation.SuppressLint
import android.content.Context
import android.graphics.Canvas
import android.graphics.Color
import android.graphics.ColorFilter
import android.graphics.Paint
import android.graphics.PixelFormat
import android.graphics.Typeface
import android.graphics.drawable.Drawable
import android.os.Build
import android.text.Layout
import android.text.StaticLayout
import android.text.TextPaint
import androidx.annotation.ColorInt
import androidx.annotation.Px
import androidx.annotation.StyleRes
import androidx.core.graphics.withTranslation
import com.google.android.material.resources.TextAppearance
import com.google.android.material.resources.TextAppearanceFontCallback
import org.koitharu.kotatsu.core.util.ext.getThemeColor
class TextDrawable(
val text: CharSequence,
) : Drawable() {
private val paint = TextPaint(Paint.ANTI_ALIAS_FLAG)
private var cachedLayout: StaticLayout? = null
@SuppressLint("RestrictedApi")
constructor(context: Context, text: CharSequence, @StyleRes textAppearanceId: Int) : this(text) {
val ta = TextAppearance(context, textAppearanceId)
paint.color = ta.textColor?.defaultColor ?: context.getThemeColor(android.R.attr.textColorPrimary, Color.BLACK)
paint.typeface = ta.fallbackFont
ta.getFontAsync(
context, paint,
object : TextAppearanceFontCallback() {
override fun onFontRetrieved(typeface: Typeface?, fontResolvedSynchronously: Boolean) = Unit
override fun onFontRetrievalFailed(reason: Int) = Unit
},
)
paint.letterSpacing = ta.letterSpacing
}
var alignment = Layout.Alignment.ALIGN_NORMAL
var lineSpacingMultiplier = 1f
@Px
var lineSpacingExtra = 0f
@get:ColorInt
var textColor: Int
get() = paint.color
set(@ColorInt value) {
paint.color = value
}
override fun draw(canvas: Canvas) {
val b = bounds
if (b.isEmpty) {
return
}
canvas.withTranslation(x = b.left.toFloat(), y = b.top.toFloat()) {
obtainLayout().draw(canvas)
}
}
override fun setAlpha(alpha: Int) {
paint.alpha = alpha
}
override fun setColorFilter(colorFilter: ColorFilter?) {
paint.setColorFilter(colorFilter)
}
@Suppress("DeprecatedCallableAddReplaceWith")
@Deprecated("Deprecated in Java")
override fun getOpacity(): Int = PixelFormat.TRANSLUCENT
private fun obtainLayout(): StaticLayout {
val width = bounds.width()
cachedLayout?.let {
if (it.width == width) {
return it
}
}
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
StaticLayout.Builder.obtain(text, 0, text.length, paint, width)
.setAlignment(alignment)
.setLineSpacing(lineSpacingExtra, lineSpacingMultiplier)
.setIncludePad(true)
.build()
} else {
@Suppress("DEPRECATION")
StaticLayout(text, paint, width, alignment, lineSpacingMultiplier, lineSpacingExtra, true)
}.also { cachedLayout = it }
}
}

View File

@@ -60,3 +60,10 @@ fun Context.getThemeColorStateList(
) = obtainStyledAttributes(intArrayOf(resId)).use {
it.getColorStateList(0)
}
fun Context.getThemeResId(
@AttrRes resId: Int,
fallback: Int
): Int = obtainStyledAttributes(intArrayOf(resId)).use {
it.getResourceId(0, fallback)
}

View File

@@ -121,13 +121,14 @@ class ScrobblingInfoSheet :
dismissAllowingStateLoss()
return
}
requireViewBinding().textViewTitle.text = scrobbling.title
requireViewBinding().ratingBar.rating = scrobbling.rating * requireViewBinding().ratingBar.numStars
requireViewBinding().textViewDescription.text = scrobbling.description?.sanitize()
requireViewBinding().spinnerStatus.setSelection(scrobbling.status?.ordinal ?: -1)
requireViewBinding().imageViewLogo.contentDescription = getString(scrobbling.scrobbler.titleResId)
requireViewBinding().imageViewLogo.setImageResource(scrobbling.scrobbler.iconResId)
requireViewBinding().imageViewCover.newImageRequest(viewLifecycleOwner, scrobbling.coverUrl)?.apply {
val binding = viewBinding ?: return
binding.textViewTitle.text = scrobbling.title
binding.ratingBar.rating = scrobbling.rating * binding.ratingBar.numStars
binding.textViewDescription.text = scrobbling.description?.sanitize()
binding.spinnerStatus.setSelection(scrobbling.status?.ordinal ?: -1)
binding.imageViewLogo.contentDescription = getString(scrobbling.scrobbler.titleResId)
binding.imageViewLogo.setImageResource(scrobbling.scrobbler.iconResId)
binding.imageViewCover.newImageRequest(viewLifecycleOwner, scrobbling.coverUrl)?.apply {
placeholder(R.drawable.ic_placeholder)
fallback(R.drawable.ic_placeholder)
error(R.drawable.ic_error_placeholder)

View File

@@ -23,7 +23,7 @@ class ImageFileFilter : FilenameFilter, FileFilter {
return isExtensionValid(ext)
}
private fun isExtensionValid(ext: String): Boolean {
fun isExtensionValid(ext: String): Boolean {
return ext == "png" || ext == "jpg" || ext == "jpeg" || ext == "webp"
}
}

View File

@@ -13,7 +13,7 @@ enum class ScoreFormat {
POINT_5 -> score / 5f
POINT_3 -> score / 3f
}
}.coerceIn(0f, 1f)
companion object {

View File

@@ -173,7 +173,7 @@ class MALRepository @Inject constructor(
status = json.getString("status"),
chapter = json.getInt("num_chapters_read"),
comment = json.getString("comments"),
rating = json.getDouble("score").toFloat() / 10f,
rating = (json.getDouble("score").toFloat() / 10f).coerceIn(0f, 1f),
)
db.scrobblingDao.upsert(entity)
}

View File

@@ -190,7 +190,7 @@ class ShikimoriRepository @Inject constructor(
status = json.getString("status"),
chapter = json.getInt("chapters"),
comment = json.getString("text"),
rating = json.getDouble("score").toFloat() / 10f,
rating = (json.getDouble("score").toFloat() / 10f).coerceIn(0f, 1f),
)
db.scrobblingDao.upsert(entity)
}

View File

@@ -8,34 +8,28 @@ import android.os.Bundle
import android.view.View
import androidx.activity.result.ActivityResultCallback
import androidx.activity.result.contract.ActivityResultContracts
import androidx.lifecycle.Lifecycle
import androidx.fragment.app.viewModels
import androidx.preference.Preference
import androidx.preference.TwoStatePreference
import androidx.preference.forEach
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import com.google.android.material.snackbar.Snackbar
import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.CancellationException
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.runInterruptible
import okhttp3.Cache
import kotlinx.coroutines.flow.StateFlow
import org.koitharu.kotatsu.R
import org.koitharu.kotatsu.core.network.cookies.MutableCookieJar
import org.koitharu.kotatsu.core.exceptions.resolve.SnackbarErrorObserver
import org.koitharu.kotatsu.core.os.AppShortcutManager
import org.koitharu.kotatsu.core.prefs.AppSettings
import org.koitharu.kotatsu.core.ui.BasePreferenceFragment
import org.koitharu.kotatsu.core.ui.util.ReversibleActionObserver
import org.koitharu.kotatsu.core.util.FileSize
import org.koitharu.kotatsu.core.util.ext.awaitStateAtLeast
import org.koitharu.kotatsu.core.util.ext.getDisplayMessage
import org.koitharu.kotatsu.core.util.ext.observe
import org.koitharu.kotatsu.core.util.ext.observeEvent
import org.koitharu.kotatsu.core.util.ext.printStackTraceDebug
import org.koitharu.kotatsu.core.util.ext.viewLifecycleScope
import org.koitharu.kotatsu.local.data.CacheDir
import org.koitharu.kotatsu.local.data.LocalStorageManager
import org.koitharu.kotatsu.search.domain.MangaSearchRepository
import org.koitharu.kotatsu.settings.backup.BackupDialogFragment
import org.koitharu.kotatsu.settings.backup.RestoreDialogFragment
import org.koitharu.kotatsu.settings.protect.ProtectSetupActivity
import org.koitharu.kotatsu.tracker.domain.TrackingRepository
import javax.inject.Inject
@AndroidEntryPoint
@@ -43,24 +37,11 @@ class UserDataSettingsFragment : BasePreferenceFragment(R.string.data_and_privac
SharedPreferences.OnSharedPreferenceChangeListener,
ActivityResultCallback<Uri?> {
@Inject
lateinit var trackerRepo: TrackingRepository
@Inject
lateinit var searchRepository: MangaSearchRepository
@Inject
lateinit var storageManager: LocalStorageManager
@Inject
lateinit var cookieJar: MutableCookieJar
@Inject
lateinit var cache: Cache
@Inject
lateinit var appShortcutManager: AppShortcutManager
private val viewModel: UserDataSettingsViewModel by viewModels()
private val backupSelectCall = registerForActivityResult(
ActivityResultContracts.OpenDocument(),
this,
@@ -76,23 +57,34 @@ class UserDataSettingsFragment : BasePreferenceFragment(R.string.data_and_privac
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
findPreference<Preference>(AppSettings.KEY_PAGES_CACHE_CLEAR)?.bindSummaryToCacheSize(CacheDir.PAGES)
findPreference<Preference>(AppSettings.KEY_THUMBS_CACHE_CLEAR)?.bindSummaryToCacheSize(CacheDir.THUMBS)
findPreference<Preference>(AppSettings.KEY_HTTP_CACHE_CLEAR)?.bindSummaryToHttpCacheSize()
findPreference<Preference>(AppSettings.KEY_PAGES_CACHE_CLEAR)?.bindBytesSizeSummary(checkNotNull(viewModel.cacheSizes[CacheDir.PAGES]))
findPreference<Preference>(AppSettings.KEY_THUMBS_CACHE_CLEAR)?.bindBytesSizeSummary(checkNotNull(viewModel.cacheSizes[CacheDir.THUMBS]))
findPreference<Preference>(AppSettings.KEY_HTTP_CACHE_CLEAR)?.bindBytesSizeSummary(viewModel.httpCacheSize)
findPreference<Preference>(AppSettings.KEY_SEARCH_HISTORY_CLEAR)?.let { pref ->
viewLifecycleScope.launch {
lifecycle.awaitStateAtLeast(Lifecycle.State.RESUMED)
val items = searchRepository.getSearchHistoryCount()
pref.summary = pref.context.resources.getQuantityString(R.plurals.items, items, items)
viewModel.searchHistoryCount.observe(viewLifecycleOwner) {
pref.summary = if (it < 0) {
view.context.getString(R.string.loading_)
} else {
pref.context.resources.getQuantityString(R.plurals.items, it, it)
}
}
}
findPreference<Preference>(AppSettings.KEY_UPDATES_FEED_CLEAR)?.let { pref ->
viewLifecycleScope.launch {
lifecycle.awaitStateAtLeast(Lifecycle.State.RESUMED)
val items = trackerRepo.getLogsCount()
pref.summary = pref.context.resources.getQuantityString(R.plurals.items, items, items)
viewModel.feedItemsCount.observe(viewLifecycleOwner) {
pref.summary = if (it < 0) {
view.context.getString(R.string.loading_)
} else {
pref.context.resources.getQuantityString(R.plurals.items, it, it)
}
}
}
viewModel.loadingKeys.observe(viewLifecycleOwner) { keys ->
preferenceScreen.forEach { pref ->
pref.isEnabled = pref.key !in keys
}
}
viewModel.onError.observeEvent(viewLifecycleOwner, SnackbarErrorObserver(listView, this))
viewModel.onActionDone.observeEvent(viewLifecycleOwner, ReversibleActionObserver(listView))
settings.subscribe(this)
}
@@ -104,12 +96,12 @@ class UserDataSettingsFragment : BasePreferenceFragment(R.string.data_and_privac
override fun onPreferenceTreeClick(preference: Preference): Boolean {
return when (preference.key) {
AppSettings.KEY_PAGES_CACHE_CLEAR -> {
clearCache(preference, CacheDir.PAGES)
viewModel.clearCache(preference.key, CacheDir.PAGES)
true
}
AppSettings.KEY_THUMBS_CACHE_CLEAR -> {
clearCache(preference, CacheDir.THUMBS)
viewModel.clearCache(preference.key, CacheDir.THUMBS)
true
}
@@ -119,26 +111,17 @@ class UserDataSettingsFragment : BasePreferenceFragment(R.string.data_and_privac
}
AppSettings.KEY_SEARCH_HISTORY_CLEAR -> {
clearSearchHistory(preference)
clearSearchHistory()
true
}
AppSettings.KEY_HTTP_CACHE_CLEAR -> {
clearHttpCache()
viewModel.clearHttpCache()
true
}
AppSettings.KEY_UPDATES_FEED_CLEAR -> {
viewLifecycleScope.launch {
trackerRepo.clearLogs()
preference.summary = preference.context.resources
.getQuantityString(R.plurals.items, 0, 0)
Snackbar.make(
view ?: return@launch,
R.string.updates_feed_cleared,
Snackbar.LENGTH_SHORT,
).show()
}
viewModel.clearUpdatesFeed()
true
}
@@ -189,71 +172,23 @@ class UserDataSettingsFragment : BasePreferenceFragment(R.string.data_and_privac
}
}
private fun clearCache(preference: Preference, cache: CacheDir) {
val ctx = preference.context.applicationContext
viewLifecycleScope.launch {
try {
preference.isEnabled = false
storageManager.clearCache(cache)
val size = storageManager.computeCacheSize(cache)
preference.summary = FileSize.BYTES.format(ctx, size)
} catch (e: CancellationException) {
throw e
} catch (e: Exception) {
preference.summary = e.getDisplayMessage(ctx.resources)
} finally {
preference.isEnabled = true
private fun Preference.bindBytesSizeSummary(stateFlow: StateFlow<Long>) {
stateFlow.observe(viewLifecycleOwner) { size ->
summary = if (size < 0) {
context.getString(R.string.computing_)
} else {
FileSize.BYTES.format(context, size)
}
}
}
private fun Preference.bindSummaryToCacheSize(dir: CacheDir) = viewLifecycleScope.launch {
val size = storageManager.computeCacheSize(dir)
summary = FileSize.BYTES.format(context, size)
}
private fun Preference.bindSummaryToHttpCacheSize() = viewLifecycleScope.launch {
val size = runInterruptible(Dispatchers.IO) { cache.size() }
summary = FileSize.BYTES.format(context, size)
}
private fun clearHttpCache() {
val preference = findPreference<Preference>(AppSettings.KEY_HTTP_CACHE_CLEAR) ?: return
val ctx = preference.context.applicationContext
viewLifecycleScope.launch {
try {
preference.isEnabled = false
val size = runInterruptible(Dispatchers.IO) {
cache.evictAll()
cache.size()
}
preference.summary = FileSize.BYTES.format(ctx, size)
} catch (e: CancellationException) {
throw e
} catch (e: Exception) {
preference.summary = e.getDisplayMessage(ctx.resources)
} finally {
preference.isEnabled = true
}
}
}
private fun clearSearchHistory(preference: Preference) {
private fun clearSearchHistory() {
MaterialAlertDialogBuilder(context ?: return)
.setTitle(R.string.clear_search_history)
.setMessage(R.string.text_clear_search_history_prompt)
.setNegativeButton(android.R.string.cancel, null)
.setPositiveButton(R.string.clear) { _, _ ->
viewLifecycleScope.launch {
searchRepository.clearSearchHistory()
preference.summary = preference.context.resources
.getQuantityString(R.plurals.items, 0, 0)
Snackbar.make(
view ?: return@launch,
R.string.search_history_cleared,
Snackbar.LENGTH_SHORT,
).show()
}
viewModel.clearSearchHistory()
}.show()
}
@@ -263,14 +198,7 @@ class UserDataSettingsFragment : BasePreferenceFragment(R.string.data_and_privac
.setMessage(R.string.text_clear_cookies_prompt)
.setNegativeButton(android.R.string.cancel, null)
.setPositiveButton(R.string.clear) { _, _ ->
viewLifecycleScope.launch {
cookieJar.clear()
Snackbar.make(
listView ?: return@launch,
R.string.cookies_cleared,
Snackbar.LENGTH_SHORT,
).show()
}
viewModel.clearCookies()
}.show()
}
}

View File

@@ -0,0 +1,109 @@
package org.koitharu.kotatsu.settings
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.update
import kotlinx.coroutines.runInterruptible
import okhttp3.Cache
import org.koitharu.kotatsu.R
import org.koitharu.kotatsu.core.network.cookies.MutableCookieJar
import org.koitharu.kotatsu.core.prefs.AppSettings
import org.koitharu.kotatsu.core.ui.BaseViewModel
import org.koitharu.kotatsu.core.ui.util.ReversibleAction
import org.koitharu.kotatsu.core.util.ext.MutableEventFlow
import org.koitharu.kotatsu.core.util.ext.call
import org.koitharu.kotatsu.local.data.CacheDir
import org.koitharu.kotatsu.local.data.LocalStorageManager
import org.koitharu.kotatsu.search.domain.MangaSearchRepository
import org.koitharu.kotatsu.tracker.domain.TrackingRepository
import java.util.EnumMap
import javax.inject.Inject
@HiltViewModel
class UserDataSettingsViewModel @Inject constructor(
private val storageManager: LocalStorageManager,
private val httpCache: Cache,
private val searchRepository: MangaSearchRepository,
private val trackingRepository: TrackingRepository,
private val cookieJar: MutableCookieJar,
) : BaseViewModel() {
val onActionDone = MutableEventFlow<ReversibleAction>()
val loadingKeys = MutableStateFlow(emptySet<String>())
val searchHistoryCount = MutableStateFlow(-1)
val feedItemsCount = MutableStateFlow(-1)
val httpCacheSize = MutableStateFlow(-1L)
val cacheSizes = EnumMap<CacheDir, MutableStateFlow<Long>>(CacheDir::class.java)
init {
CacheDir.values().forEach {
cacheSizes[it] = MutableStateFlow(-1L)
}
launchJob(Dispatchers.Default) {
searchHistoryCount.value = searchRepository.getSearchHistoryCount()
}
launchJob(Dispatchers.Default) {
feedItemsCount.value = trackingRepository.getLogsCount()
}
CacheDir.values().forEach { cache ->
launchJob(Dispatchers.Default) {
checkNotNull(cacheSizes[cache]).value = storageManager.computeCacheSize(cache)
}
}
launchJob(Dispatchers.Default) {
httpCacheSize.value = runInterruptible { httpCache.size() }
}
}
fun clearCache(key: String, cache: CacheDir) {
launchJob(Dispatchers.Default) {
try {
loadingKeys.update { it + key }
storageManager.clearCache(cache)
checkNotNull(cacheSizes[cache]).value = storageManager.computeCacheSize(cache)
} finally {
loadingKeys.update { it - key }
}
}
}
fun clearHttpCache() {
launchJob(Dispatchers.Default) {
try {
loadingKeys.update { it + AppSettings.KEY_HTTP_CACHE_CLEAR }
val size = runInterruptible(Dispatchers.IO) {
httpCache.evictAll()
httpCache.size()
}
httpCacheSize.value = size
} finally {
loadingKeys.update { it - AppSettings.KEY_HTTP_CACHE_CLEAR }
}
}
}
fun clearSearchHistory() {
launchJob(Dispatchers.Default) {
searchRepository.clearSearchHistory()
searchHistoryCount.value = searchRepository.getSearchHistoryCount()
onActionDone.call(ReversibleAction(R.string.search_history_cleared, null))
}
}
fun clearCookies() {
launchJob {
cookieJar.clear()
onActionDone.call(ReversibleAction(R.string.cookies_cleared, null))
}
}
fun clearUpdatesFeed() {
launchJob(Dispatchers.Default) {
trackingRepository.clearLogs()
feedItemsCount.value = trackingRepository.getLogsCount()
onActionDone.call(ReversibleAction(R.string.updates_feed_cleared, null))
}
}
}

View File

@@ -4,6 +4,9 @@ import androidx.annotation.WorkerThread
import androidx.core.os.LocaleListCompat
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.Job
import kotlinx.coroutines.cancelAndJoin
import kotlinx.coroutines.ensureActive
import kotlinx.coroutines.flow.MutableStateFlow
import org.koitharu.kotatsu.core.model.getLocaleTitle
import org.koitharu.kotatsu.core.prefs.AppSettings
@@ -19,18 +22,26 @@ class NewSourcesViewModel @Inject constructor(
private val initialList = settings.newSources
val sources = MutableStateFlow<List<SourceConfigItem>?>(null)
private var listUpdateJob: Job? = null
init {
launchJob(Dispatchers.Default) {
listUpdateJob = launchJob(Dispatchers.Default) {
sources.value = buildList()
}
}
fun onItemEnabledChanged(item: SourceConfigItem.SourceItem, isEnabled: Boolean) {
if (isEnabled) {
settings.hiddenSources -= item.source.name
} else {
settings.hiddenSources += item.source.name
val prevJob = listUpdateJob
listUpdateJob = launchJob(Dispatchers.Default) {
if (isEnabled) {
settings.hiddenSources -= item.source.name
} else {
settings.hiddenSources += item.source.name
}
prevJob?.cancelAndJoin()
val list = buildList()
ensureActive()
sources.value = list
}
}
@@ -61,3 +72,4 @@ class NewSourcesViewModel @Inject constructor(
}
}
}

View File

@@ -13,8 +13,9 @@ class MultiSummaryProvider(@StringRes private val emptySummaryId: Int) :
return preference.context.getString(emptySummaryId)
} else {
values.joinToString(", ") {
preference.entries[preference.findIndexOfValue(it)]
preference.entries.getOrNull(preference.findIndexOfValue(it))
?: preference.context.getString(androidx.preference.R.string.not_set)
}
}
}
}
}

View File

@@ -13,7 +13,6 @@ import kotlinx.coroutines.flow.onStart
import org.koitharu.kotatsu.core.db.MangaDatabase
import org.koitharu.kotatsu.core.model.FavouriteCategory
import org.koitharu.kotatsu.core.prefs.AppSettings
import org.koitharu.kotatsu.core.prefs.observeAsFlow
import org.koitharu.kotatsu.favourites.data.FavouriteCategoryEntity
import org.koitharu.kotatsu.favourites.data.toFavouriteCategory
import org.koitharu.kotatsu.favourites.data.toMangaList
@@ -52,8 +51,8 @@ class ShelfContentObserveUseCase @Inject constructor(
private fun observeLocalManga(sortOrder: SortOrder, limit: Int): Flow<List<Manga>> {
return combine<LocalManga?, String, Any?>(
localStorageChanges,
settings.observe().filter { it == AppSettings.KEY_LOCAL_MANGA_DIRS }
) { _, _ -> Any() }
settings.observe().filter { it == AppSettings.KEY_LOCAL_MANGA_DIRS }.onStart { emit("") }
) { a, b -> a to b }
.onStart { emit(null) }
.mapLatest {
localMangaRepository.getList(0, null, sortOrder).take(limit)

View File

@@ -1,411 +1,445 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
<string name="updated">Na-update</string>
<string name="newest">Pinakabago</string>
<string name="light">Maliwanag</string>
<string name="by_rating">Marka</string>
<string name="filter">Pansala</string>
<string name="theme">Tema</string>
<string name="dark">Madilim</string>
<string name="automatic">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>
<string name="chapters">Mga kabanata</string>
<string name="list">Listahan</string>
<string name="page_saved">Na-save</string>
<string name="share_image">I-share ang larawan</string>
<string name="_import">Mag-angkat</string>
<string name="delete">Tanggalin</string>
<string name="operation_not_supported">Hindi suportado ang operasyong ito</string>
<string name="text_file_not_supported">Pumili ng ZIP o CBZ file.</string>
<string name="no_description">Walang paglalarawan</string>
<string name="grid_size">Laki ng grid</string>
<string name="search_on_s">Hanapin sa %s</string>
<string name="delete_manga">Tanggalin ang manga</string>
<string name="text_delete_local_manga">Permanenteng tanggalin ang \"%s\" sa device\?</string>
<string name="reader_settings">Mga setting sa pagbasa</string>
<string name="switch_pages">Magpalit ng (mga) pahina</string>
<string name="volume_buttons">Pindutan ng volume</string>
<string name="_continue">Magpatuloy</string>
<string name="clear_thumbs_cache">I-clear ang cache ng mga thumbnail</string>
<string name="search_history_cleared">Na-clear</string>
<string name="gestures_only">Mga kilos lang</string>
<string name="app_update_available">Available ang isang bagong bersyon ng app</string>
<string name="open_in_browser">Buksan sa web browser</string>
<string name="large_manga_save_confirm">Ang manga na ito ay may %s. I-save ang lahat ng ito\?</string>
<string name="notifications">Mga abiso</string>
<string name="enabled_d_of_d" tools:ignore="PluralsCandidate">%1$d ng %2$d sa</string>
<string name="new_chapters">Mga bagong kabanata</string>
<string name="text_search_holder_secondary">Subukang i-reformulate ang query.</string>
<string name="text_history_holder_primary">Ang iyong nabasa ay ipapakita dito</string>
<string name="text_shelf_holder_primary">Ang iyong manga ay ipapakita dito</string>
<string name="text_local_holder_primary">Mag-save muna ng isang bagay</string>
<string name="text_local_holder_secondary">I-save ito mula sa mga online na source o mag import ng mga file.</string>
<string name="manga_shelf">Istante</string>
<string name="pages_animation">Animasyon ng pahina</string>
<string name="not_available">Hindi magagamit</string>
<string name="cannot_find_available_storage">Walang available na storage</string>
<string name="other_storage">Iba pang storage</string>
<string name="done">Tapos na</string>
<string name="all_favourites">Lahat ng paborito</string>
<string name="favourites_category_empty">Walang laman ang kategorya</string>
<string name="read_later">Basahin mamaya</string>
<string name="updates">Mga update</string>
<string name="search_results">Mga resulta ng paghahanap</string>
<string name="size_s">Laki: %s</string>
<string name="clear_updates_feed">I-clear ang feed ng mga update</string>
<string name="updates_feed_cleared">Na-clear</string>
<string name="update">Update</string>
<string name="feed_will_update_soon">Ang pag update ng feed ay magsisimula sa lalong madaling panahon</string>
<string name="track_sources">Maghanap ng mga update</string>
<string name="enter_password">Ilagay ang password</string>
<string name="protect_application_summary">Humingi ng password kapag sinimulan ang Kotatsu</string>
<string name="about">Tungkol rito</string>
<string name="check_for_updates">Maghanap ng update</string>
<string name="right_to_left">Kanan sa kaliwa</string>
<string name="create_category">Bagong Kategorya</string>
<string name="zoom_mode_fit_center">Pagkasyahin sa gitna</string>
<string name="zoom_mode_keep_start">Panatilihin sa simula</string>
<string name="black_dark_theme_summary">Gumagamit ng mas kaunting power sa mga AMOLED na screen</string>
<string name="backup_restore">I-backup at i-restore</string>
<string name="data_restored">Naibalik na</string>
<string name="preparing_">Naghahanda…</string>
<string name="file_not_found">Hindi nahanap ang file</string>
<string name="backup_information">Maaari kang lumikha ng backup ng iyong kasaysayan at mga paborito at ibalik ito</string>
<string name="just_now">Ngayon lang</string>
<string name="yesterday">Kahapon</string>
<string name="long_ago">Matagal na ang nakalipas</string>
<string name="today">Ngayong araw</string>
<string name="tap_to_try_again">I-tap para subukang muli</string>
<string name="captcha_solve">Lutasin</string>
<string name="cookies_cleared">Inalis ang lahat ng mga cookie</string>
<string name="clear_feed">I-clear ang feed</string>
<string name="check_for_new_chapters">Suriin ang mga bagong kabanata</string>
<string name="sign_in">Mag-sign in</string>
<string name="auth_required">Mag-sign in upang tingnan ang nilalamang ito</string>
<string name="default_s">Default: %s</string>
<string name="next">Susunod</string>
<string name="confirm">Kumpirmahin</string>
<string name="password_length_hint">Ang password ay dapat na 4 na character o higit pa</string>
<string name="welcome">Maligayang pagdating</string>
<string name="backup_saved">Na-save ang backup</string>
<string name="read_more">Magbasa pa</string>
<string name="chapter_is_missing">Kulang ang kabanata</string>
<string name="auth_not_supported_by">Ang pag-log in sa %s ay hindi suportado</string>
<string name="genres">Mga genre</string>
<string name="state_ongoing">Patuloy</string>
<string name="system_default">Default</string>
<string name="exclude_nsfw_from_history">Hindi isali ang NSFW manga mula sa kasaysayan</string>
<string name="show_pages_numbers">Mga pahinang may bilang</string>
<string name="screenshots_policy">Patakaran sa screenshot</string>
<string name="screenshots_allow">Payagan</string>
<string name="screenshots_block_all">Palaging i-block</string>
<string name="suggestions">Mga mungkahi</string>
<string name="suggestions_enable">Paganahin ang mga mungkahi</string>
<string name="text_suggestion_holder">Simulan ang pagbabasa ng manga at makakakuha ka ng mga personalized na mungkahi</string>
<string name="exclude_nsfw_from_suggestions">Huwag magmungkahi ng NSFW manga</string>
<string name="enabled">Pinagana</string>
<string name="onboard_text">Pumili ng mga wika na gusto mong basahin ang manga. Maaari mo itong baguhin sa ibang pagkakataon sa mga setting.</string>
<string name="local_storage">Lokal na storage</string>
<string name="favourites">Mga paborito</string>
<string name="history">Kasaysayan</string>
<string name="list_mode">Mode na listahan</string>
<string name="detailed_list">Detalyadong listahan</string>
<string name="grid">Grid</string>
<string name="settings">Mga setting</string>
<string name="remote_sources">Mga source ng Manga</string>
<string name="loading_">Naglo-load…</string>
<string name="close">Isara</string>
<string name="nothing_found">Walang nahanap</string>
<string name="remove">Tanggalin</string>
<string name="add_new_category">Bagong Kategorya</string>
<string name="read">Nabasa</string>
<string name="you_have_not_favourites_yet">Wala pang paborito</string>
<string name="add_to_favourites">I-paborito ito</string>
<string name="add">Idagdag</string>
<string name="save">I-save</string>
<string name="share">Ibahagi</string>
<string name="create_shortcut">Lumikha ng shortcut…</string>
<string name="share_s">Ibahagi sa %s</string>
<string name="search">Maghanap</string>
<string name="search_manga">Maghanap ng manga</string>
<string name="manga_downloading_">Nagda-download…</string>
<string name="processing_">Nagpoproseso…</string>
<string name="download_complete">Na-download</string>
<string name="downloads">Mga download</string>
<string name="by_name">Pangalan</string>
<string name="popular">Sikat</string>
<string name="pages">Mga pahina</string>
<string name="clear_history">I-clear ang kasaysayan</string>
<string name="clear_search_history">I-clear ang kasaysayan ng paghahanap</string>
<string name="new_version_s">Bagong bersyon: %s</string>
<string name="passwords_mismatch">Hindi tumutugma sa mga password</string>
<string name="clear_cookies">I-clear ang mga cookie</string>
<string name="clear_pages_cache">I-clear ang page cache</string>
<string name="save_manga">I-save</string>
<string name="download">I-download</string>
<string name="notifications_settings">Mga setting ng abiso</string>
<string name="notification_sound">Tunog ng abiso</string>
<string name="favourites_categories">Mga paboritong kategorya</string>
<string name="remove_category">Tanggalin</string>
<string name="text_empty_holder_primary">Parang walang laman dito…</string>
<string name="text_history_holder_secondary">Hanapin kung ano ang babasahin sa side menu.</string>
<string name="text_shelf_holder_secondary">Hanapin kung ano ang babasahin sa seksyong «Mag-explore»</string>
<string name="recent_manga">Kamakailan</string>
<string name="manga_save_location">Folder para sa mga download</string>
<string name="save_page">I-save ang pahina</string>
<string name="_s_deleted_from_local_storage">Natanggal ang \"%s\" sa lokal na storage</string>
<string name="history_is_empty">Wala pang kasaysayan</string>
<string name="text_clear_history_prompt">Permanenteng i-clear ang lahat ng kasaysayan ng pagbabasa\?</string>
<string name="dont_check">Huwag suriin</string>
<string name="repeat_password">Ulitin ang password</string>
<string name="protect_application">Protektahan ang app</string>
<string name="wrong_password">Maling password</string>
<string name="app_version">Bersyon %s</string>
<string name="scale_mode">Mode ng scale</string>
<string name="no_update_available">Walang available na update</string>
<string name="reverse">Baliktarin</string>
<string name="group">Grupo</string>
<string name="silent">Tahimik</string>
<string name="zoom_mode_fit_width">Pagkasyahin sa lapad</string>
<string name="black_dark_theme">Itim</string>
<string name="create_backup">Lumikha ng data backup</string>
<string name="restore_backup">Ibalik mula sa backup</string>
<string name="data_restored_success">Naibalik ang lahat ng data</string>
<string name="data_restored_with_errors">Ang data ay naibalik, ngunit may mga error</string>
<string name="reader_mode_hint">Ang napiling pagsasaayos ay maaalala para sa manga na ito</string>
<string name="about_app_translation_summary">Isalin ang app na ito</string>
<string name="auth_complete">Awtorisado na</string>
<string name="captcha_required">Kinakailangan ang CAPTCHA</string>
<string name="text_clear_updates_feed_prompt">I-clear nang permanente ang lahat ng update history\?</string>
<string name="protect_application_subtitle">Maglagay ng password para simulan ang app</string>
<string name="tracker_warning">Ang ilang device ay may iba\'t ibang gawi ng system, na maaaring masira ang mga gawain sa background.</string>
<string name="queued">Nakapila na</string>
<string name="text_clear_cookies_prompt">Mala-log out ka mula sa lahat ng source</string>
<string name="state_finished">Tapos na</string>
<string name="text_clear_search_history_prompt">Alisin ang lahat ng kamakailang query sa paghahanap nang permanente\?</string>
<string name="about_app_translation">Pagsasalin</string>
<string name="screenshots_block_nsfw">I-block sa NSFW</string>
<string name="suggestions_summary">Magmungkahi ng manga batay sa iyong mga kagustuhan</string>
<string name="suggestions_info">Ang lahat ng data ay lokal lamang na sinusuri sa device na ito at hindi kailanman ipinadala kahit saan.</string>
<string name="disabled">Hindi pinagana</string>
<string name="filter_load_error">Hindi ma-load ang listahan ng mga genre</string>
<string name="reset_filter">I-reset ang filter</string>
<string name="text_feed_holder">Ang mga bagong kabanata ng iyong binabasa ay makikita dito</string>
<string name="rotate_screen">I-rotate ang screen</string>
<string name="zoom_mode_fit_height">Pagkasyahin sa tangkad</string>
<string name="never">Hindi kailanman</string>
<string name="only_using_wifi">Sa Wi-Fi lang</string>
<string name="computing_">Nagco-compute…</string>
<string name="chapter_d_of_d">Kabanata %1$d ng %2$d</string>
<string name="try_again">Subukan ulit</string>
<string name="sort_order">Pag-aayos ng order</string>
<string name="clear">I-clear</string>
<string name="taps_on_edges">Mga taps ng gilid</string>
<string name="enabled_sources">Mga ginamit na source</string>
<string name="available_sources">Magagamit na mga source</string>
<string name="always">Lagi na lang</string>
<string name="preload_pages">I-preload ang mga pahina</string>
<string name="logged_in_as">Naka-log in bilang %s</string>
<string name="various_languages">Iba\'t ibang wika</string>
<string name="search_chapters">Maghanap ng kabanata</string>
<string name="percent_string_pattern">%1$s%%</string>
<string name="appearance">Hitsura</string>
<string name="suggestions_excluded_genres">Hindi isali ang mga genre</string>
<string name="suggestions_excluded_genres_summary">Tukuyin ang mga genre na hindi mo nais na makita sa mga mungkahi</string>
<string name="removal_completed">Nakumpleto na ang pagtanggal</string>
<string name="download_slowdown_summary">Tumutulong na maiwasan ang pag-block ng iyong IP address</string>
<string name="local_manga_processing">Naka-save na pagproseso ng manga</string>
<string name="account_already_exists">Mayroon nang account</string>
<string name="back">Bumalik</string>
<string name="sync">Pag-synchronize</string>
<string name="email_enter_hint">Ilagay ang iyong email upang magpatuloy</string>
<string name="hide">Itago</string>
<string name="new_sources_text">May mga bagong source ng manga</string>
<string name="show_notification_new_chapters_off">Hindi ka makakatanggap ng mga abiso ngunit ang mga bagong kabanata ay iha-highlight sa mga listahan</string>
<string name="notifications_enable">Paganahin ang mga abiso</string>
<string name="edit_category">Ayusin ang kategorya</string>
<string name="tracking">Tina-track</string>
<string name="empty_favourite_categories">Walang mga paboritong kategorya</string>
<string name="logout">Mag-log out</string>
<string name="bookmark_add">Magdagdag ng bookmark</string>
<string name="bookmark_removed">Tinanggal ang bookmark</string>
<string name="removed_from_history">Inalis sa kasaysayan</string>
<string name="dns_over_https">DNS sa HTTPS</string>
<string name="default_mode">Default na mode</string>
<string name="detect_reader_mode">Automatikong matukoy ang reader mode</string>
<string name="crash_text">May nangyaring mali. Mangyaring magsumite ng isang bug report sa mga developer upang matulungan kaming ayusin ito.</string>
<string name="send">Ipadala</string>
<string name="status_re_reading">Muling pagbabasa</string>
<string name="status_dropped">Binitawan</string>
<string name="appwidget_shelf_description">Manga mula sa iyong mga paborito</string>
<string name="appwidget_recent_description">Ang iyong kamakailang nabasa na manga</string>
<string name="data_deletion">Pagtanggal ng data</string>
<string name="show_reading_indicators_summary">Ipakita ang porsyento na nabasa sa kasaysayan at mga paborito</string>
<string name="show_all">Ipakita lahat</string>
<string name="select_range">Pumili ng saklaw</string>
<string name="clear_all_history">I-clear ang lahat ng kasaysayan</string>
<string name="no_bookmarks_summary">Maaari kang lumikha ng bookmark habang nagbabasa ng manga</string>
<string name="bookmarks_removed">Tinanggal ang mga bookmark</string>
<string name="random">Random</string>
<string name="no_manga_sources">Walang mga source ng manga</string>
<string name="no_manga_sources_text">Paganahin ang mga source ng manga upang basahin ang manga online</string>
<string name="reorder">Ayusin muli</string>
<string name="empty">Walang laman</string>
<string name="confirm_exit">Pindutin muli ang Bumalik upang lumabas</string>
<string name="exit_confirmation_summary">Pindutin ang Bumalik nang dalawang beses upang lumabas sa app</string>
<string name="exit_confirmation">Pagkumpirma ng paglabas</string>
<string name="saved_manga">Na-save na manga</string>
<string name="explore">Mag-Explore</string>
<string name="other_cache">Iba pang cache</string>
<string name="storage_usage">Paggamit ng storage</string>
<string name="available">Magagamit na</string>
<string name="memory_usage_pattern">%s - %s</string>
<string name="removed_from_favourites">Inalis sa mga paborito</string>
<string name="options">Mga pagpipilian</string>
<string name="incognito_mode">Incognito mode</string>
<string name="no_chapters">Walang mga kabanata</string>
<string name="automatic_scroll">Awtomatikong pag-scroll</string>
<string name="reader_info_pattern">Ch. %1$d/%2$d Pg. %3$d/%4$d</string>
<string name="reader_info_bar">Ipakita ang information bar sa pagbasa</string>
<string name="comics_archive">Archive ng mga comics</string>
<string name="folder_with_images">Folder na may mga larawan</string>
<string name="import_completed">Nakumpleto na ang pag-import</string>
<string name="import_will_start_soon">Magsisimula na ang pag-import</string>
<string name="feed">Feed</string>
<string name="history_shortcuts_summary">Gawing magagamit ang kamakailang manga sa pamamagitan ng mahabang pagpindot sa icon ng application</string>
<string name="history_shortcuts">Ipakita ang mga kamakailang manga shortcut</string>
<string name="reader_control_ltr">Ergonomic na kontrol sa mambabasa</string>
<string name="color_correction">Pagwawasto ng kulay</string>
<string name="brightness">Liwanag</string>
<string name="contrast">Kaibahan</string>
<string name="text_unsaved_changes_prompt">I-save o kalimutan ang mga hindi na-save na pagbabago\?</string>
<string name="discard">Kalimutan</string>
<string name="error_no_space_left">Walang natitirang espasyo sa device</string>
<string name="webtoon_zoom">Pag-zoom sa webtoon</string>
<string name="different_languages">Iba\'t ibang wika</string>
<string name="server_error">Server side error (%1$d). Subukang muli mamaya</string>
<string name="clear_new_chapters_counters">I-clear din ang impormasyon tungkol sa mga bagong kabanata</string>
<string name="prefetch_content">Preloading ng nilalaman</string>
<string name="mark_as_current">Markahan bilang kasalukuyan</string>
<string name="language">Wika</string>
<string name="share_logs">Ibahagi ang mga log</string>
<string name="show_suspicious_content">Magpakita ng kahina-hinalang nilalaman</string>
<string name="theme_name_dynamic">Dynamic</string>
<string name="show_in_grid_view">Ipakita sa grid view</string>
<string name="theme_name_asuka">Asuka</string>
<string name="theme_name_mion">Mion</string>
<string name="theme_name_rikka">Rikka</string>
<string name="theme_name_sakura">Sakura</string>
<string name="theme_name_mamimi">Mamimi</string>
<string name="theme_name_kanade">Kanade</string>
<string name="nothing_here">Wala naman dito</string>
<string name="services">Mga serbisyo</string>
<string name="allow_unstable_updates">Payagan ang mga hindi stable na update</string>
<string name="show_reading_indicators">Ipakita ang mga tagapagpahiwatig ng progress ng pagbabasa</string>
<string name="exclude_nsfw_from_history_summary">Manga na minarkahan bilang NSFW ay hindi kailanman idadagdag sa kasaysayan at ang iyong progress ay hindi mase-save</string>
<string name="clear_cookies_summary">Maaaring makatulong sa kaso ng ilang mga isyu. Ang lahat ng pahintulot ay mawawalan ng bisa</string>
<string name="invalid_domain_message">Imbalidong domain</string>
<string name="last_2_hours">Huling 2 oras</string>
<string name="history_cleared">Nabura ang kasaysayan</string>
<string name="manage">Pamahalaan</string>
<string name="no_bookmarks_yet">Wala pang bookmark</string>
<string name="nsfw">18+</string>
<string name="not_found_404">Hindi natagpuan o inalis ang nilalaman</string>
<string name="enable_logging_summary">Magtala ng ilang pagkilos para sa mga layunin ng pag-debug</string>
<string name="text_delete_local_manga_batch">Permanenteng tanggalin ang mga napiling item sa device\?</string>
<string name="chapters_empty">Walang mga kabanata sa manga na ito</string>
<string name="suggestions_updating">Nag-a-update ang mga mungkahi</string>
<string name="download_slowdown">Pagbagal ng pag-download</string>
<string name="chapters_will_removed_background">Tatanggalin ang mga kabanata sa background</string>
<string name="canceled">Kinansela</string>
<string name="sync_title">I-sync ang iyong data</string>
<string name="check_new_chapters_title">Tingnan ang mga bagong kabanata at ipaalam ang tungkol dito</string>
<string name="name">Pangalan</string>
<string name="edit">I-edit</string>
<string name="bookmark_remove">Tanggalin ang bookmark</string>
<string name="show_notification_new_chapters_on">Makakatanggap ka ng mga abiso tungkol sa mga update ng manga na iyong binabasa</string>
<string name="undo">Mag-undo</string>
<string name="status_reading">Nagbabasa</string>
<string name="pages_cache">Cache ng mga pahina</string>
<string name="bookmarks">Mga bookmark</string>
<string name="categories_delete_confirm">Sigurado ka bang gusto mong tanggalin ang mga napiling paboritong kategorya\?
<string name="updated">Na-update</string>
<string name="newest">Pinakabago</string>
<string name="light">Maliwanag</string>
<string name="by_rating">Marka</string>
<string name="filter">Pansala</string>
<string name="theme">Tema</string>
<string name="dark">Madilim</string>
<string name="automatic">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>
<string name="chapters">Mga kabanata</string>
<string name="list">Listahan</string>
<string name="page_saved">Na-save</string>
<string name="share_image">I-share ang larawan</string>
<string name="_import">Mag-angkat</string>
<string name="delete">Tanggalin</string>
<string name="operation_not_supported">Hindi suportado ang operasyong ito</string>
<string name="text_file_not_supported">Pumili ng ZIP o CBZ file.</string>
<string name="no_description">Walang paglalarawan</string>
<string name="grid_size">Laki ng grid</string>
<string name="search_on_s">Hanapin sa %s</string>
<string name="delete_manga">Tanggalin ang manga</string>
<string name="text_delete_local_manga">Permanenteng tanggalin ang \"%s\" sa device\?</string>
<string name="reader_settings">Mga setting sa pagbasa</string>
<string name="switch_pages">Magpalit ng (mga) pahina</string>
<string name="volume_buttons">Pindutan ng volume</string>
<string name="_continue">Magpatuloy</string>
<string name="clear_thumbs_cache">I-clear ang cache ng mga thumbnail</string>
<string name="search_history_cleared">Na-clear</string>
<string name="gestures_only">Mga kilos lang</string>
<string name="app_update_available">Available ang isang bagong bersyon ng app</string>
<string name="open_in_browser">Buksan sa web browser</string>
<string name="large_manga_save_confirm">Ang manga na ito ay may %s. I-save ang lahat ng ito\?</string>
<string name="notifications">Mga abiso</string>
<string name="enabled_d_of_d" tools:ignore="PluralsCandidate">%1$d ng %2$d sa</string>
<string name="new_chapters">Mga bagong kabanata</string>
<string name="text_search_holder_secondary">Subukang i-reformulate ang query.</string>
<string name="text_history_holder_primary">Ang iyong nabasa ay ipapakita dito</string>
<string name="text_shelf_holder_primary">Ang iyong manga ay ipapakita dito</string>
<string name="text_local_holder_primary">Mag-save muna ng isang bagay</string>
<string name="text_local_holder_secondary">I-save ito mula sa mga online na source o mag import ng mga file.</string>
<string name="manga_shelf">Istante</string>
<string name="pages_animation">Animasyon ng pahina</string>
<string name="not_available">Hindi magagamit</string>
<string name="cannot_find_available_storage">Walang available na storage</string>
<string name="other_storage">Iba pang storage</string>
<string name="done">Tapos na</string>
<string name="all_favourites">Lahat ng paborito</string>
<string name="favourites_category_empty">Walang laman ang kategorya</string>
<string name="read_later">Basahin mamaya</string>
<string name="updates">Mga update</string>
<string name="search_results">Mga resulta ng paghahanap</string>
<string name="size_s">Laki: %s</string>
<string name="clear_updates_feed">I-clear ang feed ng mga update</string>
<string name="updates_feed_cleared">Na-clear</string>
<string name="update">Update</string>
<string name="feed_will_update_soon">Ang pag update ng feed ay magsisimula sa lalong madaling panahon</string>
<string name="track_sources">Maghanap ng mga update</string>
<string name="enter_password">Ilagay ang password</string>
<string name="protect_application_summary">Humingi ng password kapag sinimulan ang Kotatsu</string>
<string name="about">Tungkol rito</string>
<string name="check_for_updates">Maghanap ng update</string>
<string name="right_to_left">Kanan sa kaliwa</string>
<string name="create_category">Bagong Kategorya</string>
<string name="zoom_mode_fit_center">Pagkasyahin sa gitna</string>
<string name="zoom_mode_keep_start">Panatilihin sa simula</string>
<string name="black_dark_theme_summary">Gumagamit ng mas kaunting power sa mga AMOLED na screen</string>
<string name="backup_restore">I-backup at i-restore</string>
<string name="data_restored">Naibalik na</string>
<string name="preparing_">Naghahanda…</string>
<string name="file_not_found">Hindi nahanap ang file</string>
<string name="backup_information">Maaari kang lumikha ng backup ng iyong kasaysayan at mga paborito at ibalik ito</string>
<string name="just_now">Ngayon lang</string>
<string name="yesterday">Kahapon</string>
<string name="long_ago">Matagal na ang nakalipas</string>
<string name="today">Ngayong araw</string>
<string name="tap_to_try_again">I-tap para subukang muli</string>
<string name="captcha_solve">Lutasin</string>
<string name="cookies_cleared">Inalis ang lahat ng mga cookie</string>
<string name="clear_feed">I-clear ang feed</string>
<string name="check_for_new_chapters">Suriin ang mga bagong kabanata</string>
<string name="sign_in">Mag-sign in</string>
<string name="auth_required">Mag-sign in upang tingnan ang nilalamang ito</string>
<string name="default_s">Default: %s</string>
<string name="next">Susunod</string>
<string name="confirm">Kumpirmahin</string>
<string name="password_length_hint">Ang password ay dapat na 4 na character o higit pa</string>
<string name="welcome">Maligayang pagdating</string>
<string name="backup_saved">Na-save ang backup</string>
<string name="read_more">Magbasa pa</string>
<string name="chapter_is_missing">Kulang ang kabanata</string>
<string name="auth_not_supported_by">Ang pag-log in sa %s ay hindi suportado</string>
<string name="genres">Mga genre</string>
<string name="state_ongoing">Patuloy</string>
<string name="system_default">Default</string>
<string name="exclude_nsfw_from_history">Hindi isali ang NSFW manga mula sa kasaysayan</string>
<string name="show_pages_numbers">Mga pahinang may bilang</string>
<string name="screenshots_policy">Patakaran sa screenshot</string>
<string name="screenshots_allow">Payagan</string>
<string name="screenshots_block_all">Palaging i-block</string>
<string name="suggestions">Mga mungkahi</string>
<string name="suggestions_enable">Paganahin ang mga mungkahi</string>
<string name="text_suggestion_holder">Simulan ang pagbabasa ng manga at makakakuha ka ng mga personalized na mungkahi</string>
<string name="exclude_nsfw_from_suggestions">Huwag magmungkahi ng NSFW manga</string>
<string name="enabled">Pinagana</string>
<string name="onboard_text">Pumili ng mga wika na gusto mong basahin ang manga. Maaari mo itong baguhin sa ibang pagkakataon sa mga setting.</string>
<string name="local_storage">Lokal na storage</string>
<string name="favourites">Mga paborito</string>
<string name="history">Kasaysayan</string>
<string name="list_mode">Mode na listahan</string>
<string name="detailed_list">Detalyadong listahan</string>
<string name="grid">Grid</string>
<string name="settings">Mga setting</string>
<string name="remote_sources">Mga source ng Manga</string>
<string name="loading_">Naglo-load…</string>
<string name="close">Isara</string>
<string name="nothing_found">Walang nahanap</string>
<string name="remove">Tanggalin</string>
<string name="add_new_category">Bagong Kategorya</string>
<string name="read">Nabasa</string>
<string name="you_have_not_favourites_yet">Wala pang paborito</string>
<string name="add_to_favourites">I-paborito ito</string>
<string name="add">Idagdag</string>
<string name="save">I-save</string>
<string name="share">Ibahagi</string>
<string name="create_shortcut">Lumikha ng shortcut…</string>
<string name="share_s">Ibahagi sa %s</string>
<string name="search">Maghanap</string>
<string name="search_manga">Maghanap ng manga</string>
<string name="manga_downloading_">Nagda-download…</string>
<string name="processing_">Nagpoproseso…</string>
<string name="download_complete">Na-download</string>
<string name="downloads">Mga download</string>
<string name="by_name">Pangalan</string>
<string name="popular">Sikat</string>
<string name="pages">Mga pahina</string>
<string name="clear_history">I-clear ang kasaysayan</string>
<string name="clear_search_history">I-clear ang kasaysayan ng paghahanap</string>
<string name="new_version_s">Bagong bersyon: %s</string>
<string name="passwords_mismatch">Hindi tumutugma sa mga password</string>
<string name="clear_cookies">I-clear ang mga cookie</string>
<string name="clear_pages_cache">I-clear ang page cache</string>
<string name="save_manga">I-save</string>
<string name="download">I-download</string>
<string name="notifications_settings">Mga setting ng abiso</string>
<string name="notification_sound">Tunog ng abiso</string>
<string name="favourites_categories">Mga paboritong kategorya</string>
<string name="remove_category">Tanggalin</string>
<string name="text_empty_holder_primary">Parang walang laman dito…</string>
<string name="text_history_holder_secondary">Hanapin kung ano ang babasahin sa side menu.</string>
<string name="text_shelf_holder_secondary">Hanapin kung ano ang babasahin sa seksyong «Mag-explore»</string>
<string name="recent_manga">Kamakailan</string>
<string name="manga_save_location">Folder para sa mga download</string>
<string name="save_page">I-save ang pahina</string>
<string name="_s_deleted_from_local_storage">Natanggal ang \"%s\" sa lokal na storage</string>
<string name="history_is_empty">Wala pang kasaysayan</string>
<string name="text_clear_history_prompt">Permanenteng i-clear ang lahat ng kasaysayan ng pagbabasa\?</string>
<string name="dont_check">Huwag suriin</string>
<string name="repeat_password">Ulitin ang password</string>
<string name="protect_application">Protektahan ang app</string>
<string name="wrong_password">Maling password</string>
<string name="app_version">Bersyon %s</string>
<string name="scale_mode">Mode ng scale</string>
<string name="no_update_available">Walang available na update</string>
<string name="reverse">Baliktarin</string>
<string name="group">Grupo</string>
<string name="silent">Tahimik</string>
<string name="zoom_mode_fit_width">Pagkasyahin sa lapad</string>
<string name="black_dark_theme">Itim</string>
<string name="create_backup">Lumikha ng data backup</string>
<string name="restore_backup">Ibalik mula sa backup</string>
<string name="data_restored_success">Naibalik ang lahat ng data</string>
<string name="data_restored_with_errors">Ang data ay naibalik, ngunit may mga error</string>
<string name="reader_mode_hint">Ang napiling pagsasaayos ay maaalala para sa manga na ito</string>
<string name="about_app_translation_summary">Isalin ang app na ito</string>
<string name="auth_complete">Awtorisado na</string>
<string name="captcha_required">Kinakailangan ang CAPTCHA</string>
<string name="text_clear_updates_feed_prompt">I-clear nang permanente ang lahat ng update history\?</string>
<string name="protect_application_subtitle">Maglagay ng password para simulan ang app</string>
<string name="tracker_warning">Ang ilang device ay may iba\'t ibang gawi ng system, na maaaring masira ang mga gawain sa background.</string>
<string name="queued">Nakapila na</string>
<string name="text_clear_cookies_prompt">Mala-log out ka mula sa lahat ng source</string>
<string name="state_finished">Tapos na</string>
<string name="text_clear_search_history_prompt">Alisin ang lahat ng kamakailang query sa paghahanap nang permanente\?</string>
<string name="about_app_translation">Pagsasalin</string>
<string name="screenshots_block_nsfw">I-block sa NSFW</string>
<string name="suggestions_summary">Magmungkahi ng manga batay sa iyong mga kagustuhan</string>
<string name="suggestions_info">Ang lahat ng data ay lokal lamang na sinusuri sa device na ito at hindi kailanman ipinadala kahit saan.</string>
<string name="disabled">Hindi pinagana</string>
<string name="filter_load_error">Hindi ma-load ang listahan ng mga genre</string>
<string name="reset_filter">I-reset ang filter</string>
<string name="text_feed_holder">Ang mga bagong kabanata ng iyong binabasa ay makikita dito</string>
<string name="rotate_screen">I-rotate ang screen</string>
<string name="zoom_mode_fit_height">Pagkasyahin sa tangkad</string>
<string name="never">Hindi kailanman</string>
<string name="only_using_wifi">Sa Wi-Fi lang</string>
<string name="computing_">Nagco-compute…</string>
<string name="chapter_d_of_d">Kabanata %1$d ng %2$d</string>
<string name="try_again">Subukan ulit</string>
<string name="sort_order">Pag-aayos ng order</string>
<string name="clear">I-clear</string>
<string name="taps_on_edges">Mga taps ng gilid</string>
<string name="enabled_sources">Mga ginamit na source</string>
<string name="available_sources">Magagamit na mga source</string>
<string name="always">Lagi na lang</string>
<string name="preload_pages">I-preload ang mga pahina</string>
<string name="logged_in_as">Naka-log in bilang %s</string>
<string name="various_languages">Iba\'t ibang wika</string>
<string name="search_chapters">Maghanap ng kabanata</string>
<string name="percent_string_pattern">%1$s%%</string>
<string name="appearance">Hitsura</string>
<string name="suggestions_excluded_genres">Hindi isali ang mga genre</string>
<string name="suggestions_excluded_genres_summary">Tukuyin ang mga genre na hindi mo nais na makita sa mga mungkahi</string>
<string name="removal_completed">Nakumpleto na ang pagtanggal</string>
<string name="download_slowdown_summary">Tumutulong na maiwasan ang pag-block ng iyong IP address</string>
<string name="local_manga_processing">Naka-save na pagproseso ng manga</string>
<string name="account_already_exists">Mayroon nang account</string>
<string name="back">Bumalik</string>
<string name="sync">Pag-synchronize</string>
<string name="email_enter_hint">Ilagay ang iyong email upang magpatuloy</string>
<string name="hide">Itago</string>
<string name="new_sources_text">May mga bagong source ng manga</string>
<string name="show_notification_new_chapters_off">Hindi ka makakatanggap ng mga abiso ngunit ang mga bagong kabanata ay iha-highlight sa mga listahan</string>
<string name="notifications_enable">Paganahin ang mga abiso</string>
<string name="edit_category">Ayusin ang kategorya</string>
<string name="tracking">Tina-track</string>
<string name="empty_favourite_categories">Walang mga paboritong kategorya</string>
<string name="logout">Mag-log out</string>
<string name="bookmark_add">Magdagdag ng bookmark</string>
<string name="bookmark_removed">Tinanggal ang bookmark</string>
<string name="removed_from_history">Inalis sa kasaysayan</string>
<string name="dns_over_https">DNS sa HTTPS</string>
<string name="default_mode">Default na mode</string>
<string name="detect_reader_mode">Automatikong matukoy ang reader mode</string>
<string name="crash_text">May nangyaring mali. Mangyaring magsumite ng isang bug report sa mga developer upang matulungan kaming ayusin ito.</string>
<string name="send">Ipadala</string>
<string name="status_re_reading">Muling pagbabasa</string>
<string name="status_dropped">Binitawan</string>
<string name="appwidget_shelf_description">Manga mula sa iyong mga paborito</string>
<string name="appwidget_recent_description">Ang iyong kamakailang nabasa na manga</string>
<string name="data_deletion">Pagtanggal ng data</string>
<string name="show_reading_indicators_summary">Ipakita ang porsyento na nabasa sa kasaysayan at mga paborito</string>
<string name="show_all">Ipakita lahat</string>
<string name="select_range">Pumili ng saklaw</string>
<string name="clear_all_history">I-clear ang lahat ng kasaysayan</string>
<string name="no_bookmarks_summary">Maaari kang lumikha ng bookmark habang nagbabasa ng manga</string>
<string name="bookmarks_removed">Tinanggal ang mga bookmark</string>
<string name="random">Random</string>
<string name="no_manga_sources">Walang mga source ng manga</string>
<string name="no_manga_sources_text">Paganahin ang mga source ng manga upang basahin ang manga online</string>
<string name="reorder">Ayusin muli</string>
<string name="empty">Walang laman</string>
<string name="confirm_exit">Pindutin muli ang Bumalik upang lumabas</string>
<string name="exit_confirmation_summary">Pindutin ang Bumalik nang dalawang beses upang lumabas sa app</string>
<string name="exit_confirmation">Pagkumpirma ng paglabas</string>
<string name="saved_manga">Na-save na manga</string>
<string name="explore">Mag-Explore</string>
<string name="other_cache">Iba pang cache</string>
<string name="storage_usage">Paggamit ng storage</string>
<string name="available">Magagamit na</string>
<string name="memory_usage_pattern">%s - %s</string>
<string name="removed_from_favourites">Inalis sa mga paborito</string>
<string name="options">Mga pagpipilian</string>
<string name="incognito_mode">Incognito mode</string>
<string name="no_chapters">Walang mga kabanata</string>
<string name="automatic_scroll">Awtomatikong pag-scroll</string>
<string name="reader_info_pattern">Ch. %1$d/%2$d Pg. %3$d/%4$d</string>
<string name="reader_info_bar">Ipakita ang information bar sa pagbasa</string>
<string name="comics_archive">Archive ng mga comics</string>
<string name="folder_with_images">Folder na may mga larawan</string>
<string name="import_completed">Nakumpleto na ang pag-import</string>
<string name="import_will_start_soon">Magsisimula na ang pag-import</string>
<string name="feed">Feed</string>
<string name="history_shortcuts_summary">Gawing magagamit ang kamakailang manga sa pamamagitan ng mahabang pagpindot sa icon ng application</string>
<string name="history_shortcuts">Ipakita ang mga kamakailang manga shortcut</string>
<string name="reader_control_ltr">Ergonomic na kontrol sa mambabasa</string>
<string name="color_correction">Pagwawasto ng kulay</string>
<string name="brightness">Liwanag</string>
<string name="contrast">Kaibahan</string>
<string name="text_unsaved_changes_prompt">I-save o kalimutan ang mga hindi na-save na pagbabago\?</string>
<string name="discard">Kalimutan</string>
<string name="error_no_space_left">Walang natitirang espasyo sa device</string>
<string name="webtoon_zoom">Pag-zoom sa webtoon</string>
<string name="different_languages">Iba\'t ibang wika</string>
<string name="server_error">Server side error (%1$d). Subukang muli mamaya</string>
<string name="clear_new_chapters_counters">I-clear din ang impormasyon tungkol sa mga bagong kabanata</string>
<string name="prefetch_content">Preloading ng nilalaman</string>
<string name="mark_as_current">Markahan bilang kasalukuyan</string>
<string name="language">Wika</string>
<string name="share_logs">Ibahagi ang mga log</string>
<string name="show_suspicious_content">Magpakita ng kahina-hinalang nilalaman</string>
<string name="theme_name_dynamic">Dynamic</string>
<string name="show_in_grid_view">Ipakita sa grid view</string>
<string name="theme_name_asuka">Asuka</string>
<string name="theme_name_mion">Mion</string>
<string name="theme_name_rikka">Rikka</string>
<string name="theme_name_sakura">Sakura</string>
<string name="theme_name_mamimi">Mamimi</string>
<string name="theme_name_kanade">Kanade</string>
<string name="nothing_here">Wala naman dito</string>
<string name="services">Mga serbisyo</string>
<string name="allow_unstable_updates">Payagan ang mga hindi stable na update</string>
<string name="show_reading_indicators">Ipakita ang mga tagapagpahiwatig ng progress ng pagbabasa</string>
<string name="exclude_nsfw_from_history_summary">Manga na minarkahan bilang NSFW ay hindi kailanman idadagdag sa kasaysayan at ang iyong progress ay hindi mase-save</string>
<string name="clear_cookies_summary">Maaaring makatulong sa kaso ng ilang mga isyu. Ang lahat ng pahintulot ay mawawalan ng bisa</string>
<string name="invalid_domain_message">Imbalidong domain</string>
<string name="last_2_hours">Huling 2 oras</string>
<string name="history_cleared">Nabura ang kasaysayan</string>
<string name="manage">Pamahalaan</string>
<string name="no_bookmarks_yet">Wala pang bookmark</string>
<string name="nsfw">18+</string>
<string name="not_found_404">Hindi natagpuan o inalis ang nilalaman</string>
<string name="enable_logging_summary">Magtala ng ilang pagkilos para sa mga layunin ng pag-debug</string>
<string name="text_delete_local_manga_batch">Permanenteng tanggalin ang mga napiling item sa device\?</string>
<string name="chapters_empty">Walang mga kabanata sa manga na ito</string>
<string name="suggestions_updating">Nag-a-update ang mga mungkahi</string>
<string name="download_slowdown">Pagbagal ng pag-download</string>
<string name="chapters_will_removed_background">Tatanggalin ang mga kabanata sa background</string>
<string name="canceled">Kinansela</string>
<string name="sync_title">I-sync ang iyong data</string>
<string name="check_new_chapters_title">Tingnan ang mga bagong kabanata at ipaalam ang tungkol dito</string>
<string name="name">Pangalan</string>
<string name="edit">I-edit</string>
<string name="bookmark_remove">Tanggalin ang bookmark</string>
<string name="show_notification_new_chapters_on">Makakatanggap ka ng mga abiso tungkol sa mga update ng manga na iyong binabasa</string>
<string name="undo">Mag-undo</string>
<string name="status_reading">Nagbabasa</string>
<string name="pages_cache">Cache ng mga pahina</string>
<string name="bookmarks">Mga bookmark</string>
<string name="categories_delete_confirm">Sigurado ka bang gusto mong tanggalin ang mga napiling paboritong kategorya\?
\nAng lahat ng manga sa loob nito ay mawawala at hindi na ito mababawi.</string>
<string name="bookmark_added">Idinagdag ang bookmark</string>
<string name="detect_reader_mode_summary">Awtomatikong matukoy kung ang manga ay webtoon</string>
<string name="disable_battery_optimization">Huwag paganahin ang pag-optimize ng baterya</string>
<string name="disable_battery_optimization_summary">Tumutulong sa mga pagsusuri sa mga update sa background</string>
<string name="status_planned">Nakaplano</string>
<string name="status_completed">Nakumpleto na</string>
<string name="status_on_hold">Naka-hold</string>
<string name="disable_all">Huwag paganahin ang lahat</string>
<string name="use_fingerprint">Gumamit ng fingerprint kung magagamit</string>
<string name="report">Ulat</string>
<string name="reset">I-reset</string>
<string name="allow_unstable_updates_summary">Magmungkahi ng mga update sa mga beta na bersyon ng app</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_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>
<string name="source_disabled">Hindi pinagana ang source</string>
<string name="importing_manga">Pag-import ng manga</string>
<string name="import_completed_hint">Maaari mong tanggalin ang orihinal na file mula sa storage upang makatipid ng espasyo</string>
<string name="color_correction_hint">Ang napiling mga setting ng kulay ay matatandaan para sa manga na ito</string>
<string name="compact">Compact</string>
<string name="scrobbling_empty_hint">Upang subaybayan ang pag unlad ng pagbabasa, piliin ang Menu → Track sa screen ng mga detalye ng manga.</string>
<string name="download_started">Nagsimula na ang pag-download</string>
<string name="color_theme">Scheme ng kulay</string>
<string name="theme_name_miku">Miku</string>
<string name="user_agent">Header ng UserAgent</string>
<string name="text_file_sizes">B|kB|MB|GB|TB</string>
<string name="standard">Standard</string>
<string name="webtoon">Webtoon</string>
<string name="read_mode">Read mode</string>
<string name="error">Error</string>
<string name="internal_storage">Internal storage</string>
<string name="external_storage">External storage</string>
<string name="vibration">Vibration</string>
<string name="domain">Domain</string>
<string name="light_indicator">LED indicator</string>
<string name="settings_apply_restart_required">Mangyaring i-restart ang application upang ilapat ang mga pagbabagong ito</string>
<string name="got_it">Nakuha ko</string>
<string name="sources_reorder_tip">I-tap at hawakan ang isang aytem upang muling ayusin ang mga ito</string>
<string name="restore_backup_description">Mag-import ng dating ginawa na backup ng data ng user</string>
<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="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>
<string name="web_view_unavailable">Hindi available ang WebView: tingnan kung naka-install ang WebView provider</string>
<string name="enable">Paganahin</string>
<string name="downloads_paused">Na-pause ang mga pag-download</string>
<string name="sync_settings">Mga setting ng pag-synchronize</string>
<string name="server_address">Address ng server</string>
<string name="sync_host_description">Maaari kang gumamit ng self-hosted synchronization server o isang default. Huwag baguhin ito kung hindi ka sigurado sa iyong ginagawa.</string>
<string name="ignore_ssl_errors">Huwag pansinin ang mga error sa SSL</string>
<string name="mirror_switching">Awtomatikong pumili ng mirror</string>
<string name="mirror_switching_summary">Awtomatikong lumipat ng mga domain para sa mga remote source sa mga error kung available ang mga mirror</string>
<string name="cancel_all">Kanselahin lahat</string>
<string name="downloads_wifi_only">Mag-download lamang sa pamamagitan ng Wi-Fi</string>
<string name="downloads_wifi_only_summary">Itigil ang pag-download kapag lumipat sa isang mobile network</string>
<string name="paused">Naka-pause</string>
<string name="remove_completed">Tanggalin ang nakumpleto na</string>
<string name="suggestion_manga">Mga mungkahi: %s</string>
<string name="pause">I-pause</string>
<string name="suggestions_notifications_summary">Minsang magpakita ng mga notification na may iminungkahing manga</string>
<string name="more">Higit pa</string>
<string name="no_thanks">Salamat nalang</string>
<string name="resume">Ipagpatuloy</string>
<string name="cancel_all_downloads_confirm">Ang lahat ng mga aktibong pag download ay kakanselahin, bahagyang na download na data ay mawawala</string>
<string name="remove_completed_downloads_confirm">Permanenteng ide-delete ang iyong history ng mga pag-download</string>
<string name="text_downloads_list_holder">Wala kang anumang mga pag-download</string>
<string name="downloads_resumed">Ipinagpatuloy ang mga pag-download</string>
<string name="suggestions_enable_prompt">Gusto mo bang makatanggap ng personalized na mga mungkahi sa manga\?</string>
<string name="downloads_removed">Inalis na ang mga download</string>
<string name="downloads_cancelled">Nakansela ang mga pag-download</string>
</resources>
<string name="bookmark_added">Idinagdag ang bookmark</string>
<string name="detect_reader_mode_summary">Awtomatikong matukoy kung ang manga ay webtoon</string>
<string name="disable_battery_optimization">Huwag paganahin ang pag-optimize ng baterya</string>
<string name="disable_battery_optimization_summary">Tumutulong sa mga pagsusuri sa mga update sa background</string>
<string name="status_planned">Nakaplano</string>
<string name="status_completed">Nakumpleto na</string>
<string name="status_on_hold">Naka-hold</string>
<string name="disable_all">Huwag paganahin ang lahat</string>
<string name="use_fingerprint">Gumamit ng fingerprint kung magagamit</string>
<string name="report">Ulat</string>
<string name="reset">I-reset</string>
<string name="allow_unstable_updates_summary">Magmungkahi ng mga update sa mga beta na bersyon ng app</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_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>
<string name="source_disabled">Hindi pinagana ang source</string>
<string name="importing_manga">Pag-import ng manga</string>
<string name="import_completed_hint">Maaari mong tanggalin ang orihinal na file mula sa storage upang makatipid ng espasyo</string>
<string name="color_correction_hint">Ang napiling mga setting ng kulay ay matatandaan para sa manga na ito</string>
<string name="compact">Compact</string>
<string name="scrobbling_empty_hint">Upang subaybayan ang pag unlad ng pagbabasa, piliin ang Menu → Track sa screen ng mga detalye ng manga.</string>
<string name="download_started">Nagsimula na ang pag-download</string>
<string name="color_theme">Scheme ng kulay</string>
<string name="theme_name_miku">Miku</string>
<string name="user_agent">Header ng UserAgent</string>
<string name="text_file_sizes">B|kB|MB|GB|TB</string>
<string name="standard">Standard</string>
<string name="webtoon">Webtoon</string>
<string name="read_mode">Read mode</string>
<string name="error">Error</string>
<string name="internal_storage">Internal storage</string>
<string name="external_storage">External storage</string>
<string name="vibration">Vibration</string>
<string name="domain">Domain</string>
<string name="light_indicator">LED indicator</string>
<string name="settings_apply_restart_required">Mangyaring i-restart ang application upang ilapat ang mga pagbabagong ito</string>
<string name="got_it">Nakuha ko</string>
<string name="sources_reorder_tip">I-tap at hawakan ang isang aytem upang muling ayusin ang mga ito</string>
<string name="restore_backup_description">Mag-import ng dating ginawa na backup ng data ng user</string>
<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="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>
<string name="web_view_unavailable">Hindi available ang WebView: tingnan kung naka-install ang WebView provider</string>
<string name="enable">Paganahin</string>
<string name="downloads_paused">Na-pause ang mga pag-download</string>
<string name="sync_settings">Mga setting ng pag-synchronize</string>
<string name="server_address">Address ng server</string>
<string name="sync_host_description">Maaari kang gumamit ng self-hosted synchronization server o isang default. Huwag baguhin ito kung hindi ka sigurado sa iyong ginagawa.</string>
<string name="ignore_ssl_errors">Huwag pansinin ang mga error sa SSL</string>
<string name="mirror_switching">Awtomatikong pumili ng mirror</string>
<string name="mirror_switching_summary">Awtomatikong lumipat ng mga domain para sa mga remote source sa mga error kung available ang mga mirror</string>
<string name="cancel_all">Kanselahin lahat</string>
<string name="downloads_wifi_only">Mag-download lamang sa pamamagitan ng Wi-Fi</string>
<string name="downloads_wifi_only_summary">Itigil ang pag-download kapag lumipat sa isang mobile network</string>
<string name="paused">Naka-pause</string>
<string name="remove_completed">Tanggalin ang nakumpleto na</string>
<string name="suggestion_manga">Mga mungkahi: %s</string>
<string name="pause">I-pause</string>
<string name="suggestions_notifications_summary">Minsang magpakita ng mga notification na may iminungkahing manga</string>
<string name="more">Higit pa</string>
<string name="no_thanks">Salamat nalang</string>
<string name="resume">Ipagpatuloy</string>
<string name="cancel_all_downloads_confirm">Ang lahat ng mga aktibong pag download ay kakanselahin, bahagyang na download na data ay mawawala</string>
<string name="remove_completed_downloads_confirm">Permanenteng ide-delete ang iyong history ng mga pag-download</string>
<string name="text_downloads_list_holder">Wala kang anumang mga pag-download</string>
<string name="downloads_resumed">Ipinagpatuloy ang mga pag-download</string>
<string name="suggestions_enable_prompt">Gusto mo bang makatanggap ng personalized na mga mungkahi sa manga\?</string>
<string name="downloads_removed">Inalis na ang mga download</string>
<string name="downloads_cancelled">Nakansela ang mga pag-download</string>
<string name="clear_network_cache">Linisin ang network cache</string>
<string name="type">Uri</string>
<string name="address">Address</string>
<string name="port">Port</string>
<string name="proxy">Proxy</string>
<string name="invalid_value_message">Imbalidong value</string>
<string name="downloaded">Na-download</string>
<string name="images_proxy_title">Proxy sa pag-optimize ng mga imahe</string>
<string name="images_procy_description">Gamitin ang serbisyo ng wsrv.nl upang bawasan ang paggamit ng trapiko at pabilisin ang pag-load ng imahe kung maaari</string>
<string name="username">Username</string>
<string name="authorization_optional">Awtorisasyon (opsyonal)</string>
<string name="network">Network</string>
<string name="data_and_privacy">Data at privacy</string>
<string name="restore_summary">Ibalik ang dating ginawang backup</string>
<string name="webtoon_zoom_summary">Payagan ang pag-zoom in na gesture sa webtoon mode</string>
<string name="reader_info_bar_summary">Ipakita ang kasalukuyang oras at pagbabasa ng progreso sa tuktok ng screen</string>
<string name="show_pages_numbers_summary">Ipakita ang mga numero ng pahina sa ibabang gilid</string>
<string name="pages_animation_summary">I-animate ang paglipat ng pahina</string>
<string name="invalid_port_number">Imbalidong numero ng port</string>
<string name="clear_source_cookies_summary">I-clear ang mga cookie para sa tinukoy na domain lamang. Sa karamihan ng mga kaso, magpapawalang-bisa ang awtorisasyon</string>
<string name="manga_branch_title_template">%1$s (%2$s)</string>
<string name="download_option_all_chapters">Lahat ng mga kabanata na may pagsasalin na %s</string>
<string name="download_option_whole_manga">Ang buong manga</string>
<string name="download_option_first_n_chapters">Unang %s</string>
<string name="download_option_next_unread_n_chapters">Susunod na di-nabasa %s</string>
<string name="download_option_all_unread">Lahat ng di-nababasang kabanata</string>
<string name="download_option_all_unread_b">Lahat ng di-nababasang kabanata (%s)</string>
<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">Pasadyang direktoryo</string>
<string name="pick_custom_directory">Pumili ng pasadyang 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>
</resources>

View File

@@ -323,4 +323,33 @@
<string name="never">절대</string>
<string name="clear_network_cache">네트워크 캐시 지우기</string>
<string name="invalid_value_message">잘못된 값</string>
<string name="just_now">방금</string>
<string name="enabled_sources">중고 소스</string>
<string name="detect_reader_mode">자동 감지 리더 모드</string>
<string name="explore">탐색</string>
<string name="options">옵션</string>
<string name="importing_manga">만화 가져오기</string>
<string name="color_correction_hint">선택한 색상 설정은 이 만화에 대해 기억됩니다</string>
<string name="services">서비스</string>
<string name="details_button_tip">더 많은 옵션을 보려면 읽기 버튼을 길게 누르세요</string>
<string name="clear_source_cookies_summary">지정된 도메인에 대해서만 쿠키를 지웁니다. 대부분의 경우 인증이 무효화됩니다</string>
<string name="history_shortcuts_summary">응용 프로그램 아이콘을 길게 눌러 최신 만화를 사용할 수 있도록 합니다</string>
<string name="reorder">재 주문</string>
<string name="folder_with_images">이미지가 있는 폴더</string>
<string name="download_option_all_unread_b">읽지 않은 모든 챕터(%s)</string>
<string name="download_option_all_unread">읽지 않은 모든 챕터</string>
<string name="download_option_all_chapters">%s 번역이 있는 모든 챕터</string>
<string name="color_correction">색보정</string>
<string name="reader_control_ltr">인체공학적 리더 컨트롤</string>
<string name="brightness">명도</string>
<string name="local_manga_directories">지역 만화 디렉토리</string>
<string name="no_access_to_file">이 파일 또는 디렉터리에 대한 액세스 권한이 없습니다</string>
<string name="various_languages">다양한 언어</string>
<string name="local_manga_processing">저장된 만화 처리</string>
<string name="show_reading_indicators_summary">기록 및 즐겨찾기에서 읽은 비율 표시</string>
<string name="reader_control_ltr_summary">오른쪽 가장자리를 탭하거나 오른쪽 키를 누르면 항상 다음 페이지로 전환됩니다</string>
<string name="contrast">차이</string>
<string name="reset">초기화</string>
<string name="text_unsaved_changes_prompt">저장되지 않은 변경 사항을 저장하거나 삭제하시겠습니까\?</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>
</resources>

View File

@@ -225,4 +225,8 @@
<string name="various_languages">विभिन्न भाषाहरू</string>
<string name="search_chapters">अध्याय खोज्नुहोस्</string>
<string name="appearance">उपस्थिति</string>
<string name="history_shortcuts">हालैको मंगा सर्टकट देखाउनुहोस्</string>
<string name="reader_control_ltr_summary">दायाँ किनारामा ट्याप गर्नुहोस् वा दायाँ कुञ्जी थिच्दा सधैं अर्को पृष्ठमा स्विच हुन्छ</string>
<string name="reader_control_ltr">Ergonomic पाठक नियन्त्रण</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>
</resources>

View File

@@ -180,7 +180,7 @@
<string name="grid_size">Wielkość siatki</string>
<string name="search_on_s">Szukaj na %s</string>
<string name="delete_manga">Usuń mangę</string>
<string name="_continue">Dalej</string>
<string name="_continue">Kontynuuj</string>
<string name="error">Błąd</string>
<string name="search_history_cleared">Wyczyszczone</string>
<string name="internal_storage">Pamięć wewnętrzna</string>
@@ -431,4 +431,16 @@
<string name="reader_info_bar_summary">Pokaż aktualny czas i postęp czytania u góry ekranu</string>
<string name="details_button_tip">Naciśnij i przytrzymaj przycisk Czytaj, aby zobaczyć więcej opcji</string>
<string name="manga_branch_title_template">%1$s (%2$s)</string>
<string name="clear_source_cookies_summary">Wyczyść pliki cookie tylko dla określonej domeny. W większości przypadków unieważni autoryzację</string>
<string name="download_option_all_chapters">Wszystkie rozdziały z tłumaczeniem %s</string>
<string name="download_option_first_n_chapters">Pierwszy %s</string>
<string name="download_option_all_unread">Wszystkie nieprzeczytane rozdziały</string>
<string name="download_option_all_unread_b">Wszystkie nieprzeczytane rozdziały (%s)</string>
<string name="download_option_whole_manga">Cała manga</string>
<string name="download_option_next_unread_n_chapters">Następna nieprzeczytana %s</string>
<string name="download_option_manual_selection">Wybierz rozdziały ręcznie</string>
<string name="custom_directory">Katalog niestandardowy</string>
<string name="pick_custom_directory">Wybierz katalog niestandardowy</string>
<string name="no_access_to_file">Nie masz dostępu do tego pliku lub katalogu</string>
<string name="local_manga_directories">Lokalne katalogi mangi</string>
</resources>

View File

@@ -389,7 +389,7 @@
<string name="address">Địa chỉ</string>
<string name="invert_colors">Đảo màu</string>
<string name="invalid_port_number">Cổng không hợp lệ</string>
<string name="download_option_manual_selection">Chọn các chương bằng tay</string>
<string name="download_option_manual_selection">Chọn thủ công các chương</string>
<string name="download_option_all_unread">Tất cả các chương chưa đọc</string>
<string name="resume">Tiếp tục</string>
<string name="clear_new_chapters_counters">Xoá thông tin về chương mới</string>

View File

@@ -26,7 +26,7 @@
<string name="text_delete_local_manga_batch">從裝置中永久地刪除選取項目\?</string>
<string name="filter_load_error">無法載入流派列表</string>
<string name="chapters_will_removed_background">章節將在背景被刪除</string>
<string name="check_new_chapters_title">檢查新的章節並通知關於它資訊</string>
<string name="check_new_chapters_title">檢查新的章節並通知關於它資訊</string>
<string name="download_slowdown_summary">有助于避免阻断您的IP地址</string>
<string name="email_enter_hint">輸入您的 email 以繼續</string>
<string name="new_sources_text">有新的漫畫來源可用</string>
@@ -44,7 +44,7 @@
<string name="settings">設定</string>
<string name="nothing_found">沒有發現</string>
<string name="onboard_text">選擇您想閱讀的漫畫的語言。您可以之後在設定中變更。</string>
<string name="clear_cookies_summary">可以在出一些问题时提供助。所有授权将被视为无</string>
<string name="clear_cookies_summary">可以在出一些問題時提供助。 所有授權將被視為無</string>
<string name="history">歷史紀錄</string>
<string name="error_occurred">發生錯誤</string>
<string name="network_error">網路錯誤</string>
@@ -64,7 +64,7 @@
<string name="text_file_not_supported">選擇 ZIP 或 CBZ 檔案。</string>
<string name="no_bookmarks_summary">您可以在閱讀漫畫時建立書籤</string>
<string name="show_notification_new_chapters_on">您將會收到您正在閱讀的漫畫的更新通知</string>
<string name="tracker_warning">一些设备有不同的系统行为,这可能会破坏后台任务</string>
<string name="tracker_warning">一些裝置有不同的系統行為,這可能會破壞背景任務</string>
<string name="protect_application_subtitle">輸入密碼以啟動應用程式</string>
<string name="protect_application_summary">在啟動 Kotatsu 時要求密碼</string>
<string name="chapters_empty">此漫畫沒有章節</string>
@@ -75,7 +75,7 @@
<string name="password_length_hint">密碼必須是 4 個字元以上</string>
<string name="auth_not_supported_by">不支援在 %s 上登錄</string>
<string name="_s_deleted_from_local_storage">\"%s\" 已從本機儲存區中刪除</string>
<string name="exit_confirmation_summary">典籍兩次返回鍵以退出應用程式</string>
<string name="exit_confirmation_summary">點擊兩次返回鍵以退出應用程式</string>
<string name="no_manga_sources_text">啟用漫畫來源以閱讀線上漫畫</string>
<string name="text_clear_history_prompt">永久清除所有閱讀歷史紀錄\?</string>
<string name="text_delete_local_manga">從裝置中永久刪除 \"%s\"\?</string>

View File

@@ -6,7 +6,7 @@ buildscript {
dependencies {
classpath 'com.android.tools.build:gradle:8.0.2'
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.22'
classpath 'com.google.dagger:hilt-android-gradle-plugin:2.46.1'
classpath 'com.google.dagger:hilt-android-gradle-plugin:2.47'
}
}