mirror of
https://github.com/mihonapp/mihon.git
synced 2025-07-27 18:05:53 +02:00
Compare commits
36 Commits
Author | SHA1 | Date | |
---|---|---|---|
e6f025a9fb | |||
aa607e0ecb | |||
65b32ddeb2 | |||
5e9bdc2690 | |||
9ce994168a | |||
748a720199 | |||
8db34eb3dd | |||
b657bba96e | |||
dbaac69fad | |||
b6a1e89535 | |||
cce919750a | |||
9376b223bb | |||
6f047fb5aa | |||
3e6b0117fd | |||
421dfb4a2d | |||
abaca6e676 | |||
8bab1d9798 | |||
13d31669ac | |||
c1dfdeb500 | |||
dda7e677a5 | |||
b1fb401f63 | |||
885ace111e | |||
885552b792 | |||
4f02872a84 | |||
ecec1bd102 | |||
0c07e05a2b | |||
060f0682f4 | |||
88032e11df | |||
493c8b0943 | |||
af2ef0621a | |||
095461e31b | |||
3ddd1033c3 | |||
912687ac78 | |||
40a9595012 | |||
12ff37d052 | |||
4857073f30 |
.github
app
build.gradle
src
main
java
eu
kanade
tachiyomi
annoations
data
backup
download
notification
preference
track
myanimelist
updater
devrepo
extension
network
ui
base
controller
browse
library
main
manga
reader
viewer
setting
SettingsBackupController.ktSettingsDownloadController.ktSettingsGeneralController.ktSettingsMainController.ktSettingsParentalControlsController.ktSettingsTrackingController.kt
track
webview
util
widget
res
drawable
layout
extension_detail_header.xmllibrary_controller.xmlsource_comfortable_grid_item.xmlsource_compact_grid_item.xmlsource_list_item.xml
menu
values-b+es+419
values-ca
values-cs
values-cv
values-de
values-el
values-es
values-fa
values-fi
values-fil
values-in
values-it
values-ja
values-ms
values-nb-rNO
values-nl
values-pt-rBR
values-pt
values-ru
values-sah
values-sc
values-sv
values-tl
values-tr
values-uk
values-zh-rCN
values-zh-rTW
values
4
.github/ISSUE_TEMPLATE.md
vendored
4
.github/ISSUE_TEMPLATE.md
vendored
@ -2,7 +2,7 @@
|
||||
|
||||
I acknowledge that:
|
||||
|
||||
- I have updated to the latest version of the app (stable is v0.10.2)
|
||||
- I have updated to the latest version of the app (stable is v0.10.4)
|
||||
- I have updated all extensions
|
||||
- If this is an issue with an extension, that I should be opening an issue in https://github.com/inorichi/tachiyomi-extensions
|
||||
|
||||
@ -10,7 +10,7 @@ I acknowledge that:
|
||||
|
||||
---
|
||||
|
||||
### Device information
|
||||
## Device information
|
||||
* Tachiyomi version: ?
|
||||
* Android version: ?
|
||||
* Device: ?
|
||||
|
6
.github/ISSUE_TEMPLATE/bug_report.md
vendored
6
.github/ISSUE_TEMPLATE/bug_report.md
vendored
@ -9,7 +9,7 @@ labels: "bug"
|
||||
|
||||
I acknowledge that:
|
||||
|
||||
- I have updated to the latest version of the app (stable is v0.10.2)
|
||||
- I have updated to the latest version of the app (stable is v0.10.4)
|
||||
- I have updated all extensions
|
||||
- If this is an issue with an extension, that I should be opening an issue in https://github.com/inorichi/tachiyomi-extensions
|
||||
|
||||
@ -17,7 +17,7 @@ I acknowledge that:
|
||||
|
||||
---
|
||||
|
||||
### Device information
|
||||
## Device information
|
||||
* Tachiyomi version: ?
|
||||
* Android version: ?
|
||||
* Device: ?
|
||||
@ -32,5 +32,5 @@ This should happen.
|
||||
### Actual behavior
|
||||
This happened instead.
|
||||
|
||||
### Other details
|
||||
## Other details
|
||||
Additional details and attachments.
|
||||
|
8
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
8
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: Tachiyomi help website
|
||||
url: https://tachiyomi.org/help/
|
||||
about: Common questions are answered here.
|
||||
- name: Tachiyomi extensions GitHub repository
|
||||
url: https://github.com/inorichi/tachiyomi-extensions
|
||||
about: Issues about an extension/source/catalogue should be opened here instead.
|
6
.github/ISSUE_TEMPLATE/feature_request.md
vendored
6
.github/ISSUE_TEMPLATE/feature_request.md
vendored
@ -9,7 +9,7 @@ labels: "feature"
|
||||
|
||||
I acknowledge that:
|
||||
|
||||
- I have updated to the latest version of the app (stable is v0.10.2)
|
||||
- I have updated to the latest version of the app (stable is v0.10.4)
|
||||
- I have updated all extensions
|
||||
- If this is an issue with an extension, that I should be opening an issue in https://github.com/inorichi/tachiyomi-extensions
|
||||
|
||||
@ -17,8 +17,8 @@ I acknowledge that:
|
||||
|
||||
---
|
||||
|
||||
### Why/User Benefit/User Problem
|
||||
## Why/User Benefit/User Problem
|
||||
(explain why this feature should be added)
|
||||
|
||||
### What/Requirements
|
||||
## What/Requirements
|
||||
(explain how this feature would behave)
|
||||
|
2
.github/ISSUE_TEMPLATE/source_issue.md
vendored
2
.github/ISSUE_TEMPLATE/source_issue.md
vendored
@ -2,7 +2,7 @@
|
||||
name: "Extension/source/catalogue issue"
|
||||
about: "Do not open an issue here. See https://github.com/inorichi/tachiyomi-extensions"
|
||||
title: "THIS ISSUE IS IN THE WRONG REPO; SEE https://github.com/inorichi/tachiyomi-extensions"
|
||||
labels: "catalog"
|
||||
labels: "catalog, invalid"
|
||||
---
|
||||
|
||||
DO NOT OPEN AN ISSUE IN THIS REPO. SEE https://github.com/inorichi/tachiyomi-extensions
|
@ -40,8 +40,8 @@ android {
|
||||
minSdkVersion AndroidConfig.minSdk
|
||||
targetSdkVersion AndroidConfig.targetSdk
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
versionCode 48
|
||||
versionName "0.10.2"
|
||||
versionCode 50
|
||||
versionName "0.10.4"
|
||||
|
||||
buildConfigField "String", "COMMIT_COUNT", "\"${getCommitCount()}\""
|
||||
buildConfigField "String", "COMMIT_SHA", "\"${getGitSha()}\""
|
||||
@ -135,11 +135,11 @@ dependencies {
|
||||
implementation 'androidx.cardview:cardview:1.0.0'
|
||||
implementation 'androidx.constraintlayout:constraintlayout:2.0.0-rc1'
|
||||
implementation 'androidx.coordinatorlayout:coordinatorlayout:1.1.0'
|
||||
implementation 'androidx.core:core-ktx:1.4.0-alpha01'
|
||||
implementation 'androidx.multidex:multidex:2.0.1'
|
||||
implementation 'androidx.preference:preference:1.1.1'
|
||||
implementation 'androidx.recyclerview:recyclerview:1.2.0-alpha05'
|
||||
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.2.0-alpha01'
|
||||
implementation 'androidx.webkit:webkit:1.3.0-rc01'
|
||||
|
||||
final lifecycle_version = '2.3.0-alpha06'
|
||||
implementation "androidx.lifecycle:lifecycle-common-java8:$lifecycle_version"
|
||||
@ -163,7 +163,7 @@ dependencies {
|
||||
implementation 'com.github.pwittchen:reactivenetwork:0.13.0'
|
||||
|
||||
// Network client
|
||||
final okhttp_version = '4.8.0'
|
||||
final okhttp_version = '4.8.1'
|
||||
implementation "com.squareup.okhttp3:okhttp:$okhttp_version"
|
||||
implementation "com.squareup.okhttp3:logging-interceptor:$okhttp_version"
|
||||
implementation "com.squareup.okhttp3:okhttp-dnsoverhttps:$okhttp_version"
|
||||
|
5
app/src/main/java/eu/kanade/tachiyomi/annoations/Nsfw.kt
Normal file
5
app/src/main/java/eu/kanade/tachiyomi/annoations/Nsfw.kt
Normal file
@ -0,0 +1,5 @@
|
||||
package eu.kanade.tachiyomi.annoations
|
||||
|
||||
@Retention(AnnotationRetention.RUNTIME)
|
||||
@Target(AnnotationTarget.CLASS)
|
||||
annotation class Nsfw
|
@ -7,16 +7,22 @@ import com.google.gson.JsonParser
|
||||
import com.google.gson.stream.JsonReader
|
||||
import eu.kanade.tachiyomi.R
|
||||
import eu.kanade.tachiyomi.data.backup.models.Backup
|
||||
import eu.kanade.tachiyomi.data.track.TrackManager
|
||||
import eu.kanade.tachiyomi.source.SourceManager
|
||||
import uy.kohesive.injekt.injectLazy
|
||||
|
||||
object BackupRestoreValidator {
|
||||
|
||||
private val sourceManager: SourceManager by injectLazy()
|
||||
private val trackManager: TrackManager by injectLazy()
|
||||
|
||||
/**
|
||||
* Checks for critical backup file data.
|
||||
*
|
||||
* @throws Exception if version or manga cannot be found.
|
||||
* @return List of required sources.
|
||||
* @return List of missing sources or missing trackers.
|
||||
*/
|
||||
fun validate(context: Context, uri: Uri): Map<Long, String> {
|
||||
fun validate(context: Context, uri: Uri): Results {
|
||||
val reader = JsonReader(context.contentResolver.openInputStream(uri)!!.bufferedReader())
|
||||
val json = JsonParser.parseReader(reader).asJsonObject
|
||||
|
||||
@ -26,11 +32,29 @@ object BackupRestoreValidator {
|
||||
throw Exception(context.getString(R.string.invalid_backup_file_missing_data))
|
||||
}
|
||||
|
||||
if (mangasJson.asJsonArray.size() == 0) {
|
||||
val mangas = mangasJson.asJsonArray
|
||||
if (mangas.size() == 0) {
|
||||
throw Exception(context.getString(R.string.invalid_backup_file_missing_manga))
|
||||
}
|
||||
|
||||
return getSourceMapping(json)
|
||||
val sources = getSourceMapping(json)
|
||||
val missingSources = sources
|
||||
.filter { sourceManager.get(it.key) == null }
|
||||
.values
|
||||
.sorted()
|
||||
|
||||
val trackers = mangas
|
||||
.filter { it.asJsonObject.has("track") }
|
||||
.flatMap { it.asJsonObject["track"].asJsonArray }
|
||||
.map { it.asJsonObject["s"].asInt }
|
||||
.distinct()
|
||||
val missingTrackers = trackers
|
||||
.mapNotNull { trackManager.getService(it) }
|
||||
.filter { !it.isLogged }
|
||||
.map { it.name }
|
||||
.sorted()
|
||||
|
||||
return Results(missingSources, missingTrackers)
|
||||
}
|
||||
|
||||
fun getSourceMapping(json: JsonObject): Map<Long, String> {
|
||||
@ -43,4 +67,6 @@ object BackupRestoreValidator {
|
||||
}
|
||||
.toMap()
|
||||
}
|
||||
|
||||
data class Results(val missingSources: List<String>, val missingTrackers: List<String>)
|
||||
}
|
||||
|
@ -8,6 +8,7 @@ import eu.kanade.tachiyomi.data.database.models.Chapter
|
||||
import eu.kanade.tachiyomi.data.database.models.Manga
|
||||
import eu.kanade.tachiyomi.data.download.model.Download
|
||||
import eu.kanade.tachiyomi.data.download.model.DownloadQueue
|
||||
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
||||
import eu.kanade.tachiyomi.source.Source
|
||||
import eu.kanade.tachiyomi.source.SourceManager
|
||||
import eu.kanade.tachiyomi.source.model.Page
|
||||
@ -24,10 +25,8 @@ import uy.kohesive.injekt.injectLazy
|
||||
*/
|
||||
class DownloadManager(private val context: Context) {
|
||||
|
||||
/**
|
||||
* The sources manager.
|
||||
*/
|
||||
private val sourceManager by injectLazy<SourceManager>()
|
||||
private val sourceManager: SourceManager by injectLazy()
|
||||
private val preferences: PreferencesHelper by injectLazy()
|
||||
|
||||
/**
|
||||
* Downloads provider, used to retrieve the folders where the chapters are or should be stored.
|
||||
@ -201,9 +200,16 @@ class DownloadManager(private val context: Context) {
|
||||
*/
|
||||
fun deleteChapters(chapters: List<Chapter>, manga: Manga, source: Source) {
|
||||
queue.remove(chapters)
|
||||
val chapterDirs = provider.findChapterDirs(chapters, manga, source)
|
||||
|
||||
val filteredChapters = if (!preferences.removeBookmarkedChapters()) {
|
||||
chapters.filterNot { it.bookmark }
|
||||
} else {
|
||||
chapters
|
||||
}
|
||||
|
||||
val chapterDirs = provider.findChapterDirs(filteredChapters, manga, source)
|
||||
chapterDirs.forEach { it.delete() }
|
||||
cache.removeChapters(chapters, manga)
|
||||
cache.removeChapters(filteredChapters, manga)
|
||||
if (cache.getDownloadCount(manga) == 0) { // Delete manga directory if empty
|
||||
chapterDirs.firstOrNull()?.parentFile?.delete()
|
||||
}
|
||||
|
@ -79,7 +79,7 @@ internal class DownloadNotifier(private val context: Context) {
|
||||
* Dismiss the downloader's notification. Downloader error notifications use a different id, so
|
||||
* those can only be dismissed by the user.
|
||||
*/
|
||||
fun dismiss() {
|
||||
fun dismissProgress() {
|
||||
context.notificationManager.cancel(Notifications.ID_DOWNLOAD_CHAPTER_PROGRESS)
|
||||
}
|
||||
|
||||
|
@ -139,6 +139,7 @@ class Downloader(
|
||||
notifier.paused = false
|
||||
notifier.onPaused()
|
||||
} else {
|
||||
notifier.dismissProgress()
|
||||
notifier.onComplete()
|
||||
}
|
||||
}
|
||||
@ -170,7 +171,7 @@ class Downloader(
|
||||
.forEach { it.status = Download.NOT_DOWNLOADED }
|
||||
}
|
||||
queue.clear()
|
||||
notifier.dismiss()
|
||||
notifier.dismissProgress()
|
||||
}
|
||||
|
||||
/**
|
||||
@ -266,15 +267,16 @@ class Downloader(
|
||||
* @param download the chapter to be downloaded.
|
||||
*/
|
||||
private fun downloadChapter(download: Download): Observable<Download> = Observable.defer {
|
||||
val chapterDirname = provider.getChapterDirName(download.chapter)
|
||||
val mangaDir = provider.getMangaDir(download.manga, download.source)
|
||||
|
||||
if (DiskUtil.getAvailableStorageSpace(mangaDir) < MIN_DISK_SPACE) {
|
||||
val availSpace = DiskUtil.getAvailableStorageSpace(mangaDir)
|
||||
if (availSpace != -1L && availSpace < MIN_DISK_SPACE) {
|
||||
download.status = Download.ERROR
|
||||
notifier.onError(context.getString(R.string.download_insufficient_space), download.chapter.name)
|
||||
return@defer Observable.just(download)
|
||||
}
|
||||
|
||||
val chapterDirname = provider.getChapterDirName(download.chapter)
|
||||
val tmpDir = mangaDir.createDirectory(chapterDirname + TMP_DIR_SUFFIX)
|
||||
|
||||
val pageListObservable = if (download.pages == null) {
|
||||
|
@ -155,7 +155,7 @@ class NotificationReceiver : BroadcastReceiver() {
|
||||
* @param mangaId id of manga
|
||||
* @param chapterId id of chapter
|
||||
*/
|
||||
internal fun openChapter(context: Context, mangaId: Long, chapterId: Long) {
|
||||
private fun openChapter(context: Context, mangaId: Long, chapterId: Long) {
|
||||
val db = DatabaseHelper(context)
|
||||
val manga = db.getManga(mangaId).executeAsBlocking()
|
||||
val chapter = db.getChapter(chapterId).executeAsBlocking()
|
||||
|
@ -97,6 +97,8 @@ object PreferenceKeys {
|
||||
|
||||
const val removeAfterMarkedAsRead = "pref_remove_after_marked_as_read_key"
|
||||
|
||||
const val removeBookmarkedChapters = "pref_remove_bookmarked"
|
||||
|
||||
const val libraryUpdateInterval = "pref_library_update_interval_key"
|
||||
|
||||
const val libraryUpdateRestriction = "library_update_restriction"
|
||||
@ -117,6 +119,8 @@ object PreferenceKeys {
|
||||
|
||||
const val automaticExtUpdates = "automatic_ext_updates"
|
||||
|
||||
const val allowNsfwSource = "allow_nsfw_source"
|
||||
|
||||
const val startScreen = "start_screen"
|
||||
|
||||
const val useBiometricLock = "use_biometric_lock"
|
||||
|
@ -37,4 +37,10 @@ object PreferenceValues {
|
||||
VERTICAL,
|
||||
BOTH
|
||||
}
|
||||
|
||||
enum class NsfwAllowance {
|
||||
ALLOWED,
|
||||
PARTIAL,
|
||||
BLOCKED
|
||||
}
|
||||
}
|
||||
|
@ -10,6 +10,7 @@ import eu.kanade.tachiyomi.R
|
||||
import eu.kanade.tachiyomi.data.preference.PreferenceKeys as Keys
|
||||
import eu.kanade.tachiyomi.data.preference.PreferenceValues as Values
|
||||
import eu.kanade.tachiyomi.data.preference.PreferenceValues.DisplayMode
|
||||
import eu.kanade.tachiyomi.data.preference.PreferenceValues.NsfwAllowance
|
||||
import eu.kanade.tachiyomi.data.track.TrackService
|
||||
import eu.kanade.tachiyomi.data.track.anilist.Anilist
|
||||
import java.io.File
|
||||
@ -187,6 +188,8 @@ class PreferencesHelper(val context: Context) {
|
||||
|
||||
fun removeAfterMarkedAsRead() = prefs.getBoolean(Keys.removeAfterMarkedAsRead, false)
|
||||
|
||||
fun removeBookmarkedChapters() = prefs.getBoolean(Keys.removeBookmarkedChapters, false)
|
||||
|
||||
fun libraryUpdateInterval() = flowPrefs.getInt(Keys.libraryUpdateInterval, 24)
|
||||
|
||||
fun libraryUpdateRestriction() = prefs.getStringSet(Keys.libraryUpdateRestriction, setOf("wifi"))
|
||||
@ -217,6 +220,8 @@ class PreferencesHelper(val context: Context) {
|
||||
|
||||
fun automaticExtUpdates() = flowPrefs.getBoolean(Keys.automaticExtUpdates, true)
|
||||
|
||||
fun allowNsfwSource() = flowPrefs.getEnum(Keys.allowNsfwSource, NsfwAllowance.ALLOWED)
|
||||
|
||||
fun extensionUpdatesCount() = flowPrefs.getInt("ext_updates_count", 0)
|
||||
|
||||
fun lastExtCheck() = flowPrefs.getLong("last_ext_check", 0)
|
||||
|
@ -1,6 +1,7 @@
|
||||
package eu.kanade.tachiyomi.data.preference
|
||||
|
||||
import android.content.SharedPreferences
|
||||
import androidx.core.content.edit
|
||||
import androidx.preference.PreferenceDataStore
|
||||
|
||||
class SharedPreferencesDataStore(private val prefs: SharedPreferences) : PreferenceDataStore() {
|
||||
@ -10,7 +11,9 @@ class SharedPreferencesDataStore(private val prefs: SharedPreferences) : Prefere
|
||||
}
|
||||
|
||||
override fun putBoolean(key: String?, value: Boolean) {
|
||||
prefs.edit().putBoolean(key, value).apply()
|
||||
prefs.edit {
|
||||
putBoolean(key, value)
|
||||
}
|
||||
}
|
||||
|
||||
override fun getInt(key: String?, defValue: Int): Int {
|
||||
@ -18,7 +21,9 @@ class SharedPreferencesDataStore(private val prefs: SharedPreferences) : Prefere
|
||||
}
|
||||
|
||||
override fun putInt(key: String?, value: Int) {
|
||||
prefs.edit().putInt(key, value).apply()
|
||||
prefs.edit {
|
||||
putInt(key, value)
|
||||
}
|
||||
}
|
||||
|
||||
override fun getLong(key: String?, defValue: Long): Long {
|
||||
@ -26,7 +31,9 @@ class SharedPreferencesDataStore(private val prefs: SharedPreferences) : Prefere
|
||||
}
|
||||
|
||||
override fun putLong(key: String?, value: Long) {
|
||||
prefs.edit().putLong(key, value).apply()
|
||||
prefs.edit {
|
||||
putLong(key, value)
|
||||
}
|
||||
}
|
||||
|
||||
override fun getFloat(key: String?, defValue: Float): Float {
|
||||
@ -34,7 +41,9 @@ class SharedPreferencesDataStore(private val prefs: SharedPreferences) : Prefere
|
||||
}
|
||||
|
||||
override fun putFloat(key: String?, value: Float) {
|
||||
prefs.edit().putFloat(key, value).apply()
|
||||
prefs.edit {
|
||||
putFloat(key, value)
|
||||
}
|
||||
}
|
||||
|
||||
override fun getString(key: String?, defValue: String?): String? {
|
||||
@ -42,7 +51,9 @@ class SharedPreferencesDataStore(private val prefs: SharedPreferences) : Prefere
|
||||
}
|
||||
|
||||
override fun putString(key: String?, value: String?) {
|
||||
prefs.edit().putString(key, value).apply()
|
||||
prefs.edit {
|
||||
putString(key, value)
|
||||
}
|
||||
}
|
||||
|
||||
override fun getStringSet(key: String?, defValues: MutableSet<String>?): MutableSet<String>? {
|
||||
@ -50,6 +61,8 @@ class SharedPreferencesDataStore(private val prefs: SharedPreferences) : Prefere
|
||||
}
|
||||
|
||||
override fun putStringSet(key: String?, values: MutableSet<String>?) {
|
||||
prefs.edit().putStringSet(key, values).apply()
|
||||
prefs.edit {
|
||||
putStringSet(key, values)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -476,7 +476,9 @@ class MyAnimeListApi(private val client: OkHttpClient, interceptor: MyAnimeListI
|
||||
fun copyPersonalFrom(track: Track) {
|
||||
num_read_chapters = track.last_chapter_read.toString()
|
||||
val numScore = track.score.toInt()
|
||||
if (numScore in 1..9) {
|
||||
if (numScore == 0) {
|
||||
score = ""
|
||||
} else if (numScore in 1..10) {
|
||||
score = numScore.toString()
|
||||
}
|
||||
status = track.status.toString()
|
||||
|
@ -26,7 +26,7 @@ class DevRepoUpdateChecker : UpdateChecker() {
|
||||
|
||||
override suspend fun checkForUpdate(): UpdateResult {
|
||||
val response = withContext(Dispatchers.IO) {
|
||||
client.newCall(GET(DevRepoRelease.LATEST_URL)).await(assertSuccess = false)
|
||||
client.newCall(GET(DevRepoRelease.LATEST_URL)).await()
|
||||
}
|
||||
|
||||
// Get latest repo version number from header in format "Location: tachiyomi-r1512.apk"
|
||||
|
@ -1,43 +1,29 @@
|
||||
package eu.kanade.tachiyomi.extension.api
|
||||
|
||||
import android.content.Context
|
||||
import com.github.salomonbrys.kotson.fromJson
|
||||
import com.github.salomonbrys.kotson.get
|
||||
import com.github.salomonbrys.kotson.int
|
||||
import com.github.salomonbrys.kotson.string
|
||||
import com.google.gson.Gson
|
||||
import com.google.gson.JsonArray
|
||||
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
||||
import eu.kanade.tachiyomi.extension.model.Extension
|
||||
import eu.kanade.tachiyomi.extension.model.LoadResult
|
||||
import eu.kanade.tachiyomi.extension.util.ExtensionLoader
|
||||
import eu.kanade.tachiyomi.network.GET
|
||||
import eu.kanade.tachiyomi.network.NetworkHelper
|
||||
import eu.kanade.tachiyomi.network.await
|
||||
import java.util.Date
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.withContext
|
||||
import okhttp3.Response
|
||||
import uy.kohesive.injekt.injectLazy
|
||||
|
||||
internal class ExtensionGithubApi {
|
||||
|
||||
private val network: NetworkHelper by injectLazy()
|
||||
private val preferences: PreferencesHelper by injectLazy()
|
||||
|
||||
private val gson: Gson by injectLazy()
|
||||
|
||||
suspend fun findExtensions(): List<Extension.Available> {
|
||||
val call = GET(EXT_URL)
|
||||
val service: ExtensionGithubService = ExtensionGithubService.create()
|
||||
|
||||
return withContext(Dispatchers.IO) {
|
||||
val response = network.client.newCall(call).await()
|
||||
if (response.isSuccessful) {
|
||||
val response = service.getRepo()
|
||||
parseResponse(response)
|
||||
} else {
|
||||
response.close()
|
||||
throw Exception("Failed to get extensions")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -64,11 +50,7 @@ internal class ExtensionGithubApi {
|
||||
return extensionsWithUpdate
|
||||
}
|
||||
|
||||
private fun parseResponse(response: Response): List<Extension.Available> {
|
||||
val text = response.body?.use { it.string() } ?: return emptyList()
|
||||
|
||||
val json = gson.fromJson<JsonArray>(text)
|
||||
|
||||
private fun parseResponse(json: JsonArray): List<Extension.Available> {
|
||||
return json
|
||||
.filter { element ->
|
||||
val versionName = element["version"].string
|
||||
@ -82,18 +64,19 @@ internal class ExtensionGithubApi {
|
||||
val versionName = element["version"].string
|
||||
val versionCode = element["code"].int
|
||||
val lang = element["lang"].string
|
||||
val icon = "$REPO_URL/icon/${apkName.replace(".apk", ".png")}"
|
||||
val nsfw = element["nsfw"].int == 1
|
||||
val icon = "$REPO_URL_PREFIX/icon/${apkName.replace(".apk", ".png")}"
|
||||
|
||||
Extension.Available(name, pkgName, versionName, versionCode, lang, apkName, icon)
|
||||
Extension.Available(name, pkgName, versionName, versionCode, lang, nsfw, apkName, icon)
|
||||
}
|
||||
}
|
||||
|
||||
fun getApkUrl(extension: Extension.Available): String {
|
||||
return "$REPO_URL/apk/${extension.apkName}"
|
||||
return "$REPO_URL_PREFIX/apk/${extension.apkName}"
|
||||
}
|
||||
|
||||
companion object {
|
||||
private const val REPO_URL = "https://raw.githubusercontent.com/inorichi/tachiyomi-extensions/repo"
|
||||
private const val EXT_URL = "$REPO_URL/index.json"
|
||||
const val BASE_URL = "https://raw.githubusercontent.com/"
|
||||
const val REPO_URL_PREFIX = "${BASE_URL}inorichi/tachiyomi-extensions/repo/"
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,42 @@
|
||||
package eu.kanade.tachiyomi.extension.api
|
||||
|
||||
import com.google.gson.JsonArray
|
||||
import eu.kanade.tachiyomi.network.NetworkHelper
|
||||
import retrofit2.Retrofit
|
||||
import retrofit2.converter.gson.GsonConverterFactory
|
||||
import retrofit2.http.GET
|
||||
import uy.kohesive.injekt.injectLazy
|
||||
|
||||
/**
|
||||
* Used to get the extension repo listing from GitHub.
|
||||
*/
|
||||
interface ExtensionGithubService {
|
||||
|
||||
companion object {
|
||||
private val client by lazy {
|
||||
val network: NetworkHelper by injectLazy()
|
||||
network.client.newBuilder()
|
||||
.addNetworkInterceptor { chain ->
|
||||
val originalResponse = chain.proceed(chain.request())
|
||||
originalResponse.newBuilder()
|
||||
.header("Content-Encoding", "gzip")
|
||||
.header("Content-Type", "application/json")
|
||||
.build()
|
||||
}
|
||||
.build()
|
||||
}
|
||||
|
||||
fun create(): ExtensionGithubService {
|
||||
val adapter = Retrofit.Builder()
|
||||
.baseUrl(ExtensionGithubApi.BASE_URL)
|
||||
.addConverterFactory(GsonConverterFactory.create())
|
||||
.client(client)
|
||||
.build()
|
||||
|
||||
return adapter.create(ExtensionGithubService::class.java)
|
||||
}
|
||||
}
|
||||
|
||||
@GET("${ExtensionGithubApi.REPO_URL_PREFIX}index.json.gz")
|
||||
suspend fun getRepo(): JsonArray
|
||||
}
|
@ -9,14 +9,16 @@ sealed class Extension {
|
||||
abstract val versionName: String
|
||||
abstract val versionCode: Int
|
||||
abstract val lang: String?
|
||||
abstract val isNsfw: Boolean
|
||||
|
||||
data class Installed(
|
||||
override val name: String,
|
||||
override val pkgName: String,
|
||||
override val versionName: String,
|
||||
override val versionCode: Int,
|
||||
val sources: List<Source>,
|
||||
override val lang: String,
|
||||
override val isNsfw: Boolean,
|
||||
val sources: List<Source>,
|
||||
val hasUpdate: Boolean = false,
|
||||
val isObsolete: Boolean = false,
|
||||
val isUnofficial: Boolean = false
|
||||
@ -28,6 +30,7 @@ sealed class Extension {
|
||||
override val versionName: String,
|
||||
override val versionCode: Int,
|
||||
override val lang: String,
|
||||
override val isNsfw: Boolean,
|
||||
val apkName: String,
|
||||
val iconUrl: String
|
||||
) : Extension()
|
||||
@ -38,6 +41,7 @@ sealed class Extension {
|
||||
override val versionName: String,
|
||||
override val versionCode: Int,
|
||||
val signatureHash: String,
|
||||
override val lang: String? = null
|
||||
override val lang: String? = null,
|
||||
override val isNsfw: Boolean = false
|
||||
) : Extension()
|
||||
}
|
||||
|
@ -5,6 +5,8 @@ import android.content.Context
|
||||
import android.content.pm.PackageInfo
|
||||
import android.content.pm.PackageManager
|
||||
import dalvik.system.PathClassLoader
|
||||
import eu.kanade.tachiyomi.annoations.Nsfw
|
||||
import eu.kanade.tachiyomi.data.preference.PreferenceValues
|
||||
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
||||
import eu.kanade.tachiyomi.extension.model.Extension
|
||||
import eu.kanade.tachiyomi.extension.model.LoadResult
|
||||
@ -15,8 +17,7 @@ import eu.kanade.tachiyomi.util.lang.Hash
|
||||
import kotlinx.coroutines.async
|
||||
import kotlinx.coroutines.runBlocking
|
||||
import timber.log.Timber
|
||||
import uy.kohesive.injekt.Injekt
|
||||
import uy.kohesive.injekt.api.get
|
||||
import uy.kohesive.injekt.injectLazy
|
||||
|
||||
/**
|
||||
* Class that handles the loading of the extensions installed in the system.
|
||||
@ -24,20 +25,25 @@ import uy.kohesive.injekt.api.get
|
||||
@SuppressLint("PackageManagerGetSignatures")
|
||||
internal object ExtensionLoader {
|
||||
|
||||
private val preferences: PreferencesHelper by injectLazy()
|
||||
private val allowNsfwSource by lazy {
|
||||
preferences.allowNsfwSource().get()
|
||||
}
|
||||
|
||||
private const val EXTENSION_FEATURE = "tachiyomi.extension"
|
||||
private const val METADATA_SOURCE_CLASS = "tachiyomi.extension.class"
|
||||
private const val METADATA_NSFW = "tachiyomi.extension.nsfw"
|
||||
const val LIB_VERSION_MIN = 1.2
|
||||
const val LIB_VERSION_MAX = 1.2
|
||||
|
||||
private const val PACKAGE_FLAGS = PackageManager.GET_CONFIGURATIONS or PackageManager.GET_SIGNATURES
|
||||
|
||||
// inorichi's key
|
||||
val officialSignature = "7ce04da7773d41b489f4693a366c36bcd0a11fc39b547168553c285bd7348e23"
|
||||
private const val officialSignature = "7ce04da7773d41b489f4693a366c36bcd0a11fc39b547168553c285bd7348e23"
|
||||
/**
|
||||
* List of the trusted signatures.
|
||||
*/
|
||||
var trustedSignatures = mutableSetOf<String>() +
|
||||
Injekt.get<PreferencesHelper>().trustedSignatures().get() + officialSignature
|
||||
var trustedSignatures = mutableSetOf<String>() + preferences.trustedSignatures().get() + officialSignature
|
||||
|
||||
/**
|
||||
* Return a list of all the installed extensions initialized concurrently.
|
||||
@ -125,6 +131,11 @@ internal object ExtensionLoader {
|
||||
return LoadResult.Untrusted(extension)
|
||||
}
|
||||
|
||||
val isNsfw = appInfo.metaData.getInt(METADATA_NSFW) == 1
|
||||
if (allowNsfwSource == PreferenceValues.NsfwAllowance.BLOCKED && isNsfw) {
|
||||
return LoadResult.Error("NSFW extension $pkgName not allowed")
|
||||
}
|
||||
|
||||
val classLoader = PathClassLoader(appInfo.sourceDir, null, context.classLoader)
|
||||
|
||||
val sources = appInfo.metaData.getString(METADATA_SOURCE_CLASS)!!
|
||||
@ -141,7 +152,13 @@ internal object ExtensionLoader {
|
||||
try {
|
||||
when (val obj = Class.forName(it, false, classLoader).newInstance()) {
|
||||
is Source -> listOf(obj)
|
||||
is SourceFactory -> obj.createSources()
|
||||
is SourceFactory -> {
|
||||
if (isSourceNsfw(obj)) {
|
||||
emptyList()
|
||||
} else {
|
||||
obj.createSources()
|
||||
}
|
||||
}
|
||||
else -> throw Exception("Unknown source class type! ${obj.javaClass}")
|
||||
}
|
||||
} catch (e: Throwable) {
|
||||
@ -149,10 +166,11 @@ internal object ExtensionLoader {
|
||||
return LoadResult.Error(e)
|
||||
}
|
||||
}
|
||||
.filter { !isSourceNsfw(it) }
|
||||
|
||||
val langs = sources.filterIsInstance<CatalogueSource>()
|
||||
.map { it.lang }
|
||||
.toSet()
|
||||
|
||||
val lang = when (langs.size) {
|
||||
0 -> ""
|
||||
1 -> langs.first()
|
||||
@ -160,7 +178,7 @@ internal object ExtensionLoader {
|
||||
}
|
||||
|
||||
val extension = Extension.Installed(
|
||||
extName, pkgName, versionName, versionCode, sources, lang,
|
||||
extName, pkgName, versionName, versionCode, lang, isNsfw, sources,
|
||||
isUnofficial = signatureHash != officialSignature
|
||||
)
|
||||
return LoadResult.Success(extension)
|
||||
@ -188,4 +206,22 @@ internal object ExtensionLoader {
|
||||
null
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether a Source or SourceFactory is annotated with @Nsfw.
|
||||
*/
|
||||
private fun isSourceNsfw(clazz: Any): Boolean {
|
||||
if (allowNsfwSource == PreferenceValues.NsfwAllowance.ALLOWED) {
|
||||
return false
|
||||
}
|
||||
|
||||
if (clazz !is Source && clazz !is SourceFactory) {
|
||||
return false
|
||||
}
|
||||
|
||||
// Annotations are proxied, hence this janky way of checking for them
|
||||
return clazz.javaClass.annotations
|
||||
.flatMap { it.javaClass.interfaces.map { it.simpleName } }
|
||||
.firstOrNull { it == Nsfw::class.java.simpleName } != null
|
||||
}
|
||||
}
|
||||
|
@ -2,18 +2,16 @@ package eu.kanade.tachiyomi.network
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.content.Context
|
||||
import android.os.Build
|
||||
import android.os.Handler
|
||||
import android.os.Looper
|
||||
import android.webkit.WebResourceRequest
|
||||
import android.webkit.WebResourceResponse
|
||||
import android.webkit.WebSettings
|
||||
import android.webkit.WebView
|
||||
import android.widget.Toast
|
||||
import androidx.webkit.WebViewClientCompat
|
||||
import androidx.webkit.WebViewFeature
|
||||
import eu.kanade.tachiyomi.R
|
||||
import eu.kanade.tachiyomi.source.online.HttpSource
|
||||
import eu.kanade.tachiyomi.util.lang.launchUI
|
||||
import eu.kanade.tachiyomi.util.system.WebViewClientCompat
|
||||
import eu.kanade.tachiyomi.util.system.WebViewUtil
|
||||
import eu.kanade.tachiyomi.util.system.isOutdated
|
||||
import eu.kanade.tachiyomi.util.system.setDefaultSettings
|
||||
@ -116,7 +114,7 @@ class CloudflareInterceptor(private val context: Context) : Interceptor {
|
||||
}
|
||||
|
||||
// HTTP error codes are only received since M
|
||||
if (WebViewFeature.isFeatureSupported(WebViewFeature.RECEIVE_WEB_RESOURCE_ERROR) &&
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M &&
|
||||
url == origRequestUrl && !challengeFound
|
||||
) {
|
||||
// The first request didn't return the challenge, abort.
|
||||
@ -124,13 +122,15 @@ class CloudflareInterceptor(private val context: Context) : Interceptor {
|
||||
}
|
||||
}
|
||||
|
||||
override fun onReceivedHttpError(
|
||||
override fun onReceivedErrorCompat(
|
||||
view: WebView,
|
||||
request: WebResourceRequest,
|
||||
errorResponse: WebResourceResponse
|
||||
errorCode: Int,
|
||||
description: String?,
|
||||
failingUrl: String,
|
||||
isMainFrame: Boolean
|
||||
) {
|
||||
if (request.isForMainFrame) {
|
||||
if (errorResponse.statusCode == 503) {
|
||||
if (isMainFrame) {
|
||||
if (errorCode == 503) {
|
||||
// Found the Cloudflare challenge page.
|
||||
challengeFound = true
|
||||
} else {
|
||||
|
3
app/src/main/java/eu/kanade/tachiyomi/ui/base/controller/ToolbarLiftOnScrollController.kt
Normal file
3
app/src/main/java/eu/kanade/tachiyomi/ui/base/controller/ToolbarLiftOnScrollController.kt
Normal file
@ -0,0 +1,3 @@
|
||||
package eu.kanade.tachiyomi.ui.base.controller
|
||||
|
||||
interface ToolbarLiftOnScrollController
|
@ -44,11 +44,12 @@ class ExtensionHolder(view: View, override val adapter: ExtensionAdapter) :
|
||||
version.text = extension.versionName
|
||||
lang.text = LocaleHelper.getSourceDisplayName(extension.lang, itemView.context)
|
||||
warning.text = when {
|
||||
extension is Extension.Untrusted -> itemView.context.getString(R.string.ext_untrusted).toUpperCase()
|
||||
extension is Extension.Installed && extension.isObsolete -> itemView.context.getString(R.string.ext_obsolete).toUpperCase()
|
||||
extension is Extension.Installed && extension.isUnofficial -> itemView.context.getString(R.string.ext_unofficial).toUpperCase()
|
||||
else -> null
|
||||
}
|
||||
extension is Extension.Untrusted -> itemView.context.getString(R.string.ext_untrusted)
|
||||
extension is Extension.Installed && extension.isObsolete -> itemView.context.getString(R.string.ext_obsolete)
|
||||
extension is Extension.Installed && extension.isUnofficial -> itemView.context.getString(R.string.ext_unofficial)
|
||||
extension.isNsfw -> itemView.context.getString(R.string.ext_nsfw_short)
|
||||
else -> ""
|
||||
}.toUpperCase()
|
||||
|
||||
GlideApp.with(itemView.context).clear(image)
|
||||
if (extension is Extension.Available) {
|
||||
|
@ -3,6 +3,7 @@ package eu.kanade.tachiyomi.ui.browse.extension
|
||||
import android.app.Application
|
||||
import android.os.Bundle
|
||||
import eu.kanade.tachiyomi.R
|
||||
import eu.kanade.tachiyomi.data.preference.PreferenceValues
|
||||
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
||||
import eu.kanade.tachiyomi.extension.ExtensionManager
|
||||
import eu.kanade.tachiyomi.extension.model.Extension
|
||||
@ -55,20 +56,22 @@ open class ExtensionPresenter(
|
||||
private fun toItems(tuple: ExtensionTuple): List<ExtensionItem> {
|
||||
val context = Injekt.get<Application>()
|
||||
val activeLangs = preferences.enabledLanguages().get()
|
||||
val showNsfwExtensions = preferences.allowNsfwSource().get() != PreferenceValues.NsfwAllowance.BLOCKED
|
||||
|
||||
val (installed, untrusted, available) = tuple
|
||||
|
||||
val items = mutableListOf<ExtensionItem>()
|
||||
|
||||
val updatesSorted = installed.filter { it.hasUpdate }.sortedBy { it.pkgName }
|
||||
val installedSorted = installed.filter { !it.hasUpdate }.sortedWith(compareBy({ !it.isObsolete }, { it.pkgName }))
|
||||
val updatesSorted = installed.filter { it.hasUpdate && (showNsfwExtensions || !it.isNsfw) }.sortedBy { it.pkgName }
|
||||
val installedSorted = installed.filter { !it.hasUpdate && (showNsfwExtensions || !it.isNsfw) }.sortedWith(compareBy({ !it.isObsolete }, { it.pkgName }))
|
||||
val untrustedSorted = untrusted.sortedBy { it.pkgName }
|
||||
val availableSorted = available
|
||||
// Filter out already installed extensions and disabled languages
|
||||
.filter { avail ->
|
||||
installed.none { it.pkgName == avail.pkgName } &&
|
||||
untrusted.none { it.pkgName == avail.pkgName } &&
|
||||
(avail.lang in activeLangs || avail.lang == "all")
|
||||
(avail.lang in activeLangs || avail.lang == "all") &&
|
||||
(showNsfwExtensions || !avail.isNsfw)
|
||||
}
|
||||
.sortedBy { it.pkgName }
|
||||
|
||||
|
@ -34,8 +34,8 @@ import eu.kanade.tachiyomi.source.CatalogueSource
|
||||
import eu.kanade.tachiyomi.source.ConfigurableSource
|
||||
import eu.kanade.tachiyomi.source.Source
|
||||
import eu.kanade.tachiyomi.source.getPreferenceKey
|
||||
import eu.kanade.tachiyomi.ui.base.controller.NoToolbarElevationController
|
||||
import eu.kanade.tachiyomi.ui.base.controller.NucleusController
|
||||
import eu.kanade.tachiyomi.ui.base.controller.ToolbarLiftOnScrollController
|
||||
import eu.kanade.tachiyomi.ui.base.controller.withFadeTransaction
|
||||
import eu.kanade.tachiyomi.util.preference.DSL
|
||||
import eu.kanade.tachiyomi.util.preference.onChange
|
||||
@ -50,7 +50,7 @@ import uy.kohesive.injekt.injectLazy
|
||||
@SuppressLint("RestrictedApi")
|
||||
class ExtensionDetailsController(bundle: Bundle? = null) :
|
||||
NucleusController<ExtensionDetailControllerBinding, ExtensionDetailsPresenter>(bundle),
|
||||
NoToolbarElevationController {
|
||||
ToolbarLiftOnScrollController {
|
||||
|
||||
private val preferences: PreferencesHelper by injectLazy()
|
||||
|
||||
|
1
app/src/main/java/eu/kanade/tachiyomi/ui/browse/extension/details/ExtensionDetailsHeaderAdapter.kt
1
app/src/main/java/eu/kanade/tachiyomi/ui/browse/extension/details/ExtensionDetailsHeaderAdapter.kt
@ -42,6 +42,7 @@ class ExtensionDetailsHeaderAdapter(private val presenter: ExtensionDetailsPrese
|
||||
binding.extensionTitle.text = extension.name
|
||||
binding.extensionVersion.text = context.getString(R.string.ext_version_info, extension.versionName)
|
||||
binding.extensionLang.text = context.getString(R.string.ext_language_info, LocaleHelper.getSourceDisplayName(extension.lang, context))
|
||||
binding.extensionNsfw.isVisible = extension.isNsfw
|
||||
binding.extensionPkg.text = extension.pkgName
|
||||
|
||||
binding.extensionUninstallButton.clicks()
|
||||
|
@ -149,7 +149,7 @@ class SourceController :
|
||||
)
|
||||
}
|
||||
|
||||
SourceOptionsDialog(item, items).showDialog(router)
|
||||
SourceOptionsDialog(item.source.toString(), items).showDialog(router)
|
||||
}
|
||||
|
||||
private fun disableSource(source: Source) {
|
||||
@ -270,17 +270,17 @@ class SourceController :
|
||||
|
||||
class SourceOptionsDialog(bundle: Bundle? = null) : DialogController(bundle) {
|
||||
|
||||
private lateinit var item: SourceItem
|
||||
private lateinit var source: String
|
||||
private lateinit var items: List<Pair<String, () -> Unit>>
|
||||
|
||||
constructor(item: SourceItem, items: List<Pair<String, () -> Unit>>) : this() {
|
||||
this.item = item
|
||||
constructor(source: String, items: List<Pair<String, () -> Unit>>) : this() {
|
||||
this.source = source
|
||||
this.items = items
|
||||
}
|
||||
|
||||
override fun onCreateDialog(savedViewState: Bundle?): Dialog {
|
||||
return MaterialDialog(activity!!)
|
||||
.title(text = item.source.toString())
|
||||
.title(text = source)
|
||||
.listItems(
|
||||
items = items.map { it.first },
|
||||
waitForPositiveButton = false
|
||||
|
@ -46,6 +46,7 @@ import eu.kanade.tachiyomi.util.view.shrinkOnScroll
|
||||
import eu.kanade.tachiyomi.util.view.snack
|
||||
import eu.kanade.tachiyomi.widget.AutofitRecyclerView
|
||||
import eu.kanade.tachiyomi.widget.EmptyView
|
||||
import kotlinx.android.synthetic.main.main_activity.root_coordinator
|
||||
import kotlinx.coroutines.Job
|
||||
import kotlinx.coroutines.flow.drop
|
||||
import kotlinx.coroutines.flow.filter
|
||||
@ -403,7 +404,7 @@ open class BrowseSourceController(bundle: Bundle) :
|
||||
|
||||
binding.emptyView.show(message, actions)
|
||||
} else {
|
||||
snack = binding.catalogueView.snack(message, Snackbar.LENGTH_INDEFINITE) {
|
||||
snack = activity!!.root_coordinator?.snack(message, Snackbar.LENGTH_INDEFINITE) {
|
||||
setAction(R.string.action_retry, retryAction)
|
||||
}
|
||||
}
|
||||
|
@ -108,7 +108,7 @@ open class GlobalSearchPresenter(
|
||||
return sourceManager.getCatalogueSources()
|
||||
.filter { it.lang in languages }
|
||||
.filterNot { it.id.toString() in disabledSourceIds }
|
||||
.sortedWith(compareBy({ it.id.toString() !in pinnedSourceIds }, { "(${it.lang}) ${it.name}" }))
|
||||
.sortedWith(compareBy({ it.id.toString() !in pinnedSourceIds }, { "${it.name} (${it.lang})" }))
|
||||
}
|
||||
|
||||
private fun getSourcesToQuery(): List<CatalogueSource> {
|
||||
@ -161,6 +161,8 @@ open class GlobalSearchPresenter(
|
||||
val initialItems = sources.map { createCatalogueSearchItem(it, null) }
|
||||
var items = initialItems
|
||||
|
||||
val pinnedSourceIds = preferences.pinnedSources().get()
|
||||
|
||||
fetchSourcesSubscription?.unsubscribe()
|
||||
fetchSourcesSubscription = Observable.from(sources)
|
||||
.flatMap(
|
||||
@ -178,7 +180,17 @@ open class GlobalSearchPresenter(
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
// Update matching source with the obtained results
|
||||
.map { result ->
|
||||
items.map { item -> if (item.source == result.source) result else item }
|
||||
items
|
||||
.map { item -> if (item.source == result.source) result else item }
|
||||
.sortedWith(
|
||||
compareBy(
|
||||
// Bubble up sources that actually have results
|
||||
{ it.results.isNullOrEmpty() },
|
||||
// Same as initial sort, i.e. pinned first then alphabetically
|
||||
{ it.source.id.toString() !in pinnedSourceIds },
|
||||
{ "${it.source.name} (${it.source.lang})" }
|
||||
)
|
||||
)
|
||||
}
|
||||
// Update current state
|
||||
.doOnNext { items = it }
|
||||
|
@ -472,6 +472,8 @@ class LibraryController(
|
||||
when (item.itemId) {
|
||||
R.id.action_move_to_category -> showChangeMangaCategoriesDialog()
|
||||
R.id.action_download_unread -> downloadUnreadChapters()
|
||||
R.id.action_mark_as_read -> markReadStatus(true)
|
||||
R.id.action_mark_as_unread -> markReadStatus(false)
|
||||
R.id.action_delete -> showDeleteMangaDialog()
|
||||
R.id.action_select_all -> selectAllCategoryManga()
|
||||
R.id.action_select_inverse -> selectInverseCategoryManga()
|
||||
@ -554,6 +556,12 @@ class LibraryController(
|
||||
destroyActionModeIfNeeded()
|
||||
}
|
||||
|
||||
private fun markReadStatus(read: Boolean) {
|
||||
val mangas = selectedMangas.toList()
|
||||
presenter.markReadStatus(mangas, read)
|
||||
destroyActionModeIfNeeded()
|
||||
}
|
||||
|
||||
private fun showDeleteMangaDialog() {
|
||||
DeleteLibraryMangasDialog(this, selectedMangas.toList()).showDialog(router)
|
||||
}
|
||||
|
@ -5,6 +5,7 @@ import com.jakewharton.rxrelay.BehaviorRelay
|
||||
import eu.kanade.tachiyomi.data.cache.CoverCache
|
||||
import eu.kanade.tachiyomi.data.database.DatabaseHelper
|
||||
import eu.kanade.tachiyomi.data.database.models.Category
|
||||
import eu.kanade.tachiyomi.data.database.models.Chapter
|
||||
import eu.kanade.tachiyomi.data.database.models.Manga
|
||||
import eu.kanade.tachiyomi.data.database.models.MangaCategory
|
||||
import eu.kanade.tachiyomi.data.download.DownloadManager
|
||||
@ -326,6 +327,36 @@ class LibraryPresenter(
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Marks mangas' chapters read status.
|
||||
*
|
||||
* @param mangas the list of manga.
|
||||
*/
|
||||
fun markReadStatus(mangas: List<Manga>, read: Boolean) {
|
||||
mangas.forEach { manga ->
|
||||
launchIO {
|
||||
val chapters = db.getChapters(manga).executeAsBlocking()
|
||||
chapters.forEach {
|
||||
it.read = read
|
||||
if (!read) {
|
||||
it.last_page_read = 0
|
||||
}
|
||||
}
|
||||
db.updateChaptersProgress(chapters).executeAsBlocking()
|
||||
|
||||
if (preferences.removeAfterMarkedAsRead()) {
|
||||
deleteChapters(manga, chapters)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun deleteChapters(manga: Manga, chapters: List<Chapter>) {
|
||||
sourceManager.get(manga.source)?.let { source ->
|
||||
downloadManager.deleteChapters(chapters, manga, source)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the selected manga from the library.
|
||||
*
|
||||
|
@ -4,14 +4,12 @@ import android.app.Activity
|
||||
import android.app.SearchManager
|
||||
import android.content.Intent
|
||||
import android.os.Bundle
|
||||
import android.view.Gravity
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.Toast
|
||||
import androidx.coordinatorlayout.widget.CoordinatorLayout
|
||||
import androidx.core.net.toUri
|
||||
import androidx.core.view.isVisible
|
||||
import androidx.core.view.updateLayoutParams
|
||||
import androidx.preference.PreferenceDialogController
|
||||
import com.bluelinelabs.conductor.Conductor
|
||||
import com.bluelinelabs.conductor.Controller
|
||||
import com.bluelinelabs.conductor.ControllerChangeHandler
|
||||
@ -19,12 +17,12 @@ import com.bluelinelabs.conductor.Router
|
||||
import com.bluelinelabs.conductor.RouterTransaction
|
||||
import com.google.android.material.appbar.AppBarLayout
|
||||
import com.google.android.material.behavior.HideBottomViewOnScrollBehavior
|
||||
import com.google.android.material.snackbar.Snackbar
|
||||
import com.google.android.material.tabs.TabLayout
|
||||
import eu.kanade.tachiyomi.BuildConfig
|
||||
import eu.kanade.tachiyomi.Migrations
|
||||
import eu.kanade.tachiyomi.R
|
||||
import eu.kanade.tachiyomi.data.notification.NotificationReceiver
|
||||
import eu.kanade.tachiyomi.data.preference.asImmediateFlow
|
||||
import eu.kanade.tachiyomi.databinding.MainActivityBinding
|
||||
import eu.kanade.tachiyomi.extension.api.ExtensionGithubApi
|
||||
import eu.kanade.tachiyomi.ui.base.activity.BaseActivity
|
||||
@ -33,6 +31,7 @@ import eu.kanade.tachiyomi.ui.base.controller.FabController
|
||||
import eu.kanade.tachiyomi.ui.base.controller.NoToolbarElevationController
|
||||
import eu.kanade.tachiyomi.ui.base.controller.RootController
|
||||
import eu.kanade.tachiyomi.ui.base.controller.TabbedController
|
||||
import eu.kanade.tachiyomi.ui.base.controller.ToolbarLiftOnScrollController
|
||||
import eu.kanade.tachiyomi.ui.base.controller.withFadeTransaction
|
||||
import eu.kanade.tachiyomi.ui.browse.BrowseController
|
||||
import eu.kanade.tachiyomi.ui.browse.source.globalsearch.GlobalSearchController
|
||||
@ -45,14 +44,12 @@ import eu.kanade.tachiyomi.ui.recent.updates.UpdatesController
|
||||
import eu.kanade.tachiyomi.util.lang.launchIO
|
||||
import eu.kanade.tachiyomi.util.lang.launchUI
|
||||
import eu.kanade.tachiyomi.util.system.toast
|
||||
import eu.kanade.tachiyomi.util.view.snack
|
||||
import java.util.Date
|
||||
import java.util.concurrent.TimeUnit
|
||||
import kotlinx.android.synthetic.main.main_activity.appbar
|
||||
import kotlinx.android.synthetic.main.main_activity.tabs
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.flow.launchIn
|
||||
import kotlinx.coroutines.flow.onEach
|
||||
import timber.log.Timber
|
||||
|
||||
class MainActivity : BaseActivity<MainActivityBinding>() {
|
||||
@ -155,13 +152,12 @@ class MainActivity : BaseActivity<MainActivityBinding>() {
|
||||
if (savedInstanceState == null) {
|
||||
// Show changelog prompt on update
|
||||
if (Migrations.upgrade(preferences) && !BuildConfig.DEBUG) {
|
||||
showUpdateInfoSnackbar()
|
||||
WhatsNewDialogController().showDialog(router)
|
||||
}
|
||||
}
|
||||
|
||||
setExtensionsBadge()
|
||||
preferences.extensionUpdatesCount().asFlow()
|
||||
.onEach { setExtensionsBadge() }
|
||||
preferences.extensionUpdatesCount()
|
||||
.asImmediateFlow { setExtensionsBadge() }
|
||||
.launchIn(scope)
|
||||
}
|
||||
|
||||
@ -323,6 +319,9 @@ class MainActivity : BaseActivity<MainActivityBinding>() {
|
||||
if (from is DialogController || to is DialogController) {
|
||||
return
|
||||
}
|
||||
if (from is PreferenceDialogController || to is PreferenceDialogController) {
|
||||
return
|
||||
}
|
||||
|
||||
supportActionBar?.setDisplayHomeAsUpEnabled(router.backstackSize != 1)
|
||||
|
||||
@ -357,10 +356,16 @@ class MainActivity : BaseActivity<MainActivityBinding>() {
|
||||
to.configureFab(binding.rootFab)
|
||||
}
|
||||
|
||||
if (to is NoToolbarElevationController) {
|
||||
when (to) {
|
||||
is NoToolbarElevationController -> {
|
||||
binding.appbar.disableElevation()
|
||||
} else {
|
||||
binding.appbar.enableElevation()
|
||||
}
|
||||
is ToolbarLiftOnScrollController -> {
|
||||
binding.appbar.enableElevation(true)
|
||||
}
|
||||
else -> {
|
||||
binding.appbar.enableElevation(false)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -382,32 +387,6 @@ class MainActivity : BaseActivity<MainActivityBinding>() {
|
||||
}
|
||||
}
|
||||
|
||||
private fun showUpdateInfoSnackbar() {
|
||||
val snack = binding.rootCoordinator.snack(
|
||||
getString(R.string.updated_version, BuildConfig.VERSION_NAME),
|
||||
Snackbar.LENGTH_INDEFINITE
|
||||
) {
|
||||
setAction(R.string.whats_new) {
|
||||
val url = "https://github.com/inorichi/tachiyomi/releases/tag/v${BuildConfig.VERSION_NAME}"
|
||||
val intent = Intent(Intent.ACTION_VIEW, url.toUri())
|
||||
startActivity(intent)
|
||||
}
|
||||
|
||||
// Ensure the snackbar sits above the bottom nav
|
||||
view.updateLayoutParams<CoordinatorLayout.LayoutParams> {
|
||||
anchorId = binding.bottomNav.id
|
||||
anchorGravity = Gravity.TOP
|
||||
gravity = Gravity.TOP
|
||||
}
|
||||
}
|
||||
|
||||
// Manually handle dismiss delay since Snackbar.LENGTH_LONG is a too short
|
||||
launchIO {
|
||||
delay(10000)
|
||||
snack.dismiss()
|
||||
}
|
||||
}
|
||||
|
||||
companion object {
|
||||
// Shortcut actions
|
||||
const val SHORTCUT_LIBRARY = "eu.kanade.tachiyomi.SHOW_LIBRARY"
|
||||
|
@ -0,0 +1,24 @@
|
||||
package eu.kanade.tachiyomi.ui.main
|
||||
|
||||
import android.app.Dialog
|
||||
import android.content.Intent
|
||||
import android.os.Bundle
|
||||
import androidx.core.net.toUri
|
||||
import com.afollestad.materialdialogs.MaterialDialog
|
||||
import eu.kanade.tachiyomi.BuildConfig
|
||||
import eu.kanade.tachiyomi.R
|
||||
import eu.kanade.tachiyomi.ui.base.controller.DialogController
|
||||
|
||||
class WhatsNewDialogController(bundle: Bundle? = null) : DialogController(bundle) {
|
||||
|
||||
override fun onCreateDialog(savedViewState: Bundle?): Dialog {
|
||||
return MaterialDialog(activity!!)
|
||||
.title(text = activity!!.getString(R.string.updated_version, BuildConfig.VERSION_NAME))
|
||||
.positiveButton(android.R.string.ok)
|
||||
.neutralButton(R.string.whats_new) {
|
||||
val url = "https://github.com/inorichi/tachiyomi/releases/tag/v${BuildConfig.VERSION_NAME}"
|
||||
val intent = Intent(Intent.ACTION_VIEW, url.toUri())
|
||||
startActivity(intent)
|
||||
}
|
||||
}
|
||||
}
|
@ -14,6 +14,9 @@ import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.appcompat.view.ActionMode
|
||||
import androidx.core.graphics.blue
|
||||
import androidx.core.graphics.green
|
||||
import androidx.core.graphics.red
|
||||
import androidx.core.view.isVisible
|
||||
import androidx.recyclerview.widget.ConcatAdapter
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
@ -39,6 +42,7 @@ import eu.kanade.tachiyomi.source.SourceManager
|
||||
import eu.kanade.tachiyomi.source.online.HttpSource
|
||||
import eu.kanade.tachiyomi.ui.base.controller.FabController
|
||||
import eu.kanade.tachiyomi.ui.base.controller.NucleusController
|
||||
import eu.kanade.tachiyomi.ui.base.controller.ToolbarLiftOnScrollController
|
||||
import eu.kanade.tachiyomi.ui.base.controller.withFadeTransaction
|
||||
import eu.kanade.tachiyomi.ui.browse.migration.search.SearchController
|
||||
import eu.kanade.tachiyomi.ui.browse.source.browse.BrowseSourceController
|
||||
@ -82,6 +86,7 @@ import uy.kohesive.injekt.injectLazy
|
||||
|
||||
class MangaController :
|
||||
NucleusController<MangaControllerBinding, MangaPresenter>,
|
||||
ToolbarLiftOnScrollController,
|
||||
FabController,
|
||||
ActionMode.Callback,
|
||||
FlexibleAdapter.OnItemClickListener,
|
||||
@ -122,20 +127,20 @@ class MangaController :
|
||||
private val coverCache: CoverCache by injectLazy()
|
||||
|
||||
private val toolbarTextColor by lazy { view!!.context.getResourceColor(R.attr.colorOnPrimary) }
|
||||
private var toolbarTextAlpha = 255
|
||||
|
||||
private var mangaInfoAdapter: MangaInfoHeaderAdapter? = null
|
||||
private var chaptersHeaderAdapter: MangaChaptersHeaderAdapter? = null
|
||||
private var chaptersAdapter: ChaptersAdapter? = null
|
||||
|
||||
/**
|
||||
* Sheet containing filter/sort/display items.
|
||||
*/
|
||||
// Sheet containing filter/sort/display items.
|
||||
private var settingsSheet: ChaptersSettingsSheet? = null
|
||||
|
||||
private var actionFab: ExtendedFloatingActionButton? = null
|
||||
private var actionFabScrollListener: RecyclerView.OnScrollListener? = null
|
||||
|
||||
// Snackbar to add manga to library after downloading chapter(s)
|
||||
private var addSnackbar: Snackbar? = null
|
||||
|
||||
/**
|
||||
* Action mode for multiple selection.
|
||||
*/
|
||||
@ -157,6 +162,19 @@ class MangaController :
|
||||
setHasOptionsMenu(true)
|
||||
}
|
||||
|
||||
override fun getTitle(): String? {
|
||||
return manga?.title
|
||||
}
|
||||
|
||||
override fun onChangeStarted(handler: ControllerChangeHandler, type: ControllerChangeType) {
|
||||
super.onChangeStarted(handler, type)
|
||||
|
||||
// Hide toolbar title on enter
|
||||
if (type.isEnter) {
|
||||
updateToolbarTitleAlpha()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onChangeEnded(handler: ControllerChangeHandler, type: ControllerChangeType) {
|
||||
super.onChangeEnded(handler, type)
|
||||
if (manga == null || source == null) {
|
||||
@ -204,7 +222,6 @@ class MangaController :
|
||||
// Delayed in case we need to jump to chapters
|
||||
binding.recycler.post {
|
||||
updateToolbarTitleAlpha()
|
||||
setTitle(manga?.title)
|
||||
}
|
||||
}
|
||||
|
||||
@ -243,19 +260,15 @@ class MangaController :
|
||||
else -> min(binding.recycler.computeVerticalScrollOffset(), 255)
|
||||
}
|
||||
|
||||
if (calculatedAlpha != toolbarTextAlpha) {
|
||||
toolbarTextAlpha = calculatedAlpha
|
||||
|
||||
activity?.toolbar?.setTitleTextColor(
|
||||
Color.argb(
|
||||
toolbarTextAlpha,
|
||||
Color.red(toolbarTextColor),
|
||||
Color.green(toolbarTextColor),
|
||||
Color.blue(toolbarTextColor)
|
||||
calculatedAlpha,
|
||||
toolbarTextColor.red,
|
||||
toolbarTextColor.green,
|
||||
toolbarTextColor.blue
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
private fun updateFilterIconState() {
|
||||
chaptersHeaderAdapter?.setHasActiveFilters(settingsSheet?.filters?.hasActiveFilters() == true)
|
||||
@ -306,6 +319,7 @@ class MangaController :
|
||||
chaptersHeaderAdapter = null
|
||||
chaptersAdapter = null
|
||||
settingsSheet = null
|
||||
addSnackbar?.dismiss()
|
||||
updateToolbarTitleAlpha(255)
|
||||
super.onDestroyView(view)
|
||||
}
|
||||
@ -881,7 +895,7 @@ class MangaController :
|
||||
val manga = presenter.manga
|
||||
presenter.downloadChapters(chapters)
|
||||
if (view != null && !manga.favorite) {
|
||||
binding.recycler.snack(view.context.getString(R.string.snack_add_to_library), Snackbar.LENGTH_INDEFINITE) {
|
||||
addSnackbar = activity!!.root_coordinator?.snack(view.context.getString(R.string.snack_add_to_library), Snackbar.LENGTH_INDEFINITE) {
|
||||
setAction(R.string.action_add) {
|
||||
addToLibrary(manga)
|
||||
}
|
||||
|
@ -494,8 +494,14 @@ class MangaPresenter(
|
||||
* @param chapters the chapters to delete.
|
||||
*/
|
||||
private fun deleteChaptersInternal(chapters: List<ChapterItem>) {
|
||||
downloadManager.deleteChapters(chapters, manga, source)
|
||||
chapters.forEach {
|
||||
val filteredChapters = if (!preferences.removeBookmarkedChapters()) {
|
||||
chapters.filterNot { it.bookmark }
|
||||
} else {
|
||||
chapters
|
||||
}
|
||||
|
||||
downloadManager.deleteChapters(filteredChapters, manga, source)
|
||||
filteredChapters.forEach {
|
||||
it.status = Download.NOT_DOWNLOADED
|
||||
it.download = null
|
||||
}
|
||||
|
@ -80,29 +80,38 @@ abstract class PagerViewer(val activity: ReaderActivity) : BaseViewer {
|
||||
isIdle = state == ViewPager.SCROLL_STATE_IDLE
|
||||
}
|
||||
})
|
||||
pager.tapListener = { event ->
|
||||
pager.tapListener = f@{ event ->
|
||||
if (!config.tappingEnabled) {
|
||||
activity.toggleMenu()
|
||||
return@f
|
||||
}
|
||||
|
||||
val positionX = event.x
|
||||
val positionY = event.y
|
||||
val topSideTap = positionY < pager.height * 0.25f
|
||||
val bottomSideTap = positionY > pager.height * 0.75f
|
||||
val leftSideTap = positionX < pager.width * 0.33f
|
||||
val rightSideTap = positionX > pager.width * 0.66f
|
||||
|
||||
val invertMode = config.tappingInverted
|
||||
val invertVertical = invertMode == TappingInvertMode.VERTICAL || invertMode == TappingInvertMode.BOTH
|
||||
val invertHorizontal = invertMode == TappingInvertMode.HORIZONTAL || invertMode == TappingInvertMode.BOTH
|
||||
|
||||
if (this is VerticalPagerViewer) {
|
||||
val positionY = event.y
|
||||
val tappingInverted = invertMode == TappingInvertMode.VERTICAL || invertMode == TappingInvertMode.BOTH
|
||||
val topSideTap = positionY < pager.height * 0.33f && config.tappingEnabled
|
||||
val bottomSideTap = positionY > pager.height * 0.66f && config.tappingEnabled
|
||||
|
||||
when {
|
||||
topSideTap && !tappingInverted || bottomSideTap && tappingInverted -> moveLeft()
|
||||
bottomSideTap && !tappingInverted || topSideTap && tappingInverted -> moveRight()
|
||||
topSideTap && !invertVertical || bottomSideTap && invertVertical -> moveLeft()
|
||||
bottomSideTap && !invertVertical || topSideTap && invertVertical -> moveRight()
|
||||
|
||||
leftSideTap && !invertHorizontal || rightSideTap && invertHorizontal -> moveLeft()
|
||||
rightSideTap && !invertHorizontal || leftSideTap && invertHorizontal -> moveRight()
|
||||
|
||||
else -> activity.toggleMenu()
|
||||
}
|
||||
} else {
|
||||
val positionX = event.x
|
||||
val tappingInverted = invertMode == TappingInvertMode.HORIZONTAL || invertMode == TappingInvertMode.BOTH
|
||||
val leftSideTap = positionX < pager.width * 0.33f && config.tappingEnabled
|
||||
val rightSideTap = positionX > pager.width * 0.66f && config.tappingEnabled
|
||||
|
||||
when {
|
||||
leftSideTap && !tappingInverted || rightSideTap && tappingInverted -> moveLeft()
|
||||
rightSideTap && !tappingInverted || leftSideTap && tappingInverted -> moveRight()
|
||||
leftSideTap && !invertHorizontal || rightSideTap && invertHorizontal -> moveLeft()
|
||||
rightSideTap && !invertHorizontal || leftSideTap && invertHorizontal -> moveRight()
|
||||
|
||||
else -> activity.toggleMenu()
|
||||
}
|
||||
}
|
||||
|
@ -93,17 +93,30 @@ class WebtoonViewer(val activity: ReaderActivity, val isContinuous: Boolean = tr
|
||||
}
|
||||
}
|
||||
})
|
||||
recycler.tapListener = { event ->
|
||||
val positionY = event.rawY
|
||||
val invertMode = config.tappingInverted
|
||||
val topSideTap = positionY < recycler.height * 0.33f && config.tappingEnabled
|
||||
val bottomSideTap = positionY > recycler.height * 0.66f && config.tappingEnabled
|
||||
recycler.tapListener = f@{ event ->
|
||||
if (!config.tappingEnabled) {
|
||||
activity.toggleMenu()
|
||||
return@f
|
||||
}
|
||||
|
||||
val tappingInverted = invertMode == TappingInvertMode.VERTICAL || invertMode == TappingInvertMode.BOTH
|
||||
val positionX = event.rawX
|
||||
val positionY = event.rawY
|
||||
val topSideTap = positionY < recycler.height * 0.25f
|
||||
val bottomSideTap = positionY > recycler.height * 0.75f
|
||||
val leftSideTap = positionX < recycler.width * 0.33f
|
||||
val rightSideTap = positionX > recycler.width * 0.66f
|
||||
|
||||
val invertMode = config.tappingInverted
|
||||
val invertVertical = invertMode == TappingInvertMode.VERTICAL || invertMode == TappingInvertMode.BOTH
|
||||
val invertHorizontal = invertMode == TappingInvertMode.HORIZONTAL || invertMode == TappingInvertMode.BOTH
|
||||
|
||||
when {
|
||||
topSideTap && !tappingInverted || bottomSideTap && tappingInverted -> scrollUp()
|
||||
bottomSideTap && !tappingInverted || topSideTap && tappingInverted -> scrollDown()
|
||||
topSideTap && !invertVertical || bottomSideTap && invertVertical -> scrollUp()
|
||||
bottomSideTap && !invertVertical || topSideTap && invertVertical -> scrollDown()
|
||||
|
||||
leftSideTap && !invertHorizontal || rightSideTap && invertHorizontal -> scrollUp()
|
||||
rightSideTap && !invertHorizontal || leftSideTap && invertHorizontal -> scrollDown()
|
||||
|
||||
else -> activity.toggleMenu()
|
||||
}
|
||||
}
|
||||
|
@ -21,7 +21,6 @@ import eu.kanade.tachiyomi.data.backup.BackupRestoreValidator
|
||||
import eu.kanade.tachiyomi.data.backup.models.Backup
|
||||
import eu.kanade.tachiyomi.data.preference.PreferenceKeys as Keys
|
||||
import eu.kanade.tachiyomi.data.preference.asImmediateFlow
|
||||
import eu.kanade.tachiyomi.source.SourceManager
|
||||
import eu.kanade.tachiyomi.ui.base.controller.DialogController
|
||||
import eu.kanade.tachiyomi.ui.base.controller.requestPermissionsSafe
|
||||
import eu.kanade.tachiyomi.util.preference.defaultValue
|
||||
@ -37,8 +36,6 @@ import eu.kanade.tachiyomi.util.system.getFilePicker
|
||||
import eu.kanade.tachiyomi.util.system.toast
|
||||
import kotlinx.coroutines.flow.launchIn
|
||||
import kotlinx.coroutines.flow.onEach
|
||||
import uy.kohesive.injekt.Injekt
|
||||
import uy.kohesive.injekt.api.get
|
||||
|
||||
class SettingsBackupController : SettingsController() {
|
||||
|
||||
@ -258,16 +255,12 @@ class SettingsBackupController : SettingsController() {
|
||||
return try {
|
||||
var message = activity.getString(R.string.backup_restore_content)
|
||||
|
||||
val sources = BackupRestoreValidator.validate(activity, uri)
|
||||
if (sources.isNotEmpty()) {
|
||||
val sourceManager = Injekt.get<SourceManager>()
|
||||
val missingSources = sources
|
||||
.filter { sourceManager.get(it.key) == null }
|
||||
.values
|
||||
.sorted()
|
||||
if (missingSources.isNotEmpty()) {
|
||||
message += "\n\n${activity.getString(R.string.backup_restore_missing_sources)}\n${missingSources.joinToString("\n") { "- $it" }}"
|
||||
val results = BackupRestoreValidator.validate(activity, uri)
|
||||
if (results.missingSources.isNotEmpty()) {
|
||||
message += "\n\n${activity.getString(R.string.backup_restore_missing_sources)}\n${results.missingSources.joinToString("\n") { "- $it" }}"
|
||||
}
|
||||
if (results.missingTrackers.isNotEmpty()) {
|
||||
message += "\n\n${activity.getString(R.string.backup_restore_missing_trackers)}\n${results.missingTrackers.joinToString("\n") { "- $it" }}"
|
||||
}
|
||||
|
||||
MaterialDialog(activity)
|
||||
|
@ -65,7 +65,7 @@ class SettingsDownloadController : SettingsController() {
|
||||
defaultValue = true
|
||||
}
|
||||
preferenceCategory {
|
||||
titleRes = R.string.pref_remove_after_read
|
||||
titleRes = R.string.pref_category_delete_chapters
|
||||
|
||||
switchPreference {
|
||||
key = Keys.removeAfterMarkedAsRead
|
||||
@ -84,6 +84,11 @@ class SettingsDownloadController : SettingsController() {
|
||||
defaultValue = "-1"
|
||||
summary = "%s"
|
||||
}
|
||||
switchPreference {
|
||||
key = Keys.removeBookmarkedChapters
|
||||
titleRes = R.string.pref_remove_bookmarked_chapters
|
||||
defaultValue = false
|
||||
}
|
||||
}
|
||||
|
||||
val dbCategories = db.getCategories().executeAsBlocking()
|
||||
|
@ -204,7 +204,6 @@ class SettingsGeneralController : SettingsController() {
|
||||
"sr",
|
||||
"sv",
|
||||
"th",
|
||||
"tl",
|
||||
"tr",
|
||||
"uk",
|
||||
"ur-rPK",
|
||||
|
@ -65,6 +65,12 @@ class SettingsMainController : SettingsController() {
|
||||
titleRes = R.string.pref_category_security
|
||||
onClick { navigateTo(SettingsSecurityController()) }
|
||||
}
|
||||
// preference {
|
||||
// iconRes = R.drawable.ic_outline_people_alt_24dp
|
||||
// iconTint = tintColor
|
||||
// titleRes = R.string.pref_category_parental_controls
|
||||
// onClick { navigateTo(SettingsParentalControlsController()) }
|
||||
// }
|
||||
preference {
|
||||
iconRes = R.drawable.ic_code_24dp
|
||||
iconTint = tintColor
|
||||
|
40
app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsParentalControlsController.kt
Normal file
40
app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsParentalControlsController.kt
Normal file
@ -0,0 +1,40 @@
|
||||
package eu.kanade.tachiyomi.ui.setting
|
||||
|
||||
import androidx.preference.PreferenceScreen
|
||||
import eu.kanade.tachiyomi.R
|
||||
import eu.kanade.tachiyomi.data.preference.PreferenceKeys as Keys
|
||||
import eu.kanade.tachiyomi.data.preference.PreferenceValues as Values
|
||||
import eu.kanade.tachiyomi.util.preference.defaultValue
|
||||
import eu.kanade.tachiyomi.util.preference.entriesRes
|
||||
import eu.kanade.tachiyomi.util.preference.infoPreference
|
||||
import eu.kanade.tachiyomi.util.preference.listPreference
|
||||
import eu.kanade.tachiyomi.util.preference.preferenceCategory
|
||||
import eu.kanade.tachiyomi.util.preference.titleRes
|
||||
|
||||
class SettingsParentalControlsController : SettingsController() {
|
||||
|
||||
override fun setupPreferenceScreen(screen: PreferenceScreen) = with(screen) {
|
||||
titleRes = R.string.pref_category_parental_controls
|
||||
|
||||
listPreference {
|
||||
key = Keys.allowNsfwSource
|
||||
titleRes = R.string.pref_allow_nsfw_sources
|
||||
entriesRes = arrayOf(
|
||||
R.string.pref_allow_nsfw_sources_allowed,
|
||||
R.string.pref_allow_nsfw_sources_allowed_multisource,
|
||||
R.string.pref_allow_nsfw_sources_blocked
|
||||
)
|
||||
entryValues = arrayOf(
|
||||
Values.NsfwAllowance.ALLOWED.name,
|
||||
Values.NsfwAllowance.PARTIAL.name,
|
||||
Values.NsfwAllowance.BLOCKED.name
|
||||
)
|
||||
defaultValue = Values.NsfwAllowance.ALLOWED.name
|
||||
summary = "%s"
|
||||
}
|
||||
|
||||
preferenceCategory {
|
||||
infoPreference(R.string.parental_controls_info)
|
||||
}
|
||||
}
|
||||
}
|
@ -11,6 +11,8 @@ import eu.kanade.tachiyomi.data.track.TrackService
|
||||
import eu.kanade.tachiyomi.data.track.anilist.AnilistApi
|
||||
import eu.kanade.tachiyomi.data.track.bangumi.BangumiApi
|
||||
import eu.kanade.tachiyomi.data.track.shikimori.ShikimoriApi
|
||||
import eu.kanade.tachiyomi.ui.setting.track.TrackLoginDialog
|
||||
import eu.kanade.tachiyomi.ui.setting.track.TrackLogoutDialog
|
||||
import eu.kanade.tachiyomi.util.preference.defaultValue
|
||||
import eu.kanade.tachiyomi.util.preference.infoPreference
|
||||
import eu.kanade.tachiyomi.util.preference.initThenAdd
|
||||
@ -20,8 +22,6 @@ import eu.kanade.tachiyomi.util.preference.switchPreference
|
||||
import eu.kanade.tachiyomi.util.preference.titleRes
|
||||
import eu.kanade.tachiyomi.util.system.getResourceColor
|
||||
import eu.kanade.tachiyomi.widget.preference.LoginPreference
|
||||
import eu.kanade.tachiyomi.widget.preference.TrackLoginDialog
|
||||
import eu.kanade.tachiyomi.widget.preference.TrackLogoutDialog
|
||||
import uy.kohesive.injekt.injectLazy
|
||||
|
||||
class SettingsTrackingController :
|
||||
|
@ -1,4 +1,4 @@
|
||||
package eu.kanade.tachiyomi.widget.preference
|
||||
package eu.kanade.tachiyomi.ui.setting.track
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
@ -7,6 +7,7 @@ import eu.kanade.tachiyomi.R
|
||||
import eu.kanade.tachiyomi.data.track.TrackManager
|
||||
import eu.kanade.tachiyomi.data.track.TrackService
|
||||
import eu.kanade.tachiyomi.util.system.toast
|
||||
import eu.kanade.tachiyomi.widget.preference.LoginDialogPreference
|
||||
import kotlinx.android.synthetic.main.pref_account_login.view.login
|
||||
import kotlinx.android.synthetic.main.pref_account_login.view.password
|
||||
import kotlinx.android.synthetic.main.pref_account_login.view.username
|
@ -1,4 +1,4 @@
|
||||
package eu.kanade.tachiyomi.widget.preference
|
||||
package eu.kanade.tachiyomi.ui.setting.track
|
||||
|
||||
import android.app.Dialog
|
||||
import android.os.Bundle
|
@ -9,19 +9,18 @@ import android.os.Bundle
|
||||
import android.view.Menu
|
||||
import android.view.MenuItem
|
||||
import android.webkit.WebChromeClient
|
||||
import android.webkit.WebResourceRequest
|
||||
import android.webkit.WebView
|
||||
import android.widget.Toast
|
||||
import androidx.core.graphics.ColorUtils
|
||||
import androidx.core.view.isInvisible
|
||||
import androidx.core.view.isVisible
|
||||
import androidx.webkit.WebViewClientCompat
|
||||
import eu.kanade.tachiyomi.BuildConfig
|
||||
import eu.kanade.tachiyomi.R
|
||||
import eu.kanade.tachiyomi.databinding.WebviewActivityBinding
|
||||
import eu.kanade.tachiyomi.source.SourceManager
|
||||
import eu.kanade.tachiyomi.source.online.HttpSource
|
||||
import eu.kanade.tachiyomi.ui.base.activity.BaseActivity
|
||||
import eu.kanade.tachiyomi.util.system.WebViewClientCompat
|
||||
import eu.kanade.tachiyomi.util.system.WebViewUtil
|
||||
import eu.kanade.tachiyomi.util.system.getResourceColor
|
||||
import eu.kanade.tachiyomi.util.system.openInBrowser
|
||||
@ -100,8 +99,8 @@ class WebViewActivity : BaseActivity<WebviewActivityBinding>() {
|
||||
}
|
||||
|
||||
binding.webview.webViewClient = object : WebViewClientCompat() {
|
||||
override fun shouldOverrideUrlLoading(view: WebView, request: WebResourceRequest): Boolean {
|
||||
view.loadUrl(request.url.toString())
|
||||
override fun shouldOverrideUrlCompat(view: WebView, url: String): Boolean {
|
||||
view.loadUrl(url)
|
||||
return true
|
||||
}
|
||||
|
||||
|
@ -34,14 +34,12 @@ object DiskUtil {
|
||||
* Gets the available space for the disk that a file path points to, in bytes.
|
||||
*/
|
||||
fun getAvailableStorageSpace(f: UniFile): Long {
|
||||
val stat = try {
|
||||
StatFs(f.filePath)
|
||||
return try {
|
||||
val stat = StatFs(f.uri.path)
|
||||
stat.availableBlocksLong * stat.blockSizeLong
|
||||
} catch (_: Exception) {
|
||||
// Assume that exception is thrown when path is on external storage
|
||||
StatFs(Environment.getExternalStorageDirectory().path)
|
||||
-1L
|
||||
}
|
||||
|
||||
return stat.availableBlocksLong * stat.blockSizeLong
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -0,0 +1,91 @@
|
||||
package eu.kanade.tachiyomi.util.system
|
||||
|
||||
import android.annotation.TargetApi
|
||||
import android.os.Build
|
||||
import android.webkit.WebResourceError
|
||||
import android.webkit.WebResourceRequest
|
||||
import android.webkit.WebResourceResponse
|
||||
import android.webkit.WebView
|
||||
import android.webkit.WebViewClient
|
||||
|
||||
@Suppress("OverridingDeprecatedMember")
|
||||
abstract class WebViewClientCompat : WebViewClient() {
|
||||
|
||||
open fun shouldOverrideUrlCompat(view: WebView, url: String): Boolean {
|
||||
return false
|
||||
}
|
||||
|
||||
open fun shouldInterceptRequestCompat(view: WebView, url: String): WebResourceResponse? {
|
||||
return null
|
||||
}
|
||||
|
||||
open fun onReceivedErrorCompat(
|
||||
view: WebView,
|
||||
errorCode: Int,
|
||||
description: String?,
|
||||
failingUrl: String,
|
||||
isMainFrame: Boolean
|
||||
) {
|
||||
}
|
||||
|
||||
@TargetApi(Build.VERSION_CODES.N)
|
||||
final override fun shouldOverrideUrlLoading(
|
||||
view: WebView,
|
||||
request: WebResourceRequest
|
||||
): Boolean {
|
||||
return shouldOverrideUrlCompat(view, request.url.toString())
|
||||
}
|
||||
|
||||
final override fun shouldOverrideUrlLoading(view: WebView, url: String): Boolean {
|
||||
return shouldOverrideUrlCompat(view, url)
|
||||
}
|
||||
|
||||
final override fun shouldInterceptRequest(
|
||||
view: WebView,
|
||||
request: WebResourceRequest
|
||||
): WebResourceResponse? {
|
||||
return shouldInterceptRequestCompat(view, request.url.toString())
|
||||
}
|
||||
|
||||
final override fun shouldInterceptRequest(
|
||||
view: WebView,
|
||||
url: String
|
||||
): WebResourceResponse? {
|
||||
return shouldInterceptRequestCompat(view, url)
|
||||
}
|
||||
|
||||
@TargetApi(Build.VERSION_CODES.M)
|
||||
final override fun onReceivedError(
|
||||
view: WebView,
|
||||
request: WebResourceRequest,
|
||||
error: WebResourceError
|
||||
) {
|
||||
onReceivedErrorCompat(
|
||||
view, error.errorCode, error.description?.toString(),
|
||||
request.url.toString(), request.isForMainFrame
|
||||
)
|
||||
}
|
||||
|
||||
final override fun onReceivedError(
|
||||
view: WebView,
|
||||
errorCode: Int,
|
||||
description: String?,
|
||||
failingUrl: String
|
||||
) {
|
||||
onReceivedErrorCompat(view, errorCode, description, failingUrl, failingUrl == view.url)
|
||||
}
|
||||
|
||||
@TargetApi(Build.VERSION_CODES.M)
|
||||
final override fun onReceivedHttpError(
|
||||
view: WebView,
|
||||
request: WebResourceRequest,
|
||||
error: WebResourceResponse
|
||||
) {
|
||||
onReceivedErrorCompat(
|
||||
view, error.statusCode, error.reasonPhrase,
|
||||
request.url
|
||||
.toString(),
|
||||
request.isForMainFrame
|
||||
)
|
||||
}
|
||||
}
|
@ -18,8 +18,9 @@ class ElevationAppBarLayout @JvmOverloads constructor(
|
||||
origStateAnimator = stateListAnimator
|
||||
}
|
||||
|
||||
fun enableElevation() {
|
||||
fun enableElevation(liftOnScroll: Boolean) {
|
||||
stateListAnimator = origStateAnimator
|
||||
isLiftOnScroll = liftOnScroll
|
||||
}
|
||||
|
||||
fun disableElevation() {
|
||||
|
@ -17,10 +17,7 @@ class ThemedSwipeRefreshLayout @JvmOverloads constructor(context: Context, attrs
|
||||
// Background is controlled with "swipeRefreshLayoutProgressSpinnerBackgroundColor" in XML
|
||||
|
||||
// This updates the progress arrow color
|
||||
setColorSchemeColors(
|
||||
ContextCompat.getColor(context, R.color.md_white_1000),
|
||||
ContextCompat.getColor(context, R.color.md_white_1000),
|
||||
ContextCompat.getColor(context, R.color.md_white_1000)
|
||||
)
|
||||
val white = ContextCompat.getColor(context, R.color.md_white_1000)
|
||||
setColorSchemeColors(white, white, white)
|
||||
}
|
||||
}
|
||||
|
18
app/src/main/res/drawable/ic_outline_people_alt_24dp.xml
Normal file
18
app/src/main/res/drawable/ic_outline_people_alt_24dp.xml
Normal file
@ -0,0 +1,18 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M16.67,13.13C18.04,14.06 19,15.32 19,17v3h4v-3C23,14.82 19.43,13.53 16.67,13.13z" />
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M15,12c2.21,0 4,-1.79 4,-4c0,-2.21 -1.79,-4 -4,-4c-0.47,0 -0.91,0.1 -1.33,0.24C14.5,5.27 15,6.58 15,8s-0.5,2.73 -1.33,3.76C14.09,11.9 14.53,12 15,12z" />
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M9,12c2.21,0 4,-1.79 4,-4c0,-2.21 -1.79,-4 -4,-4S5,5.79 5,8C5,10.21 6.79,12 9,12zM9,6c1.1,0 2,0.9 2,2c0,1.1 -0.9,2 -2,2S7,9.1 7,8C7,6.9 7.9,6 9,6z" />
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M9,13c-2.67,0 -8,1.34 -8,4v3h16v-3C17,14.34 11.67,13 9,13zM15,18H3l0,-0.99C3.2,16.29 6.3,15 9,15s5.8,1.29 6,2V18z" />
|
||||
</vector>
|
@ -69,6 +69,21 @@
|
||||
app:layout_constraintTop_toBottomOf="@id/extension_version"
|
||||
tools:text="Language: English" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/extension_nsfw"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:layout_weight="1"
|
||||
android:elevation="3dp"
|
||||
android:gravity="center"
|
||||
android:text="@string/ext_nsfw_warning"
|
||||
android:textColor="?attr/colorError"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintStart_toStartOf="@id/extension_title"
|
||||
app:layout_constraintTop_toBottomOf="@id/extension_lang"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/extension_pkg"
|
||||
android:layout_width="0dp"
|
||||
@ -78,7 +93,7 @@
|
||||
android:singleLine="true"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="@id/extension_title"
|
||||
app:layout_constraintTop_toBottomOf="@id/extension_lang"
|
||||
app:layout_constraintTop_toBottomOf="@id/extension_nsfw"
|
||||
tools:text="eu.kanade.tachiyomi.extension.en.myext" />
|
||||
|
||||
<Button
|
||||
@ -86,12 +101,12 @@
|
||||
style="@style/Theme.Widget.Button.FilledAccent"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="32dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:paddingStart="32dp"
|
||||
android:paddingEnd="32dp"
|
||||
android:text="@string/ext_uninstall"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/extension_lang" />
|
||||
app:layout_constraintTop_toBottomOf="@id/extension_pkg" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
|
@ -14,7 +14,7 @@
|
||||
android:id="@+id/downloaded_only"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@color/pale_green"
|
||||
android:background="@color/green"
|
||||
android:visibility="gone"
|
||||
tools:visibility="visible">
|
||||
|
||||
@ -24,7 +24,7 @@
|
||||
android:layout_gravity="center"
|
||||
android:padding="4dp"
|
||||
android:text="@string/label_downloaded_only"
|
||||
android:textColor="@color/md_black_1000" />
|
||||
android:textColor="@color/md_white_1000" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
|
@ -41,13 +41,13 @@
|
||||
style="@style/TextAppearance.Regular.Caption"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@color/pale_green"
|
||||
android:background="@color/green"
|
||||
android:paddingStart="3dp"
|
||||
android:paddingTop="1dp"
|
||||
android:paddingEnd="3dp"
|
||||
android:paddingBottom="1dp"
|
||||
android:text="@string/local_source_badge"
|
||||
android:textColor="@color/md_black_1000"
|
||||
android:textColor="@color/md_white_1000"
|
||||
android:visibility="gone"
|
||||
tools:visibility="visible" />
|
||||
|
||||
@ -56,12 +56,12 @@
|
||||
style="@style/TextAppearance.Regular.Caption"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@color/pale_green"
|
||||
android:background="@color/green"
|
||||
android:paddingStart="3dp"
|
||||
android:paddingTop="1dp"
|
||||
android:paddingEnd="3dp"
|
||||
android:paddingBottom="1dp"
|
||||
android:textColor="@color/md_black_1000"
|
||||
android:textColor="@color/md_white_1000"
|
||||
android:visibility="gone"
|
||||
tools:text="120"
|
||||
tools:visibility="visible" />
|
||||
|
@ -41,13 +41,13 @@
|
||||
style="@style/TextAppearance.Regular.Caption"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@color/pale_green"
|
||||
android:background="@color/green"
|
||||
android:paddingStart="3dp"
|
||||
android:paddingTop="1dp"
|
||||
android:paddingEnd="3dp"
|
||||
android:paddingBottom="1dp"
|
||||
android:text="@string/local_source_badge"
|
||||
android:textColor="@color/md_black_1000"
|
||||
android:textColor="@color/md_white_1000"
|
||||
android:visibility="gone"
|
||||
tools:visibility="visible" />
|
||||
|
||||
@ -56,12 +56,12 @@
|
||||
style="@style/TextAppearance.Regular.Caption"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@color/pale_green"
|
||||
android:background="@color/green"
|
||||
android:paddingStart="3dp"
|
||||
android:paddingTop="1dp"
|
||||
android:paddingEnd="3dp"
|
||||
android:paddingBottom="1dp"
|
||||
android:textColor="@color/md_black_1000"
|
||||
android:textColor="@color/md_white_1000"
|
||||
android:visibility="gone"
|
||||
tools:text="120"
|
||||
tools:visibility="visible" />
|
||||
|
@ -54,14 +54,14 @@
|
||||
style="@style/TextAppearance.Regular.Caption"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@color/pale_green"
|
||||
android:background="@color/green"
|
||||
android:maxLines="1"
|
||||
android:paddingStart="3dp"
|
||||
android:paddingTop="1dp"
|
||||
android:paddingEnd="3dp"
|
||||
android:paddingBottom="1dp"
|
||||
android:text="@string/local_source_badge"
|
||||
android:textColor="@color/md_black_1000"
|
||||
android:textColor="@color/md_white_1000"
|
||||
android:visibility="gone"
|
||||
tools:visibility="visible" />
|
||||
|
||||
@ -70,13 +70,13 @@
|
||||
style="@style/TextAppearance.Regular.Caption"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@color/pale_green"
|
||||
android:background="@color/green"
|
||||
android:maxLines="1"
|
||||
android:paddingStart="3dp"
|
||||
android:paddingTop="1dp"
|
||||
android:paddingEnd="3dp"
|
||||
android:paddingBottom="1dp"
|
||||
android:textColor="@color/md_black_1000"
|
||||
android:textColor="@color/md_white_1000"
|
||||
android:visibility="gone"
|
||||
tools:text="122"
|
||||
tools:visibility="visible" />
|
||||
|
@ -16,6 +16,20 @@
|
||||
app:iconTint="?attr/colorOnPrimary"
|
||||
app:showAsAction="always" />
|
||||
|
||||
<item
|
||||
android:id="@+id/action_mark_as_read"
|
||||
android:icon="@drawable/ic_done_24dp"
|
||||
android:title="@string/action_mark_as_read"
|
||||
app:iconTint="?attr/colorOnPrimary"
|
||||
app:showAsAction="always" />
|
||||
|
||||
<item
|
||||
android:id="@+id/action_mark_as_unread"
|
||||
android:icon="@drawable/ic_done_outline_24dp"
|
||||
android:title="@string/action_mark_as_unread"
|
||||
app:iconTint="?attr/colorOnPrimary"
|
||||
app:showAsAction="always" />
|
||||
|
||||
<item
|
||||
android:id="@+id/action_delete"
|
||||
android:icon="@drawable/ic_delete_24dp"
|
||||
|
@ -57,7 +57,7 @@
|
||||
<string name="label_migration">Migrar</string>
|
||||
<string name="label_recent_updates">Actualizaciones</string>
|
||||
<string name="label_library">Biblioteca</string>
|
||||
<string name="label_settings">Configuraciónes</string>
|
||||
<string name="label_settings">Configuraciones</string>
|
||||
<string name="name">Nombre</string>
|
||||
<string name="label_categories">Categorías</string>
|
||||
<string name="label_sources">Fuentes</string>
|
||||
@ -597,4 +597,11 @@
|
||||
<item quantity="one">Rastreador</item>
|
||||
<item quantity="other">Rastreadores</item>
|
||||
</plurals>
|
||||
<string name="group_downloader">Descargas</string>
|
||||
<string name="channel_errors">Errores</string>
|
||||
<string name="channel_complete">Completo</string>
|
||||
<string name="channel_progress">Progreso</string>
|
||||
<string name="download_notifier_download_finish">Descarga completada</string>
|
||||
<string name="group_backup_restore">Respaldar y restaurar</string>
|
||||
<string name="no_pinned_sources">No tienes fuentes fijadas</string>
|
||||
</resources>
|
@ -602,4 +602,6 @@
|
||||
<string name="group_downloader">Baixades</string>
|
||||
<string name="channel_complete">Completada</string>
|
||||
<string name="channel_progress">Progrés</string>
|
||||
<string name="channel_errors">Errors</string>
|
||||
<string name="backup_restore_missing_trackers">Seguidors sense sessió iniciada:</string>
|
||||
</resources>
|
@ -403,4 +403,6 @@
|
||||
<string name="logout_success">Byl jste odhlášen</string>
|
||||
<string name="paused">Pozastaveno</string>
|
||||
<string name="label_more">Více</string>
|
||||
<string name="action_menu">Menu</string>
|
||||
<string name="label_sources">Zdroje</string>
|
||||
</resources>
|
@ -6,13 +6,13 @@
|
||||
<string name="cookies_cleared">Куккисем катертнӗ</string>
|
||||
<string name="pref_clear_cookies">Кукки тасат</string>
|
||||
<string name="label_network">Тетел</string>
|
||||
<string name="restore_duration">%02d минут, %02d ҫеккунт</string>
|
||||
<string name="restore_duration">%02d минут та %02d ҫеккунт</string>
|
||||
<string name="source_not_found_name">Ҫӑл куҫ тупӑнман: %1$s</string>
|
||||
<string name="services">Сервиссем</string>
|
||||
<string name="pref_download_new">Ҫӗнӗ сыпӑксене тиесе илмелле</string>
|
||||
<string name="last_read_chapter">Юлашки вуланӑ сыпăк</string>
|
||||
<string name="disabled">Сӳнтернӗ</string>
|
||||
<string name="pref_remove_after_read">Вуланӑ хыҫҫӑн катертмелле</string>
|
||||
<string name="pref_remove_after_read">Вуланӑ хыҫҫӑн</string>
|
||||
<string name="pref_download_only_over_wifi">Wi-Fi урлӑ ҫеҫ тиесе илмелле</string>
|
||||
<string name="pref_download_directory">Тиев вырӑнӗ</string>
|
||||
<string name="pref_category_reading">Вулани</string>
|
||||
@ -52,7 +52,7 @@
|
||||
<string name="charging">Тулать</string>
|
||||
<string name="wifi">Wi-Fi</string>
|
||||
<string name="pref_library_update_restriction">Вулавӑша ҫӗнетни чарӑвӗсем</string>
|
||||
<string name="pref_library_update_prioritization">Вулавӑша ҫӗнетни йӗркийӗ</string>
|
||||
<string name="pref_library_update_prioritization">Вулавӑша ҫӗнетни йӗрки</string>
|
||||
<string name="update_monthly">Кашни уйӑх</string>
|
||||
<string name="update_weekly">Кашни эрне</string>
|
||||
<string name="update_48hour">Кашни 2 кун</string>
|
||||
@ -150,8 +150,8 @@
|
||||
<string name="action_select_all">Веҫех суйла</string>
|
||||
<string name="action_global_search">Пур ҫӗрте шыра</string>
|
||||
<string name="action_search">Шырав</string>
|
||||
<string name="action_sort_latest_chapter">Юлашки сыпӑк</string>
|
||||
<string name="action_sort_last_checked">Юлашки тӗрӗслени</string>
|
||||
<string name="action_sort_latest_chapter">Юлашки сыпӑкпа</string>
|
||||
<string name="action_sort_last_checked">Юлашки тӗрӗсленипе</string>
|
||||
<string name="action_sort_last_read">Юлашки вулани</string>
|
||||
<string name="action_sort_total">Сыпӑксен шучӗпе</string>
|
||||
<string name="action_sort_alpha">Алфавитпа</string>
|
||||
@ -177,7 +177,7 @@
|
||||
<string name="update_check_notification_download_error">Тиев йӑнӑшӗ</string>
|
||||
<string name="update_check_notification_download_complete">Тиенсе пӗтрӗ</string>
|
||||
<string name="update_check_notification_file_download">Тиев ҫӗнетни</string>
|
||||
<string name="notification_chapters_single">%1$s сыпӑк</string>
|
||||
<string name="notification_chapters_single">%1$s-мӗш сыпӑк</string>
|
||||
<string name="notification_new_chapters">Ҫӗнӗ сыпӑксем тупӑнман</string>
|
||||
<string name="notification_update_progress">Ҫӗнетӳ халӗ: %1$d/%2$d</string>
|
||||
<string name="information_no_recent_manga">Юлашки вӑхӑтра нимӗнте вуламан</string>
|
||||
@ -221,16 +221,16 @@
|
||||
<string name="loading">Тиев…</string>
|
||||
<string name="action_restore">Тавӑр</string>
|
||||
<string name="action_unpin">Салт</string>
|
||||
<string name="action_migrate">Куҫ</string>
|
||||
<string name="action_next_chapter">Тепӗр сыпӑк</string>
|
||||
<string name="action_previous_chapter">Малтанхи сыпӑк</string>
|
||||
<string name="action_sort_down">Сахаланӑ май</string>
|
||||
<string name="action_sort_up">Нумайланӑ май</string>
|
||||
<string name="action_migrate">Куҫар</string>
|
||||
<string name="action_next_chapter">Маллали сыпӑк</string>
|
||||
<string name="action_previous_chapter">Умӗнхи сыпӑк</string>
|
||||
<string name="action_sort_down">Сахаланнӑ май</string>
|
||||
<string name="action_sort_up">Нумайланнӑ май</string>
|
||||
<string name="track">Сӑнану</string>
|
||||
<string name="information_webview_outdated">Чи лайӑх пӗрлӗхшӗн WebView-а ҫӗнет</string>
|
||||
<string name="information_cloudflare_bypass_failure">Cloudflare-ран иртеймерӗ</string>
|
||||
<string name="information_empty_category">Санӑн пухмӑшсем ҫук. Хӑвӑн вулавӑша йӗркелеме + пускӑч ҫине пус.</string>
|
||||
<string name="label_migration">Куҫ</string>
|
||||
<string name="label_migration">Куҫар</string>
|
||||
<string name="label_backup">Янтӑв</string>
|
||||
<string name="ext_obsolete">Кивелнӗ</string>
|
||||
<string name="ext_updates_pending">Ҫӗнетӳсем кӗтеҫҫӗ</string>
|
||||
@ -269,7 +269,7 @@
|
||||
<string name="pref_library_update_restriction_summary">Майсем пурнӑҫланӑ чухне кӑна ҫӗнет</string>
|
||||
<string name="lock_when_idle">Кӗтмелли тытӑмра ҫаклатса лартмалла</string>
|
||||
<string name="webtoon_side_padding_10">10%</string>
|
||||
<string name="display_mode_chapter">%1$s сыпӑк</string>
|
||||
<string name="display_mode_chapter">%1$s-мӗш сыпӑк</string>
|
||||
<string name="lock_with_biometrics">Алӑ йӗрпе ҫаклатса ларт</string>
|
||||
<string name="webtoon_side_padding_25">25%</string>
|
||||
<string name="webtoon_side_padding_20">20%</string>
|
||||
@ -325,8 +325,8 @@
|
||||
\n
|
||||
\nҪак сертификата шаннипе эсӗ ҫав теветкеле йышӑнатӑн.</string>
|
||||
<plurals name="restore_completed_message">
|
||||
<item quantity="one">%1$s %2$s йӑнӑшпа тӑвӑннӑ</item>
|
||||
<item quantity="other">%1$s %2$s йӑнӑшпа тӑвӑннӑ</item>
|
||||
<item quantity="one">%1$s,%2$s йӑнӑшпа тӑвӑннӑ</item>
|
||||
<item quantity="other">%1$s, %2$s йӑнӑшпа тӑвӑннӑ</item>
|
||||
</plurals>
|
||||
<string name="backup_restore_content">Пӗлӗмсене тавӑрнӑ чух ҫӑл куҫсем усӑ курӑнаҫҫӗ, ҫакӑ вара пысӑк трафик тӑкакӗсене кӳме пултарать.
|
||||
\n
|
||||
@ -375,7 +375,7 @@
|
||||
<string name="file_select_cover">Хуплашка суйла</string>
|
||||
<string name="notification_no_connection_body">Ҫыхӑну кӗме май ҫук</string>
|
||||
<string name="notification_no_connection_title">Пӗрлӗхлени пӑрахӑҫланӑ</string>
|
||||
<string name="notification_not_connected_to_ac_body">Батарей тулмасть</string>
|
||||
<string name="notification_not_connected_to_ac_body">Петтерей тулмасть</string>
|
||||
<string name="notification_not_connected_to_ac_title">Пӗрлӗхлени пӑрахӑҫланӑ</string>
|
||||
<string name="notification_first_add_to_library">Ҫакна тӑвас умӗн манкка санӑн вулавӑша хуш-ха</string>
|
||||
<string name="notification_cover_update_failed">Хуплашкана ҫӗнетеймерӗ</string>
|
||||
@ -394,36 +394,36 @@
|
||||
<item quantity="other">%1$d ҫӗнӗ сыпӑк</item>
|
||||
</plurals>
|
||||
<plurals name="notification_new_chapters_summary">
|
||||
<item quantity="one">Ҫӗнӗ сыпӑксем 1 пуҫ элӗк валли тупӑннӑ</item>
|
||||
<item quantity="other">Ҫӗнӗ сыпӑксем %d пуҫ элӗк валли тупӑннӑ</item>
|
||||
<item quantity="one">Ҫӗнӗ сыпӑксем 1 хайлав валли тупӑннӑ</item>
|
||||
<item quantity="other">Ҫӗнӗ сыпӑксем %d хайлав валли тупӑннӑ</item>
|
||||
</plurals>
|
||||
<string name="notification_check_updates">Ҫӗнӗ сыпӑксен пуррине тӗрӗслени</string>
|
||||
<string name="download_queue_error">Сыпӑксене тиесе илес ҫук. Тиевсем пайӗнче ҫӗнӗрен хӑтланса пӑхма пултаратӑн</string>
|
||||
<string name="copy">Ӑтавла</string>
|
||||
<string name="migrate">Куҫ</string>
|
||||
<string name="migration_selection_prompt">Куҫма ҫӑл куҫ суйла</string>
|
||||
<string name="migrate">Куҫар</string>
|
||||
<string name="migration_selection_prompt">Куҫарма ҫӑл куҫ суйла</string>
|
||||
<string name="migration_dialog_what_to_include">Хушма пӗлӗмсене суйла</string>
|
||||
<string name="migration_info">Куҫма ҫӑл куҫ суйлама пус</string>
|
||||
<string name="migration_info">Куҫарма ҫӑл куҫа суйлама пус</string>
|
||||
<string name="recent_manga_time">%1$s-мӗш сыпӑка %2$s</string>
|
||||
<string name="updating_library">Вулавӑша ҫӗнетни</string>
|
||||
<string name="loader_not_implemented_error">Ҫӑл куҫ тупӑнман</string>
|
||||
<string name="page_list_empty_error">Элсем тупӑнман</string>
|
||||
<string name="transition_pages_error">Элсем тиенеймерӗҫ: %1$s</string>
|
||||
<string name="transition_pages_loading">Элсем тиевӗ…</string>
|
||||
<string name="transition_no_previous">Унчченхи сыпӑк ҫук</string>
|
||||
<string name="transition_no_next">Тепӗр сыпӑк ҫук</string>
|
||||
<string name="transition_no_previous">Умӗнхи сыпӑк ҫук</string>
|
||||
<string name="transition_no_next">Малалли сыпӑк ҫук</string>
|
||||
<string name="transition_previous">Умӗнхи:</string>
|
||||
<string name="transition_next">Тепри:</string>
|
||||
<string name="transition_next">Малалли:</string>
|
||||
<string name="transition_current">Кулленхи:</string>
|
||||
<string name="transition_finished">Пӗтернӗ:</string>
|
||||
<string name="viewer">Вулав тытӑмӗ</string>
|
||||
<string name="pref_category_for_this_series">Ҫак сери валли</string>
|
||||
<string name="confirm_set_image_as_cover">Ҫак ӳкерчĕке хуплашка пек усӑ курмалла\?</string>
|
||||
<string name="pref_category_for_this_series">Ҫак серилӗх валли</string>
|
||||
<string name="confirm_set_image_as_cover">Ҫак ӳкерчĕке хуплашка пек усӑ курмалла-и\?</string>
|
||||
<string name="decode_image_error">Ӳкерчӗк тиенмерӗ</string>
|
||||
<string name="no_previous_chapter">Унчченхи сыпӑк тупӑнман</string>
|
||||
<string name="no_next_chapter">Тепӗр сыпӑк тупӑнман</string>
|
||||
<string name="chapter_subtitle">%1$s сыпӑк</string>
|
||||
<string name="chapter_progress">%1$d эл</string>
|
||||
<string name="no_previous_chapter">Умӗнхи сыпӑк тупӑнман</string>
|
||||
<string name="no_next_chapter">Малалли сыпӑк тупӑнман</string>
|
||||
<string name="chapter_subtitle">%1$s-мӗш сыпӑк</string>
|
||||
<string name="chapter_progress">%1$d-мӗш эл</string>
|
||||
<string name="download_progress">%1$d%% тиенӗ</string>
|
||||
<string name="downloading">Тиев…</string>
|
||||
<string name="page_downloaded">Элӗ %1$s ӑтавланӑ</string>
|
||||
@ -438,8 +438,8 @@
|
||||
<string name="error_invalid_date_supplied">Тӗрӗс мар палӑртнӑ вӑхӑт</string>
|
||||
<string name="track_author">Авттӑр</string>
|
||||
<string name="track_type">Тӗс</string>
|
||||
<string name="track_finished_reading_date">Вулама пӗтернӗ вӑхӑчӗ</string>
|
||||
<string name="track_started_reading_date">Вулама пуҫланӑ вӑхӑчӗ</string>
|
||||
<string name="track_finished_reading_date">Вуласа пӗтернӗ вӑхӑт</string>
|
||||
<string name="track_started_reading_date">Вулама пуҫланӑ вӑхӑт</string>
|
||||
<string name="track_start_date">Пуҫланӑ</string>
|
||||
<string name="track_status">Хал</string>
|
||||
<string name="status">Хал</string>
|
||||
@ -449,18 +449,18 @@
|
||||
<string name="want_to_read">Вуласшӑн</string>
|
||||
<string name="plan_to_read">Вулӑп</string>
|
||||
<string name="paused">Вӑхӑтлӑха чарнӑ</string>
|
||||
<string name="on_hold">Вӑхӑтлӑха чарнӑ</string>
|
||||
<string name="on_hold">Чарнӑ</string>
|
||||
<string name="dropped">Пӑрахнӑ</string>
|
||||
<string name="completed">Вӗҫленӗ</string>
|
||||
<string name="currently_reading">Халь вулатӑп</string>
|
||||
<string name="reading">Вулатӑп</string>
|
||||
<string name="confirm_delete_chapters">Эсӗ суйланӑ сыпӑксене катертесшӗнех-и\?</string>
|
||||
<string name="download_unread">Вуламан</string>
|
||||
<string name="download_unread">Вуламанине</string>
|
||||
<string name="download_all">Веҫех</string>
|
||||
<string name="download_custom">Урӑх шут йышӗ</string>
|
||||
<string name="download_10">Тепӗр 10 сыпӑк</string>
|
||||
<string name="download_5">Тепӗр 5 сыпӑка</string>
|
||||
<string name="download_1">Тепӗр сыпӑк</string>
|
||||
<string name="download_10">Малалли 10 сыпӑк</string>
|
||||
<string name="download_5">Малалли 5 сыпӑка</string>
|
||||
<string name="download_1">Малалли сыпӑка</string>
|
||||
<string name="custom_download">Палӑртнӑ шутне тиесе ил</string>
|
||||
<string name="manga_download">Тиесе ил</string>
|
||||
<string name="sort_by_upload_date">Тиенӗ вӑхӑчӗпе</string>
|
||||
@ -474,23 +474,23 @@
|
||||
<string name="chapter_downloading_progress">Тиенет (%1$d/%2$d)</string>
|
||||
<string name="chapter_downloading">Тиенет</string>
|
||||
<string name="chapter_queued">Черетре</string>
|
||||
<string name="manga_chapter_no_title">Ячӗ ҫук</string>
|
||||
<string name="manga_chapter_no_title">Хайлав ячӗ ҫук</string>
|
||||
<string name="manga_chapters_tab">Сыпӑксем</string>
|
||||
<string name="snack_add_to_library">Манкка вулавăша хушмалла\?</string>
|
||||
<string name="snack_add_to_library">Манкка вулавăша хушмалла-и\?</string>
|
||||
<string name="source_not_installed">Ҫӑл куҫа лартман: %1$s</string>
|
||||
<string name="copied_to_clipboard">Пайлашу буфере ӑтавланӑ:
|
||||
\n%1$s</string>
|
||||
<string name="delete_downloads_for_manga">Тиенӗ сыпӑксене катертмелле\?</string>
|
||||
<string name="delete_downloads_for_manga">Тиенӗ сыпӑксене катертмелле-и\?</string>
|
||||
<plurals name="manga_num_chapters">
|
||||
<item quantity="one">1 сыпӑк</item>
|
||||
<item quantity="other">%1$s сыпӑк</item>
|
||||
</plurals>
|
||||
<string name="manga_info_collapse">Сахалтарах</string>
|
||||
<string name="manga_info_collapse">Сахалрах</string>
|
||||
<string name="manga_info_expand">Ытларах</string>
|
||||
<string name="manga_info_about_label">Манкӑ ҫинчен</string>
|
||||
<string name="manga_removed_library">Вулавӑшран катерт</string>
|
||||
<string name="manga_added_library">Вулавӑша хуш</string>
|
||||
<string name="manga_info_full_title_label">Пуҫ элӗк</string>
|
||||
<string name="manga_info_full_title_label">Хайлав ячӗ</string>
|
||||
<string name="remove_from_library">Вулавӑшран катерт</string>
|
||||
<string name="in_library">Вулавăшра</string>
|
||||
<string name="add_to_library">Вулавӑша хуш</string>
|
||||
@ -525,12 +525,12 @@
|
||||
<string name="invalid_backup_file">Тӗрӗс мар янтӑв файлӗ</string>
|
||||
<string name="local_source_badge">Вырӑнти</string>
|
||||
<string name="updating_category">Пухмӑша ҫӗнетни</string>
|
||||
<string name="library_search_hint">Ячӗ е авттӑрӗ…</string>
|
||||
<string name="library_search_hint">Хайлав ячӗ е авттӑрӗ…</string>
|
||||
<string name="unknown_error">Паллӑ мар йӑнӑш</string>
|
||||
<string name="invalid_login">Кӗни йӑнӑшӗ</string>
|
||||
<string name="logout_success">Эсӗ халь тухрӑн</string>
|
||||
<string name="logout_success">Эсӗ тухрӑн</string>
|
||||
<string name="logout">Тух</string>
|
||||
<string name="logout_title">%1$s тухмалла\?</string>
|
||||
<string name="logout_title">“%1$s тухмалла-и\?</string>
|
||||
<string name="login_success">Ӑнӑҫлӑ кӗни</string>
|
||||
<string name="login">Кӗр</string>
|
||||
<string name="show_password">Кӗме сӑмах кӑтарт</string>
|
||||
@ -590,7 +590,7 @@
|
||||
<string name="whats_new">Мӗн ҫӗнни</string>
|
||||
<string name="pref_category_locale">Вырӑн</string>
|
||||
<string name="pref_category_theme">Тема</string>
|
||||
<string name="action_sort_date_added">Хушнӑ вӑхӑт</string>
|
||||
<string name="action_sort_date_added">Хушнӑ вӑхӑтпа</string>
|
||||
<string name="download_insufficient_space">Тиск ҫинче вырӑн ҫитмен пирки сыпӑксене тиесе илес ҫук</string>
|
||||
<string name="action_global_search_query">\"%1$s\" пур ҫӗрте шыра</string>
|
||||
<string name="pref_category_reading_mode">Вулав тытӑмӗ</string>
|
||||
@ -603,5 +603,13 @@
|
||||
<string name="group_downloader">Тиевсем</string>
|
||||
<string name="channel_complete">Вӗҫленӗ</string>
|
||||
<string name="channel_progress">Ӳсӗм</string>
|
||||
<string name="download_notifier_download_finish">Тиенчӗ</string>
|
||||
<string name="download_notifier_download_finish">Тиев вӗҫленӗ</string>
|
||||
<string name="channel_errors">Йӑнӑшсем</string>
|
||||
<string name="backup_restore_missing_trackers">Кӗмен сӑнанусем:</string>
|
||||
<string name="pref_allow_nsfw_sources_allowed_multisource">Ҫӑл куҫа чарса ларт, анчах хушмасен ят-йышӗнче кӑтарт</string>
|
||||
<string name="pref_allow_nsfw_sources">NSFW ҫӑл куҫсем</string>
|
||||
<string name="pref_allow_nsfw_sources_allowed">Ирӗк панӑ</string>
|
||||
<string name="pref_allow_nsfw_sources_blocked">Чарса лартнӑ</string>
|
||||
<string name="pref_remove_bookmarked_chapters">Картнӑ сыпӑксене катерт</string>
|
||||
<string name="pref_category_delete_chapters">Сыпӑксене катерт</string>
|
||||
</resources>
|
@ -149,8 +149,8 @@
|
||||
<string name="color_filter_a_value">A</string>
|
||||
<string name="pref_download_directory">Speicherort</string>
|
||||
<string name="pref_download_only_over_wifi">Nur über WLAN herunterladen</string>
|
||||
<string name="pref_remove_after_marked_as_read">Als gelesen markierte Kap. löschen</string>
|
||||
<string name="pref_remove_after_read">Nach dem Lesen löschen</string>
|
||||
<string name="pref_remove_after_marked_as_read">Nachdem manuell als gelesen markiert</string>
|
||||
<string name="pref_remove_after_read">Nach dem Lesen</string>
|
||||
<string name="custom_dir">Eigener Speicherort</string>
|
||||
<string name="disabled">Deaktiviert</string>
|
||||
<string name="last_read_chapter">Zuletzt gelesenes Kapitel</string>
|
||||
@ -603,4 +603,14 @@
|
||||
<string name="group_downloader">Downloads</string>
|
||||
<string name="channel_complete">Abgeschlossen</string>
|
||||
<string name="channel_progress">Fortschritt</string>
|
||||
<string name="channel_errors">Fehler</string>
|
||||
<string name="backup_restore_missing_trackers">Nicht-eingeloggte Tracker:</string>
|
||||
<string name="pref_allow_nsfw_sources">NSFW-Quellen</string>
|
||||
<string name="pref_allow_nsfw_sources_blocked">Blockiert</string>
|
||||
<string name="pref_allow_nsfw_sources_allowed_multisource">Quelle blockieren, aber in der Erweiterungsliste anzeigen</string>
|
||||
<string name="pref_allow_nsfw_sources_allowed">Erlaubt</string>
|
||||
<string name="pref_remove_bookmarked_chapters">Mit Lesezeichen versehene Kapitel löschen</string>
|
||||
<string name="pref_category_delete_chapters">Kapitel löschen</string>
|
||||
<string name="ext_nsfw_warning">Kann 18+ Inhalte enthalten</string>
|
||||
<string name="ext_nsfw_short">18+</string>
|
||||
</resources>
|
@ -603,4 +603,13 @@
|
||||
<string name="channel_complete">Ολοκληρωμένο</string>
|
||||
<string name="channel_progress">Η λήψη ολοκληρώθηκε</string>
|
||||
<string name="download_notifier_download_finish">Η λήψη ολοκληρώθηκε</string>
|
||||
<string name="channel_errors">Σφάλματα</string>
|
||||
<string name="backup_restore_missing_trackers">Ιχνηλάτες που δεν έχουν συνδεθεί:</string>
|
||||
<string name="pref_allow_nsfw_sources_blocked">Αποκλείστηκε</string>
|
||||
<string name="pref_allow_nsfw_sources_allowed_multisource">Αποκλεισμός πηγής αλλά εμφάνιση στη λίστα επεκτάσεων</string>
|
||||
<string name="pref_allow_nsfw_sources_allowed">Επιτρέπεται</string>
|
||||
<string name="pref_allow_nsfw_sources">Πηγές NSFW</string>
|
||||
<string name="pref_category_delete_chapters">Διαγραφή κεφαλαίων</string>
|
||||
<string name="ext_nsfw_warning">Μπορεί να περιέχει 18+ περιεχόμενο</string>
|
||||
<string name="ext_nsfw_short">18+</string>
|
||||
</resources>
|
@ -116,8 +116,8 @@
|
||||
<!-- Downloads section -->
|
||||
<string name="pref_download_directory">Ubicación de descargas</string>
|
||||
<string name="pref_download_only_over_wifi">Descargar sólo a través de Wi-Fi</string>
|
||||
<string name="pref_remove_after_marked_as_read">Eliminar cuando esta marcado como leído</string>
|
||||
<string name="pref_remove_after_read">Eliminar después de leer</string>
|
||||
<string name="pref_remove_after_marked_as_read">Despues de marcar manualmente como leído</string>
|
||||
<string name="pref_remove_after_read">Después de leer</string>
|
||||
<string name="custom_dir">Directorio personalizado</string>
|
||||
<!-- Sources section -->
|
||||
<!-- Sync section -->
|
||||
@ -635,4 +635,13 @@
|
||||
<string name="channel_complete">Completo</string>
|
||||
<string name="channel_progress">Progreso</string>
|
||||
<string name="channel_errors">Errores</string>
|
||||
<string name="backup_restore_missing_trackers">Rastreadores no conectados:</string>
|
||||
<string name="pref_allow_nsfw_sources">Fuentes NSFW</string>
|
||||
<string name="pref_allow_nsfw_sources_blocked">Bloqueado</string>
|
||||
<string name="pref_allow_nsfw_sources_allowed_multisource">Bloquear fuente pero mostrarlo en la lista de extensiones</string>
|
||||
<string name="pref_allow_nsfw_sources_allowed">Permitido</string>
|
||||
<string name="pref_remove_bookmarked_chapters">Borrar capítulos marcados</string>
|
||||
<string name="pref_category_delete_chapters">Borrar capítulos</string>
|
||||
<string name="ext_nsfw_warning">Puede contener contenido 18+</string>
|
||||
<string name="ext_nsfw_short">18+</string>
|
||||
</resources>
|
@ -2,16 +2,16 @@
|
||||
<resources>
|
||||
<string name="description_cover">عکس روی جلد مانگا</string>
|
||||
<plurals name="update_check_notification_ext_updates">
|
||||
<item quantity="one">بروزرسانی برای یک افرونه موجود است</item>
|
||||
<item quantity="other">بروزرسانی برای %d افرونه موجود است</item>
|
||||
<item quantity="one">آپدیت برای یک افرونه موجود است</item>
|
||||
<item quantity="other">آپدیت برای %d افرونه موجود است</item>
|
||||
</plurals>
|
||||
<string name="update_check_notification_update_available">نسخه جدید موجود است!</string>
|
||||
<string name="update_check_notification_download_error">خطا در دانلود</string>
|
||||
<string name="update_check_notification_download_complete">دانلود تکمیل شد</string>
|
||||
<string name="update_check_notification_download_in_progress">در حال دانلود…</string>
|
||||
<string name="update_check_notification_file_download">دانلود بروزرسانی</string>
|
||||
<string name="update_check_look_for_updates">در حال جستجوی به روزرسانی ها …</string>
|
||||
<string name="update_check_no_new_updates">هیچ بروزرسانی جدیدی موجود نیست</string>
|
||||
<string name="update_check_notification_file_download">دانلود آپدیت</string>
|
||||
<string name="update_check_look_for_updates">در حال جستجوی آپدیتها …</string>
|
||||
<string name="update_check_no_new_updates">هیچ آپدیت جدیدی موجود نیست</string>
|
||||
<string name="update_check_ignore">نادیده گرفتن</string>
|
||||
<string name="update_check_confirm">دانلود</string>
|
||||
<string name="file_select_icon">آیکون میانبر را انتخاب کنید</string>
|
||||
@ -19,7 +19,7 @@
|
||||
<string name="file_select_cover">عکس روی جلد را انتخاب کنید</string>
|
||||
<string name="notification_no_connection_body">اتصال در دسترس نیست</string>
|
||||
<string name="notification_no_connection_title">هم گام سازی کنسل شد</string>
|
||||
<string name="notification_not_connected_to_ac_body">دستگاه به منبع شارژ وصل نیست</string>
|
||||
<string name="notification_not_connected_to_ac_body">دستگاه به شارژر وصل نیست</string>
|
||||
<string name="notification_not_connected_to_ac_title">هم گام سازی کنسل شد</string>
|
||||
<string name="notification_first_add_to_library">لطفا قبل این کار مانگای موردنظر را به کتابخانه اضافه کنید</string>
|
||||
<string name="notification_cover_update_failed">آپدیت عکس روی جلد با خطا مواجه شد</string>
|
||||
@ -35,7 +35,7 @@
|
||||
<string name="notification_chapters_single_and_more">فصل %1$s و %2$d فصل دیگر</string>
|
||||
<string name="notification_chapters_single">فصل %1$s</string>
|
||||
<string name="notification_new_chapters">فصلهای جدید پیدا شدند</string>
|
||||
<string name="notification_update_progress">روند بروزرسانی: %1$d/%2$d</string>
|
||||
<string name="notification_update_progress">روند آپدیت: %1$d/%2$d</string>
|
||||
<string name="notification_check_updates">درحال بررسی برای فصلهای جدید</string>
|
||||
<string name="download_queue_error">دانلود فصلها با خطا مواجه شد. با مراجعه به قسمت دانلودها میتوانید دوباره تلاش کنید</string>
|
||||
<string name="copy">کپی</string>
|
||||
@ -131,7 +131,7 @@
|
||||
<string name="manga_info_full_title_label">عنوان</string>
|
||||
<string name="remove_from_library">حذف از کتابخانه</string>
|
||||
<string name="in_library">در کتابخانه</string>
|
||||
<string name="pref_refresh_library_tracking_summary">وضعیت خواندن، امتیاز و آخرین فصل خوانده شده را از سایت خدمات ردیابی بروزرسانی میکند</string>
|
||||
<string name="pref_refresh_library_tracking_summary">وضعیت خواندن، امتیاز و آخرین فصل خوانده شده را از سایت خدمات ردیابی آپدیت میکند</string>
|
||||
<string name="pref_refresh_library_tracking">تازه کردن ردیابی</string>
|
||||
<string name="tracking_info">همگام سازی یک طرفه برای به روز رسانی اطلاعات خواندن فصل در سایتهای خدمات ردیابی. برای ردیابی هر مانگا از تب ردیابی اقدام کنید.</string>
|
||||
<string name="webtoon_viewer">وب تون(Webtoon)</string>
|
||||
@ -144,7 +144,7 @@
|
||||
<string name="information_empty_library">کتابخانه خالی است, از قسمت مرور مانگاای اضافه کنید.</string>
|
||||
<string name="information_no_recent_manga">هیچ چیز مانگاای به تازگی خوانده شده</string>
|
||||
<string name="information_no_recent">هیچ فصل جدیدی یافت نشد</string>
|
||||
<string name="information_no_downloads">بارگیری فعالی وجود ندارد</string>
|
||||
<string name="information_no_downloads">صف خالی است</string>
|
||||
<string name="label_help">راهنما</string>
|
||||
<string name="label_extension_info">اطلاعات افزونه</string>
|
||||
<string name="label_extensions">افزونهها</string>
|
||||
@ -153,9 +153,9 @@
|
||||
<string name="label_categories">دسته بندی ها</string>
|
||||
<string name="label_sources">منابع</string>
|
||||
<string name="label_recent_manga">تاریخچه</string>
|
||||
<string name="label_recent_updates">بروزرسانیها</string>
|
||||
<string name="label_recent_updates">آپدیت ها</string>
|
||||
<string name="label_library">کتابخانه</string>
|
||||
<string name="label_download_queue">صف بارگیری</string>
|
||||
<string name="label_download_queue">صف دانلود</string>
|
||||
<string name="label_settings">تنضیمات</string>
|
||||
<string name="label_more">بیشتر</string>
|
||||
<string name="name">نام</string>
|
||||
@ -198,9 +198,9 @@
|
||||
<string name="pref_create_backup">تهیه نسخه پشتیبان</string>
|
||||
<string name="backup">پشتیبان گیری</string>
|
||||
<string name="pref_search_pinned_sources_only">فقط افزونههای پین شده شامل شوند</string>
|
||||
<string name="pref_enable_automatic_extension_updates">بررسی برای به افزونههای بروزرسانی شده</string>
|
||||
<string name="pref_enable_automatic_extension_updates">بررسی برای به افزونههای آپدیتشده</string>
|
||||
<string name="services">خدمات</string>
|
||||
<string name="pref_auto_update_manga_sync">بعد از خوانده شدن وضعیت فصل بروزرسانی شود</string>
|
||||
<string name="pref_auto_update_manga_sync">بعد از خواندهشدن، وضعیت فصل بروزرسانی شود</string>
|
||||
<string name="pref_download_new_categories">دسته بندی هایی که در دانلود شامل می شوند</string>
|
||||
<string name="pref_download_new">دانلود فصلهای جدید</string>
|
||||
<string name="fifth_to_last">پنجم به آخرین فصل خوانده شده</string>
|
||||
@ -248,7 +248,7 @@
|
||||
</plurals>
|
||||
<string name="action_bookmark">بوک مارک</string>
|
||||
<string name="channel_ext_updates">آپدیت افزونهها</string>
|
||||
<string name="channel_new_chapters">آپدیت فصل ها</string>
|
||||
<string name="channel_new_chapters">آپدیت فصلها</string>
|
||||
<string name="channel_library">کتابخانه</string>
|
||||
<string name="channel_common">عمومی</string>
|
||||
<string name="download_notifier_download_paused">دانلود متوقف شد</string>
|
||||
@ -259,7 +259,7 @@
|
||||
<string name="download_notifier_unknown_error">به دلیل خطای غیرمنتظره فصل دانلود نشد</string>
|
||||
<string name="download_notifier_title_error">خطا</string>
|
||||
<string name="download_notifier_downloader_title">سیستم دانلود</string>
|
||||
<string name="information_webview_outdated">لطفا برنامه WebView را برای سازگاری بهتر بروز کنید</string>
|
||||
<string name="information_webview_outdated">لطفا برنامه WebView را برای سازگاری بهتر آپدیت کنید</string>
|
||||
<string name="information_webview_required">WebView برای Tachiyomi مورد نیاز است</string>
|
||||
<string name="information_cloudflare_bypass_failure">عدم موفقیت در دور زدن Cloudflare</string>
|
||||
<string name="color_filter_a_value">opacity</string>
|
||||
@ -338,23 +338,23 @@
|
||||
<string name="ext_downloading">در حال بارگیری</string>
|
||||
<string name="ext_pending">در انتظار</string>
|
||||
<string name="ext_obsolete">منسوخ شده</string>
|
||||
<string name="ext_update">بروزرسانی</string>
|
||||
<string name="ext_updates_pending">بروزرسانیهای در انتظار</string>
|
||||
<string name="ext_update">آپدیت</string>
|
||||
<string name="ext_updates_pending">آپدیتهای در انتظار</string>
|
||||
<string name="all_lang">همه</string>
|
||||
<string name="all">همه</string>
|
||||
<string name="pref_library_update_categories">دسته بندی هایی که در به روزرسانی سراسری شامل می شوند</string>
|
||||
<string name="pref_library_update_categories">دستهبندیهایی که در به آپدیت سراسری شامل می شوند</string>
|
||||
<string name="default_category_summary">همیشه بپرس</string>
|
||||
<string name="default_category">کاتالوگ پیشفرض</string>
|
||||
<string name="pref_category_library_categories">کاتالوگها</string>
|
||||
<string name="pref_library_update_error_notification">خطاهای بروزرسانی در اعلان ها نمایش داده شود</string>
|
||||
<string name="pref_library_update_refresh_metadata_summary">وقتی کتابخانه بروزآوری میشود عکس روی جلد و اطلاعات مانگاها را نیز بروزآوری شود</string>
|
||||
<string name="pref_library_update_refresh_metadata">فراداده فقط به صورت خودکار بروز شود</string>
|
||||
<string name="pref_library_update_error_notification">خطاهای آپدیت در اعلانها نمایش داده شود</string>
|
||||
<string name="pref_library_update_refresh_metadata_summary">هنگام آپدیت عکس روی جلد و اطلاعات مانگا ها (در صورت تغییر) آپدیت شوند</string>
|
||||
<string name="pref_library_update_refresh_metadata">متادیتا فقط به صورت خودکار آپدیت شود</string>
|
||||
<string name="pref_update_only_non_completed">فقط مانگاهایی آپدیت شوند که تمام نشده</string>
|
||||
<string name="charging">درحال شارژ</string>
|
||||
<string name="wifi">وایفای</string>
|
||||
<string name="pref_library_update_restriction_summary">فقط وقتی بروز شود که شرایط برآورده میشوند</string>
|
||||
<string name="pref_library_update_restriction">محدودیتهای بروزرسانی کتابخانه</string>
|
||||
<string name="pref_library_update_prioritization">ترتیب بروزرسانی کتابخانه</string>
|
||||
<string name="pref_library_update_restriction_summary">در چه شرایطی کتابخانه آپدیت شود</string>
|
||||
<string name="pref_library_update_restriction">محدودیتهای آپدیت کتابخانه</string>
|
||||
<string name="pref_library_update_prioritization">ترتیب آپدیت کتابخانه</string>
|
||||
<string name="update_monthly">ماهانه</string>
|
||||
<string name="update_weekly">هفتگی</string>
|
||||
<string name="update_48hour">هر ۴۸ ساعت یکبار</string>
|
||||
@ -364,14 +364,14 @@
|
||||
<string name="update_6hour">هر ۶ ساعت یکبار</string>
|
||||
<string name="update_1hour">یک ساعت یکبار</string>
|
||||
<string name="update_never">فقط دستی</string>
|
||||
<string name="pref_library_update_interval">بروزرسانی کتابخانه چند وقت یکبار</string>
|
||||
<string name="pref_category_library_update">بروزرسانیها</string>
|
||||
<string name="pref_library_update_interval">فرکانس آپدیت کتابخانه</string>
|
||||
<string name="pref_category_library_update">آپدیتها</string>
|
||||
<string name="default_columns">پیشفرض</string>
|
||||
<string name="landscape">افقی</string>
|
||||
<string name="portrait">عمودی</string>
|
||||
<string name="pref_library_columns">موارد در هر ردیف</string>
|
||||
<string name="pref_category_display">نمایش</string>
|
||||
<string name="hide_notification_content">مخفی کردن ناتیفیکشنها</string>
|
||||
<string name="hide_notification_content">مخفی کردن اعلانها</string>
|
||||
<string name="secure_screen_summary">محتویات برنامه هنگام تعویض برنامه ها مخفی و از عکس گرفتن از صفحه برنامه جلوگیری شود</string>
|
||||
<string name="secure_screen">صفحه نمایش امن</string>
|
||||
<plurals name="lock_after_mins">
|
||||
@ -383,7 +383,7 @@
|
||||
<string name="lock_when_idle">قفل صفحه هنگام بیکاری</string>
|
||||
<string name="lock_with_biometrics">با بیومتریک قفل کنید</string>
|
||||
<string name="pref_category_security">امنیت</string>
|
||||
<string name="pref_manage_notifications">مدیریت ناتیفیکیشنها</string>
|
||||
<string name="pref_manage_notifications">مدیریت اعلانها</string>
|
||||
<string name="pref_confirm_exit">هنگام خروج از برنامه تایید گرفته شود</string>
|
||||
<string name="pref_date_format">فرمت تاریخ</string>
|
||||
<string name="system_default">پیشفرض سیستم</string>
|
||||
@ -407,7 +407,7 @@
|
||||
<string name="pref_category_reader">کتابخوان</string>
|
||||
<string name="pref_category_library">کتابخانه</string>
|
||||
<string name="pref_category_general">عمومی</string>
|
||||
<string name="short_recent_updates">بروزرسانیها</string>
|
||||
<string name="short_recent_updates">آپدیتها</string>
|
||||
<string name="app_not_available">برنامه موجود نیست</string>
|
||||
<string name="loading">درحال بارگیری…</string>
|
||||
<string name="action_webview_refresh">بازآوری</string>
|
||||
@ -480,7 +480,7 @@
|
||||
<string name="label_downloaded_only">فقط دانلود شده ها</string>
|
||||
<string name="pref_acra_summary">به رفع اشکالات برنامه کمک می کند. هیچ گونه داده حساسی ارسال نخواهد شد</string>
|
||||
<string name="pref_enable_acra">ارسال گزارش های خرابی</string>
|
||||
<string name="check_for_updates">بررسی برای به روز رسانی</string>
|
||||
<string name="check_for_updates">بررسی برای به آپدیتها</string>
|
||||
<string name="licenses">مجوزهای منبع باز</string>
|
||||
<string name="notices">اطلاعیه های نسخه پیش نمایش</string>
|
||||
<string name="build_time">زمان ساخت</string>
|
||||
@ -488,7 +488,7 @@
|
||||
<string name="website">وب سایت</string>
|
||||
<string name="battery_optimization_setting_activity_not_found">تنظیمات دستگاه باز نشد</string>
|
||||
<string name="battery_optimization_disabled">بهینه سازی باتری از قبل غیرفعال شده است</string>
|
||||
<string name="pref_disable_battery_optimization_summary">به بروزرسانی ها و پشتیبان گیری از کتابخانه در حالت پس زمینه کمک می کند</string>
|
||||
<string name="pref_disable_battery_optimization_summary">به بروزرسانیها و پشتیبانگیری از کتابخانه در حالت پس زمینه کمک میکند</string>
|
||||
<string name="pref_disable_battery_optimization">غیر فعال کردن بهینه سازی باتری</string>
|
||||
<string name="pref_refresh_library_covers">تازه کردن عکس روی جلد مانگاها</string>
|
||||
<string name="clear_database_completed">اطلاعات حذف شدند</string>
|
||||
@ -535,8 +535,8 @@
|
||||
<string name="action_edit">ویرایش</string>
|
||||
<string name="action_disable_all">غیر فعال کردن همه</string>
|
||||
<string name="action_enable_all">فعال کردن همه</string>
|
||||
<string name="action_update_library">به روز رسانی کتابخانه</string>
|
||||
<string name="action_update">بروز رسانی</string>
|
||||
<string name="action_update_library">آپدیت کتابخانه</string>
|
||||
<string name="action_update">آپدیت</string>
|
||||
<string name="action_delete">پاک کردن</string>
|
||||
<string name="action_remove_bookmark">حذف نشان</string>
|
||||
<string name="action_download">دانلود شود</string>
|
||||
@ -565,4 +565,38 @@
|
||||
<string name="chapters">فصلها</string>
|
||||
<string name="manga">مانگا</string>
|
||||
<string name="categories">کاتالوگها</string>
|
||||
<string name="group_backup_restore">پشتیبان گیری و بازیابی</string>
|
||||
<string name="group_downloader">دانلودها</string>
|
||||
<string name="channel_errors">خطاها</string>
|
||||
<string name="channel_complete">تکمیل شده</string>
|
||||
<string name="channel_progress">پیشرفت</string>
|
||||
<string name="download_notifier_download_finish">دانلود تکمیل شد</string>
|
||||
<string name="download_insufficient_space">به دلیل فضای کم دیسک امکان دانلود فصلها وجود ندارد</string>
|
||||
<string name="loader_not_implemented_error">منبع یافت نشد</string>
|
||||
<plurals name="num_trackers">
|
||||
<item quantity="one">۱ ردیاب</item>
|
||||
<item quantity="other">%d ردیاب</item>
|
||||
</plurals>
|
||||
<plurals name="manga_num_chapters">
|
||||
<item quantity="one">۱ فصل</item>
|
||||
<item quantity="other">%1$s فصل</item>
|
||||
</plurals>
|
||||
<string name="unknown_status">وضعیت ناشناخته</string>
|
||||
<string name="unknown_author">نویسنده ناشناخته</string>
|
||||
<string name="no_pinned_sources">شما هیچ منبع پینشدهای ندارید</string>
|
||||
<string name="action_global_search_query">«%1$s» در همه منابع جستجو شود</string>
|
||||
<string name="whats_new">اخبار</string>
|
||||
<string name="pref_dns_over_https_summary">برای اعمال تغییرات برنامه نیاز به راه اندازی مجدد دارد</string>
|
||||
<string name="label_network">شبکه</string>
|
||||
<string name="backup_restore_missing_trackers">ردیابیهایی که به سیستم وارد نشده اند:</string>
|
||||
<string name="pref_category_reading_mode">حالت خواندن</string>
|
||||
<string name="pref_jump_to_chapters">برنامه در تب فصلها باز شود</string>
|
||||
<string name="pref_category_locale">محلی</string>
|
||||
<string name="pref_category_theme">تم</string>
|
||||
<string name="action_sort_descending">نزولی</string>
|
||||
<string name="action_disable">غیرفعال کردن</string>
|
||||
<string name="action_open_in_settings">در تنظیمات باز شود</string>
|
||||
<string name="action_download_unread">دانلود فصلهای خواندهنشده</string>
|
||||
<string name="action_sort_date_added">تاریخ اضافه شدن</string>
|
||||
<string name="updated_version">به نسخه v%1$s آپدیت شد</string>
|
||||
</resources>
|
@ -249,8 +249,8 @@
|
||||
<string name="color_filter_a_value">Alpha</string>
|
||||
<string name="pref_download_directory">Lataus kansio</string>
|
||||
<string name="pref_download_only_over_wifi">Lataa vain Wi-Fi-yhteydellä</string>
|
||||
<string name="pref_remove_after_marked_as_read">Poista luetuksi merkitsemisen jälkeen</string>
|
||||
<string name="pref_remove_after_read">Poista lukemisen jälkeen</string>
|
||||
<string name="pref_remove_after_marked_as_read">Manuaalisesti luetuksi merkitsemisen jälkeen</string>
|
||||
<string name="pref_remove_after_read">Lukemisen jälkeen</string>
|
||||
<string name="custom_dir">Mukautettu kansio</string>
|
||||
<string name="disabled">Pois käytöstä</string>
|
||||
<string name="last_read_chapter">Viimeksi luettu luku</string>
|
||||
@ -603,4 +603,14 @@
|
||||
<string name="channel_complete">Valmis</string>
|
||||
<string name="channel_progress">Edistyminen</string>
|
||||
<string name="download_notifier_download_finish">Lataus valmis</string>
|
||||
<string name="channel_errors">Virheet</string>
|
||||
<string name="backup_restore_missing_trackers">Seurantapalvelimet joihin et ole kirjautunut sisään:</string>
|
||||
<string name="pref_allow_nsfw_sources_blocked">Estetty</string>
|
||||
<string name="pref_allow_nsfw_sources_allowed_multisource">Estä lähde, mutta näytä laajennusluettelossa</string>
|
||||
<string name="pref_allow_nsfw_sources_allowed">Sallittu</string>
|
||||
<string name="pref_allow_nsfw_sources">NSFW-lähteet</string>
|
||||
<string name="pref_remove_bookmarked_chapters">Poista kirjanmerkityt luvut</string>
|
||||
<string name="pref_category_delete_chapters">Poista luvut</string>
|
||||
<string name="ext_nsfw_warning">Voi sisältää 18+ sisältöä</string>
|
||||
<string name="ext_nsfw_short">18+</string>
|
||||
</resources>
|
@ -55,7 +55,7 @@
|
||||
<string name="action_edit_cover">Baguhin ang pabalat</string>
|
||||
<string name="action_move_category">Magtakda ng kategorya</string>
|
||||
<string name="action_add_category">Magdagdag</string>
|
||||
<string name="action_edit_categories">Isaayos</string>
|
||||
<string name="action_edit_categories">Ayusin</string>
|
||||
<string name="action_rename_category">Baguhin ang pangalan</string>
|
||||
<string name="action_add">Magdagdag</string>
|
||||
<string name="action_edit">Isaayos</string>
|
||||
@ -90,7 +90,7 @@
|
||||
<string name="confirm_exit">Pindutin muli para makaalis</string>
|
||||
<string name="unlock_app">Buksan ang Tachiyomi</string>
|
||||
<string name="history">Kasaysayan</string>
|
||||
<string name="track">Sinusundan</string>
|
||||
<string name="track">Sinusubaybayan</string>
|
||||
<string name="chapters">Mga Kabanata</string>
|
||||
<string name="manga">Mga Manga</string>
|
||||
<string name="categories">Mga Kategorya</string>
|
||||
@ -142,7 +142,7 @@
|
||||
<string name="pref_theme_mode">Madilim na tema</string>
|
||||
<string name="pref_category_about">Patungkol</string>
|
||||
<string name="pref_category_advanced">Higit pa</string>
|
||||
<string name="pref_category_tracking">Pagsunod</string>
|
||||
<string name="pref_category_tracking">Pagsubaybay</string>
|
||||
<string name="pref_category_downloads">Pag-download</string>
|
||||
<string name="pref_category_reader">Pagbása</string>
|
||||
<string name="pref_category_library">Aklatan</string>
|
||||
@ -154,8 +154,8 @@
|
||||
<string name="last_read_chapter">Huling nabásang kabanata</string>
|
||||
<string name="disabled">Sarado</string>
|
||||
<string name="custom_dir">Pinili kong lugar</string>
|
||||
<string name="pref_remove_after_marked_as_read">Burahin kung nabása na</string>
|
||||
<string name="pref_remove_after_read">Burahin matapos basahin</string>
|
||||
<string name="pref_remove_after_marked_as_read">Kung nabása na</string>
|
||||
<string name="pref_remove_after_read">Matapos basahin</string>
|
||||
<string name="pref_download_only_over_wifi">Mag-download lamang kapag naka-wifi</string>
|
||||
<string name="pref_download_directory">Lugar ng paglalagyan</string>
|
||||
<string name="webtoon_side_padding_25">25%</string>
|
||||
@ -253,7 +253,7 @@
|
||||
<string name="ext_install">I-install</string>
|
||||
<string name="ext_obsolete">Wala na</string>
|
||||
<string name="ext_update">Isapanahon</string>
|
||||
<string name="ext_updates_pending">Mga nakabinbin</string>
|
||||
<string name="ext_updates_pending">Isapanahon</string>
|
||||
<string name="all_lang">Lahat</string>
|
||||
<string name="all">Lahat</string>
|
||||
<string name="pref_library_update_categories">Kategoryang kasama sa panlahat na update</string>
|
||||
@ -262,7 +262,7 @@
|
||||
<item quantity="other">%d (na) kategorya</item>
|
||||
</plurals>
|
||||
<string name="default_category_summary">Palaging tanungin</string>
|
||||
<string name="default_category">Lagayan</string>
|
||||
<string name="default_category">Panimulang lagayan</string>
|
||||
<string name="pref_library_update_refresh_metadata_summary">Tumingin ng mga bagong pabalat at detalye tuwing nagsasapanahon</string>
|
||||
<string name="pref_library_update_error_notification">Abiso sa pagpalya ng update</string>
|
||||
<string name="pref_category_library_categories">Mga Kategorya</string>
|
||||
@ -294,7 +294,7 @@
|
||||
<string name="secure_screen_summary">Itago ang nilalaman ng app habang nagpapalit ng app at harangin ang mga screenshot</string>
|
||||
<string name="secure_screen">Bantayán ang iskrin</string>
|
||||
<string name="pref_jump_to_chapters">Buksan agad ang kabanata</string>
|
||||
<string name="pref_read_with_tapping_inverted">Baliktarin ang pag-tap</string>
|
||||
<string name="pref_read_with_tapping_inverted">Baliktad na pagpindot</string>
|
||||
<string name="backup_restore_missing_sources">Nawawalang (mga) pinagkunan:</string>
|
||||
<string name="invalid_backup_file_missing_manga">Walang manga ang backup.</string>
|
||||
<string name="invalid_backup_file_missing_data">May kulang na data ang file.</string>
|
||||
@ -311,9 +311,9 @@
|
||||
<string name="pref_create_backup_summ">Magagamit para maibalik ang kasalukuyang Aklatan</string>
|
||||
<string name="pref_create_backup">Gumawa ng backup</string>
|
||||
<string name="backup">Pag-backup</string>
|
||||
<string name="pref_search_pinned_sources_only">Isama lamang ang mga naka-pin na pinagkukunan</string>
|
||||
<string name="pref_search_pinned_sources_only">Isama lamang ang mga naka-pin</string>
|
||||
<string name="pref_enable_automatic_extension_updates">Tumingin ng update sa dugtong</string>
|
||||
<string name="tracking_info">Isahang pagsabay (sync) para ma-update ang bilang ng nabásang kabanata sa mga serbisyo ng panunundan (tracking services). Isaayos ang Pagsunod para sa mga manga sa kanilang mga tab ng Pagsunod.</string>
|
||||
<string name="tracking_info">Isahang pagsabay (sync) para ma-update ang bilang ng nabásang kabanata sa mga tagasubaybay (tracking services). Isaayos ang Pagsubaybay para sa mga manga sa kanilang mga tab ng Pagsubaybay.</string>
|
||||
<string name="services">Mga Serbisyo</string>
|
||||
<string name="pref_auto_update_manga_sync">I-update ang bahagdang nabása pagkabása</string>
|
||||
<string name="pref_download_new_categories">Mga kategoryang kasama sa download</string>
|
||||
@ -330,7 +330,7 @@
|
||||
<string name="tapping_inverted_vertical">Patayo</string>
|
||||
<string name="tapping_inverted_horizontal">Pahiga</string>
|
||||
<string name="channel_ext_updates">Mga update sa dugtong</string>
|
||||
<string name="tapping_inverted_none">Wala</string>
|
||||
<string name="tapping_inverted_none">Hindi</string>
|
||||
<string name="channel_new_chapters">Mga update sa kabanata</string>
|
||||
<string name="channel_library">Aklatan</string>
|
||||
<string name="channel_common">Komon</string>
|
||||
@ -356,7 +356,7 @@
|
||||
<string name="update_check_notification_download_in_progress">Dina-download…</string>
|
||||
<string name="update_check_notification_file_download">I-download ang update</string>
|
||||
<string name="update_check_look_for_updates">Naghahanap ng mga update…</string>
|
||||
<string name="update_check_no_new_updates">Walang mga bagong update</string>
|
||||
<string name="update_check_no_new_updates">Walang bagong update</string>
|
||||
<string name="update_check_ignore">Balewalain</string>
|
||||
<string name="update_check_confirm">I-download</string>
|
||||
<string name="file_select_icon">Pumili ng shortcut icon</string>
|
||||
@ -394,7 +394,7 @@
|
||||
<string name="download_queue_error">Di ma-download ang (mga) kabanata. Maaari mo uli itong subukan sa Mga Dina-download</string>
|
||||
<string name="copy">Kopyahin</string>
|
||||
<string name="migrate">Lumipat</string>
|
||||
<string name="migration_selection_prompt">Pumili ng paglilipatang pinagkukunan</string>
|
||||
<string name="migration_selection_prompt">Pumili ng paglilipatan</string>
|
||||
<string name="migration_dialog_what_to_include">Pumili ng data na isasama</string>
|
||||
<string name="migration_info">Pindutin para makapili ng lilipatang pinagkukunan</string>
|
||||
<string name="recent_manga_time">Kab. %1$s - %2$s</string>
|
||||
@ -445,7 +445,7 @@
|
||||
<string name="plan_to_read">Binabalak</string>
|
||||
<string name="paused">Hininto</string>
|
||||
<string name="on_hold">Tinigil</string>
|
||||
<string name="completed">Natapos</string>
|
||||
<string name="completed">Tapos na</string>
|
||||
<string name="dropped">Binitawan</string>
|
||||
<string name="currently_reading">Kasalukuyang binabása</string>
|
||||
<string name="reading">Binabása</string>
|
||||
@ -513,7 +513,7 @@
|
||||
<string name="pinned_sources">Naka-pin</string>
|
||||
<string name="last_used_source">Huling ginamit</string>
|
||||
<string name="other_source">Iba pa</string>
|
||||
<string name="local_source">Lokál na bukál</string>
|
||||
<string name="local_source">Lokál na pinagkukunan</string>
|
||||
<string name="http_error_hint">Bisitahin ang site sa WebView</string>
|
||||
<string name="no_results_found">Walang resultang nakita</string>
|
||||
<string name="no_more_results">Wala na\'ng (mga) resulta</string>
|
||||
@ -535,15 +535,15 @@
|
||||
<string name="login_success">Naka-login ka na</string>
|
||||
<string name="login">Mag-login</string>
|
||||
<string name="show_password">Ipakita ang password</string>
|
||||
<string name="password">Password</string>
|
||||
<string name="password">Hudyat (password)</string>
|
||||
<string name="email">Email address</string>
|
||||
<string name="username">Sagisag</string>
|
||||
<string name="username">Sagisag (username)</string>
|
||||
<string name="login_title">Mag-login sa %1$s</string>
|
||||
<plurals name="download_queue_summary">
|
||||
<item quantity="one">Isa na lang ang natitira</item>
|
||||
<item quantity="other">%1$s na lang ang natitira</item>
|
||||
</plurals>
|
||||
<string name="downloaded_only_summary">Sinasala ang lahat ng manga ng Aklatan</string>
|
||||
<string name="downloaded_only_summary">Isalâ ang Aklatan</string>
|
||||
<string name="label_downloaded_only">Mga na-download lang</string>
|
||||
<string name="pref_acra_summary">Nakatutulong sa pag-ayos sa mga bug. Walang sensitibong data ang ipapadala</string>
|
||||
<string name="pref_enable_acra">Ipadala ang mga ulat ng pag-crash</string>
|
||||
@ -559,8 +559,8 @@
|
||||
<string name="battery_optimization_disabled">Nakapatay na ang pag-o-optimisa sa baterya</string>
|
||||
<string name="pref_disable_battery_optimization">Patayin ang pag-o-optimisa sa baterya</string>
|
||||
<string name="pref_disable_battery_optimization_summary">Nakatutulong sa gawaing-likuran na pagsasapanahon at pag-backup</string>
|
||||
<string name="pref_refresh_library_tracking_summary">Inia-update ang estado, iskor, at huling nabásang kabanata mula sa mga serbisyo ng panunundan</string>
|
||||
<string name="pref_refresh_library_tracking">Sariwain ang pagsunod</string>
|
||||
<string name="pref_refresh_library_tracking_summary">Inia-update ang estado, iskor, at huling nabásang kabanata mula sa mga tagasubaybay (tracking services)</string>
|
||||
<string name="pref_refresh_library_tracking">Sariwain ang pagsubaybay</string>
|
||||
<string name="pref_refresh_library_covers">Sariwain ang pabalat ng mga manga</string>
|
||||
<string name="clear_database_completed">Binura na</string>
|
||||
<string name="clear_database_confirmation">Sigurado ka ba\? Mawawala ang datos ng mga manga na wala sa Aklatan mo</string>
|
||||
@ -584,18 +584,31 @@
|
||||
<item quantity="other">Naibalik sa loob ng %1$s na may %2$s (na) mga error</item>
|
||||
</plurals>
|
||||
<string name="restore_completed">Naibalik na</string>
|
||||
<string name="backup_restore_content">Ginagamit ng Pagbalik ang mga pinagkukunan para makuha ang mga data, maaaring makagastos ka dahil rito.
|
||||
<string name="backup_restore_content">Ginagamit ng Pagbalik ang mga pinagkukunan para kunin ang data, maaari kang makagastos dahil rito.
|
||||
\n
|
||||
\nSiguraduhin mong na-install mo na ang lahat ng mga kinakailangang dugtong at naka-login ka na sa mga pinagkukunan at serbisyo ng panunundan bago ka magpanumbalik.</string>
|
||||
<string name="restoring_backup">Pinapanumbalik</string>
|
||||
\nSiguraduhing na-install mo na ang mga lahat ng mga kinakailangang dugtong at naka-login ka na sa lahat ng mga pinagkukunan at tagasubaybay (tracking services) bago mo simulan ang pagbalik.</string>
|
||||
<string name="restoring_backup">Binabalik</string>
|
||||
<string name="creating_backup_error">Pumalya sa pag-backup</string>
|
||||
<string name="creating_backup">Bina-backup</string>
|
||||
<string name="backup_choice">Anong gusto mong i-backup\?</string>
|
||||
<string name="backup_choice">Anong iba-backup mo\?</string>
|
||||
<string name="backup_in_progress">Bina-backup na</string>
|
||||
<string name="restore_duration">%02d (na) min, %02d (na) seg</string>
|
||||
<plurals name="num_trackers">
|
||||
<item quantity="one">Isang tagatunton</item>
|
||||
<item quantity="other">%d (na) tagatunton</item>
|
||||
<item quantity="one">Isang tagasubaybay</item>
|
||||
<item quantity="other">%d (na) tagasubaybay</item>
|
||||
</plurals>
|
||||
<string name="no_pinned_sources">Wala kang naka-pin na pinagkukunan</string>
|
||||
<string name="group_backup_restore">Pag-backup at Pagbalik</string>
|
||||
<string name="group_downloader">Mga Download</string>
|
||||
<string name="channel_complete">Tapos na</string>
|
||||
<string name="channel_errors">Mga Error</string>
|
||||
<string name="channel_progress">Takbo</string>
|
||||
<string name="download_notifier_download_finish">Tapos na sa pag-download</string>
|
||||
<string name="backup_restore_missing_trackers">Di naka-login sa (mga) tagasubaybay:</string>
|
||||
<string name="pref_allow_nsfw_sources_allowed_multisource">Harangan pero ipakita sa Mga Dugtong</string>
|
||||
<string name="pref_allow_nsfw_sources_blocked">Harangan</string>
|
||||
<string name="pref_allow_nsfw_sources_allowed">Payagan</string>
|
||||
<string name="pref_allow_nsfw_sources">Mga NSFW</string>
|
||||
<string name="pref_remove_bookmarked_chapters">Burahin ang mga tinandaan</string>
|
||||
<string name="pref_category_delete_chapters">Magbura ng kabanata</string>
|
||||
</resources>
|
@ -593,4 +593,7 @@
|
||||
<string name="channel_progress">Kemajuan</string>
|
||||
<string name="download_notifier_download_finish">Unduhan selesai</string>
|
||||
<string name="channel_errors">error</string>
|
||||
<string name="backup_restore_missing_trackers">Pelacakan tidak tersinkronisasi di:</string>
|
||||
<string name="pref_allow_nsfw_sources_allowed">Diizinkan</string>
|
||||
<string name="pref_allow_nsfw_sources">Sumber NSFW</string>
|
||||
</resources>
|
@ -3,8 +3,8 @@
|
||||
<string name="name">Nome</string>
|
||||
<!-- Activities and fragments labels (toolbar title) -->
|
||||
<string name="label_settings">Impostazioni</string>
|
||||
<string name="label_download_queue">Coda degli scaricamenti</string>
|
||||
<string name="label_library">Collezione</string>
|
||||
<string name="label_download_queue">Coda di download</string>
|
||||
<string name="label_library">Libreria</string>
|
||||
<string name="label_recent_manga">Cronologia</string>
|
||||
<string name="label_recent_updates">Aggiornamenti</string>
|
||||
<string name="label_categories">Categorie</string>
|
||||
@ -17,7 +17,7 @@
|
||||
<string name="action_filter_unread">Non letti</string>
|
||||
<string name="action_filter_read">Letti</string>
|
||||
<string name="action_filter_empty">Rimuovi filtri</string>
|
||||
<string name="action_sort_alpha">In ordine alfabetico</string>
|
||||
<string name="action_sort_alpha">Ordine alfabetico</string>
|
||||
<string name="action_sort_last_read">Ultimi letti</string>
|
||||
<string name="action_search">Ricerca</string>
|
||||
<string name="action_select_all">Seleziona tutto</string>
|
||||
@ -251,7 +251,7 @@
|
||||
<!-- Downloads activity and service -->
|
||||
<string name="download_queue_error">Impossibile scaricare i capitoli. Puoi provare di nuovo nella sezione scaricamento</string>
|
||||
<!-- Library update service notifications -->
|
||||
<string name="notification_update_progress">Progressione aggiornamento: %1$d/%2$d</string>
|
||||
<string name="notification_update_progress">Progresso dell\'aggiornamento: %1$d/%2$d</string>
|
||||
<string name="notification_new_chapters">Nuovi capitoli trovati</string>
|
||||
<string name="notification_cover_update_failed">Impossibile aggiornare la copertina</string>
|
||||
<string name="notification_first_add_to_library">Prima di compiere questa azione per favore aggiungi il manga alla libreria</string>
|
||||
@ -270,15 +270,15 @@
|
||||
<string name="update_check_look_for_updates">Ricerca aggiornamenti…</string>
|
||||
<!--UpdateCheck Notifications-->
|
||||
<string name="update_check_notification_file_download">Scarica aggiornamento</string>
|
||||
<string name="update_check_notification_download_in_progress">Scaricamento…</string>
|
||||
<string name="update_check_notification_download_complete">Scaricamento completato</string>
|
||||
<string name="update_check_notification_download_error">Errore di scaricamento</string>
|
||||
<string name="update_check_notification_download_in_progress">Download in corso…</string>
|
||||
<string name="update_check_notification_download_complete">Download completato</string>
|
||||
<string name="update_check_notification_download_error">Errore di download</string>
|
||||
<string name="update_check_notification_update_available">Aggiornamento disponibile!</string>
|
||||
<!--Content Description-->
|
||||
<string name="description_cover">Copertina del manga</string>
|
||||
<!-- Information Text -->
|
||||
<string name="information_no_downloads">Nessuno scaricamento</string>
|
||||
<string name="information_no_recent">Nessun aggiornamento recenti</string>
|
||||
<string name="information_no_downloads">Nessun download in coda</string>
|
||||
<string name="information_no_recent">Nessun aggiornamento recente</string>
|
||||
<string name="information_no_recent_manga">Non è stato letto niente di recente</string>
|
||||
<string name="information_empty_library">La tua libreria è vuota. Aggiungi dei contenuti alla tua libreria dalle fonti.</string>
|
||||
<!-- Download Notification -->
|
||||
@ -340,7 +340,7 @@
|
||||
<string name="download_notifier_download_paused">Scaricamento in pausa</string>
|
||||
<string name="label_migration">Migrazione etichette</string>
|
||||
<string name="label_extensions">Estensioni</string>
|
||||
<string name="label_extension_info">Info estensioni</string>
|
||||
<string name="label_extension_info">Info estensione</string>
|
||||
<string name="action_global_search">Ricerca globale</string>
|
||||
<string name="action_display_download_badge">Indicatore capitoli scaricati</string>
|
||||
<string name="action_reset">Reimposta</string>
|
||||
@ -630,4 +630,5 @@
|
||||
<item quantity="one">1 tracciatore</item>
|
||||
<item quantity="other">%d tracciatori</item>
|
||||
</plurals>
|
||||
<string name="channel_progress">Progresso</string>
|
||||
</resources>
|
@ -14,14 +14,14 @@
|
||||
<string name="label_backup">バックアップ</string>
|
||||
<string name="action_settings">設定</string>
|
||||
<string name="action_filter">フィルター</string>
|
||||
<string name="action_filter_downloaded">ダウンロードした</string>
|
||||
<string name="action_filter_downloaded">ダウンロード済み</string>
|
||||
<string name="action_filter_bookmarked">お気に入り</string>
|
||||
<string name="action_filter_unread">未読</string>
|
||||
<string name="action_filter_read">既読</string>
|
||||
<string name="action_filter_empty">フィルタを削除</string>
|
||||
<string name="action_sort_alpha">アルファベット順</string>
|
||||
<string name="action_sort_total">すべての章</string>
|
||||
<string name="action_sort_last_read">最後に読んだ</string>
|
||||
<string name="action_sort_total">章の数順</string>
|
||||
<string name="action_sort_last_read">最後に読んだ日時順</string>
|
||||
<string name="action_search">検索</string>
|
||||
<string name="action_global_search">グローバル検索</string>
|
||||
<string name="action_select_all">すべて選択</string>
|
||||
@ -53,7 +53,7 @@
|
||||
<string name="action_open_in_browser">ブラウザで開く</string>
|
||||
<string name="action_display_mode">表示モード</string>
|
||||
<string name="action_display">表示</string>
|
||||
<string name="action_display_download_badge">バッジをダウンロードする</string>
|
||||
<string name="action_display_download_badge">ダウンロードバッジ</string>
|
||||
<string name="action_cancel">キャンセル</string>
|
||||
<string name="action_share">シェア</string>
|
||||
<string name="action_save">保存</string>
|
||||
@ -399,7 +399,7 @@
|
||||
<string name="want_to_read">読みたい</string>
|
||||
<string name="other_source">他</string>
|
||||
<string name="label_more">その他</string>
|
||||
<string name="action_sort_latest_chapter">最新章</string>
|
||||
<string name="action_sort_latest_chapter">最新章の更新日付順</string>
|
||||
<string name="action_view_chapters">章を見る</string>
|
||||
<string name="action_cancel_all">全てキャンセル</string>
|
||||
<string name="pref_theme_mode">ダークモード</string>
|
||||
@ -439,7 +439,7 @@
|
||||
<string name="label_downloaded_only">ダウンロード済みのみ</string>
|
||||
<string name="check_for_updates">更新を確認</string>
|
||||
<string name="licenses">オープンソースライセンス</string>
|
||||
<string name="notices">ビルド通知をプレビュー</string>
|
||||
<string name="notices">プレビュービルドの更新情報</string>
|
||||
<string name="website">Webサイト</string>
|
||||
<string name="battery_optimization_setting_activity_not_found">デバイス設定を開きませんでした</string>
|
||||
<string name="battery_optimization_disabled">バッテリー最適化は既に無効です</string>
|
||||
@ -591,5 +591,6 @@
|
||||
<string name="action_global_search_query">グローバルで「%1$s」を探す</string>
|
||||
<string name="pref_category_locale">ロカール</string>
|
||||
<string name="pref_category_theme">テーマ</string>
|
||||
<string name="action_sort_date_added">日付</string>
|
||||
<string name="action_sort_date_added">ライブラリへの追加日付順</string>
|
||||
<string name="channel_errors">エラー</string>
|
||||
</resources>
|
@ -154,8 +154,8 @@
|
||||
<string name="color_filter_a_value">A</string>
|
||||
<string name="pref_download_directory">Lokasi muat turun</string>
|
||||
<string name="pref_download_only_over_wifi">Hanya muat turun melalui Wi-Fi</string>
|
||||
<string name="pref_remove_after_marked_as_read">Padam apabila ditandakan sebagai dibaca</string>
|
||||
<string name="pref_remove_after_read">Padam setelah dibaca</string>
|
||||
<string name="pref_remove_after_marked_as_read">Selepas ditandakan sebagai dibaca secara manual</string>
|
||||
<string name="pref_remove_after_read">Setelah membaca</string>
|
||||
<string name="custom_dir">Lokasi tersuai</string>
|
||||
<string name="disabled">Dinyahaktifkan</string>
|
||||
<string name="last_read_chapter">Bab terakhir dibaca</string>
|
||||
@ -592,4 +592,14 @@
|
||||
<string name="group_backup_restore">Sandaran dan memulih</string>
|
||||
<string name="group_downloader">Muat turun</string>
|
||||
<string name="channel_complete">Selesai</string>
|
||||
<string name="channel_errors">Ralat</string>
|
||||
<string name="backup_restore_missing_trackers">Penjejak yang tidak dilog masuk:</string>
|
||||
<string name="pref_allow_nsfw_sources">Sumber NSFW</string>
|
||||
<string name="pref_allow_nsfw_sources_blocked">Disekat</string>
|
||||
<string name="pref_allow_nsfw_sources_allowed_multisource">Sekat sumber tetapi tunjuk dalam senarai sambungan</string>
|
||||
<string name="pref_allow_nsfw_sources_allowed">Dibenarkan</string>
|
||||
<string name="pref_remove_bookmarked_chapters">Padam bab yang ditanda</string>
|
||||
<string name="pref_category_delete_chapters">Padam bab</string>
|
||||
<string name="ext_nsfw_warning">Mungkin mengandungi kandungan 18+ tahun keatas</string>
|
||||
<string name="ext_nsfw_short">18+</string>
|
||||
</resources>
|
@ -97,7 +97,7 @@
|
||||
<string name="charging">Lading</string>
|
||||
<string name="pref_start_screen">Startskjerm</string>
|
||||
<string name="pref_language">Språk</string>
|
||||
<string name="system_default">Systemforvalg</string>
|
||||
<string name="system_default">Forvalg</string>
|
||||
<string name="default_category">Forvalgt kategori</string>
|
||||
<string name="default_category_summary">Alltid spør</string>
|
||||
<string name="all_lang">Alle</string>
|
||||
@ -116,7 +116,7 @@
|
||||
<string name="ext_language_info">Språk: %1$s</string>
|
||||
<string name="pref_fullscreen">Fullskjermsvisning</string>
|
||||
<string name="pref_lock_orientation">Lås sideretning</string>
|
||||
<string name="pref_page_transitions">Sideoverganger</string>
|
||||
<string name="pref_page_transitions">Sideovergangsanimasjoner</string>
|
||||
<string name="pref_show_page_number">Vis sidenummer</string>
|
||||
<string name="pref_keep_screen_on">Behold skjerm på</string>
|
||||
<string name="pref_reader_navigation">Navigasjon</string>
|
||||
@ -335,7 +335,7 @@
|
||||
<string name="filter_mode_screen">Skjerm</string>
|
||||
<string name="label_help">Hjelp</string>
|
||||
<string name="action_display_download_badge">Last ned merker</string>
|
||||
<string name="pref_library_columns">Bibliotekmanga per rad</string>
|
||||
<string name="pref_library_columns">Elementer per rad</string>
|
||||
<string name="untrusted_extension_message">Denne utvidelsen ble signert med et usikkert sertifikat, og ble dermed ikke aktivert
|
||||
\n
|
||||
\nEn skadelig utvidelse kan lese innloggingsdetaljer lagret i Tachiyomi, eller kjøre ukjent kode.
|
||||
@ -562,4 +562,14 @@
|
||||
<string name="action_sort_descending">Fallende</string>
|
||||
<string name="action_download_unread">Last ned uleste kapittel</string>
|
||||
<string name="action_sort_date_added">Dato lagt til</string>
|
||||
<string name="pref_category_locale">Språk</string>
|
||||
<string name="ext_updates_pending">Oppdateringer som venter</string>
|
||||
<string name="pref_category_reading_mode">Lesemodus</string>
|
||||
<string name="pref_show_reading_mode_summary">Sniktitt av nåværende modus når leseren åpnes</string>
|
||||
<string name="group_backup_restore">Sikkerhetskopier og gjenopprett</string>
|
||||
<string name="group_downloader">Nedlastninger</string>
|
||||
<string name="channel_errors">Feil</string>
|
||||
<string name="channel_complete">Fullført</string>
|
||||
<string name="notification_chapters_single_and_more">Kapittel %1$s og %2$s til</string>
|
||||
<string name="no_pinned_sources">Du har ingen festede kilder</string>
|
||||
</resources>
|
@ -253,8 +253,8 @@
|
||||
<string name="pref_zoom_start">Zoom startpositie</string>
|
||||
<string name="rotation_force_portrait">Forceer staand</string>
|
||||
<string name="rotation_force_landscape">Forceer liggend</string>
|
||||
<string name="pref_remove_after_marked_as_read">Verwijder wanneer gemarkeerd als gelezen</string>
|
||||
<string name="pref_remove_after_read">Verwijder na lezen</string>
|
||||
<string name="pref_remove_after_marked_as_read">Nadat ze handmatig gemarkeerd zijn als gelezen</string>
|
||||
<string name="pref_remove_after_read">Na het lezen</string>
|
||||
<string name="disabled">Uitgeschakeld</string>
|
||||
<string name="fourth_to_last">Drie-na-laatste hoofdstuk</string>
|
||||
<string name="fifth_to_last">Vier-na-laatste hoofdstuk</string>
|
||||
@ -603,4 +603,12 @@
|
||||
<string name="channel_complete">Voltooid</string>
|
||||
<string name="channel_progress">Voortgang</string>
|
||||
<string name="download_notifier_download_finish">Download voltooid</string>
|
||||
<string name="channel_errors">Fouten</string>
|
||||
<string name="backup_restore_missing_trackers">Niet-ingelogde trackers:</string>
|
||||
<string name="pref_allow_nsfw_sources_blocked">Geblokkeerd</string>
|
||||
<string name="pref_allow_nsfw_sources_allowed_multisource">Blokkeer bron, maar laat wel zien in lijst van extensies</string>
|
||||
<string name="pref_allow_nsfw_sources_allowed">Toegestaan</string>
|
||||
<string name="pref_allow_nsfw_sources">NSFW-bronnen</string>
|
||||
<string name="pref_remove_bookmarked_chapters">Verwijder hoofdstukken met bladwijzers</string>
|
||||
<string name="pref_category_delete_chapters">Hoofdstukken verwijderen</string>
|
||||
</resources>
|
@ -22,7 +22,7 @@
|
||||
<string name="action_filter_empty">Remover filtros</string>
|
||||
<string name="action_sort_alpha">Alfabeticamente</string>
|
||||
<string name="action_sort_total">Total de capítulos</string>
|
||||
<string name="action_sort_last_read">Última leitura</string>
|
||||
<string name="action_sort_last_read">Lido por último</string>
|
||||
<string name="action_search">Pesquisar</string>
|
||||
<string name="action_select_all">Selecionar tudo</string>
|
||||
<string name="action_mark_as_read">Marcar como lido</string>
|
||||
@ -151,8 +151,8 @@
|
||||
<string name="color_filter_a_value">A</string>
|
||||
<string name="pref_download_directory">Local de download</string>
|
||||
<string name="pref_download_only_over_wifi">Fazer download apenas via Wi-Fi</string>
|
||||
<string name="pref_remove_after_marked_as_read">Excluir ao marcar como lido</string>
|
||||
<string name="pref_remove_after_read">Excluir após a leitura</string>
|
||||
<string name="pref_remove_after_marked_as_read">Após marcado manualmente como lido</string>
|
||||
<string name="pref_remove_after_read">Após a leitura</string>
|
||||
<string name="custom_dir">Local personalizado</string>
|
||||
<string name="disabled">Desativado</string>
|
||||
<string name="last_read_chapter">Último capítulo lido</string>
|
||||
@ -250,7 +250,7 @@
|
||||
<string name="completed">Concluído</string>
|
||||
<string name="dropped">Abandonado</string>
|
||||
<string name="on_hold">Em espera</string>
|
||||
<string name="plan_to_read">Ler depois</string>
|
||||
<string name="plan_to_read">Planejo ler</string>
|
||||
<string name="score">Avaliação</string>
|
||||
<string name="title">Título</string>
|
||||
<string name="status">Estado</string>
|
||||
@ -320,7 +320,7 @@
|
||||
<string name="channel_library">Biblioteca</string>
|
||||
<string name="action_display_download_badge">Selos de disponível offline</string>
|
||||
<string name="local_source_badge">Local</string>
|
||||
<string name="information_empty_category">Você ainda não tem nenhuma categoria. Toque no botão Adicionar para criar uma para organizar a sua biblioteca.</string>
|
||||
<string name="information_empty_category">Você ainda não tem nenhuma categoria. Toque no botão Adicionar para criar uma e organizar a sua biblioteca.</string>
|
||||
<string name="label_migration">Migrar</string>
|
||||
<string name="label_extensions">Extensões</string>
|
||||
<string name="label_extension_info">Informações da extensão</string>
|
||||
@ -467,7 +467,7 @@
|
||||
<string name="action_oldest">Mais antigos</string>
|
||||
<string name="action_move_to_top">Mover para o topo</string>
|
||||
<string name="action_move_to_bottom">Mover para o final</string>
|
||||
<string name="action_sort_last_checked">Última verificação</string>
|
||||
<string name="action_sort_last_checked">Último verificado</string>
|
||||
<string name="pref_enable_automatic_extension_updates">Procurar por atualizações de extensão</string>
|
||||
<plurals name="update_check_notification_ext_updates">
|
||||
<item quantity="one">Atualização de extensão disponível</item>
|
||||
@ -604,4 +604,13 @@
|
||||
<string name="group_downloader">Downloads</string>
|
||||
<string name="channel_complete">Concluído</string>
|
||||
<string name="channel_errors">Erros</string>
|
||||
<string name="backup_restore_missing_trackers">Monitoradores sem login realizado:</string>
|
||||
<string name="pref_allow_nsfw_sources">Fontes NSFW</string>
|
||||
<string name="pref_allow_nsfw_sources_allowed_multisource">Bloquear fonte, mas exibi-la na lista de extensões</string>
|
||||
<string name="pref_allow_nsfw_sources_blocked">Bloqueado</string>
|
||||
<string name="pref_allow_nsfw_sources_allowed">Permitido</string>
|
||||
<string name="pref_remove_bookmarked_chapters">Excluir capítulos favoritos</string>
|
||||
<string name="pref_category_delete_chapters">Excluir capítulos</string>
|
||||
<string name="ext_nsfw_warning">Pode haver conteúdo para maiores de 18 anos</string>
|
||||
<string name="ext_nsfw_short">18+</string>
|
||||
</resources>
|
@ -633,4 +633,6 @@
|
||||
<string name="channel_complete">Completo</string>
|
||||
<string name="channel_progress">Progresso</string>
|
||||
<string name="download_notifier_download_finish">Transferência concluída</string>
|
||||
<string name="channel_errors">Erros</string>
|
||||
<string name="backup_restore_missing_trackers">Monitorizadores sem sessão iniciada:</string>
|
||||
</resources>
|
@ -192,8 +192,8 @@
|
||||
<string name="pref_read_with_volume_keys">Клавиши громкости</string>
|
||||
<string name="pref_reader_navigation">Навигация</string>
|
||||
<string name="pref_reader_theme">Цвет фона</string>
|
||||
<string name="pref_remove_after_marked_as_read">Удалить когда отмечена как прочитанная</string>
|
||||
<string name="pref_remove_after_read">Удалять после прочтения</string>
|
||||
<string name="pref_remove_after_marked_as_read">После того, как было помечено вручную как прочитано</string>
|
||||
<string name="pref_remove_after_read">После прочтения</string>
|
||||
<string name="pref_rotation_type">Ориентация</string>
|
||||
<string name="pref_show_page_number">Показывать номер страницы</string>
|
||||
<string name="pref_start_screen">Стартовый экран</string>
|
||||
@ -622,4 +622,13 @@
|
||||
<string name="channel_complete">Завершено</string>
|
||||
<string name="channel_progress">Прогресс</string>
|
||||
<string name="channel_errors">Ошибки</string>
|
||||
<string name="backup_restore_missing_trackers">Трекеры не авторизованы:</string>
|
||||
<string name="pref_allow_nsfw_sources">NSFW источники</string>
|
||||
<string name="pref_allow_nsfw_sources_blocked">Заблокировано</string>
|
||||
<string name="pref_allow_nsfw_sources_allowed_multisource">Блокировать источник, но отображать его в списке расширений</string>
|
||||
<string name="pref_allow_nsfw_sources_allowed">Разрешено</string>
|
||||
<string name="pref_remove_bookmarked_chapters">Удалить главы с закладками</string>
|
||||
<string name="pref_category_delete_chapters">Удалить главы</string>
|
||||
<string name="ext_nsfw_warning">Может содержать контент 18+</string>
|
||||
<string name="ext_nsfw_short">18+</string>
|
||||
</resources>
|
447
app/src/main/res/values-sah/strings.xml
Normal file
447
app/src/main/res/values-sah/strings.xml
Normal file
@ -0,0 +1,447 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="action_add">Киллэр</string>
|
||||
<string name="action_edit">Уларыт</string>
|
||||
<string name="action_disable_all">Барытын араар</string>
|
||||
<string name="action_enable_all">Барытын холбоо</string>
|
||||
<string name="action_update_library">Библиотеканы саҥардыы</string>
|
||||
<string name="action_update">Саҥардыы</string>
|
||||
<string name="action_delete">Сотон кэбис</string>
|
||||
<string name="action_remove_bookmark">Кыбытыыны хомуй</string>
|
||||
<string name="action_bookmark">Кыбытыы</string>
|
||||
<string name="action_download_unread">Ааҕыллыбатах түһүмэҕи хачайдаа</string>
|
||||
<string name="action_download">Хачайдаа</string>
|
||||
<string name="action_mark_previous_as_read">Ааспыты аахтым диэн бэлиэтээ</string>
|
||||
<string name="action_mark_as_unread">Аахпатым диэн бэлиэтээ</string>
|
||||
<string name="action_mark_as_read">Аахтым диэн бэлиэтээ</string>
|
||||
<string name="action_select_inverse">Төттөрөтүн тал</string>
|
||||
<string name="action_select_all">Барытын тал</string>
|
||||
<string name="action_global_search">Толору көрдөөһүн</string>
|
||||
<string name="action_search">Көрдөөһүн</string>
|
||||
<string name="action_sort_date_added">Киирбит кэмэ</string>
|
||||
<string name="action_sort_latest_chapter">Бүтэһик түһүмэх</string>
|
||||
<string name="action_sort_last_checked">Бүтэһигинэн көрүллүбүт</string>
|
||||
<string name="action_sort_last_read">Бүтэһигинэн ааҕыллыбыт</string>
|
||||
<string name="action_sort_total">Түһүмэх ахсаанынан</string>
|
||||
<string name="action_sort_alpha">Алпаабыт бэрээдэгинэн</string>
|
||||
<string name="action_filter_empty">Биилтирэни ылыы</string>
|
||||
<string name="action_filter_read">Ааҕыллыбыт</string>
|
||||
<string name="action_filter_unread">Ааҕыллыбатах</string>
|
||||
<string name="action_filter_bookmarked">Кыбытыы</string>
|
||||
<string name="action_filter_downloaded">Хачайдаммыт</string>
|
||||
<string name="action_filter">Биилтирэ</string>
|
||||
<string name="action_menu">Талба</string>
|
||||
<string name="action_settings">Түстэл</string>
|
||||
<string name="confirm_exit">Өссө биирдэ төттөрүнү баттаан, тахсар курдук</string>
|
||||
<string name="unlock_app">Тachiyomi арыйыыта</string>
|
||||
<string name="history">История</string>
|
||||
<string name="track">Кэтээһин</string>
|
||||
<string name="chapters">Түһүмэхтэр</string>
|
||||
<string name="manga">Маанга</string>
|
||||
<string name="categories">Бөлөхтөр</string>
|
||||
<string name="information_empty_category">Эйиэхэ бөлөхтөр суохтар. Эбэр бэлиэни батта, библиотекаҕа саҥа бөлөҕү оҥорорго.</string>
|
||||
<string name="information_empty_library">Эн библиотекан кураанах. Библиотекаҕа айымньыыларыы көрдөөһүнтэн эп.</string>
|
||||
<string name="information_no_recent_manga">Бүтэһик кэмҥэ тугу да аахпатын</string>
|
||||
<string name="information_no_recent">Саҥардыылар суохтар</string>
|
||||
<string name="information_no_downloads">Хачаайдааһын суох</string>
|
||||
<string name="label_help">Көмө</string>
|
||||
<string name="label_extension_info">Кэҥэтии туһунан</string>
|
||||
<string name="label_extensions">Кэҥэтии</string>
|
||||
<string name="label_migration">Көһүү</string>
|
||||
<string name="label_backup">Резервнай куопуйа</string>
|
||||
<string name="label_categories">Бөлөхтөр</string>
|
||||
<string name="label_sources">Төрүттэр</string>
|
||||
<string name="label_recent_manga">Остуоруйа</string>
|
||||
<string name="label_recent_updates">Саҥардыылар</string>
|
||||
<string name="label_library">Библиотека</string>
|
||||
<string name="label_download_queue">Хачаайдааһын уочарата</string>
|
||||
<string name="label_settings">Түстэл</string>
|
||||
<string name="label_more">Өссө</string>
|
||||
<string name="name">Аат</string>
|
||||
<string name="app_name" translatable="false">Tachiyomi</string>
|
||||
<plurals name="num_categories">
|
||||
<item quantity="other">%d бөлөхтөр</item>
|
||||
</plurals>
|
||||
<string name="default_category_summary">Наар ыйыт</string>
|
||||
<string name="default_category">Куолутунан бөлөх</string>
|
||||
<string name="pref_category_library_categories">Бөлөхтөр</string>
|
||||
<string name="pref_library_update_error_notification">Саҥардыы сыаһатын туһунан биллэриилэри көрдөр</string>
|
||||
<string name="pref_library_update_refresh_metadata_summary">Саҥа тас уонна кыра чаастар баалларын, бэрэбиэркэлээ</string>
|
||||
<string name="pref_library_update_refresh_metadata">Метаданнайдары автоматическайдык саҥарт</string>
|
||||
<string name="pref_update_only_non_completed">Бүтэ илик маанганы эрэ, саҥарт</string>
|
||||
<string name="charging">Иитиллэр</string>
|
||||
<string name="wifi">Wi-Fi</string>
|
||||
<string name="pref_library_update_restriction_summary">Усулуобуйалар толоруллубутугар эрэ, саҥарт</string>
|
||||
<string name="pref_library_update_restriction">Библиотека саҥардыытын хааччахтааһын</string>
|
||||
<string name="pref_library_update_prioritization">Библиотека саҥардыытын бэрээдэгэ</string>
|
||||
<string name="update_monthly">Ый аайы</string>
|
||||
<string name="update_weekly">Нэдиэлэ аайы</string>
|
||||
<string name="update_48hour">Икки күн аайы</string>
|
||||
<string name="update_24hour">Күн аайы</string>
|
||||
<string name="update_12hour">Уон икки чаас аайы</string>
|
||||
<string name="update_6hour">Алта чаас аайы</string>
|
||||
<string name="update_3hour">Үс чаас аайы</string>
|
||||
<string name="update_2hour">Икки чаас аайы</string>
|
||||
<string name="update_1hour">Чаас аайы</string>
|
||||
<string name="update_never">Илиинэн</string>
|
||||
<string name="pref_library_update_interval">Библиотека саҥардыытын түргэнэ</string>
|
||||
<string name="pref_category_library_update">Саҥардыылар</string>
|
||||
<string name="pref_jump_to_chapters">Аһаҕас түһүмэххэ көһүү</string>
|
||||
<string name="default_columns">Куолутунан</string>
|
||||
<string name="landscape">Сытыары</string>
|
||||
<string name="portrait">Туруору</string>
|
||||
<string name="pref_library_columns">Маллары кэккэ туруор</string>
|
||||
<string name="pref_category_display">Көрдөр</string>
|
||||
<string name="hide_notification_content">Биллэрии иһин кистээ</string>
|
||||
<string name="secure_screen_summary">Атын эбиликкэ көһөргөр, скриншоту сабаргар, эбилик иһин кистээ</string>
|
||||
<string name="secure_screen">Көмүскэл экрана</string>
|
||||
<plurals name="lock_after_mins">
|
||||
<item quantity="other">%1$s мүнүүтэ кэннэ</item>
|
||||
</plurals>
|
||||
<string name="lock_never">Хаһан да</string>
|
||||
<string name="lock_always">Наар</string>
|
||||
<string name="lock_when_idle">Күүтү эрэһиимигэр сап</string>
|
||||
<string name="lock_with_biometrics">Тарбах суолунан сап</string>
|
||||
<string name="pref_category_security">Көмүскэл</string>
|
||||
<string name="pref_manage_notifications">Биллэриилэри салай</string>
|
||||
<string name="pref_confirm_exit">Тахсыыны бигэргэт</string>
|
||||
<string name="pref_date_format">Даататын формаата</string>
|
||||
<string name="system_default">Куолутунан</string>
|
||||
<string name="pref_language">Тыл</string>
|
||||
<string name="pref_start_screen">Сүрүн экран</string>
|
||||
<string name="theme_dark_amoled">AMOLED хара</string>
|
||||
<string name="theme_dark_blue">Хараҥа күөх</string>
|
||||
<string name="theme_dark_default">Куолутунан</string>
|
||||
<string name="pref_theme_dark">Хараҥа тиэмэ</string>
|
||||
<string name="theme_light_blue">Сырдык күөх</string>
|
||||
<string name="theme_light_default">Куолутунан</string>
|
||||
<string name="pref_theme_light">Сырдык тиэмэ</string>
|
||||
<string name="theme_dark">Холбоммут</string>
|
||||
<string name="theme_light">Араарыллыбыт</string>
|
||||
<string name="theme_system">Системнайы тутуһуҥ</string>
|
||||
<string name="pref_theme_mode">Хараҥа тиэмэ</string>
|
||||
<string name="pref_category_locale">Миэстэтэ</string>
|
||||
<string name="pref_category_theme">Тиэмэ</string>
|
||||
<string name="pref_category_about">Эбии туһунан</string>
|
||||
<string name="pref_category_advanced">Эбии</string>
|
||||
<string name="pref_category_tracking">Кэтээһин</string>
|
||||
<string name="pref_category_downloads">Хачайдаммыттар</string>
|
||||
<string name="pref_category_reader">Ааҕааччы</string>
|
||||
<string name="pref_category_library">Библиотека</string>
|
||||
<string name="pref_category_general">Сүрүн</string>
|
||||
<string name="short_recent_updates">Саҥардыылар</string>
|
||||
<string name="app_not_available">Сыһыарыы кыаллыбат</string>
|
||||
<string name="loading">Холбонуу…</string>
|
||||
<string name="action_webview_refresh">Чэбдигирт</string>
|
||||
<string name="action_webview_forward">Инники</string>
|
||||
<string name="action_webview_back">Төптөрү</string>
|
||||
<string name="action_login">Киир</string>
|
||||
<string name="action_open">Арый</string>
|
||||
<string name="action_restore">Чөлүгэр түһэр</string>
|
||||
<string name="action_create">Оҥор</string>
|
||||
<string name="action_open_log">Программа сурунаалын арый</string>
|
||||
<string name="action_undo">Уларыт</string>
|
||||
<string name="action_reset">Ыраастаа</string>
|
||||
<string name="action_save">Хааллар</string>
|
||||
<string name="action_share">Тарҕат</string>
|
||||
<string name="action_install">Туруор</string>
|
||||
<string name="action_move_to_bottom">Бүтүүгэ көһөр</string>
|
||||
<string name="action_move_to_top">Саҕаланыыга көһөр</string>
|
||||
<string name="action_oldest">Олох урукку</string>
|
||||
<string name="action_newest">Сабыс-саҥа</string>
|
||||
<string name="action_reorganize_by">Саҥаттаан сааһылыы</string>
|
||||
<string name="action_sort_descending">Кыччыырынан</string>
|
||||
<string name="action_sort">Сааһылаа</string>
|
||||
<string name="action_cancel_all">Барытын уларыт</string>
|
||||
<string name="action_cancel">Уларытыы</string>
|
||||
<string name="action_unpin">Уһул</string>
|
||||
<string name="action_pin">Иҥиннэр</string>
|
||||
<string name="action_disable">Араар</string>
|
||||
<string name="action_display_show_tabs">Бөлөхтөр кыбытыктарын көрдөр</string>
|
||||
<string name="action_display_unread_badge">Ааҕыллыбатахтар бэлиэлэрэ</string>
|
||||
<string name="action_display_download_badge">Бэлиэлэри хачайдаа</string>
|
||||
<string name="action_display_comfortable_grid">Табыгастаах илим</string>
|
||||
<string name="action_display_list">испииһэк</string>
|
||||
<string name="action_display_grid">Биир кэлим илим</string>
|
||||
<string name="action_display">Көрдөр</string>
|
||||
<string name="action_display_mode">Көрүнүн уларыт</string>
|
||||
<string name="action_migrate">Көһүү</string>
|
||||
<string name="action_open_in_settings">Түстэлгэ арый</string>
|
||||
<string name="action_open_in_web_view">WebViewга арый</string>
|
||||
<string name="action_open_in_browser">Көрдөөһүнҥэ арый</string>
|
||||
<string name="action_move">Көһөр</string>
|
||||
<string name="action_resume">Салҕаа</string>
|
||||
<string name="action_start">Саҕалаа</string>
|
||||
<string name="action_remove">Суох гын</string>
|
||||
<string name="action_retry">Хатылаа</string>
|
||||
<string name="action_next_chapter">Аныгыскы түһүмэх</string>
|
||||
<string name="action_previous_chapter">Ааспыттанны түһүмэх</string>
|
||||
<string name="action_close">Сап</string>
|
||||
<string name="action_pause">Тохтобул</string>
|
||||
<string name="action_stop">Тохтоо</string>
|
||||
<string name="action_view_chapters">Түһүмэхтэри көр</string>
|
||||
<string name="action_next_unread">Аныгыскы ааҕыллыбатаҕы</string>
|
||||
<string name="action_show_downloaded">Хачайдаммыт</string>
|
||||
<string name="action_sort_down">Кыччыырынан</string>
|
||||
<string name="action_sort_up">Улаатарынан</string>
|
||||
<string name="action_edit_cover">Таһын уларытыы</string>
|
||||
<string name="action_move_category">Бөлө(ххө/хтөргө) киллэр</string>
|
||||
<string name="action_rename_category">Бөлөх аатын уларыт</string>
|
||||
<string name="action_edit_categories">Бөлөхтөрү уларыт</string>
|
||||
<string name="action_add_category">Бөлөҕү киллэр</string>
|
||||
<string name="webtoon_side_padding_25">25%</string>
|
||||
<string name="webtoon_side_padding_20">20%</string>
|
||||
<string name="webtoon_side_padding_15">15%</string>
|
||||
<string name="webtoon_side_padding_10">10%</string>
|
||||
<string name="webtoon_side_padding_0">Тэйиитэ суох</string>
|
||||
<string name="pref_webtoon_side_padding">Ойоҕостон тэйии</string>
|
||||
<string name="pref_category_reading">Ааҕы</string>
|
||||
<string name="pref_category_reading_mode">Ааҕы эрэһиимэ</string>
|
||||
<string name="pref_always_show_chapter_transition">Көһөр түһүмэҕи куруук көрдөр</string>
|
||||
<string name="color_filter_a_value">А</string>
|
||||
<string name="color_filter_b_value">Халлаан күөх</string>
|
||||
<string name="color_filter_g_value">От күөх</string>
|
||||
<string name="color_filter_r_value">Кыһыл</string>
|
||||
<string name="rotation_force_landscape">Сытыары</string>
|
||||
<string name="rotation_force_portrait">Туруору</string>
|
||||
<string name="rotation_lock">Хатаммыт</string>
|
||||
<string name="rotation_free">Босхо</string>
|
||||
<string name="pref_rotation_type">Эргичийии</string>
|
||||
<string name="ext_language_info">Тыл: %1$S</string>
|
||||
<string name="pref_lock_orientation">Эргичийиини хатаа</string>
|
||||
<string name="double_tap_anim_speed_fast">Түргэнник</string>
|
||||
<string name="double_tap_anim_speed_normal">Көннөрү</string>
|
||||
<string name="double_tap_anim_speed_0">Хамсааһына суох</string>
|
||||
<string name="zoom_start_center">Киин</string>
|
||||
<string name="zoom_start_right">Уҥа</string>
|
||||
<string name="zoom_start_left">Хаҥас</string>
|
||||
<string name="zoom_start_automatic">Автоматическай</string>
|
||||
<string name="pref_zoom_start">Улаатыннары маҥнайгы туруга</string>
|
||||
<string name="scale_type_smart_fit">Өйдөөх</string>
|
||||
<string name="scale_type_original_size">Маҥнайгы кээмэй</string>
|
||||
<string name="scale_type_fit_height">Үрдүгүнэн</string>
|
||||
<string name="scale_type_fit_width">Туоратынан</string>
|
||||
<string name="scale_type_stretch">Ууннар</string>
|
||||
<string name="scale_type_fit_screen">Экранынан</string>
|
||||
<string name="pref_image_scale_type">Тарҕаныыта</string>
|
||||
<string name="pref_image_decoder">Дьүһүн быһаарааччыта</string>
|
||||
<string name="pager_viewer">Сирэйдэринэн</string>
|
||||
<string name="vertical_plus_viewer">Тохтообоххо туруору</string>
|
||||
<string name="webtoon_viewer">Webtoon</string>
|
||||
<string name="vertical_viewer">Туруору</string>
|
||||
<string name="right_to_left_viewer">Хаҥас диэки</string>
|
||||
<string name="left_to_right_viewer">Уҥа диэки</string>
|
||||
<string name="default_viewer">Куолутунан</string>
|
||||
<string name="pref_viewer_type">Куолутунан ааҕар эрэһиим</string>
|
||||
<string name="black_background">Хара</string>
|
||||
<string name="gray_background">Бороҥ</string>
|
||||
<string name="white_background">Маҥан</string>
|
||||
<string name="pref_reader_theme">Кэнники өҥ</string>
|
||||
<string name="pref_read_with_long_tap">Уһун баттааһыҥҥа - кэпсэтии</string>
|
||||
<string name="pref_read_with_tapping">Баттааһын</string>
|
||||
<string name="pref_read_with_volume_keys_inverted">Тыас талкыйдарын миэстэлэрин уларыт</string>
|
||||
<string name="pref_read_with_volume_keys">Тыас талкыйдара</string>
|
||||
<string name="pref_reader_navigation">Хамсыы</string>
|
||||
<string name="pref_skip_filtered_chapters">Биилтирэммит түһүмэхтэри көтүт</string>
|
||||
<string name="pref_skip_read_chapters">Ааҕыллыбыт түһүмэхтэри көтүт</string>
|
||||
<string name="pref_keep_screen_on">Экран холбонон турдун</string>
|
||||
<string name="filter_mode_darken">Хараҥатыы</string>
|
||||
<string name="filter_mode_lighten">Сырдатыы</string>
|
||||
<string name="filter_mode_screen">Экран</string>
|
||||
<string name="filter_mode_multiply">Төгүллээһин</string>
|
||||
<string name="filter_mode_overlay">Сабыы</string>
|
||||
<string name="pref_show_reading_mode_summary">Ааҕаччы холбонон турдаҕына, билиҥҥи эрэһиими кылгастык көрдөр</string>
|
||||
<string name="pref_show_reading_mode">Ааҕыы эрэһиимин көрдөр</string>
|
||||
<string name="filter_mode_default">Куолутунан</string>
|
||||
<string name="pref_color_filter_mode">Өҥ биилтирэни олордор эрэһиим</string>
|
||||
<string name="pref_custom_color_filter">Туттааччы өҥ биилтирэ</string>
|
||||
<string name="pref_custom_brightness">Туттааччы сырдыга</string>
|
||||
<string name="pref_crop_borders">Быһыллы кыраныыссата</string>
|
||||
<string name="pref_true_color_summary">Тиэрбэс аҕыйыыр, ол гынан баран улэҕэ дьайар</string>
|
||||
<string name="pref_true_color">32-бит өҥ</string>
|
||||
<string name="pref_show_page_number">Сирэй нүөмэрин көрдөр</string>
|
||||
<string name="pref_double_tap_anim_speed">Иккитэ баттыырга хамсааһын түргэнэ</string>
|
||||
<string name="pref_page_transitions">Хамсааһыннах, сирэй арыйыыта</string>
|
||||
<string name="pref_cutout_short">Быһыллыбыт хонууга баары көрдөр</string>
|
||||
<string name="pref_fullscreen">Толору экран</string>
|
||||
<string name="ext_version_info">Биэрсия: %1$S</string>
|
||||
<string name="unofficial_extension_message">Бу кэҥэтии официальнай Tachiyomi испииһэгиттэн буолбатах.</string>
|
||||
<string name="ext_available">Кыаллар</string>
|
||||
<string name="obsolete_extension_message">Бу кэҥэтии кыаллыбат буолла.</string>
|
||||
<string name="untrusted_extension_message">Бу кэҥэтии эрэлэ суох туоһу суругунан бэлиэтэммит уонна холбоммотох.
|
||||
\n
|
||||
\nКуһаҕан кэҥэтии ханнык баҕар, киирэргэ наадалах даннайдары, устуон сөп уонна бэйэтэ киириэн сөп.
|
||||
\n
|
||||
\nБу туоһу сурукка эрэнэр буоллаххына, бэйэҕин кутталга угаҕын.</string>
|
||||
<string name="untrusted_extension">Эрэлэ суох кэҥэтии</string>
|
||||
<string name="ext_uninstall">Сотон кэбис</string>
|
||||
<string name="ext_untrusted">Эрэлэ суох</string>
|
||||
<string name="ext_unofficial">Официальнайа суох</string>
|
||||
<string name="ext_trust">Эрэллээх</string>
|
||||
<string name="ext_installed">Турда</string>
|
||||
<string name="ext_installing">ТуруорааҺын</string>
|
||||
<string name="ext_downloading">Хачайдааһын</string>
|
||||
<string name="ext_pending">Кэтэһэбит</string>
|
||||
<string name="ext_install">Туруор</string>
|
||||
<string name="ext_obsolete">Эргэрбит</string>
|
||||
<string name="ext_update">Саҥардыы</string>
|
||||
<string name="ext_updates_pending">Саҥардыылары кэтэһэбит</string>
|
||||
<string name="all_lang">Барыта</string>
|
||||
<string name="all">Барыта</string>
|
||||
<string name="pref_library_update_categories">Толору көрдөөһүннэ киирбит бөлөхтөр</string>
|
||||
<string name="pref_clear_cookies">Кукины ырааста</string>
|
||||
<string name="label_network">Ситим</string>
|
||||
<string name="restoring_backup_canceled">Төнүҥнэри тохтоото</string>
|
||||
<string name="restoring_backup_error">Резервнай куопуйа төнүҥнэриитэ туолбата</string>
|
||||
<string name="restoring_backup">Резервнай куопуйаны төнүҥнэри туола турар</string>
|
||||
<string name="restore_in_progress">Төнүҥнэрии туола турар</string>
|
||||
<string name="creating_backup_error">Резервнай куопуйа оҥоһуллубата</string>
|
||||
<string name="creating_backup">Резервнай куопуйа оҥоһуута</string>
|
||||
<string name="backup_choice">Тугу куопуйалаары гынннын\?</string>
|
||||
<string name="backup_in_progress">Резервнай куопуйа оҥоруута туола турар</string>
|
||||
<plurals name="restore_completed_message">
|
||||
<item quantity="other">Туолла %1$sҕа %2$s сыаһалаах</item>
|
||||
</plurals>
|
||||
<string name="restore_duration">%02d мүнүүтэ %02d сөкүүндэ</string>
|
||||
<string name="restore_completed">Төнүҥнэри бүттэ</string>
|
||||
<string name="backup_restore_content">Төнүҥнэриигэ төрүттэр дааннайдара тутталлар, элбэх трафик барыан сөп.
|
||||
\n
|
||||
\nУонна төнүҥнэрии иннигэр, көрүҥ, туох баар наадалах кэтээһин кэҥэтиилэригэр уонна өҥөтүгэр киирдиҥ диэн.</string>
|
||||
<string name="backup_restore_missing_trackers">Трэкэрдар киирбэтилэр:</string>
|
||||
<string name="backup_restore_missing_sources">Суох төрүттэр:</string>
|
||||
<string name="invalid_backup_file_missing_manga">Резервнай куопуйа маангата суох.</string>
|
||||
<string name="invalid_backup_file_missing_data">Биликкэ дааннайдар суохтар.</string>
|
||||
<string name="invalid_backup_file">Резервнай куопуйа алдьаммыт билэтэ</string>
|
||||
<string name="backup_created">Резервнай куопуйа оҥоһуллунна</string>
|
||||
<string name="tracker_not_logged_in">Киирбэтэх: %1$s</string>
|
||||
<string name="source_not_found_name">Төрүт булуллубата: %$1s</string>
|
||||
<string name="pref_backup_slots">Муҥутугар дылы резервнай куопуйалар</string>
|
||||
<string name="pref_backup_interval">Резервнай куопуйа оҥоһуутун түргэнэ</string>
|
||||
<string name="pref_backup_service_category">Автоматическай резервнай куопуйалар</string>
|
||||
<string name="pref_backup_directory">Резервнай куопуйа сурунаала</string>
|
||||
<string name="pref_restore_backup_summ">Библиотеканы резервнай куопуйа билэтиттэн төнүҥнэрии</string>
|
||||
<string name="pref_restore_backup">Резервнай куопуйаны куолутунан туруоруу</string>
|
||||
<string name="pref_create_backup_summ">Билиҥни бибилиотеканы төнүннэрэргэ туттуохха сөп</string>
|
||||
<string name="pref_create_backup">Резервнай куопуйаны оҥоруу</string>
|
||||
<string name="pref_allow_nsfw_sources_blocked">Хаамнаммыт</string>
|
||||
<string name="pref_allow_nsfw_sources_allowed_multisource">Төрүтү хаамна, ол да буоллар кэҥэтии испииһигэр көрдөр</string>
|
||||
<string name="pref_allow_nsfw_sources_allowed">Көҥүллэммит</string>
|
||||
<string name="pref_allow_nsfw_sources">NSFW төрүттэр</string>
|
||||
<string name="backup">Резервнай куопуйа</string>
|
||||
<string name="pref_search_pinned_sources_only">Сыһыарыллыбыт эрэ төрүттэри киллэр</string>
|
||||
<string name="pref_enable_automatic_extension_updates">Кэҥэтии саҥардыыларын баар буолутун бэрэбиэркэлээһин</string>
|
||||
<string name="tracking_info">Биир өттүттэн мэнэйдэһии, кэтээһин өҥөлөргө баар түһүмэхтэр туруктарын саҥардыыга. Маанга туспа суругун кэтээһинин
|
||||
\nтүстэлгэ уларыт.</string>
|
||||
<string name="services">Өҥөлөр</string>
|
||||
<string name="pref_auto_update_manga_sync">Түһүмэх туругун ааҕы кэннэ саҥарт</string>
|
||||
<string name="pref_download_new_categories">Хачайдааһыҥҥа киирбит бөлөхтөр</string>
|
||||
<string name="pref_download_new">Саҥа түһүмэхтэри хачайдаа</string>
|
||||
<string name="fifth_to_last">Бүтэһик түһүмэхтэн бэһис</string>
|
||||
<string name="fourth_to_last">Бүтэһик түһүмэхтэн төрдүс</string>
|
||||
<string name="third_to_last">Бүтэһик түһүмэхтэн үһүс</string>
|
||||
<string name="second_to_last">Бүтэһик түһүмэх иннинээҕи</string>
|
||||
<string name="last_read_chapter">Бүтэһигинэн ааҕыллыбыт түһүмэх</string>
|
||||
<string name="disabled">Араарыллыбыт</string>
|
||||
<string name="custom_dir">Туттааччы ыйдарыыта</string>
|
||||
<string name="pref_remove_after_read">Ааҕы кэннэ</string>
|
||||
<string name="pref_remove_after_marked_as_read">Ааҕыллыбыт диэн суруллубутун кэннэ</string>
|
||||
<string name="pref_download_only_over_wifi">Wi-Fi эрэ баар буоллаҕына хачайдаа</string>
|
||||
<string name="pref_download_directory">Хачайдааһын сурунаала</string>
|
||||
<string name="pref_dns_over_https_summary">Уларыйыы киирэрин гына сыһыарыыны хос холбоо</string>
|
||||
<string name="cache_delete_error">Кээс сотторуутугар сыыһааһын буолла</string>
|
||||
<string name="cache_deleted">Кээс ыраастанна. %1$d билэ сотторуллубут этэ</string>
|
||||
<string name="used_cache">Туттуллубут: %1$s</string>
|
||||
<string name="pref_clear_chapter_cache">Түһүмэх кээһин ыраастааһын</string>
|
||||
<string name="label_data">Билим</string>
|
||||
<string name="cookies_cleared">Куки ыраастанна</string>
|
||||
<string name="clear_database_confirmation">Эрэллэххин дуо\? Ааҕыллыбыт түһүмэхтэр уонна библиотекаҕа суох маанга туруга сүтүө</string>
|
||||
<string name="pref_clear_database_summary">Эн библиотекаҕар суох маанга остуоруйатын сотторуу</string>
|
||||
<string name="pref_clear_database">Билим олоҕо ыраастааһына</string>
|
||||
<string name="choices_reset">Кэпсэтии түстэлэ ыраастанна</string>
|
||||
<string name="pref_disable_battery_optimization">Батарея тупсарыытын араарыы</string>
|
||||
<string name="pref_refresh_library_tracking_summary">Туругу, ахсааны уонна бүтэһик ааҕыллыбыт түһүмэҕи кэтээн көрөр өҥөлөртөн саҥардыы</string>
|
||||
<string name="pref_refresh_library_tracking">Кэтээһини чэбдигирии</string>
|
||||
<string name="pref_refresh_library_covers">Библиотекаҕа баар маанга таһын чэбдигирии</string>
|
||||
<string name="clear_database_completed">Дааннайдар сотуллубуттар</string>
|
||||
<string name="pref_disable_battery_optimization_summary">Библиотека уонна резервнай куопуйатыгар кэннинээҕи саҥардыытыгар көмөлөһөр</string>
|
||||
<string name="battery_optimization_setting_activity_not_found">Устройства түстэлэ сатаан арыллыбата</string>
|
||||
<string name="battery_optimization_disabled">Батарея тупсуруута араарыллынна</string>
|
||||
<string name="group_backup_restore">Резервнай куопуйаны оҥоруу уонна төнүҥнэрии</string>
|
||||
<string name="file_select_backup">Резервнай куопуйа билимин талыы</string>
|
||||
<string name="notices">Инники биэрсиялар бэлиэтэ</string>
|
||||
<string name="whats_new">Туох саҥа баарый</string>
|
||||
<string name="build_time">Тахсыбыт кэмэ</string>
|
||||
<string name="version">Биэрсия</string>
|
||||
<string name="website">Үөп сир</string>
|
||||
<string name="licenses">Аһаҕас төрүттээх лицензиялар</string>
|
||||
<string name="updated_version">v%1$s дылы саҥарданна</string>
|
||||
<string name="check_for_updates">Саҥардыы баар буолуутун бэрэбиэркэлээһин</string>
|
||||
<string name="action_global_search_hint">Толору көрдөөһүн…</string>
|
||||
<string name="added_to_library">Бу маанга библиотекаҕа киирбитэ</string>
|
||||
<string name="invalid_combination">Куолунунан сылдьар бөлөх ураты бөлөҕү кытта талыллыбат</string>
|
||||
<string name="pinned_sources">Иҥиннэриллибит</string>
|
||||
<string name="last_used_source">Бүтэһигинэн туттуллубут</string>
|
||||
<string name="other_source">Атыттар</string>
|
||||
<string name="local_source">Локальнай төрүт</string>
|
||||
<string name="http_error_hint">Үөп сири WebView\'га көрүн</string>
|
||||
<string name="no_results_found">Түмүк суох</string>
|
||||
<string name="no_more_results">Эбии түмүк суох</string>
|
||||
<string name="no_valid_sources">Баһаалыста биир эмит төрүтү холбоон</string>
|
||||
<string name="select_source">Төрүтү тал</string>
|
||||
<string name="source_requires_login">Бу төрүт киирини көрдүүр</string>
|
||||
<string name="tabs_header">Кыбытыктар</string>
|
||||
<string name="badges_header">Бэлиэлэр</string>
|
||||
<string name="also_delete_chapters">Хачайдаммыт түһүмэхтэри эмиэ соттор</string>
|
||||
<string name="confirm_delete_manga">Талыллыбыт маанганы сотторорго эрэллээххин дуо\?</string>
|
||||
<string name="local_source_badge">Локальнай</string>
|
||||
<string name="updating_category">Бөлөх саҥардыыта</string>
|
||||
<string name="library_search_hint">Айымньы эбэтэр суручааччы аата…</string>
|
||||
<string name="unknown_error">Биллибэт сыыһыы</string>
|
||||
<string name="invalid_login">Сатаан киирбэтин</string>
|
||||
<string name="logout_success">Эн таҕыстын</string>
|
||||
<string name="logout">Тахсыы</string>
|
||||
<string name="logout_title">%1$s\'тан тахсаҕын\?</string>
|
||||
<string name="login_success">Киирдин</string>
|
||||
<string name="login">Киири</string>
|
||||
<string name="show_password">Аһарыгы көрдөрүү</string>
|
||||
<string name="password">Аһарык</string>
|
||||
<string name="email">Эл.пуoчта аадырыһа</string>
|
||||
<string name="username">Туттааччы аата</string>
|
||||
<string name="login_title">%1$s\'га киири</string>
|
||||
<plurals name="download_queue_summary">
|
||||
<item quantity="other">%1$s хаалла</item>
|
||||
</plurals>
|
||||
<string name="downloaded_only_summary">Библиотекаҕа баар маанганы барытын биилтирдээһин</string>
|
||||
<string name="label_downloaded_only">Хачайдаммыт эрэ</string>
|
||||
<string name="pref_acra_summary">Ханнык баҕар сыаһалары көннөрөргө көмөлөһөр. Бэйэ дааннайдар ылыллыбаттар</string>
|
||||
<string name="pref_enable_acra">Охтуу туһунан отчуоту ыытыы</string>
|
||||
<string name="delete_downloads_for_manga">Хачайдаммыт түһүмэхтэри сотторобут\?</string>
|
||||
<plurals name="manga_num_chapters">
|
||||
<item quantity="other">%1$s түһүмэх</item>
|
||||
</plurals>
|
||||
<string name="manga_info_collapse">Кырата</string>
|
||||
<string name="manga_info_expand">Эбии</string>
|
||||
<string name="manga_info_about_label">Маанга туһунан</string>
|
||||
<string name="manga_removed_library">Библиотекаттан ылылынна</string>
|
||||
<string name="manga_added_library">Библиотекаҕа киирдэ</string>
|
||||
<string name="manga_info_full_title_label">Айымньы аата</string>
|
||||
<string name="remove_from_library">Библиотекаттан ыл</string>
|
||||
<string name="in_library">Библиотекаҕа</string>
|
||||
<string name="add_to_library">Библиотекаҕа киллэр</string>
|
||||
<string name="licensed">Лицензиялаах</string>
|
||||
<string name="unknown_status">Биллибэт турук</string>
|
||||
<string name="unknown">Биллибэт</string>
|
||||
<string name="ongoing">Салҕанар</string>
|
||||
<string name="track_author">Суруйааччы</string>
|
||||
<string name="unknown_author">Биллибэт суруйааччы</string>
|
||||
<string name="description">Ойуулааһын</string>
|
||||
<string name="manga_detail_tab">Маанга туһунан</string>
|
||||
<string name="manga_not_in_db">Бу маанга билим баазатыттан сотторуллубут.</string>
|
||||
<string name="no_pinned_sources">Эһиэхэ иҥиннэллибит төрүттэр суохтар</string>
|
||||
<string name="local_source_help_guide">Төрүт локальнай салалтата</string>
|
||||
<string name="browse">Көрдөөһүн</string>
|
||||
<string name="latest">Тиһэх</string>
|
||||
<string name="action_global_search_query">\"%1$s\" толору көрдөө</string>
|
||||
<string name="pref_remove_bookmarked_chapters">Кыбытыылах түһүмэхтэри соттор</string>
|
||||
<string name="pref_category_delete_chapters">Түһүмэхтэри соттор</string>
|
||||
</resources>
|
@ -603,4 +603,6 @@
|
||||
<string name="channel_complete">Acabada</string>
|
||||
<string name="channel_progress">Progressu</string>
|
||||
<string name="download_notifier_download_finish">Iscarrigamentu acabadu</string>
|
||||
<string name="channel_errors">Errores</string>
|
||||
<string name="backup_restore_missing_trackers">Arrastadores a sos cales no as fatu atzessu:</string>
|
||||
</resources>
|
@ -182,8 +182,8 @@
|
||||
<string name="color_filter_a_value">A</string>
|
||||
<string name="pref_download_directory">Nedladdningsplats</string>
|
||||
<string name="pref_download_only_over_wifi">Ladda bara ner över WiFi</string>
|
||||
<string name="pref_remove_after_marked_as_read">Ta bort när markerat som läst</string>
|
||||
<string name="pref_remove_after_read">Ta bort efter läsning</string>
|
||||
<string name="pref_remove_after_marked_as_read">Efter manuellt markerad som läst</string>
|
||||
<string name="pref_remove_after_read">Efter läsning</string>
|
||||
<string name="custom_dir">Anpassad plats</string>
|
||||
<string name="disabled">Inaktiverad</string>
|
||||
<string name="last_read_chapter">Senaste lästa kapitel</string>
|
||||
@ -603,4 +603,13 @@
|
||||
<item quantity="other">%d trackers</item>
|
||||
</plurals>
|
||||
<string name="no_pinned_sources">Du har inga fästa källor</string>
|
||||
<string name="pref_allow_nsfw_sources_blocked">Blockerad</string>
|
||||
<string name="pref_allow_nsfw_sources_allowed_multisource">Blockera källan men visa i tilläggslistan</string>
|
||||
<string name="pref_allow_nsfw_sources_allowed">Tillåtet</string>
|
||||
<string name="pref_allow_nsfw_sources">NSFW källor</string>
|
||||
<string name="pref_remove_bookmarked_chapters">Ta bort bokmärkta kapitel</string>
|
||||
<string name="pref_category_delete_chapters">Ta bort kapitel</string>
|
||||
<string name="ext_nsfw_warning">Kan innehålla 18+ innehåll</string>
|
||||
<string name="ext_nsfw_short">18+</string>
|
||||
<string name="backup_restore_missing_trackers">Trackers som inte har loggats in:</string>
|
||||
</resources>
|
@ -1,465 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="categories">Mga Kategorya</string>
|
||||
<string name="manga">Mga Manga</string>
|
||||
<string name="chapters">Mga Kabanata</string>
|
||||
<string name="track">Sinusundan</string>
|
||||
<string name="history">Kasaysayan</string>
|
||||
<string name="label_settings">Pagsasaayos</string>
|
||||
<string name="label_download_queue">Toka sa Download</string>
|
||||
<string name="label_library">Aklatan</string>
|
||||
<string name="label_recent_manga">Kamakailang Binása</string>
|
||||
<string name="label_recent_updates">Mga Update</string>
|
||||
<string name="label_categories">Mga Kategorya</string>
|
||||
<string name="label_backup">Pag-backup</string>
|
||||
<string name="label_migration">Ilipat</string>
|
||||
<string name="label_extensions">Mga Dugtong</string>
|
||||
<string name="label_extension_info">Tungkol sa Dugtong</string>
|
||||
<string name="action_settings">Pagsasaayos</string>
|
||||
<string name="action_filter">Salain</string>
|
||||
<string name="action_filter_downloaded">Na-download</string>
|
||||
<string name="action_filter_bookmarked">Tinandaan</string>
|
||||
<string name="action_filter_unread">Babasáhin</string>
|
||||
<string name="action_filter_read">Nabása</string>
|
||||
<string name="action_filter_empty">Tanggalin ang pagsala</string>
|
||||
<string name="action_sort_alpha">Pa-alpabeto</string>
|
||||
<string name="action_sort_total">Dami ng kabanata</string>
|
||||
<string name="action_sort_last_read">Huling binása</string>
|
||||
<string name="action_search">Maghanap</string>
|
||||
<string name="action_global_search">Panlahatang paghahanap</string>
|
||||
<string name="action_select_all">Piliin lahat</string>
|
||||
<string name="name">Pangalan</string>
|
||||
<string name="action_mark_as_read">Markahang nabása</string>
|
||||
<string name="action_mark_as_unread">Markahang babasáhin</string>
|
||||
<string name="action_mark_previous_as_read">Markahang nabása ang huli</string>
|
||||
<string name="action_download">I-download</string>
|
||||
<string name="action_bookmark">Tandaan</string>
|
||||
<string name="action_remove_bookmark">Tanggalin ang pananda</string>
|
||||
<string name="action_delete">Burahin</string>
|
||||
<string name="action_update">I-update</string>
|
||||
<string name="action_update_library">I-update ang aklatan</string>
|
||||
<string name="action_edit">I-edit</string>
|
||||
<string name="action_add">Magdagdag</string>
|
||||
<string name="action_add_category">Magdagdag ng kategorya</string>
|
||||
<string name="action_edit_categories">I-edit ang mga kategorya</string>
|
||||
<string name="action_rename_category">Baguhin ang pangalan</string>
|
||||
<string name="action_move_category">I-kategorya</string>
|
||||
<string name="action_edit_cover">I-edit ang pabalat</string>
|
||||
<string name="action_sort_up">Ayusin pataas</string>
|
||||
<string name="action_sort_down">Ayusin pababa</string>
|
||||
<string name="action_show_downloaded">Mga na-download</string>
|
||||
<string name="action_next_unread">Susunod na babasáhin</string>
|
||||
<string name="action_stop">Itigil</string>
|
||||
<string name="action_pause">Ihinto</string>
|
||||
<string name="action_close">Isara</string>
|
||||
<string name="action_previous_chapter">Nakaraang kabanata</string>
|
||||
<string name="action_next_chapter">Susunod na kabanata</string>
|
||||
<string name="action_retry">Subukan muli</string>
|
||||
<string name="action_remove">Tanggalin</string>
|
||||
<string name="action_resume">Ipagpatuloy</string>
|
||||
<string name="action_move">Ilipat</string>
|
||||
<string name="action_open_in_browser">Buksan sa browser</string>
|
||||
<string name="action_open_in_web_view">Buksan sa WebView</string>
|
||||
<string name="action_display_mode">Kaparaanan</string>
|
||||
<string name="action_display">Pagpapakita</string>
|
||||
<string name="action_display_grid">Siksik</string>
|
||||
<string name="action_display_list">Listahan</string>
|
||||
<string name="action_display_download_badge">Bilang ng na-download</string>
|
||||
<string name="action_cancel">Ikansela</string>
|
||||
<string name="action_sort">Ibukod</string>
|
||||
<string name="action_install">I-install</string>
|
||||
<string name="action_share">Ibahagi</string>
|
||||
<string name="action_save">I-save</string>
|
||||
<string name="action_reset">I-reset</string>
|
||||
<string name="action_undo">I-undo</string>
|
||||
<string name="action_open_log">Buksan ang log</string>
|
||||
<string name="action_create">Gumawa</string>
|
||||
<string name="action_restore">Ipanumbalik</string>
|
||||
<string name="action_open">Buksan</string>
|
||||
<string name="action_login">Mag-log in</string>
|
||||
<string name="loading">Nagkakarga…</string>
|
||||
<string name="app_not_available">Hindi available ang app</string>
|
||||
<string name="short_recent_updates">Mga Update</string>
|
||||
<string name="pref_category_general">Pangkalahatan</string>
|
||||
<string name="pref_category_reader">Pagbása</string>
|
||||
<string name="pref_category_downloads">Mga Download</string>
|
||||
<string name="pref_category_tracking">Sinusundan</string>
|
||||
<string name="pref_category_advanced">Higit pa</string>
|
||||
<string name="pref_category_about">Tungkol</string>
|
||||
<string name="pref_library_columns">Kada hilera</string>
|
||||
<string name="portrait">Patayo</string>
|
||||
<string name="landscape">Pahiga</string>
|
||||
<string name="default_columns">Itinakda</string>
|
||||
<string name="pref_library_update_interval">Dalas ng pag-update</string>
|
||||
<string name="update_never">Mano-mano</string>
|
||||
<string name="update_1hour">Oras-oras</string>
|
||||
<string name="update_2hour">Kada 2 oras</string>
|
||||
<string name="update_3hour">Kada 3 oras</string>
|
||||
<string name="update_6hour">Kada 6 na oras</string>
|
||||
<string name="update_12hour">Kada 12 oras</string>
|
||||
<string name="update_24hour">Araw-araw</string>
|
||||
<string name="update_48hour">Kada 2 araw</string>
|
||||
<string name="update_weekly">Linggo-linggo</string>
|
||||
<string name="update_monthly">Buwan-buwan</string>
|
||||
<string name="pref_library_update_categories">Mga Kategoryang isasama sa pangkalahatang update</string>
|
||||
<string name="all">Lahat</string>
|
||||
<string name="pref_library_update_restriction">Kondisyon sa pag-update</string>
|
||||
<string name="pref_library_update_restriction_summary">I-update lamang kapag nakamit ang (mga) kondisyon</string>
|
||||
<string name="wifi">Naka-wifi</string>
|
||||
<string name="charging">Naka-charge</string>
|
||||
<string name="pref_update_only_non_completed">I-update lamang ang (mga) nagpapatuloy na manga</string>
|
||||
<string name="pref_auto_update_manga_sync">I-sync ang mga kabanata pagkatapos basahin</string>
|
||||
<string name="pref_start_screen">Pambungad na iskrin</string>
|
||||
<string name="pref_language">Wika</string>
|
||||
<string name="system_default">Bahala ang sistema</string>
|
||||
<string name="default_category">Default na kategorya</string>
|
||||
<string name="default_category_summary">Palaging tanungin</string>
|
||||
<string name="all_lang">Lahat</string>
|
||||
<string name="ext_update">I-update</string>
|
||||
<string name="ext_install">I-install</string>
|
||||
<string name="ext_pending">Hinihintay</string>
|
||||
<string name="ext_downloading">Dina-download</string>
|
||||
<string name="ext_installing">Ini-install</string>
|
||||
<string name="ext_installed">Naka-install</string>
|
||||
<string name="ext_trust">Tiwala</string>
|
||||
<string name="ext_untrusted">Hindi tiwala</string>
|
||||
<string name="ext_uninstall">I-uninstall</string>
|
||||
<string name="ext_available">Available</string>
|
||||
<string name="untrusted_extension">Untrusted na extension</string>
|
||||
<string name="untrusted_extension_message">Ang extension na ito ay na-sign gamit ang isang untrusted certificate at hindi pinagana.
|
||||
\n
|
||||
\nAng isang malisyosong extension ay kayang mabasa ang kahit anong mga login credentials na nakatago sa Tachiyomi o di kaya\'y mag-execute ng arbitrary code.
|
||||
\n
|
||||
\nSa pamamagitan ng pagtitiwala sa certificate na ito, tinatanggap mo ang mga panganib na ito.</string>
|
||||
<string name="ext_version_info">Bersyon: %1$s</string>
|
||||
<string name="ext_language_info">Wika: %1$s</string>
|
||||
<string name="pref_fullscreen">I-fullscreen</string>
|
||||
<string name="pref_lock_orientation">I-lock ang oryentasyon</string>
|
||||
<string name="pref_page_transitions">Mga transisyon ng pahina</string>
|
||||
<string name="pref_double_tap_anim_speed">Bilis ng animation sa pag-dobleng pindot</string>
|
||||
<string name="pref_show_page_number">Ipakita ang bilang ng pahina</string>
|
||||
<string name="pref_true_color">Kulay na 32-bit</string>
|
||||
<string name="pref_crop_borders">I-crop ang mga gilid</string>
|
||||
<string name="pref_custom_brightness">Gamitin ang pansariling kaliwanagan</string>
|
||||
<string name="pref_custom_color_filter">Gamitin ang pansariling pagsalâ ng kulay</string>
|
||||
<string name="pref_keep_screen_on">Panatilihing nakabukas ang screen</string>
|
||||
<string name="pref_skip_read_chapters">Laktawan ang mga kabanatang namarkahang nabasa</string>
|
||||
<string name="pref_reader_navigation">Pangangalugad</string>
|
||||
<string name="pref_read_with_volume_keys">Mga buton sa volume</string>
|
||||
<string name="pref_read_with_volume_keys_inverted">Baligtarin ang buton sa volume</string>
|
||||
<string name="pref_read_with_tapping">Pag-pindot</string>
|
||||
<string name="pref_read_with_long_tap">Dialog sa mahabang pindot</string>
|
||||
<string name="pref_reader_theme">Kulay ng likuran</string>
|
||||
<string name="white_background">Puti</string>
|
||||
<string name="black_background">Itim</string>
|
||||
<string name="pref_viewer_type">Default na viewer</string>
|
||||
<string name="default_viewer">Default</string>
|
||||
<string name="left_to_right_viewer">Kaliwa pakanan</string>
|
||||
<string name="right_to_left_viewer">Kanan pakaliwa</string>
|
||||
<string name="vertical_viewer">Patayo</string>
|
||||
<string name="webtoon_viewer">Pa-webtoon</string>
|
||||
<string name="pager_viewer">Pager</string>
|
||||
<string name="pref_image_decoder">Decoder ng larawan</string>
|
||||
<string name="pref_image_scale_type">Uri ng pag-scale</string>
|
||||
<string name="scale_type_fit_screen">Pagkasyahin sa screen</string>
|
||||
<string name="scale_type_stretch">Banatin</string>
|
||||
<string name="scale_type_fit_width">Pagkasyahin ang lapad</string>
|
||||
<string name="scale_type_fit_height">Pagkasyahin ang tangkad</string>
|
||||
<string name="scale_type_original_size">Orihinal na laki</string>
|
||||
<string name="scale_type_smart_fit">Matalinong ipagkasya</string>
|
||||
<string name="pref_zoom_start">Panimulang posisyon na isu-zoom</string>
|
||||
<string name="zoom_start_automatic">Awtomatiko</string>
|
||||
<string name="zoom_start_left">Kaliwa</string>
|
||||
<string name="zoom_start_right">Kanan</string>
|
||||
<string name="zoom_start_center">Gitna</string>
|
||||
<string name="double_tap_anim_speed_0">Walang animasyon</string>
|
||||
<string name="double_tap_anim_speed_normal">Normal</string>
|
||||
<string name="double_tap_anim_speed_fast">Mabilis</string>
|
||||
<string name="pref_rotation_type">Pag-ikot</string>
|
||||
<string name="rotation_free">Malaya</string>
|
||||
<string name="rotation_lock">I-lock</string>
|
||||
<string name="rotation_force_portrait">Pwersahang patayo</string>
|
||||
<string name="rotation_force_landscape">Pwersahang pahiga</string>
|
||||
<string name="color_filter_r_value">R</string>
|
||||
<string name="color_filter_g_value">G</string>
|
||||
<string name="color_filter_b_value">B</string>
|
||||
<string name="color_filter_a_value">A</string>
|
||||
<string name="pref_download_directory">Directory ng mga Download</string>
|
||||
<string name="pref_download_only_over_wifi">Mag-download lamang sa Wi-Fi</string>
|
||||
<string name="pref_remove_after_marked_as_read">Tanggalin kapag namarkahang nabasa</string>
|
||||
<string name="pref_remove_after_read">Tanggalin pagkatapos basahin</string>
|
||||
<string name="custom_dir">Custom na directory</string>
|
||||
<string name="disabled">I-disable</string>
|
||||
<string name="last_read_chapter">Huling nabasang kabanata</string>
|
||||
<string name="second_to_last">Ikalawa sa huling kabanata</string>
|
||||
<string name="third_to_last">Ikatlo sa huling kabanata</string>
|
||||
<string name="fourth_to_last">Ikaapat sa huling kabanata</string>
|
||||
<string name="fifth_to_last">Ikalima sa huling kabanata</string>
|
||||
<string name="pref_download_new">Mag-download ng mga bagong kabanata</string>
|
||||
<string name="pref_download_new_categories">Mga kategoryang isasama sa pag-download</string>
|
||||
<string name="services">Mga Serbisyo</string>
|
||||
<string name="backup">Backup</string>
|
||||
<string name="pref_create_backup">Gumawa ng backup</string>
|
||||
<string name="pref_create_backup_summ">Maaring magamit para ma-restore ang kasalukuyang aklatan</string>
|
||||
<string name="pref_restore_backup">I-restore ang backup</string>
|
||||
<string name="pref_restore_backup_summ">I-restore ang aklatan mula sa backup file</string>
|
||||
<string name="pref_backup_directory">Directory ng backup</string>
|
||||
<string name="pref_backup_service_category">Serbisyo</string>
|
||||
<string name="pref_backup_interval">Dalas ng pag-backup</string>
|
||||
<string name="pref_backup_slots">Hangganan ng mga awtomatikong backup</string>
|
||||
<string name="backup_created">Nagawa na ang backup</string>
|
||||
<string name="restore_completed">Nakumpleto na ang pagre-restore</string>
|
||||
<string name="backup_restore_content">Ginagamit ng pagre-restore ang source para makakuha ng data, maaring magamit ang inyong data.
|
||||
\n
|
||||
\nSiguraduhin din na ikaw ay maayos na naka-login sa mga source that nangangailangan nito bago mag-restore.</string>
|
||||
<string name="pref_color_filter_mode">Blend mode ng color filter</string>
|
||||
<string name="filter_mode_default">Default</string>
|
||||
<string name="filter_mode_overlay">Patong (Overlay)</string>
|
||||
<string name="filter_mode_multiply">Paramihin (Multiply)</string>
|
||||
<string name="filter_mode_screen">Iskrin (Screen)</string>
|
||||
<string name="filter_mode_lighten">Iwas / Liwanag (Dodge / Lighten)</string>
|
||||
<string name="filter_mode_darken">Sunog / Dilim (Burn / Darken)</string>
|
||||
<string name="label_help">Tulong</string>
|
||||
<string name="pref_library_update_prioritization">Ayos ng pag-update</string>
|
||||
<string name="backup_choice">Ano ang gusto mong i-backup\?</string>
|
||||
<string name="restoring_backup">Nire-restore ang backup</string>
|
||||
<string name="creating_backup">Ginagawa ang backup</string>
|
||||
<string name="pref_clear_chapter_cache">Linisin ang cache ng kabanata</string>
|
||||
<string name="used_cache">Nagamit: %1$s</string>
|
||||
<string name="cache_deleted">Nalinis ang cache. Nabura ang %1$d na (mga) file</string>
|
||||
<string name="cache_delete_error">Nagkaproblema habang nililinis ang cache</string>
|
||||
<string name="pref_clear_cookies">Linisin ang mga cookies</string>
|
||||
<string name="cookies_cleared">Nalinis ang mga cookies</string>
|
||||
<string name="choices_reset">I-reset ang mga pinili sa dialog</string>
|
||||
<string name="pref_clear_database">Linisin ang database</string>
|
||||
<string name="pref_clear_database_summary">Burahin ang mga manga at kabanatang wala sa iyong aklatan</string>
|
||||
<string name="clear_database_confirmation">Sigurado ka ba\? Mawawala ang mga nabasang kabanata at ang daloy ng mga manga na wala sa aklatan</string>
|
||||
<string name="clear_database_completed">Binura ang mga tala</string>
|
||||
<string name="pref_refresh_library_tracking">I-refresh ang metadata ng mga sinusubaybayan</string>
|
||||
<string name="pref_refresh_library_tracking_summary">Ini-a-update ang estado, iskor, at huling nabasang kabanata mula sa mga tracking service</string>
|
||||
<string name="version">Bersyon</string>
|
||||
<string name="build_time">Oras ng build</string>
|
||||
<string name="pref_enable_acra">Ipadala ang mga ulat ng pagka-crash</string>
|
||||
<string name="pref_acra_summary">Nakakatulong sa pagsasaayos ng mga bugs. Walang sensitibong data ang ipapadala</string>
|
||||
<string name="login_title">Mag-login para kay %1$s</string>
|
||||
<string name="username">Taguri (Username)</string>
|
||||
<string name="password">Kontrasenyas (Password)</string>
|
||||
<string name="show_password">Ipakita ang kontrasenyas</string>
|
||||
<string name="login">Mag-login</string>
|
||||
<string name="login_success">Tagumpay ang login</string>
|
||||
<string name="invalid_login">Error sa login</string>
|
||||
<string name="unknown_error">Hindi malamang error</string>
|
||||
<string name="library_search_hint">Pamagat o Gumawa…</string>
|
||||
<string name="updating_category">Ini-a-update ang kategorya</string>
|
||||
<string name="local_source_badge">Lokal</string>
|
||||
<string name="confirm_delete_manga">Sigurado ka bang gusto mong tanggalin ang mga napiling manga\?</string>
|
||||
<string name="also_delete_chapters">Burahin din ang mga na-download na kabanata</string>
|
||||
<string name="source_requires_login">Kinakailangan ng source na ito na mag-login ka</string>
|
||||
<string name="select_source">Pumili ng source</string>
|
||||
<string name="no_valid_sources">Mangyaring i-enable ang kahit isang tunay na source</string>
|
||||
<string name="no_more_results">Wala nang mga resulta</string>
|
||||
<string name="local_source">Lokal na manga</string>
|
||||
<string name="other_source">Iba pa</string>
|
||||
<string name="invalid_combination">Hindi maaring mapili ang Default sa iba pang mga kategorya</string>
|
||||
<string name="added_to_library">Naidagdag na ang manga sa iyong aklatan</string>
|
||||
<string name="action_global_search_hint">Pangkalahatang paghahanap…</string>
|
||||
<string name="latest">Pinakabago</string>
|
||||
<string name="browse">Mag-browse</string>
|
||||
<string name="manga_not_in_db">Ang manga na ito ay tinanggal mula sa database.</string>
|
||||
<string name="manga_detail_tab">Impo</string>
|
||||
<string name="description">Paglalarawan</string>
|
||||
<string name="ongoing">Nagpapatuloy</string>
|
||||
<string name="unknown">Hindi alam</string>
|
||||
<string name="licensed">Lisensyado</string>
|
||||
<string name="remove_from_library">Tanggalin sa aklatan</string>
|
||||
<string name="manga_info_full_title_label">Pamagat</string>
|
||||
<string name="manga_added_library">Nadagdag sa aklatan</string>
|
||||
<string name="manga_removed_library">Natanggal sa aklatan</string>
|
||||
<string name="delete_downloads_for_manga">Burahin ang mga na-download na kabanata\?</string>
|
||||
<string name="copied_to_clipboard">Nakopya sa clipboard ang %1$s</string>
|
||||
<string name="source_not_installed">Hindi na-install ang source: %1$s</string>
|
||||
<string name="manga_chapters_tab">Mga Kabanata</string>
|
||||
<string name="manga_chapter_no_title">Walang Pamagat</string>
|
||||
<string name="display_mode_chapter">Kabanata %1$s</string>
|
||||
<string name="chapter_downloaded">Na-download</string>
|
||||
<string name="chapter_queued">Nakatoka</string>
|
||||
<string name="chapter_downloading">Dina-download</string>
|
||||
<string name="chapter_downloading_progress">Dina-download (%1$d/%2$d)</string>
|
||||
<string name="chapter_error">Nabigo</string>
|
||||
<string name="chapter_paused">Naka-tigil</string>
|
||||
<string name="fetch_chapters_error">Nagka-error habang kinukuha ang mga kabanata</string>
|
||||
<string name="show_title">Ipakita ang pamagat</string>
|
||||
<string name="show_chapter_number">Ipakita ang bilang ng kabanata</string>
|
||||
<string name="sorting_mode">Paraan ng pag-aayos</string>
|
||||
<string name="sort_by_source">Base sa source</string>
|
||||
<string name="sort_by_number">Base sa bilang ng kabanata</string>
|
||||
<string name="manga_download">I-download</string>
|
||||
<string name="custom_download">I-download ang custom na rami</string>
|
||||
<string name="download_1">Susunod na kabanata</string>
|
||||
<string name="download_5">Susunod na 5 kabanata</string>
|
||||
<string name="download_10">Susunod na 10 kabanata</string>
|
||||
<string name="download_custom">Custom</string>
|
||||
<string name="download_all">Lahat</string>
|
||||
<string name="download_unread">Hindi na nababasa</string>
|
||||
<string name="confirm_delete_chapters">Sigurado ka bang gusto mong burahin ang mga napiling kabanata\?</string>
|
||||
<string name="manga_tracking_tab">Sinusubaybayan</string>
|
||||
<string name="reading">Binabasa</string>
|
||||
<string name="completed">Nakumpleto</string>
|
||||
<string name="dropped">Umalis</string>
|
||||
<string name="on_hold">Nakatigil</string>
|
||||
<string name="plan_to_read">Planong basahin</string>
|
||||
<string name="repeating">Babasahin muli</string>
|
||||
<string name="score">Iskor</string>
|
||||
<string name="title">Pamagat</string>
|
||||
<string name="status">Estado</string>
|
||||
<string name="track_status">Estado</string>
|
||||
<string name="track_start_date">Nagsimula</string>
|
||||
<string name="track_type">Uri</string>
|
||||
<string name="track_author">Gumawa</string>
|
||||
<string name="error_category_exists">Mayroon nang kategoryang kasing-pangalan nito!</string>
|
||||
<string name="snack_categories_deleted">Binura ang mga kategorya</string>
|
||||
<string name="dialog_with_checkbox_remove_description">Tatanggalin nito ang petsa ng pagbasa ng kabanatang ito. Sigurado ka ba\?</string>
|
||||
<string name="dialog_with_checkbox_reset">I-reset ang lahat ng mga kabanata para sa manga na ito</string>
|
||||
<string name="snack_add_to_library">Idagdag ang manga sa Aklatan\?</string>
|
||||
<string name="picture_saved">Na-save ang larawan</string>
|
||||
<string name="saving_picture">Sine-save ang larawan</string>
|
||||
<string name="options">Mga Pagpipilian</string>
|
||||
<string name="custom_filter">Pasadyang pagsala</string>
|
||||
<string name="set_as_cover">I-set bilang pabalat</string>
|
||||
<string name="cover_updated">Na-update ang pabalat</string>
|
||||
<string name="page_downloaded">Nakopya ang pahina sa %1$s</string>
|
||||
<string name="downloading">Dina-download…</string>
|
||||
<string name="download_progress">Na-download %1$d%%</string>
|
||||
<string name="chapter_progress">Pahina: %1$d</string>
|
||||
<string name="chapter_subtitle">Kabanata %1$s</string>
|
||||
<string name="no_next_chapter">Hindi nakita ang susunod na kabanata</string>
|
||||
<string name="no_previous_chapter">Hindi nakita ang nakaraang kabanata</string>
|
||||
<string name="decode_image_error">Hindi ma-decode ang larawan</string>
|
||||
<string name="confirm_set_image_as_cover">Gusto mo bang i-set ang larawang ito bilang pabalat\?</string>
|
||||
<string name="transition_finished">Natapos:</string>
|
||||
<string name="transition_current">Kasalukuyan:</string>
|
||||
<string name="transition_next">Susunod:</string>
|
||||
<string name="transition_previous">Nakaraan:</string>
|
||||
<string name="transition_no_next">Walang susunod na kabanata</string>
|
||||
<string name="transition_no_previous">Walang nakaraang kabanata</string>
|
||||
<string name="transition_pages_loading">Kinakarga ang mga pahina…</string>
|
||||
<string name="transition_pages_error">Pumalya sa pagkarga ng mga pahina: %1$s</string>
|
||||
<string name="migration_info">Pindutin para mapili ang source na paglilipat</string>
|
||||
<string name="migration_dialog_what_to_include">Piliin ang mga isasamang data</string>
|
||||
<string name="migrate">Lumipat</string>
|
||||
<string name="copy">Kopyahin</string>
|
||||
<string name="download_queue_error">Nagkaproblema habang nagda-download ng mga kabanata. Maaring mong ulitin ito sa Downloads section.</string>
|
||||
<string name="notification_update_progress">Usad: %1$d/%2$d</string>
|
||||
<string name="notification_new_chapters">May (mga) bagong kabanatang nakita</string>
|
||||
<string name="notification_cover_update_failed">Pumalya sa pag-update ng pabalat</string>
|
||||
<string name="notification_first_add_to_library">Mangyaring idagdag muna ang manga sa iyong aklatan bago gawin ito</string>
|
||||
<string name="notification_not_connected_to_ac_title">Kinansela ang pag-sync</string>
|
||||
<string name="notification_not_connected_to_ac_body">Hindi nakakonekta sa AC power</string>
|
||||
<string name="notification_no_connection_title">Kinansela ang pag-sync</string>
|
||||
<string name="notification_no_connection_body">Walang koneksyon</string>
|
||||
<string name="file_select_cover">Pumili ng larawang pabalat</string>
|
||||
<string name="file_select_backup">Pumili ng backup file</string>
|
||||
<string name="file_select_icon">Pumili ng shortcut icon</string>
|
||||
<string name="update_check_confirm">Download</string>
|
||||
<string name="update_check_ignore">Pabayaan</string>
|
||||
<string name="update_check_no_new_updates">Walang mga bagong update</string>
|
||||
<string name="update_check_look_for_updates">Naghahanap ng mga update…</string>
|
||||
<string name="update_check_notification_file_download">Download update</string>
|
||||
<string name="update_check_notification_download_in_progress">Kasalukuyang nagda-download…</string>
|
||||
<string name="update_check_notification_download_complete">Nakumpleto ang pag-download</string>
|
||||
<string name="update_check_notification_download_error">Error sa pag-download</string>
|
||||
<string name="update_check_notification_update_available">Mayroong update</string>
|
||||
<string name="description_cover">Pabalat ng manga</string>
|
||||
<string name="information_no_downloads">Walang mga download</string>
|
||||
<string name="information_no_recent">Walang bago kamakailan</string>
|
||||
<string name="information_no_recent_manga">Walang binása kamakailan</string>
|
||||
<string name="information_empty_library">Walang laman ang Aklatan mo, magdagdag ng serye sa iyong Aklatan mula sa Mangalugad.</string>
|
||||
<string name="information_empty_category">Wala ka pang kategorya. Pindutin lang ang plus button para makagawa ng isa para maorganisa mo na ang Aklatan mo.</string>
|
||||
<string name="download_notifier_downloader_title">Tagapag-download</string>
|
||||
<string name="download_notifier_title_error">Error</string>
|
||||
<string name="download_notifier_unknown_error">Nangyari ang isang hindi inaasahang error habang dina-download ang kabanata</string>
|
||||
<string name="download_notifier_page_error">May nawawalang pahina sa directory</string>
|
||||
<string name="download_notifier_page_ready_error">Hindi naikarga ang isang pahina</string>
|
||||
<string name="download_notifier_text_only_wifi">Walang koneksyon sa Wi-Fi</string>
|
||||
<string name="download_notifier_no_network">Walang koneksyon sa Network</string>
|
||||
<string name="download_notifier_download_paused">Nakahinto ang pag-download</string>
|
||||
<string name="channel_common">Karaniwan</string>
|
||||
<string name="channel_library">Aklatan</string>
|
||||
<string name="no_results_found">Walang nahanap na resulta</string>
|
||||
<string name="action_webview_back">Bumalik</string>
|
||||
<string name="action_webview_forward">Susunod</string>
|
||||
<string name="pref_category_library">Aklatan</string>
|
||||
<string name="action_sort_latest_chapter">Pinakabagong kabanata</string>
|
||||
<string name="action_view_chapters">Mga kabanata</string>
|
||||
<string name="action_cancel_all">Kanselahin lahat</string>
|
||||
<string name="notification_chapters_single">Kabanata %1$s</string>
|
||||
<string name="track_finished_reading_date">Petsa na natapos basahin</string>
|
||||
<string name="track_started_reading_date">Petsa nagsimulang basahin</string>
|
||||
<string name="want_to_read">Gustong basahin</string>
|
||||
<string name="manga_info_about_label">Tungkol</string>
|
||||
<string name="pref_category_reading">Binabasa</string>
|
||||
<string name="pref_category_security">Seguridad</string>
|
||||
<string name="action_move_to_bottom">I-baba</string>
|
||||
<string name="action_move_to_top">I-taas</string>
|
||||
<string name="action_oldest">Pinakaluma</string>
|
||||
<string name="action_newest">Pinakabago</string>
|
||||
<string name="label_sources">Mga Pinagkunan</string>
|
||||
<string name="action_sort_last_checked">Huling sinilip</string>
|
||||
<string name="unlock_app">Buksan ang Tachiyomi</string>
|
||||
<string name="action_pin">I-pin</string>
|
||||
<string name="action_display_show_tabs">Ipakita ang mga kategorya</string>
|
||||
<string name="action_display_unread_badge">Bilang ng babasáhin</string>
|
||||
<string name="action_display_comfortable_grid">Maginhawa</string>
|
||||
<string name="action_migrate">Lumipat</string>
|
||||
<string name="action_start">Magsimula</string>
|
||||
<string name="action_disable_all">Isara lahat</string>
|
||||
<string name="action_enable_all">Buksan lahat</string>
|
||||
<string name="action_select_inverse">Baligtarin</string>
|
||||
<string name="action_menu">Pagpipilian</string>
|
||||
<string name="confirm_exit">Pindutin muli upang makaalis</string>
|
||||
<string name="label_more">Karagdagan</string>
|
||||
<string name="notification_chapters_single_and_more">Kabanata %q$s at %2$d pa</string>
|
||||
<plurals name="notification_chapters_generic">
|
||||
<item quantity="one">Isang bagong kabanata</item>
|
||||
<item quantity="other">%1$d (na) bagong kabanata</item>
|
||||
</plurals>
|
||||
<plurals name="notification_new_chapters_summary">
|
||||
<item quantity="one">Para sa isang serye</item>
|
||||
<item quantity="other">Para sa %d (na) serye</item>
|
||||
</plurals>
|
||||
<string name="notification_check_updates">Naghahanap ng mga bagong kabanata</string>
|
||||
<string name="information_webview_outdated">Mangyaring i-update po ang inyong WebView para sa mas maayos na pagpapakita</string>
|
||||
<string name="information_cloudflare_bypass_failure"/>
|
||||
<string name="pref_library_update_refresh_metadata">Awtomatikong i-refresh ang metadata</string>
|
||||
<string name="pref_category_library_update">Mga Update</string>
|
||||
<string name="pref_category_display">Pagpapakita</string>
|
||||
<string name="hide_notification_content">Itago ang nilalaman ng abiso</string>
|
||||
<string name="secure_screen_summary">Itago ang mga laman ng app sa tuwing lumilipat sa ibang app at harangin ang mga screenshot</string>
|
||||
<string name="secure_screen">Bantayán ang iskrin</string>
|
||||
<plurals name="lock_after_mins">
|
||||
<item quantity="one">Matapos ng 1 minuto</item>
|
||||
<item quantity="other">Matapos ng %1$s (na) minuto</item>
|
||||
</plurals>
|
||||
<string name="lock_never">Di kailanman</string>
|
||||
<string name="lock_always">Palagi</string>
|
||||
<string name="lock_when_idle">I-lock kapag di ginagamit</string>
|
||||
<string name="lock_with_biometrics">I-lock gamit ang biometrics</string>
|
||||
<string name="pref_manage_notifications">Mga abiso</string>
|
||||
<string name="pref_confirm_exit">Kumpirmahing aalis</string>
|
||||
<string name="pref_date_format">Pagsulat ng petsa</string>
|
||||
<string name="theme_dark_amoled">AMOLED na itim</string>
|
||||
<string name="theme_dark_blue">May bughaw</string>
|
||||
<string name="theme_dark_default">Orihinal</string>
|
||||
<string name="pref_theme_light">Maliwanag na tema</string>
|
||||
<string name="pref_theme_dark">Madilim na tema</string>
|
||||
<string name="theme_light_blue">May bughaw</string>
|
||||
<string name="theme_light_default">Orihinal</string>
|
||||
<string name="theme_light">Nakasara</string>
|
||||
<string name="theme_dark">Nakabukás</string>
|
||||
<string name="theme_system">Sundan ang sistema</string>
|
||||
<string name="pref_theme_mode">Madilim</string>
|
||||
<string name="action_webview_refresh">Sariwain</string>
|
||||
<string name="action_reorganize_by">I-reorder</string>
|
||||
<string name="action_unpin">I-unpin</string>
|
||||
<string name="action_disable">Isara</string>
|
||||
</resources>
|
@ -182,8 +182,8 @@
|
||||
<string name="color_filter_a_value">A</string>
|
||||
<string name="pref_download_directory">İndirme konumu</string>
|
||||
<string name="pref_download_only_over_wifi">Yalnızca Wi-Fi ile indir</string>
|
||||
<string name="pref_remove_after_marked_as_read">Okunmuş olarak işaretlendiğinde kaldır</string>
|
||||
<string name="pref_remove_after_read">Okunduktan sonra kaldır</string>
|
||||
<string name="pref_remove_after_marked_as_read">Okunmuş olarak işaretlenince</string>
|
||||
<string name="pref_remove_after_read">Okunduktan sonra</string>
|
||||
<string name="custom_dir">Özel konum</string>
|
||||
<string name="disabled">Devre dışı</string>
|
||||
<string name="last_read_chapter">Son okunan bölüm</string>
|
||||
@ -603,4 +603,12 @@
|
||||
<string name="channel_complete">Tamamlandı</string>
|
||||
<string name="channel_progress">İlerleme</string>
|
||||
<string name="download_notifier_download_finish">İndirme tamamlandı</string>
|
||||
<string name="channel_errors">Hatalar</string>
|
||||
<string name="backup_restore_missing_trackers">İzleyiciler giriş yapmadı:</string>
|
||||
<string name="pref_allow_nsfw_sources_blocked">Engelli</string>
|
||||
<string name="pref_allow_nsfw_sources_allowed_multisource">Kaynağı engelle, ancak uzantılar listesinde göster</string>
|
||||
<string name="pref_allow_nsfw_sources_allowed">İzinli</string>
|
||||
<string name="pref_allow_nsfw_sources">Uygunsuz kaynaklar</string>
|
||||
<string name="pref_remove_bookmarked_chapters">İşaretli bölümleri sil</string>
|
||||
<string name="pref_category_delete_chapters">Bölümleri sil</string>
|
||||
</resources>
|
@ -615,4 +615,10 @@
|
||||
<item quantity="other">%d трекерів</item>
|
||||
</plurals>
|
||||
<string name="no_pinned_sources">У вас немає закріплених джерел</string>
|
||||
<string name="group_backup_restore">Бекап та відновлення</string>
|
||||
<string name="group_downloader">Завантаження</string>
|
||||
<string name="channel_errors">Помилки</string>
|
||||
<string name="channel_complete">Завершено</string>
|
||||
<string name="channel_progress">Поступ</string>
|
||||
<string name="download_notifier_download_finish">Завантаження завершено</string>
|
||||
</resources>
|
@ -182,8 +182,8 @@
|
||||
<string name="color_filter_a_value">A</string>
|
||||
<string name="pref_download_directory">下载路径</string>
|
||||
<string name="pref_download_only_over_wifi">仅通过 Wi-Fi 下载</string>
|
||||
<string name="pref_remove_after_marked_as_read">已下载章节标记为已读时自动删除</string>
|
||||
<string name="pref_remove_after_read">阅读后删除</string>
|
||||
<string name="pref_remove_after_marked_as_read">被手动标记为已读后</string>
|
||||
<string name="pref_remove_after_read">阅毕</string>
|
||||
<string name="custom_dir">自定义路径</string>
|
||||
<string name="disabled">关闭</string>
|
||||
<string name="last_read_chapter">最后阅读的章节</string>
|
||||
@ -583,13 +583,21 @@
|
||||
<string name="pref_category_theme">主题</string>
|
||||
<string name="action_sort_date_added">添加日期</string>
|
||||
<plurals name="num_trackers">
|
||||
<item quantity="other">%d 个漫画同步源</item>
|
||||
<item quantity="other">%d 个同步源</item>
|
||||
</plurals>
|
||||
<string name="pref_read_with_tapping_inverted">反转轻触方向</string>
|
||||
<string name="no_pinned_sources">你没有已置顶的图源</string>
|
||||
<string name="group_backup_restore">备份和还原</string>
|
||||
<string name="group_downloader">下载项</string>
|
||||
<string name="group_downloader">下载</string>
|
||||
<string name="channel_complete">完成</string>
|
||||
<string name="channel_progress">进度</string>
|
||||
<string name="download_notifier_download_finish">下载已完成</string>
|
||||
<string name="channel_errors">错误</string>
|
||||
<string name="backup_restore_missing_trackers">未登录的同步源:</string>
|
||||
<string name="pref_allow_nsfw_sources_blocked">拦截的</string>
|
||||
<string name="pref_allow_nsfw_sources_allowed_multisource">拦截源但显示在扩展列表中</string>
|
||||
<string name="pref_allow_nsfw_sources_allowed">允许的</string>
|
||||
<string name="pref_allow_nsfw_sources">NSFW 源</string>
|
||||
<string name="pref_remove_bookmarked_chapters">删除添加为书签的章节</string>
|
||||
<string name="pref_category_delete_chapters">删除章节</string>
|
||||
</resources>
|
@ -583,4 +583,12 @@
|
||||
<string name="invalid_backup_file_missing_data">檔案遺失資料</string>
|
||||
<string name="group_backup_restore">備份與還原</string>
|
||||
<string name="source_not_found_name">找不到來源:%1$s</string>
|
||||
<string name="backup_restore_missing_trackers">尚未登入至歷程平台:</string>
|
||||
<string name="channel_progress">進度</string>
|
||||
<string name="channel_errors">錯誤</string>
|
||||
<string name="channel_complete">完成</string>
|
||||
<string name="pref_allow_nsfw_sources_blocked">已封鎖</string>
|
||||
<string name="pref_allow_nsfw_sources_allowed">已允許</string>
|
||||
<string name="download_notifier_download_finish">下載完成</string>
|
||||
<string name="group_downloader">下載</string>
|
||||
</resources>
|
@ -74,6 +74,6 @@
|
||||
<color name="md_blue_grey_900">#263238</color>
|
||||
<color name="md_blue_grey_800">#37474F</color>
|
||||
|
||||
<color name="pale_green">#AAE1AA</color>
|
||||
<color name="green">#47a84a</color>
|
||||
|
||||
</resources>
|
||||
|
@ -170,6 +170,13 @@
|
||||
<string name="secure_screen_summary">Hide app contents when switching apps and block screenshots</string>
|
||||
<string name="hide_notification_content">Hide notification content</string>
|
||||
|
||||
<string name="pref_category_parental_controls">Parental controls</string>
|
||||
<string name="pref_allow_nsfw_sources">18+ sources</string>
|
||||
<string name="pref_allow_nsfw_sources_allowed">Allowed</string>
|
||||
<string name="pref_allow_nsfw_sources_allowed_multisource">Block browsing sources but show in extensions list</string>
|
||||
<string name="pref_allow_nsfw_sources_blocked">Blocked</string>
|
||||
<string name="parental_controls_info">This does not prevent unofficial or potentially incorrectly flagged extensions from surfacing 18+ content within the app.</string>
|
||||
|
||||
<!-- Library section -->
|
||||
<string name="pref_category_display">Display</string>
|
||||
<string name="pref_library_columns">Items per row</string>
|
||||
@ -231,6 +238,8 @@
|
||||
<string name="unofficial_extension_message">This extension is not from the official Tachiyomi extensions list.</string>
|
||||
<string name="ext_version_info">Version: %1$s</string>
|
||||
<string name="ext_language_info">Language: %1$s</string>
|
||||
<string name="ext_nsfw_short">18+</string>
|
||||
<string name="ext_nsfw_warning">May contain 18+ content</string>
|
||||
|
||||
<!-- Reader section -->
|
||||
<string name="pref_fullscreen">Fullscreen</string>
|
||||
@ -311,8 +320,10 @@
|
||||
<!-- Downloads section -->
|
||||
<string name="pref_download_directory">Download location</string>
|
||||
<string name="pref_download_only_over_wifi">Only download over Wi-Fi</string>
|
||||
<string name="pref_remove_after_marked_as_read">Remove when marked as read</string>
|
||||
<string name="pref_remove_after_read">Remove after read</string>
|
||||
<string name="pref_category_delete_chapters">Delete chapters</string>
|
||||
<string name="pref_remove_after_marked_as_read">After manually marked as read</string>
|
||||
<string name="pref_remove_after_read">After reading</string>
|
||||
<string name="pref_remove_bookmarked_chapters">Delete bookmarked chapters</string>
|
||||
<string name="custom_dir">Custom location</string>
|
||||
<string name="disabled">Disabled</string>
|
||||
<string name="last_read_chapter">Last read chapter</string>
|
||||
@ -349,6 +360,7 @@
|
||||
<string name="invalid_backup_file_missing_data">File is missing data.</string>
|
||||
<string name="invalid_backup_file_missing_manga">Backup does not contain any manga.</string>
|
||||
<string name="backup_restore_missing_sources">Missing sources:</string>
|
||||
<string name="backup_restore_missing_trackers">Trackers not logged into:</string>
|
||||
<string name="backup_restore_content">Restore uses sources to fetch data, carrier costs may apply.\n\nMake sure you have installed all necessary extensions and are logged in to sources and tracking services before restoring.</string>
|
||||
<string name="restore_completed">Restore completed</string>
|
||||
<string name="restore_duration">%02d min, %02d sec</string>
|
||||
|
Reference in New Issue
Block a user