diff --git a/app/build.gradle b/app/build.gradle
index 0a21fc925..5ebd089fc 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -14,8 +14,8 @@ android {
applicationId 'org.koitharu.kotatsu'
minSdkVersion 21
targetSdkVersion 32
- versionCode 417
- versionName '3.4.5'
+ versionCode 418
+ versionName '3.4.6'
generatedDensities = []
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
@@ -83,7 +83,7 @@ afterEvaluate {
}
}
dependencies {
- implementation('com.github.nv95:kotatsu-parsers:30071709af') {
+ implementation('com.github.nv95:kotatsu-parsers:fadb06aabb') {
exclude group: 'org.json', module: 'json'
}
@@ -127,7 +127,6 @@ dependencies {
implementation 'ch.acra:acra-mail:5.9.5'
implementation 'ch.acra:acra-dialog:5.9.5'
- debugImplementation 'org.jsoup:jsoup:1.15.2'
debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.9.1'
testImplementation 'junit:junit:4.13.2'
diff --git a/app/src/main/java/org/koitharu/kotatsu/core/exceptions/MangaNotFoundException.kt b/app/src/main/java/org/koitharu/kotatsu/core/exceptions/MangaNotFoundException.kt
deleted file mode 100644
index 9731f97b1..000000000
--- a/app/src/main/java/org/koitharu/kotatsu/core/exceptions/MangaNotFoundException.kt
+++ /dev/null
@@ -1,3 +0,0 @@
-package org.koitharu.kotatsu.core.exceptions
-
-class MangaNotFoundException(s: String? = null) : RuntimeException(s)
\ No newline at end of file
diff --git a/app/src/main/java/org/koitharu/kotatsu/core/exceptions/resolve/ExceptionResolver.kt b/app/src/main/java/org/koitharu/kotatsu/core/exceptions/resolve/ExceptionResolver.kt
index 50f991b47..d0165c7ca 100644
--- a/app/src/main/java/org/koitharu/kotatsu/core/exceptions/resolve/ExceptionResolver.kt
+++ b/app/src/main/java/org/koitharu/kotatsu/core/exceptions/resolve/ExceptionResolver.kt
@@ -8,9 +8,11 @@ import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentActivity
import kotlinx.coroutines.suspendCancellableCoroutine
import org.koitharu.kotatsu.R
+import org.koitharu.kotatsu.browser.BrowserActivity
import org.koitharu.kotatsu.browser.cloudflare.CloudFlareDialog
import org.koitharu.kotatsu.core.exceptions.CloudFlareProtectedException
import org.koitharu.kotatsu.parsers.exception.AuthRequiredException
+import org.koitharu.kotatsu.parsers.exception.NotFoundException
import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.settings.sources.auth.SourceAuthActivity
import org.koitharu.kotatsu.utils.TaggedActivityResult
@@ -43,6 +45,10 @@ class ExceptionResolver private constructor(
suspend fun resolve(e: Throwable): Boolean = when (e) {
is CloudFlareProtectedException -> resolveCF(e.url)
is AuthRequiredException -> resolveAuthException(e.source)
+ is NotFoundException -> {
+ openInBrowser(e.url)
+ false
+ }
else -> false
}
@@ -69,6 +75,11 @@ class ExceptionResolver private constructor(
sourceAuthContract.launch(source)
}
+ private fun openInBrowser(url: String) {
+ val context = activity ?: fragment?.activity ?: return
+ context.startActivity(BrowserActivity.newIntent(context, url, null))
+ }
+
private fun getFragmentManager() = checkNotNull(fragment?.childFragmentManager ?: activity?.supportFragmentManager)
companion object {
@@ -77,6 +88,7 @@ class ExceptionResolver private constructor(
fun getResolveStringId(e: Throwable) = when (e) {
is CloudFlareProtectedException -> R.string.captcha_solve
is AuthRequiredException -> R.string.sign_in
+ is NotFoundException -> if (e.url.isNotEmpty()) R.string.open_in_browser else 0
else -> 0
}
diff --git a/app/src/main/java/org/koitharu/kotatsu/details/ui/MangaDetailsDelegate.kt b/app/src/main/java/org/koitharu/kotatsu/details/ui/MangaDetailsDelegate.kt
index 39ad3003b..3a4eca7ca 100644
--- a/app/src/main/java/org/koitharu/kotatsu/details/ui/MangaDetailsDelegate.kt
+++ b/app/src/main/java/org/koitharu/kotatsu/details/ui/MangaDetailsDelegate.kt
@@ -5,7 +5,6 @@ import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow
import org.koitharu.kotatsu.base.domain.MangaDataRepository
import org.koitharu.kotatsu.base.domain.MangaIntent
-import org.koitharu.kotatsu.core.exceptions.MangaNotFoundException
import org.koitharu.kotatsu.core.model.MangaHistory
import org.koitharu.kotatsu.core.parser.MangaRepository
import org.koitharu.kotatsu.core.prefs.AppSettings
@@ -13,6 +12,7 @@ import org.koitharu.kotatsu.details.ui.model.ChapterListItem
import org.koitharu.kotatsu.details.ui.model.toListItem
import org.koitharu.kotatsu.history.domain.HistoryRepository
import org.koitharu.kotatsu.local.domain.LocalMangaRepository
+import org.koitharu.kotatsu.parsers.exception.NotFoundException
import org.koitharu.kotatsu.parsers.model.Manga
import org.koitharu.kotatsu.parsers.model.MangaChapter
import org.koitharu.kotatsu.parsers.model.MangaSource
@@ -40,8 +40,7 @@ class MangaDetailsDelegate(
val mangaId = intent.manga?.id ?: intent.mangaId
suspend fun doLoad() {
- var manga = mangaDataRepository.resolveIntent(intent)
- ?: throw MangaNotFoundException("Cannot find manga")
+ var manga = mangaDataRepository.resolveIntent(intent) ?: throw NotFoundException("Cannot find manga", "")
mangaData.value = manga
manga = MangaRepository(manga.source).getDetails(manga)
// find default branch
diff --git a/app/src/main/java/org/koitharu/kotatsu/reader/ui/ReaderActivity.kt b/app/src/main/java/org/koitharu/kotatsu/reader/ui/ReaderActivity.kt
index ce5cfc885..95ee3d3d1 100644
--- a/app/src/main/java/org/koitharu/kotatsu/reader/ui/ReaderActivity.kt
+++ b/app/src/main/java/org/koitharu/kotatsu/reader/ui/ReaderActivity.kt
@@ -137,6 +137,11 @@ class ReaderActivity :
return false
}
}
+ R.id.action_save_page -> {
+ viewModel.saveCurrentState(readerManager.currentReader?.getCurrentState())
+ val page = viewModel.getCurrentPage() ?: return false
+ viewModel.saveCurrentPage(page, savePageRequest)
+ }
R.id.action_bookmark -> {
if (viewModel.isBookmarkAdded.value == true) {
viewModel.removeBookmark()
diff --git a/app/src/main/java/org/koitharu/kotatsu/reader/ui/ReaderViewModel.kt b/app/src/main/java/org/koitharu/kotatsu/reader/ui/ReaderViewModel.kt
index 450960bf2..2a6453d51 100644
--- a/app/src/main/java/org/koitharu/kotatsu/reader/ui/ReaderViewModel.kt
+++ b/app/src/main/java/org/koitharu/kotatsu/reader/ui/ReaderViewModel.kt
@@ -16,11 +16,11 @@ import org.koitharu.kotatsu.base.domain.MangaUtils
import org.koitharu.kotatsu.base.ui.BaseViewModel
import org.koitharu.kotatsu.bookmarks.domain.Bookmark
import org.koitharu.kotatsu.bookmarks.domain.BookmarksRepository
-import org.koitharu.kotatsu.core.exceptions.MangaNotFoundException
import org.koitharu.kotatsu.core.parser.MangaRepository
import org.koitharu.kotatsu.core.prefs.*
import org.koitharu.kotatsu.history.domain.HistoryRepository
import org.koitharu.kotatsu.history.domain.PROGRESS_NONE
+import org.koitharu.kotatsu.parsers.exception.NotFoundException
import org.koitharu.kotatsu.parsers.model.Manga
import org.koitharu.kotatsu.parsers.model.MangaChapter
import org.koitharu.kotatsu.parsers.model.MangaPage
@@ -251,7 +251,7 @@ class ReaderViewModel(
private fun loadImpl() {
loadingJob = launchLoadingJob(Dispatchers.Default) {
- var manga = dataRepository.resolveIntent(intent) ?: throw MangaNotFoundException("Cannot find manga")
+ var manga = dataRepository.resolveIntent(intent) ?: throw NotFoundException("Cannot find manga", "")
mangaData.value = manga
val repo = MangaRepository(manga.source)
manga = repo.getDetails(manga)
diff --git a/app/src/main/java/org/koitharu/kotatsu/utils/ext/ThrowableExt.kt b/app/src/main/java/org/koitharu/kotatsu/utils/ext/ThrowableExt.kt
index 19c8c65e9..9d4315d41 100644
--- a/app/src/main/java/org/koitharu/kotatsu/utils/ext/ThrowableExt.kt
+++ b/app/src/main/java/org/koitharu/kotatsu/utils/ext/ThrowableExt.kt
@@ -8,6 +8,7 @@ import org.koitharu.kotatsu.R
import org.koitharu.kotatsu.core.exceptions.*
import org.koitharu.kotatsu.parsers.exception.AuthRequiredException
import org.koitharu.kotatsu.parsers.exception.ContentUnavailableException
+import org.koitharu.kotatsu.parsers.exception.NotFoundException
import org.koitharu.kotatsu.parsers.exception.ParseException
import java.net.SocketTimeoutException
@@ -24,6 +25,7 @@ fun Throwable.getDisplayMessage(resources: Resources): String = when (this) {
is ParseException -> shortMessage
is SocketTimeoutException -> resources.getString(R.string.network_error)
is WrongPasswordException -> resources.getString(R.string.wrong_password)
+ is NotFoundException -> resources.getString(R.string.not_found_404)
else -> localizedMessage
} ?: resources.getString(R.string.error_occurred)
@@ -32,7 +34,7 @@ fun Throwable.isReportable(): Boolean {
return true
}
return this is ParseException || this is IllegalArgumentException ||
- this is IllegalStateException || this is RuntimeException
+ this is IllegalStateException || this.javaClass == RuntimeException::class.java
}
fun Throwable.report(message: String?) {
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index cf18cd5fd..7e357f987 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -314,4 +314,7 @@
Abgeschlossen
Manga, die als NSFW markiert sind, werden nicht in den Verlauf aufgenommen und Ihr Fortschritt wird nicht gespeichert.
Datenlöschung
+ Ungültige Domäne
+ Lesen
+ Bereich auswählen
\ No newline at end of file
diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml
index 6491afd0a..418ae8b88 100644
--- a/app/src/main/res/values-es/strings.xml
+++ b/app/src/main/res/values-es/strings.xml
@@ -317,4 +317,5 @@
El manga marcado como NSFW nunca se añadirá al historial y no se guardará tu progreso
Puede ayudar en caso de algunos problemas. Todas las autorizaciones serán invalidadas
Mostrar todo
+ Dominio no válido
\ No newline at end of file
diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml
index eb44dda48..eaefdaa71 100644
--- a/app/src/main/res/values-fi/strings.xml
+++ b/app/src/main/res/values-fi/strings.xml
@@ -308,4 +308,5 @@
Lukemassa uudelleen
Tietojen poistaminen
Näytä kaikki
+ Valitse alue
\ No newline at end of file
diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml
index 0c178fb89..5766fde42 100644
--- a/app/src/main/res/values-fr/strings.xml
+++ b/app/src/main/res/values-fr/strings.xml
@@ -317,4 +317,6 @@
Se déconnecter
Terminé
Relecture
+ Domaine invalide
+ Sélectionner une plage
\ No newline at end of file
diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml
index 201ea3b6b..88eb65044 100644
--- a/app/src/main/res/values-it/strings.xml
+++ b/app/src/main/res/values-it/strings.xml
@@ -317,4 +317,6 @@
Pianificato
Finito
Abbandonato
+ Dominio non valido
+ Seleziona l\'intervallo
\ No newline at end of file
diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml
index bc61dc708..55469e6a2 100644
--- a/app/src/main/res/values-ja/strings.xml
+++ b/app/src/main/res/values-ja/strings.xml
@@ -317,4 +317,5 @@
読書の進行状況インジケーターを表示
NSFWとマークされたマンガは履歴に追加されず、進行状況も保存されない
すべて表示
+ 無効なドメイン
\ No newline at end of file
diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml
index 4b4f904d2..a28015222 100644
--- a/app/src/main/res/values-tr/strings.xml
+++ b/app/src/main/res/values-tr/strings.xml
@@ -317,4 +317,6 @@
Planlandı
Yeniden okunuyor
Tümünü göster
+ Geçersiz etki alanı
+ Aralık seç
\ No newline at end of file
diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml
index 2e3e1ceb2..c46882135 100644
--- a/app/src/main/res/values-uk/strings.xml
+++ b/app/src/main/res/values-uk/strings.xml
@@ -1,305 +1,321 @@
- Дочекайтеся завершення завантаження…
- Видалити
- Нічого не знайдено
- Додати до улюблених
- Очистити історію
- Історії ще немає
- Додати
- Зберегти
- Локальне сховище
- Не вдалося підключитися до Інтернету
- Деталі
- Спробуйте ще раз
- Відкрити меню
- Улюблених ще немає
- Нова категорія
- Введіть назву категорії
- Завантажено
- Уподобання
- Історія
- Сталася помилка
- Розділи
- Список
- Детальний список
- Режим списку
- Налаштування
- Віддалені джерела
- Завантаження…
- Обчислення…
- Розділ %1$d із %2$d
- Закрити
- Читати
- Таблиця
- Поділитися
- Створити ярлик…
- Поділитися %s
- Пошук
- Пошук манґи
- Обробка…
- Ім\'я
- Популярна
- Оновлена
- Нова
- Рейтинг
- Порядок сортування
- Фільтр
- Тема
- Світла
- Темна
- Сторінки
- Очистити всю історію читання перманентно\?
- Видалити
- \"%s\" видалено з історії
- \"%s\" видалено з локального сховища
- Зберегти сторінку
- Збережено
- Поділитись зображенням
- Ця операція не підтримується
- Виберіть файл ZIP або CBZ.
- Немає опису
- Історія та кеш
- Очистити кеш сторінок
- Кеш
- Б|кБ|МБ|ГБ|ТБ
- Стандартний
- Вебтун
- Режим читання
- Розмір сітки
- Пошук по %s
- Видалити манґу
- Видалити \"%s\" з пристрою перманентно\?
- Налаштування читача
- Перегортання сторінок
- Кнопки гучності
- Скасування…
- Помилка
- Очистити кеш мініатюр
- Очистити історію пошуку
- Очищено
- Тільки жести
- Внутрішнє сховище
- Зовнішнє сховище
- Домен
- Перевірити наявність нових версій додатка
- Доступна нова версія додатка
- Ця манґа має %s. Зберегти все це\?
- Зберегти
- Сповіщення
- Увімкнено %1$d з %2$d
- Нові розділи
- Завантажити
- Читати з початку
- Перезавантажити
- Вібрація
- Улюблені категорії
- Вилучити категорію \"%s\" зі своїх уподобань\?
+ Дочекайтеся завершення завантаження…
+ Видалити
+ Нічого не знайдено
+ Додати до улюблених
+ Очистити історію
+ Історії ще немає
+ Додати
+ Зберегти
+ Локальне сховище
+ Не вдалося підключитися до Інтернету
+ Деталі
+ Спробуйте ще раз
+ Відкрити меню
+ Улюблених ще немає
+ Нова категорія
+ Введіть назву категорії
+ Завантажено
+ Уподобання
+ Історія
+ Сталася помилка
+ Розділи
+ Список
+ Детальний список
+ Режим списку
+ Налаштування
+ Віддалені джерела
+ Завантаження…
+ Обчислення…
+ Розділ %1$d із %2$d
+ Закрити
+ Читати
+ Таблиця
+ Поділитися
+ Створити ярлик…
+ Поділитися %s
+ Пошук
+ Пошук манґи
+ Обробка…
+ Ім\'я
+ Популярна
+ Оновлена
+ Нова
+ Рейтинг
+ Порядок сортування
+ Фільтр
+ Тема
+ Світла
+ Темна
+ Сторінки
+ Очистити всю історію читання перманентно\?
+ Видалити
+ \"%s\" видалено з історії
+ \"%s\" видалено з локального сховища
+ Зберегти сторінку
+ Збережено
+ Поділитись зображенням
+ Ця операція не підтримується
+ Виберіть файл ZIP або CBZ.
+ Немає опису
+ Історія та кеш
+ Очистити кеш сторінок
+ Кеш
+ Б|кБ|МБ|ГБ|ТБ
+ Стандартний
+ Вебтун
+ Режим читання
+ Розмір сітки
+ Пошук по %s
+ Видалити манґу
+ Видалити \"%s\" з пристрою перманентно\?
+ Налаштування читача
+ Перегортання сторінок
+ Кнопки гучності
+ Скасування…
+ Помилка
+ Очистити кеш мініатюр
+ Очистити історію пошуку
+ Очищено
+ Тільки жести
+ Внутрішнє сховище
+ Зовнішнє сховище
+ Домен
+ Перевірити наявність нових версій додатка
+ Доступна нова версія додатка
+ Ця манґа має %s. Зберегти все це\?
+ Зберегти
+ Сповіщення
+ Увімкнено %1$d з %2$d
+ Нові розділи
+ Завантажити
+ Читати з початку
+ Перезавантажити
+ Вібрація
+ Улюблені категорії
+ Вилучити категорію \"%s\" зі своїх уподобань\?
\nВся манґа в ній буде втрачена.
- Видалити
- Тут якось пусто…
- Спробуйте переформулювати запит.
- Те, що ви читаєте, буде показано тут
- Знайдіть, що читати, у бічному меню.
- Спочатку збережіть щось
- Збережіть його з онлайн-джерела або імпортуйте файли.
- Полиця
- Недавні
- Анімація перегортання
- Тека для завантажень
- Інше сховище
- Готово
- Усі улюблені
- Порожня категорія
- Прочитати пізніше
- Оновлення
- Схожі
- Нова версія: %s
- Розмір: %s
- Очікування мережі…
- Очистити стрічку оновлень
- Очищено
- Повернути екран
- Оновити
- Оновлення скоро почнеться
- Стежити за оновленнями
- Не перевіряти
- Неправильний пароль
- Захистити додаток
- Запитувати пароль під час запуску Kotatsu
- Повторіть пароль
- Паролі не співпадають
- Про програму
- Версія %s
- Перевірити наявність оновлень
- Перевірка наявності оновлень…
- Не вдалося перевірити оновлення
- Немає доступних оновлень
- Нова категорія
- Режим масштабування
- Вмістити в екран
- Підігнати по висоті
- Підігнати по ширині
- Вихідний розмір
- Чорна
- Споживає менше енергії на екранах AMOLED
- Резервне копіювання та відновлення
- Відновлено
- Підготовка…
- Створити проблему на GitHub
- Файл не знайдено
- Дані відновлено, але є деякі помилки
- Ви можете створити резервну копію своєї історії та уподобань і відновити їх
- Тільки що
- Торкніться, щоб спробувати ще раз
- Обраний режим буде запам\'ятован для цієї манги
- Потрібна CAPTCHA
- Пройти
- Очистити кукі
- Всі кукі були видалені
- Очистити стрічку
- Перевірити нові розділи
- В зворотньому порядку
- Увійти
- Увійдіть, щоб переглянути цей вміст
- За замовчуванням: %s
- …і ще %1$d
- Далі
- Введіть пароль для запуску програми
- Підтвердити
- Пароль має містити 4 символи або більше
- Пошук лише на %s
- Ласкаво просимо
- Резервна копія збережена
- Докладніше
- У черзі
- Немає активних завантажень
- Допомогти з перекладом програми
- Переклад
- Тема на 4PDA
- Авторизація виконана
- Вхід на %s не підтримується
- Ви вийдете з усіх джерел
- Завершена
- Триває
- Формат дати
- Виключити NSFW манґу з історії
- Ви повинні ввести ім’я
- Показувати номери сторінок
- Включені джерела
- Застосовує тему програми, засновану на палітрі кольорів шпалер на пристрої
- Імпорт манґи: %1$d з %2$d
- Політика щодо знімків екрана
- Дозволити
- Пропонувати манґу на основі ваших уподобань
- Усі дані аналізуються локально на цьому пристрої. Передача ваших персональних даних у будь-які сервіси не здійснюється
- Почніть читати манґу, і ви отримаєте персоналізовані пропозиції
- Увімкнено
- Вимкнено
- Скинути фільтр
- Знайти жанр
- Виберіть мови, якими ви хочете читати манґу. Це можливо змінити пізніше в налаштуваннях.
- Тільки по Wi-Fi
- Попереднє завантаження сторінок
- Ви увійшли як %s
- 18+
- Різні мови
- Знайти розділ
- Немає розділів у цій манзі
- %1$s%%
- Зміст
- Оновлення пропозицій
- Видалити вибрані елементи з пристрою назавжди\?
- Видалення завершено
- Ви впевнені, що хочете завантажити всю вибрану манґу з усіма її розділами\? Це може споживати багато трафіку та пам’яті
- Завантажувати паралельно
- Сповільнення завантаження
- Обробка збереженої манґи
- Приховати
- Доступні нові джерела манґи
- Закрити меню
- Завантаження…
- Очистити
- Завантаження
- Як в системі
- Завантажте або прочитайте цей відсутній розділ онлайн.
- Розділ відсутній
- Зворотній зв\'язок
- Жанри
- За замовчуванням
- Завжди
- Продовжити
- Імпорт
- Натискання по краях
- Попередження
- Це може призвести до витрати великої кількості трафіку
- Більше не питати
- Налаштування сповіщень
- Перейменувати
- Показувати сповіщення, якщо доступна нова версія
- Відкрити у веб-браузері
- Недоступно
- Немає доступного сховища
- Нові розділи того, що ви читаєте, показано тут
- Результати пошуку
- Введіть пароль
- Звук сповіщень
- Світлодіодний індикатор
- Категорії…
- Ви можете використовувати категорії для впорядкування своїх уподобань. Натисніть «+», щоб створити категорію
- Учора
- Справа наліво (←)
- Створити резервну копію
- Відновити з резервної копії
- Всі дані були відновлені
- Групувати
- Сьогодні
- Без звуку
- Давно
- Перевірка наявності нових розділів: %1$d з %2$d
- Очистити всю історію оновлень назавжди\?
- Деякі пристрої мають різну поведінку системи, що може порушити фонові завдання.
- Видалити всі останні пошукові запити назавжди\?
- Інше
- Доступні джерела
- Динамічна тема
- Блок на NSFW
- Завжди блокувати
- Пропозиції
- Увімкнути пропозиції
- Не пропонувати NSFW манґу
- Не вдалося завантажити список жанрів
- Ніколи
- Зовнішній вигляд
- Виключити жанри
- Укажіть жанри, які ви не хочете бачити в пропозиціях
- Допомагає уникнути блокування вашої IP-адреси
- Розділи будуть видалені у фоновому режимі. Це може зайняти деякий час
- Перевіряти наявність нових розділів і повідомляти про них
- Ви будете отримувати повідомлення про оновлення манґи, яку ви читаєте
- Увімкнути сповіщення
- Ви не будете отримувати повідомлення, але нові розділи будуть відображатися у списку
- Немає улюблених категорій
- Назва
- Змінити
- Змінити категорію
- Додати закладку
- Видалити закладку
- Закладки
- Закладка видалена
- Додано закладку
- Відмінити
- Видалено з історії
- DNS через HTTPS
- Режим за замовчуванням
- Автоматично визначати, чи є манга вебтуном
- Автовизначення режиму читання
- Вимкнути оптимізацію акумулятора
- Допомагає з перевірками фонових оновлень
- Щось пішло не так. Будь ласка, надішліть звіт про помилку розробникам, щоб допомогти нам її виправити.
- Надіслати
- Вимкнути все
- Використовувати відбиток пальця, якщо доступно
- Манга з Вашого улюбленого
- Манга, яку Ви нещодавно читали
+ Видалити
+ Тут якось пусто…
+ Спробуйте переформулювати запит.
+ Те, що ви читаєте, буде показано тут
+ Знайдіть, що читати, у бічному меню.
+ Спочатку збережіть щось
+ Збережіть його з онлайн-джерела або імпортуйте файли.
+ Полиця
+ Недавні
+ Анімація перегортання
+ Тека для завантажень
+ Інше сховище
+ Готово
+ Усі улюблені
+ Порожня категорія
+ Прочитати пізніше
+ Оновлення
+ Схожі
+ Нова версія: %s
+ Розмір: %s
+ Очікування мережі…
+ Очистити стрічку оновлень
+ Очищено
+ Повернути екран
+ Оновити
+ Оновлення скоро почнеться
+ Стежити за оновленнями
+ Не перевіряти
+ Неправильний пароль
+ Захистити додаток
+ Запитувати пароль під час запуску Kotatsu
+ Повторіть пароль
+ Паролі не співпадають
+ Про програму
+ Версія %s
+ Перевірити наявність оновлень
+ Перевірка наявності оновлень…
+ Не вдалося перевірити оновлення
+ Немає доступних оновлень
+ Нова категорія
+ Режим масштабування
+ Вмістити в екран
+ Підігнати по висоті
+ Підігнати по ширині
+ Вихідний розмір
+ Чорна
+ Споживає менше енергії на екранах AMOLED
+ Резервне копіювання та відновлення
+ Відновлено
+ Підготовка…
+ Створити проблему на GitHub
+ Файл не знайдено
+ Дані відновлено, але є деякі помилки
+ Ви можете створити резервну копію своєї історії та уподобань і відновити їх
+ Тільки що
+ Торкніться, щоб спробувати ще раз
+ Обраний режим буде запам\'ятован для цієї манги
+ Потрібна CAPTCHA
+ Пройти
+ Очистити кукі
+ Всі кукі були видалені
+ Очистити стрічку
+ Перевірити нові розділи
+ В зворотньому порядку
+ Увійти
+ Увійдіть, щоб переглянути цей вміст
+ За замовчуванням: %s
+ …і ще %1$d
+ Далі
+ Введіть пароль для запуску програми
+ Підтвердити
+ Пароль має містити 4 символи або більше
+ Пошук лише на %s
+ Ласкаво просимо
+ Резервна копія збережена
+ Докладніше
+ У черзі
+ Немає активних завантажень
+ Допомогти з перекладом програми
+ Переклад
+ Тема на 4PDA
+ Авторизація виконана
+ Вхід на %s не підтримується
+ Ви вийдете з усіх джерел
+ Завершена
+ Триває
+ Формат дати
+ Виключити NSFW манґу з історії
+ Ви повинні ввести ім’я
+ Показувати номери сторінок
+ Включені джерела
+ Застосовує тему програми, засновану на палітрі кольорів шпалер на пристрої
+ Імпорт манґи: %1$d з %2$d
+ Політика щодо знімків екрана
+ Дозволити
+ Пропонувати манґу на основі ваших уподобань
+ Усі дані аналізуються локально на цьому пристрої. Передача ваших персональних даних у будь-які сервіси не здійснюється
+ Почніть читати манґу, і ви отримаєте персоналізовані пропозиції
+ Увімкнено
+ Вимкнено
+ Скинути фільтр
+ Знайти жанр
+ Виберіть мови, якими ви хочете читати манґу. Це можливо змінити пізніше в налаштуваннях.
+ Тільки по Wi-Fi
+ Попереднє завантаження сторінок
+ Ви увійшли як %s
+ 18+
+ Різні мови
+ Знайти розділ
+ Немає розділів у цій манзі
+ %1$s%%
+ Зміст
+ Оновлення пропозицій
+ Видалити вибрані елементи з пристрою назавжди\?
+ Видалення завершено
+ Ви впевнені, що хочете завантажити всю вибрану манґу з усіма її розділами\? Це може споживати багато трафіку та пам’яті
+ Завантажувати паралельно
+ Сповільнення завантаження
+ Обробка збереженої манґи
+ Приховати
+ Доступні нові джерела манґи
+ Закрити меню
+ Завантаження…
+ Очистити
+ Завантаження
+ Як в системі
+ Завантажте або прочитайте цей відсутній розділ онлайн.
+ Розділ відсутній
+ Зворотній зв\'язок
+ Жанри
+ За замовчуванням
+ Завжди
+ Продовжити
+ Імпорт
+ Натискання по краях
+ Попередження
+ Це може призвести до витрати великої кількості трафіку
+ Більше не питати
+ Налаштування сповіщень
+ Перейменувати
+ Показувати сповіщення, якщо доступна нова версія
+ Відкрити у веб-браузері
+ Недоступно
+ Немає доступного сховища
+ Нові розділи того, що ви читаєте, показано тут
+ Результати пошуку
+ Введіть пароль
+ Звук сповіщень
+ Світлодіодний індикатор
+ Категорії…
+ Ви можете використовувати категорії для впорядкування своїх уподобань. Натисніть «+», щоб створити категорію
+ Учора
+ Справа наліво (←)
+ Створити резервну копію
+ Відновити з резервної копії
+ Всі дані були відновлені
+ Групувати
+ Сьогодні
+ Без звуку
+ Давно
+ Перевірка наявності нових розділів: %1$d з %2$d
+ Очистити всю історію оновлень назавжди\?
+ Деякі пристрої мають різну поведінку системи, що може порушити фонові завдання.
+ Видалити всі останні пошукові запити назавжди\?
+ Інше
+ Доступні джерела
+ Динамічна тема
+ Блок на NSFW
+ Завжди блокувати
+ Пропозиції
+ Увімкнути пропозиції
+ Не пропонувати NSFW манґу
+ Не вдалося завантажити список жанрів
+ Ніколи
+ Зовнішній вигляд
+ Виключити жанри
+ Укажіть жанри, які ви не хочете бачити в пропозиціях
+ Допомагає уникнути блокування вашої IP-адреси
+ Розділи будуть видалені у фоновому режимі. Це може зайняти деякий час
+ Перевіряти наявність нових розділів і повідомляти про них
+ Ви будете отримувати повідомлення про оновлення манґи, яку ви читаєте
+ Увімкнути сповіщення
+ Ви не будете отримувати повідомлення, але нові розділи будуть відображатися у списку
+ Немає улюблених категорій
+ Назва
+ Змінити
+ Змінити категорію
+ Додати закладку
+ Видалити закладку
+ Закладки
+ Закладка видалена
+ Додано закладку
+ Відмінити
+ Видалено з історії
+ DNS через HTTPS
+ Режим за замовчуванням
+ Автоматично визначати, чи є манга вебтуном
+ Автовизначення режиму читання
+ Вимкнути оптимізацію акумулятора
+ Допомагає з перевірками фонових оновлень
+ Щось пішло не так. Будь ласка, надішліть звіт про помилку розробникам, щоб допомогти нам її виправити.
+ Надіслати
+ Вимкнути все
+ Використовувати відбиток пальця, якщо доступно
+ Манга з Вашого улюбленого
+ Манга, яку Ви нещодавно читали
+ Недійсний домен
+ Звіт
+ Відстеження
+ Вийти
+ Заплановано
+ Читаю
+ Перечитую
+ Завершено
+ Відкладено
+ Занедбано
+ Показувати індикатори прогресу читання
+ Видалення даних
+ Показати відсоток прочитаного в історії та обраному
+ Манґа, позначена як NSFW, ніколи не буде додана до історії і ваш прогрес не буде збережений
+ Може допомогти в разі виникнення проблем. Усі авторизації будуть анульовані
+ Показати всі
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 56bc429e8..7244f2725 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -357,4 +357,5 @@
Removed from favourites
Removed from \"%s\"
Options
+ Content not found or removed
diff --git a/app/src/main/res/xml/filepaths.xml b/app/src/main/res/xml/filepaths.xml
index 7dac5f16b..aa2d1a744 100644
--- a/app/src/main/res/xml/filepaths.xml
+++ b/app/src/main/res/xml/filepaths.xml
@@ -1,15 +1,8 @@
-
-
-
-
+
+
+
\ No newline at end of file