Compare commits

...

12 Commits
v6.6 ... v6.6.2

Author SHA1 Message Date
CakesTwix
f5ece8124e Translated using Weblate (Ukrainian)
Currently translated at 100.0% (554 of 554 strings)

Co-authored-by: CakesTwix <cakestwix1@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/kotatsu/strings/uk/
Translation: Kotatsu/Strings
2024-01-11 19:26:30 +02:00
Zero O
accdc41d6c Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (554 of 554 strings)

Co-authored-by: Zero O <godarms2010@live.com>
Translate-URL: https://hosted.weblate.org/projects/kotatsu/strings/zh_Hans/
Translation: Kotatsu/Strings
2024-01-11 19:26:30 +02:00
PacoteB2
819730984e Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (554 of 554 strings)

Co-authored-by: PacoteB2 <gop88662@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/kotatsu/strings/pt_BR/
Translation: Kotatsu/Strings
2024-01-11 19:26:30 +02:00
Anton Prevrhal
01c404f9e5 Translated using Weblate (German)
Currently translated at 88.6% (491 of 554 strings)

Co-authored-by: Anton Prevrhal <anton.prevrhal@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/kotatsu/strings/de/
Translation: Kotatsu/Strings
2024-01-11 19:26:30 +02:00
Anon
1fad686733 Translated using Weblate (Serbian)
Currently translated at 99.4% (551 of 554 strings)

Co-authored-by: Anon <anonymousprivate76@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/kotatsu/strings/sr/
Translation: Kotatsu/Strings
2024-01-11 19:26:30 +02:00
Сергій
396be6008d Translated using Weblate (Ukrainian)
Currently translated at 100.0% (554 of 554 strings)

Co-authored-by: Сергій <sergiy.goncharuk.1@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/kotatsu/strings/uk/
Translation: Kotatsu/Strings
2024-01-11 19:26:30 +02:00
ssantos
42f7846167 Translated using Weblate (Portuguese)
Currently translated at 100.0% (7 of 7 strings)

Translated using Weblate (Portuguese)

Currently translated at 100.0% (554 of 554 strings)

Co-authored-by: ssantos <ssantos@web.de>
Translate-URL: https://hosted.weblate.org/projects/kotatsu/plurals/pt/
Translate-URL: https://hosted.weblate.org/projects/kotatsu/strings/pt/
Translation: Kotatsu/Strings
Translation: Kotatsu/plurals
2024-01-11 19:26:30 +02:00
Макар Разин
dca56a43ee Translated using Weblate (Russian)
Currently translated at 100.0% (554 of 554 strings)

Translated using Weblate (Belarusian)

Currently translated at 100.0% (554 of 554 strings)

Co-authored-by: Макар Разин <makarrazin14@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/kotatsu/strings/be/
Translate-URL: https://hosted.weblate.org/projects/kotatsu/strings/ru/
Translation: Kotatsu/Strings
2024-01-11 19:26:30 +02:00
Koitharu
cc91e56e1b Update parsers 2024-01-11 19:08:15 +02:00
Koitharu
627cf73d72 Action to mark manga as completed 2024-01-11 18:53:45 +02:00
Koitharu
514870f71c Filter exceptions reporting via ACRA 2024-01-07 15:51:16 +02:00
Koitharu
adffa800e8 Update parsers 2024-01-07 12:08:04 +02:00
16 changed files with 281 additions and 36 deletions

View File

@@ -16,8 +16,8 @@ android {
applicationId 'org.koitharu.kotatsu'
minSdk = 21
targetSdk = 34
versionCode = 611
versionName = '6.6'
versionCode = 613
versionName = '6.6.2'
generatedDensities = []
testInstrumentationRunner 'org.koitharu.kotatsu.HiltTestRunner'
ksp {
@@ -82,7 +82,7 @@ afterEvaluate {
}
dependencies {
//noinspection GradleDependency
implementation('com.github.KotatsuApp:kotatsu-parsers:e03d0efe71') {
implementation('com.github.KotatsuApp:kotatsu-parsers:789e39b6cb') {
exclude group: 'org.json', module: 'json'
}
@@ -138,8 +138,10 @@ dependencies {
implementation 'ch.acra:acra-http:5.11.3'
implementation 'ch.acra:acra-dialog:5.11.3'
compileOnly 'com.google.auto.service:auto-service-annotations:1.1.1'
ksp 'dev.zacsweers.autoservice:auto-service-ksp:1.1.0'
debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.12'
debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.13'
testImplementation 'junit:junit:4.13.2'
testImplementation 'org.json:json:20231013'

View File

@@ -0,0 +1,24 @@
package org.koitharu.kotatsu.core
import android.content.Context
import com.google.auto.service.AutoService
import org.acra.builder.ReportBuilder
import org.acra.config.CoreConfiguration
import org.acra.config.ReportingAdministrator
@AutoService(ReportingAdministrator::class)
class ErrorReportingAdmin : ReportingAdministrator {
override fun shouldStartCollecting(
context: Context,
config: CoreConfiguration,
reportBuilder: ReportBuilder
): Boolean {
return reportBuilder.exception?.isDeadOs() != true
}
private fun Throwable.isDeadOs(): Boolean {
val className = javaClass.simpleName
return className == "DeadSystemException" || className == "DeadSystemRuntimeException" || cause?.isDeadOs() == true
}
}

View File

@@ -7,6 +7,7 @@ import android.view.View
import androidx.appcompat.view.ActionMode
import androidx.appcompat.widget.PopupMenu
import androidx.fragment.app.viewModels
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import dagger.hilt.android.AndroidEntryPoint
import org.koitharu.kotatsu.R
import org.koitharu.kotatsu.core.ui.list.ListSelectionController
@@ -73,6 +74,18 @@ class FavouritesListFragment : MangaListFragment(), PopupMenu.OnMenuItemClickLis
true
}
R.id.action_mark_current -> {
MaterialAlertDialogBuilder(context ?: return false)
.setTitle(item.title)
.setMessage(R.string.mark_as_completed_prompt)
.setNegativeButton(android.R.string.cancel, null)
.setPositiveButton(android.R.string.ok) { _, _ ->
viewModel.markAsRead(selectedItems)
mode.finish()
}.show()
true
}
else -> super.onActionItemClicked(controller, mode, item)
}
}

View File

@@ -21,6 +21,7 @@ import org.koitharu.kotatsu.download.ui.worker.DownloadWorker
import org.koitharu.kotatsu.favourites.domain.FavouritesRepository
import org.koitharu.kotatsu.favourites.ui.list.FavouritesListFragment.Companion.ARG_CATEGORY_ID
import org.koitharu.kotatsu.favourites.ui.list.FavouritesListFragment.Companion.NO_ID
import org.koitharu.kotatsu.history.domain.MarkAsReadUseCase
import org.koitharu.kotatsu.list.domain.ListExtraProvider
import org.koitharu.kotatsu.list.domain.ListSortOrder
import org.koitharu.kotatsu.list.ui.MangaListViewModel
@@ -28,6 +29,7 @@ import org.koitharu.kotatsu.list.ui.model.EmptyState
import org.koitharu.kotatsu.list.ui.model.LoadingState
import org.koitharu.kotatsu.list.ui.model.toErrorState
import org.koitharu.kotatsu.list.ui.model.toUi
import org.koitharu.kotatsu.parsers.model.Manga
import javax.inject.Inject
@HiltViewModel
@@ -35,11 +37,13 @@ class FavouritesListViewModel @Inject constructor(
savedStateHandle: SavedStateHandle,
private val repository: FavouritesRepository,
private val listExtraProvider: ListExtraProvider,
private val markAsReadUseCase: MarkAsReadUseCase,
settings: AppSettings,
downloadScheduler: DownloadWorker.Scheduler,
) : MangaListViewModel(settings, downloadScheduler) {
val categoryId: Long = savedStateHandle[ARG_CATEGORY_ID] ?: NO_ID
private val refreshTrigger = MutableStateFlow(Any())
override val listMode = settings.observeAsFlow(AppSettings.KEY_LIST_MODE_FAVORITES) { favoritesListMode }
.stateIn(viewModelScope + Dispatchers.Default, SharingStarted.Eagerly, settings.favoritesListMode)
@@ -59,7 +63,8 @@ class FavouritesListViewModel @Inject constructor(
repository.observeAll(categoryId)
},
listMode,
) { list, mode ->
refreshTrigger,
) { list, mode, _ ->
when {
list.isEmpty() -> listOf(
EmptyState(
@@ -80,10 +85,19 @@ class FavouritesListViewModel @Inject constructor(
emit(listOf(it.toErrorState(canRetry = false)))
}.stateIn(viewModelScope + Dispatchers.Default, SharingStarted.Eagerly, listOf(LoadingState))
override fun onRefresh() = Unit
override fun onRefresh() {
refreshTrigger.value = Any()
}
override fun onRetry() = Unit
fun markAsRead(items: Set<Manga>) {
launchLoadingJob(Dispatchers.Default) {
markAsReadUseCase(items)
onRefresh()
}
}
fun removeFromFavourites(ids: Set<Long>) {
if (ids.isEmpty()) {
return

View File

@@ -0,0 +1,49 @@
package org.koitharu.kotatsu.history.domain
import dagger.Reusable
import kotlinx.coroutines.joinAll
import kotlinx.coroutines.launch
import kotlinx.coroutines.supervisorScope
import org.koitharu.kotatsu.core.parser.MangaRepository
import org.koitharu.kotatsu.history.data.HistoryRepository
import org.koitharu.kotatsu.parsers.model.Manga
import javax.inject.Inject
@Reusable
class MarkAsReadUseCase @Inject constructor(
private val historyRepository: HistoryRepository,
private val mangaRepositoryFactory: MangaRepository.Factory,
) {
suspend operator fun invoke(manga: Manga) {
val repo = mangaRepositoryFactory.create(manga.source)
val details = if (manga.chapters.isNullOrEmpty()) {
repo.getDetails(manga)
} else {
manga
}
val lastChapter = checkNotNull(details.chapters).last()
val pages = repo.getPages(lastChapter)
historyRepository.addOrUpdate(
manga = details,
chapterId = lastChapter.id,
page = pages.lastIndex,
scroll = 0,
percent = 1f,
)
}
suspend operator fun invoke(manga: Collection<Manga>) {
when (manga.size) {
0 -> Unit
1 -> invoke(manga.first())
else -> supervisorScope {
manga.map {
launch {
invoke(it)
}
}.joinAll()
}
}
}
}

View File

@@ -27,6 +27,12 @@
android:title="@string/categories"
app:showAsAction="ifRoom|withText" />
<item
android:id="@+id/action_mark_current"
android:icon="@drawable/ic_eye_check"
android:title="@string/mark_as_completed"
app:showAsAction="ifRoom|withText" />
<item
android:id="@+id/action_select_all"
android:icon="?actionModeSelectAllDrawable"

View File

@@ -543,4 +543,12 @@
<string name="restore">Аднавіць</string>
<string name="backup_date_">Дата стварэння рэзервовай копіі: %s</string>
<string name="sync_auth">Увайдзіце, каб сінхранізаваць уліковы запіс</string>
<string name="by_name_reverse">Імя (зваротнае)</string>
<string name="content_rating">Рэйтынг кантэнту</string>
<string name="genres_exclude">Выключыць жанры</string>
<string name="rating_safe">Бяспечны</string>
<string name="rating_suggestive">З падказкамі</string>
<string name="rating_adult">Дарослы</string>
<string name="default_tab">Ўкладка па змаўчанні</string>
<string name="state_upcoming">Чакаецца</string>
</resources>

View File

@@ -347,7 +347,7 @@
<string name="share_logs">Protokolle teilen</string>
<string name="enable_logging">Protokollierung aktivieren</string>
<string name="language">Sprache</string>
<string name="enable_logging_summary">Einige Aktionen zu Debug-Zwecken aufzeichnen</string>
<string name="enable_logging_summary">Einige Aktionen zu Debug-Zwecken aufzeichnen. Aktivieren Sie dies nicht, wenn Sie sich nicht sicher sind, was Sie tun.</string>
<string name="history_shortcuts">Zeige Verknüpfungen zu aktuellen Manga</string>
<string name="history_shortcuts_summary">Neueste Manga durch langes Drücken auf das Anwendungssymbol verfügbar machen</string>
<string name="show_suspicious_content">Verdächtige Inhalte anzeigen</string>
@@ -361,7 +361,7 @@
<string name="scrobbling_empty_hint">Um deinen Lesefortschritt nachzuverfolgen, wähle Menu → Track auf dem Manga Details Bildschirm.</string>
<string name="find_similar">Ähnliche finden</string>
<string name="theme_name_sakura">Sakura</string>
<string name="allow_unstable_updates_summary">Schlage Updates zu Beta-Versionen der App vor</string>
<string name="allow_unstable_updates_summary">Benachrichtigungen über instabile Versionen erhalten</string>
<string name="allow_unstable_updates">Erlaube instabile Updates</string>
<string name="got_it">Alles klar</string>
<string name="sources_reorder_tip">Drücke und halte eine Quelle, um diese umzusortieren</string>
@@ -465,4 +465,49 @@
<string name="in_progress">In Arbeit</string>
<string name="related_manga">Verwandte Manga</string>
<string name="clear_source_cookies_summary">Cookies nur für bestimmte Domain löschen. In den meisten Fällen wird die Genehmigung ungültig</string>
<string name="default_section">Standardabschnitt</string>
<string name="catalog">Katalog</string>
<string name="manage_sources">Quellen verwalten</string>
<string name="content_type_manga">Manga</string>
<string name="content_type_hentai">Hentai</string>
<string name="content_type_other">Sonstige</string>
<string name="sources_catalog">Quellenkatalog</string>
<string name="source_enabled">Quelle aktiviert</string>
<string name="keep_screen_on">Bildschirm eingeschaltet lassen</string>
<string name="lock_screen_rotation">Bildschirmrotation sperren</string>
<string name="manga_list">Manga liste</string>
<string name="disable_nsfw">NSFW deaktivieren</string>
<string name="too_many_requests_message">Zu viele Anfragen. Probier es später erneut</string>
<string name="items_limit_exceeded">Es können keine weiteren Elemente hinzugefügt werden</string>
<string name="zoom_out">Herauszoomen</string>
<string name="reader_zoom_buttons">Zoomtasten Anzeigen</string>
<string name="periodic_backups">Periodische Backups</string>
<string name="backup_frequency">Häufigkeit der Backup-Erstellung</string>
<string name="error_multiple_genres_not_supported">Filtern nach mehreren Genres wird von dieser Manga-Quelle nicht unterstützt</string>
<string name="webtoon_zoom_summary">Zoom-Geste in Webtoon-Modus erlauben</string>
<string name="available_d">Verfügbar: %1$d</string>
<string name="on_device">Auf dem Gerät</string>
<string name="directories">Verzeichnisse</string>
<string name="to_top">Nach oben</string>
<string name="moved_to_top">Nach oben verschoben</string>
<string name="state_paused">Pausiert</string>
<string name="zoom_in">Hereinzoomen</string>
<string name="reader_zoom_buttons_summary">Ob die Zoom-Steuerungstasten in der unteren rechten Ecke angezeigt werden sollen</string>
<string name="reader_optimize">Speicherverbrauch reduzieren (beta)</string>
<string name="reader_optimize_summary">Qualität von nicht sichtbaren Seiten verringern, um den Speicherverbrauch zu reduzieren</string>
<string name="state">Zustand</string>
<string name="error_multiple_states_not_supported">Filtern nach mehreren Zuständen wird von dieser Manga-Quelle nicht unterstützt</string>
<string name="error_search_not_supported">Die Suchfunktion wird von dieser Manga-Quelle nicht unterstützt</string>
<string name="enhanced_colors">32-bit Farbmodus</string>
<string name="suggest_new_sources">Neue Quellen nach einem Update vorschlagen</string>
<string name="by_relevance">Relevanz</string>
<string name="categories">Kategorien</string>
<string name="frequency_every_day">Täglich</string>
<string name="frequency_every_2_days">Alle 2 Tage</string>
<string name="frequency_twice_per_month">Zweimal pro Monat</string>
<string name="frequency_once_per_week">Einmal pro Woche</string>
<string name="frequency_once_per_month">Einmal pro Monat</string>
<string name="periodic_backups_enable">Periodische Backups aktivieren</string>
<string name="backups_output_directory">Ausgabe-Verzeichnis für Backups</string>
<string name="last_successful_backup">Letztes erfolgreiches Backup: %s</string>
</resources>

View File

@@ -543,4 +543,12 @@
<string name="backup_date_">Data de backup: %s</string>
<string name="grayscale">Tons de Cinza</string>
<string name="sync_auth">Faça login para sincronizar a conta</string>
<string name="state_upcoming">por vir</string>
<string name="by_name_reverse">Nome invertido</string>
<string name="rating_safe">seguro</string>
<string name="rating_suggestive">sugestivo</string>
<string name="genres_exclude">excluir gênero</string>
<string name="rating_adult">Adulto</string>
<string name="default_tab">Aba padrão</string>
<string name="content_rating">Classificação do Conteúdo</string>
</resources>

View File

@@ -3,36 +3,36 @@
<plurals name="minutes_ago">
<item quantity="one">%1$d minuto atrás</item>
<item quantity="many">%1$d minutos atrás</item>
<item quantity="other"></item>
<item quantity="other">%1$d minutos atrás</item>
</plurals>
<plurals name="items">
<item quantity="one">%1$d item</item>
<item quantity="many">%1$d itens</item>
<item quantity="other"></item>
<item quantity="one">%1$d elemento</item>
<item quantity="many">%1$d elementos</item>
<item quantity="other">%1$d elementos</item>
</plurals>
<plurals name="chapters">
<item quantity="one">%1$d capítulo</item>
<item quantity="many">%1$d capítulos</item>
<item quantity="other"></item>
<item quantity="other">%1$d capítulos</item>
</plurals>
<plurals name="new_chapters">
<item quantity="one">%1$d novo capítulo</item>
<item quantity="many">%1$d novos capítulos</item>
<item quantity="other"></item>
<item quantity="other">%1$d capítulos novos</item>
</plurals>
<plurals name="months_ago">
<item quantity="one">%1$d mês atrás</item>
<item quantity="many">%1$d meses atrás</item>
<item quantity="other"></item>
<item quantity="other">%1$d meses atrás</item>
</plurals>
<plurals name="days_ago">
<item quantity="one">%1$d dia atrás</item>
<item quantity="many">%1$d dias atrás</item>
<item quantity="other"></item>
<item quantity="other">%1$d dias atrás</item>
</plurals>
<plurals name="hours_ago">
<item quantity="one">%1$d hora atrás</item>
<item quantity="many">%1$d horas atrás</item>
<item quantity="other"></item>
<item quantity="other">%1$d horas atrás</item>
</plurals>
</resources>

View File

@@ -543,4 +543,12 @@
<string name="backups_output_directory">Local de saída de backups</string>
<string name="content_type_other">Outros</string>
<string name="sync_auth">Faça login para sincronizar a conta</string>
<string name="state_upcoming">Próximo</string>
<string name="content_rating">Avaliação do conteúdo</string>
<string name="genres_exclude">Excluir gêneros</string>
<string name="rating_safe">Seguro</string>
<string name="rating_suggestive">Sugestivo</string>
<string name="rating_adult">Adulto</string>
<string name="default_tab">Guia padrão</string>
<string name="by_name_reverse">Nome invertido</string>
</resources>

View File

@@ -547,4 +547,8 @@
<string name="state_upcoming">Ожидается</string>
<string name="genres_exclude">Исключить жанры</string>
<string name="default_tab">Вкладка по умолчанию</string>
<string name="content_rating">Рейтинг контента</string>
<string name="rating_safe">Безопасный</string>
<string name="rating_suggestive">С намёками</string>
<string name="rating_adult">Взрослый</string>
</resources>

View File

@@ -545,4 +545,10 @@
<string name="sync_auth">Пријавите се за синхронизацију налога</string>
<string name="by_name_reverse">Обрнуто име</string>
<string name="state_upcoming">Излази</string>
<string name="genres_exclude">Искључи жанрове</string>
<string name="rating_safe">Безбедно</string>
<string name="rating_suggestive">Препоручљиво</string>
<string name="default_tab">Подразумевана картица</string>
<string name="content_rating">Оцена садржаја</string>
<string name="rating_adult">За одрасле</string>
</resources>

View File

@@ -512,7 +512,7 @@
<string name="content_type_hentai">Хентай</string>
<string name="content_type_comics">Комікси</string>
<string name="catalog">Каталог</string>
<string name="manage_sources">Кіравання джерелами</string>
<string name="manage_sources">Керування джерелами</string>
<string name="no_manga_sources_found">За вашим запитом не знайдено доступних джерел манґи</string>
<string name="manual">Вручну</string>
<string name="source_enabled">Джерело включено</string>
@@ -545,4 +545,10 @@
<string name="sync_auth">Увійти до синхронізації</string>
<string name="by_name_reverse">Ім\'я (навпаки)</string>
<string name="state_upcoming">Очікується</string>
<string name="genres_exclude">Виключити жанри</string>
<string name="rating_safe">Безпечний</string>
<string name="rating_adult">Дорослий</string>
<string name="default_tab">Типова вкладка</string>
<string name="content_rating">Рейтинг контенту</string>
<string name="rating_suggestive">З натяками</string>
</resources>

View File

@@ -4,10 +4,10 @@
<string name="local_storage">本地存储</string>
<string name="favourites">收藏</string>
<string name="history">历史</string>
<string name="error_occurred">发生了一个错误</string>
<string name="error_occurred">发生错误</string>
<string name="network_error">网络错误</string>
<string name="chapters">章节</string>
<string name="list">紧凑</string>
<string name="list">列表</string>
<string name="data_restored_with_errors">数据已恢复,但有一些错误</string>
<string name="processing_">正在处理…</string>
<string name="newest">最新</string>
@@ -23,7 +23,7 @@
<string name="long_ago">很久以前</string>
<string name="group">分组</string>
<string name="tap_to_try_again">点击重试</string>
<string name="reader_mode_hint">所选配置将被这部漫画记住</string>
<string name="reader_mode_hint">所选配置将会应用于此漫画</string>
<string name="captcha_required">需要验证码</string>
<string name="captcha_solve">解决</string>
<string name="today">今天</string>
@@ -43,7 +43,7 @@
<string name="detailed_list">详细</string>
<string name="grid">网格</string>
<string name="list_mode">列表模式</string>
<string name="remote_sources">漫画源</string>
<string name="remote_sources">漫画</string>
<string name="loading_">加载中…</string>
<string name="computing_">计算中…</string>
<string name="chapter_d_of_d">章节 %1$d/%2$d</string>
@@ -126,7 +126,7 @@
<string name="text_empty_holder_primary">这里有点空…</string>
<string name="text_search_holder_secondary">尝试重新表述查询。</string>
<string name="text_history_holder_primary">你看过的内容将在这里显示</string>
<string name="text_history_holder_secondary">【浏览】部分找到要读的内容</string>
<string name="text_history_holder_secondary">&lt;浏览&gt;页面搜索要读的漫画</string>
<string name="text_local_holder_primary">先保存内容</string>
<string name="text_local_holder_secondary">从在线来源保存或导入文件。</string>
<string name="manga_shelf">书架</string>
@@ -180,7 +180,7 @@
<string name="reverse">倒序</string>
<string name="sign_in">登录</string>
<string name="auth_required">登录后可查看此内容</string>
<string name="default_s">默认值: %s</string>
<string name="default_s">默认值%s</string>
<string name="next">下一页</string>
<string name="protect_application_subtitle">输入密码以启动应用程序</string>
<string name="confirm">确认</string>
@@ -197,22 +197,22 @@
<string name="auth_complete">授权</string>
<string name="auth_not_supported_by">不支持在%s上登录</string>
<string name="text_clear_cookies_prompt">你将在所有漫画源退出登录</string>
<string name="genres"></string>
<string name="genres"></string>
<string name="state_ongoing">连载中</string>
<string name="state_finished">已完结</string>
<string name="system_default">默认</string>
<string name="exclude_nsfw_from_history">从历史中排除NSFW漫画</string>
<string name="show_pages_numbers">页数</string>
<string name="enabled_sources">已用漫画源</string>
<string name="available_sources">可用漫画</string>
<string name="available_sources">可用</string>
<string name="screenshots_policy">截图策略</string>
<string name="screenshots_allow">允许</string>
<string name="screenshots_block_nsfw">屏蔽 NSFW</string>
<string name="screenshots_block_nsfw">屏蔽NSFW</string>
<string name="screenshots_block_all">始终屏蔽</string>
<string name="suggestions">漫画推荐</string>
<string name="suggestions_enable">启用漫画推荐</string>
<string name="text_suggestion_holder">开始阅读漫画,你会获取个性化推荐</string>
<string name="exclude_nsfw_from_suggestions">请勿推荐 NSFW 漫画</string>
<string name="exclude_nsfw_from_suggestions">请勿推荐NSFW漫画</string>
<string name="enabled">启用</string>
<string name="disabled">禁用</string>
<string name="filter_load_error">无法加载分类列表</string>
@@ -257,7 +257,7 @@
<string name="status_planned">计划</string>
<string name="status_on_hold">暂停</string>
<string name="report">报告</string>
<string name="tracking">追踪</string>
<string name="tracking">进度记录</string>
<string name="logout">注销</string>
<string name="status_reading">阅读</string>
<string name="status_re_reading">重读</string>
@@ -268,13 +268,13 @@
<string name="show_reading_indicators_summary">在历史和收藏中显示阅读百分比</string>
<string name="show_reading_indicators">显示阅读进度</string>
<string name="data_deletion">数据删除</string>
<string name="exclude_nsfw_from_history_summary">标记为 NSFW 的漫画将永远不会被添加到历史中,的阅读进度也不会被保存</string>
<string name="exclude_nsfw_from_history_summary">标记为NSFW的漫画将永远不会被添加到历史中的阅读进度也不会被保存</string>
<string name="clear_cookies_summary">能对部分问题起到一点作用。所有网站授权将失效</string>
<string name="show_all">显示全部</string>
<string name="manga_error_description_pattern">错误详情:&lt;br&gt;&lt;tt&gt;%1$s&lt;/tt&gt;&lt;br&gt;&lt;br&gt;1.尝试&lt;a href=%2$s&gt;在网络浏览器中打开漫画&lt;/a&gt;以确保在其来源中可用&lt;br&gt;2. 请确保您使用的是&lt;a href=kotatsu://about&gt;最新版本的Kotatsu&lt;/a&gt;&lt;br&gt;3.如果可用,请向开发人员发送错误报告。</string>
<string name="invalid_domain_message">无效域名</string>
<string name="text_shelf_holder_primary">此处将显示你的漫画</string>
<string name="text_shelf_holder_secondary">【浏览】页面搜索想要阅读的漫画</string>
<string name="text_shelf_holder_secondary">&lt;浏览&gt;页面搜索读的漫画</string>
<string name="percent_string_pattern">%1$s%%</string>
<string name="canceled">已取消</string>
<string name="account_already_exists">账号已存在</string>
@@ -381,7 +381,7 @@
<string name="find_similar">寻找相似</string>
<string name="translations">翻译</string>
<string name="web_view_unavailable">WebView不可用检查是否已安装WebView</string>
<string name="sync_host_description">可以使用自建同步服务器或默认服务器。如果你不知道自己在干什么请不要修改此</string>
<string name="sync_host_description">可以使用自建同步服务器或默认服务器。如果您不清楚自己在干什么请不要修改此</string>
<string name="mirror_switching">自动选择镜像</string>
<string name="mirror_switching_summary">如果存在可用镜像,在出错时自动切换漫画源域名</string>
<string name="paused">已暂停</string>
@@ -463,16 +463,16 @@
<string name="directories">目录</string>
<string name="manage_categories">漫画类别</string>
<string name="color_light">浅色</string>
<string name="search_hint">输入漫画名、漫画类型或漫画源名称</string>
<string name="main_screen_sections">主页栏目</string>
<string name="search_hint">输入漫画标题、分类或图源名称</string>
<string name="main_screen_sections">主页</string>
<string name="advanced">高级</string>
<string name="color_dark">深色</string>
<string name="too_many_requests_message">请求次数过多,稍候再尝试</string>
<string name="suggestions_wifi_only_summary">使用按流量计费的网络时停止推荐漫画</string>
<string name="default_section">默认栏目</string>
<string name="default_section">默认页面</string>
<string name="background">阅读背景色</string>
<string name="manga_list">漫画列表</string>
<string name="disable_nsfw">禁用 NSFW </string>
<string name="disable_nsfw">禁用NSFW</string>
<string name="color_white">白色</string>
<string name="to_top">置顶</string>
<string name="show">显示</string>
@@ -501,4 +501,54 @@
<string name="last_successful_backup">上次备份成功:%s</string>
<string name="backups_output_directory">备份保存路径</string>
<string name="download_option_all_chapters">所有已翻译的章节 %s</string>
<string name="state_upcoming">即将推出</string>
<string name="by_name_reverse">名称反转</string>
<string name="manage_sources">漫画图源</string>
<string name="catalog">目录</string>
<string name="content_type_comics">漫画</string>
<string name="content_type_other">其他</string>
<string name="content_type_manga">日本漫画</string>
<string name="source_summary_pattern">%1$s%2$s</string>
<string name="sources_catalog">图源目录</string>
<string name="source_enabled">已启用图源</string>
<string name="content_type_hentai">绅士漫画</string>
<string name="no_manga_sources_found">本次搜索未发现可用的漫画图源</string>
<string name="no_manga_sources_catalog_text">此页面中没有可用的图源,或者可能已经添加了所有图源。
\n敬请期待</string>
<string name="welcome_text">请选择需要启用的内容图源。也可稍后在设置中进行配置</string>
<string name="sync_auth">登录同步账号</string>
<string name="downloads_settings_info">如果您遇到服务器端阻塞问题,可以在图源设置中为每个漫画图源单独启用下载限速功能</string>
<string name="skip">跳过</string>
<string name="backup_date_">备份日期:%s</string>
<string name="content_rating">内容评级</string>
<string name="genres_exclude">排除分类</string>
<string name="rating_safe">安全</string>
<string name="rating_suggestive">建议</string>
<string name="rating_adult">成人</string>
<string name="lock_screen_rotation">锁定屏幕方向</string>
<string name="default_tab">默认标签栏</string>
<string name="grayscale">灰度</string>
<string name="globally">全局</string>
<string name="this_manga">此漫画</string>
<string name="color_correction_apply_text">这些设置可以全局应用,也可以只应用于当前漫画。如果全局应用,单独的设置将不会被覆盖。</string>
<string name="apply">应用</string>
<string name="online_variant">其他线上版本</string>
<string name="restore">恢复</string>
<string name="state_abandoned">拖入</string>
<string name="manual">手动</string>
<string name="available_d">可用:%1$d</string>
<string name="disable_nsfw_summary">禁用NSFW图源并尽可能从列表中隐藏成人漫画</string>
<string name="speed_value">x%.1f</string>
<string name="error_filter_locale_genre_not_supported">此图源不支持同时按分类和区域过滤</string>
<string name="error_filter_states_genre_not_supported">此图源不支持同时按分类和状态过滤</string>
<string name="genres_search_hint">开始输入分类名称</string>
<string name="state_paused">暂停</string>
<string name="reader_optimize">降低内存占用(测试)</string>
<string name="reader_optimize_summary">降低当前画面外的页面质量以减少内存占用</string>
<string name="disable_battery_optimization_summary_downloads">这可能帮助您解决下载过程相关的问题</string>
<string name="error_search_not_supported">此漫画图源不支持搜索</string>
<string name="state">状态</string>
<string name="error_multiple_genres_not_supported">此漫画图源不支持按多个分类过滤</string>
<string name="error_multiple_states_not_supported">此漫画图源不支持按多个状态过滤</string>
<string name="by_relevance">关联</string>
</resources>

View File

@@ -556,4 +556,6 @@
<string name="rating_suggestive">Suggestive</string>
<string name="rating_adult">Adult</string>
<string name="default_tab">Default tab</string>
<string name="mark_as_completed">Mark as completed</string>
<string name="mark_as_completed_prompt">Mark selected manga as completely read?\n\nWarning: current reading progress will be lost.</string>
</resources>