Compare commits

...

18 Commits

Author SHA1 Message Date
Koitharu
009eb9fe44 Fix recursive sync 2023-06-17 18:34:08 +03:00
Koitharu
fc8a5ccd9f Fix Continue button in offline mode 2023-06-17 18:20:57 +03:00
Koitharu
91f46de547 Fix crashes 2023-06-17 18:11:09 +03:00
Koitharu
d548993e14 Move syncronization to main process 2023-06-17 17:36:12 +03:00
Koitharu
4f32664b33 Respect system PowerSave mode 2023-06-17 16:12:14 +03:00
Koitharu
71b14a3aa8 Refactor FilterOwner 2023-06-17 16:05:08 +03:00
Isira Seneviratne
183a61272e Use ParcelCompat methods. 2023-06-17 15:50:08 +03:00
Koitharu
f1f208ad15 Merge branch 'master' into devel 2023-06-16 10:45:12 +03:00
Koitharu
c6983d794c Fix tablet portrait layout 2023-06-16 10:42:19 +03:00
Koitharu
8228153c83 Fix tablet portrait layout 2023-06-16 10:41:32 +03:00
Koitharu
844bd13a07 Fix filter lifecycle 2023-06-16 10:23:40 +03:00
Koitharu
60a5620134 Schedule workers only on demand 2023-06-16 09:50:02 +03:00
qrynill
dd09a39077 Translated using Weblate (Norwegian Nynorsk)
Currently translated at 82.0% (357 of 435 strings)

Co-authored-by: qrynill <tryvseu@tuta.io>
Translate-URL: https://hosted.weblate.org/projects/kotatsu/strings/nn/
Translation: Kotatsu/Strings
2023-06-15 09:45:35 +03:00
MaSHiNiK
1511bd3279 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (435 of 435 strings)

Co-authored-by: MaSHiNiK <infinitymashinik456@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/kotatsu/strings/uk/
Translation: Kotatsu/Strings
2023-06-15 09:45:35 +03:00
Макар Разин
259c335607 Translated using Weblate (Turkish)
Currently translated at 100.0% (435 of 435 strings)

Translated using Weblate (French)

Currently translated at 100.0% (435 of 435 strings)

Translated using Weblate (Portuguese)

Currently translated at 86.2% (375 of 435 strings)

Translated using Weblate (Belarusian)

Currently translated at 100.0% (435 of 435 strings)

Co-authored-by: Макар Разин <makarrazin14@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/kotatsu/strings/be/
Translate-URL: https://hosted.weblate.org/projects/kotatsu/strings/fr/
Translate-URL: https://hosted.weblate.org/projects/kotatsu/strings/pt/
Translate-URL: https://hosted.weblate.org/projects/kotatsu/strings/tr/
Translation: Kotatsu/Strings
2023-06-15 09:45:07 +03:00
Nick New
86367b6d3b Added translation using Weblate (Thai)
Co-authored-by: Nick New <newblackseries@gmail.com>
2023-06-15 09:45:07 +03:00
Koitharu
19b893738d Update parsers 2023-06-15 09:44:35 +03:00
Koitharu
d817ae0394 Fix Cloudflare bypass 2023-06-15 09:43:14 +03:00
56 changed files with 1566 additions and 1352 deletions

View File

@@ -15,8 +15,8 @@ android {
applicationId 'org.koitharu.kotatsu'
minSdkVersion 21
targetSdkVersion 33
versionCode 553
versionName '5.2.1'
versionCode 555
versionName '5.2.3'
generatedDensities = []
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
@@ -79,7 +79,7 @@ afterEvaluate {
}
dependencies {
//noinspection GradleDependency
implementation('com.github.KotatsuApp:kotatsu-parsers:f732582d55') {
implementation('com.github.KotatsuApp:kotatsu-parsers:86a82970fc') {
exclude group: 'org.json', module: 'json'
}
@@ -104,6 +104,7 @@ dependencies {
//noinspection LifecycleAnnotationProcessorWithJava8
kapt 'androidx.lifecycle:lifecycle-compiler:2.6.1'
// TODO https://issuetracker.google.com/issues/254846063
implementation 'androidx.work:work-runtime-ktx:2.8.1'
//noinspection GradleDependency
implementation('com.google.guava:guava:32.0.0-android') {

View File

@@ -188,8 +188,7 @@
<service
android:name="org.koitharu.kotatsu.sync.ui.favourites.FavouritesSyncService"
android:exported="false"
android:label="@string/favourites"
android:process=":sync">
android:label="@string/favourites">
<intent-filter>
<action android:name="android.content.SyncAdapter" />
</intent-filter>
@@ -200,8 +199,7 @@
<service
android:name="org.koitharu.kotatsu.sync.ui.history.HistorySyncService"
android:exported="false"
android:label="@string/history"
android:process=":sync">
android:label="@string/history">
<intent-filter>
<action android:name="android.content.SyncAdapter" />
</intent-filter>

View File

@@ -28,6 +28,7 @@ import org.koitharu.kotatsu.local.data.LocalMangaRepository
import org.koitharu.kotatsu.local.data.PagesCache
import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.reader.domain.PageLoader
import org.koitharu.kotatsu.settings.work.WorkScheduleManager
import javax.inject.Inject
@HiltAndroidApp
@@ -51,6 +52,9 @@ class KotatsuApp : Application(), Configuration.Provider {
@Inject
lateinit var appValidator: AppValidator
@Inject
lateinit var workScheduleManager: WorkScheduleManager
override fun onCreate() {
super.onCreate()
ACRA.errorReporter.putCustomData("isOriginalApp", appValidator.isOriginalApp.toString())
@@ -63,6 +67,7 @@ class KotatsuApp : Application(), Configuration.Provider {
processLifecycleScope.launch(Dispatchers.Default) {
setupDatabaseObservers()
}
workScheduleManager.init()
WorkServiceStopHelper(applicationContext).setup()
}

View File

@@ -13,13 +13,13 @@ private const val SERVER_CLOUDFLARE = "cloudflare"
class CloudFlareInterceptor : Interceptor {
override fun intercept(chain: Interceptor.Chain): Response {
val request = chain.request()
val response = chain.proceed(request)
val response = chain.proceed(chain.request())
if (response.code == HTTP_FORBIDDEN || response.code == HTTP_UNAVAILABLE) {
if (response.header(HEADER_SERVER)?.startsWith(SERVER_CLOUDFLARE) == true) {
val request = response.request
response.closeQuietly()
throw CloudFlareProtectedException(
url = response.request.url.toString(),
url = request.url.toString(),
headers = request.headers,
)
}

View File

@@ -61,6 +61,10 @@ class WorkManagerHelper(
return workManagerImpl.getWorkInfoById(id).await()
}
suspend fun getUniqueWorkInfoByName(name: String): List<WorkInfo> {
return workManagerImpl.getWorkInfosForUniqueWork(name).await().orEmpty()
}
suspend fun updateWork(request: WorkRequest): WorkManager.UpdateResult {
return workManagerImpl.updateWork(request).await()
}

View File

@@ -6,6 +6,7 @@ import android.app.ActivityManager.MemoryInfo
import android.app.ActivityOptions
import android.content.Context
import android.content.Context.ACTIVITY_SERVICE
import android.content.Context.POWER_SERVICE
import android.content.ContextWrapper
import android.content.OperationApplicationException
import android.content.SharedPreferences
@@ -17,6 +18,7 @@ import android.graphics.Color
import android.net.Uri
import android.os.Build
import android.os.Bundle
import android.os.PowerManager
import android.provider.Settings
import android.view.View
import android.view.ViewPropertyAnimator
@@ -51,6 +53,9 @@ import kotlin.math.roundToLong
val Context.activityManager: ActivityManager?
get() = getSystemService(ACTIVITY_SERVICE) as? ActivityManager
val Context.powerManager: PowerManager?
get() = getSystemService(POWER_SERVICE) as? PowerManager
fun String.toUriOrNull() = if (isEmpty()) null else Uri.parse(this)
suspend fun CoroutineWorker.trySetForeground(): Boolean = runCatchingCancellable {
@@ -141,6 +146,10 @@ fun Context.isLowRamDevice(): Boolean {
return activityManager?.isLowRamDevice ?: false
}
fun Context.isPowerSaveMode(): Boolean {
return powerManager?.isPowerSaveMode == true
}
val Context.ramAvailable: Long
get() {
val result = MemoryInfo()

View File

@@ -9,8 +9,8 @@ import android.os.Parcel
import android.os.Parcelable
import androidx.core.content.IntentCompat
import androidx.core.os.BundleCompat
import androidx.core.os.ParcelCompat
import androidx.lifecycle.SavedStateHandle
import org.koitharu.kotatsu.core.model.parcelable.ParcelableMangaTags
import java.io.Serializable
// https://issuetracker.google.com/issues/240585930
@@ -36,11 +36,11 @@ inline fun <reified T : Serializable> Bundle.getSerializableCompat(key: String):
}
inline fun <reified T : Parcelable> Parcel.readParcelableCompat(): T? {
return readParcelable(ParcelableMangaTags::class.java.classLoader) as T?
return ParcelCompat.readParcelable(this, T::class.java.classLoader, T::class.java)
}
inline fun <reified T : Serializable> Parcel.readSerializableCompat(): T? {
return readSerializable() as T?
return ParcelCompat.readSerializable(this, T::class.java.classLoader, T::class.java)
}
inline fun <reified T : Serializable> Bundle.requireSerializable(key: String): T {
@@ -49,12 +49,6 @@ inline fun <reified T : Serializable> Bundle.requireSerializable(key: String): T
}
}
inline fun <reified T : Parcelable> Bundle.requireParcelable(key: String): T {
return checkNotNull(getParcelableCompat(key)) {
"Parcelable of type \"${T::class.java.name}\" not found at \"$key\""
}
}
fun <T> SavedStateHandle.require(key: String): T {
return checkNotNull(get(key)) {
"Value $key not found in SavedStateHandle or has a wrong type"

View File

@@ -10,12 +10,13 @@ import org.koitharu.kotatsu.core.model.parcelable.ParcelableMangaChapters
import org.koitharu.kotatsu.core.parser.MangaRepository
import org.koitharu.kotatsu.core.ui.CoroutineIntentService
import org.koitharu.kotatsu.core.util.ext.getParcelableExtraCompat
import org.koitharu.kotatsu.core.util.ext.isPowerSaveMode
import org.koitharu.kotatsu.core.util.ext.printStackTraceDebug
import org.koitharu.kotatsu.history.data.HistoryRepository
import org.koitharu.kotatsu.parsers.model.Manga
import org.koitharu.kotatsu.parsers.model.MangaChapter
import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.util.runCatchingCancellable
import org.koitharu.kotatsu.core.util.ext.printStackTraceDebug
import javax.inject.Inject
@AndroidEntryPoint
@@ -115,6 +116,9 @@ class MangaPrefetchService : CoroutineIntentService() {
if (source == MangaSource.LOCAL) {
return false
}
if (context.isPowerSaveMode()) {
return false
}
val entryPoint = EntryPointAccessors.fromApplication(context, PrefetchCompanionEntryPoint::class.java)
return entryPoint.contentCache.isCachingEnabled && entryPoint.settings.isContentPrefetchEnabled
}

View File

@@ -22,6 +22,7 @@ import org.koitharu.kotatsu.core.parser.MangaDataRepository
import org.koitharu.kotatsu.core.parser.MangaRepository
import org.koitharu.kotatsu.core.ui.widgets.ChipsView
import org.koitharu.kotatsu.core.util.ext.lifecycleScope
import org.koitharu.kotatsu.core.util.ext.printStackTraceDebug
import org.koitharu.kotatsu.core.util.ext.require
import org.koitharu.kotatsu.filter.ui.model.FilterHeaderModel
import org.koitharu.kotatsu.filter.ui.model.FilterItem
@@ -35,7 +36,6 @@ import org.koitharu.kotatsu.parsers.util.SuspendLazy
import org.koitharu.kotatsu.parsers.util.runCatchingCancellable
import org.koitharu.kotatsu.remotelist.ui.RemoteListFragment
import org.koitharu.kotatsu.search.domain.MangaSearchRepository
import org.koitharu.kotatsu.core.util.ext.printStackTraceDebug
import java.text.Collator
import java.util.LinkedList
import java.util.Locale
@@ -49,7 +49,7 @@ class FilterCoordinator @Inject constructor(
dataRepository: MangaDataRepository,
private val searchRepository: MangaSearchRepository,
lifecycle: ViewModelLifecycle,
) : FilterOwner {
) : MangaFilter {
private val coroutineScope = lifecycle.lifecycleScope
private val repository = mangaRepositoryFactory.create(savedStateHandle.require(RemoteListFragment.ARG_SOURCE))

View File

@@ -19,9 +19,8 @@ import com.google.android.material.R as materialR
class FilterHeaderFragment : BaseFragment<FragmentFilterHeaderBinding>(), ChipsView.OnChipClickListener {
private val owner by lazy(LazyThreadSafetyMode.NONE) {
FilterOwner.from(requireActivity())
}
private val filter: MangaFilter
get() = (requireActivity() as FilterOwner).filter
override fun onCreateViewBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentFilterHeaderBinding {
return FragmentFilterHeaderBinding.inflate(inflater, container, false)
@@ -30,7 +29,7 @@ class FilterHeaderFragment : BaseFragment<FragmentFilterHeaderBinding>(), ChipsV
override fun onViewBindingCreated(binding: FragmentFilterHeaderBinding, savedInstanceState: Bundle?) {
super.onViewBindingCreated(binding, savedInstanceState)
binding.chipsTags.onChipClickListener = this
owner.header.observe(viewLifecycleOwner, ::onDataChanged)
filter.header.observe(viewLifecycleOwner, ::onDataChanged)
}
override fun onWindowInsetsChanged(insets: Insets) = Unit
@@ -40,7 +39,7 @@ class FilterHeaderFragment : BaseFragment<FragmentFilterHeaderBinding>(), ChipsV
if (tag == null) {
FilterSheetFragment.show(parentFragmentManager)
} else {
owner.onTagItemClick(FilterItem.Tag(tag, !chip.isChecked))
filter.onTagItemClick(FilterItem.Tag(tag, !chip.isChecked))
}
}

View File

@@ -1,32 +1,6 @@
package org.koitharu.kotatsu.filter.ui
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentActivity
import kotlinx.coroutines.flow.StateFlow
import org.koitharu.kotatsu.core.util.ext.values
import org.koitharu.kotatsu.filter.ui.model.FilterHeaderModel
import org.koitharu.kotatsu.list.ui.model.ListModel
import org.koitharu.kotatsu.parsers.model.MangaTag
interface FilterOwner {
interface FilterOwner : OnFilterChangedListener {
val filterItems: StateFlow<List<ListModel>>
val header: StateFlow<FilterHeaderModel>
fun applyFilter(tags: Set<MangaTag>)
companion object {
fun from(activity: FragmentActivity): FilterOwner {
for (f in activity.supportFragmentManager.fragments) {
return find(f) ?: continue
}
error("Cannot find FilterOwner")
}
fun find(fragment: Fragment): FilterOwner? {
return fragment.viewModelStore.values.firstNotNullOfOrNull { it as? FilterOwner }
}
}
val filter: MangaFilter
}

View File

@@ -21,20 +21,17 @@ class FilterSheetFragment :
AdaptiveSheetCallback,
AsyncListDiffer.ListListener<ListModel> {
private val owner by lazy(LazyThreadSafetyMode.NONE) {
FilterOwner.from(requireActivity())
}
override fun onCreateViewBinding(inflater: LayoutInflater, container: ViewGroup?): SheetFilterBinding {
return SheetFilterBinding.inflate(inflater, container, false)
}
override fun onViewBindingCreated(binding: SheetFilterBinding, savedInstanceState: Bundle?) {
super.onViewBindingCreated(binding, savedInstanceState)
val filter = (requireActivity() as FilterOwner).filter
addSheetCallback(this)
val adapter = FilterAdapter(owner, this)
val adapter = FilterAdapter(filter, this)
binding.recyclerView.adapter = adapter
owner.filterItems.observe(viewLifecycleOwner, adapter::setItems)
filter.filterItems.observe(viewLifecycleOwner, adapter::setItems)
if (dialog == null && Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
binding.recyclerView.scrollIndicators = 0

View File

@@ -0,0 +1,15 @@
package org.koitharu.kotatsu.filter.ui
import kotlinx.coroutines.flow.StateFlow
import org.koitharu.kotatsu.filter.ui.model.FilterHeaderModel
import org.koitharu.kotatsu.list.ui.model.ListModel
import org.koitharu.kotatsu.parsers.model.MangaTag
interface MangaFilter : OnFilterChangedListener {
val filterItems: StateFlow<List<ListModel>>
val header: StateFlow<FilterHeaderModel>
fun applyFilter(tags: Set<MangaTag>)
}

View File

@@ -45,6 +45,13 @@ class HistoryRepository @Inject constructor(
return entity.manga.toManga(entity.tags.toMangaTags())
}
fun observeLast(): Flow<Manga?> {
return db.historyDao.observeAll(1).map {
val first = it.firstOrNull()
first?.manga?.toManga(first.tags.toMangaTags())
}
}
fun observeAll(): Flow<List<Manga>> {
return db.historyDao.observeAll().mapItems {
it.manga.toManga(it.tags.toMangaTags())

View File

@@ -1,13 +1,15 @@
package org.koitharu.kotatsu.history.domain
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.NonCancellable
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import org.koitharu.kotatsu.core.util.ext.printStackTraceDebug
import org.koitharu.kotatsu.core.util.ext.processLifecycleScope
import org.koitharu.kotatsu.history.data.HistoryRepository
import org.koitharu.kotatsu.parsers.model.Manga
import org.koitharu.kotatsu.parsers.util.runCatchingCancellable
import org.koitharu.kotatsu.reader.ui.ReaderState
import org.koitharu.kotatsu.core.util.ext.printStackTraceDebug
import javax.inject.Inject
class HistoryUpdateUseCase @Inject constructor(
@@ -30,7 +32,9 @@ class HistoryUpdateUseCase @Inject constructor(
percent: Float
) = processLifecycleScope.launch(Dispatchers.Default) {
runCatchingCancellable {
invoke(manga, readerState, percent)
withContext(NonCancellable) {
invoke(manga, readerState, percent)
}
}.onFailure {
it.printStackTraceDebug()
}

View File

@@ -17,15 +17,20 @@ import org.koitharu.kotatsu.core.util.ext.addMenuProvider
import org.koitharu.kotatsu.core.util.ext.observeEvent
import org.koitharu.kotatsu.core.util.ext.withArgs
import org.koitharu.kotatsu.databinding.FragmentListBinding
import org.koitharu.kotatsu.filter.ui.FilterOwner
import org.koitharu.kotatsu.filter.ui.FilterSheetFragment
import org.koitharu.kotatsu.filter.ui.MangaFilter
import org.koitharu.kotatsu.list.ui.MangaListFragment
import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.remotelist.ui.RemoteListFragment
class LocalListFragment : MangaListFragment() {
class LocalListFragment : MangaListFragment(), FilterOwner {
override val viewModel by viewModels<LocalListViewModel>()
override val filter: MangaFilter
get() = viewModel
override fun onViewBindingCreated(binding: FragmentListBinding, savedInstanceState: Bundle?) {
super.onViewBindingCreated(binding, savedInstanceState)
addMenuProvider(LocalListMenuProvider(this::onEmptyActionClick))

View File

@@ -9,6 +9,7 @@ import androidx.work.ExistingWorkPolicy
import androidx.work.OneTimeWorkRequestBuilder
import androidx.work.WorkManager
import androidx.work.WorkerParameters
import androidx.work.await
import dagger.assisted.Assisted
import dagger.assisted.AssistedInject
import org.koitharu.kotatsu.local.data.LocalMangaRepository
@@ -33,7 +34,7 @@ class LocalStorageCleanupWorker @AssistedInject constructor(
private const val TAG = "cleanup"
fun enqueue(context: Context) {
suspend fun enqueue(context: Context) {
val constraints = Constraints.Builder()
.setRequiresBatteryNotLow(true)
.build()
@@ -42,7 +43,7 @@ class LocalStorageCleanupWorker @AssistedInject constructor(
.addTag(TAG)
.setBackoffCriteria(BackoffPolicy.LINEAR, 1, TimeUnit.MINUTES)
.build()
WorkManager.getInstance(context).enqueueUniqueWork(TAG, ExistingWorkPolicy.KEEP, request)
WorkManager.getInstance(context).enqueueUniqueWork(TAG, ExistingWorkPolicy.KEEP, request).await()
}
}
}

View File

@@ -0,0 +1,31 @@
package org.koitharu.kotatsu.main.domain
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.combine
import kotlinx.coroutines.flow.flatMapLatest
import kotlinx.coroutines.flow.flowOf
import org.koitharu.kotatsu.core.os.NetworkState
import org.koitharu.kotatsu.core.prefs.AppSettings
import org.koitharu.kotatsu.core.prefs.observeAsFlow
import org.koitharu.kotatsu.history.data.HistoryRepository
import org.koitharu.kotatsu.parsers.model.MangaSource
import javax.inject.Inject
class ReadingResumeEnabledUseCase @Inject constructor(
private val networkState: NetworkState,
private val historyRepository: HistoryRepository,
private val settings: AppSettings,
) {
operator fun invoke(): Flow<Boolean> = settings.observeAsFlow(AppSettings.KEY_INCOGNITO_MODE) {
isIncognitoModeEnabled
}.flatMapLatest { incognito ->
if (incognito) {
flowOf(false)
} else {
combine(networkState, historyRepository.observeLast()) { isOnline, last ->
last != null && (isOnline || last.source == MangaSource.LOCAL)
}
}
}
}

View File

@@ -69,8 +69,6 @@ import org.koitharu.kotatsu.search.ui.suggestion.SearchSuggestionViewModel
import org.koitharu.kotatsu.settings.newsources.NewSourcesDialogFragment
import org.koitharu.kotatsu.settings.onboard.OnboardDialogFragment
import org.koitharu.kotatsu.shelf.ui.ShelfFragment
import org.koitharu.kotatsu.suggestions.ui.SuggestionsWorker
import org.koitharu.kotatsu.tracker.work.TrackWorker
import javax.inject.Inject
import com.google.android.material.R as materialR
@@ -321,8 +319,6 @@ class MainActivity :
}
}
withContext(Dispatchers.Default) {
TrackWorker.setup(applicationContext)
SuggestionsWorker.setup(applicationContext)
LocalStorageCleanupWorker.enqueue(applicationContext)
}
withResumed {

View File

@@ -97,7 +97,7 @@ class MainNavigationDelegate(
}
private fun onNavigationItemSelected(@IdRes itemId: Int): Boolean {
setPrimaryFragment(
return setPrimaryFragment(
when (itemId) {
R.id.nav_shelf -> ShelfFragment.newInstance()
R.id.nav_explore -> ExploreFragment.newInstance()
@@ -106,7 +106,6 @@ class MainNavigationDelegate(
else -> return false
},
)
return true
}
private fun getItemId(fragment: Fragment) = when (fragment) {
@@ -117,13 +116,17 @@ class MainNavigationDelegate(
else -> 0
}
private fun setPrimaryFragment(fragment: Fragment) {
private fun setPrimaryFragment(fragment: Fragment): Boolean {
if (fragmentManager.isStateSaved) {
return false
}
fragmentManager.beginTransaction()
.setReorderingAllowed(true)
.replace(R.id.container, fragment, TAG_PRIMARY)
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE)
.commit()
onFragmentChanged(fragment, fromUser = true)
return true
}
private fun onFragmentChanged(fragment: Fragment, fromUser: Boolean) {

View File

@@ -13,12 +13,12 @@ import org.koitharu.kotatsu.R
import org.koitharu.kotatsu.core.exceptions.EmptyHistoryException
import org.koitharu.kotatsu.core.github.AppUpdateRepository
import org.koitharu.kotatsu.core.prefs.AppSettings
import org.koitharu.kotatsu.core.prefs.observeAsFlow
import org.koitharu.kotatsu.core.prefs.observeAsStateFlow
import org.koitharu.kotatsu.core.ui.BaseViewModel
import org.koitharu.kotatsu.core.util.ext.MutableEventFlow
import org.koitharu.kotatsu.core.util.ext.call
import org.koitharu.kotatsu.history.data.HistoryRepository
import org.koitharu.kotatsu.main.domain.ReadingResumeEnabledUseCase
import org.koitharu.kotatsu.parsers.model.Manga
import org.koitharu.kotatsu.tracker.domain.TrackingRepository
import javax.inject.Inject
@@ -29,16 +29,12 @@ class MainViewModel @Inject constructor(
private val appUpdateRepository: AppUpdateRepository,
trackingRepository: TrackingRepository,
settings: AppSettings,
readingResumeEnabledUseCase: ReadingResumeEnabledUseCase,
) : BaseViewModel() {
val onOpenReader = MutableEventFlow<Manga>()
val isResumeEnabled = combine(
historyRepository.observeHasItems(),
settings.observeAsFlow(AppSettings.KEY_INCOGNITO_MODE) { isIncognitoModeEnabled },
) { hasItems, incognito ->
hasItems && !incognito
}.stateIn(
val isResumeEnabled = readingResumeEnabledUseCase().stateIn(
scope = viewModelScope + Dispatchers.Default,
started = SharingStarted.WhileSubscribed(5000),
initialValue = false,

View File

@@ -34,6 +34,8 @@ import org.koitharu.kotatsu.core.util.FileSize
import org.koitharu.kotatsu.core.util.RetainedLifecycleCoroutineScope
import org.koitharu.kotatsu.core.util.ext.ensureSuccess
import org.koitharu.kotatsu.core.util.ext.isNotEmpty
import org.koitharu.kotatsu.core.util.ext.isPowerSaveMode
import org.koitharu.kotatsu.core.util.ext.printStackTraceDebug
import org.koitharu.kotatsu.core.util.ext.ramAvailable
import org.koitharu.kotatsu.core.util.ext.withProgress
import org.koitharu.kotatsu.core.util.progress.ProgressDeferred
@@ -42,7 +44,6 @@ import org.koitharu.kotatsu.local.data.PagesCache
import org.koitharu.kotatsu.parsers.model.MangaPage
import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.reader.ui.pager.ReaderPage
import org.koitharu.kotatsu.core.util.ext.printStackTraceDebug
import java.io.File
import java.util.LinkedList
import java.util.concurrent.atomic.AtomicInteger
@@ -83,7 +84,10 @@ class PageLoader @Inject constructor(
}
fun isPrefetchApplicable(): Boolean {
return repository is RemoteMangaRepository && settings.isPagesPreloadEnabled && !isLowRam()
return repository is RemoteMangaRepository
&& settings.isPagesPreloadEnabled
&& !context.isPowerSaveMode()
&& !isLowRam()
}
@AnyThread

View File

@@ -15,7 +15,9 @@ import org.koitharu.kotatsu.core.ui.list.ListSelectionController
import org.koitharu.kotatsu.core.util.ext.addMenuProvider
import org.koitharu.kotatsu.core.util.ext.withArgs
import org.koitharu.kotatsu.databinding.FragmentListBinding
import org.koitharu.kotatsu.filter.ui.FilterOwner
import org.koitharu.kotatsu.filter.ui.FilterSheetFragment
import org.koitharu.kotatsu.filter.ui.MangaFilter
import org.koitharu.kotatsu.list.ui.MangaListFragment
import org.koitharu.kotatsu.main.ui.owners.AppBarOwner
import org.koitharu.kotatsu.parsers.model.MangaSource
@@ -23,10 +25,13 @@ import org.koitharu.kotatsu.search.ui.SearchActivity
import org.koitharu.kotatsu.settings.SettingsActivity
@AndroidEntryPoint
class RemoteListFragment : MangaListFragment() {
class RemoteListFragment : MangaListFragment(), FilterOwner {
override val viewModel by viewModels<RemoteListViewModel>()
override val filter: MangaFilter
get() = viewModel
override fun onViewBindingCreated(binding: FragmentListBinding, savedInstanceState: Bundle?) {
super.onViewBindingCreated(binding, savedInstanceState)
addMenuProvider(RemoteListMenuProvider())

View File

@@ -20,10 +20,11 @@ import org.koitharu.kotatsu.R
import org.koitharu.kotatsu.core.parser.MangaRepository
import org.koitharu.kotatsu.core.prefs.AppSettings
import org.koitharu.kotatsu.core.util.ext.call
import org.koitharu.kotatsu.core.util.ext.printStackTraceDebug
import org.koitharu.kotatsu.core.util.ext.require
import org.koitharu.kotatsu.download.ui.worker.DownloadWorker
import org.koitharu.kotatsu.filter.ui.FilterCoordinator
import org.koitharu.kotatsu.filter.ui.FilterOwner
import org.koitharu.kotatsu.filter.ui.MangaFilter
import org.koitharu.kotatsu.filter.ui.model.FilterState
import org.koitharu.kotatsu.list.domain.ListExtraProvider
import org.koitharu.kotatsu.list.ui.MangaListViewModel
@@ -36,7 +37,6 @@ import org.koitharu.kotatsu.list.ui.model.toUi
import org.koitharu.kotatsu.parsers.model.Manga
import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.model.MangaTag
import org.koitharu.kotatsu.core.util.ext.printStackTraceDebug
import javax.inject.Inject
private const val FILTER_MIN_INTERVAL = 250L
@@ -49,7 +49,7 @@ open class RemoteListViewModel @Inject constructor(
settings: AppSettings,
listExtraProvider: ListExtraProvider,
downloadScheduler: DownloadWorker.Scheduler,
) : MangaListViewModel(settings, downloadScheduler), FilterOwner by filter {
) : MangaListViewModel(settings, downloadScheduler), MangaFilter by filter {
val source = savedStateHandle.require<MangaSource>(RemoteListFragment.ARG_SOURCE)
private val repository = mangaRepositoryFactory.create(source)

View File

@@ -26,7 +26,7 @@ import org.koitharu.kotatsu.databinding.ActivityMangaListBinding
import org.koitharu.kotatsu.filter.ui.FilterHeaderFragment
import org.koitharu.kotatsu.filter.ui.FilterOwner
import org.koitharu.kotatsu.filter.ui.FilterSheetFragment
import org.koitharu.kotatsu.list.ui.MangaListFragment
import org.koitharu.kotatsu.filter.ui.MangaFilter
import org.koitharu.kotatsu.local.ui.LocalListFragment
import org.koitharu.kotatsu.main.ui.owners.AppBarOwner
import org.koitharu.kotatsu.parsers.model.MangaSource
@@ -36,11 +36,16 @@ import org.koitharu.kotatsu.remotelist.ui.RemoteListFragment
@AndroidEntryPoint
class MangaListActivity :
BaseActivity<ActivityMangaListBinding>(),
AppBarOwner, View.OnClickListener {
AppBarOwner, View.OnClickListener, FilterOwner {
override val appBar: AppBarLayout
get() = viewBinding.appbar
override val filter: MangaFilter
get() = checkNotNull(findFilterOwner()) {
"Cannot find FilterOwner fragment in ${supportFragmentManager.fragments}"
}.filter
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(ActivityMangaListBinding.inflate(layoutInflater))
@@ -74,7 +79,10 @@ class MangaListActivity :
private fun initList(source: MangaSource, tags: Set<MangaTag>?) {
val fm = supportFragmentManager
if (fm.findFragmentById(R.id.container) == null) {
val existingFragment = fm.findFragmentById(R.id.container)
if (existingFragment is FilterOwner) {
initFilter(existingFragment)
} else {
fm.commit {
setReorderingAllowed(true)
val fragment = if (source == MangaSource.LOCAL) {
@@ -83,17 +91,15 @@ class MangaListActivity :
RemoteListFragment.newInstance(source)
}
replace(R.id.container, fragment)
runOnCommit { initFilter() }
if (!tags.isNullOrEmpty() && fragment is RemoteListFragment) {
runOnCommit { initFilter(fragment) }
if (!tags.isNullOrEmpty()) {
runOnCommit(ApplyFilterRunnable(fragment, tags))
}
}
} else {
initFilter()
}
}
private fun initFilter() {
private fun initFilter(filterOwner: FilterOwner) {
if (viewBinding.containerFilter != null) {
if (supportFragmentManager.findFragmentById(R.id.container_filter) == null) {
supportFragmentManager.commit {
@@ -109,14 +115,14 @@ class MangaListActivity :
}
}
}
val filterOwner = FilterOwner.from(this)
val filter = filterOwner.filter
val chipSort = viewBinding.chipSort
if (chipSort != null) {
filterOwner.header.observe(this) {
filter.header.observe(this) {
chipSort.setTextAndVisible(it.sortOrder?.titleRes ?: 0)
}
} else {
filterOwner.header.map {
filter.header.map {
it.textSummary
}.flowOn(Dispatchers.Default)
.observe(this) {
@@ -125,15 +131,17 @@ class MangaListActivity :
}
}
private fun findFilterOwner(): FilterOwner? {
return supportFragmentManager.findFragmentById(R.id.container) as? FilterOwner
}
private class ApplyFilterRunnable(
private val fragment: MangaListFragment,
private val filterOwner: FilterOwner,
private val tags: Set<MangaTag>,
) : Runnable {
override fun run() {
checkNotNull(FilterOwner.find(fragment)) {
"Cannot find FilterOwner"
}.applyFilter(tags)
filterOwner.filter.applyFilter(tags)
}
}

View File

@@ -24,6 +24,7 @@ import org.koitharu.kotatsu.R
import org.koitharu.kotatsu.core.prefs.AppSettings
import org.koitharu.kotatsu.core.ui.BasePreferenceFragment
import org.koitharu.kotatsu.core.util.ext.observe
import org.koitharu.kotatsu.core.util.ext.powerManager
import org.koitharu.kotatsu.settings.tracker.categories.TrackerCategoriesConfigSheet
import org.koitharu.kotatsu.settings.utils.MultiSummaryProvider
import org.koitharu.kotatsu.tracker.work.TrackerNotificationChannels
@@ -155,7 +156,7 @@ class TrackerSettingsFragment :
return
}
val packageName = context.packageName
val powerManager = context.getSystemService(Context.POWER_SERVICE) as PowerManager
val powerManager = context.powerManager ?: return
if (!powerManager.isIgnoringBatteryOptimizations(packageName)) {
try {
val intent = Intent(

View File

@@ -0,0 +1,12 @@
package org.koitharu.kotatsu.settings.work
import android.content.Context
interface PeriodicWorkScheduler {
suspend fun schedule(context: Context)
suspend fun unschedule(context: Context)
suspend fun isScheduled(context: Context): Boolean
}

View File

@@ -0,0 +1,49 @@
package org.koitharu.kotatsu.settings.work
import android.content.Context
import android.content.SharedPreferences
import dagger.hilt.android.qualifiers.ApplicationContext
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import org.koitharu.kotatsu.core.prefs.AppSettings
import org.koitharu.kotatsu.core.util.ext.processLifecycleScope
import org.koitharu.kotatsu.suggestions.ui.SuggestionsWorker
import org.koitharu.kotatsu.tracker.work.TrackWorker
import javax.inject.Inject
class WorkScheduleManager @Inject constructor(
@ApplicationContext private val context: Context,
private val settings: AppSettings,
) : SharedPreferences.OnSharedPreferenceChangeListener {
override fun onSharedPreferenceChanged(sharedPreferences: SharedPreferences?, key: String?) {
when (key) {
AppSettings.KEY_TRACKER_ENABLED -> updateWorker(TrackWorker, settings.isTrackerEnabled)
AppSettings.KEY_SUGGESTIONS -> updateWorker(SuggestionsWorker, settings.isSuggestionsEnabled)
}
}
fun init() {
settings.subscribe(this)
processLifecycleScope.launch(Dispatchers.Default) {
updateWorkerImpl(TrackWorker, settings.isTrackerEnabled)
updateWorkerImpl(SuggestionsWorker, settings.isSuggestionsEnabled)
}
}
private fun updateWorker(scheduler: PeriodicWorkScheduler, isEnabled: Boolean) {
processLifecycleScope.launch(Dispatchers.Default) {
updateWorkerImpl(scheduler, isEnabled)
}
}
private suspend fun updateWorkerImpl(scheduler: PeriodicWorkScheduler, isEnabled: Boolean) {
if (scheduler.isScheduled(context) != isEnabled) {
if (isEnabled) {
scheduler.schedule(context)
} else {
scheduler.unschedule(context)
}
}
}
}

View File

@@ -23,6 +23,7 @@ import androidx.work.OutOfQuotaPolicy
import androidx.work.PeriodicWorkRequestBuilder
import androidx.work.WorkManager
import androidx.work.WorkerParameters
import androidx.work.await
import androidx.work.workDataOf
import coil.ImageLoader
import coil.request.ImageRequest
@@ -38,6 +39,7 @@ import org.koitharu.kotatsu.R
import org.koitharu.kotatsu.core.model.distinctById
import org.koitharu.kotatsu.core.parser.MangaRepository
import org.koitharu.kotatsu.core.prefs.AppSettings
import org.koitharu.kotatsu.core.util.WorkManagerHelper
import org.koitharu.kotatsu.core.util.ext.almostEquals
import org.koitharu.kotatsu.core.util.ext.asArrayList
import org.koitharu.kotatsu.core.util.ext.flatten
@@ -55,6 +57,7 @@ import org.koitharu.kotatsu.parsers.model.MangaTag
import org.koitharu.kotatsu.parsers.model.SortOrder
import org.koitharu.kotatsu.parsers.util.runCatchingCancellable
import org.koitharu.kotatsu.reader.ui.ReaderActivity.IntentBuilder
import org.koitharu.kotatsu.settings.work.PeriodicWorkScheduler
import org.koitharu.kotatsu.suggestions.domain.MangaSuggestion
import org.koitharu.kotatsu.suggestions.domain.SuggestionRepository
import org.koitharu.kotatsu.suggestions.domain.TagsBlacklist
@@ -75,11 +78,11 @@ class SuggestionsWorker @AssistedInject constructor(
) : CoroutineWorker(appContext, params) {
override suspend fun doWork(): Result {
trySetForeground()
if (!appSettings.isSuggestionsEnabled) {
suggestionRepository.clear()
return Result.success()
}
trySetForeground()
val count = doWorkImpl()
val outputData = workDataOf(DATA_COUNT to count)
return Result.success(outputData)
@@ -303,7 +306,7 @@ class SuggestionsWorker @AssistedInject constructor(
return -1
}
companion object {
companion object : PeriodicWorkScheduler {
private const val TAG = "suggestions"
private const val TAG_ONESHOT = "suggestions_oneshot"
@@ -324,7 +327,7 @@ class SuggestionsWorker @AssistedInject constructor(
SortOrder.RATING,
)
fun setup(context: Context) {
override suspend fun schedule(context: Context) {
val constraints = Constraints.Builder()
.setRequiredNetworkType(NetworkType.UNMETERED)
.setRequiresBatteryNotLow(true)
@@ -336,6 +339,19 @@ class SuggestionsWorker @AssistedInject constructor(
.build()
WorkManager.getInstance(context)
.enqueueUniquePeriodicWork(TAG, ExistingPeriodicWorkPolicy.KEEP, request)
.await()
}
override suspend fun unschedule(context: Context) {
WorkManager.getInstance(context)
.cancelUniqueWork(TAG)
.await()
}
override suspend fun isScheduled(context: Context): Boolean {
return WorkManagerHelper(WorkManager.getInstance(context))
.getUniqueWorkInfoByName(TAG)
.any { !it.state.isFinished }
}
fun startNow(context: Context) {

View File

@@ -43,10 +43,12 @@ class SyncController @Inject constructor(
private val defaultGcPeriod = TimeUnit.DAYS.toMillis(2) // gc period if sync disabled
override fun onInvalidated(tables: Set<String>) {
requestSync(
favourites = TABLE_FAVOURITES in tables || TABLE_FAVOURITE_CATEGORIES in tables,
history = TABLE_HISTORY in tables,
)
val favourites = (TABLE_FAVOURITES in tables || TABLE_FAVOURITE_CATEGORIES in tables)
&& !isSyncActiveOrPending(authorityFavourites)
val history = TABLE_HISTORY in tables && !isSyncActiveOrPending(authorityHistory)
if (favourites || history) {
requestSync(favourites, history)
}
}
fun isEnabled(account: Account): Boolean {
@@ -126,6 +128,11 @@ class SyncController @Inject constructor(
}
}
private fun isSyncActiveOrPending(authority: String): Boolean {
val account = peekAccount() ?: return false
return ContentResolver.isSyncActive(account, authority) || ContentResolver.isSyncPending(account, authority)
}
companion object {
@JvmStatic

View File

@@ -11,6 +11,10 @@ import android.database.Cursor
import android.net.Uri
import androidx.annotation.WorkerThread
import androidx.core.content.contentValuesOf
import dagger.assisted.Assisted
import dagger.assisted.AssistedFactory
import dagger.assisted.AssistedInject
import dagger.hilt.android.qualifiers.ApplicationContext
import okhttp3.OkHttpClient
import okhttp3.Request
import okhttp3.Response
@@ -23,9 +27,9 @@ import org.koitharu.kotatsu.core.db.TABLE_HISTORY
import org.koitharu.kotatsu.core.db.TABLE_MANGA
import org.koitharu.kotatsu.core.db.TABLE_MANGA_TAGS
import org.koitharu.kotatsu.core.db.TABLE_TAGS
import org.koitharu.kotatsu.core.logs.LoggersModule
import org.koitharu.kotatsu.core.network.GZipInterceptor
import org.koitharu.kotatsu.core.prefs.AppSettings
import org.koitharu.kotatsu.core.logs.FileLogger
import org.koitharu.kotatsu.core.logs.SyncLogger
import org.koitharu.kotatsu.core.network.BaseHttpClient
import org.koitharu.kotatsu.core.util.ext.parseJsonOrNull
import org.koitharu.kotatsu.core.util.ext.toContentValues
import org.koitharu.kotatsu.core.util.ext.toJson
@@ -39,23 +43,20 @@ import java.util.concurrent.TimeUnit
private const val FIELD_TIMESTAMP = "timestamp"
/**
* Warning! This class may be used in another process
*/
@WorkerThread
class SyncHelper(
context: Context,
private val account: Account,
private val provider: ContentProviderClient,
class SyncHelper @AssistedInject constructor(
@ApplicationContext context: Context,
@BaseHttpClient baseHttpClient: OkHttpClient,
@Assisted private val account: Account,
@Assisted private val provider: ContentProviderClient,
private val settings: SyncSettings,
@SyncLogger private val logger: FileLogger,
) {
private val authorityHistory = context.getString(R.string.sync_authority_history)
private val authorityFavourites = context.getString(R.string.sync_authority_favourites)
private val settings = SyncSettings(context, account)
private val httpClient = OkHttpClient.Builder()
private val httpClient = baseHttpClient.newBuilder()
.authenticator(SyncAuthenticator(context, account, settings, SyncAuthApi(OkHttpClient())))
.addInterceptor(SyncInterceptor(context, account))
.addInterceptor(GZipInterceptor())
.build()
private val baseUrl: String by lazy {
val host = settings.host
@@ -64,8 +65,8 @@ class SyncHelper(
}
private val defaultGcPeriod: Long // gc period if sync enabled
get() = TimeUnit.DAYS.toMillis(4)
private val logger = LoggersModule.provideSyncLogger(context, AppSettings(context))
@WorkerThread
fun syncFavourites(syncResult: SyncResult) {
val data = JSONObject()
data.put(TABLE_FAVOURITE_CATEGORIES, getFavouriteCategories())
@@ -89,6 +90,7 @@ class SyncHelper(
gcFavourites()
}
@WorkerThread
fun syncHistory(syncResult: SyncResult) {
val data = JSONObject()
data.put(TABLE_HISTORY, getHistory())
@@ -321,4 +323,13 @@ class SyncHelper(
logger.log("$code ${request.url}")
}
}
@AssistedFactory
interface Factory {
fun create(
account: Account,
contentProviderClient: ContentProviderClient,
): SyncHelper
}
}

View File

@@ -0,0 +1,12 @@
package org.koitharu.kotatsu.sync.ui
import dagger.hilt.EntryPoint
import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent
import org.koitharu.kotatsu.sync.domain.SyncHelper
@EntryPoint
@InstallIn(SingletonComponent::class)
interface SyncAdapterEntryPoint {
val syncHelperFactory: SyncHelper.Factory
}

View File

@@ -6,11 +6,12 @@ import android.content.ContentProviderClient
import android.content.Context
import android.content.SyncResult
import android.os.Bundle
import dagger.hilt.android.EntryPointAccessors
import org.koitharu.kotatsu.R
import org.koitharu.kotatsu.core.util.ext.onError
import org.koitharu.kotatsu.parsers.util.runCatchingCancellable
import org.koitharu.kotatsu.sync.domain.SyncController
import org.koitharu.kotatsu.sync.domain.SyncHelper
import org.koitharu.kotatsu.sync.ui.SyncAdapterEntryPoint
class FavouritesSyncAdapter(context: Context) : AbstractThreadedSyncAdapter(context, true) {
@@ -24,7 +25,8 @@ class FavouritesSyncAdapter(context: Context) : AbstractThreadedSyncAdapter(cont
if (!context.resources.getBoolean(R.bool.is_sync_enabled)) {
return
}
val syncHelper = SyncHelper(context, account, provider)
val entryPoint = EntryPointAccessors.fromApplication(context, SyncAdapterEntryPoint::class.java)
val syncHelper = entryPoint.syncHelperFactory.create(account, provider)
runCatchingCancellable {
syncHelper.syncFavourites(syncResult)
SyncController.setLastSync(context, account, authority, System.currentTimeMillis())

View File

@@ -6,11 +6,12 @@ import android.content.ContentProviderClient
import android.content.Context
import android.content.SyncResult
import android.os.Bundle
import dagger.hilt.android.EntryPointAccessors
import org.koitharu.kotatsu.R
import org.koitharu.kotatsu.core.util.ext.onError
import org.koitharu.kotatsu.parsers.util.runCatchingCancellable
import org.koitharu.kotatsu.sync.domain.SyncController
import org.koitharu.kotatsu.sync.domain.SyncHelper
import org.koitharu.kotatsu.sync.ui.SyncAdapterEntryPoint
class HistorySyncAdapter(context: Context) : AbstractThreadedSyncAdapter(context, true) {
@@ -24,7 +25,8 @@ class HistorySyncAdapter(context: Context) : AbstractThreadedSyncAdapter(context
if (!context.resources.getBoolean(R.bool.is_sync_enabled)) {
return
}
val syncHelper = SyncHelper(context, account, provider)
val entryPoint = EntryPointAccessors.fromApplication(context, SyncAdapterEntryPoint::class.java)
val syncHelper = entryPoint.syncHelperFactory.create(account, provider)
runCatchingCancellable {
syncHelper.syncHistory(syncResult)
SyncController.setLastSync(context, account, authority, System.currentTimeMillis())

View File

@@ -26,6 +26,7 @@ import androidx.work.WorkInfo
import androidx.work.WorkManager
import androidx.work.WorkQuery
import androidx.work.WorkerParameters
import androidx.work.await
import coil.ImageLoader
import coil.request.ImageRequest
import dagger.assisted.Assisted
@@ -42,12 +43,14 @@ import org.koitharu.kotatsu.R
import org.koitharu.kotatsu.core.logs.FileLogger
import org.koitharu.kotatsu.core.logs.TrackerLogger
import org.koitharu.kotatsu.core.prefs.AppSettings
import org.koitharu.kotatsu.core.util.WorkManagerHelper
import org.koitharu.kotatsu.core.util.ext.toBitmapOrNull
import org.koitharu.kotatsu.core.util.ext.trySetForeground
import org.koitharu.kotatsu.details.ui.DetailsActivity
import org.koitharu.kotatsu.parsers.model.Manga
import org.koitharu.kotatsu.parsers.model.MangaChapter
import org.koitharu.kotatsu.parsers.util.runCatchingCancellable
import org.koitharu.kotatsu.settings.work.PeriodicWorkScheduler
import org.koitharu.kotatsu.tracker.domain.Tracker
import org.koitharu.kotatsu.tracker.domain.model.MangaUpdates
import java.util.concurrent.TimeUnit
@@ -67,6 +70,7 @@ class TrackWorker @AssistedInject constructor(
}
override suspend fun doWork(): Result {
trySetForeground()
logger.log("doWork()")
try {
return doWorkImpl()
@@ -85,7 +89,6 @@ class TrackWorker @AssistedInject constructor(
if (!settings.isTrackerEnabled) {
return Result.success(workDataOf(0, 0))
}
trySetForeground()
val tracks = tracker.getAllTracks()
logger.log("Total ${tracks.size} tracks")
if (tracks.isEmpty()) {
@@ -234,7 +237,7 @@ class TrackWorker @AssistedInject constructor(
.build()
}
companion object {
companion object : PeriodicWorkScheduler {
private const val WORKER_CHANNEL_ID = "track_worker"
private const val WORKER_NOTIFICATION_ID = 35
@@ -244,14 +247,28 @@ class TrackWorker @AssistedInject constructor(
private const val DATA_KEY_SUCCESS = "success"
private const val DATA_KEY_FAILED = "failed"
fun setup(context: Context) {
override suspend fun schedule(context: Context) {
val constraints = Constraints.Builder().setRequiredNetworkType(NetworkType.CONNECTED).build()
val request = PeriodicWorkRequestBuilder<TrackWorker>(4, TimeUnit.HOURS)
.setConstraints(constraints)
.addTag(TAG)
.setBackoffCriteria(BackoffPolicy.LINEAR, 30, TimeUnit.MINUTES)
.build()
WorkManager.getInstance(context).enqueueUniquePeriodicWork(TAG, ExistingPeriodicWorkPolicy.KEEP, request)
WorkManager.getInstance(context)
.enqueueUniquePeriodicWork(TAG, ExistingPeriodicWorkPolicy.KEEP, request)
.await()
}
override suspend fun unschedule(context: Context) {
WorkManager.getInstance(context)
.cancelUniqueWork(TAG)
.await()
}
override suspend fun isScheduled(context: Context): Boolean {
return WorkManagerHelper(WorkManager.getInstance(context))
.getUniqueWorkInfoByName(TAG)
.any { !it.state.isFinished }
}
fun startNow(context: Context) {

View File

@@ -56,7 +56,7 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/barrier_top"
app:trackColor="?colorPrimaryContainer"
app:trackColor="?android:colorBackground"
tools:progress="25" />
<TextView

View File

@@ -95,7 +95,7 @@
<string name="vibration">Вібрацыя</string>
<string name="favourites_categories">Катэгорыі абранага</string>
<string name="remove_category">Выдаліць катэгорыю</string>
<string name="manga_shelf">Паліца з мангай</string>
<string name="manga_shelf">Паліца</string>
<string name="recent_manga">Нядаўняя манга</string>
<string name="pages_animation">Анімацыя гартання</string>
<string name="manga_save_location">Месца спампоўвання мангі</string>
@@ -201,7 +201,7 @@
<string name="screenshots_block_all">Заўсёды блакуйце</string>
<string name="screenshots_block_nsfw">Блок на NSFW</string>
<string name="filter_load_error">Немагчыма загрузіць спіс жанраў</string>
<string name="disabled">Непрацаздольны</string>
<string name="disabled">Адключаны</string>
<string name="enabled">Уключаны</string>
<string name="exclude_nsfw_from_suggestions">Не прапануйце мангу NSFW</string>
<string name="text_suggestion_holder">Пачніце чытаць мангу, і вы атрымаеце персаналізаваныя прапановы</string>
@@ -255,7 +255,7 @@
<string name="edit">Змяніць</string>
<string name="edit_category">Змяніць катэгорыю</string>
<string name="bookmark_add">Дадаць закладку</string>
<string name="undo">Адмяніць</string>
<string name="undo">Адмена</string>
<string name="disable_battery_optimization">Адключыць аптымізацыю акумулятара</string>
<string name="disable_battery_optimization_summary">Дапамагае з фонавай праверкай абнаўленняў</string>
<string name="crash_text">Штосьці пайшло не так. Калі ласка, адпраўце справаздачу пра памылку распрацоўшчыкам, каб дапамагчы нам яе выправіць.</string>
@@ -327,7 +327,7 @@
<string name="enable_logging_summary">Запішыце некаторыя дзеянні для адладкі</string>
<string name="show_suspicious_content">Паказаць падазроны кантэнт</string>
<string name="text_shelf_holder_primary">Ваша манга будзе адлюстроўвацца тут</string>
<string name="text_shelf_holder_secondary">Знайдзіце, што пачытаць, у раздзеле «Даследаваць»</string>
<string name="text_shelf_holder_secondary">Знайдзіце, што пачытаць, у раздзеле «Агляд»</string>
<string name="canceled">Адменена</string>
<string name="manage">Кіраваць</string>
<string name="available">Даступны</string>
@@ -356,7 +356,7 @@
<string name="random">Выпадковы</string>
<string name="reorder">Змяніць парадак</string>
<string name="empty">Пуста</string>
<string name="explore">Дасьледуйце</string>
<string name="explore">Агляд</string>
<string name="confirm_exit">Націсніце \"Назад\" яшчэ раз, каб выйсці</string>
<string name="exit_confirmation_summary">Двойчы націсніце \"Назад\", каб выйсці з праграмы</string>
<string name="exit_confirmation">Пацверджанне выхаду</string>
@@ -425,7 +425,7 @@
<string name="invert_colors">Інвертаваць колеры</string>
<string name="show_pages_numbers_summary">Паказаць нумары старонак у ніжнім куце</string>
<string name="network">Сетка</string>
<string name="data_and_privacy">Дадзеныя і прыватнасць</string>
<string name="data_and_privacy">Дадзеныя і канфідэнцыяльнасць</string>
<string name="webtoon_zoom_summary">Дазволіць жэст для павелічэння ў рэжыме webtoon</string>
<string name="details_button_tip">Націсніце і ўтрымлівайце кнопку \"Чытаць\", каб убачыць дадатковыя параметры</string>
<string name="restore_summary">Аднавіць раней створаную рэзервовую копію</string>

View File

@@ -1,425 +1,434 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
<string name="read_more">Lire la suite</string>
<string name="tracker_warning">Certains appareils ont un comportement différent du système, ce qui peut interrompre les tâches d\'arrière-plan.</string>
<string name="backup_saved">Sauvegarde enregistrée</string>
<string name="welcome">Bienvenue</string>
<string name="text_clear_search_history_prompt">Supprimer définitivement toutes les requêtes de recherche récentes \?</string>
<string name="password_length_hint">Le mot de passe doit comporter 4 caractères ou plus</string>
<string name="confirm">Confirmer</string>
<string name="protect_application_subtitle">Entrez un mot de passe pour démarrer l\'application avec</string>
<string name="next">Suivant</string>
<string name="default_s">Par défaut : %s</string>
<string name="auth_required">Connectez-vous pour voir ce contenu</string>
<string name="sign_in">Se connecter</string>
<string name="reverse">Inverser</string>
<string name="check_for_new_chapters">À la recherche de nouveaux chapitres</string>
<string name="text_clear_updates_feed_prompt">Effacer définitivement l\'historique des mises à jour \?</string>
<string name="clear_feed">Effacer le flux</string>
<string name="cookies_cleared">Tous les cookies ont été retirés</string>
<string name="clear_cookies">Effacer les cookies</string>
<string name="captcha_solve">Résoudre</string>
<string name="captcha_required">CAPTCHA requis</string>
<string name="silent">Silencieux</string>
<string name="reader_mode_hint">On se souviendra de la configuration choisie pour ce manga</string>
<string name="tap_to_try_again">Appuyez pour réessayer</string>
<string name="today">Aujourd\'hui</string>
<string name="group">Groupe</string>
<string name="long_ago">Il y a longtemps</string>
<string name="yesterday">Hier</string>
<string name="just_now">À l\'instant</string>
<string name="backup_information">Vous pouvez créer une sauvegarde de votre historique et de vos favoris et la restaurer</string>
<string name="data_restored_with_errors">Les données ont été restaurées, mais il y a des erreurs</string>
<string name="data_restored_success">Toutes les données ont été restaurées</string>
<string name="file_not_found">Fichier introuvable</string>
<string name="preparing_">Préparation…</string>
<string name="data_restored">Restauré</string>
<string name="restore_backup">Restaurer à partir d\'une sauvegarde</string>
<string name="create_backup">Créer une sauvegarde des données</string>
<string name="backup_restore">Sauvegarde et restauration</string>
<string name="black_dark_theme_summary">Utilise moins d\'énergie pour les écrans AMOLED</string>
<string name="black_dark_theme">Noir</string>
<string name="zoom_mode_keep_start">Garder au début</string>
<string name="zoom_mode_fit_width">Ajuster à la largeur</string>
<string name="zoom_mode_fit_height">Ajuster à la hauteur</string>
<string name="zoom_mode_fit_center">Ajuster au centre</string>
<string name="scale_mode">Mode mise à l\'échelle</string>
<string name="create_category">Nouvelle catégorie</string>
<string name="right_to_left">De droite à gauche</string>
<string name="no_update_available">Aucune mise à jour disponible</string>
<string name="check_for_updates">Vérifier les mises à jour</string>
<string name="app_version">Version %s</string>
<string name="about">À propos</string>
<string name="passwords_mismatch">Les mots de passe ne correspondent pas</string>
<string name="repeat_password">Répéter le mot de passe</string>
<string name="protect_application_summary">Demander le mot de passe au démarrage de Kotatsu</string>
<string name="protect_application">Protéger l\'application</string>
<string name="wrong_password">Mot de passe erroné</string>
<string name="enter_password">Entrez le mot de passe</string>
<string name="dont_check">Ne pas vérifier</string>
<string name="track_sources">Rechercher les mises à jour</string>
<string name="feed_will_update_soon">La mise à jour des flux commencera bientôt</string>
<string name="update">Mettre à Jour</string>
<string name="rotate_screen">Faire pivoter l\'écran</string>
<string name="updates_feed_cleared">Effacé</string>
<string name="clear_updates_feed">Effacer le flux des mises à jour</string>
<string name="size_s">Taille : %s</string>
<string name="new_version_s">Nouvelle version : %s</string>
<string name="search_results">Résultats de la recherche</string>
<string name="text_feed_holder">Les nouveaux chapitres de ce que vous lisez sont présentés ici</string>
<string name="updates">Mises à jour</string>
<string name="read_later">Lire plus tard</string>
<string name="favourites_category_empty">Catégorie vide</string>
<string name="all_favourites">Tous les favoris</string>
<string name="done">Terminé</string>
<string name="other_storage">Autre stockage</string>
<string name="cannot_find_available_storage">Pas de stockage disponible</string>
<string name="not_available">Non disponible</string>
<string name="manga_save_location">Dossier pour les téléchargements</string>
<string name="pages_animation">Animation de page</string>
<string name="recent_manga">Récents</string>
<string name="manga_shelf">Étagère</string>
<string name="text_local_holder_secondary">Enregistrez-le à partir de sources en ligne ou importez des fichiers.</string>
<string name="text_local_holder_primary">Sauvegardez d\'abord quelque chose</string>
<string name="text_history_holder_secondary">Trouvez ce que vous voulez lire dans le menu latéral.</string>
<string name="text_history_holder_primary">Ce que vous lisez sera affiché ici</string>
<string name="text_search_holder_secondary">Essayez de reformuler la requête.</string>
<string name="text_empty_holder_primary">C\'est un peu vide ici…</string>
<string name="remove_category">Retirer</string>
<string name="favourites_categories">Catégories favorites</string>
<string name="vibration">Vibration</string>
<string name="light_indicator">Indicateur lumineux</string>
<string name="notification_sound">Son de notification</string>
<string name="notifications_settings">Paramètres des notifications</string>
<string name="download">Télécharger</string>
<string name="new_chapters">Nouveaux chapitres</string>
<string name="enabled_d_of_d" tools:ignore="PluralsCandidate">%1$d de %2$d activé(s)</string>
<string name="notifications">Notifications</string>
<string name="large_manga_save_confirm">Ce manga a %s. Tout sauvegarder \?</string>
<string name="save_manga">Enregistrer</string>
<string name="open_in_browser">Ouvrir dans le navigateur</string>
<string name="app_update_available">Une nouvelle version de l\'application est disponible</string>
<string name="domain">Domaine</string>
<string name="external_storage">Stockage externe</string>
<string name="internal_storage">Stockage interne</string>
<string name="gestures_only">Gestes uniquement</string>
<string name="search_history_cleared">Effacé</string>
<string name="clear_search_history">Effacer l\'historique de recherche</string>
<string name="clear_thumbs_cache">Vider le cache des miniatures</string>
<string name="error">Erreur</string>
<string name="_continue">Continuer</string>
<string name="volume_buttons">Boutons de volume</string>
<string name="taps_on_edges">Appuis au bord</string>
<string name="switch_pages">Changer de pages</string>
<string name="reader_settings">Paramètres du lecteur</string>
<string name="text_delete_local_manga">Supprimer « %s » de l\'appareil de façon permanente \?</string>
<string name="delete_manga">Supprimer le manga</string>
<string name="search_on_s">Rechercher sur %s</string>
<string name="grid_size">Taille de la grille</string>
<string name="read_mode">Mode lecture</string>
<string name="webtoon">Webtoon</string>
<string name="standard">Standard</string>
<string name="text_file_sizes">o|ko|Mo|Go|To</string>
<string name="clear_pages_cache">Vider le cache de la page</string>
<string name="no_description">Aucune description</string>
<string name="text_file_not_supported">Choisissez un fichier ZIP ou CBZ.</string>
<string name="operation_not_supported">Cette opération n\'est pas prise en charge</string>
<string name="delete">Supprimer</string>
<string name="_import">Importer</string>
<string name="share_image">Partager l\'image</string>
<string name="page_saved">Sauvegardé</string>
<string name="save_page">Sauvegarder la page</string>
<string name="_s_deleted_from_local_storage">« %s » supprimé du stockage local</string>
<string name="remove">Retirer</string>
<string name="text_clear_history_prompt">Effacer définitivement l\'historique de lecture \?</string>
<string name="clear">Effacer</string>
<string name="pages">Pages</string>
<string name="automatic">Suivre le système</string>
<string name="dark">Sombre</string>
<string name="light">Clair</string>
<string name="theme">Thème</string>
<string name="filter">Filtre</string>
<string name="sort_order">Ordre de tri</string>
<string name="by_rating">Évaluation</string>
<string name="newest">Le plus récent</string>
<string name="updated">Mis à jour</string>
<string name="popular">Populaire</string>
<string name="by_name">Nom</string>
<string name="downloads">Téléchargements</string>
<string name="download_complete">Téléchargé</string>
<string name="processing_">Traitement…</string>
<string name="manga_downloading_">Téléchargement…</string>
<string name="search_manga">Rechercher un manga</string>
<string name="search">Rechercher</string>
<string name="share_s">Partager %s</string>
<string name="create_shortcut">Créer un raccourci…</string>
<string name="share">Partager</string>
<string name="save">Enregistrer</string>
<string name="add">Ajouter</string>
<string name="add_new_category">Nouvelle catégorie</string>
<string name="add_to_favourites">Ajouter aux favoris</string>
<string name="you_have_not_favourites_yet">Aucun favori pour le moment</string>
<string name="read">Lire</string>
<string name="history_is_empty">Pas encore d\'historique</string>
<string name="nothing_found">Rien n\'a été trouvé</string>
<string name="clear_history">Effacer l\'historique</string>
<string name="try_again">Réessayer</string>
<string name="close">Fermer</string>
<string name="chapter_d_of_d">Chapitre %1$d sur %2$d</string>
<string name="loading_">Chargement…</string>
<string name="remote_sources">Sources des mangas</string>
<string name="settings">Paramètres</string>
<string name="list_mode">Mode liste</string>
<string name="grid">Grille</string>
<string name="detailed_list">Liste détaillée</string>
<string name="list">Liste</string>
<string name="chapters">Chapitres</string>
<string name="details">Détails</string>
<string name="network_error">Erreur réseau</string>
<string name="error_occurred">Une erreur s\'est produite</string>
<string name="history">Historique</string>
<string name="favourites">Favoris</string>
<string name="local_storage">Stockage local</string>
<string name="chapter_is_missing">Le chapitre est manquant</string>
<string name="queued">En file d\'attente</string>
<string name="about_app_translation">Traduction</string>
<string name="about_app_translation_summary">Traduire cette application</string>
<string name="genres">Genres</string>
<string name="text_clear_cookies_prompt">Vous serez déconnecté de toutes les sources</string>
<string name="auth_not_supported_by">La connexion sur %s n\'est pas prise en charge</string>
<string name="auth_complete">Autorisé</string>
<string name="state_finished">Terminé</string>
<string name="state_ongoing">En cours</string>
<string name="system_default">Par défaut</string>
<string name="exclude_nsfw_from_history">Exclure les mangas osés de l\'historique</string>
<string name="show_pages_numbers">Pages numérotées</string>
<string name="enabled_sources">Sources utilisées</string>
<string name="available_sources">Sources disponibles</string>
<string name="computing_">Calcul…</string>
<string name="screenshots_block_nsfw">Bloquer pour contenu sensible</string>
<string name="screenshots_block_all">Toujours bloquer</string>
<string name="screenshots_policy">Politique relative aux captures d\'écran</string>
<string name="screenshots_allow">Autoriser</string>
<string name="suggestions">Suggestions</string>
<string name="exclude_nsfw_from_suggestions">Ne pas suggérer de mangas osés</string>
<string name="suggestions_enable">Activer les suggestions</string>
<string name="suggestions_summary">Suggérer des mangas en fonction de vos préférences</string>
<string name="suggestions_info">Toutes les données sont analysées localement sur cet appareil et ne sont jamais envoyées ailleurs.</string>
<string name="text_suggestion_holder">Commencez à lire des mangas et vous recevrez des suggestions personnalisées</string>
<string name="filter_load_error">Impossible de charger la liste des genres</string>
<string name="enabled">Activé</string>
<string name="disabled">Désactivé</string>
<string name="only_using_wifi">Uniquement en Wi-Fi</string>
<string name="always">Toujours</string>
<string name="preload_pages">Précharger les pages</string>
<string name="never">Jamais</string>
<string name="reset_filter">Réinitialiser le filtre</string>
<string name="onboard_text">Sélectionnez les langues dans lesquelles vous souhaitez lire les mangas. Vous pouvez le changer plus tard dans les paramètres.</string>
<string name="logged_in_as">Connecté en tant que %s</string>
<string name="nsfw">18+</string>
<string name="various_languages">Langues diverses</string>
<string name="search_chapters">Trouver un chapitre</string>
<string name="chapters_empty">Pas de chapitres dans ce manga</string>
<string name="percent_string_pattern">%1$s%%</string>
<string name="appearance">Apparence</string>
<string name="suggestions_updating">Mise à jour des suggestions</string>
<string name="suggestions_excluded_genres">Exclure des genres</string>
<string name="suggestions_excluded_genres_summary">Spécifiez les genres que vous ne voulez pas voir apparaître dans les suggestions</string>
<string name="text_delete_local_manga_batch">Supprimer définitivement les éléments sélectionnés de l\'appareil \?</string>
<string name="removal_completed">Suppression terminée</string>
<string name="download_slowdown">Ralentissement du téléchargement</string>
<string name="download_slowdown_summary">Permet d\'éviter le blocage de votre adresse IP</string>
<string name="chapters_will_removed_background">Les chapitres seront supprimés en arrière-plan</string>
<string name="local_manga_processing">Traitement des mangas sauvegardés</string>
<string name="hide">Masquer</string>
<string name="new_sources_text">De nouvelles sources de mangas sont disponibles</string>
<string name="check_new_chapters_title">Vérifier les nouveaux chapitres et les notifier</string>
<string name="notifications_enable">Activer les notifications</string>
<string name="show_notification_new_chapters_on">Vous recevrez des notifications sur les mises à jour des mangas que vous lisez</string>
<string name="show_notification_new_chapters_off">Vous ne recevrez pas de notifications mais les nouveaux chapitres seront mis en évidence dans les listes</string>
<string name="empty_favourite_categories">Pas de catégories préférées</string>
<string name="name">Nom</string>
<string name="edit">Modifier</string>
<string name="edit_category">Modifier la catégorie</string>
<string name="bookmark_add">Ajouter un marque-page</string>
<string name="bookmark_remove">Retirer le marque-page</string>
<string name="bookmarks">Marque-pages</string>
<string name="bookmark_added">Marque-page ajouté</string>
<string name="bookmark_removed">Marque-page retiré</string>
<string name="undo">Annuler</string>
<string name="removed_from_history">Retiré de l\'historique</string>
<string name="dns_over_https">DNS sur HTTPS</string>
<string name="default_mode">Mode par défaut</string>
<string name="detect_reader_mode">Mode de détection automatique du lecteur</string>
<string name="detect_reader_mode_summary">Détecter automatiquement si un manga est un webtoon</string>
<string name="disable_battery_optimization">Désactiver l\'optimisation de la batterie</string>
<string name="disable_battery_optimization_summary">Aide à la vérification des mises à jour des antécédents</string>
<string name="crash_text">Un problème est survenu. Veuillez soumettre un rapport de bogue aux développeurs pour nous aider à le corriger.</string>
<string name="send">Envoyer</string>
<string name="disable_all">Tout désactiver</string>
<string name="use_fingerprint">Utiliser l\'empreinte digitale si elle est disponible</string>
<string name="appwidget_recent_description">Vos mangas récemment lus</string>
<string name="appwidget_shelf_description">Les mangas de vos favoris</string>
<string name="report">Signaler</string>
<string name="tracking">Suivi</string>
<string name="status_planned">Planifié</string>
<string name="status_reading">Lecture</string>
<string name="show_reading_indicators">Afficher les indicateurs de progression de lecture</string>
<string name="show_reading_indicators_summary">Afficher le pourcentage de lecture dans l\'historique et les favoris</string>
<string name="exclude_nsfw_from_history_summary">Les mangas marqués comme étant pour adultes ne seront jamais ajoutés à l\'historique et votre progression ne sera pas sauvegardée</string>
<string name="clear_cookies_summary">Peut aider en cas de problème. Toutes les autorisations seront invalidées</string>
<string name="show_all">Tout afficher</string>
<string name="status_on_hold">En attente</string>
<string name="status_dropped">Abandonné</string>
<string name="data_deletion">Suppression des données</string>
<string name="logout">Se déconnecter</string>
<string name="status_completed">Terminé</string>
<string name="status_re_reading">Relecture</string>
<string name="invalid_domain_message">Domaine invalide</string>
<string name="select_range">Sélectionner une plage</string>
<string name="not_found_404">Contenu non trouvé ou supprimé</string>
<string name="manga_error_description_pattern">Détails de l\'erreur:&lt;br&gt;&lt;tt&gt;%1$s&lt;/tt&gt;&lt;br&gt;&lt;br&gt;1. Essayez d\'&lt;a href=%2$s&gt;ouvrir le manga dans un navigateur web&lt;/a&gt; pour vous assurer qu\'il est disponible sur sa source&lt;br&gt;2. Assurez-vous que vous utilisez la &lt;a href=kotatsu://about&gt;dernière version de Kotatsu&lt;/a&gt;&lt;br&gt;3. Si elle est disponible, envoyez un rapport d\'erreur aux développeurs.</string>
<string name="confirm_exit">Rappuyez sur Retour pour quitter</string>
<string name="categories_delete_confirm">Êtes-vous sûr·e de vouloir supprimer les catégories de favoris sélectionnées \?
<string name="read_more">Lire la suite</string>
<string name="tracker_warning">Certains appareils ont un comportement différent du système, ce qui peut interrompre les tâches d\'arrière-plan.</string>
<string name="backup_saved">Sauvegarde enregistrée</string>
<string name="welcome">Bienvenue</string>
<string name="text_clear_search_history_prompt">Supprimer définitivement toutes les requêtes de recherche récentes \?</string>
<string name="password_length_hint">Le mot de passe doit comporter 4 caractères ou plus</string>
<string name="confirm">Confirmer</string>
<string name="protect_application_subtitle">Entrez un mot de passe pour démarrer l\'application avec</string>
<string name="next">Suivant</string>
<string name="default_s">Par défaut : %s</string>
<string name="auth_required">Connectez-vous pour voir ce contenu</string>
<string name="sign_in">Se connecter</string>
<string name="reverse">Inverser</string>
<string name="check_for_new_chapters">À la recherche de nouveaux chapitres</string>
<string name="text_clear_updates_feed_prompt">Effacer définitivement l\'historique des mises à jour \?</string>
<string name="clear_feed">Effacer le flux</string>
<string name="cookies_cleared">Tous les cookies ont été retirés</string>
<string name="clear_cookies">Effacer les cookies</string>
<string name="captcha_solve">Résoudre</string>
<string name="captcha_required">CAPTCHA requis</string>
<string name="silent">Silencieux</string>
<string name="reader_mode_hint">On se souviendra de la configuration choisie pour ce manga</string>
<string name="tap_to_try_again">Appuyez pour réessayer</string>
<string name="today">Aujourd\'hui</string>
<string name="group">Groupe</string>
<string name="long_ago">Il y a longtemps</string>
<string name="yesterday">Hier</string>
<string name="just_now">À l\'instant</string>
<string name="backup_information">Vous pouvez créer une sauvegarde de votre historique et de vos favoris et la restaurer</string>
<string name="data_restored_with_errors">Les données ont été restaurées, mais il y a des erreurs</string>
<string name="data_restored_success">Toutes les données ont été restaurées</string>
<string name="file_not_found">Fichier introuvable</string>
<string name="preparing_">Préparation…</string>
<string name="data_restored">Restauré</string>
<string name="restore_backup">Restaurer à partir d\'une sauvegarde</string>
<string name="create_backup">Créer une sauvegarde des données</string>
<string name="backup_restore">Sauvegarde et restauration</string>
<string name="black_dark_theme_summary">Utilise moins d\'énergie pour les écrans AMOLED</string>
<string name="black_dark_theme">Noir</string>
<string name="zoom_mode_keep_start">Garder au début</string>
<string name="zoom_mode_fit_width">Ajuster à la largeur</string>
<string name="zoom_mode_fit_height">Ajuster à la hauteur</string>
<string name="zoom_mode_fit_center">Ajuster au centre</string>
<string name="scale_mode">Mode mise à l\'échelle</string>
<string name="create_category">Nouvelle catégorie</string>
<string name="right_to_left">De droite à gauche</string>
<string name="no_update_available">Aucune mise à jour disponible</string>
<string name="check_for_updates">Vérifier les mises à jour</string>
<string name="app_version">Version %s</string>
<string name="about">À propos</string>
<string name="passwords_mismatch">Les mots de passe ne correspondent pas</string>
<string name="repeat_password">Répéter le mot de passe</string>
<string name="protect_application_summary">Demander le mot de passe au démarrage de Kotatsu</string>
<string name="protect_application">Protéger l\'application</string>
<string name="wrong_password">Mot de passe erroné</string>
<string name="enter_password">Entrez le mot de passe</string>
<string name="dont_check">Ne pas vérifier</string>
<string name="track_sources">Rechercher les mises à jour</string>
<string name="feed_will_update_soon">La mise à jour des flux commencera bientôt</string>
<string name="update">Mettre à Jour</string>
<string name="rotate_screen">Faire pivoter l\'écran</string>
<string name="updates_feed_cleared">Effacé</string>
<string name="clear_updates_feed">Effacer le flux des mises à jour</string>
<string name="size_s">Taille : %s</string>
<string name="new_version_s">Nouvelle version : %s</string>
<string name="search_results">Résultats de la recherche</string>
<string name="text_feed_holder">Les nouveaux chapitres de ce que vous lisez sont présentés ici</string>
<string name="updates">Mises à jour</string>
<string name="read_later">Lire plus tard</string>
<string name="favourites_category_empty">Catégorie vide</string>
<string name="all_favourites">Tous les favoris</string>
<string name="done">Terminé</string>
<string name="other_storage">Autre stockage</string>
<string name="cannot_find_available_storage">Pas de stockage disponible</string>
<string name="not_available">Non disponible</string>
<string name="manga_save_location">Dossier pour les téléchargements</string>
<string name="pages_animation">Animation de page</string>
<string name="recent_manga">Récents</string>
<string name="manga_shelf">Étagère</string>
<string name="text_local_holder_secondary">Enregistrez-le à partir de sources en ligne ou importez des fichiers.</string>
<string name="text_local_holder_primary">Sauvegardez d\'abord quelque chose</string>
<string name="text_history_holder_secondary">Trouvez ce que vous voulez lire dans le menu latéral.</string>
<string name="text_history_holder_primary">Ce que vous lisez sera affiché ici</string>
<string name="text_search_holder_secondary">Essayez de reformuler la requête.</string>
<string name="text_empty_holder_primary">C\'est un peu vide ici…</string>
<string name="remove_category">Retirer</string>
<string name="favourites_categories">Catégories favorites</string>
<string name="vibration">Vibration</string>
<string name="light_indicator">Indicateur lumineux</string>
<string name="notification_sound">Son de notification</string>
<string name="notifications_settings">Paramètres des notifications</string>
<string name="download">Télécharger</string>
<string name="new_chapters">Nouveaux chapitres</string>
<string name="enabled_d_of_d" tools:ignore="PluralsCandidate">%1$d de %2$d activé(s)</string>
<string name="notifications">Notifications</string>
<string name="large_manga_save_confirm">Ce manga a %s. Tout sauvegarder \?</string>
<string name="save_manga">Enregistrer</string>
<string name="open_in_browser">Ouvrir dans le navigateur</string>
<string name="app_update_available">Une nouvelle version de l\'application est disponible</string>
<string name="domain">Domaine</string>
<string name="external_storage">Stockage externe</string>
<string name="internal_storage">Stockage interne</string>
<string name="gestures_only">Gestes uniquement</string>
<string name="search_history_cleared">Effacé</string>
<string name="clear_search_history">Effacer l\'historique de recherche</string>
<string name="clear_thumbs_cache">Vider le cache des miniatures</string>
<string name="error">Erreur</string>
<string name="_continue">Continuer</string>
<string name="volume_buttons">Boutons de volume</string>
<string name="taps_on_edges">Appuis au bord</string>
<string name="switch_pages">Changer de pages</string>
<string name="reader_settings">Paramètres du lecteur</string>
<string name="text_delete_local_manga">Supprimer « %s » de l\'appareil de façon permanente \?</string>
<string name="delete_manga">Supprimer le manga</string>
<string name="search_on_s">Rechercher sur %s</string>
<string name="grid_size">Taille de la grille</string>
<string name="read_mode">Mode lecture</string>
<string name="webtoon">Webtoon</string>
<string name="standard">Standard</string>
<string name="text_file_sizes">o|ko|Mo|Go|To</string>
<string name="clear_pages_cache">Vider le cache de la page</string>
<string name="no_description">Aucune description</string>
<string name="text_file_not_supported">Choisissez un fichier ZIP ou CBZ.</string>
<string name="operation_not_supported">Cette opération n\'est pas prise en charge</string>
<string name="delete">Supprimer</string>
<string name="_import">Importer</string>
<string name="share_image">Partager l\'image</string>
<string name="page_saved">Sauvegardé</string>
<string name="save_page">Sauvegarder la page</string>
<string name="_s_deleted_from_local_storage">« %s » supprimé du stockage local</string>
<string name="remove">Retirer</string>
<string name="text_clear_history_prompt">Effacer définitivement l\'historique de lecture \?</string>
<string name="clear">Effacer</string>
<string name="pages">Pages</string>
<string name="automatic">Suivre le système</string>
<string name="dark">Sombre</string>
<string name="light">Clair</string>
<string name="theme">Thème</string>
<string name="filter">Filtre</string>
<string name="sort_order">Ordre de tri</string>
<string name="by_rating">Évaluation</string>
<string name="newest">Le plus récent</string>
<string name="updated">Mis à jour</string>
<string name="popular">Populaire</string>
<string name="by_name">Nom</string>
<string name="downloads">Téléchargements</string>
<string name="download_complete">Téléchargé</string>
<string name="processing_">Traitement…</string>
<string name="manga_downloading_">Téléchargement…</string>
<string name="search_manga">Rechercher un manga</string>
<string name="search">Rechercher</string>
<string name="share_s">Partager %s</string>
<string name="create_shortcut">Créer un raccourci…</string>
<string name="share">Partager</string>
<string name="save">Enregistrer</string>
<string name="add">Ajouter</string>
<string name="add_new_category">Nouvelle catégorie</string>
<string name="add_to_favourites">Ajouter aux favoris</string>
<string name="you_have_not_favourites_yet">Aucun favori pour le moment</string>
<string name="read">Lire</string>
<string name="history_is_empty">Pas encore d\'historique</string>
<string name="nothing_found">Rien n\'a été trouvé</string>
<string name="clear_history">Effacer l\'historique</string>
<string name="try_again">Réessayer</string>
<string name="close">Fermer</string>
<string name="chapter_d_of_d">Chapitre %1$d sur %2$d</string>
<string name="loading_">Chargement…</string>
<string name="remote_sources">Sources des mangas</string>
<string name="settings">Paramètres</string>
<string name="list_mode">Mode liste</string>
<string name="grid">Grille</string>
<string name="detailed_list">Liste détaillée</string>
<string name="list">Liste</string>
<string name="chapters">Chapitres</string>
<string name="details">Détails</string>
<string name="network_error">Erreur réseau</string>
<string name="error_occurred">Une erreur s\'est produite</string>
<string name="history">Historique</string>
<string name="favourites">Favoris</string>
<string name="local_storage">Stockage local</string>
<string name="chapter_is_missing">Le chapitre est manquant</string>
<string name="queued">En file d\'attente</string>
<string name="about_app_translation">Traduction</string>
<string name="about_app_translation_summary">Traduire cette application</string>
<string name="genres">Genres</string>
<string name="text_clear_cookies_prompt">Vous serez déconnecté de toutes les sources</string>
<string name="auth_not_supported_by">La connexion sur %s n\'est pas prise en charge</string>
<string name="auth_complete">Autorisé</string>
<string name="state_finished">Terminé</string>
<string name="state_ongoing">En cours</string>
<string name="system_default">Par défaut</string>
<string name="exclude_nsfw_from_history">Exclure les mangas osés de l\'historique</string>
<string name="show_pages_numbers">Pages numérotées</string>
<string name="enabled_sources">Sources utilisées</string>
<string name="available_sources">Sources disponibles</string>
<string name="computing_">Calcul…</string>
<string name="screenshots_block_nsfw">Bloquer pour contenu sensible</string>
<string name="screenshots_block_all">Toujours bloquer</string>
<string name="screenshots_policy">Politique relative aux captures d\'écran</string>
<string name="screenshots_allow">Autoriser</string>
<string name="suggestions">Suggestions</string>
<string name="exclude_nsfw_from_suggestions">Ne pas suggérer de mangas osés</string>
<string name="suggestions_enable">Activer les suggestions</string>
<string name="suggestions_summary">Suggérer des mangas en fonction de vos préférences</string>
<string name="suggestions_info">Toutes les données sont analysées localement sur cet appareil et ne sont jamais envoyées ailleurs.</string>
<string name="text_suggestion_holder">Commencez à lire des mangas et vous recevrez des suggestions personnalisées</string>
<string name="filter_load_error">Impossible de charger la liste des genres</string>
<string name="enabled">Activé</string>
<string name="disabled">Désactivé</string>
<string name="only_using_wifi">Uniquement en Wi-Fi</string>
<string name="always">Toujours</string>
<string name="preload_pages">Précharger les pages</string>
<string name="never">Jamais</string>
<string name="reset_filter">Réinitialiser le filtre</string>
<string name="onboard_text">Sélectionnez les langues dans lesquelles vous souhaitez lire les mangas. Vous pouvez le changer plus tard dans les paramètres.</string>
<string name="logged_in_as">Connecté en tant que %s</string>
<string name="nsfw">18+</string>
<string name="various_languages">Langues diverses</string>
<string name="search_chapters">Trouver un chapitre</string>
<string name="chapters_empty">Pas de chapitres dans ce manga</string>
<string name="percent_string_pattern">%1$s%%</string>
<string name="appearance">Apparence</string>
<string name="suggestions_updating">Mise à jour des suggestions</string>
<string name="suggestions_excluded_genres">Exclure des genres</string>
<string name="suggestions_excluded_genres_summary">Spécifiez les genres que vous ne voulez pas voir apparaître dans les suggestions</string>
<string name="text_delete_local_manga_batch">Supprimer définitivement les éléments sélectionnés de l\'appareil \?</string>
<string name="removal_completed">Suppression terminée</string>
<string name="download_slowdown">Ralentissement du téléchargement</string>
<string name="download_slowdown_summary">Permet d\'éviter le blocage de votre adresse IP</string>
<string name="chapters_will_removed_background">Les chapitres seront supprimés en arrière-plan</string>
<string name="local_manga_processing">Traitement des mangas sauvegardés</string>
<string name="hide">Masquer</string>
<string name="new_sources_text">De nouvelles sources de mangas sont disponibles</string>
<string name="check_new_chapters_title">Vérifier les nouveaux chapitres et les notifier</string>
<string name="notifications_enable">Activer les notifications</string>
<string name="show_notification_new_chapters_on">Vous recevrez des notifications sur les mises à jour des mangas que vous lisez</string>
<string name="show_notification_new_chapters_off">Vous ne recevrez pas de notifications mais les nouveaux chapitres seront mis en évidence dans les listes</string>
<string name="empty_favourite_categories">Pas de catégories préférées</string>
<string name="name">Nom</string>
<string name="edit">Modifier</string>
<string name="edit_category">Modifier la catégorie</string>
<string name="bookmark_add">Ajouter un marque-page</string>
<string name="bookmark_remove">Retirer le marque-page</string>
<string name="bookmarks">Marque-pages</string>
<string name="bookmark_added">Marque-page ajouté</string>
<string name="bookmark_removed">Marque-page retiré</string>
<string name="undo">Annuler</string>
<string name="removed_from_history">Retiré de l\'historique</string>
<string name="dns_over_https">DNS sur HTTPS</string>
<string name="default_mode">Mode par défaut</string>
<string name="detect_reader_mode">Mode de détection automatique du lecteur</string>
<string name="detect_reader_mode_summary">Détecter automatiquement si un manga est un webtoon</string>
<string name="disable_battery_optimization">Désactiver l\'optimisation de la batterie</string>
<string name="disable_battery_optimization_summary">Aide à la vérification des mises à jour des antécédents</string>
<string name="crash_text">Un problème est survenu. Veuillez soumettre un rapport de bogue aux développeurs pour nous aider à le corriger.</string>
<string name="send">Envoyer</string>
<string name="disable_all">Tout désactiver</string>
<string name="use_fingerprint">Utiliser l\'empreinte digitale si elle est disponible</string>
<string name="appwidget_recent_description">Vos mangas récemment lus</string>
<string name="appwidget_shelf_description">Les mangas de vos favoris</string>
<string name="report">Signaler</string>
<string name="tracking">Suivi</string>
<string name="status_planned">Planifié</string>
<string name="status_reading">Lecture</string>
<string name="show_reading_indicators">Afficher les indicateurs de progression de lecture</string>
<string name="show_reading_indicators_summary">Afficher le pourcentage de lecture dans l\'historique et les favoris</string>
<string name="exclude_nsfw_from_history_summary">Les mangas marqués comme étant pour adultes ne seront jamais ajoutés à l\'historique et votre progression ne sera pas sauvegardée</string>
<string name="clear_cookies_summary">Peut aider en cas de problème. Toutes les autorisations seront invalidées</string>
<string name="show_all">Tout afficher</string>
<string name="status_on_hold">En attente</string>
<string name="status_dropped">Abandonné</string>
<string name="data_deletion">Suppression des données</string>
<string name="logout">Se déconnecter</string>
<string name="status_completed">Terminé</string>
<string name="status_re_reading">Relecture</string>
<string name="invalid_domain_message">Domaine invalide</string>
<string name="select_range">Sélectionner une plage</string>
<string name="not_found_404">Contenu non trouvé ou supprimé</string>
<string name="manga_error_description_pattern">Détails de l\'erreur:&lt;br&gt;&lt;tt&gt;%1$s&lt;/tt&gt;&lt;br&gt;&lt;br&gt;1. Essayez d\'&lt;a href=%2$s&gt;ouvrir le manga dans un navigateur web&lt;/a&gt; pour vous assurer qu\'il est disponible sur sa source&lt;br&gt;2. Assurez-vous que vous utilisez la &lt;a href=kotatsu://about&gt;dernière version de Kotatsu&lt;/a&gt;&lt;br&gt;3. Si elle est disponible, envoyez un rapport d\'erreur aux développeurs.</string>
<string name="confirm_exit">Rappuyez sur Retour pour quitter</string>
<string name="categories_delete_confirm">Êtes-vous sûr·e de vouloir supprimer les catégories de favoris sélectionnées \?
\nTous les mangas qui s\'y trouvent seront perdus et ceci ne peut pas être annulé.</string>
<string name="exit_confirmation_summary">Appuyez deux fois sur la touche Retour pour quitter l\'appli</string>
<string name="available">Disponible</string>
<string name="exit_confirmation">Confirmation de sortie</string>
<string name="memory_usage_pattern">%s - %s</string>
<string name="feed">Flux</string>
<string name="importing_manga">Importation de mangas</string>
<string name="removed_from_favourites">Retiré des favoris</string>
<string name="clear_all_history">Effacer tout l\'historique</string>
<string name="last_2_hours">Les 2 dernières heures</string>
<string name="history_cleared">Historique effacé</string>
<string name="manage">Gérer</string>
<string name="no_bookmarks_yet">Aucun marque-page</string>
<string name="no_bookmarks_summary">Vous pouvez créer un marque-page pendant la lecture d\'un manga</string>
<string name="bookmarks_removed">Marque-pages supprimés</string>
<string name="no_manga_sources">Aucune source de mangas</string>
<string name="no_manga_sources_text">Autoriser les sources de mangas de lire des mangas en ligne</string>
<string name="random">Aléatoire</string>
<string name="reorder">Réordonner</string>
<string name="empty">Vide</string>
<string name="explore">Explorer</string>
<string name="text_shelf_holder_primary">Vos mangas seront affichés ici</string>
<string name="text_shelf_holder_secondary">Trouvez ce que vous voulez lire dans la section « Explorer »</string>
<string name="canceled">Annulé</string>
<string name="account_already_exists">Le compte existe déjà</string>
<string name="back">Retour</string>
<string name="sync">Synchronisation</string>
<string name="sync_title">Synchronisez vos données</string>
<string name="email_enter_hint">Entrez votre courriel pour continuer</string>
<string name="saved_manga">Mangas sauvegardés</string>
<string name="pages_cache">Cache des pages</string>
<string name="other_cache">Autre cache</string>
<string name="storage_usage">Utilisation du stockage</string>
<string name="options">Options</string>
<string name="incognito_mode">Mode incognito</string>
<string name="no_chapters">Aucun chapitre</string>
<string name="automatic_scroll">Défilement automatique</string>
<string name="reader_info_pattern">Ch. %1$d/%2$d Pg. %3$d/%4$d</string>
<string name="reader_info_bar">Afficher la barre d\'infos dans le lecteur</string>
<string name="comics_archive">Archives des BD</string>
<string name="folder_with_images">Dossier avec des images</string>
<string name="import_completed">Importation terminée</string>
<string name="import_completed_hint">Vous pouvez supprimer le fichier original du stockage pour gagner de l\'espace</string>
<string name="import_will_start_soon">L\'importation va bientôt commencer</string>
<string name="text_unsaved_changes_prompt">Sauvegarde ou abandon des modifications non sauvegardées \?</string>
<string name="discard">Abandonner</string>
<string name="history_shortcuts_summary">Rendre les mangas récents disponibles en appuyant longuement sur l\'icône de l\'application</string>
<string name="reader_control_ltr_summary">Taper sur le bord droit ou appuyer sur la touche droite permet toujours de passer à la page suivante</string>
<string name="reader_control_ltr">Contrôle ergonomique du lecteur</string>
<string name="history_shortcuts">Afficher les raccourcis des mangas récents</string>
<string name="color_correction">Correction des couleurs</string>
<string name="brightness">Luminosité</string>
<string name="contrast">Contraste</string>
<string name="reset">Réinitialiser</string>
<string name="color_correction_hint">Les paramètres de couleurs choisis seront sauvegardés pour ce manga</string>
<string name="error_no_space_left">Il n\'y a plus d\'espace sur l\'appareil</string>
<string name="reader_slider">Afficher le curseur de changement de page</string>
<string name="webtoon_zoom">Zoom Webtoon</string>
<string name="network_unavailable_hint">Activez le Wi-Fi ou le réseau mobile pour lire les mangas en ligne</string>
<string name="different_languages">Différentes langues</string>
<string name="network_unavailable">Le réseau n\'est pas disponible</string>
<string name="compact">Compact</string>
<string name="server_error">Erreur côté serveur (%1$d). Veuillez réessayer plus tard</string>
<string name="clear_new_chapters_counters">Effacer aussi les informations sur les nouveaux chapitres</string>
<string name="source_disabled">Source désactivée</string>
<string name="prefetch_content">Préchargement du contenu</string>
<string name="mark_as_current">Marquer comme actuel</string>
<string name="share_logs">Partager les journaux</string>
<string name="enable_logging">Activer la journalisation</string>
<string name="enable_logging_summary">Enregistrer certaines actions à des fins de débogage</string>
<string name="language">Langue</string>
<string name="show_suspicious_content">Afficher le contenu suspect</string>
<string name="theme_name_dynamic">Dynamique</string>
<string name="color_theme">Schéma de couleurs</string>
<string name="show_in_grid_view">Afficher en vue grille</string>
<string name="scrobbling_empty_hint">Pour suivre la progression de la lecture, sélectionnez Menu → Suivre sur l\'écran des détails du manga.</string>
<string name="services">Prestations de service</string>
<string name="nothing_here">Il n\'y a rien ici</string>
<string name="theme_name_sakura">Sakura</string>
<string name="theme_name_rikka">Rikka</string>
<string name="theme_name_miku">Miku</string>
<string name="theme_name_asuka">Asuka</string>
<string name="theme_name_mion">Mion</string>
<string name="theme_name_mamimi">Mamimi</string>
<string name="allow_unstable_updates">Autoriser les mises à jour instables</string>
<string name="download_started">Téléchargement commencé</string>
<string name="theme_name_kanade">Kanade</string>
<string name="allow_unstable_updates_summary">Proposer des mises à jour des versions bêta de l\'application</string>
<string name="user_agent">En-tête UserAgent</string>
<string name="settings_apply_restart_required">Veuillez redémarrer l\'application pour appliquer ces changements</string>
<string name="got_it">Compris</string>
<string name="speed">Vitesse</string>
<string name="restore_backup_description">Importer une sauvegarde des données de l\'utilisateur créée précédemment</string>
<string name="folder_with_images_import_description">Vous pouvez sélectionner un répertoire contenant des archives ou des images. Chaque archive (ou sous-répertoire) sera reconnue comme un chapitre.</string>
<string name="comics_archive_import_description">Vous pouvez sélectionner un ou plusieurs fichiers .cbz ou .zip, chaque fichier sera reconnu comme un manga séparé.</string>
<string name="show_on_shelf">Afficher sur l\'étagère</string>
<string name="sources_reorder_tip">Appuyez sur un élément et maintenez-le enfoncé pour le réorganiser</string>
<string name="find_similar">Trouver des similaires</string>
<string name="downloads_wifi_only_summary">Arrêter le téléchargement lors du passage à un réseau mobile</string>
<string name="sync_auth_hint">Vous pouvez vous connecter à un compte existant ou en créer un nouveau</string>
<string name="server_address">Adresse du serveur</string>
<string name="sync_host_description">Vous pouvez utiliser un serveur de synchronisation autohébergé ou un serveur par défaut. Ne modifiez pas ce paramètre si vous n\'êtes pas sûr·e de ce que vous faites.</string>
<string name="remove_completed">Retrait terminé</string>
<string name="enable">Activer</string>
<string name="no_thanks">Non merci</string>
<string name="sync_settings">Paramètres de synchronisation</string>
<string name="ignore_ssl_errors">Ignorer les erreurs SSL</string>
<string name="mirror_switching">Choisir le miroir automatiquement</string>
<string name="mirror_switching_summary">Changement automatique de domaine pour les sources distantes en cas d\'erreur si des miroirs sont disponibles</string>
<string name="pause">Mettre en pause</string>
<string name="resume">Reprendre</string>
<string name="paused">En pause</string>
<string name="cancel_all">Tout annuler</string>
<string name="downloads_wifi_only">Téléchargement uniquement via Wi-Fi</string>
<string name="remove_completed_downloads_confirm">L\'historique de vos téléchargements sera définitivement supprimé</string>
<string name="suggestions_notifications_summary">Notifications parfois affichées avec des mangas suggérés</string>
<string name="cancel_all_downloads_confirm">Tous les téléchargements actifs seront annulés, les données partiellement téléchargées seront perdues</string>
<string name="downloads_paused">Les téléchargements ont été interrompus</string>
<string name="suggestion_manga">Suggestion : %s</string>
<string name="more">Plus</string>
<string name="text_downloads_list_holder">Vous n\'avez pas de téléchargements</string>
<string name="downloads_resumed">Les téléchargements ont repris</string>
<string name="downloads_removed">Les téléchargements ont été supprimés</string>
<string name="downloads_cancelled">Les téléchargements ont été annulés</string>
<string name="suggestions_enable_prompt">Voulez-vous recevoir des suggestions de mangas personnalisées \?</string>
<string name="web_view_unavailable">WebView non disponible : vérifier si le fournisseur WebView est installé</string>
<string name="translations">Traductions</string>
<string name="clear_network_cache">Effacer le cache réseau</string>
<string name="type">Taper</string>
<string name="address">Adresse</string>
<string name="port">Port</string>
<string name="proxy">Proxy</string>
<string name="downloaded">Téléchargé</string>
<string name="username">Pseudonyme</string>
<string name="images_proxy_title">Proxy d\'optimisation des images</string>
<string name="invert_colors">Inverser les couleurs</string>
<string name="images_procy_description">Utilisez le service wsrv.nl pour réduire le trafic et augmenter la vitesse de chargement des images si possible</string>
<string name="manga_branch_title_template">%1$s (%2$s)</string>
<string name="password">Mot de passe</string>
<string name="invalid_value_message">Valeur invalide</string>
<string name="authorization_optional">Autorisation (optionnel)</string>
</resources>
<string name="exit_confirmation_summary">Appuyez deux fois sur la touche Retour pour quitter l\'appli</string>
<string name="available">Disponible</string>
<string name="exit_confirmation">Confirmation de sortie</string>
<string name="memory_usage_pattern">%s - %s</string>
<string name="feed">Flux</string>
<string name="importing_manga">Importation de mangas</string>
<string name="removed_from_favourites">Retiré des favoris</string>
<string name="clear_all_history">Effacer tout l\'historique</string>
<string name="last_2_hours">Les 2 dernières heures</string>
<string name="history_cleared">Historique effacé</string>
<string name="manage">Gérer</string>
<string name="no_bookmarks_yet">Aucun marque-page</string>
<string name="no_bookmarks_summary">Vous pouvez créer un marque-page pendant la lecture d\'un manga</string>
<string name="bookmarks_removed">Marque-pages supprimés</string>
<string name="no_manga_sources">Aucune source de mangas</string>
<string name="no_manga_sources_text">Autoriser les sources de mangas de lire des mangas en ligne</string>
<string name="random">Aléatoire</string>
<string name="reorder">Réordonner</string>
<string name="empty">Vide</string>
<string name="explore">Explorer</string>
<string name="text_shelf_holder_primary">Vos mangas seront affichés ici</string>
<string name="text_shelf_holder_secondary">Trouvez ce que vous voulez lire dans la section « Explorer »</string>
<string name="canceled">Annulé</string>
<string name="account_already_exists">Le compte existe déjà</string>
<string name="back">Retour</string>
<string name="sync">Synchronisation</string>
<string name="sync_title">Synchronisez vos données</string>
<string name="email_enter_hint">Entrez votre courriel pour continuer</string>
<string name="saved_manga">Mangas sauvegardés</string>
<string name="pages_cache">Cache des pages</string>
<string name="other_cache">Autre cache</string>
<string name="storage_usage">Utilisation du stockage</string>
<string name="options">Options</string>
<string name="incognito_mode">Mode incognito</string>
<string name="no_chapters">Aucun chapitre</string>
<string name="automatic_scroll">Défilement automatique</string>
<string name="reader_info_pattern">Ch. %1$d/%2$d Pg. %3$d/%4$d</string>
<string name="reader_info_bar">Afficher la barre d\'infos dans le lecteur</string>
<string name="comics_archive">Archives des BD</string>
<string name="folder_with_images">Dossier avec des images</string>
<string name="import_completed">Importation terminée</string>
<string name="import_completed_hint">Vous pouvez supprimer le fichier original du stockage pour gagner de l\'espace</string>
<string name="import_will_start_soon">L\'importation va bientôt commencer</string>
<string name="text_unsaved_changes_prompt">Sauvegarde ou abandon des modifications non sauvegardées \?</string>
<string name="discard">Abandonner</string>
<string name="history_shortcuts_summary">Rendre les mangas récents disponibles en appuyant longuement sur l\'icône de l\'application</string>
<string name="reader_control_ltr_summary">Taper sur le bord droit ou appuyer sur la touche droite permet toujours de passer à la page suivante</string>
<string name="reader_control_ltr">Contrôle ergonomique du lecteur</string>
<string name="history_shortcuts">Afficher les raccourcis des mangas récents</string>
<string name="color_correction">Correction des couleurs</string>
<string name="brightness">Luminosité</string>
<string name="contrast">Contraste</string>
<string name="reset">Réinitialiser</string>
<string name="color_correction_hint">Les paramètres de couleurs choisis seront sauvegardés pour ce manga</string>
<string name="error_no_space_left">Il n\'y a plus d\'espace sur l\'appareil</string>
<string name="reader_slider">Afficher le curseur de changement de page</string>
<string name="webtoon_zoom">Zoom Webtoon</string>
<string name="network_unavailable_hint">Activez le Wi-Fi ou le réseau mobile pour lire les mangas en ligne</string>
<string name="different_languages">Différentes langues</string>
<string name="network_unavailable">Le réseau n\'est pas disponible</string>
<string name="compact">Compact</string>
<string name="server_error">Erreur côté serveur (%1$d). Veuillez réessayer plus tard</string>
<string name="clear_new_chapters_counters">Effacer aussi les informations sur les nouveaux chapitres</string>
<string name="source_disabled">Source désactivée</string>
<string name="prefetch_content">Préchargement du contenu</string>
<string name="mark_as_current">Marquer comme actuel</string>
<string name="share_logs">Partager les journaux</string>
<string name="enable_logging">Activer la journalisation</string>
<string name="enable_logging_summary">Enregistrer certaines actions à des fins de débogage</string>
<string name="language">Langue</string>
<string name="show_suspicious_content">Afficher le contenu suspect</string>
<string name="theme_name_dynamic">Dynamique</string>
<string name="color_theme">Schéma de couleurs</string>
<string name="show_in_grid_view">Afficher en vue grille</string>
<string name="scrobbling_empty_hint">Pour suivre la progression de la lecture, sélectionnez Menu → Suivre sur l\'écran des détails du manga.</string>
<string name="services">Prestations de service</string>
<string name="nothing_here">Il n\'y a rien ici</string>
<string name="theme_name_sakura">Sakura</string>
<string name="theme_name_rikka">Rikka</string>
<string name="theme_name_miku">Miku</string>
<string name="theme_name_asuka">Asuka</string>
<string name="theme_name_mion">Mion</string>
<string name="theme_name_mamimi">Mamimi</string>
<string name="allow_unstable_updates">Autoriser les mises à jour instables</string>
<string name="download_started">Téléchargement commencé</string>
<string name="theme_name_kanade">Kanade</string>
<string name="allow_unstable_updates_summary">Proposer des mises à jour des versions bêta de l\'application</string>
<string name="user_agent">En-tête UserAgent</string>
<string name="settings_apply_restart_required">Veuillez redémarrer l\'application pour appliquer ces changements</string>
<string name="got_it">Compris</string>
<string name="speed">Vitesse</string>
<string name="restore_backup_description">Importer une sauvegarde des données de l\'utilisateur créée précédemment</string>
<string name="folder_with_images_import_description">Vous pouvez sélectionner un répertoire contenant des archives ou des images. Chaque archive (ou sous-répertoire) sera reconnue comme un chapitre.</string>
<string name="comics_archive_import_description">Vous pouvez sélectionner un ou plusieurs fichiers .cbz ou .zip, chaque fichier sera reconnu comme un manga séparé.</string>
<string name="show_on_shelf">Afficher sur l\'étagère</string>
<string name="sources_reorder_tip">Appuyez sur un élément et maintenez-le enfoncé pour le réorganiser</string>
<string name="find_similar">Trouver des similaires</string>
<string name="downloads_wifi_only_summary">Arrêter le téléchargement lors du passage à un réseau mobile</string>
<string name="sync_auth_hint">Vous pouvez vous connecter à un compte existant ou en créer un nouveau</string>
<string name="server_address">Adresse du serveur</string>
<string name="sync_host_description">Vous pouvez utiliser un serveur de synchronisation autohébergé ou un serveur par défaut. Ne modifiez pas ce paramètre si vous n\'êtes pas sûr·e de ce que vous faites.</string>
<string name="remove_completed">Retrait terminé</string>
<string name="enable">Activer</string>
<string name="no_thanks">Non merci</string>
<string name="sync_settings">Paramètres de synchronisation</string>
<string name="ignore_ssl_errors">Ignorer les erreurs SSL</string>
<string name="mirror_switching">Choisir le miroir automatiquement</string>
<string name="mirror_switching_summary">Changement automatique de domaine pour les sources distantes en cas d\'erreur si des miroirs sont disponibles</string>
<string name="pause">Mettre en pause</string>
<string name="resume">Reprendre</string>
<string name="paused">En pause</string>
<string name="cancel_all">Tout annuler</string>
<string name="downloads_wifi_only">Téléchargement uniquement via Wi-Fi</string>
<string name="remove_completed_downloads_confirm">L\'historique de vos téléchargements sera définitivement supprimé</string>
<string name="suggestions_notifications_summary">Notifications parfois affichées avec des mangas suggérés</string>
<string name="cancel_all_downloads_confirm">Tous les téléchargements actifs seront annulés, les données partiellement téléchargées seront perdues</string>
<string name="downloads_paused">Les téléchargements ont été interrompus</string>
<string name="suggestion_manga">Suggestion : %s</string>
<string name="more">Plus</string>
<string name="text_downloads_list_holder">Vous n\'avez pas de téléchargements</string>
<string name="downloads_resumed">Les téléchargements ont repris</string>
<string name="downloads_removed">Les téléchargements ont été supprimés</string>
<string name="downloads_cancelled">Les téléchargements ont été annulés</string>
<string name="suggestions_enable_prompt">Voulez-vous recevoir des suggestions de mangas personnalisées \?</string>
<string name="web_view_unavailable">WebView non disponible : vérifier si le fournisseur WebView est installé</string>
<string name="translations">Traductions</string>
<string name="clear_network_cache">Effacer le cache réseau</string>
<string name="type">Taper</string>
<string name="address">Adresse</string>
<string name="port">Port</string>
<string name="proxy">Proxy</string>
<string name="downloaded">Téléchargé</string>
<string name="username">Pseudonyme</string>
<string name="images_proxy_title">Proxy d\'optimisation des images</string>
<string name="invert_colors">Inverser les couleurs</string>
<string name="images_procy_description">Utilisez le service wsrv.nl pour réduire le trafic et augmenter la vitesse de chargement des images si possible</string>
<string name="manga_branch_title_template">%1$s (%2$s)</string>
<string name="password">Mot de passe</string>
<string name="invalid_value_message">Valeur invalide</string>
<string name="authorization_optional">Autorisation (optionnel)</string>
<string name="invalid_port_number">Numéro de port invalide</string>
<string name="restore_summary">Restaurer la sauvegarde précédemment créée</string>
<string name="webtoon_zoom_summary">Autoriser le geste de zoom avant en mode webtoon</string>
<string name="reader_info_bar_summary">Afficher l\'heure actuelle et la progression de la lecture en haut de l\'écran</string>
<string name="pages_animation_summary">Animation de tournage de page</string>
<string name="details_button_tip">Appuyez et maintenez le bouton Lire pour voir plus d\'options</string>
<string name="network">Réseau</string>
<string name="data_and_privacy">Données et confidentialité</string>
<string name="show_pages_numbers_summary">Afficher les numéros de page dans le coin inférieur</string>
</resources>

View File

@@ -359,4 +359,5 @@
<string name="allow_unstable_updates">Tillat ustøe oppdateringar</string>
<string name="downloads_wifi_only">Hent berre på WiFi</string>
<string name="downloads_wifi_only_summary">Stans all henting når du byter til eit mobilnettverk</string>
<string name="find_similar">Finn liknande</string>
</resources>

View File

@@ -1,369 +1,374 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
<string name="local_storage">Armazenamento local</string>
<string name="favourites">Favoritos</string>
<string name="error_occurred">Um erro ocorreu</string>
<string name="network_error">Erro de rede</string>
<string name="details">Detalhes</string>
<string name="list">Lista</string>
<string name="detailed_list">Lista detalhada</string>
<string name="grid">Grade</string>
<string name="list_mode">Modo lista</string>
<string name="settings">Configurações</string>
<string name="loading_">A carregar…</string>
<string name="chapter_d_of_d">Capítulo %1$d de %2$d</string>
<string name="try_again">Tente novamente</string>
<string name="clear_history">Limpar histórico</string>
<string name="nothing_found">Nada encontrado</string>
<string name="history_is_empty">Sem histórico ainda</string>
<string name="you_have_not_favourites_yet">Ainda não há favoritos</string>
<string name="add_to_favourites">Favoritar isso</string>
<string name="add">Adicionar</string>
<string name="save">Salvar</string>
<string name="share">Compartilhar</string>
<string name="create_shortcut">Criar atalho…</string>
<string name="share_s">Compartilhar %s</string>
<string name="search">Pesquisar</string>
<string name="search_manga">Pesquisar mangá</string>
<string name="manga_downloading_">A descarregar…</string>
<string name="download_complete">Descarregado</string>
<string name="downloads">Descargas</string>
<string name="by_name">Nome</string>
<string name="popular">Populares</string>
<string name="by_rating">Avaliação</string>
<string name="sort_order">Ordem de classificação</string>
<string name="filter">Filtro</string>
<string name="dark">Escuro</string>
<string name="automatic">Siga o sistema</string>
<string name="pages">Páginas</string>
<string name="clear">Limpar</string>
<string name="text_clear_history_prompt">Limpar todo o histórico de leitura permanentemente\?</string>
<string name="remove">Remover</string>
<string name="_s_deleted_from_local_storage">«%s» deletado do armazenamento local</string>
<string name="save_page">Salvar página</string>
<string name="page_saved">Salvou</string>
<string name="share_image">Compartilhar imagem</string>
<string name="_import">Importar</string>
<string name="updated">Atualizado</string>
<string name="delete">Deletar</string>
<string name="operation_not_supported">Essa operação não é suportada</string>
<string name="clear_pages_cache">Limpar cache de página</string>
<string name="text_file_sizes">B|kB|MB|GB|TB</string>
<string name="standard">Padrão</string>
<string name="webtoon">Webtoon</string>
<string name="read_mode">Modo leitura</string>
<string name="grid_size">Tamanho da grade</string>
<string name="search_on_s">Pesquisar em %s</string>
<string name="delete_manga">Deletar mangá</string>
<string name="reader_settings">Configurações de leitura</string>
<string name="switch_pages">Mudar páginas</string>
<string name="taps_on_edges">Toques de borda</string>
<string name="volume_buttons">Botões de volume</string>
<string name="error">Erro</string>
<string name="clear_thumbs_cache">Limpar cache de miniaturas</string>
<string name="search_history_cleared">Limpo</string>
<string name="gestures_only">Apenas gestos</string>
<string name="internal_storage">Armazenamento interno</string>
<string name="external_storage">Armazenamento externo</string>
<string name="domain">Domínio</string>
<string name="app_update_available">Uma nova versão da app está disponível</string>
<string name="open_in_browser">Abrir no navegador da web</string>
<string name="large_manga_save_confirm">Este mangá tem %s. Salvar tudo isso\?</string>
<string name="save_manga">Salve</string>
<string name="notifications">Notificações</string>
<string name="new_chapters">Novos capítulos</string>
<string name="download">Download</string>
<string name="notifications_settings">Configurações das notificações</string>
<string name="light_indicator">Indicador LED</string>
<string name="remote_sources">Fontes remotas</string>
<string name="close">Fechar</string>
<string name="light">Claro</string>
<string name="history">Histórico</string>
<string name="read">Ler</string>
<string name="processing_">Processando…</string>
<string name="newest">Novos</string>
<string name="theme">Tema</string>
<string name="no_description">Sem descrição</string>
<string name="_continue">Continuar</string>
<string name="chapters">Capítulos</string>
<string name="add_new_category">Nova categoria</string>
<string name="text_delete_local_manga">Apagar «%s» do dispositivo permanentemente\?</string>
<string name="text_file_not_supported">Escolha um ficheiro ZIP ou CBZ.</string>
<string name="clear_search_history">Limpar histórico de pesquisa</string>
<string name="enabled_d_of_d" tools:ignore="PluralsCandidate">Ativado %1$d de %2$d</string>
<string name="notification_sound">Som de notificação</string>
<string name="show_pages_numbers">Páginas numeradas</string>
<string name="state_finished">Concluído</string>
<string name="state_ongoing">Em andamento</string>
<string name="remove_category">Remover</string>
<string name="text_empty_holder_primary">Está meio vazio aqui…</string>
<string name="manga_shelf">Estante</string>
<string name="done">Feito</string>
<string name="zoom_mode_keep_start">Manter no início</string>
<string name="clear_updates_feed">Limpar feed de atualizações</string>
<string name="updates_feed_cleared">Limpo</string>
<string name="update">Atualizar</string>
<string name="feed_will_update_soon">A atualização do feed começará em breve</string>
<string name="track_sources">Procure atualizações</string>
<string name="dont_check">Não verifique</string>
<string name="enter_password">Digite a senha</string>
<string name="wrong_password">Senha incorreta</string>
<string name="repeat_password">Repita a senha</string>
<string name="passwords_mismatch">Senhas incompatíveis</string>
<string name="about">Cerca de</string>
<string name="app_version">Versão %s</string>
<string name="check_for_updates">Verifique se há atualizações</string>
<string name="no_update_available">Nenhuma atualização disponível</string>
<string name="right_to_left">Da direita para a esquerda</string>
<string name="create_category">Nova categoria</string>
<string name="scale_mode">Modo de escala</string>
<string name="zoom_mode_fit_center">Centro de ajuste</string>
<string name="zoom_mode_fit_width">Ajustar à largura</string>
<string name="backup_restore">Backup e restauração</string>
<string name="create_backup">Criar backup de dados</string>
<string name="restore_backup">Restaurar do backup</string>
<string name="data_restored">Restaurado</string>
<string name="preparing_">Preparando…</string>
<string name="file_not_found">Ficheiro não encontrado</string>
<string name="data_restored_success">Todos os dados foram restaurados</string>
<string name="data_restored_with_errors">Os dados foram restaurados, mas há erros</string>
<string name="just_now">Agora mesmo</string>
<string name="yesterday">Ontem</string>
<string name="long_ago">Muito tempo atrás</string>
<string name="group">Grupo</string>
<string name="today">Hoje</string>
<string name="tap_to_try_again">Toque para tentar novamente</string>
<string name="silent">Silencioso</string>
<string name="captcha_required">CAPTCHA obrigatório</string>
<string name="captcha_solve">Resolver</string>
<string name="cookies_cleared">Todos os cookies foram removidos</string>
<string name="clear_feed">Limpar feed</string>
<string name="text_clear_updates_feed_prompt">Limpar todo o histórico de atualizações permanentemente\?</string>
<string name="check_for_new_chapters">Em busca de novos capítulos</string>
<string name="reverse">Reverter</string>
<string name="sign_in">Entrar</string>
<string name="default_s">Padrão: %s</string>
<string name="next">Próximo</string>
<string name="protect_application_subtitle">Digite a senha que será necessária quando a app for iniciado</string>
<string name="confirm">Confirme</string>
<string name="password_length_hint">A senha deve ter 4 caracteres ou mais</string>
<string name="backup_saved">Backup salvo</string>
<string name="tracker_warning">Alguns aparelhos têm um comportamento de sistema diferente, o que pode interromper as tarefas em segundo plano.</string>
<string name="read_more">Leia mais</string>
<string name="welcome">Bem vindo</string>
<string name="available_sources">Fontes disponíveis</string>
<string name="enabled_sources">Fontes usadas</string>
<string name="queued">Enfileirado</string>
<string name="about_app_translation_summary">Traduzir esta aplicação</string>
<string name="chapter_is_missing">O capítulo está em falta</string>
<string name="auth_complete">Autorizado</string>
<string name="auth_not_supported_by">O login em %s não é suportado</string>
<string name="genres">Gêneros</string>
<string name="about_app_translation">Tradução</string>
<string name="text_clear_cookies_prompt">Será desconectado de todas as fontes</string>
<string name="vibration">Vibração</string>
<string name="cannot_find_available_storage">Sem armazenamento disponível</string>
<string name="favourites_categories">Categorias favoritas</string>
<string name="text_history_holder_secondary">Encontre o que ler no menu lateral.</string>
<string name="text_local_holder_secondary">Salve-o de fontes online ou importe fiheiros.</string>
<string name="recent_manga">Recente</string>
<string name="other_storage">Outro armazenamento</string>
<string name="text_search_holder_secondary">Tente reformular a consulta.</string>
<string name="not_available">Não disponível</string>
<string name="size_s">Tamanho: %s</string>
<string name="text_history_holder_primary">O que ler será exibido aqui</string>
<string name="text_local_holder_primary">Salve algo primeiro</string>
<string name="pages_animation">Animação de página</string>
<string name="favourites_category_empty">Categoria vazia</string>
<string name="read_later">Leia mais tarde</string>
<string name="updates">Atualizações</string>
<string name="all_favourites">Todos os favoritos</string>
<string name="search_results">Resultados da pesquisa</string>
<string name="text_feed_holder">Novos capítulos do que lé são mostrados aqui</string>
<string name="new_version_s">Nova versão: %s</string>
<string name="rotate_screen">Girar o ecrã</string>
<string name="protect_application">Proteja a app</string>
<string name="protect_application_summary">Peça a senha ao iniciar o Kotatsu</string>
<string name="zoom_mode_fit_height">Ajustar à altura</string>
<string name="black_dark_theme">Escuro</string>
<string name="black_dark_theme_summary">Usa menos energia em telas AMOLED</string>
<string name="reader_mode_hint">A configuração escolhida será lembrada para este mangá</string>
<string name="backup_information">Pode criar um backup do seu histórico e favoritos e restaurá-lo</string>
<string name="clear_cookies">Limpar cookies</string>
<string name="text_clear_search_history_prompt">Remover todas as consultas de pesquisa recentes permanentemente\?</string>
<string name="auth_required">Faça login para ver este conteúdo</string>
<string name="manga_save_location">Pasta para downloads</string>
<string name="exclude_nsfw_from_history">Excluir mangá NSFW do histórico</string>
<string name="system_default">Padrão</string>
<string name="computing_">A computar…</string>
<string name="screenshots_allow">Permitir</string>
<string name="screenshots_block_nsfw">Bloquear no NSFW</string>
<string name="screenshots_policy">Política de captura de ecrã</string>
<string name="screenshots_block_all">Sempre bloquear</string>
<string name="suggestions_summary">Sugira mangá com base nas suas preferências</string>
<string name="suggestions_info">Todos os dados são analisados localmente neste dispositivo. Não há transferência dos seus dados pessoais para nenhum serviço</string>
<string name="text_suggestion_holder">Comece a ler mangá e receberá sugestões personalizadas</string>
<string name="suggestions">Sugestões</string>
<string name="suggestions_enable">Ativar sugestões</string>
<string name="exclude_nsfw_from_suggestions">Não sugira mangá NSFW</string>
<string name="enabled">Habilitado</string>
<string name="disabled">Desabilitado</string>
<string name="filter_load_error">Não foi possível carregar a lista de gêneros</string>
<string name="only_using_wifi">Somente em Wi-Fi</string>
<string name="onboard_text">Selecione os idiomas que deseja ler mangá. Pode alterá-lo mais tarde nas configurações.</string>
<string name="always">Sempre</string>
<string name="reset_filter">Redefinir filtro</string>
<string name="never">Nunca</string>
<string name="preload_pages">Pré-carregar páginas</string>
<string name="logged_in_as">Conectado como %s</string>
<string name="nsfw">18+</string>
<string name="various_languages">Vários idiomas</string>
<string name="suggestions_updating">Atualização das sugestões</string>
<string name="appearance">Aparência</string>
<string name="search_chapters">Encontrar capítulo</string>
<string name="chapters_empty">Não há capítulos nesta manga</string>
<string name="percent_string_pattern">%1$s%%</string>
<string name="text_shelf_holder_primary">O seu mangá será exibido aqui</string>
<string name="color_correction">Correção de cor</string>
<string name="server_error">Erro do lado do servidor (%1$d). Por favor, tente novamente mais tarde</string>
<string name="clear_new_chapters_counters">Também limpar informações sobre capítulos novos</string>
<string name="hide">Esconder</string>
<string name="text_delete_local_manga_batch">Apagar itens selecionados do aparelho permanentemente\?</string>
<string name="compact">Compactar</string>
<string name="bookmark_added">Marcador adicionado</string>
<string name="prefetch_content">Pré-carregamento de conteúdo</string>
<string name="invalid_domain_message">Endereço inválido</string>
<string name="use_fingerprint">Usar impressão digital, se disponível</string>
<string name="appwidget_shelf_description">Mangás dos seus favoritos</string>
<string name="appwidget_recent_description">Os seus mangás recentemente lidos</string>
<string name="suggestions_excluded_genres_summary">Especifique os gêneros que não deseja ver nas sugestões</string>
<string name="removal_completed">Remoção concluída</string>
<string name="check_new_chapters_title">Verifique se há novos capítulos e notifique sobre isso</string>
<string name="default_mode">Modo padrão</string>
<string name="mark_as_current">Marcar como atual</string>
<string name="error_no_space_left">Não há espaço disponível no aparelho</string>
<string name="different_languages">Idiomas diferentes</string>
<string name="network_unavailable">A rede não está disponível</string>
<string name="network_unavailable_hint">Ative o Wi-Fi ou a rede móvel para ler mangá online</string>
<string name="name">Nome</string>
<string name="logout">Terminar sessão</string>
<string name="edit">Editar</string>
<string name="edit_category">Editar categoria</string>
<string name="tracking">Monitoramento</string>
<string name="empty_favourite_categories">Nenhuma categoria favorita</string>
<string name="removed_from_history">Removido do histórico</string>
<string name="send">Enviar</string>
<string name="text_shelf_holder_secondary">Encontre o que ler na secção &lt;«Explorar»</string>
<string name="suggestions_excluded_genres">Excluir gêneros</string>
<string name="download_slowdown">Lentidão de descarga</string>
<string name="download_slowdown_summary">Ajuda a evitar o bloqueio do seu endereço IP</string>
<string name="local_manga_processing">Processamento de mangá gravado</string>
<string name="chapters_will_removed_background">Os capítulos serão removidos em segundo plano. Pode levar algum tempo</string>
<string name="canceled">Cancelado</string>
<string name="email_enter_hint">Digite o seu e-mail para continuar</string>
<string name="new_sources_text">Novas fontes de mangá estão disponíveis</string>
<string name="show_notification_new_chapters_on">Receberá notificações sobre atualizações do mangá que está lendo</string>
<string name="notifications_enable">Ativar notificações</string>
<string name="crash_text">Algo deu errado. Por favor, envie um relatório de bug para ajudar os programadores a consertarem isso.</string>
<string name="status_planned">Planejado</string>
<string name="status_reading">Lendo</string>
<string name="status_re_reading">Relendo</string>
<string name="status_completed">Concluído</string>
<string name="status_on_hold">Em espera</string>
<string name="show_reading_indicators">Mostrar indicadores de progresso de leitura</string>
<string name="data_deletion">Exclusão de dados</string>
<string name="clear_cookies_summary">Pode ajudar no caso de alguns problemas. Todas as autorizações serão invalidadas</string>
<string name="show_all">Mostrar tudo</string>
<string name="clear_all_history">Limpar todo o histórico</string>
<string name="last_2_hours">Ultimas 2 horas</string>
<string name="categories_delete_confirm">Tem certeza que deseja apagar as categorias favoritas selecionadas\?
\nTodos os mangás serão perdidos e isso não pode ser desfeito.</string>
<string name="reorder">Reordenar</string>
<string name="empty">Vazio</string>
<string name="explore">Explorar</string>
<string name="comics_archive">Arquivo de banda desenhada</string>
<string name="folder_with_images">Pasta com imagens</string>
<string name="importing_manga">Importando mangá(s)</string>
<string name="saved_manga">Mangás gravados</string>
<string name="history_shortcuts">Mostrar atalhos de mangás recentes</string>
<string name="history_shortcuts_summary">Torne os mangás recentes visíveis pressionando o ícone da aplicação</string>
<string name="brightness">Luminosidade</string>
<string name="contrast">Contraste</string>
<string name="reset">Redefinir</string>
<string name="text_unsaved_changes_prompt">Gravar ou descartar alterações não gravadas\?</string>
<string name="select_range">Selecionar intervalo</string>
<string name="reader_slider">Mostrar controle deslizante de troca de página</string>
<string name="source_disabled">Fonte desativada</string>
<string name="account_already_exists">Essa conta já existe</string>
<string name="back">Voltar</string>
<string name="sync">Sincronização</string>
<string name="sync_title">Sincronize os seus dados</string>
<string name="show_notification_new_chapters_off">Não receberá notificações, mas novos capítulos serão destacados nas listas</string>
<string name="bookmark_add">Adicionar marcador</string>
<string name="bookmark_remove">Remover marcador</string>
<string name="bookmarks">Marcadores</string>
<string name="bookmark_removed">Marcador removido</string>
<string name="undo">Desfazer</string>
<string name="dns_over_https">DNS sobre HTTPS</string>
<string name="detect_reader_mode">Detecção automática do modo de leitura</string>
<string name="detect_reader_mode_summary">Detetar automaticamente se o mangá é webtoon</string>
<string name="disable_battery_optimization">Desative a otimização da bateria</string>
<string name="disable_battery_optimization_summary">Ajuda com verificações de atualizações em segundo plano</string>
<string name="status_dropped">Desistido</string>
<string name="disable_all">Desativar tudo</string>
<string name="report">Reportar</string>
<string name="show_reading_indicators_summary">Mostrar percentual de leitura no histórico e nos favoritos</string>
<string name="exclude_nsfw_from_history_summary">Mangás marcados como +18 nunca serão adicionados ao histórico e o seu progresso não sera gravado</string>
<string name="history_cleared">Histórico apagado</string>
<string name="manage">Gerir</string>
<string name="no_bookmarks_yet">Sem páginas marcadas ainda</string>
<string name="no_bookmarks_summary">Pode criar um marcador de página enquanto lé o mangá</string>
<string name="bookmarks_removed">Marcadores de página removidos</string>
<string name="no_manga_sources">Sem fontes de mangás</string>
<string name="no_manga_sources_text">Ative as fontes de mangá para ler online</string>
<string name="random">Aleatório</string>
<string name="confirm_exit">Pressione Voltar novamente para sair</string>
<string name="exit_confirmation_summary">Pressione Voltar duas vezes para sair do app</string>
<string name="exit_confirmation">Confirmação de saída</string>
<string name="pages_cache">Cache de páginas</string>
<string name="other_cache">Outro cache</string>
<string name="storage_usage">Uso de armazenamento</string>
<string name="available">Disponível</string>
<string name="memory_usage_pattern">%s - %s</string>
<string name="removed_from_favourites">Removido dos favoritos</string>
<string name="options">Opções</string>
<string name="not_found_404">Conteúdo não encontrado ou removido</string>
<string name="incognito_mode">Modo anônimo</string>
<string name="no_chapters">Sem capítulos</string>
<string name="automatic_scroll">Rolagem automática</string>
<string name="reader_info_pattern">Cap. %1$d/%2$d Pág. %3$d/%4$d</string>
<string name="reader_info_bar">Mostrar barra de informações no leitor</string>
<string name="import_completed">Importação completa</string>
<string name="import_completed_hint">Pode apagar o ficheiro original do aparelho para poupar espaço</string>
<string name="import_will_start_soon">A importação começará em breve</string>
<string name="feed">Feed</string>
<string name="manga_error_description_pattern">Detalhes do erro:&lt;br&gt;&lt;tt&gt;%1$s&lt;/tt&gt;&lt;br&gt;&lt;br&gt;1. Tente &lt;a href=%2$s&gt;abrir o mangá num navegador de internet&lt;/a&gt;para garantir que ele está disponível na fonte&lt;br&gt;2. Se estiver disponível, envie um relatório de erro para os programadores.</string>
<string name="reader_control_ltr_summary">Tocar na borda direita ou pressionar a tecla direita sempre passa para a próxima página</string>
<string name="reader_control_ltr">Controle de leitura ergonômico</string>
<string name="color_correction_hint">As configurações de cor escolhidas serão lembradas para esse mangá</string>
<string name="discard">Descartar</string>
<string name="language">Idioma</string>
<string name="theme_name_mamimi">Mamimi</string>
<string name="nothing_here">Não há nada aqui</string>
<string name="services">Serviços</string>
<string name="enable_logging_summary">Gravar algumas ações para propósitos de depuração</string>
<string name="allow_unstable_updates">Permitir atualizações instáveis</string>
<string name="download_started">Descarga iniciada</string>
<string name="share_logs">Compartilhar registos</string>
<string name="enable_logging">Ativar registos</string>
<string name="theme_name_miku">Miku</string>
<string name="theme_name_rikka">Rikka</string>
<string name="theme_name_sakura">Sakura</string>
<string name="show_suspicious_content">Exibir conteúdo suspeito</string>
<string name="theme_name_dynamic">Dinâmico</string>
<string name="color_theme">Esquema de cores</string>
<string name="show_in_grid_view">Mostrar na visualização em grade</string>
<string name="theme_name_asuka">Asuka</string>
<string name="theme_name_mion">Mion</string>
<string name="settings_apply_restart_required">Por favor, reinicie o app para aplicar essas mudanças</string>
</resources>
<string name="local_storage">Armazenamento local</string>
<string name="favourites">Favoritos</string>
<string name="error_occurred">Um erro ocorreu</string>
<string name="network_error">Erro de rede</string>
<string name="details">Detalhes</string>
<string name="list">Lista</string>
<string name="detailed_list">Lista detalhada</string>
<string name="grid">Grade</string>
<string name="list_mode">Modo lista</string>
<string name="settings">Configurações</string>
<string name="loading_">A carregar…</string>
<string name="chapter_d_of_d">Capítulo %1$d de %2$d</string>
<string name="try_again">Tente novamente</string>
<string name="clear_history">Limpar histórico</string>
<string name="nothing_found">Nada encontrado</string>
<string name="history_is_empty">Sem histórico ainda</string>
<string name="you_have_not_favourites_yet">Ainda não há favoritos</string>
<string name="add_to_favourites">Favoritar isso</string>
<string name="add">Adicionar</string>
<string name="save">Salvar</string>
<string name="share">Compartilhar</string>
<string name="create_shortcut">Criar atalho…</string>
<string name="share_s">Compartilhar %s</string>
<string name="search">Pesquisar</string>
<string name="search_manga">Pesquisar mangá</string>
<string name="manga_downloading_">A descarregar…</string>
<string name="download_complete">Descarregado</string>
<string name="downloads">Descargas</string>
<string name="by_name">Nome</string>
<string name="popular">Populares</string>
<string name="by_rating">Avaliação</string>
<string name="sort_order">Ordem de classificação</string>
<string name="filter">Filtro</string>
<string name="dark">Escuro</string>
<string name="automatic">Siga o sistema</string>
<string name="pages">Páginas</string>
<string name="clear">Limpar</string>
<string name="text_clear_history_prompt">Limpar todo o histórico de leitura permanentemente\?</string>
<string name="remove">Remover</string>
<string name="_s_deleted_from_local_storage">«%s» deletado do armazenamento local</string>
<string name="save_page">Salvar página</string>
<string name="page_saved">Salvou</string>
<string name="share_image">Compartilhar imagem</string>
<string name="_import">Importar</string>
<string name="updated">Atualizado</string>
<string name="delete">Deletar</string>
<string name="operation_not_supported">Essa operação não é suportada</string>
<string name="clear_pages_cache">Limpar cache de página</string>
<string name="text_file_sizes">B|kB|MB|GB|TB</string>
<string name="standard">Padrão</string>
<string name="webtoon">Webtoon</string>
<string name="read_mode">Modo leitura</string>
<string name="grid_size">Tamanho da grade</string>
<string name="search_on_s">Pesquisar em %s</string>
<string name="delete_manga">Deletar mangá</string>
<string name="reader_settings">Configurações de leitura</string>
<string name="switch_pages">Mudar páginas</string>
<string name="taps_on_edges">Toques de borda</string>
<string name="volume_buttons">Botões de volume</string>
<string name="error">Erro</string>
<string name="clear_thumbs_cache">Limpar cache de miniaturas</string>
<string name="search_history_cleared">Limpo</string>
<string name="gestures_only">Apenas gestos</string>
<string name="internal_storage">Armazenamento interno</string>
<string name="external_storage">Armazenamento externo</string>
<string name="domain">Domínio</string>
<string name="app_update_available">Uma nova versão da app está disponível</string>
<string name="open_in_browser">Abrir no navegador da web</string>
<string name="large_manga_save_confirm">Este mangá tem %s. Salvar tudo isso\?</string>
<string name="save_manga">Salve</string>
<string name="notifications">Notificações</string>
<string name="new_chapters">Novos capítulos</string>
<string name="download">Download</string>
<string name="notifications_settings">Configurações das notificações</string>
<string name="light_indicator">Indicador LED</string>
<string name="remote_sources">Fontes de mangá</string>
<string name="close">Fechar</string>
<string name="light">Claro</string>
<string name="history">Histórico</string>
<string name="read">Ler</string>
<string name="processing_">Processando…</string>
<string name="newest">Novos</string>
<string name="theme">Tema</string>
<string name="no_description">Sem descrição</string>
<string name="_continue">Continuar</string>
<string name="chapters">Capítulos</string>
<string name="add_new_category">Nova categoria</string>
<string name="text_delete_local_manga">Apagar «%s» do dispositivo permanentemente\?</string>
<string name="text_file_not_supported">Escolha um ficheiro ZIP ou CBZ.</string>
<string name="clear_search_history">Limpar histórico de pesquisa</string>
<string name="enabled_d_of_d" tools:ignore="PluralsCandidate">Ativado %1$d de %2$d</string>
<string name="notification_sound">Som de notificação</string>
<string name="show_pages_numbers">Páginas numeradas</string>
<string name="state_finished">Concluído</string>
<string name="state_ongoing">Em andamento</string>
<string name="remove_category">Remover</string>
<string name="text_empty_holder_primary">Está meio vazio aqui…</string>
<string name="manga_shelf">Estante</string>
<string name="done">Feito</string>
<string name="zoom_mode_keep_start">Manter no início</string>
<string name="clear_updates_feed">Limpar feed de atualizações</string>
<string name="updates_feed_cleared">Limpo</string>
<string name="update">Atualizar</string>
<string name="feed_will_update_soon">A atualização do feed começará em breve</string>
<string name="track_sources">Procure atualizações</string>
<string name="dont_check">Não verifique</string>
<string name="enter_password">Digite a senha</string>
<string name="wrong_password">Senha incorreta</string>
<string name="repeat_password">Repita a senha</string>
<string name="passwords_mismatch">Senhas incompatíveis</string>
<string name="about">Cerca de</string>
<string name="app_version">Versão %s</string>
<string name="check_for_updates">Verifique se há atualizações</string>
<string name="no_update_available">Nenhuma atualização disponível</string>
<string name="right_to_left">Da direita para a esquerda (←)</string>
<string name="create_category">Nova categoria</string>
<string name="scale_mode">Modo de escala</string>
<string name="zoom_mode_fit_center">Centro de ajuste</string>
<string name="zoom_mode_fit_width">Ajustar à largura</string>
<string name="backup_restore">Backup e restauração</string>
<string name="create_backup">Criar backup de dados</string>
<string name="restore_backup">Restaurar do backup</string>
<string name="data_restored">Restaurado</string>
<string name="preparing_">Preparando…</string>
<string name="file_not_found">Ficheiro não encontrado</string>
<string name="data_restored_success">Todos os dados foram restaurados</string>
<string name="data_restored_with_errors">Os dados foram restaurados, mas há erros</string>
<string name="just_now">Agora mesmo</string>
<string name="yesterday">Ontem</string>
<string name="long_ago">Muito tempo atrás</string>
<string name="group">Grupo</string>
<string name="today">Hoje</string>
<string name="tap_to_try_again">Toque para tentar novamente</string>
<string name="silent">Silencioso</string>
<string name="captcha_required">CAPTCHA obrigatório</string>
<string name="captcha_solve">Resolver</string>
<string name="cookies_cleared">Todos os cookies foram removidos</string>
<string name="clear_feed">Limpar feed</string>
<string name="text_clear_updates_feed_prompt">Limpar todo o histórico de atualizações permanentemente\?</string>
<string name="check_for_new_chapters">Em busca de novos capítulos</string>
<string name="reverse">Reverter</string>
<string name="sign_in">Entrar</string>
<string name="default_s">Padrão: %s</string>
<string name="next">Próximo</string>
<string name="protect_application_subtitle">Digite a senha que será necessária quando a app for iniciado</string>
<string name="confirm">Confirme</string>
<string name="password_length_hint">A senha deve ter 4 caracteres ou mais</string>
<string name="backup_saved">Backup salvo</string>
<string name="tracker_warning">Alguns aparelhos têm um comportamento de sistema diferente, o que pode interromper as tarefas em segundo plano.</string>
<string name="read_more">Leia mais</string>
<string name="welcome">Bem vindo</string>
<string name="available_sources">Fontes disponíveis</string>
<string name="enabled_sources">Fontes usadas</string>
<string name="queued">Enfileirado</string>
<string name="about_app_translation_summary">Traduzir esta aplicação</string>
<string name="chapter_is_missing">O capítulo está em falta</string>
<string name="auth_complete">Autorizado</string>
<string name="auth_not_supported_by">O login em %s não é suportado</string>
<string name="genres">Gêneros</string>
<string name="about_app_translation">Tradução</string>
<string name="text_clear_cookies_prompt">Será desconectado de todas as fontes</string>
<string name="vibration">Vibração</string>
<string name="cannot_find_available_storage">Sem armazenamento disponível</string>
<string name="favourites_categories">Categorias favoritas</string>
<string name="text_history_holder_secondary">Encontre o que ler no menu lateral.</string>
<string name="text_local_holder_secondary">Salve-o de fontes online ou importe fiheiros.</string>
<string name="recent_manga">Recente</string>
<string name="other_storage">Outro armazenamento</string>
<string name="text_search_holder_secondary">Tente reformular a consulta.</string>
<string name="not_available">Não disponível</string>
<string name="size_s">Tamanho: %s</string>
<string name="text_history_holder_primary">O que ler será exibido aqui</string>
<string name="text_local_holder_primary">Salve algo primeiro</string>
<string name="pages_animation">Animação de página</string>
<string name="favourites_category_empty">Categoria vazia</string>
<string name="read_later">Leia mais tarde</string>
<string name="updates">Atualizações</string>
<string name="all_favourites">Todos os favoritos</string>
<string name="search_results">Resultados da pesquisa</string>
<string name="text_feed_holder">Novos capítulos do que lé são mostrados aqui</string>
<string name="new_version_s">Nova versão: %s</string>
<string name="rotate_screen">Girar o ecrã</string>
<string name="protect_application">Proteja a app</string>
<string name="protect_application_summary">Peça a senha ao iniciar o Kotatsu</string>
<string name="zoom_mode_fit_height">Ajustar à altura</string>
<string name="black_dark_theme">Escuro</string>
<string name="black_dark_theme_summary">Usa menos energia em telas AMOLED</string>
<string name="reader_mode_hint">A configuração escolhida será lembrada para este mangá</string>
<string name="backup_information">Pode criar um backup do seu histórico e favoritos e restaurá-lo</string>
<string name="clear_cookies">Limpar cookies</string>
<string name="text_clear_search_history_prompt">Remover todas as consultas de pesquisa recentes permanentemente\?</string>
<string name="auth_required">Faça login para ver este conteúdo</string>
<string name="manga_save_location">Pasta para downloads</string>
<string name="exclude_nsfw_from_history">Excluir mangá NSFW do histórico</string>
<string name="system_default">Padrão</string>
<string name="computing_">A computar…</string>
<string name="screenshots_allow">Permitir</string>
<string name="screenshots_block_nsfw">Bloquear no NSFW</string>
<string name="screenshots_policy">Política de captura de ecrã</string>
<string name="screenshots_block_all">Sempre bloquear</string>
<string name="suggestions_summary">Sugira mangá com base nas suas preferências</string>
<string name="suggestions_info">Todos os dados são analisados apenas localmente neste dispositivo e nunca são enviados para qualquer lugar.</string>
<string name="text_suggestion_holder">Comece a ler mangá e receberá sugestões personalizadas</string>
<string name="suggestions">Sugestões</string>
<string name="suggestions_enable">Ativar sugestões</string>
<string name="exclude_nsfw_from_suggestions">Não sugira mangá NSFW</string>
<string name="enabled">Habilitado</string>
<string name="disabled">Desabilitado</string>
<string name="filter_load_error">Não foi possível carregar a lista de gêneros</string>
<string name="only_using_wifi">Somente em Wi-Fi</string>
<string name="onboard_text">Selecione os idiomas que deseja ler mangá. Pode alterá-lo mais tarde nas configurações.</string>
<string name="always">Sempre</string>
<string name="reset_filter">Redefinir filtro</string>
<string name="never">Nunca</string>
<string name="preload_pages">Pré-carregar páginas</string>
<string name="logged_in_as">Conectado como %s</string>
<string name="nsfw">18+</string>
<string name="various_languages">Vários idiomas</string>
<string name="suggestions_updating">Atualização das sugestões</string>
<string name="appearance">Aparência</string>
<string name="search_chapters">Encontrar capítulo</string>
<string name="chapters_empty">Não há capítulos nesta manga</string>
<string name="percent_string_pattern">%1$s%%</string>
<string name="text_shelf_holder_primary">O seu mangá será exibido aqui</string>
<string name="color_correction">Correção de cor</string>
<string name="server_error">Erro do servidor (%1$d). Por favor, tente novamente mais tarde</string>
<string name="clear_new_chapters_counters">Apagar informações sobre novos capítulos</string>
<string name="hide">Ocultar</string>
<string name="text_delete_local_manga_batch">Excluir os itens selecionados do dispositivo permanentemente\?</string>
<string name="compact">Compactar</string>
<string name="bookmark_added">Marcador adicionado</string>
<string name="prefetch_content">Pré-carregamento de conteúdo</string>
<string name="invalid_domain_message">Domínio inválido</string>
<string name="use_fingerprint">Usar impressão digital, se estiver disponível</string>
<string name="appwidget_shelf_description">Mangá dos seus favoritos</string>
<string name="appwidget_recent_description">Mangás lidos recentemente</string>
<string name="suggestions_excluded_genres_summary">Especifique os gêneros que você não deseja ver nas sugestões</string>
<string name="removal_completed">Remoção concluída</string>
<string name="check_new_chapters_title">Verifique se há novos capítulos e notifique se houver</string>
<string name="default_mode">Modo padrão</string>
<string name="mark_as_current">Marcar como atual</string>
<string name="error_no_space_left">Não há espaço disponível no dispositivo</string>
<string name="different_languages">Idiomas diferentes</string>
<string name="network_unavailable">A rede não está disponível</string>
<string name="network_unavailable_hint">Ative o Wi-Fi ou a rede móvel para ler o mangá online</string>
<string name="name">Nome</string>
<string name="logout">Sair</string>
<string name="edit">Editar</string>
<string name="edit_category">Editar categoria</string>
<string name="tracking">Monitoramento</string>
<string name="empty_favourite_categories">Nenhuma categoria favorita</string>
<string name="removed_from_history">Removido do histórico</string>
<string name="send">Enviar</string>
<string name="text_shelf_holder_secondary">Encontre o que ler na secção «Explorar»</string>
<string name="suggestions_excluded_genres">Excluir gêneros</string>
<string name="download_slowdown">Download lento</string>
<string name="download_slowdown_summary">Ajude a evitar o bloqueio do seu endereço IP</string>
<string name="local_manga_processing">Processando mangá salvo</string>
<string name="chapters_will_removed_background">Os capítulos serão removidos em segundo plano</string>
<string name="canceled">Cancelado</string>
<string name="email_enter_hint">Digite seu e-mail para continuar</string>
<string name="new_sources_text">Novas fontes de mangá estão disponíveis</string>
<string name="show_notification_new_chapters_on">Você receberá notificações sobre atualizações do mangá que está lendo</string>
<string name="notifications_enable">Ativar notificações</string>
<string name="crash_text">Algo deu errado. Por favor, envie um relatório de bug para os desenvolvedores para nos ajudar a corrigi-lo.</string>
<string name="status_planned">Planejado</string>
<string name="status_reading">Leitura</string>
<string name="status_re_reading">Relendo</string>
<string name="status_completed">Concluído</string>
<string name="status_on_hold">Em espera</string>
<string name="show_reading_indicators">Mostrar indicadores de progresso de leitura</string>
<string name="data_deletion">Exclusão de dados</string>
<string name="clear_cookies_summary">Pode ajudar em caso de alguns problemas. Todas as autorizações serão invalidadas</string>
<string name="show_all">Mostrar tudo</string>
<string name="clear_all_history">Apagar todo o histórico</string>
<string name="last_2_hours">Últimas 2 horas</string>
<string name="categories_delete_confirm">Tem certeza de que deseja excluir as categorias favoritas selecionadas\?
\nTodos os mangás serão perdidos e isso não pode ser desfeito.</string>
<string name="reorder">Reorganizar</string>
<string name="empty">Vazio</string>
<string name="explore">Explorar</string>
<string name="comics_archive">Arquivos de quadrinhos</string>
<string name="folder_with_images">Pasta com imagens</string>
<string name="importing_manga">Importando mangá</string>
<string name="saved_manga">Mangás salvos</string>
<string name="history_shortcuts">Mostrar atalhos de mangá recentes</string>
<string name="history_shortcuts_summary">Disponibilizar mangás recentes pressionando por um curto período de tempo o ícone do aplicativo</string>
<string name="brightness">Brilho</string>
<string name="contrast">Contraste</string>
<string name="reset">Redefinir</string>
<string name="text_unsaved_changes_prompt">Salvar ou descartar alterações não salvas\?</string>
<string name="select_range">Selecionar intervalo</string>
<string name="reader_slider">Mostrar controle de leitura deslizante</string>
<string name="source_disabled">Fonte desativada</string>
<string name="account_already_exists">Essa conta já existe</string>
<string name="back">Voltar</string>
<string name="sync">Sincronização</string>
<string name="sync_title">Sincronizar os seus dados</string>
<string name="show_notification_new_chapters_off">Você não receberá notificações, mas novos capítulos serão destacados nas listas</string>
<string name="bookmark_add">Adicionar marcador</string>
<string name="bookmark_remove">Remover marcador</string>
<string name="bookmarks">Marcadores</string>
<string name="bookmark_removed">Marcador removido</string>
<string name="undo">Desfazer</string>
<string name="dns_over_https">DNS sobre HTTPS</string>
<string name="detect_reader_mode">Modo de leitor de detecção automática</string>
<string name="detect_reader_mode_summary">Detectar automaticamente se o mangá é webtoon</string>
<string name="disable_battery_optimization">Desativar otimização de bateria</string>
<string name="disable_battery_optimization_summary">Ajuda com verificações de atualizações em segundo plano</string>
<string name="status_dropped">Dropado</string>
<string name="disable_all">Desativar tudo</string>
<string name="report">Relatório</string>
<string name="show_reading_indicators_summary">Mostrar porcentagem lida no histórico e favoritos</string>
<string name="exclude_nsfw_from_history_summary">Mangás marcados como NSFW nunca serão adicionados ao seu histórico e seu progresso não será salvo</string>
<string name="history_cleared">Histórico deletado</string>
<string name="manage">Gerenciar</string>
<string name="no_bookmarks_yet">Ainda não há marcadores</string>
<string name="no_bookmarks_summary">Você pode criar marcadores enquanto lê o mangá</string>
<string name="bookmarks_removed">Marcadores removidos</string>
<string name="no_manga_sources">Sem fontes de mangá</string>
<string name="no_manga_sources_text">Habilitar fontes de mangá para ler o mangá online</string>
<string name="random">Aleatório</string>
<string name="confirm_exit">Pressione Voltar novamente para sair</string>
<string name="exit_confirmation_summary">Pressione Voltar duas vezes para sair do aplicativo</string>
<string name="exit_confirmation">Confirmação de saída</string>
<string name="pages_cache">Cache de páginas</string>
<string name="other_cache">Outros cache</string>
<string name="storage_usage">Armazenamento usado</string>
<string name="available">Disponível</string>
<string name="memory_usage_pattern">%s - %s</string>
<string name="removed_from_favourites">Removido dos favoritos</string>
<string name="options">Opções</string>
<string name="not_found_404">Conteúdo não encontrado ou removido</string>
<string name="incognito_mode">Modo de navegação anônima</string>
<string name="no_chapters">Sem capítulos</string>
<string name="automatic_scroll">Rolagem automática</string>
<string name="reader_info_pattern">Cap. %1$d/%2$d Pág. %3$d/%4$d</string>
<string name="reader_info_bar">Mostrar barra de informações no leitor</string>
<string name="import_completed">Importação concluída</string>
<string name="import_completed_hint">Você pode excluir o arquivo original do armazenamento para economizar espaço</string>
<string name="import_will_start_soon">A importação começará em breve</string>
<string name="feed">Fluxo de conteúdo</string>
<string name="manga_error_description_pattern">Detalhes do erro:&lt;br&gt;&lt;tt&gt;%1$s&lt;/tt&gt;&lt;br&gt;&lt;br&gt;1. Tente &lt;a href=%2$s&gt;abra a página do mangá em um navegador da web&lt;/a&gt; para garantir que o mesmo esteja disponível em sua fonte&lt;br&gt;2. Se estiver disponível, envie um relatório de erro para os desenvolvedores.</string>
<string name="reader_control_ltr_summary">Tocar na borda direita ou pressionar a tecla direita sempre muda para a próxima página</string>
<string name="reader_control_ltr">Controle ergonômico do leitor</string>
<string name="color_correction_hint">As configurações de cores escolhidas serão lembradas para este mangá</string>
<string name="discard">Descartar</string>
<string name="language">Idioma</string>
<string name="theme_name_mamimi">Mamimi</string>
<string name="nothing_here">Não há nada aqui</string>
<string name="services">Serviços</string>
<string name="enable_logging_summary">Gravar algumas ações para propósitos de depuração</string>
<string name="allow_unstable_updates">Permitir atualizações instáveis</string>
<string name="download_started">Descarga iniciada</string>
<string name="share_logs">Compartilhar registos</string>
<string name="enable_logging">Ativar registos</string>
<string name="theme_name_miku">Miku</string>
<string name="theme_name_rikka">Rikka</string>
<string name="theme_name_sakura">Sakura</string>
<string name="show_suspicious_content">Exibir conteúdo suspeito</string>
<string name="theme_name_dynamic">Dinâmico</string>
<string name="color_theme">Esquema de cores</string>
<string name="show_in_grid_view">Mostrar na visualização em grade</string>
<string name="theme_name_asuka">Asuka</string>
<string name="theme_name_mion">Mion</string>
<string name="settings_apply_restart_required">Por favor, reinicie o app para aplicar essas mudanças</string>
<string name="theme_name_kanade">Kanade</string>
<string name="scrobbling_empty_hint">Para acompanhar o progresso da leitura, selecione Menu → Vá até a tela de detalhes do mangá.</string>
<string name="details_button_tip">Pressione e segure o botão Ler para ver mais opções</string>
<string name="webtoon_zoom">Zoom Webtoon</string>
<string name="allow_unstable_updates_summary">Propor atualizações para versões beta do aplicativo</string>
</resources>

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>

View File

@@ -1,426 +1,434 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
<string name="network_error">Ağ hatası</string>
<string name="local_storage">Dahili Depolama</string>
<string name="favourites">Favoriler</string>
<string name="history">Geçmiş</string>
<string name="chapters">Bölümler</string>
<string name="list">Liste</string>
<string name="detailed_list">Detaylı liste</string>
<string name="grid">Izgara</string>
<string name="list_mode">Liste modu</string>
<string name="loading_">Yükleniyor…</string>
<string name="close">Kapat</string>
<string name="try_again">Tekrar dene</string>
<string name="clear_history">Geçmişi temizle</string>
<string name="nothing_found">Hiçbir şey bulunamadı</string>
<string name="history_is_empty">Geçmiş yok</string>
<string name="read">Oku</string>
<string name="you_have_not_favourites_yet">Henüz favorileriniz yok</string>
<string name="add_to_favourites">Favoriniz</string>
<string name="add_new_category">Yeni kategori</string>
<string name="add">Ekle</string>
<string name="save">Kaydet</string>
<string name="share">Paylaş</string>
<string name="share_s">%s Paylaş</string>
<string name="search">Ara</string>
<string name="search_manga">Manga ara</string>
<string name="manga_downloading_">İndiriliyor…</string>
<string name="processing_">İşleniyor…</string>
<string name="download_complete">İndirildi</string>
<string name="downloads">İndirilenler</string>
<string name="by_name">Ad</string>
<string name="updated">Güncellenme</string>
<string name="newest">Yeniler</string>
<string name="by_rating">Puanlama</string>
<string name="filter">Litre</string>
<string name="theme">Tema</string>
<string name="light">ık</string>
<string name="dark">Koyu</string>
<string name="automatic">Takip sistemi</string>
<string name="pages">Sayfalar</string>
<string name="clear">Temizle</string>
<string name="text_clear_history_prompt">Tüm okuma geçmişi kalıcı olarak silinsin mi\?</string>
<string name="remove">Kaldır</string>
<string name="_s_deleted_from_local_storage">“%s” yerel depolama alanından sil</string>
<string name="save_page">Sayfayı kaydet</string>
<string name="share_image">Resmi paylaş</string>
<string name="popular">Popüler</string>
<string name="details">Detaylar</string>
<string name="settings">Ayarlar</string>
<string name="page_saved">Kaydet</string>
<string name="error_occurred">Bir hata oluştu</string>
<string name="remote_sources">Manga kaynakları</string>
<string name="search_history_cleared">Temizlendi</string>
<string name="_continue">Devam</string>
<string name="not_available">Müsait değil</string>
<string name="favourites_category_empty">Boş kategori</string>
<string name="remove_category">Kaldır</string>
<string name="delete">Sil</string>
<string name="chapter_d_of_d">Bölüm %1$d / %2$d</string>
<string name="text_file_not_supported">Bir ZIP veya CBZ dosyası seçin.</string>
<string name="read_mode">Okuma modu</string>
<string name="grid_size">Izgara boyutu</string>
<string name="webtoon">Webtoon</string>
<string name="text_file_sizes">B|kB|MB|GB|TB</string>
<string name="reader_settings">Okuyucu ayarları</string>
<string name="volume_buttons">Ses butonları</string>
<string name="error">Hata</string>
<string name="clear_thumbs_cache">Küçük resim önbelleğini temizle</string>
<string name="gestures_only">Yalnızca hareketler</string>
<string name="domain">Alan adi</string>
<string name="open_in_browser">Web tarayıcısında aç</string>
<string name="new_chapters">Yeni bölümler</string>
<string name="notifications_settings">Bildirim ayarları</string>
<string name="notification_sound">Bildirim sesi</string>
<string name="light_indicator">LED göstergesi</string>
<string name="vibration">Titreşim</string>
<string name="other_storage">Diğer depolama</string>
<string name="updates">Güncellemeler</string>
<string name="create_shortcut">Kısayol oluştur…</string>
<string name="_import">İçe aktar</string>
<string name="delete_manga">Mangayı sil</string>
<string name="computing_">Bilgi işleniyor…</string>
<string name="sort_order">Sıralama düzeni</string>
<string name="no_description">ıklama yok</string>
<string name="operation_not_supported">Bu işlem desteklenmiyor</string>
<string name="standard">Standart</string>
<string name="clear_pages_cache">Sayfa önbelleğini temizle</string>
<string name="search_on_s">%s üzerinde ara</string>
<string name="internal_storage">Dahili depolama</string>
<string name="notifications">Bildirimler</string>
<string name="switch_pages">Sayfaları değiştir</string>
<string name="save_manga">Kaydet</string>
<string name="download">İndir</string>
<string name="manga_save_location">İndirilenler klasörü</string>
<string name="external_storage">Harici depolama</string>
<string name="app_update_available">Uygulamanın yeni bir sürümü mevcut</string>
<string name="favourites_categories">Favori kategoriler</string>
<string name="done">Bitti</string>
<string name="read_later">Sonra oku</string>
<string name="pages_animation">Sayfa animasyonu</string>
<string name="cannot_find_available_storage">Kullanılabilir depolama alanı yok</string>
<string name="text_delete_local_manga">“%s” cihazdan kalıcı olarak silinsin mi\?</string>
<string name="clear_search_history">Arama geçmişini temizle</string>
<string name="text_empty_holder_primary">Burası biraz boş…</string>
<string name="rotate_screen">Ekranı döndür</string>
<string name="scale_mode">Ölçek modu</string>
<string name="zoom_mode_fit_height">Yüksekliğe sığdır</string>
<string name="black_dark_theme">Siyah</string>
<string name="zoom_mode_keep_start">Başlangıçta tut</string>
<string name="clear_feed">Akışı temizle</string>
<string name="restore_backup">Yedekten geri yükle</string>
<string name="update">Güncelle</string>
<string name="sign_in">Oturum aç</string>
<string name="state_finished">Bitti</string>
<string name="about">Hakkında</string>
<string name="auth_required">Bu içeriği görüntülemek için oturum açın</string>
<string name="confirm">Onayla</string>
<string name="auth_complete">Yetkilendirildi</string>
<string name="just_now">Az önce</string>
<string name="taps_on_edges">Kenar dokunuşları</string>
<string name="large_manga_save_confirm">Bu mangada %s var. Hepsi kaydedilsin mi\?</string>
<string name="enabled_d_of_d" tools:ignore="PluralsCandidate">%1$d / %2$d açık</string>
<string name="text_search_holder_secondary">Sorguyu yeniden biçimlendirmeyi deneyin.</string>
<string name="text_history_holder_primary">Okuduklarınız burada görüntülenecek</string>
<string name="text_history_holder_secondary">Yan menüde ne okuyacağınızı bulun.</string>
<string name="text_local_holder_primary">Önce bir şey kaydedin</string>
<string name="text_local_holder_secondary">Çevrim içi kaynaklardan kaydedin veya dosyaları içe aktarın.</string>
<string name="manga_shelf">Raf</string>
<string name="recent_manga">Son</string>
<string name="size_s">Boyut: %s</string>
<string name="updates_feed_cleared">Temizlendi</string>
<string name="enter_password">Parola gir</string>
<string name="protect_application_summary">Kotatsu başlatılırken parola sor</string>
<string name="track_sources">Güncellemeleri ara</string>
<string name="clear_updates_feed">Güncelleme akışını temizle</string>
<string name="feed_will_update_soon">Akış güncellemesi yakında başlayacak</string>
<string name="app_version">Sürüm %s</string>
<string name="check_for_updates">Güncellemeleri denetle</string>
<string name="zoom_mode_fit_center">Merkeze sığdır</string>
<string name="zoom_mode_fit_width">Genişliğe sığdır</string>
<string name="black_dark_theme_summary">AMOLED ekranlarda daha az güç kullanır</string>
<string name="backup_restore">Yedekle ve geri yükle</string>
<string name="create_backup">Veri yedeği oluştur</string>
<string name="data_restored">Geri yüklendi</string>
<string name="preparing_">Hazırlanıyor…</string>
<string name="yesterday">Dün</string>
<string name="group">Grup</string>
<string name="silent">Sessiz</string>
<string name="captcha_solve">Çöz</string>
<string name="clear_cookies">Çerezleri temizle</string>
<string name="default_s">Öntanımlı: %s</string>
<string name="reverse">Ters</string>
<string name="password_length_hint">Parola 4 veya daha fazla karakterden oluşmalıdır</string>
<string name="welcome">Hoş geldiniz</string>
<string name="queued">Sıraya alındı</string>
<string name="chapter_is_missing">Bölüm eksik</string>
<string name="about_app_translation_summary">Bu uygulamayı çevirin</string>
<string name="about_app_translation">Çeviri</string>
<string name="state_ongoing">Devam ediyor</string>
<string name="text_clear_cookies_prompt">Tüm kaynaklardaki oturumunuz kapatılacak</string>
<string name="enabled_sources">Kullanılan kaynaklar</string>
<string name="available_sources">Kullanılabilir kaynaklar</string>
<string name="exclude_nsfw_from_history">Uygunsuz mangayı geçmişten hariç tut</string>
<string name="show_pages_numbers">Numaralı sayfalar</string>
<string name="search_results">Arama sonuçları</string>
<string name="repeat_password">Parolayı tekrarla</string>
<string name="dont_check">Denetleme</string>
<string name="wrong_password">Yanlış parola</string>
<string name="backup_information">Geçmişinizin ve favorilerinizin yedeğini oluşturabilir ve bunları geri yükleyebilirsiniz</string>
<string name="long_ago">Uzun zaman önce</string>
<string name="today">Bugün</string>
<string name="no_update_available">Güncelleme yok</string>
<string name="all_favourites">Tüm favoriler</string>
<string name="text_feed_holder">Okuduklarınızın yeni bölümleri burada gösterilir</string>
<string name="new_version_s">Yeni sürüm: %s</string>
<string name="protect_application">Uygulamayı koru</string>
<string name="passwords_mismatch">Parolalar eşleşmiyor</string>
<string name="right_to_left">Sağdan-sola</string>
<string name="create_category">Yeni kategori</string>
<string name="file_not_found">Dosya bulunamadı</string>
<string name="data_restored_success">Tüm veriler geri yüklendi</string>
<string name="data_restored_with_errors">Veriler geri yüklendi, ancak hatalar var</string>
<string name="tap_to_try_again">Tekrar denemek için dokunun</string>
<string name="next">İleri</string>
<string name="captcha_required">CAPTCHA gerekli</string>
<string name="cookies_cleared">Tüm çerezler kaldırıldı</string>
<string name="reader_mode_hint">Seçilen yapılandırma bu manga için hatırlanacak</string>
<string name="text_clear_updates_feed_prompt">Tüm güncelleme geçmişi kalıcı olarak silinsin mi\?</string>
<string name="protect_application_subtitle">Uygulamayı başlatmak için bir parola girin</string>
<string name="text_clear_search_history_prompt">Tüm son arama sorguları kalıcı olarak kaldırılsın mı\?</string>
<string name="backup_saved">Yedek kaydedildi</string>
<string name="genres">Türler</string>
<string name="system_default">Öntanımlı</string>
<string name="auth_not_supported_by">%s üzerinde oturum açma desteklenmiyor</string>
<string name="read_more">Daha fazla oku</string>
<string name="tracker_warning">Bazı aygıtların arka plan görevlerini bozabilecek farklı sistem davranışları vardır.</string>
<string name="screenshots_policy">Ekran görüntüsü politikası</string>
<string name="screenshots_block_nsfw">Uygunsuzlarda engelle</string>
<string name="screenshots_block_all">Her zaman engelle</string>
<string name="screenshots_allow">İzin ver</string>
<string name="check_for_new_chapters">Yeni bölümleri denetle</string>
<string name="suggestions">Öneriler</string>
<string name="suggestions_enable">Önerileri etkinleştir</string>
<string name="suggestions_summary">Tercihlerinize göre manga önerileri alın</string>
<string name="suggestions_info">Tüm veriler sadece bu cihaz üzerinde yerel olarak işlenir ve asla herhangi bir yere satılmaz.</string>
<string name="text_suggestion_holder">Manga okumaya başladıktan sonra kişiselleştirilmiş öneriler alacaksınız</string>
<string name="exclude_nsfw_from_suggestions">Uygunsuz manga önerme</string>
<string name="enabled">Etkin</string>
<string name="disabled">Devre dışı</string>
<string name="filter_load_error">Türler listesi yüklenemiyor</string>
<string name="reset_filter">Filtreyi sıfırla</string>
<string name="onboard_text">Manga okumak istediğiniz dilleri seçin. Daha sonra ayarlardan değiştirebilirsiniz.</string>
<string name="always">Her zaman</string>
<string name="never">Hiçbir zaman</string>
<string name="only_using_wifi">Yalnızca Wi-Fi\'de</string>
<string name="preload_pages">Sayfaları önceden yükle</string>
<string name="logged_in_as">%s olarak oturum açıldı</string>
<string name="nsfw">18+</string>
<string name="various_languages">Çeşitli diller</string>
<string name="search_chapters">Bölüm bul</string>
<string name="chapters_empty">Bu mangada bölüm yok</string>
<string name="percent_string_pattern">%%%1$s</string>
<string name="suggestions_updating">Öneriler güncelleniyor</string>
<string name="appearance">Görünüm</string>
<string name="suggestions_excluded_genres">Türleri hariç tut</string>
<string name="suggestions_excluded_genres_summary">Önerilerde görmek istemediğiniz türleri belirtin</string>
<string name="text_delete_local_manga_batch">Seçilen ögeler aygıttan kalıcı olarak silinsin mi\?</string>
<string name="removal_completed">Kaldırma tamamlandı</string>
<string name="chapters_will_removed_background">Bölümler arka planda kaldırılacak.</string>
<string name="download_slowdown">İndirmeyi yavaşlat</string>
<string name="download_slowdown_summary">IP adresinizin engellenmesinden kaçınmanıza yardımcı olur</string>
<string name="local_manga_processing">Kaydedilen manga işleme</string>
<string name="hide">Gizle</string>
<string name="new_sources_text">Yeni manga kaynakları var</string>
<string name="show_notification_new_chapters_off">Bildirim almayacaksınız ancak yeni bölümler listelerde vurgulanacak</string>
<string name="notifications_enable">Bildirimleri etkinleştir</string>
<string name="check_new_chapters_title">Yeni bölümleri denetle ve bildirim gönder</string>
<string name="show_notification_new_chapters_on">Okuduğunuz manga güncellemeleri hakkında bildirim alacaksınız</string>
<string name="empty_favourite_categories">Favori kategori yok</string>
<string name="name">Ad</string>
<string name="edit">Düzenle</string>
<string name="edit_category">Kategoriyi düzenle</string>
<string name="bookmark_add">Yer imi ekle</string>
<string name="bookmark_remove">Yer imini kaldır</string>
<string name="bookmarks">Yer imleri</string>
<string name="bookmark_removed">Yer imi kaldırıldı</string>
<string name="bookmark_added">Yer imi eklendi</string>
<string name="undo">Geri al</string>
<string name="removed_from_history">Geçmişten kaldırıldı</string>
<string name="dns_over_https">HTTPS üzerinden DNS</string>
<string name="detect_reader_mode">Okuyucu modunu otomatik algıla</string>
<string name="detect_reader_mode_summary">Manganın webtoon olup olmadığını otomatik olarak algıla</string>
<string name="default_mode">Öntanımlı mod</string>
<string name="disable_battery_optimization">Pil iyileştirmesini devre dışı bırak</string>
<string name="disable_battery_optimization_summary">Arka planda güncelleme denetimlerine yardımcı olur</string>
<string name="crash_text">Bir şeyler yanlış gitti. Düzeltmemize yardımcı olması için lütfen geliştiricilere bir hata bildirimi gönderin.</string>
<string name="send">Gönder</string>
<string name="disable_all">Tümünü devre dışı bırak</string>
<string name="use_fingerprint">Varsa parmak izi kullan</string>
<string name="appwidget_shelf_description">Favorilerinizden mangalar</string>
<string name="appwidget_recent_description">Son okuduğunuz mangalar</string>
<string name="report">Bildir</string>
<string name="tracking">İzleme</string>
<string name="logout">Oturumu kapat</string>
<string name="status_reading">Okunuyor</string>
<string name="status_completed">Tamamlandı</string>
<string name="show_reading_indicators">Okuma ilerleme göstergelerini göster</string>
<string name="data_deletion">Verileri sil</string>
<string name="show_reading_indicators_summary">Geçmişte ve favorilerde okunma yüzdesini göster</string>
<string name="exclude_nsfw_from_history_summary">Uygunsuz olarak işaretlenen mangalar asla geçmişe eklenmeyecek ve ilerlemeniz kaydedilmeyecektir</string>
<string name="clear_cookies_summary">Bazı sorunlarda yardımcı olabilir. Tüm yetkilendirmeler geçersiz kılınacaktır</string>
<string name="status_on_hold">Beklemede</string>
<string name="status_dropped">Bırakıldı</string>
<string name="status_planned">Planlandı</string>
<string name="status_re_reading">Yeniden okunuyor</string>
<string name="show_all">Tümünü göster</string>
<string name="invalid_domain_message">Geçersiz etki alanı</string>
<string name="select_range">Aralık seç</string>
<string name="not_found_404">İçerik bulunamadı veya kaldırıldı</string>
<string name="text_shelf_holder_primary">Manganız burada görüntülenecek</string>
<string name="canceled">İptal edilmiş</string>
<string name="account_already_exists">Hesap zaten var</string>
<string name="back">Geri</string>
<string name="sync">Senkronizasyon</string>
<string name="sync_title">Verini yedekle</string>
<string name="email_enter_hint">Devam etmek için E-Postanızı girin</string>
<string name="clear_all_history">Tüm gecmişi temizle</string>
<string name="last_2_hours">Son 2 saat</string>
<string name="history_cleared">Geçmiş temizlendi</string>
<string name="manage">Yönet</string>
<string name="no_bookmarks_yet">Yer işareti yok</string>
<string name="no_bookmarks_summary">Manga okurken yer işareti oluşturabilirsiniz</string>
<string name="bookmarks_removed">Yer işaretleri kaldırıldı</string>
<string name="no_manga_sources">Manga kaynağı yok</string>
<string name="no_manga_sources_text">Çevrimiçi manga okumak için manga kaynaklarını aktif edin</string>
<string name="random">Rastgele</string>
<string name="empty">Boş</string>
<string name="explore">Keşfet</string>
<string name="confirm_exit">Çıkmak için tekrar Geri tıkla</string>
<string name="exit_confirmation_summary">Çıkmak için iki defa Geri tıkla</string>
<string name="removed_from_favourites">Favorilerden kaldırıldı</string>
<string name="exit_confirmation">Çıkış doğrulaması</string>
<string name="comics_archive">Çizgi roman arşivi</string>
<string name="manga_error_description_pattern">Hata ayrıntıları:&lt;br&gt;&lt;tt&gt;%1$s&lt;/tt&gt;&lt;br&gt;&lt;br&gt;1.Mangayı &lt;a href=%2$s&gt;kaynağında mevcut olduğuna emin olmak için&lt;/a&gt; bir web tarayıcısında açın&lt;br&gt;2. &lt;a href=kotatsu://about&gt; Kotatsunun son sürümünü kullandığnızdan emin olun.&lt;/a&gt;/br&gt; 3. Mevcutsa, geliştiricilere bir hata reporu gönderin.</string>
<string name="text_shelf_holder_secondary">«Keşfet» kısmında neler okuyacağınızı bulun</string>
<string name="categories_delete_confirm">Seçilen favori kategorileri silmek istediğinizden emin misiniz\?
<string name="network_error">Ağ hatası</string>
<string name="local_storage">Dahili Depolama</string>
<string name="favourites">Favoriler</string>
<string name="history">Geçmiş</string>
<string name="chapters">Bölümler</string>
<string name="list">Liste</string>
<string name="detailed_list">Detaylı liste</string>
<string name="grid">Izgara</string>
<string name="list_mode">Liste modu</string>
<string name="loading_">Yükleniyor…</string>
<string name="close">Kapat</string>
<string name="try_again">Tekrar dene</string>
<string name="clear_history">Geçmişi temizle</string>
<string name="nothing_found">Hiçbir şey bulunamadı</string>
<string name="history_is_empty">Geçmiş yok</string>
<string name="read">Oku</string>
<string name="you_have_not_favourites_yet">Henüz favorileriniz yok</string>
<string name="add_to_favourites">Favoriniz</string>
<string name="add_new_category">Yeni kategori</string>
<string name="add">Ekle</string>
<string name="save">Kaydet</string>
<string name="share">Paylaş</string>
<string name="share_s">%s Paylaş</string>
<string name="search">Ara</string>
<string name="search_manga">Manga ara</string>
<string name="manga_downloading_">İndiriliyor…</string>
<string name="processing_">İşleniyor…</string>
<string name="download_complete">İndirildi</string>
<string name="downloads">İndirilenler</string>
<string name="by_name">Ad</string>
<string name="updated">Güncellenme</string>
<string name="newest">Yeniler</string>
<string name="by_rating">Puanlama</string>
<string name="filter">Litre</string>
<string name="theme">Tema</string>
<string name="light">ık</string>
<string name="dark">Koyu</string>
<string name="automatic">Takip sistemi</string>
<string name="pages">Sayfalar</string>
<string name="clear">Temizle</string>
<string name="text_clear_history_prompt">Tüm okuma geçmişi kalıcı olarak silinsin mi\?</string>
<string name="remove">Kaldır</string>
<string name="_s_deleted_from_local_storage">“%s” yerel depolama alanından sil</string>
<string name="save_page">Sayfayı kaydet</string>
<string name="share_image">Resmi paylaş</string>
<string name="popular">Popüler</string>
<string name="details">Detaylar</string>
<string name="settings">Ayarlar</string>
<string name="page_saved">Kaydet</string>
<string name="error_occurred">Bir hata oluştu</string>
<string name="remote_sources">Manga kaynakları</string>
<string name="search_history_cleared">Temizlendi</string>
<string name="_continue">Devam</string>
<string name="not_available">Müsait değil</string>
<string name="favourites_category_empty">Boş kategori</string>
<string name="remove_category">Kaldır</string>
<string name="delete">Sil</string>
<string name="chapter_d_of_d">Bölüm %1$d / %2$d</string>
<string name="text_file_not_supported">Bir ZIP veya CBZ dosyası seçin.</string>
<string name="read_mode">Okuma modu</string>
<string name="grid_size">Izgara boyutu</string>
<string name="webtoon">Webtoon</string>
<string name="text_file_sizes">B|kB|MB|GB|TB</string>
<string name="reader_settings">Okuyucu ayarları</string>
<string name="volume_buttons">Ses butonları</string>
<string name="error">Hata</string>
<string name="clear_thumbs_cache">Küçük resim önbelleğini temizle</string>
<string name="gestures_only">Yalnızca hareketler</string>
<string name="domain">Alan adi</string>
<string name="open_in_browser">Web tarayıcısında aç</string>
<string name="new_chapters">Yeni bölümler</string>
<string name="notifications_settings">Bildirim ayarları</string>
<string name="notification_sound">Bildirim sesi</string>
<string name="light_indicator">LED göstergesi</string>
<string name="vibration">Titreşim</string>
<string name="other_storage">Diğer depolama</string>
<string name="updates">Güncellemeler</string>
<string name="create_shortcut">Kısayol oluştur…</string>
<string name="_import">İçe aktar</string>
<string name="delete_manga">Mangayı sil</string>
<string name="computing_">Bilgi işleniyor…</string>
<string name="sort_order">Sıralama düzeni</string>
<string name="no_description">ıklama yok</string>
<string name="operation_not_supported">Bu işlem desteklenmiyor</string>
<string name="standard">Standart</string>
<string name="clear_pages_cache">Sayfa önbelleğini temizle</string>
<string name="search_on_s">%s üzerinde ara</string>
<string name="internal_storage">Dahili depolama</string>
<string name="notifications">Bildirimler</string>
<string name="switch_pages">Sayfaları değiştir</string>
<string name="save_manga">Kaydet</string>
<string name="download">İndir</string>
<string name="manga_save_location">İndirilenler klasörü</string>
<string name="external_storage">Harici depolama</string>
<string name="app_update_available">Uygulamanın yeni bir sürümü mevcut</string>
<string name="favourites_categories">Favori kategoriler</string>
<string name="done">Bitti</string>
<string name="read_later">Sonra oku</string>
<string name="pages_animation">Sayfa animasyonu</string>
<string name="cannot_find_available_storage">Kullanılabilir depolama alanı yok</string>
<string name="text_delete_local_manga">“%s” cihazdan kalıcı olarak silinsin mi\?</string>
<string name="clear_search_history">Arama geçmişini temizle</string>
<string name="text_empty_holder_primary">Burası biraz boş…</string>
<string name="rotate_screen">Ekranı döndür</string>
<string name="scale_mode">Ölçek modu</string>
<string name="zoom_mode_fit_height">Yüksekliğe sığdır</string>
<string name="black_dark_theme">Siyah</string>
<string name="zoom_mode_keep_start">Başlangıçta tut</string>
<string name="clear_feed">Akışı temizle</string>
<string name="restore_backup">Yedekten geri yükle</string>
<string name="update">Güncelle</string>
<string name="sign_in">Oturum aç</string>
<string name="state_finished">Bitti</string>
<string name="about">Hakkında</string>
<string name="auth_required">Bu içeriği görüntülemek için oturum açın</string>
<string name="confirm">Onayla</string>
<string name="auth_complete">Yetkilendirildi</string>
<string name="just_now">Az önce</string>
<string name="taps_on_edges">Kenar dokunuşları</string>
<string name="large_manga_save_confirm">Bu mangada %s var. Hepsi kaydedilsin mi\?</string>
<string name="enabled_d_of_d" tools:ignore="PluralsCandidate">%1$d / %2$d açık</string>
<string name="text_search_holder_secondary">Sorguyu yeniden biçimlendirmeyi deneyin.</string>
<string name="text_history_holder_primary">Okuduklarınız burada görüntülenecek</string>
<string name="text_history_holder_secondary">Yan menüde ne okuyacağınızı bulun.</string>
<string name="text_local_holder_primary">Önce bir şey kaydedin</string>
<string name="text_local_holder_secondary">Çevrim içi kaynaklardan kaydedin veya dosyaları içe aktarın.</string>
<string name="manga_shelf">Raf</string>
<string name="recent_manga">Son</string>
<string name="size_s">Boyut: %s</string>
<string name="updates_feed_cleared">Temizlendi</string>
<string name="enter_password">Parola gir</string>
<string name="protect_application_summary">Kotatsu başlatılırken parola sor</string>
<string name="track_sources">Güncellemeleri ara</string>
<string name="clear_updates_feed">Güncelleme akışını temizle</string>
<string name="feed_will_update_soon">Akış güncellemesi yakında başlayacak</string>
<string name="app_version">Sürüm %s</string>
<string name="check_for_updates">Güncellemeleri denetle</string>
<string name="zoom_mode_fit_center">Merkeze sığdır</string>
<string name="zoom_mode_fit_width">Genişliğe sığdır</string>
<string name="black_dark_theme_summary">AMOLED ekranlarda daha az güç kullanır</string>
<string name="backup_restore">Yedekle ve geri yükle</string>
<string name="create_backup">Veri yedeği oluştur</string>
<string name="data_restored">Geri yüklendi</string>
<string name="preparing_">Hazırlanıyor…</string>
<string name="yesterday">Dün</string>
<string name="group">Grup</string>
<string name="silent">Sessiz</string>
<string name="captcha_solve">Çöz</string>
<string name="clear_cookies">Çerezleri temizle</string>
<string name="default_s">Öntanımlı: %s</string>
<string name="reverse">Ters</string>
<string name="password_length_hint">Parola 4 veya daha fazla karakterden oluşmalıdır</string>
<string name="welcome">Hoş geldiniz</string>
<string name="queued">Sıraya alındı</string>
<string name="chapter_is_missing">Bölüm eksik</string>
<string name="about_app_translation_summary">Bu uygulamayı çevirin</string>
<string name="about_app_translation">Çeviri</string>
<string name="state_ongoing">Devam ediyor</string>
<string name="text_clear_cookies_prompt">Tüm kaynaklardaki oturumunuz kapatılacak</string>
<string name="enabled_sources">Kullanılan kaynaklar</string>
<string name="available_sources">Kullanılabilir kaynaklar</string>
<string name="exclude_nsfw_from_history">Uygunsuz mangayı geçmişten hariç tut</string>
<string name="show_pages_numbers">Numaralı sayfalar</string>
<string name="search_results">Arama sonuçları</string>
<string name="repeat_password">Parolayı tekrarla</string>
<string name="dont_check">Denetleme</string>
<string name="wrong_password">Yanlış parola</string>
<string name="backup_information">Geçmişinizin ve favorilerinizin yedeğini oluşturabilir ve bunları geri yükleyebilirsiniz</string>
<string name="long_ago">Uzun zaman önce</string>
<string name="today">Bugün</string>
<string name="no_update_available">Güncelleme yok</string>
<string name="all_favourites">Tüm favoriler</string>
<string name="text_feed_holder">Okuduklarınızın yeni bölümleri burada gösterilir</string>
<string name="new_version_s">Yeni sürüm: %s</string>
<string name="protect_application">Uygulamayı koru</string>
<string name="passwords_mismatch">Parolalar eşleşmiyor</string>
<string name="right_to_left">Sağdan-sola</string>
<string name="create_category">Yeni kategori</string>
<string name="file_not_found">Dosya bulunamadı</string>
<string name="data_restored_success">Tüm veriler geri yüklendi</string>
<string name="data_restored_with_errors">Veriler geri yüklendi, ancak hatalar var</string>
<string name="tap_to_try_again">Tekrar denemek için dokunun</string>
<string name="next">İleri</string>
<string name="captcha_required">CAPTCHA gerekli</string>
<string name="cookies_cleared">Tüm çerezler kaldırıldı</string>
<string name="reader_mode_hint">Seçilen yapılandırma bu manga için hatırlanacak</string>
<string name="text_clear_updates_feed_prompt">Tüm güncelleme geçmişi kalıcı olarak silinsin mi\?</string>
<string name="protect_application_subtitle">Uygulamayı başlatmak için bir parola girin</string>
<string name="text_clear_search_history_prompt">Tüm son arama sorguları kalıcı olarak kaldırılsın mı\?</string>
<string name="backup_saved">Yedek kaydedildi</string>
<string name="genres">Türler</string>
<string name="system_default">Öntanımlı</string>
<string name="auth_not_supported_by">%s üzerinde oturum açma desteklenmiyor</string>
<string name="read_more">Daha fazla oku</string>
<string name="tracker_warning">Bazı aygıtların arka plan görevlerini bozabilecek farklı sistem davranışları vardır.</string>
<string name="screenshots_policy">Ekran görüntüsü politikası</string>
<string name="screenshots_block_nsfw">Uygunsuzlarda engelle</string>
<string name="screenshots_block_all">Her zaman engelle</string>
<string name="screenshots_allow">İzin ver</string>
<string name="check_for_new_chapters">Yeni bölümleri denetle</string>
<string name="suggestions">Öneriler</string>
<string name="suggestions_enable">Önerileri etkinleştir</string>
<string name="suggestions_summary">Tercihlerinize göre manga önerileri alın</string>
<string name="suggestions_info">Tüm veriler bu cihazda yalnızca yerel olarak analiz edilir ve asla hbir yere gönderilmez.</string>
<string name="text_suggestion_holder">Manga okumaya başladıktan sonra kişiselleştirilmiş öneriler alacaksınız</string>
<string name="exclude_nsfw_from_suggestions">Uygunsuz manga önerme</string>
<string name="enabled">Etkin</string>
<string name="disabled">Devre dışı</string>
<string name="filter_load_error">Türler listesi yüklenemiyor</string>
<string name="reset_filter">Filtreyi sıfırla</string>
<string name="onboard_text">Manga okumak istediğiniz dilleri seçin. Daha sonra ayarlardan değiştirebilirsiniz.</string>
<string name="always">Her zaman</string>
<string name="never">Hiçbir zaman</string>
<string name="only_using_wifi">Yalnızca Wi-Fi\'de</string>
<string name="preload_pages">Sayfaları önceden yükle</string>
<string name="logged_in_as">%s olarak oturum açıldı</string>
<string name="nsfw">18+</string>
<string name="various_languages">Çeşitli diller</string>
<string name="search_chapters">Bölüm bul</string>
<string name="chapters_empty">Bu mangada bölüm yok</string>
<string name="percent_string_pattern">%%%1$s</string>
<string name="suggestions_updating">Öneriler güncelleniyor</string>
<string name="appearance">Görünüm</string>
<string name="suggestions_excluded_genres">Türleri hariç tut</string>
<string name="suggestions_excluded_genres_summary">Önerilerde görmek istemediğiniz türleri belirtin</string>
<string name="text_delete_local_manga_batch">Seçilen ögeler aygıttan kalıcı olarak silinsin mi\?</string>
<string name="removal_completed">Kaldırma tamamlandı</string>
<string name="chapters_will_removed_background">Bölümler arka planda kaldırılacak</string>
<string name="download_slowdown">İndirmeyi yavaşlat</string>
<string name="download_slowdown_summary">IP adresinizin engellenmesinden kaçınmanıza yardımcı olur</string>
<string name="local_manga_processing">Kaydedilen manga işleme</string>
<string name="hide">Gizle</string>
<string name="new_sources_text">Yeni manga kaynakları var</string>
<string name="show_notification_new_chapters_off">Bildirim almayacaksınız ancak yeni bölümler listelerde vurgulanacak</string>
<string name="notifications_enable">Bildirimleri etkinleştir</string>
<string name="check_new_chapters_title">Yeni bölümleri denetle ve bildirim gönder</string>
<string name="show_notification_new_chapters_on">Okuduğunuz manga güncellemeleri hakkında bildirim alacaksınız</string>
<string name="empty_favourite_categories">Favori kategori yok</string>
<string name="name">Ad</string>
<string name="edit">Düzenle</string>
<string name="edit_category">Kategoriyi düzenle</string>
<string name="bookmark_add">Yer imi ekle</string>
<string name="bookmark_remove">Yer imini kaldır</string>
<string name="bookmarks">Yer imleri</string>
<string name="bookmark_removed">Yer imi kaldırıldı</string>
<string name="bookmark_added">Yer imi eklendi</string>
<string name="undo">Geri al</string>
<string name="removed_from_history">Geçmişten kaldırıldı</string>
<string name="dns_over_https">HTTPS üzerinden DNS</string>
<string name="detect_reader_mode">Okuyucu modunu otomatik algıla</string>
<string name="detect_reader_mode_summary">Manganın webtoon olup olmadığını otomatik olarak algıla</string>
<string name="default_mode">Öntanımlı mod</string>
<string name="disable_battery_optimization">Pil iyileştirmesini devre dışı bırak</string>
<string name="disable_battery_optimization_summary">Arka planda güncelleme denetimlerine yardımcı olur</string>
<string name="crash_text">Bir şeyler yanlış gitti. Düzeltmemize yardımcı olması için lütfen geliştiricilere bir hata bildirimi gönderin.</string>
<string name="send">Gönder</string>
<string name="disable_all">Tümünü devre dışı bırak</string>
<string name="use_fingerprint">Varsa parmak izi kullan</string>
<string name="appwidget_shelf_description">Favorilerinizden mangalar</string>
<string name="appwidget_recent_description">Son okuduğunuz mangalar</string>
<string name="report">Bildir</string>
<string name="tracking">İzleme</string>
<string name="logout">Oturumu kapat</string>
<string name="status_reading">Okunuyor</string>
<string name="status_completed">Tamamlandı</string>
<string name="show_reading_indicators">Okuma ilerleme göstergelerini göster</string>
<string name="data_deletion">Verileri sil</string>
<string name="show_reading_indicators_summary">Geçmişte ve favorilerde okunma yüzdesini göster</string>
<string name="exclude_nsfw_from_history_summary">Uygunsuz olarak işaretlenen mangalar asla geçmişe eklenmeyecek ve ilerlemeniz kaydedilmeyecektir</string>
<string name="clear_cookies_summary">Bazı sorunlarda yardımcı olabilir. Tüm yetkilendirmeler geçersiz kılınacaktır</string>
<string name="status_on_hold">Beklemede</string>
<string name="status_dropped">Bırakıldı</string>
<string name="status_planned">Planlandı</string>
<string name="status_re_reading">Yeniden okunuyor</string>
<string name="show_all">Tümünü göster</string>
<string name="invalid_domain_message">Geçersiz etki alanı</string>
<string name="select_range">Aralık seç</string>
<string name="not_found_404">İçerik bulunamadı veya kaldırıldı</string>
<string name="text_shelf_holder_primary">Manganız burada görüntülenecek</string>
<string name="canceled">İptal edilmiş</string>
<string name="account_already_exists">Hesap zaten var</string>
<string name="back">Geri</string>
<string name="sync">Senkronizasyon</string>
<string name="sync_title">Verini yedekle</string>
<string name="email_enter_hint">Devam etmek için E-Postanızı girin</string>
<string name="clear_all_history">Tüm gecmişi temizle</string>
<string name="last_2_hours">Son 2 saat</string>
<string name="history_cleared">Geçmiş temizlendi</string>
<string name="manage">Yönet</string>
<string name="no_bookmarks_yet">Yer işareti yok</string>
<string name="no_bookmarks_summary">Manga okurken yer işareti oluşturabilirsiniz</string>
<string name="bookmarks_removed">Yer işaretleri kaldırıldı</string>
<string name="no_manga_sources">Manga kaynağı yok</string>
<string name="no_manga_sources_text">Çevrimiçi manga okumak için manga kaynaklarını aktif edin</string>
<string name="random">Rastgele</string>
<string name="empty">Boş</string>
<string name="explore">Keşfet</string>
<string name="confirm_exit">Çıkmak için tekrar Geri tıkla</string>
<string name="exit_confirmation_summary">Çıkmak için iki defa Geri tıkla</string>
<string name="removed_from_favourites">Favorilerden kaldırıldı</string>
<string name="exit_confirmation">Çıkış doğrulaması</string>
<string name="comics_archive">Çizgi roman arşivi</string>
<string name="manga_error_description_pattern">Hata ayrıntıları:&lt;br&gt;&lt;tt&gt;%1$s&lt;/tt&gt;&lt;br&gt;&lt;br&gt;1. Kaynağında bulunduğundan emin olmak için &lt;a href=%2$s&gt;mangayı bir web tarayıcısında açmayı&lt;/a&gt; deneyin&lt;br&gt;2. &lt;a href=kotatsu://about&gt;Kotatsu\'nun en son sürümünü&lt;/a&gt;&lt;br&gt;3 kullandığınızdan emin olun. Varsa, geliştiricilere bir hata raporu gönderin.</string>
<string name="text_shelf_holder_secondary">«Keşfet» kısmında neler okuyacağınızı bulun</string>
<string name="categories_delete_confirm">Seçilen favori kategorileri silmek istediğinizden emin misiniz\?
\nİçindeki tüm mangalar kaybolur ve bu işlem geri alınamaz.</string>
<string name="reorder">Yeniden sırala</string>
<string name="pages_cache">Sayfa önbelleği</string>
<string name="other_cache">Diğer önbellekler</string>
<string name="storage_usage">Depolama kullanımı</string>
<string name="available">Mevcut</string>
<string name="memory_usage_pattern">%s - %s</string>
<string name="options">Seçenekler</string>
<string name="incognito_mode">Gizli mod</string>
<string name="no_chapters">Bölüm yok</string>
<string name="automatic_scroll">Otomatik kaydır</string>
<string name="reader_info_pattern">Böl. %1$d/%2$d Sayf. %3$d/%4$d</string>
<string name="reader_info_bar">Okuyucuda bilgi çubuğu göster</string>
<string name="folder_with_images">Resimlerle klasör</string>
<string name="importing_manga">Manga içe aktarılıyor</string>
<string name="import_completed">İçe aktarım tamamlandı</string>
<string name="import_completed_hint">Yer açmak için orijinal dosyayı depolamadan silebilirsiniz</string>
<string name="import_will_start_soon">İçe aktarım birazdan başlayacak</string>
<string name="feed">Akış</string>
<string name="history_shortcuts">En son manga kısayollarını göster</string>
<string name="reader_control_ltr">Ergonomik okuyucu kontrol</string>
<string name="color_correction">Renk düzeltme</string>
<string name="brightness">Parlaklık</string>
<string name="contrast">Kontrast</string>
<string name="reset">Sıfırla</string>
<string name="color_correction_hint">Seçilen renk ayarları bu manga için hatırlanacaktır</string>
<string name="text_unsaved_changes_prompt">Kaydedilmeyen değişiklikler kaydedilsin mi yoksa atılsın mı\?</string>
<string name="discard">Yoksay</string>
<string name="error_no_space_left">Cihazda yer yok</string>
<string name="webtoon_zoom">Webtoon yakınlaştırma</string>
<string name="reader_slider">Sayfa değiştirme kaydırıcısını göster</string>
<string name="clear_new_chapters_counters">Ayrıca yeni bölümler hakkındaki bilgileri temizle</string>
<string name="compact">Sıkı</string>
<string name="different_languages">Farklı diller</string>
<string name="network_unavailable">Ağ kullanılamıyor</string>
<string name="network_unavailable_hint">Çevrim içi manga okumak için Wi-Fi veya mobil ağıın</string>
<string name="server_error">Sunucu tarafı hatası (%1$d). Lütfen daha sonra tekrar deneyin</string>
<string name="saved_manga">Kaydedilen mangalar</string>
<string name="history_shortcuts_summary">Uygulama simgesine uzun basarak son mangaları kullanılabilir hale getirin</string>
<string name="reader_control_ltr_summary">Sağ kenara dokunulduğunda veya sağ tuşa basıldığında her zaman bir sonraki sayfaya geçilir</string>
<string name="source_disabled">Kaynak devre dışı</string>
<string name="prefetch_content">İçerik ön yüklemesi</string>
<string name="mark_as_current">Geçerli olarak işaretle</string>
<string name="language">Dil</string>
<string name="share_logs">Günlükleri paylaş</string>
<string name="enable_logging">Günlük kaydını etkinleştir</string>
<string name="enable_logging_summary">Hata ayıklama amacıyla bazı eylemleri kaydedin</string>
<string name="show_suspicious_content">Şüpheli içeriği göster</string>
<string name="services">Hizmetler</string>
<string name="scrobbling_empty_hint">Okuma ilerlemesini izlemek için manga ayrıntıları ekranında Menü → İzle\'yi seçin.</string>
<string name="nothing_here">burada hiçbir şey yok</string>
<string name="theme_name_dynamic">Dinamik</string>
<string name="color_theme">renk vurgusu</string>
<string name="show_in_grid_view">Izgara görünümünde göster</string>
<string name="theme_name_mamimi">Mamimi</string>
<string name="theme_name_kanade">Kanade</string>
<string name="user_agent">UserAgent başlığı</string>
<string name="allow_unstable_updates_summary">Uygulamanın beta sürümleri için güncellemeler öner</string>
<string name="allow_unstable_updates">Kararsız güncellemelere izin ver</string>
<string name="download_started">İndirme başladı</string>
<string name="theme_name_miku">Miku</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="settings_apply_restart_required">Bu değişiklikleri uygulamak için lütfen uygulamayı yeniden başlatın</string>
<string name="find_similar">Benzerini bul</string>
<string name="translations">Çeviriler</string>
<string name="web_view_unavailable">WebView kullanılamıyor: WebView sağlayıcısının kurulu olup olmadığını kontrol edin</string>
<string name="enable">Etkinleştir</string>
<string name="no_thanks">Hayır teşekkürler</string>
<string name="clear_network_cache">İnternet geçmişini temizle</string>
<string name="sync_settings">Eşitleme seçenekleri</string>
<string name="server_address">Sunucu adresi</string>
<string name="sync_host_description">"Şirket içinde barındırılan bir eşitleme sunucusu veya varsayılan bir sunucu kullanabilirsiniz. Ne yaptığınızdan emin değilseniz bunu değiştirmeyin."</string>
<string name="mirror_switching_summary">Yansıtmalar varsa, hatalarda uzak kaynaklar için etki alanlarını otomatik olarak değiştir</string>
<string name="downloads_wifi_only_summary">Mobil ağa geçerken indirmeyi durdur</string>
<string name="remove_completed">Bitirilenleri kaldır</string>
<string name="cancel_all">Hepsini iptal et</string>
<string name="downloads_wifi_only">Sadece Wi-Fi ile indir</string>
<string name="got_it">Anladım</string>
<string name="sources_reorder_tip">Yeniden sıralamak için bir öğeye dokunun ve basılı tutun</string>
<string name="comics_archive_import_description">Bir veya daha fazla .cbz veya .zip dosyası seçebilirsiniz, her dosya ayrı bir manga olarak tanınacaktır.</string>
<string name="folder_with_images_import_description">Arşivler veya resimler içeren bir dizin seçebilirsiniz. Her arşiv (veya alt dizin) bir bölüm olarak tanınacaktır.</string>
<string name="speed">Hız</string>
<string name="restore_backup_description">Kullanıcı verilerinin önceden oluşturulmuş bir yedeğini içe aktarın</string>
<string name="show_on_shelf">Rafta Göster</string>
<string name="sync_auth_hint">Mevcut bir hesapta oturum açabilir veya yeni bir hesap oluşturabilirsiniz.</string>
<string name="ignore_ssl_errors">SSL hatalarını görmezden gel</string>
<string name="pause">Durdur</string>
<string name="resume">Devam et</string>
<string name="paused">Durduruldu</string>
<string name="suggestion_manga">Öneri:%s</string>
<string name="suggestions_notifications_summary">Bazen manga öneri bildirimlerilerini göster</string>
<string name="more">Daha fazla</string>
<string name="cancel_all_downloads_confirm">Tüm aktif indirmeler iptal edilecek, kısmen indirilen veriler kaybolacak</string>
<string name="remove_completed_downloads_confirm">İndirme geçmişin tamamen silinecek</string>
<string name="text_downloads_list_holder">Hiçbir indirmeniz yok</string>
<string name="downloads_resumed">İndirmeler devam ettirildi</string>
<string name="downloads_paused">İndirmeler durduruldu</string>
<string name="downloads_removed">İndirmeler silindi</string>
<string name="mirror_switching">Aynayı otomatik olarak seç</string>
<string name="downloads_cancelled">İndirmeler iptal edildi</string>
<string name="suggestions_enable_prompt">Kişiselleştirilmiş manga önerileri almak istiyor musunuz\?</string>
<string name="address">Adres</string>
<string name="type">Tür</string>
<string name="manga_branch_title_template">%1$s (%2$s)</string>
<string name="port">Menü</string>
<string name="proxy">Proxy</string>
<string name="invalid_value_message">Geçersiz değer</string>
<string name="invalid_port_number">Geçersiz port numarası</string>
<string name="invert_colors">Renkleri ters çevir</string>
<string name="images_proxy_title">Görüntü optimizasyon proxy\'si</string>
<string name="password">Şifre</string>
<string name="authorization_optional">Doğrulama (isteğe bağlı)</string>
<string name="downloaded">İndirildi</string>
<string name="images_procy_description">Trafik kullanımını azaltmak ve mümkünse resim yüklemeyi hızlandırmak için wsrv.nl hizmetini kullanın</string>
<string name="username">Kullanıcı adı</string>
</resources>
<string name="reorder">Yeniden sırala</string>
<string name="pages_cache">Sayfa önbelleği</string>
<string name="other_cache">Diğer önbellekler</string>
<string name="storage_usage">Depolama kullanımı</string>
<string name="available">Mevcut</string>
<string name="memory_usage_pattern">%s - %s</string>
<string name="options">Seçenekler</string>
<string name="incognito_mode">Gizli mod</string>
<string name="no_chapters">Bölüm yok</string>
<string name="automatic_scroll">Otomatik kaydır</string>
<string name="reader_info_pattern">Böl. %1$d/%2$d Sayf. %3$d/%4$d</string>
<string name="reader_info_bar">Okuyucuda bilgi çubuğu göster</string>
<string name="folder_with_images">Resimlerle klasör</string>
<string name="importing_manga">Manga içe aktarılıyor</string>
<string name="import_completed">İçe aktarım tamamlandı</string>
<string name="import_completed_hint">Yer açmak için orijinal dosyayı depolamadan silebilirsiniz</string>
<string name="import_will_start_soon">İçe aktarım birazdan başlayacak</string>
<string name="feed">Akış</string>
<string name="history_shortcuts">En son manga kısayollarını göster</string>
<string name="reader_control_ltr">Ergonomik okuyucu kontrol</string>
<string name="color_correction">Renk düzeltme</string>
<string name="brightness">Parlaklık</string>
<string name="contrast">Kontrast</string>
<string name="reset">Sıfırla</string>
<string name="color_correction_hint">Seçilen renk ayarları bu manga için hatırlanacaktır</string>
<string name="text_unsaved_changes_prompt">Kaydedilmeyen değişiklikler kaydedilsin mi yoksa atılsın mı\?</string>
<string name="discard">Yoksay</string>
<string name="error_no_space_left">Cihazda yer yok</string>
<string name="webtoon_zoom">Webtoon yakınlaştırma</string>
<string name="reader_slider">Sayfa değiştirme kaydırıcısını göster</string>
<string name="clear_new_chapters_counters">Ayrıca yeni bölümler hakkındaki bilgileri temizle</string>
<string name="compact">Sıkı</string>
<string name="different_languages">Farklı diller</string>
<string name="network_unavailable">Ağ kullanılamıyor</string>
<string name="network_unavailable_hint">Çevrim içi manga okumak için Wi-Fi veya mobil ağıın</string>
<string name="server_error">Sunucu tarafı hatası (%1$d). Lütfen daha sonra tekrar deneyin</string>
<string name="saved_manga">Kaydedilen mangalar</string>
<string name="history_shortcuts_summary">Uygulama simgesine uzun basarak son mangaları kullanılabilir hale getirin</string>
<string name="reader_control_ltr_summary">Sağ kenara dokunulduğunda veya sağ tuşa basıldığında her zaman bir sonraki sayfaya geçilir</string>
<string name="source_disabled">Kaynak devre dışı</string>
<string name="prefetch_content">İçerik ön yüklemesi</string>
<string name="mark_as_current">Geçerli olarak işaretle</string>
<string name="language">Dil</string>
<string name="share_logs">Günlükleri paylaş</string>
<string name="enable_logging">Günlük kaydını etkinleştir</string>
<string name="enable_logging_summary">Hata ayıklama amacıyla bazı eylemleri kaydedin</string>
<string name="show_suspicious_content">Şüpheli içeriği göster</string>
<string name="services">Hizmetler</string>
<string name="scrobbling_empty_hint">Okuma ilerlemesini izlemek için manga ayrıntıları ekranında Menü → İzle\'yi seçin.</string>
<string name="nothing_here">burada hiçbir şey yok</string>
<string name="theme_name_dynamic">Dinamik</string>
<string name="color_theme">renk vurgusu</string>
<string name="show_in_grid_view">Izgara görünümünde göster</string>
<string name="theme_name_mamimi">Mamimi</string>
<string name="theme_name_kanade">Kanade</string>
<string name="user_agent">UserAgent başlığı</string>
<string name="allow_unstable_updates_summary">Uygulamanın beta sürümleri için güncellemeler öner</string>
<string name="allow_unstable_updates">Kararsız güncellemelere izin ver</string>
<string name="download_started">İndirme başladı</string>
<string name="theme_name_miku">Miku</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="settings_apply_restart_required">Bu değişiklikleri uygulamak için lütfen uygulamayı yeniden başlatın</string>
<string name="find_similar">Benzerini bul</string>
<string name="translations">Çeviriler</string>
<string name="web_view_unavailable">WebView kullanılamıyor: WebView sağlayıcısının kurulu olup olmadığını kontrol edin</string>
<string name="enable">Etkinleştir</string>
<string name="no_thanks">Hayır teşekkürler</string>
<string name="clear_network_cache">İnternet geçmişini temizle</string>
<string name="sync_settings">Eşitleme seçenekleri</string>
<string name="server_address">Sunucu adresi</string>
<string name="sync_host_description">Şirket içinde barındırılan bir eşitleme sunucusu veya varsayılan bir sunucu kullanabilirsiniz. Ne yaptığınızdan emin değilseniz bunu değiştirmeyin.</string>
<string name="mirror_switching_summary">Yansıtmalar varsa, hatalarda uzak kaynaklar için etki alanlarını otomatik olarak değiştir</string>
<string name="downloads_wifi_only_summary">Mobil ağa geçerken indirmeyi durdur</string>
<string name="remove_completed">Bitirilenleri kaldır</string>
<string name="cancel_all">Hepsini iptal et</string>
<string name="downloads_wifi_only">Sadece Wi-Fi ile indir</string>
<string name="got_it">Anladım</string>
<string name="sources_reorder_tip">Yeniden sıralamak için bir öğeye dokunun ve basılı tutun</string>
<string name="comics_archive_import_description">Bir veya daha fazla .cbz veya .zip dosyası seçebilirsiniz, her dosya ayrı bir manga olarak tanınacaktır.</string>
<string name="folder_with_images_import_description">Arşivler veya resimler içeren bir dizin seçebilirsiniz. Her arşiv (veya alt dizin) bir bölüm olarak tanınacaktır.</string>
<string name="speed">Hız</string>
<string name="restore_backup_description">Kullanıcı verilerinin önceden oluşturulmuş bir yedeğini içe aktarın</string>
<string name="show_on_shelf">Rafta Göster</string>
<string name="sync_auth_hint">Mevcut bir hesapta oturum açabilir veya yeni bir hesap oluşturabilirsiniz</string>
<string name="ignore_ssl_errors">SSL hatalarını görmezden gel</string>
<string name="pause">Durdur</string>
<string name="resume">Devam et</string>
<string name="paused">Durduruldu</string>
<string name="suggestion_manga">Öneri:%s</string>
<string name="suggestions_notifications_summary">Bazen manga öneri bildirimlerilerini göster</string>
<string name="more">Daha fazla</string>
<string name="cancel_all_downloads_confirm">Tüm aktif indirmeler iptal edilecek, kısmen indirilen veriler kaybolacak</string>
<string name="remove_completed_downloads_confirm">İndirme geçmişin tamamen silinecek</string>
<string name="text_downloads_list_holder">Hiçbir indirmeniz yok</string>
<string name="downloads_resumed">İndirmeler devam ettirildi</string>
<string name="downloads_paused">İndirmeler durduruldu</string>
<string name="downloads_removed">İndirmeler silindi</string>
<string name="mirror_switching">Aynayı otomatik olarak seç</string>
<string name="downloads_cancelled">İndirmeler iptal edildi</string>
<string name="suggestions_enable_prompt">Kişiselleştirilmiş manga önerileri almak istiyor musunuz\?</string>
<string name="address">Adres</string>
<string name="type">Tür</string>
<string name="manga_branch_title_template">%1$s (%2$s)</string>
<string name="port">Menü</string>
<string name="proxy">Proxy</string>
<string name="invalid_value_message">Geçersiz değer</string>
<string name="invalid_port_number">Geçersiz port numarası</string>
<string name="invert_colors">Renkleri ters çevir</string>
<string name="images_proxy_title">Görüntü optimizasyon proxy\'si</string>
<string name="password">Şifre</string>
<string name="authorization_optional">Doğrulama (isteğe bağlı)</string>
<string name="downloaded">İndirildi</string>
<string name="images_procy_description">Trafik kullanımını azaltmak ve mümkünse resim yüklemeyi hızlandırmak için wsrv.nl hizmetini kullanın</string>
<string name="username">Kullanıcı adı</string>
<string name="network"></string>
<string name="data_and_privacy">Veri ve gizlilik</string>
<string name="restore_summary">Önceden oluşturulmuş yedeği geri yükle</string>
<string name="webtoon_zoom_summary">Webtoon modunda yakınlaştırma hareketine izin ver</string>
<string name="reader_info_bar_summary">Geçerli saati ve okuma ilerlemesini ekranın üst kısmında gösterin</string>
<string name="show_pages_numbers_summary">Sayfa numaralarını alt köşede göster</string>
<string name="pages_animation_summary">Sayfa Çevirme Animasyonu</string>
<string name="details_button_tip">Daha fazla seçenek görmek için Oku düğmesini basılı tutun</string>
</resources>

View File

@@ -22,7 +22,7 @@
<string name="detailed_list">Детальний список</string>
<string name="list_mode">Режим списку</string>
<string name="settings">Налаштування</string>
<string name="remote_sources">Джерела манги</string>
<string name="remote_sources">Джерела манґи</string>
<string name="loading_">Завантаження…</string>
<string name="computing_">Обчислення…</string>
<string name="chapter_d_of_d">Розділ %1$d із %2$d</string>