Compare commits

...

28 Commits

Author SHA1 Message Date
Koitharu
5436c65b76 Update about settings 2023-04-19 18:26:19 +03:00
Koitharu
c590813a1a Filter GitHub assets by type 2023-04-19 18:24:50 +03:00
Koitharu
1cf36e1b41 Fix domain validator 2023-04-19 18:24:14 +03:00
Koitharu
5895a20af1 Update shikimori domain 2023-04-19 18:24:00 +03:00
Koitharu
fd5fd43b72 Update parsers 2023-04-19 18:23:36 +03:00
Koitharu
dfb88feaf0 Update parsers 2023-04-06 19:48:22 +03:00
tryvseu
149b171eda Added translation using Weblate (Norwegian Nynorsk)
Added translation using Weblate (Norwegian Nynorsk)

Co-authored-by: tryvseu <tryvseu@tuta.io>
2023-04-06 18:44:43 +03:00
InfinityDouki56
c70a2487d9 Translated using Weblate (Filipino)
Currently translated at 92.2% (393 of 426 strings)

Co-authored-by: InfinityDouki56 <ced.paltep10@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/kotatsu/strings/fil/
Translation: Kotatsu/Strings
2023-04-06 18:44:43 +03:00
Koitharu
865f335b25 Fix lint errors 2023-03-25 16:26:24 +02:00
Koitharu
6b1e89eda8 Update parsers 2023-03-25 16:04:57 +02:00
Koitharu
0dbaf919e2 Remove pages duplicates #309 2023-03-25 15:48:39 +02:00
Koitharu
7431f46117 Update acra url 2023-03-25 08:59:47 +02:00
Koitharu
48ac417189 Remove referrer field 2023-03-25 08:56:41 +02:00
Koitharu
98453c34a7 Update parsers 2023-03-25 08:47:00 +02:00
FateXBlood
c62e29d995 Translated using Weblate (Nepali)
Currently translated at 14.0% (60 of 426 strings)

Translated using Weblate (Nepali)

Currently translated at 100.0% (8 of 8 strings)

Added translation using Weblate (Nepali)

Added translation using Weblate (Nepali)

Co-authored-by: FateXBlood <zecrofelix@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/kotatsu/plurals/ne/
Translate-URL: https://hosted.weblate.org/projects/kotatsu/strings/ne/
Translation: Kotatsu/Strings
Translation: Kotatsu/plurals
2023-03-25 08:15:52 +02:00
J. Lavoie
4d0bd9538b Translated using Weblate (French)
Currently translated at 100.0% (426 of 426 strings)

Co-authored-by: J. Lavoie <j.lavoie@net-c.ca>
Translate-URL: https://hosted.weblate.org/projects/kotatsu/strings/fr/
Translation: Kotatsu/Strings
2023-03-25 08:15:52 +02:00
ssantos
fdb4e5098e Translated using Weblate (Portuguese)
Currently translated at 98.3% (419 of 426 strings)

Translated using Weblate (Portuguese)

Currently translated at 98.3% (419 of 426 strings)

Co-authored-by: ssantos <ssantos@web.de>
Translate-URL: https://hosted.weblate.org/projects/kotatsu/strings/pt/
Translation: Kotatsu/Strings
2023-03-25 08:15:52 +02:00
Макар Разин
758d3c55d4 Translated using Weblate (Belarusian)
Currently translated at 100.0% (426 of 426 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (426 of 426 strings)

Translated using Weblate (Belarusian)

Currently translated at 100.0% (426 of 426 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (8 of 8 strings)

Co-authored-by: Макар Разин <makarrazin14@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/kotatsu/plurals/ru/
Translate-URL: https://hosted.weblate.org/projects/kotatsu/strings/be/
Translate-URL: https://hosted.weblate.org/projects/kotatsu/strings/uk/
Translation: Kotatsu/Strings
Translation: Kotatsu/plurals
2023-03-25 08:15:52 +02:00
GpixeL
f40ff12250 Translated using Weblate (Indonesian)
Currently translated at 96.2% (410 of 426 strings)

Co-authored-by: GpixeL <gamesfire313@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/kotatsu/strings/id/
Translation: Kotatsu/Strings
2023-03-25 08:15:52 +02:00
Koitharu
4f3721beea Update parsers 2023-03-09 07:46:09 +02:00
Макар Разин
346526267e Translated using Weblate (Russian)
Currently translated at 100.0% (8 of 8 strings)

Co-authored-by: Макар Разин <makarrazin14@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/kotatsu/plurals/ru/
Translation: Kotatsu/plurals
2023-03-09 07:36:33 +02:00
Jeffrey
6c82c6e9f5 Translated using Weblate (Korean)
Currently translated at 83.5% (356 of 426 strings)

Co-authored-by: Jeffrey <kjw5608kjw@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/kotatsu/strings/ko/
Translation: Kotatsu/Strings
2023-03-09 07:36:33 +02:00
InfinityDouki56
11dabd7426 Translated using Weblate (Filipino)
Currently translated at 92.0% (392 of 426 strings)

Co-authored-by: InfinityDouki56 <ced.paltep10@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/kotatsu/strings/fil/
Translation: Kotatsu/Strings
2023-03-09 07:36:33 +02:00
GpixeL
056a26b55c Translated using Weblate (Indonesian)
Currently translated at 99.7% (425 of 426 strings)

Translated using Weblate (Indonesian)

Currently translated at 98.3% (419 of 426 strings)

Translated using Weblate (Indonesian)

Currently translated at 98.3% (419 of 426 strings)

Co-authored-by: GpixeL <gamesfire313@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/kotatsu/strings/id/
Translation: Kotatsu/Strings
2023-03-09 07:36:33 +02:00
Felipe Nogueira
f1863ddc71 Translated using Weblate (Portuguese (Brazil))
Currently translated at 97.8% (417 of 426 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 97.4% (415 of 426 strings)

Co-authored-by: Felipe Nogueira <contato.fnog@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/kotatsu/strings/pt_BR/
Translation: Kotatsu/Strings
2023-03-09 07:36:33 +02:00
Koitharu
437ae4cdae Add mission import 2023-03-07 19:49:56 +02:00
ViAnh
98f5615d77 Apply suggestions from code review
Co-authored-by: Koitharu <nvasya95@gmail.com>
2023-03-07 19:45:08 +02:00
vianh
44ce3ce66d Move get cache page to background thread 2023-03-07 19:45:08 +02:00
33 changed files with 1026 additions and 606 deletions

View File

@@ -15,8 +15,8 @@ android {
applicationId 'org.koitharu.kotatsu'
minSdkVersion 21
targetSdkVersion 33
versionCode 520
versionName '4.4.4'
versionCode 525
versionName '4.4.9'
generatedDensities = []
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
@@ -59,7 +59,7 @@ android {
]
}
lint {
abortOnError false
abortOnError true
disable 'MissingTranslation', 'PrivateResource', 'NotifyDataSetChanged'
}
testOptions {
@@ -78,7 +78,8 @@ afterEvaluate {
}
}
dependencies {
implementation('com.github.KotatsuApp:kotatsu-parsers:e8d299782b') {
//noinspection GradleDependency
implementation('com.github.KotatsuApp:kotatsu-parsers:1b6d1456f3') {
exclude group: 'org.json', module: 'json'
}
@@ -132,7 +133,7 @@ dependencies {
debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.10'
testImplementation 'junit:junit:4.13.2'
testImplementation 'org.json:json:20220924'
testImplementation 'org.json:json:20230227'
testImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.4'
androidTestImplementation 'androidx.test:runner:1.5.2'

View File

@@ -10,6 +10,8 @@ import kotlinx.coroutines.flow.asStateFlow
import kotlinx.coroutines.withContext
import okhttp3.OkHttpClient
import okhttp3.Request
import org.json.JSONArray
import org.json.JSONObject
import org.koitharu.kotatsu.BuildConfig
import org.koitharu.kotatsu.core.prefs.AppSettings
import org.koitharu.kotatsu.parsers.util.await
@@ -28,6 +30,7 @@ import javax.inject.Inject
import javax.inject.Singleton
private const val CERT_SHA1 = "2C:19:C7:E8:07:61:2B:8E:94:51:1B:FD:72:67:07:64:5D:C2:58:AE"
private const val CONTENT_TYPE_APK = "application/vnd.android.package-archive"
@Singleton
class AppUpdateRepository @Inject constructor(
@@ -46,7 +49,9 @@ class AppUpdateRepository @Inject constructor(
.url("https://api.github.com/repos/KotatsuApp/Kotatsu/releases?page=1&per_page=10")
val jsonArray = okHttp.newCall(request.build()).await().parseJsonArray()
return jsonArray.mapJSONNotNull { json ->
val asset = json.optJSONArray("assets")?.optJSONObject(0) ?: return@mapJSONNotNull null
val asset = json.optJSONArray("assets")?.find { jo ->
jo.optString("content_type") == CONTENT_TYPE_APK
} ?: return@mapJSONNotNull null
AppVersion(
id = json.getLong("id"),
url = json.getString("html_url"),
@@ -103,4 +108,15 @@ class AppUpdateRepository @Inject constructor(
}.onFailure { error ->
error.printStackTraceDebug()
}.getOrNull()
private inline fun JSONArray.find(predicate: (JSONObject) -> Boolean): JSONObject? {
val size = length()
for (i in 0 until size) {
val jo = getJSONObject(i)
if (predicate(jo)) {
return jo
}
}
return null
}
}

View File

@@ -52,7 +52,6 @@ fun Parcel.readManga() = Manga(
fun MangaPage.writeToParcel(out: Parcel) {
out.writeLong(id)
out.writeString(url)
out.writeString(referer)
out.writeString(preview)
out.writeSerializable(source)
}
@@ -60,7 +59,6 @@ fun MangaPage.writeToParcel(out: Parcel) {
fun Parcel.readMangaPage() = MangaPage(
id = readLong(),
url = requireNotNull(readString()),
referer = requireNotNull(readString()),
preview = readString(),
source = checkNotNull(readSerializableCompat()),
)

View File

@@ -1,5 +1,6 @@
package org.koitharu.kotatsu.core.parser
import android.util.Log
import kotlinx.coroutines.CoroutineDispatcher
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
@@ -9,6 +10,7 @@ import kotlinx.coroutines.currentCoroutineContext
import okhttp3.Headers
import okhttp3.Interceptor
import okhttp3.Response
import org.koitharu.kotatsu.BuildConfig
import org.koitharu.kotatsu.core.cache.ContentCache
import org.koitharu.kotatsu.core.cache.SafeDeferred
import org.koitharu.kotatsu.core.prefs.SourceSettings
@@ -77,7 +79,7 @@ class RemoteMangaRepository(
override suspend fun getPages(chapter: MangaChapter): List<MangaPage> {
cache.getPages(source, chapter.url)?.let { return it }
val pages = asyncSafe {
parser.getPages(chapter)
parser.getPages(chapter).distinctById()
}
cache.putPages(source, chapter.url, pages)
return pages.await()
@@ -108,4 +110,20 @@ class RemoteMangaRepository(
},
)
}
private fun List<MangaPage>.distinctById(): List<MangaPage> {
if (isEmpty()) {
return emptyList()
}
val result = ArrayList<MangaPage>(size)
val set = HashSet<Long>(size)
for (page in this) {
if (set.add(page.id)) {
result.add(page)
} else if (BuildConfig.DEBUG) {
Log.w(null, "Duplicate page: $page")
}
}
return result
}
}

View File

@@ -117,7 +117,7 @@ class DownloadManager @AssistedInject constructor(
val data = if (manga.chapters.isNullOrEmpty()) repo.getDetails(manga) else manga
output = CbzMangaOutput.get(destination, data)
val coverUrl = data.largeCoverUrl ?: data.coverUrl
downloadFile(coverUrl, data.publicUrl, destination, tempFileName, repo.source).let { file ->
downloadFile(coverUrl, destination, tempFileName, repo.source).let { file ->
output.addCover(file, MimeTypeMap.getFileExtensionFromUrl(coverUrl))
}
val chapters = checkNotNull(
@@ -138,8 +138,8 @@ class DownloadManager @AssistedInject constructor(
for ((pageIndex, page) in pages.withIndex()) {
runFailsafe(outState, pausingHandle) {
val url = repo.getPageUrl(page)
val file = cache[url]
?: downloadFile(url, page.referer, destination, tempFileName, repo.source)
val file = cache.get(url)
?: downloadFile(url, destination, tempFileName, repo.source)
output.addPage(
chapter = chapter,
file = file,
@@ -211,14 +211,12 @@ class DownloadManager @AssistedInject constructor(
private suspend fun downloadFile(
url: String,
referer: String,
destination: File,
tempFileName: String,
source: MangaSource,
): File {
val request = Request.Builder()
.url(url)
.header(CommonHeaders.REFERER, referer)
.tag(MangaSource::class.java, source)
.cacheControl(CommonHeaders.CACHE_CONTROL_DISABLED)
.get()

View File

@@ -4,6 +4,7 @@ import android.content.Context
import com.tomclaw.cache.DiskLruCache
import dagger.hilt.android.qualifiers.ApplicationContext
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.runInterruptible
import kotlinx.coroutines.withContext
import org.koitharu.kotatsu.utils.FileSize
import org.koitharu.kotatsu.utils.ext.copyToSuspending
@@ -30,8 +31,8 @@ class PagesCache @Inject constructor(@ApplicationContext context: Context) {
size = FileSize.MEGABYTES.convert(200, FileSize.BYTES),
)
operator fun get(url: String): File? {
return lruCache.get(url)?.takeIfReadable()
suspend fun get(url: String): File? = runInterruptible(Dispatchers.IO) {
lruCache.get(url)?.takeIfReadable()
}
suspend fun put(url: String, inputStream: InputStream): File = withContext(Dispatchers.IO) {

View File

@@ -118,7 +118,6 @@ class LocalMangaRepository @Inject constructor(private val storageManager: Local
id = entryUri.longHashCode(),
url = entryUri,
preview = null,
referer = chapter.url,
source = MangaSource.LOCAL,
)
}

View File

@@ -5,7 +5,6 @@ import android.graphics.BitmapFactory
import android.net.Uri
import androidx.collection.LongSparseArray
import androidx.collection.set
import kotlinx.coroutines.CompletableDeferred
import kotlinx.coroutines.CoroutineExceptionHandler
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
@@ -13,7 +12,7 @@ import kotlinx.coroutines.SupervisorJob
import kotlinx.coroutines.async
import kotlinx.coroutines.cancel
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.launch
import kotlinx.coroutines.runInterruptible
import kotlinx.coroutines.sync.Mutex
import kotlinx.coroutines.sync.withLock
@@ -54,11 +53,11 @@ class PageLoader @Inject constructor(
private val tasks = LongSparseArray<ProgressDeferred<File, Float>>()
private val convertLock = Mutex()
private val prefetchLock = Mutex()
private var repository: MangaRepository? = null
private val prefetchQueue = LinkedList<MangaPage>()
private val counter = AtomicInteger(0)
private var prefetchQueueLimit = PREFETCH_LIMIT_DEFAULT // TODO adaptive
private val emptyProgressFlow: StateFlow<Float> = MutableStateFlow(-1f)
override fun close() {
loaderScope.cancel()
@@ -71,8 +70,8 @@ class PageLoader @Inject constructor(
return repository is RemoteMangaRepository && settings.isPagesPreloadEnabled()
}
fun prefetch(pages: List<ReaderPage>) {
synchronized(prefetchQueue) {
fun prefetch(pages: List<ReaderPage>) = loaderScope.launch {
prefetchLock.withLock {
for (page in pages.asReversed()) {
if (tasks.containsKey(page.id)) {
continue
@@ -89,18 +88,13 @@ class PageLoader @Inject constructor(
}
fun loadPageAsync(page: MangaPage, force: Boolean): ProgressDeferred<File, Float> {
if (!force) {
cache[page.url]?.let {
return getCompletedTask(it)
}
}
var task = tasks[page.id]
if (force) {
task?.cancel()
} else if (task?.isCancelled == false) {
return task
}
task = loadPageAsyncImpl(page)
task = loadPageAsyncImpl(page, force)
synchronized(tasks) {
tasks[page.id] = task
}
@@ -130,23 +124,26 @@ class PageLoader @Inject constructor(
return getRepository(page.source).getPageUrl(page)
}
private fun onIdle() {
synchronized(prefetchQueue) {
private fun onIdle() = loaderScope.launch {
prefetchLock.withLock {
while (prefetchQueue.isNotEmpty()) {
val page = prefetchQueue.pollFirst() ?: return
if (cache[page.url] == null) {
val page = prefetchQueue.pollFirst() ?: return@launch
if (cache.get(page.url) == null) {
synchronized(tasks) {
tasks[page.id] = loadPageAsyncImpl(page)
tasks[page.id] = loadPageAsyncImpl(page, false)
}
return
return@launch
}
}
}
}
private fun loadPageAsyncImpl(page: MangaPage): ProgressDeferred<File, Float> {
private fun loadPageAsyncImpl(page: MangaPage, skipCache: Boolean): ProgressDeferred<File, Float> {
val progress = MutableStateFlow(PROGRESS_UNDEFINED)
val deferred = loaderScope.async {
if (!skipCache) {
cache.get(page.url)?.let { return@async it }
}
counter.incrementAndGet()
try {
loadPageImpl(page, progress)
@@ -188,7 +185,6 @@ class PageLoader @Inject constructor(
val request = Request.Builder()
.url(pageUrl)
.get()
.header(CommonHeaders.REFERER, page.referer)
.header(CommonHeaders.ACCEPT, "image/webp,image/png;q=0.9,image/jpeg,*/*;q=0.8")
.cacheControl(CommonHeaders.CACHE_CONTROL_DISABLED)
.tag(MangaSource::class.java, page.source)
@@ -207,11 +203,6 @@ class PageLoader @Inject constructor(
}
}
private fun getCompletedTask(file: File): ProgressDeferred<File, Float> {
val deferred = CompletableDeferred(file)
return ProgressDeferred(deferred, emptyProgressFlow)
}
private class InternalErrorHandler : AbstractCoroutineContextElement(CoroutineExceptionHandler),
CoroutineExceptionHandler {

View File

@@ -38,7 +38,6 @@ class ColorFilterConfigViewModel @AssistedInject constructor(
preview.value = MangaPage(
id = page.id,
url = url,
referer = page.referer,
preview = page.preview,
source = page.source,
)

View File

@@ -9,7 +9,6 @@ import org.koitharu.kotatsu.parsers.model.MangaSource
data class ReaderPage(
val id: Long,
val url: String,
val referer: String,
val preview: String?,
val chapterId: Long,
val index: Int,
@@ -19,7 +18,6 @@ data class ReaderPage(
constructor(page: MangaPage, index: Int, chapterId: Long) : this(
id = page.id,
url = page.url,
referer = page.referer,
preview = page.preview,
chapterId = chapterId,
index = index,
@@ -29,7 +27,6 @@ data class ReaderPage(
fun toMangaPage() = MangaPage(
id = id,
url = url,
referer = referer,
preview = preview,
source = source,
)

View File

@@ -26,7 +26,7 @@ import org.koitharu.kotatsu.scrobbling.common.domain.model.ScrobblerUser
import org.koitharu.kotatsu.utils.ext.toRequestBody
private const val REDIRECT_URI = "kotatsu://shikimori-auth"
private const val BASE_URL = "https://shikimori.one/"
private const val BASE_URL = "https://shikimori.me/"
private const val MANGA_PAGE_SIZE = 10
class ShikimoriRepository(
@@ -195,15 +195,15 @@ class ShikimoriRepository(
id = json.getLong("id"),
name = json.getString("name"),
altName = json.getStringOrNull("russian"),
cover = json.getJSONObject("image").getString("preview").toAbsoluteUrl("shikimori.one"),
url = json.getString("url").toAbsoluteUrl("shikimori.one"),
cover = json.getJSONObject("image").getString("preview").toAbsoluteUrl("shikimori.me"),
url = json.getString("url").toAbsoluteUrl("shikimori.me"),
)
private fun ScrobblerMangaInfo(json: JSONObject) = ScrobblerMangaInfo(
id = json.getLong("id"),
name = json.getString("name"),
cover = json.getJSONObject("image").getString("preview").toAbsoluteUrl("shikimori.one"),
url = json.getString("url").toAbsoluteUrl("shikimori.one"),
cover = json.getJSONObject("image").getString("preview").toAbsoluteUrl("shikimori.me"),
url = json.getString("url").toAbsoluteUrl("shikimori.me"),
descriptionHtml = json.getString("description_html"),
)

View File

@@ -1,11 +1,14 @@
package org.koitharu.kotatsu.settings
import okhttp3.HttpUrl
import okhttp3.internal.toCanonicalHost
import org.koitharu.kotatsu.R
import org.koitharu.kotatsu.utils.EditTextValidator
class DomainValidator : EditTextValidator() {
private val urlBuilder = HttpUrl.Builder()
override fun validate(text: String): ValidationResult {
val trimmed = text.trim()
if (trimmed.isEmpty()) {
@@ -18,13 +21,7 @@ class DomainValidator : EditTextValidator() {
}
}
private fun checkCharacters(value: String): Boolean {
for (i in value.indices) {
val c = value[i]
if (c !in '\u0020'..'\u007e') {
return false
}
}
return true
}
private fun checkCharacters(value: String): Boolean = runCatching {
urlBuilder.host(value)
}.isSuccess
}

View File

@@ -36,6 +36,7 @@ class AboutSettingsFragment : BasePreferenceFragment(R.string.about) {
}
findPreference<SwitchPreferenceCompat>(AppSettings.KEY_UPDATES_UNSTABLE)?.run {
isEnabled = VersionId(BuildConfig.VERSION_NAME).isStable
if (!isEnabled) isChecked = true
}
}

View File

@@ -31,8 +31,7 @@ class AboutLinksPreference @JvmOverloads constructor(
binding.btn4pda,
binding.btnDiscord,
binding.btnGithub,
binding.btnReddit,
binding.btnTwitter,
binding.btnTelegram,
).forEach { button ->
TooltipCompat.setTooltipText(button, button.contentDescription)
button.setOnClickListener(this)
@@ -43,8 +42,7 @@ class AboutLinksPreference @JvmOverloads constructor(
val urlResId = when (v.id) {
R.id.btn_4pda -> R.string.url_forpda
R.id.btn_discord -> R.string.url_discord
R.id.btn_twitter -> R.string.url_twitter
R.id.btn_reddit -> R.string.url_reddit
R.id.btn_telegram -> R.string.url_telegram
R.id.btn_github -> R.string.url_github
else -> return
}
@@ -59,7 +57,7 @@ class AboutLinksPreference @JvmOverloads constructor(
Intent.createChooser(intent, title)
} else {
intent
}
},
)
} catch (_: ActivityNotFoundException) {
}

View File

@@ -1,11 +0,0 @@
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:tint="?attr/colorControlNormal"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#FF000000"
android:pathData="M14.5 15.41C14.58 15.5 14.58 15.69 14.5 15.8C13.77 16.5 12.41 16.56 12 16.56C11.61 16.56 10.25 16.5 9.54 15.8C9.44 15.69 9.44 15.5 9.54 15.41C9.65 15.31 9.82 15.31 9.92 15.41C10.38 15.87 11.33 16 12 16C12.69 16 13.66 15.87 14.1 15.41C14.21 15.31 14.38 15.31 14.5 15.41M10.75 13.04C10.75 12.47 10.28 12 9.71 12C9.14 12 8.67 12.47 8.67 13.04C8.67 13.61 9.14 14.09 9.71 14.08C10.28 14.08 10.75 13.61 10.75 13.04M14.29 12C13.72 12 13.25 12.5 13.25 13.05S13.72 14.09 14.29 14.09C14.86 14.09 15.33 13.61 15.33 13.05C15.33 12.5 14.86 12 14.29 12M22 12C22 17.5 17.5 22 12 22S2 17.5 2 12C2 6.5 6.5 2 12 2S22 6.5 22 12M18.67 12C18.67 11.19 18 10.54 17.22 10.54C16.82 10.54 16.46 10.7 16.2 10.95C15.2 10.23 13.83 9.77 12.3 9.71L12.97 6.58L15.14 7.05C15.16 7.6 15.62 8.04 16.18 8.04C16.75 8.04 17.22 7.57 17.22 7C17.22 6.43 16.75 5.96 16.18 5.96C15.77 5.96 15.41 6.2 15.25 6.55L12.82 6.03C12.75 6 12.68 6.03 12.63 6.07C12.57 6.11 12.54 6.17 12.53 6.24L11.79 9.72C10.24 9.77 8.84 10.23 7.82 10.96C7.56 10.71 7.2 10.56 6.81 10.56C6 10.56 5.35 11.21 5.35 12C5.35 12.61 5.71 13.11 6.21 13.34C6.19 13.5 6.18 13.62 6.18 13.78C6.18 16 8.79 17.85 12 17.85C15.23 17.85 17.85 16.03 17.85 13.78C17.85 13.64 17.84 13.5 17.81 13.34C18.31 13.11 18.67 12.6 18.67 12Z" />
</vector>

View File

@@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="512"
android:viewportHeight="512">
<path
android:pathData="m196.03,328.68 l162,118.8c16.8,10.8 31.2,4.8 36,-16.8l66,-309.6c6,-26.4 -10.8,-38.4 -28.8,-30L46.03,239.88c-25.2,9.6 -25.2,25.2 -4.8,31.2l99.6,31.2 228,-145.2c10.8,-6 20.4,-3.6 13.2,4.8"
android:strokeWidth="1.2"
android:fillColor="#000000"/>
</vector>

View File

@@ -1,11 +0,0 @@
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:tint="?attr/colorControlNormal"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="@android:color/white"
android:pathData="M22.46,6C21.69,6.35 20.86,6.58 20,6.69C20.88,6.16 21.56,5.32 21.88,4.31C21.05,4.81 20.13,5.16 19.16,5.36C18.37,4.5 17.26,4 16,4C13.65,4 11.73,5.92 11.73,8.29C11.73,8.63 11.77,8.96 11.84,9.27C8.28,9.09 5.11,7.38 3,4.79C2.63,5.42 2.42,6.16 2.42,6.94C2.42,8.43 3.17,9.75 4.33,10.5C3.62,10.5 2.96,10.3 2.38,10C2.38,10 2.38,10 2.38,10.03C2.38,12.11 3.86,13.85 5.82,14.24C5.46,14.34 5.08,14.39 4.69,14.39C4.42,14.39 4.15,14.36 3.89,14.31C4.43,16 6,17.26 7.89,17.29C6.43,18.45 4.58,19.13 2.56,19.13C2.22,19.13 1.88,19.11 1.54,19.07C3.44,20.29 5.7,21 8.12,21C16,21 20.33,14.46 20.33,8.79C20.33,8.6 20.33,8.42 20.32,8.23C21.16,7.63 21.88,6.87 22.46,6Z" />
</vector>

View File

@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
@@ -7,13 +8,13 @@
android:gravity="center">
<ImageButton
android:id="@+id/btn_4pda"
android:id="@+id/btn_github"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="?attr/selectableItemBackgroundBorderless"
android:contentDescription="4PDA"
android:contentDescription="GitHub"
android:padding="16dp"
android:src="@drawable/ic_4pda"
android:src="@drawable/ic_github"
app:tint="?attr/colorAccent"
tools:ignore="HardcodedText" />
@@ -29,35 +30,24 @@
tools:ignore="HardcodedText" />
<ImageButton
android:id="@+id/btn_twitter"
android:id="@+id/btn_telegram"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="?attr/selectableItemBackgroundBorderless"
android:contentDescription="Twitter"
android:contentDescription="Telegram"
android:padding="16dp"
android:src="@drawable/ic_twitter"
android:src="@drawable/ic_telegram"
app:tint="?attr/colorAccent"
tools:ignore="HardcodedText" />
<ImageButton
android:id="@+id/btn_reddit"
android:id="@+id/btn_4pda"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="?attr/selectableItemBackgroundBorderless"
android:contentDescription="Reddit"
android:contentDescription="4PDA"
android:padding="16dp"
android:src="@drawable/ic_reddit"
app:tint="?attr/colorAccent"
tools:ignore="HardcodedText" />
<ImageButton
android:id="@+id/btn_github"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="?attr/selectableItemBackgroundBorderless"
android:contentDescription="GitHub"
android:padding="16dp"
android:src="@drawable/ic_github"
android:src="@drawable/ic_4pda"
app:tint="?attr/colorAccent"
tools:ignore="HardcodedText" />

View File

@@ -326,7 +326,8 @@
<string name="clear_all_history">Ачысціць усю гісторыю</string>
<string name="history_cleared">Гісторыя ачышчана</string>
<string name="incognito_mode">Рэжым інкогніта</string>
<string name="categories_delete_confirm">Вы ўпэўнены, што хочаце выдаліць выбраныя абраныя катэгорыі\? Уся манга ў ім будзе страчана, і гэта нельга будзе адрабіць.</string>
<string name="categories_delete_confirm">Вы ўпэўнены, што хочаце выдаліць выбраныя абраныя катэгорыі\?
\nУся манга ў ім будзе страчана, і гэта нельга будзе адрабіць.</string>
<string name="no_bookmarks_summary">Вы можаце стварыць закладку падчас чытання мангі</string>
<string name="saved_manga">Захаваная манга</string>
<string name="enter_email_text">Каб працягнуць, увядзіце свой адрас электроннай пошты</string>
@@ -415,4 +416,9 @@
<string name="options">Параметры</string>
<string name="downloading_manga">Спампоўка мангі</string>
<string name="seconds_pattern">%s с</string>
<string name="user_agent">Загаловак UserAgent</string>
<string name="allow_unstable_updates">Дазволіць нестабільныя абнаўленні</string>
<string name="allow_unstable_updates_summary">Прапануйце абнаўленні да бэта-версій праграмы</string>
<string name="download_started">Спампоўка пачалася</string>
<string name="settings_apply_restart_required">Калі ласка, перазапусціце праграму каб прымяніць змены</string>
</resources>

View File

@@ -41,7 +41,7 @@
<string name="large_manga_save_confirm">Ang manga na ito ay may %s. I-save ang lahat ng ito\?</string>
<string name="notifications">Mga abiso</string>
<string name="enabled_d_of_d" tools:ignore="PluralsCandidate">%1$d ng %2$d sa</string>
<string name="new_chapters">Bagong mga kabanata</string>
<string name="new_chapters">Mga bagong kabanata</string>
<string name="read_from_start">Basahin mula sa simula</string>
<string name="restart">I-restart</string>
<string name="categories_">Mga kategorya…</string>
@@ -408,4 +408,17 @@
<string name="download_started">Nagsimula na ang pag-download</string>
<string name="color_theme">Scheme ng kulay</string>
<string name="theme_name_miku">Miku</string>
<string name="user_agent">Header ng UserAgent</string>
<string name="cache">Cache</string>
<string name="text_file_sizes">B|kB|MB|GB|TB</string>
<string name="standard">Standard</string>
<string name="webtoon">Webtoon</string>
<string name="read_mode">Read mode</string>
<string name="error">Error</string>
<string name="internal_storage">Internal storage</string>
<string name="external_storage">External storage</string>
<string name="vibration">Vibration</string>
<string name="domain">Domain</string>
<string name="light_indicator">LED indicator</string>
<string name="settings_apply_restart_required">Mangyaring i-restart ang application upang ilapat ang mga pagbabagong ito</string>
</resources>

View File

@@ -420,4 +420,5 @@
<string name="theme_name_kanade">Kanade</string>
<string name="allow_unstable_updates_summary">Proposer des mises à jour des versions bêta de l\'application</string>
<string name="user_agent">En-tête UserAgent</string>
<string name="settings_apply_restart_required">Veuillez redémarrer l\'application pour appliquer ces changements</string>
</resources>

View File

@@ -5,8 +5,8 @@
<string name="local_storage">Penyimpanan lokal</string>
<string name="favourites">Favorit</string>
<string name="history">Riwayat</string>
<string name="error_occurred">Terjadi galat</string>
<string name="network_error">Tidak bisa menyambung ke internet</string>
<string name="error_occurred">Terjadi kesalahan</string>
<string name="network_error">Kesalahan jaringan</string>
<string name="details">Detail</string>
<string name="grid">Kisi</string>
<string name="list_mode">Mode daftar</string>
@@ -17,7 +17,7 @@
<string name="chapter_d_of_d">Bab %1$d dari %2$d</string>
<string name="close">Tutup</string>
<string name="try_again">Coba lagi</string>
<string name="nothing_found">Tidak ditemukan apa-apa</string>
<string name="nothing_found">Tidak ada yang ditemukan</string>
<string name="history_is_empty">Belum ada riwayat</string>
<string name="read">Baca</string>
<string name="you_have_not_favourites_yet">Belum ada favorit</string>
@@ -30,7 +30,7 @@
<string name="create_shortcut">Buat pintasan…</string>
<string name="share_s">Bagikan %s</string>
<string name="search">Cari</string>
<string name="search_manga">Cari manga</string>
<string name="search_manga">Cari komik</string>
<string name="manga_downloading_">Mengunduh…</string>
<string name="processing_">Memproses…</string>
<string name="download_complete">Diunduh</string>
@@ -39,9 +39,9 @@
<string name="popular">Populer</string>
<string name="updated">Diperbarui</string>
<string name="newest">Terbaru</string>
<string name="by_rating">Rating</string>
<string name="by_rating">Peringkat</string>
<string name="sort_order">Urutan penyortiran</string>
<string name="filter">Filter</string>
<string name="filter">Saring</string>
<string name="theme">Tema</string>
<string name="light">Terang</string>
<string name="dark">Gelap</string>
@@ -61,14 +61,14 @@
<string name="page_saved">Disimpan</string>
<string name="share_image">Bagikan gambar</string>
<string name="_import">Impor</string>
<string name="history_and_cache">Riwayat dan tembolok</string>
<string name="clear_pages_cache">Bersihkan tembolok halaman</string>
<string name="cache">Tembolok</string>
<string name="history_and_cache">Riwayat dan cache</string>
<string name="clear_pages_cache">Bersihkan cache halaman</string>
<string name="cache">Cache</string>
<string name="text_file_sizes">B|kB|MB|GB|TB</string>
<string name="standard">Standar</string>
<string name="grid_size">Ukuran kisi</string>
<string name="search_on_s">Cari di %s</string>
<string name="delete_manga">Hapus manga</string>
<string name="delete_manga">Hapus komik</string>
<string name="text_delete_local_manga">Hapus \"%s\" dari perangkat secara permanen\?</string>
<string name="reader_settings">Pengaturan pembaca</string>
<string name="switch_pages">Ganti halaman</string>
@@ -84,7 +84,7 @@
<string name="network_consumption_warning">Ini mungkin akan mentransfer banyak data</string>
<string name="dont_ask_again">Jangan tanya lagi</string>
<string name="cancelling_">Membatalkan…</string>
<string name="clear_thumbs_cache">Bersihkan tembolok keluku</string>
<string name="clear_thumbs_cache">Bersihkan cache gambar mini</string>
<string name="clear_search_history">Bersihkan riwayat pencarian</string>
<string name="search_history_cleared">Dibersihkan</string>
<string name="domain">Domain</string>
@@ -103,7 +103,7 @@
<string name="categories_">Kategori…</string>
<string name="rename">Ubah Nama</string>
<string name="category_delete_confirm">Hapus kategori \"%s\" dari favorit Anda\?
\nSemua manga di situ akan hilang.</string>
\nSemua komik di dalamnya akan hilang.</string>
<string name="text_empty_holder_primary">Sepi juga di sini…</string>
<string name="text_categories_holder">Anda bisa menggunakan kategori untuk mengelola favorit Anda. Tekan «+» untuk membuat kategori</string>
<string name="text_history_holder_primary">Apa yang Anda baca akan ditampilkan di sini</string>
@@ -112,7 +112,7 @@
<string name="manga_shelf">Rak</string>
<string name="recent_manga">Baru-baru ini</string>
<string name="pages_animation">Animasi halaman</string>
<string name="manga_save_location">Folder untuk unduhan</string>
<string name="manga_save_location">Folder unduhan</string>
<string name="not_available">Tidak tersedia</string>
<string name="cannot_find_available_storage">Tidak ada penyimpanan yang tersedia</string>
<string name="other_storage">Penyimpanan lain</string>
@@ -133,20 +133,20 @@
<string name="wrong_password">Kata sandi salah</string>
<string name="protect_application">Lindungi aplikasi</string>
<string name="repeat_password">Ulangi kata sandi</string>
<string name="update_check_failed">Tidak bisa mencari pembaruan</string>
<string name="update_check_failed">Tidak dapat mencari pembaruan</string>
<string name="scale_mode">Mode skala</string>
<string name="create_backup">Buat cadangan data</string>
<string name="data_restored">Dipulihkan</string>
<string name="report_github">Buat isu di GitHub</string>
<string name="data_restored_success">Semua data dipulihkan</string>
<string name="data_restored_with_errors">Data berhasil dipulihkan, tapi ada galat</string>
<string name="backup_information">Anda bisa membuat cadangan riwayat dan favorit Anda dan memulihkannya</string>
<string name="data_restored_with_errors">Data berhasil dipulihkan, tapi ada kesalahan</string>
<string name="backup_information">Anda dapat membuat cadangan riwayat dan favorit Anda dan memulihkannya</string>
<string name="just_now">Baru saja</string>
<string name="long_ago">Dulu kala</string>
<string name="long_ago">Lama</string>
<string name="group">Kelompok</string>
<string name="today">Hari ini</string>
<string name="tap_to_try_again">Ketuk untuk coba lagi</string>
<string name="reader_mode_hint">Konfigurasi yang dipilih akan diingat untuk manga ini</string>
<string name="reader_mode_hint">Konfigurasi yang dipilih akan diingat untuk komik ini</string>
<string name="silent">Diam</string>
<string name="captcha_required">CAPTCHA diperlukan</string>
<string name="captcha_solve">Selesaikan</string>
@@ -156,7 +156,7 @@
<string name="clear_feed">Bersihkan umpan</string>
<string name="check_for_new_chapters">Periksa bab baru</string>
<string name="auth_required">Masuk untuk melihat konten ini</string>
<string name="_and_x_more">…dan %1$d lagi</string>
<string name="_and_x_more">…dan %1$d lainnya</string>
<string name="next">Selanjutnya</string>
<string name="protect_application_subtitle">Masukkan kata sandi untuk memulai aplikasi</string>
<string name="confirm">Konfirmasi</string>
@@ -175,26 +175,26 @@
<string name="text_clear_cookies_prompt">Anda akan keluar dari semua sumber</string>
<string name="genres">Genre</string>
<string name="state_finished">Selesai</string>
<string name="state_ongoing">Sedang dibaca</string>
<string name="state_ongoing">Berlanjut</string>
<string name="date_format">Format tanggal</string>
<string name="system_default">Standar</string>
<string name="exclude_nsfw_from_history">Kecualikan manga NSFW dari riwayat</string>
<string name="show_pages_numbers">Halaman bernomor</string>
<string name="exclude_nsfw_from_history">Kecualikan komik NSFW dari riwayat</string>
<string name="show_pages_numbers">Nomor halaman</string>
<string name="enabled_sources">Sumber yang digunakan</string>
<string name="available_sources">Sumber yang tersedia</string>
<string name="dynamic_theme">Tema dinamis</string>
<string name="dynamic_theme_summary">Gunakan tema yang dibuat pada skema warna gambar latar belakang Anda</string>
<string name="importing_progress">Mengimpor manga: %1$d dari %2$d</string>
<string name="importing_progress">Mengimpor komik: %1$d dari %2$d</string>
<string name="screenshots_policy">Kebijakan tangkapan layar</string>
<string name="screenshots_allow">Bolehkan</string>
<string name="screenshots_block_nsfw">Blokir pada NSFW</string>
<string name="screenshots_block_all">Selalu blokir</string>
<string name="suggestions">Saran</string>
<string name="suggestions_enable">Aktifkan saran</string>
<string name="suggestions_summary">Sarankan manga berdasarkan preferensi Anda</string>
<string name="suggestions_summary">Sarankan komik berdasarkan preferensi Anda</string>
<string name="suggestions_info">Semua data dianalisis secara lokal di perangkat ini. Tidak ada transfer data personal ke layanan apa pun</string>
<string name="text_suggestion_holder">Mulai membaca manga dan Anda akan mendapatkan saran yang dipersonalisasi</string>
<string name="exclude_nsfw_from_suggestions">Jangan menyarankan manga NSFW</string>
<string name="text_suggestion_holder">Mulai membaca komik dan Anda akan mendapatkan saran yang dipersonalisasi</string>
<string name="exclude_nsfw_from_suggestions">Jangan menyarankan komik NSFW</string>
<string name="always">Selalu</string>
<string name="preload_pages">Muat ulang halaman</string>
<string name="logged_in_as">Masuk sebagai %s</string>
@@ -203,13 +203,13 @@
<string name="filter_load_error">Tidak bisa memuat daftar genre</string>
<string name="reset_filter">Atur ulang filter</string>
<string name="find_genre">Cari genre</string>
<string name="onboard_text">Pilih bahasa manga yang ingin Anda baca. Anda bisa mengubahnya nanti di pengaturan.</string>
<string name="onboard_text">Pilih bahasa komik yang ingin Anda baca. Anda bisa mengubahnya nanti di pengaturan.</string>
<string name="never">Jangan Pernah</string>
<string name="only_using_wifi">Hanya di Wi-Fi</string>
<string name="nsfw">18+</string>
<string name="various_languages">Berbagai bahasa</string>
<string name="search_chapters">Cari bab</string>
<string name="chapters_empty">Tidak ada bab di manga ini</string>
<string name="chapters_empty">Tidak ada bab di komik ini</string>
<string name="percent_string_pattern">%1$s%%</string>
<string name="appearance">Tampilan</string>
<string name="content">Konten</string>
@@ -217,16 +217,16 @@
<string name="suggestions_excluded_genres_summary">Tentukan genre yang Anda tidak ingin lihat di saran</string>
<string name="text_delete_local_manga_batch">Hapus yang dipilih dari perangkat secara permanen\?</string>
<string name="removal_completed">Selesai menghapus</string>
<string name="batch_manga_save_confirm">Apakah Anda yakin ingin mengunduh semua manga yang dipilih dengan semua babnya\? Tindakan ini akan memakan banyak data dan penyimpanan</string>
<string name="batch_manga_save_confirm">Unduh semua komik yang dipilih dan babnya\? Ini dapat mengkonsumsi banyak lalu lintas jaringan dan penyimpanan.</string>
<string name="parallel_downloads">Unduhan paralel</string>
<string name="download_slowdown">Perlambatan unduhan</string>
<string name="suggestions_updating">Saran diperbarui</string>
<string name="download_slowdown">Perlambat unduhan</string>
<string name="suggestions_updating">Pembaruan saran</string>
<string name="download_slowdown_summary">Membantu menghidari pemblokiran alamat IP Anda</string>
<string name="chapters_will_removed_background">Bab akan dihapus di latar belakang. Akan memakan beberapa waktu</string>
<string name="hide">Sembunyikan</string>
<string name="new_sources_text">Sumber manga baru tersedia</string>
<string name="new_sources_text">Tersedia sumber komik baru</string>
<string name="check_new_chapters_title">Periksa bab baru dan beri tahu tentang itu</string>
<string name="show_notification_new_chapters_on">Anda akan menerima pemberitahuan tentang pembaruan manga yang Anda baca</string>
<string name="show_notification_new_chapters_on">Anda akan menerima pemberitahuan tentang pembaruan komik yang Anda baca</string>
<string name="show_notification_new_chapters_off">Anda tidak akan menerima pemberitahuan, tapi bab baru akan disorot di daftar</string>
<string name="notifications_enable">Aktifkan pemberitahuan</string>
<string name="name">Nama</string>
@@ -240,9 +240,9 @@
<string name="bookmark_added">Markah ditambahkan</string>
<string name="undo">Urung</string>
<string name="removed_from_history">Dihapus dari riwayat</string>
<string name="default_mode">Mode standar</string>
<string name="default_mode">Mode pembaca</string>
<string name="detect_reader_mode">Otomatis deteksi mode pembaca</string>
<string name="detect_reader_mode_summary">Secara otomatis mendeteksi jika manga itu webtoon</string>
<string name="detect_reader_mode_summary">Secara otomatis mendeteksi jika komik itu webtoon</string>
<string name="create_category">Kategori baru</string>
<string name="show_notification_app_update">Tampilkan pemberitahuan ketika versi baru tersedia</string>
<string name="light_indicator">Indikator LED</string>
@@ -250,7 +250,7 @@
<string name="favourites_categories">Kategori favorit</string>
<string name="remove_category">Hapus</string>
<string name="clear_updates_feed">Bersihkan umpan pembaruan</string>
<string name="right_to_left">Kanan ke kiri (←)</string>
<string name="right_to_left">Kanan ke kiri</string>
<string name="waiting_for_network">Menunggu jaringan…</string>
<string name="rotate_screen">Putar layar</string>
<string name="feed_will_update_soon">Pembaruan umpan akan dimulai</string>
@@ -262,7 +262,7 @@
<string name="app_version">Versi %s</string>
<string name="internal_storage">Penyimpanan internal</string>
<string name="external_storage">Penyimpanan eksternal</string>
<string name="error">Galat</string>
<string name="error">Kesalahan</string>
<string name="checking_for_updates">Memeriksa pembaruan…</string>
<string name="no_update_available">Tidak ada pembaruan yang tersedia</string>
<string name="black_dark_theme_summary">Menggunakan daya lebih sedikit pada layar AMOLED</string>
@@ -281,15 +281,15 @@
<string name="about_feedback">Umpan Balik</string>
<string name="error_empty_name">Anda harus memasukkan sebuah nama</string>
<string name="taps_on_edges">Tekan di tepi</string>
<string name="large_manga_save_confirm">Manga ini memiliki %s. Simpan semuanya\?</string>
<string name="zoom_mode_fit_center">Cocokkan tengah</string>
<string name="zoom_mode_fit_height">Cocokkan dengan tinggi</string>
<string name="zoom_mode_fit_width">Cocokkan dengan lebar</string>
<string name="large_manga_save_confirm">Komik ini memiliki %s. Simpan semuanya\?</string>
<string name="zoom_mode_fit_center">Pas tengah</string>
<string name="zoom_mode_fit_height">Pas tinggi</string>
<string name="zoom_mode_fit_width">Pas lebar</string>
<string name="reverse">Balik</string>
<string name="queued">Diantrikan</string>
<string name="auth_complete">Berhasil Diotorisasi</string>
<string name="queued">Antri</string>
<string name="auth_complete">Diotorisasi</string>
<string name="text_local_holder_secondary">Simpan dari sumber daring atau berkas impor.</string>
<string name="text_shelf_holder_primary">Manga Anda akan ditampilkan di sini</string>
<string name="text_shelf_holder_primary">Komik Anda akan ditampilkan di sini</string>
<string name="text_shelf_holder_secondary">Cari apa untuk dibaca di bagian «Jelajah»</string>
<string name="email_enter_hint">Masukkan surel Anda untuk melanjutkan</string>
<string name="status_re_reading">Dibaca ulang</string>
@@ -307,17 +307,17 @@
<string name="status_on_hold">Ditunda</string>
<string name="invalid_domain_message">Domain tidak valid</string>
<string name="no_bookmarks_yet">Belum ada markah</string>
<string name="no_bookmarks_summary">Anda bisa membuat markah ketika membaca manga</string>
<string name="no_bookmarks_summary">Anda bisa membuat markah ketika membaca komik</string>
<string name="bookmarks_removed">Markah dihapus</string>
<string name="no_manga_sources">Tidak ada sumber manga</string>
<string name="no_manga_sources">Tidak ada sumber komik</string>
<string name="random">Acak</string>
<string name="empty">Kosong</string>
<string name="changelog">Daftar Perubahan</string>
<string name="removed_from_s">Dihapus dari \"%s\"</string>
<string name="reader_info_bar">Tampilkan bilah informasi di pembaca</string>
<string name="importing_manga">Mengimpor manga</string>
<string name="importing_manga">Mengimpor komik</string>
<string name="last_2_hours">Dua jam terakhir</string>
<string name="downloading_manga">Mengunduh manga</string>
<string name="downloading_manga">Mengunduh komik</string>
<string name="show_all">Tampilkan semua</string>
<string name="history_cleared">Riwayat dihapus</string>
<string name="clear_all_history">Hapus semua riwayat</string>
@@ -328,49 +328,97 @@
<string name="not_found_404">Konten tidak ditemukan atau dihapus</string>
<string name="exit_confirmation_summary">Tekan Kembali dua kali untuk keluar dari aplikasi</string>
<string name="exit_confirmation">Konfirmasi keluar</string>
<string name="pages_cache">Tembolok halaman</string>
<string name="other_cache">Tembolok lainnya</string>
<string name="pages_cache">Cache halaman</string>
<string name="other_cache">Cache lainnya</string>
<string name="storage_usage">Penggunaan penyimpanan</string>
<string name="available">Tersedia</string>
<string name="incognito_mode">Mode Incognito</string>
<string name="incognito_mode">Mode penyamaran</string>
<string name="app_update_available_s">Pembaruan aplikasi tersedia: %s</string>
<string name="automatic_scroll">Gulir otomatis</string>
<string name="comics_archive">Arsip komik</string>
<string name="folder_with_images">Folder dengan gambar</string>
<string name="import_completed_hint">Anda bisa menghapus berkas asli dari penyimpanan untuk menghemat ruang</string>
<string name="feed">Umpan</string>
<string name="manga_error_description_pattern">Detail galat:&lt;br&gt;&lt;tt&gt;%1$s&lt;/tt&gt;&lt;br&gt;&lt;br&gt;1. Coba untuk &lt;a href=%2$s&gt;membuka manga di peramban web&lt;/a&gt; untuk memastikan bahwa itu tersedia di sumbernya&lt;br&gt;2. Jika tersedia, kirim laporan galat ke pengembang.</string>
<string name="manga_error_description_pattern">Detail kesalahan:&lt;br&gt;&lt;tt&gt;%1$s&lt;/tt&gt;&lt;br&gt;&lt;br&gt;1. Coba untuk &lt;a href=%2$s&gt;membuka komik di peramban web&lt;/a&gt; untuk memastikan bahwa itu tersedia di sumbernya&lt;br&gt;2. Jika tersedia, kirim laporan kesalahan ke pengembang.</string>
<string name="brightness">Kecerahan</string>
<string name="contrast">Kontras</string>
<string name="reset">Atur Ulang</string>
<string name="color_correction_hint">Pengaturan warna yang dipilih akan diingat untuk manga ini</string>
<string name="text_unsaved_changes_prompt">Anda memiliki perubahan belum tersimpan, apakah Anda ingin menyimpannya atau membuangnya\?</string>
<string name="color_correction_hint">Pengaturan warna yang dipilih akan diingat untuk komik ini</string>
<string name="text_unsaved_changes_prompt">Menyimpan atau membuang perubahan yang belum disimpan\?</string>
<string name="discard">Buang</string>
<string name="use_fingerprint">Gunakan sidik jari jika tersedia</string>
<string name="appwidget_shelf_description">Manga dari favorit Anda</string>
<string name="appwidget_recent_description">Manga yang baru-baru ini Anda baca</string>
<string name="appwidget_shelf_description">Komik dari favorit Anda</string>
<string name="appwidget_recent_description">Komik yang baru-baru ini Anda baca</string>
<string name="data_deletion">Penghapusan data</string>
<string name="account_already_exists">Akun sudah ada</string>
<string name="back">Kembali</string>
<string name="disable_battery_optimization_summary">Membantu pemeriksaan pembaruan di latar belakang</string>
<string name="crash_text">Ada sesuatu yang salah. Mohon untuk mengirim laporan kutu (bug) ke pengembang untuk membantu kami memperbaikinya.</string>
<string name="report">Lapor</string>
<string name="exclude_nsfw_from_history_summary">Manga yang ditandai sebagai NSFW tidak akan ditambahkan ke riwayat dan progres Anda tidak akan disimpan</string>
<string name="exclude_nsfw_from_history_summary">Komik yang ditandai sebagai NSFW tidak akan ditambahkan ke riwayat dan pencapaian Anda tidak akan disimpan</string>
<string name="clear_cookies_summary">Bisa membantu dalam beberapa masalah. Seluruh otorisasi akan menjadi tidak valid</string>
<string name="manage">Kelola</string>
<string name="no_manga_sources_text">Aktifkan sumber manga untuk membaca manga daring</string>
<string name="no_manga_sources_text">Aktifkan sumber komik untuk membaca komik daring</string>
<string name="categories_delete_confirm">Apakah Anda yakin ingin menghapus kategori favorit yang dipilih\?
\n Semua manga di sana akan hilang dan ini tidak bisa diurungkan.</string>
\nSemua komik di sana akan hilang dan ini tidak bisa diurungkan.</string>
<string name="reorder">Atur Ulang</string>
<string name="saved_manga">Manga tersimpan</string>
<string name="saved_manga">Komik tersimpan</string>
<string name="confirm_exit">Tekan Kembali lagi untuk keluar</string>
<string name="no_chapters">Tidak ada bab</string>
<string name="history_shortcuts">Tampilkan pintasan manga baru-baru ini</string>
<string name="history_shortcuts_summary">Buat manga baru-baru ini tersedia dengan menekan panjang pada ikon aplikasi</string>
<string name="history_shortcuts">Tampilkan pintasan komik baru-baru ini</string>
<string name="history_shortcuts_summary">Buat komik baru-baru ini tersedia dengan menekan panjang pada ikon aplikasi</string>
<string name="select_range">Pilih jangkauan</string>
<string name="disable_all">Matikan semua</string>
<string name="gestures_only">Hanya gestur</string>
<string name="dns_over_https">DNS melalui HTTPS</string>
<string name="dns_over_https">DNS over HTTPS</string>
<string name="status_dropped">Istirahat</string>
<string name="off_short">Mati</string>
<string name="theme_name_mamimi">Mamimi</string>
<string name="server_error">Kesalahan sisi server (%1$d). Silakan coba lagi nanti</string>
<string name="compact">kompak</string>
<string name="prefetch_content">Pramuat konten</string>
<string name="memory_usage_pattern">%s - %s</string>
<string name="nothing_here">Tidak ada apapun di sini</string>
<string name="reader_control_ltr_summary">Ketuk di tepi kanan atau menekan tombol kanan akan selalu beralih ke halaman berikutnya</string>
<string name="source_disabled">Sumber dinonaktifkan</string>
<string name="mark_as_current">Tandai sebagai saat ini</string>
<string name="show_suspicious_content">Tampilkan konten yang mencurigakan</string>
<string name="scrobbling_empty_hint">Untuk melacak kemajuan membaca, pilih Menu → Lacak di layar detail komik.</string>
<string name="services">Layanan</string>
<string name="clear_new_chapters_counters">Juga informasi yang jelas tentang bab baru</string>
<string name="network_unavailable_hint">Nyalakan Wi-Fi atau jaringan seluler untuk membaca komik daring</string>
<string name="user_agent">Tajuk Agen Pengguna</string>
<string name="settings_apply_restart_required">Mulai ulang aplikasi untuk menerapkan perubahan ini</string>
<string name="theme_name_kanade">Kanade</string>
<string name="share_logs">Bagikan log</string>
<string name="error_no_space_left">Tidak ada ruang tersisa di perangkat</string>
<string name="allow_unstable_updates">Izinkan pembaruan yang tidak stabil</string>
<string name="allow_unstable_updates_summary">Usulkan pembaruan ke versi beta</string>
<string name="download_started">Unduh dimulai</string>
<string name="show_reading_indicators">Tampilkan indikator kemajuan membaca</string>
<string name="show_reading_indicators_summary">Tampilkan persentase baca dalam riwayat dan favorit</string>
<string name="language">Bahasa</string>
<string name="text_search_holder_secondary">Cobalah untuk merubah kueri.</string>
<string name="zoom_mode_keep_start">Tetap di awal</string>
<string name="seconds_pattern">%ss</string>
<string name="reader_info_pattern">Bab. %1$d/%2$d Hal. %3$d/%4$d</string>
<string name="enable_logging">Aktifkan pencatatan</string>
<string name="enable_logging_summary">Rekam beberapa tindakan untuk tujuan debug</string>
<string name="theme_name_dynamic">Dinamis</string>
<string name="color_theme">Skema warna</string>
<string name="show_in_grid_view">Perlihatkan dalam tampilan kisi</string>
<string name="theme_name_miku">Miku</string>
<string name="theme_name_asuka">Asuka</string>
<string name="theme_name_mion">Mion</string>
<string name="theme_name_rikka">Rikka</string>
<string name="theme_name_sakura">Sakura</string>
<string name="local_manga_processing">Pemrosesan komik tersimpan</string>
<string name="disable_battery_optimization">Nonaktifkan pengoptimalan baterai</string>
<string name="reader_control_ltr">Kontrol pembaca ergonomis</string>
<string name="color_correction">Koreksi warna</string>
<string name="reader_slider">Perlihatkan penggeser peralihan halaman</string>
<string name="webtoon_zoom">Zoom webtoon</string>
<string name="webtoon_zoom_summary">Izinkan gerakan memperbesar/memperkecil tampilan dalam mode webtoon (beta)</string>
<string name="different_languages">Berbagai bahasa</string>
<string name="network_unavailable">Jaringan tidak tersedia</string>
</resources>

View File

@@ -86,7 +86,7 @@
<string name="webtoon">웹툰</string>
<string name="clear_search_history">검색 기록 지우기</string>
<string name="reader_settings">읽기 모드</string>
<string name="network_consumption_warning">이 동작은 많은 데이터 사용을</string>
<string name="network_consumption_warning">이 동작은 많은 데이터 사용을 야기할 수 있습니다</string>
<string name="clear_thumbs_cache">썸네일 캐시 지우기</string>
<string name="dont_ask_again">다시 묻지 않음</string>
<string name="cancelling_">취소 중…</string>
@@ -105,4 +105,250 @@
<string name="read_later">나중에 읽기</string>
<string name="search_results">검색 결과</string>
<string name="size_s">크기: %s</string>
<string name="computing_">계산중…</string>
<string name="clear">지우기</string>
<string name="text_clear_history_prompt">모든 기록을 영구적으로 삭제하시겠어요\?</string>
<string name="restart">재시작</string>
<string name="text_categories_holder">카테고리를 이용하여 선호작을 관리하세요. «+»을 눌러 카테고리를 만들 수 있습니다</string>
<string name="text_local_holder_primary">먼저 아무거나 저장해보세요</string>
<string name="text_feed_holder">여기서 읽고 있는 만화의 새로운 챕터들을 확인할 수 있습니다</string>
<string name="related">연관된</string>
<string name="protect_application">앱 잠금 활성화</string>
<string name="protect_application_summary">Kotatsu를 실행할 때마다 비밀번호 묻기</string>
<string name="check_for_updates">업데이트 확인하기</string>
<string name="update_check_failed">업데이트를 찾을 수 없음</string>
<string name="right_to_left">오른쪽에서 왼쪽</string>
<string name="zoom_mode_fit_center">가운데 맞춤</string>
<string name="no_update_available">가능한 업데이트 없음</string>
<string name="zoom_mode_fit_height">세로 맞춤</string>
<string name="tap_to_try_again">탭해서 재시도</string>
<string name="restore_backup">백업한 데이터 복원하기</string>
<string name="create_backup">백업하기</string>
<string name="data_restored">복원됨</string>
<string name="preparing_">준비중…</string>
<string name="welcome">환영합니다</string>
<string name="auth_complete">인증됨</string>
<string name="error_empty_name">이름을 입력해야 합니다</string>
<string name="about_feedback">피드백</string>
<string name="about_app_translation">번역</string>
<string name="about_app_translation_summary">이 앱을 번역하기</string>
<string name="dynamic_theme_summary">기기의 배경화면 색상을 기반으로 한 테마</string>
<string name="screenshots_block_nsfw">성인 컨텐츠에서만 차단</string>
<string name="screenshots_allow">항상 허용</string>
<string name="exclude_nsfw_from_suggestions">성인 만화(NSFW)는 추천하지 않기</string>
<string name="disabled">비활성화됨</string>
<string name="filter_load_error">장르 목록을 불러올 수 없음</string>
<string name="chapters_empty">이 만화는 챕터로 나눠져 있지 않습니다</string>
<string name="search_chapters">챕터 찾아보기</string>
<string name="chapters_will_removed_background">챕터들이 백그라운드에서 제거됩니다. 이 작업은 많은 시간이 소요될 수 있습니다</string>
<string name="download_slowdown_summary">IP 차단을 회피할 수 있게 합니다</string>
<string name="check_new_chapters_title">새로운 챕터가 나오면 알려주기</string>
<string name="standard">스탠다드</string>
<string name="text_local_holder_secondary">온라인 소스 혹은 직접 파일을 불러와 저장하기.</string>
<string name="suggestions_info">모든 데이터는 기기 안에서만 분석 및 사용되며 어떠한 서드파티 서비스들과도 공유되지 않습니다</string>
<string name="suggestions_summary">당신의 선호도를 바탕으로 만화를 추천합니다</string>
<string name="bookmark_add">북마크에 추가</string>
<string name="bookmark_remove">북마크 제거</string>
<string name="bookmarks">북마크</string>
<string name="data_deletion">데이터 삭제</string>
<string name="no_manga_sources">만화 소스 사이트 없음</string>
<string name="changelog">체인지로그</string>
<string name="history">최근에 본 만화</string>
<string name="error_occurred">오류 발생</string>
<string name="details">세부정보</string>
<string name="chapters">챕터</string>
<string name="detailed_list">자세한 목록</string>
<string name="list_mode">설정</string>
<string name="grid">그리드</string>
<string name="remote_sources">소스 사이트 관리</string>
<string name="clear_history">기록 삭제</string>
<string name="add">추가</string>
<string name="history_is_empty">아직 기록이 없습니다</string>
<string name="enter_category_name">카테고리 이름 추가</string>
<string name="create_shortcut">바로가기 추가…</string>
<string name="theme">테마</string>
<string name="_s_removed_from_history">\"%s\"가 라이브러리에서 삭제됨</string>
<string name="_s_deleted_from_local_storage">\"%s\"가 로컬 저장소에서 삭제됨</string>
<string name="operation_not_supported">지원되지 않는 동작입니다</string>
<string name="no_description">설명없음</string>
<string name="_continue">계속</string>
<string name="search_history_cleared">삭제됨</string>
<string name="gestures_only">제스쳐만 사용</string>
<string name="new_chapters">새로운 챕터</string>
<string name="text_empty_holder_primary">이 항목은 비어있는 것 같습니다…</string>
<string name="recent_manga">최근에 추가된</string>
<string name="manga_save_location">다운로드를 저장하기 위한 폴더</string>
<string name="manga_shelf">책장</string>
<string name="other_storage">기타 저장소</string>
<string name="updates_feed_cleared">삭제됨</string>
<string name="update">업데이트</string>
<string name="feed_will_update_soon">피드가 곧 업데이트 됩니다</string>
<string name="dont_check">확인하지 않기</string>
<string name="enter_password">비밀번호를 입력하세요</string>
<string name="wrong_password">잘못된 비밀번호</string>
<string name="rotate_screen">화면 회전</string>
<string name="track_sources">업데이트 확인하기</string>
<string name="repeat_password">비밀번호 재입력</string>
<string name="passwords_mismatch">일치하지 않는 비밀번호</string>
<string name="app_version">%s 버전</string>
<string name="about">정보</string>
<string name="checking_for_updates">업데이트 확인중…</string>
<string name="create_category">새로운 카테고리</string>
<string name="scale_mode">확대 설정</string>
<string name="zoom_mode_fit_width">가로 맞춤</string>
<string name="black_dark_theme">검은색</string>
<string name="black_dark_theme_summary">AMOLED 화면에서의 전력소모를 줄입니다</string>
<string name="backup_restore">백업 및 복원</string>
<string name="file_not_found">파일을 찾을 수 없음</string>
<string name="data_restored_success">모든 데이터 복원됨</string>
<string name="data_restored_with_errors">데이터가 복원되었지만 오류가 존재합니다</string>
<string name="backup_information">선호작이나 읽은 기록들을 백업 및 복원할 수 있습니다</string>
<string name="yesterday">어제</string>
<string name="long_ago">오래전</string>
<string name="group">그룹</string>
<string name="today">오늘</string>
<string name="captcha_required">CAPTCHA 설정이 필요합니다</string>
<string name="captcha_solve">해결됨</string>
<string name="clear_cookies">쿠키 삭제</string>
<string name="zoom_mode_keep_start">첫 칸에 맞춤</string>
<string name="report_github">Github에 문제 제기하기</string>
<string name="silent">무음</string>
<string name="reader_mode_hint">선택된 설정값이 항상 이 만화에 적용됩니다</string>
<string name="cookies_cleared">모든 쿠키가 삭제되었습니다</string>
<string name="text_clear_updates_feed_prompt">모든 업데이트 기록을 영구적으로 삭제하시겠습니까\?</string>
<string name="chapters_checking_progress">새로운 챕터 확인중: %2$d의 %1$d</string>
<string name="clear_feed">피드 정리</string>
<string name="check_for_new_chapters">새로운 챕터 확인하기</string>
<string name="sign_in">로그인</string>
<string name="auth_required">로그인이 필요합니다</string>
<string name="default_s">기본값: %s</string>
<string name="next">다음</string>
<string name="protect_application_subtitle">비밀번호를 입력하세요</string>
<string name="confirm">확인</string>
<string name="password_length_hint">최소 4자리 이상의 비밀번호를 입력해 주세요</string>
<string name="backup_saved">백업 저장됨</string>
<string name="tracker_warning">몇몇 기기들은 시스템이 백그라운드 작업을 방해할 수 있습니다.</string>
<string name="text_downloads_holder">다운로드 중인 도서 없음</string>
<string name="_and_x_more">…그리고 %1$d만큼 더</string>
<string name="search_only_on_s">%s에 대해서만 검색하기</string>
<string name="text_clear_search_history_prompt">모든 검색 기록을 영구적으로 삭제 하시겠어요\?</string>
<string name="other">기타</string>
<string name="read_more">더 읽기</string>
<string name="queued">대기열</string>
<string name="chapter_is_missing_text">이 챕터는 다운로드 하거나 온라인으로 읽어야 합니다.</string>
<string name="text_clear_cookies_prompt">모든 사이트에서 로그아웃됩니다</string>
<string name="genres">장르</string>
<string name="state_finished">완료됨</string>
<string name="date_format">날짜 초기화</string>
<string name="system_default">기본</string>
<string name="exclude_nsfw_from_history">기록에서 성인 만화(NSFW) 제외하기</string>
<string name="chapter_is_missing">찾으시는 챕터가 존재하지 않습니다</string>
<string name="about_feedback_4pda">4PDA에 토픽 생성하기</string>
<string name="auth_not_supported_by">%s에 로그인은 지원되지 않습니다</string>
<string name="available_sources">사용 가능한 소스 사이트</string>
<string name="dynamic_theme">동적 테마</string>
<string name="screenshots_policy">스크린샷 규칙</string>
<string name="screenshots_block_all">항상 차단</string>
<string name="suggestions">추천</string>
<string name="suggestions_enable">추천 켜기</string>
<string name="importing_progress">만화를 추가하는 중: %2$d의 %1$d</string>
<string name="text_suggestion_holder">아무 만화나 읽어보세요 당신의 기록을 바탕으로 개인화된 추천 만화를 제공합니다</string>
<string name="enabled">활성화됨</string>
<string name="reset_filter">필터 초기화</string>
<string name="find_genre">장르 찾기</string>
<string name="only_using_wifi">와이파이에 연결된 경우에만</string>
<string name="always">항상</string>
<string name="onboard_text">무슨 언어의 만화를 읽을지 선택하세요. 나중에 설정에서 이를 변경할 수 있습니다.</string>
<string name="nsfw">18+</string>
<string name="percent_string_pattern">%1$s%%</string>
<string name="content">컨텐츠</string>
<string name="preload_pages">페이지 미리 로드하기</string>
<string name="logged_in_as">%s로 로그인 됨</string>
<string name="appearance">외관</string>
<string name="suggestions_excluded_genres">제외할 장르 선택</string>
<string name="suggestions_excluded_genres_summary">추천 목록에서 보고 싶지 않은 장르를 특정합니다</string>
<string name="text_delete_local_manga_batch">선택된 항목을 기기에서 영구히 제거하시겠어요\?</string>
<string name="removal_completed">제거 완료</string>
<string name="batch_manga_save_confirm">선택된 모든 만화와 챕터들을 다운로드 받으시겠어요\? 많은 데이터와 기기 저장소 용량을 소비합니다.</string>
<string name="suggestions_updating">추천 항목 업데이트 중</string>
<string name="canceled">취소됨</string>
<string name="name">이름</string>
<string name="disable_battery_optimization">배터리 최적화 해제하기</string>
<string name="disable_battery_optimization_summary">백그라운드에서의 업데이트 확인이 안드로이드 시스템에 의해 중지되지 않습니다</string>
<string name="send">보내기</string>
<string name="use_fingerprint">가능할 경우 지문 사용</string>
<string name="select_range">범위 선택</string>
<string name="history_cleared">기록 삭제됨</string>
<string name="random">랜덤</string>
<string name="not_found_404">컨텐츠를 찾을 수 없거나 제거되었습니다</string>
<string name="downloading_manga">만화 다운로드 중</string>
<string name="incognito_mode">사생활 보호 모드</string>
<string name="app_update_available_s">애플리케이션 업데이트가 가능합니다: %s</string>
<string name="no_chapters">챕터 없음</string>
<string name="automatic_scroll">자동 스크롤</string>
<string name="reader_info_bar">리더 안에서 만화 정보 보여주기</string>
<string name="feed">피드</string>
<string name="show_notification_new_chapters_on">읽고 있는 만화의 업데이트 알림을 수신할 수 있게 됩니다</string>
<string name="show_notification_new_chapters_off">알림은 받지 못하지만 여전히 새로운 챕터들이 목록 상에서 강조 표시되어 보여집니다</string>
<string name="notifications_enable">알림 활성화</string>
<string name="edit">수정</string>
<string name="edit_category">카테고리 수정</string>
<string name="tracking">새로운 소식 추적</string>
<string name="empty_favourite_categories">선호 표시된 카테고리 없음</string>
<string name="logout">로그아웃</string>
<string name="bookmark_removed">북마크 제거됨</string>
<string name="bookmark_added">북마크 추가됨</string>
<string name="undo">실행취소</string>
<string name="removed_from_history">기록에서 지우기</string>
<string name="dns_over_https">DNS over HTTPS 활성화</string>
<string name="default_mode">기본 모드</string>
<string name="detect_reader_mode_summary">왭툰 자동 감지</string>
<string name="crash_text">오류. 저희가 고칠 수 있게 버그 정보를 보내주세요.</string>
<string name="status_planned">계획됨</string>
<string name="status_reading">읽는 중</string>
<string name="status_re_reading">다시 읽는 중</string>
<string name="status_completed">완료됨</string>
<string name="disable_all">모두 비활성화</string>
<string name="appwidget_shelf_description">선호작 목록에 존재하는 만화</string>
<string name="appwidget_recent_description">최근에 본 만화</string>
<string name="report">제보하기</string>
<string name="show_reading_indicators">읽기 진행 상황 표시</string>
<string name="exclude_nsfw_from_history_summary">성인 만화는 읽은 기록에 포함되지 않으며 읽기 진행 상황은 저장되지 않습니다</string>
<string name="show_all">모두 보여주기</string>
<string name="invalid_domain_message">유효하지 않은 도메인</string>
<string name="clear_all_history">모든 기록 삭제</string>
<string name="last_2_hours">지난 2시간</string>
<string name="manage">관리</string>
<string name="no_bookmarks_yet">아직 추가된 븍마크가 없습니다</string>
<string name="no_bookmarks_summary">만화를 읽는 도중 북마크를 추가할 수 있습니다</string>
<string name="bookmarks_removed">북마크 제거됨</string>
<string name="no_manga_sources_text">만화를 읽기 위해 만화 소스 사이트를 활성화 하세요</string>
<string name="categories_delete_confirm">정말 선택된 즐겨 찾는 카테고리를 삭제하시겠습니까\?
\n해당 카테고리의 모든 만화가 손실되며 취소할 수 없습니다.</string>
<string name="empty">비어있음</string>
<string name="confirm_exit">뒤로가기 버튼을 다시 눌러 나가기</string>
<string name="exit_confirmation_summary">뒤로가기 버튼을 두 번 눌러 앱을 종료할 수 있습니다</string>
<string name="exit_confirmation">앱 종료 확인</string>
<string name="saved_manga">저장된 만화</string>
<string name="pages_cache">페이지 캐시</string>
<string name="other_cache">기타 캐시</string>
<string name="storage_usage">저장소 사용량</string>
<string name="memory_usage_pattern">%s -%s</string>
<string name="enter_email_text">이메일을 입력하여 계속</string>
<string name="removed_from_favourites">즐겨찾기 목록에서 제거됨</string>
<string name="removed_from_s">\"%s\"에서 제거됨</string>
<string name="reader_info_pattern">챕터.%1$d/%2$d 페이지.%3$d/%4$d</string>
<string name="comics_archive">코믹스 모음</string>
<string name="import_completed">가져오기 완료</string>
<string name="import_completed_hint">본 파일을 제거함으로써 저장소 공간을 아낄 수 있습니다</string>
<string name="import_will_start_soon">가져오기가 곧 시작됩니다</string>
<string name="history_shortcuts">최근 추가된 만화 바로가기 보여주기</string>
<string name="hide">숨기기</string>
<string name="new_sources_text">새로운 만화 소스 사이트 사용 가능</string>
<string name="account_already_exists">계정이 이미 존재합니다</string>
<string name="back">뒤로가기</string>
<string name="sync">동기화</string>
<string name="sync_title">데이터 동기화 하기</string>
<string name="email_enter_hint">이메일을 입력하여 계속</string>
<string name="download_slowdown">다운로드 속도 늦추기</string>
</resources>

View File

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<plurals name="pages">
<item quantity="one">कुल %1$d पृष्ठ</item>
<item quantity="other">कुल %1$d पृष्ठहरू</item>
</plurals>
<plurals name="new_chapters">
<item quantity="one">%1$d नयाँ अध्याय</item>
<item quantity="other">%1$d नयाँ अध्यायहरू</item>
</plurals>
<plurals name="chapters">
<item quantity="one">%1$d अध्याय</item>
<item quantity="other">%1$d अध्यायहरू</item>
</plurals>
<plurals name="minutes_ago">
<item quantity="one">%1$d मिनेट पहिले</item>
<item quantity="other">%1$d मिनेट पहिले</item>
</plurals>
<plurals name="hours_ago">
<item quantity="one">%1$d घण्टा पहिले</item>
<item quantity="other">%1$d घण्टा पहिले</item>
</plurals>
<plurals name="items">
<item quantity="one">%1$d वस्तु</item>
<item quantity="other">%1$d वस्तुहरू</item>
</plurals>
<plurals name="chapters_from_x">
<item quantity="one">%2$d बाट %1$d अध्याय</item>
<item quantity="other">%2$d बाट %1$d अध्यायहरू</item>
</plurals>
<plurals name="days_ago">
<item quantity="one">%1$d दिन अघि</item>
<item quantity="other">%1$d दिन पहिले</item>
</plurals>
</resources>

View File

@@ -0,0 +1,56 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="manga_downloading_">डाउनलोड गर्दै…</string>
<string name="download_complete">डाउनलोड गरेको</string>
<string name="filter">फिल्टर</string>
<string name="dark">अँध्यारो</string>
<string name="clear">खाली गर्नुहोस्</string>
<string name="pages">पृष्ठहरू</string>
<string name="error_occurred">एउटा त्रुटि भयो</string>
<string name="list_mode">सूची मोड</string>
<string name="list">सूची</string>
<string name="try_again">पुनः प्रयास गर्नुहोस्</string>
<string name="nothing_found">केही पनि फेला परेन</string>
<string name="read">पढ्नुहोस्</string>
<string name="local_storage">लोकल भण्डारण</string>
<string name="history">इतिहास</string>
<string name="network_error">नेटवर्क त्रुटि</string>
<string name="chapters">अध्यायहरू</string>
<string name="settings">सेटिङहरू</string>
<string name="remote_sources">रिमोट स्रोतहरू</string>
<string name="loading_">लोड हुँदै…</string>
<string name="clear_history">इतिहास खाली गर्नुहोस्</string>
<string name="you_have_not_favourites_yet">अहिले कुनै मनपर्ने छैन</string>
<string name="add_to_favourites">मनपर्ने मा राख्नुहोस्</string>
<string name="add_new_category">नयाँ वर्ग</string>
<string name="enter_category_name">वर्ग को नाम लेख्नुहोस्</string>
<string name="share_s">%s साझा गर्नुहोस्</string>
<string name="search">खोज्नुहोस्</string>
<string name="search_manga">माङ्गा खोज्नुहोस्</string>
<string name="processing_">प्रक्रिया गर्दैछ…</string>
<string name="downloads">डाउनलोडहरू</string>
<string name="by_name">नाम</string>
<string name="updated">अपडेट गरियो</string>
<string name="newest">नवीनतम</string>
<string name="sort_order">क्रमबद्ध क्रम</string>
<string name="theme">थीम</string>
<string name="light">उज्यालो</string>
<string name="automatic">सिस्टम पालना गर्नुहोस्</string>
<string name="computing_">कम्प्युटिङ…</string>
<string name="close_menu">मेनु बन्द गर्नुहोस्</string>
<string name="open_menu">मेनु खोल्नुहोस्</string>
<string name="favourites">मनपर्नेहरू</string>
<string name="details">विवरणहरू</string>
<string name="detailed_list">विस्तृत सूची</string>
<string name="grid">ग्रिड</string>
<string name="chapter_d_of_d">%2$d को अध्याय %1$d</string>
<string name="close">बन्द गर्नुहोस्</string>
<string name="history_is_empty">अहिलेसम्म इतिहास छैन</string>
<string name="add">थप्नुहोस्</string>
<string name="save">बचत गर्नुहोस्</string>
<string name="share">साझा गर्नुहोस्</string>
<string name="create_shortcut">सर्टकट सिर्जना गर्नुहोस्…</string>
<string name="popular">लोकप्रिय</string>
<string name="by_rating">मूल्याङ्कन</string>
<string name="new_chapters">नयाँ अध्यायहरू</string>
</resources>

View File

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

View File

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

View File

@@ -410,4 +410,7 @@
<string name="theme_name_rikka">Rikka</string>
<string name="theme_name_sakura">Sakura</string>
<string name="source_disabled">Fonte desativada</string>
<string name="enable_logging_summary">Gravar algumas ações para propósitos de depuração</string>
<string name="theme_name_mamimi">Mamimi</string>
<string name="theme_name_miku">Miku</string>
</resources>

View File

@@ -397,4 +397,22 @@
<string name="color_correction_hint">As configurações de cor escolhidas serão lembradas para esse mangá</string>
<string name="discard">Descartar</string>
<string name="language">Idioma</string>
<string name="theme_name_mamimi">Mamimi</string>
<string name="nothing_here">Não há nada aqui</string>
<string name="services">Serviços</string>
<string name="enable_logging_summary">Gravar algumas ações para propósitos de depuração</string>
<string name="allow_unstable_updates">Permitir atualizações instáveis</string>
<string name="download_started">Descarga iniciada</string>
<string name="share_logs">Compartilhar registos</string>
<string name="enable_logging">Ativar registos</string>
<string name="theme_name_miku">Miku</string>
<string name="theme_name_rikka">Rikka</string>
<string name="theme_name_sakura">Sakura</string>
<string name="show_suspicious_content">Exibir conteúdo suspeito</string>
<string name="theme_name_dynamic">Dinâmico</string>
<string name="color_theme">Esquema de cores</string>
<string name="show_in_grid_view">Mostrar na visualização em grade</string>
<string name="theme_name_asuka">Asuka</string>
<string name="theme_name_mion">Mion</string>
<string name="settings_apply_restart_required">Por favor, reinicie o app para aplicar essas mudanças</string>
</resources>

View File

@@ -20,7 +20,7 @@
<string name="favourites">Уподобання</string>
<string name="history">Історія</string>
<string name="error_occurred">Сталася помилка</string>
<string name="chapters">Глави</string>
<string name="chapters">Розділи</string>
<string name="list">Список</string>
<string name="detailed_list">Детальний список</string>
<string name="list_mode">Режим списку</string>
@@ -64,7 +64,7 @@
<string name="cache">Кеш</string>
<string name="text_file_sizes">Б|кБ|МБ|ГБ|ТБ</string>
<string name="standard">Стандартний</string>
<string name="webtoon">Вебтун</string>
<string name="webtoon">Манхва</string>
<string name="read_mode">Режим читання</string>
<string name="grid_size">Розмір сітки</string>
<string name="search_on_s">Пошук по %s</string>
@@ -88,7 +88,7 @@
<string name="save_manga">Зберегти</string>
<string name="notifications">Сповіщення</string>
<string name="enabled_d_of_d" tools:ignore="PluralsCandidate">Увімкнено %1$d з %2$d</string>
<string name="new_chapters">Нові глави</string>
<string name="new_chapters">Нові розділи</string>
<string name="download">Завантажити</string>
<string name="read_from_start">Читати з початку</string>
<string name="restart">Перезавантажити</string>
@@ -419,4 +419,6 @@
<string name="allow_unstable_updates">Дозволити нестабільні оновлення</string>
<string name="allow_unstable_updates_summary">Пропонувати оновлення до бета-версій додатку</string>
<string name="download_started">Завантаження розпочато</string>
<string name="user_agent">Заголовок UserAgent</string>
<string name="settings_apply_restart_required">Перезапустіть програму, щоб застосувати зміни</string>
</resources>

View File

@@ -4,5 +4,4 @@
<dimen name="grid_spacing_outer">2dp</dimen>
<dimen name="preferred_grid_width">140dp</dimen>
<dimen name="bottom_sheet_width">420dp</dimen>
<dimen name="fragment_horizontal_margin">48dp</dimen>
</resources>

View File

@@ -405,8 +405,6 @@
<string name="show_suspicious_content">显示可疑内容</string>
<string name="theme_name_dynamic">动态</string>
<string name="color_theme">颜色方案</string>
<string name="theme_name_mint">薄荷绿</string>
<string name="theme_name_october">October</string>
<string name="show_in_grid_view">用网格视图显示</string>
<string name="theme_name_miku">Miku</string>
<string name="theme_name_asuka">Asuka</string>

View File

@@ -3,12 +3,11 @@
<string name="url_github" translatable="false">https://github.com/KotatsuApp/Kotatsu</string>
<string name="url_discord" translatable="false">https://discord.gg/NNJ5RgVBC5</string>
<string name="url_forpda" translatable="false">https://4pda.to/forum/index.php?showtopic=697669</string>
<string name="url_twitter" translatable="false">https://twitter.com/kotatsuapp</string>
<string name="url_reddit" translatable="false">https://reddit.com/user/kotatsuapp</string>
<string name="url_telegram" translatable="false">https://t.me/kotatsuapp</string>
<string name="url_weblate" translatable="false">https://hosted.weblate.org/engage/kotatsu</string>
<string name="url_error_report" translatable="false">https://acra.rumblur.space/report</string>
<string name="url_error_report" translatable="false">https://acra.kotatsu.app/report</string>
<string name="account_type_sync" translatable="false">org.kotatsu.sync</string>
<string name="url_sync_server" translatable="false">http://86.57.183.214:8081</string>
<string name="url_sync_server" translatable="false">https://sync.kotatsu.app</string>
<string name="shikimori_clientId" translatable="false">Mw6F0tPEOgyV7F9U9Twg50Q8SndMY7hzIOfXg0AX_XU</string>
<string name="shikimori_clientSecret" translatable="false">euBMt1GGRSDpVIFQVPxZrO7Kh6X4gWyv0dABuj4B-M8</string>
<string name="anilist_clientId" translatable="false">9887</string>