Merge branch 'VietAnh14-webtoon_zoom' into devel

This commit is contained in:
Koitharu
2022-10-12 12:52:50 +03:00
8 changed files with 638 additions and 398 deletions

View File

@@ -218,6 +218,9 @@ class AppSettings @Inject constructor(@ApplicationContext context: Context) {
get() = prefs.getEnumValue(KEY_LOCAL_LIST_ORDER, SortOrder.NEWEST)
set(value) = prefs.edit { putEnumValue(KEY_LOCAL_LIST_ORDER, value) }
val isWebtoonZoomEnable: Boolean
get() = prefs.getBoolean(KEY_WEBTOON_ZOOM, true)
fun isPagesPreloadAllowed(cm: ConnectivityManager): Boolean {
return when (prefs.getString(KEY_PAGES_PRELOAD, null)?.toIntOrNull()) {
NETWORK_ALWAYS -> true
@@ -337,6 +340,7 @@ class AppSettings @Inject constructor(@ApplicationContext context: Context) {
const val KEY_SHORTCUTS = "dynamic_shortcuts"
const val KEY_READER_TAPS_LTR = "reader_taps_ltr"
const val KEY_LOCAL_LIST_ORDER = "local_order"
const val KEY_WEBTOON_ZOOM = "webtoon_zoom"
// About
const val KEY_APP_UPDATE = "app_update"

View File

@@ -106,6 +106,12 @@ class ReaderViewModel @AssistedInject constructor(
valueProducer = { isReaderBarEnabled },
)
val isWebtoonZoomEnabled = settings.observeAsLiveData(
context = viewModelScope.coroutineContext + Dispatchers.Default,
key = AppSettings.KEY_WEBTOON_ZOOM,
valueProducer = { isWebtoonZoomEnable },
)
val readerSettings = ReaderSettings(
parentScope = viewModelScope,
settings = settings,

View File

@@ -2,9 +2,13 @@ package org.koitharu.kotatsu.reader.ui.config
import android.content.SharedPreferences
import androidx.lifecycle.MediatorLiveData
import kotlinx.coroutines.*
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.Job
import kotlinx.coroutines.flow.FlowCollector
import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import org.koitharu.kotatsu.core.model.ZoomMode
import org.koitharu.kotatsu.core.prefs.AppSettings
import org.koitharu.kotatsu.reader.domain.ReaderColorFilter
@@ -60,7 +64,7 @@ class ReaderSettings(
}
override fun onSharedPreferenceChanged(sharedPreferences: SharedPreferences?, key: String?) {
if (key == AppSettings.KEY_ZOOM_MODE || key == AppSettings.KEY_PAGES_NUMBERS) {
if (key == AppSettings.KEY_ZOOM_MODE || key == AppSettings.KEY_PAGES_NUMBERS || key == AppSettings.KEY_WEBTOON_ZOOM) {
notifyChanged()
}
}

View File

@@ -35,6 +35,10 @@ class WebtoonReaderFragment : BaseReader<FragmentReaderWebtoonBinding>() {
adapter = webtoonAdapter
addOnPageScrollListener(PageScrollListener())
}
viewModel.isWebtoonZoomEnabled.observe(viewLifecycleOwner) {
binding.frame.isZoomEnable = it
}
}
override fun onDestroyView() {

View File

@@ -0,0 +1,210 @@
package org.koitharu.kotatsu.reader.ui.pager.webtoon
import android.animation.ObjectAnimator
import android.content.Context
import android.graphics.*
import android.util.AttributeSet
import android.view.GestureDetector
import android.view.MotionEvent
import android.view.ScaleGestureDetector
import android.view.animation.AccelerateDecelerateInterpolator
import android.widget.FrameLayout
import android.widget.OverScroller
import androidx.core.view.GestureDetectorCompat
private const val MAX_SCALE = 2.5f
private const val MIN_SCALE = 0.5f
class WebtoonScalingFrame @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
defStyles: Int = 0
): FrameLayout(context, attrs, defStyles), ScaleGestureDetector.OnScaleGestureListener {
private val targetChild by lazy(LazyThreadSafetyMode.NONE) { getChildAt(0) }
private val scaleDetector = ScaleGestureDetector(context, this)
private val gestureDetector = GestureDetectorCompat(context, GestureListener())
private val overScroller = OverScroller(context, AccelerateDecelerateInterpolator())
private val transformMatrix = Matrix()
private val matrixValues = FloatArray(9)
private val scale
get() = matrixValues[Matrix.MSCALE_X]
private val transX
get() = halfWidth * (scale - 1f) + matrixValues[Matrix.MTRANS_X]
private val transY
get() = halfHeight * (scale - 1f) + matrixValues[Matrix.MTRANS_Y]
private var halfWidth = 0f
private var halfHeight = 0f
private val translateBounds = RectF()
private val targetHitRect = Rect()
private var pendingScroll = 0
var isZoomEnable = true
set(value) {
field = value
if (scale != 1f) {
scaleChild(1f, halfWidth, halfHeight)
}
}
init {
syncMatrixValues()
}
override fun dispatchTouchEvent(ev: MotionEvent?): Boolean {
if (!isZoomEnable || ev == null) {
return super.dispatchTouchEvent(ev)
}
if (ev.action == MotionEvent.ACTION_DOWN && overScroller.computeScrollOffset()) {
overScroller.forceFinished(true)
}
gestureDetector.onTouchEvent(ev)
scaleDetector.onTouchEvent(ev)
// Offset event to inside the child view
if (scale < 1 && !targetHitRect.contains(ev.x.toInt(), ev.y.toInt())) {
ev.offsetLocation(halfWidth - ev.x + targetHitRect.width() / 3, 0f)
}
// Send action cancel to avoid recycler jump when scale end
if (scaleDetector.isInProgress) {
ev.action = MotionEvent.ACTION_CANCEL
}
return super.dispatchTouchEvent(ev)
}
override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec)
halfWidth = measuredWidth / 2f
halfHeight = measuredHeight / 2f
}
private fun invalidateTarget() {
adjustBounds()
targetChild.run {
scaleX = scale
scaleY = scale
translationX = transX
translationY = transY
}
val newHeight = if (scale < 1f) (height / scale).toInt() else height
if (newHeight != targetChild.height) {
targetChild.layoutParams.height = newHeight
targetChild.requestLayout()
}
if (scale < 1) {
targetChild.getHitRect(targetHitRect)
targetChild.scrollBy(0, pendingScroll)
pendingScroll = 0
}
}
private fun syncMatrixValues() {
transformMatrix.getValues(matrixValues)
}
private fun adjustBounds() {
syncMatrixValues()
val dx = when {
transX < translateBounds.left -> translateBounds.left - transX
transX > translateBounds.right -> translateBounds.right - transX
else -> 0f
}
val dy = when {
transY < translateBounds.top -> translateBounds.top - transY
transY > translateBounds.bottom -> translateBounds.bottom - transY
else -> 0f
}
pendingScroll = dy.toInt()
transformMatrix.postTranslate(dx, dy)
syncMatrixValues()
}
private fun scaleChild(newScale: Float, focusX: Float, focusY: Float) {
val factor = newScale / scale
if (newScale > 1) {
translateBounds.set(
halfWidth * (1 - newScale),
halfHeight * (1 - newScale),
halfWidth * (newScale - 1),
halfHeight * (newScale - 1)
)
} else {
translateBounds.set(
0f,
halfHeight - halfHeight / newScale,
0f,
halfHeight - halfHeight / newScale
)
}
transformMatrix.postScale(factor, factor, focusX, focusY)
invalidateTarget()
}
override fun onScale(detector: ScaleGestureDetector): Boolean {
val newScale = (scale * detector.scaleFactor).coerceIn(MIN_SCALE, MAX_SCALE)
scaleChild(newScale, detector.focusX, detector.focusY)
return true
}
override fun onScaleBegin(detector: ScaleGestureDetector): Boolean = true
override fun onScaleEnd(p0: ScaleGestureDetector) {
pendingScroll = 0
}
private inner class GestureListener(): GestureDetector.SimpleOnGestureListener(), Runnable {
override fun onScroll(e1: MotionEvent, e2: MotionEvent, distanceX: Float, distanceY: Float): Boolean {
if (scale <= 1f) return false
transformMatrix.postTranslate(-distanceX, -distanceY)
invalidateTarget()
return true
}
override fun onDoubleTap(e: MotionEvent): Boolean {
val newScale = if (scale != 1f) 1f else MAX_SCALE * 0.8f
ObjectAnimator.ofFloat(scale, newScale).run {
interpolator = AccelerateDecelerateInterpolator()
duration = 300
addUpdateListener {
scaleChild(it.animatedValue as Float, e.x, e.y)
}
start()
}
return true
}
override fun onFling(e1: MotionEvent, e2: MotionEvent, velocityX: Float, velocityY: Float): Boolean {
if (scale <= 1) return false
overScroller.fling(
transX.toInt(),
transY.toInt(),
velocityX.toInt(),
velocityY.toInt(),
translateBounds.left.toInt(),
translateBounds.right.toInt(),
translateBounds.top.toInt(),
translateBounds.bottom.toInt()
)
postOnAnimation(this)
return true
}
override fun run() {
if (overScroller.computeScrollOffset()) {
transformMatrix.postTranslate(overScroller.currX - transX, overScroller.currY - transY)
invalidateTarget()
postOnAnimation(this)
}
}
}
}

View File

@@ -1,9 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<org.koitharu.kotatsu.reader.ui.pager.webtoon.WebtoonRecyclerView
<org.koitharu.kotatsu.reader.ui.pager.webtoon.WebtoonScalingFrame
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/recyclerView"
android:id="@+id/frame"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
app:layoutManager="org.koitharu.kotatsu.reader.ui.pager.webtoon.WebtoonLayoutManager" />
android:layout_height="match_parent">
<org.koitharu.kotatsu.reader.ui.pager.webtoon.WebtoonRecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
app:layoutManager="org.koitharu.kotatsu.reader.ui.pager.webtoon.WebtoonLayoutManager" />
</org.koitharu.kotatsu.reader.ui.pager.webtoon.WebtoonScalingFrame>

View File

@@ -1,393 +1,395 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
<string name="app_name" translatable="false">Kotatsu</string>
<string name="close_menu">Close menu</string>
<string name="open_menu">Open menu</string>
<string name="local_storage">Local storage</string>
<string name="favourites">Favourites</string>
<string name="history">History</string>
<string name="error_occurred">An error occurred</string>
<string name="network_error">Could not connect to the Internet</string>
<string name="details">Details</string>
<string name="chapters">Chapters</string>
<string name="list">List</string>
<string name="detailed_list">Detailed list</string>
<string name="grid">Grid</string>
<string name="list_mode">List mode</string>
<string name="settings">Settings</string>
<string name="remote_sources">Remote sources</string>
<string name="loading_">Loading…</string>
<string name="computing_">Computing…</string>
<string name="chapter_d_of_d">Chapter %1$d of %2$d</string>
<string name="close">Close</string>
<string name="try_again">Try again</string>
<string name="clear_history">Clear history</string>
<string name="nothing_found">Nothing found</string>
<string name="history_is_empty">No history yet</string>
<string name="read">Read</string>
<string name="you_have_not_favourites_yet">No favourites yet</string>
<string name="add_to_favourites">Favourite this</string>
<string name="add_new_category">New category</string>
<string name="add">Add</string>
<string name="enter_category_name">Enter category name</string>
<string name="save">Save</string>
<string name="share">Share</string>
<string name="create_shortcut">Create shortcut…</string>
<string name="share_s">Share %s</string>
<string name="search">Search</string>
<string name="search_manga">Search manga</string>
<string name="manga_downloading_">Downloading…</string>
<string name="processing_">Processing…</string>
<string name="download_complete">Downloaded</string>
<string name="downloads">Downloads</string>
<string name="by_name">Name</string>
<string name="popular">Popular</string>
<string name="updated">Updated</string>
<string name="newest">Newest</string>
<string name="by_rating">Rating</string>
<string name="sort_order">Sorting order</string>
<string name="filter">Filter</string>
<string name="theme">Theme</string>
<string name="light">Light</string>
<string name="dark">Dark</string>
<string name="automatic">Follow system</string>
<string name="pages">Pages</string>
<string name="clear">Clear</string>
<string name="text_clear_history_prompt">Clear all reading history permanently?</string>
<string name="remove">Remove</string>
<string name="_s_removed_from_history">\"%s\" removed from history</string>
<string name="_s_deleted_from_local_storage">\"%s\" deleted from local storage</string>
<string name="wait_for_loading_finish">Wait for loading to finish…</string>
<string name="save_page">Save page</string>
<string name="page_saved">Saved</string>
<string name="share_image">Share image</string>
<string name="_import">Import</string>
<string name="delete">Delete</string>
<string name="operation_not_supported">This operation is not supported</string>
<string name="text_file_not_supported">Either pick a ZIP or CBZ file.</string>
<string name="no_description">No description</string>
<string name="history_and_cache">History and cache</string>
<string name="clear_pages_cache">Clear page cache</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="grid_size">Grid size</string>
<string name="search_on_s">Search on %s</string>
<string name="delete_manga">Delete manga</string>
<string name="text_delete_local_manga">Delete \"%s\" from device permanently?</string>
<string name="reader_settings">Reader settings</string>
<string name="switch_pages">Switch pages</string>
<string name="taps_on_edges">Edge taps</string>
<string name="volume_buttons">Volume buttons</string>
<string name="_continue">Continue</string>
<string name="warning">Warning</string>
<string name="network_consumption_warning">This may transfer a lot of data</string>
<string name="dont_ask_again">Don\'t ask again</string>
<string name="cancelling_">Cancelling…</string>
<string name="error">Error</string>
<string name="clear_thumbs_cache">Clear thumbnails cache</string>
<string name="clear_search_history">Clear search history</string>
<string name="search_history_cleared">Cleared</string>
<string name="gestures_only">Gestures only</string>
<string name="internal_storage">Internal storage</string>
<string name="external_storage">External storage</string>
<string name="domain">Domain</string>
<string name="application_update">Check for new versions of the app</string>
<string name="app_update_available">A new version of the app is available</string>
<string name="show_notification_app_update">Show notification if a new version is available</string>
<string name="open_in_browser">Open in web browser</string>
<string name="large_manga_save_confirm">This manga has %s. Save all of it?</string>
<string name="save_manga">Save</string>
<string name="notifications">Notifications</string>
<string name="enabled_d_of_d" tools:ignore="PluralsCandidate">%1$d of %2$d on</string>
<string name="new_chapters">New chapters</string>
<string name="download">Download</string>
<string name="read_from_start">Read from start</string>
<string name="restart">Restart</string>
<string name="notifications_settings">Notifications settings</string>
<string name="notification_sound">Notification sound</string>
<string name="light_indicator">LED indicator</string>
<string name="vibration">Vibration</string>
<string name="favourites_categories">Favourite categories</string>
<string name="categories_">Categories…</string>
<string name="rename">Rename</string>
<string name="category_delete_confirm">Remove the \"%s\" category from your favourites? \nAll manga in it will be lost.</string>
<string name="remove_category">Remove</string>
<string name="text_empty_holder_primary">It\'s kind of empty here…</string>
<string name="text_categories_holder">You can use categories to organize your favourites. Press «+» to create a category</string>
<string name="text_search_holder_secondary">Try to reformulate the query.</string>
<string name="text_history_holder_primary">What you read will be displayed here</string>
<string name="text_history_holder_secondary">Find what to read in side menu.</string>
<string name="text_shelf_holder_primary">Your manga will be displayed here</string>
<string name="text_shelf_holder_secondary">Find what to read in the «Explore» section</string>
<string name="text_local_holder_primary">Save something first</string>
<string name="text_local_holder_secondary">Save it from online sources or import files.</string>
<string name="manga_shelf">Shelf</string>
<string name="recent_manga">Recent</string>
<string name="pages_animation">Page animation</string>
<string name="manga_save_location">Folder for downloads</string>
<string name="not_available">Not available</string>
<string name="cannot_find_available_storage">No available storage</string>
<string name="other_storage">Other storage</string>
<string name="done">Done</string>
<string name="all_favourites">All favourites</string>
<string name="favourites_category_empty">Empty category</string>
<string name="read_later">Read later</string>
<string name="updates">Updates</string>
<string name="text_feed_holder">New chapters of what you are reading is shown here</string>
<string name="search_results">Search results</string>
<string name="related">Related</string>
<string name="new_version_s">New version: %s</string>
<string name="size_s">Size: %s</string>
<string name="waiting_for_network">Waiting for network…</string>
<string name="clear_updates_feed">Clear updates feed</string>
<string name="updates_feed_cleared">Cleared</string>
<string name="rotate_screen">Rotate screen</string>
<string name="update">Update</string>
<string name="feed_will_update_soon">Feed update will start soon</string>
<string name="track_sources">Look for updates</string>
<string name="dont_check">Don\'t check</string>
<string name="enter_password">Enter password</string>
<string name="wrong_password">Wrong password</string>
<string name="protect_application">Protect the app</string>
<string name="protect_application_summary">Ask for password when starting Kotatsu</string>
<string name="repeat_password">Repeat the password</string>
<string name="passwords_mismatch">Mismatching passwords</string>
<string name="about">About</string>
<string name="app_version">Version %s</string>
<string name="check_for_updates">Check for updates</string>
<string name="checking_for_updates">Checking for updates…</string>
<string name="update_check_failed">Could not look for updates</string>
<string name="no_update_available">No updates available</string>
<string name="right_to_left">Right-to-left</string>
<string name="create_category">New category</string>
<string name="scale_mode">Scale mode</string>
<string name="zoom_mode_fit_center">Fit center</string>
<string name="zoom_mode_fit_height">Fit to height</string>
<string name="zoom_mode_fit_width">Fit to width</string>
<string name="zoom_mode_keep_start">Keep at start</string>
<string name="black_dark_theme">Black</string>
<string name="black_dark_theme_summary">Uses less power on AMOLED screens</string>
<string name="backup_restore">Backup and restore</string>
<string name="create_backup">Create data backup</string>
<string name="restore_backup">Restore from backup</string>
<string name="data_restored">Restored</string>
<string name="preparing_">Preparing…</string>
<string name="report_github">Create issue on GitHub</string>
<string name="file_not_found">File not found</string>
<string name="data_restored_success">All data was restored</string>
<string name="data_restored_with_errors">The data was restored, but there are errors</string>
<string name="backup_information">You can create backup of your history and favourites and restore it</string>
<string name="just_now">Just now</string>
<string name="yesterday">Yesterday</string>
<string name="long_ago">Long ago</string>
<string name="group">Group</string>
<string name="today">Today</string>
<string name="tap_to_try_again">Tap to try again</string>
<string name="reader_mode_hint">The chosen configuration will be remembered for this manga</string>
<string name="silent">Silent</string>
<string name="captcha_required">CAPTCHA required</string>
<string name="captcha_solve">Solve</string>
<string name="clear_cookies">Clear cookies</string>
<string name="cookies_cleared">All cookies were removed</string>
<string name="chapters_checking_progress">Checking for new chapters: %1$d of %2$d</string>
<string name="clear_feed">Clear feed</string>
<string name="text_clear_updates_feed_prompt">Clear all update history permanently?</string>
<string name="check_for_new_chapters">Check for new chapters</string>
<string name="reverse">Reverse</string>
<string name="sign_in">Sign in</string>
<string name="auth_required">Sign in to view this content</string>
<string name="default_s">Default: %s</string>
<string name="_and_x_more">…and %1$d more</string>
<string name="next">Next</string>
<string name="protect_application_subtitle">Enter a password to start the app with</string>
<string name="confirm">Confirm</string>
<string name="password_length_hint">The password must be 4 characters or more</string>
<string name="search_only_on_s">Search only on %s</string>
<string name="text_clear_search_history_prompt">Remove all recent search queries permanently?</string>
<string name="other">Other</string>
<string name="welcome">Welcome</string>
<string name="backup_saved">Backup saved</string>
<string name="tracker_warning">Some devices have different system behavior, which may break background tasks.</string>
<string name="read_more">Read more</string>
<string name="queued">Queued</string>
<string name="text_downloads_holder">No active downloads</string>
<string name="chapter_is_missing_text">Download or read this missing chapter online.</string>
<string name="chapter_is_missing">The chapter is missing</string>
<string name="about_app_translation_summary">Translate this app</string>
<string name="about_app_translation">Translation</string>
<string name="about_feedback">Feedback</string>
<string name="about_feedback_4pda">Topic on 4PDA</string>
<string name="auth_complete">Authorized</string>
<string name="auth_not_supported_by">Logging in on %s is not supported</string>
<string name="text_clear_cookies_prompt">You will be logged out from all sources</string>
<string name="genres">Genres</string>
<string name="state_finished">Finished</string>
<string name="state_ongoing">Ongoing</string>
<string name="date_format">Date format</string>
<string name="system_default">Default</string>
<string name="exclude_nsfw_from_history">Exclude NSFW manga from history</string>
<string name="error_empty_name">You must enter a name</string>
<string name="show_pages_numbers">Numbered pages</string>
<string name="enabled_sources">Used sources</string>
<string name="available_sources">Available sources</string>
<string name="dynamic_theme">Dynamic theme</string>
<string name="dynamic_theme_summary">Applies a theme created on the color scheme of your wallpaper</string>
<string name="importing_progress">Importing manga: %1$d of %2$d</string>
<string name="screenshots_policy">Screenshot policy</string>
<string name="screenshots_allow">Allow</string>
<string name="screenshots_block_nsfw">Block on NSFW</string>
<string name="screenshots_block_all">Always block</string>
<string name="suggestions">Suggestions</string>
<string name="suggestions_enable">Enable suggestions</string>
<string name="suggestions_summary">Suggest manga based on your preferences</string>
<string name="suggestions_info">All data is analyzed locally on this device. There is no transfer of your personal data to any services</string>
<string name="text_suggestion_holder">Start reading manga and you will get personalized suggestions</string>
<string name="exclude_nsfw_from_suggestions">Do not suggest NSFW manga</string>
<string name="enabled">Enabled</string>
<string name="disabled">Disabled</string>
<string name="filter_load_error">Unable to load genres list</string>
<string name="reset_filter">Reset filter</string>
<string name="find_genre">Find genre</string>
<string name="onboard_text">Select languages which you want to read manga. You can change it later in settings.</string>
<string name="never">Never</string>
<string name="only_using_wifi">Only on Wi-Fi</string>
<string name="always">Always</string>
<string name="preload_pages">Preload pages</string>
<string name="logged_in_as">Logged in as %s</string>
<string name="nsfw">18+</string>
<string name="various_languages">Various languages</string>
<string name="search_chapters">Find chapter</string>
<string name="chapters_empty">No chapters in this manga</string>
<string name="percent_string_pattern">%1$s%%</string>
<string name="appearance">Appearance</string>
<string name="content">Content</string>
<string name="github" translatable="false">GitHub</string>
<string name="discord" translatable="false">Discord</string>
<string name="suggestions_updating">Suggestions updating</string>
<string name="suggestions_excluded_genres">Exclude genres</string>
<string name="suggestions_excluded_genres_summary">Specify genres that you do not want to see in the suggestions</string>
<string name="text_delete_local_manga_batch">Delete selected items from device permanently?</string>
<string name="removal_completed">Removal completed</string>
<string name="batch_manga_save_confirm">Download all selected manga and its chapters\? This can consume a lot of traffic and storage.</string>
<string name="shikimori" translatable="false">Shikimori</string>
<string name="parallel_downloads">Parallel downloads</string>
<string name="download_slowdown">Download slowdown</string>
<string name="download_slowdown_summary">Helps avoid blocking your IP address</string>
<string name="local_manga_processing">Saved manga processing</string>
<string name="chapters_will_removed_background">Chapters will be removed in the background. It can take some time</string>
<string name="canceled">Canceled</string>
<string name="account_already_exists">Account already exists</string>
<string name="back">Back</string>
<string name="sync">Synchronization</string>
<string name="sync_title">Sync your data</string>
<string name="email_enter_hint">Enter your email to continue</string>
<string name="hide">Hide</string>
<string name="new_sources_text">New manga sources are available</string>
<string name="check_new_chapters_title">Check for new chapters and notify about it</string>
<string name="show_notification_new_chapters_on">You will receive notifications about updates of manga you are reading</string>
<string name="show_notification_new_chapters_off">You will not receive notifications but new chapters will be highlighted in the lists</string>
<string name="notifications_enable">Enable notifications</string>
<string name="name">Name</string>
<string name="edit">Edit</string>
<string name="edit_category">Edit category</string>
<string name="tracking">Tracking</string>
<string name="empty_favourite_categories">No favourite categories</string>
<string name="logout">Log out</string>
<string name="bookmark_add">Add bookmark</string>
<string name="bookmark_remove">Remove bookmark</string>
<string name="bookmarks">Bookmarks</string>
<string name="bookmark_removed">Bookmark removed</string>
<string name="bookmark_added">Bookmark added</string>
<string name="undo">Undo</string>
<string name="removed_from_history">Removed from history</string>
<string name="dns_over_https">DNS over HTTPS</string>
<string name="default_mode">Default mode</string>
<string name="detect_reader_mode">Autodetect reader mode</string>
<string name="detect_reader_mode_summary">Automatically detect if manga is webtoon</string>
<string name="disable_battery_optimization">Disable battery optimization</string>
<string name="disable_battery_optimization_summary">Helps with background updates checks</string>
<string name="crash_text">Something went wrong. Please submit a bug report to the developers to help us fix it.</string>
<string name="send">Send</string>
<string name="status_planned">Planned</string>
<string name="status_reading">Reading</string>
<string name="status_re_reading">Re-reading</string>
<string name="status_completed">Completed</string>
<string name="status_on_hold">On hold</string>
<string name="status_dropped">Dropped</string>
<string name="disable_all">Disable all</string>
<string name="use_fingerprint">Use fingerprint if available</string>
<string name="appwidget_shelf_description">Manga from your favourites</string>
<string name="appwidget_recent_description">Your recently read manga</string>
<string name="report">Report</string>
<string name="show_reading_indicators">Show reading progress indicators</string>
<string name="data_deletion">Data deletion</string>
<string name="show_reading_indicators_summary">Show percentage read in history and favourites</string>
<string name="exclude_nsfw_from_history_summary">Manga marked as NSFW will never added to the history and your progress will not be saved</string>
<string name="clear_cookies_summary">Can help in case of some issues. All authorizations will be invalidated</string>
<string name="show_all">Show all</string>
<string name="invalid_domain_message">Invalid domain</string>
<string name="select_range">Select range</string>
<string name="clear_all_history">Clear all history</string>
<string name="last_2_hours">Last 2 hours</string>
<string name="history_cleared">History cleared</string>
<string name="manage">Manage</string>
<string name="no_bookmarks_yet">No bookmarks yet</string>
<string name="no_bookmarks_summary">You can create bookmark while reading manga</string>
<string name="bookmarks_removed">Bookmarks removed</string>
<string name="no_manga_sources">No manga sources</string>
<string name="no_manga_sources_text">Enable manga sources to read manga online</string>
<string name="random">Random</string>
<string name="categories_delete_confirm">Are you sure you want to delete the selected favorite categories?\nAll manga in it will be lost and this cannot be undone.</string>
<string name="reorder">Reorder</string>
<string name="empty">Empty</string>
<string name="changelog">Changelog</string>
<string name="explore">Explore</string>
<string name="confirm_exit">Press "Back" again to exit</string>
<string name="exit_confirmation_summary">Press "Back" twice to exit the app</string>
<string name="exit_confirmation">Exit confirmation</string>
<string name="saved_manga">Saved manga</string>
<string name="pages_cache">Pages cache</string>
<string name="other_cache">Other cache</string>
<string name="storage_usage">Storage usage</string>
<string name="available">Available</string>
<string name="memory_usage_pattern">%s - %s</string>
<string name="enter_email_text">Enter your email to continue</string>
<string name="removed_from_favourites">Removed from favourites</string>
<string name="removed_from_s">Removed from \"%s\"</string>
<string name="options">Options</string>
<string name="not_found_404">Content not found or removed</string>
<string name="downloading_manga">Downloading manga</string>
<string name="download_summary_pattern" translatable="false">&lt;b&gt;%1$s&lt;/b&gt; %2$s</string>
<string name="incognito_mode">Incognito mode</string>
<string name="app_update_available_s">Application update available: %s</string>
<string name="no_chapters">No chapters</string>
<string name="automatic_scroll">Automatic scroll</string>
<string name="off_short">Off</string>
<string name="seconds_pattern">%ss</string>
<string name="reader_info_pattern">Ch. %1$d/%2$d Pg. %3$d/%4$d</string>
<string name="reader_info_bar">Show information bar in reader</string>
<string name="comics_archive">Comics archive</string>
<string name="folder_with_images">Folder with images</string>
<string name="importing_manga">Importing manga</string>
<string name="import_completed">Import completed</string>
<string name="import_completed_hint">You can delete the original file from storage to save space</string>
<string name="import_will_start_soon">Import will start soon</string>
<string name="feed">Feed</string>
<string name="manga_error_description_pattern">Error details:&lt;br&gt;&lt;tt&gt;%1$s&lt;/tt&gt;&lt;br&gt;&lt;br&gt;1. Try to &lt;a href="%2$s"&gt;open manga in a web browser&lt;/a&gt; to ensure it is available on its source&lt;br&gt;2. If it is available, send an error report to the developers.</string>
<string name="history_shortcuts">Show recent manga shortcuts</string>
<string name="history_shortcuts_summary">Make recent manga available by long pressing on application icon</string>
<string name="reader_control_ltr_summary">Tap on the right edge or pressing the right key always switches to the next page</string>
<string name="reader_control_ltr">Ergonomic reader control</string>
<string name="color_correction">Color correction</string>
<string name="brightness">Brightness</string>
<string name="contrast">Contrast</string>
<string name="reset">Reset</string>
<string name="color_correction_hint">The chosen color settings will be remembered for this manga</string>
<string name="text_unsaved_changes_prompt">Save or discard unsaved changes\?</string>
<string name="discard">Discard</string>
<string name="error_no_space_left">No space left on device</string>
<string name="reader_slider">Show page switching slider</string>
</resources>
<string name="app_name" translatable="false">Kotatsu</string>
<string name="close_menu">Close menu</string>
<string name="open_menu">Open menu</string>
<string name="local_storage">Local storage</string>
<string name="favourites">Favourites</string>
<string name="history">History</string>
<string name="error_occurred">An error occurred</string>
<string name="network_error">Could not connect to the Internet</string>
<string name="details">Details</string>
<string name="chapters">Chapters</string>
<string name="list">List</string>
<string name="detailed_list">Detailed list</string>
<string name="grid">Grid</string>
<string name="list_mode">List mode</string>
<string name="settings">Settings</string>
<string name="remote_sources">Remote sources</string>
<string name="loading_">Loading…</string>
<string name="computing_">Computing…</string>
<string name="chapter_d_of_d">Chapter %1$d of %2$d</string>
<string name="close">Close</string>
<string name="try_again">Try again</string>
<string name="clear_history">Clear history</string>
<string name="nothing_found">Nothing found</string>
<string name="history_is_empty">No history yet</string>
<string name="read">Read</string>
<string name="you_have_not_favourites_yet">No favourites yet</string>
<string name="add_to_favourites">Favourite this</string>
<string name="add_new_category">New category</string>
<string name="add">Add</string>
<string name="enter_category_name">Enter category name</string>
<string name="save">Save</string>
<string name="share">Share</string>
<string name="create_shortcut">Create shortcut…</string>
<string name="share_s">Share %s</string>
<string name="search">Search</string>
<string name="search_manga">Search manga</string>
<string name="manga_downloading_">Downloading…</string>
<string name="processing_">Processing…</string>
<string name="download_complete">Downloaded</string>
<string name="downloads">Downloads</string>
<string name="by_name">Name</string>
<string name="popular">Popular</string>
<string name="updated">Updated</string>
<string name="newest">Newest</string>
<string name="by_rating">Rating</string>
<string name="sort_order">Sorting order</string>
<string name="filter">Filter</string>
<string name="theme">Theme</string>
<string name="light">Light</string>
<string name="dark">Dark</string>
<string name="automatic">Follow system</string>
<string name="pages">Pages</string>
<string name="clear">Clear</string>
<string name="text_clear_history_prompt">Clear all reading history permanently?</string>
<string name="remove">Remove</string>
<string name="_s_removed_from_history">\"%s\" removed from history</string>
<string name="_s_deleted_from_local_storage">\"%s\" deleted from local storage</string>
<string name="wait_for_loading_finish">Wait for loading to finish…</string>
<string name="save_page">Save page</string>
<string name="page_saved">Saved</string>
<string name="share_image">Share image</string>
<string name="_import">Import</string>
<string name="delete">Delete</string>
<string name="operation_not_supported">This operation is not supported</string>
<string name="text_file_not_supported">Either pick a ZIP or CBZ file.</string>
<string name="no_description">No description</string>
<string name="history_and_cache">History and cache</string>
<string name="clear_pages_cache">Clear page cache</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="grid_size">Grid size</string>
<string name="search_on_s">Search on %s</string>
<string name="delete_manga">Delete manga</string>
<string name="text_delete_local_manga">Delete \"%s\" from device permanently?</string>
<string name="reader_settings">Reader settings</string>
<string name="switch_pages">Switch pages</string>
<string name="taps_on_edges">Edge taps</string>
<string name="volume_buttons">Volume buttons</string>
<string name="_continue">Continue</string>
<string name="warning">Warning</string>
<string name="network_consumption_warning">This may transfer a lot of data</string>
<string name="dont_ask_again">Don\'t ask again</string>
<string name="cancelling_">Cancelling…</string>
<string name="error">Error</string>
<string name="clear_thumbs_cache">Clear thumbnails cache</string>
<string name="clear_search_history">Clear search history</string>
<string name="search_history_cleared">Cleared</string>
<string name="gestures_only">Gestures only</string>
<string name="internal_storage">Internal storage</string>
<string name="external_storage">External storage</string>
<string name="domain">Domain</string>
<string name="application_update">Check for new versions of the app</string>
<string name="app_update_available">A new version of the app is available</string>
<string name="show_notification_app_update">Show notification if a new version is available</string>
<string name="open_in_browser">Open in web browser</string>
<string name="large_manga_save_confirm">This manga has %s. Save all of it?</string>
<string name="save_manga">Save</string>
<string name="notifications">Notifications</string>
<string name="enabled_d_of_d" tools:ignore="PluralsCandidate">%1$d of %2$d on</string>
<string name="new_chapters">New chapters</string>
<string name="download">Download</string>
<string name="read_from_start">Read from start</string>
<string name="restart">Restart</string>
<string name="notifications_settings">Notifications settings</string>
<string name="notification_sound">Notification sound</string>
<string name="light_indicator">LED indicator</string>
<string name="vibration">Vibration</string>
<string name="favourites_categories">Favourite categories</string>
<string name="categories_">Categories…</string>
<string name="rename">Rename</string>
<string name="category_delete_confirm">Remove the \"%s\" category from your favourites? \nAll manga in it will be lost.</string>
<string name="remove_category">Remove</string>
<string name="text_empty_holder_primary">It\'s kind of empty here…</string>
<string name="text_categories_holder">You can use categories to organize your favourites. Press «+» to create a category</string>
<string name="text_search_holder_secondary">Try to reformulate the query.</string>
<string name="text_history_holder_primary">What you read will be displayed here</string>
<string name="text_history_holder_secondary">Find what to read in side menu.</string>
<string name="text_shelf_holder_primary">Your manga will be displayed here</string>
<string name="text_shelf_holder_secondary">Find what to read in the «Explore» section</string>
<string name="text_local_holder_primary">Save something first</string>
<string name="text_local_holder_secondary">Save it from online sources or import files.</string>
<string name="manga_shelf">Shelf</string>
<string name="recent_manga">Recent</string>
<string name="pages_animation">Page animation</string>
<string name="manga_save_location">Folder for downloads</string>
<string name="not_available">Not available</string>
<string name="cannot_find_available_storage">No available storage</string>
<string name="other_storage">Other storage</string>
<string name="done">Done</string>
<string name="all_favourites">All favourites</string>
<string name="favourites_category_empty">Empty category</string>
<string name="read_later">Read later</string>
<string name="updates">Updates</string>
<string name="text_feed_holder">New chapters of what you are reading is shown here</string>
<string name="search_results">Search results</string>
<string name="related">Related</string>
<string name="new_version_s">New version: %s</string>
<string name="size_s">Size: %s</string>
<string name="waiting_for_network">Waiting for network…</string>
<string name="clear_updates_feed">Clear updates feed</string>
<string name="updates_feed_cleared">Cleared</string>
<string name="rotate_screen">Rotate screen</string>
<string name="update">Update</string>
<string name="feed_will_update_soon">Feed update will start soon</string>
<string name="track_sources">Look for updates</string>
<string name="dont_check">Don\'t check</string>
<string name="enter_password">Enter password</string>
<string name="wrong_password">Wrong password</string>
<string name="protect_application">Protect the app</string>
<string name="protect_application_summary">Ask for password when starting Kotatsu</string>
<string name="repeat_password">Repeat the password</string>
<string name="passwords_mismatch">Mismatching passwords</string>
<string name="about">About</string>
<string name="app_version">Version %s</string>
<string name="check_for_updates">Check for updates</string>
<string name="checking_for_updates">Checking for updates…</string>
<string name="update_check_failed">Could not look for updates</string>
<string name="no_update_available">No updates available</string>
<string name="right_to_left">Right-to-left</string>
<string name="create_category">New category</string>
<string name="scale_mode">Scale mode</string>
<string name="zoom_mode_fit_center">Fit center</string>
<string name="zoom_mode_fit_height">Fit to height</string>
<string name="zoom_mode_fit_width">Fit to width</string>
<string name="zoom_mode_keep_start">Keep at start</string>
<string name="black_dark_theme">Black</string>
<string name="black_dark_theme_summary">Uses less power on AMOLED screens</string>
<string name="backup_restore">Backup and restore</string>
<string name="create_backup">Create data backup</string>
<string name="restore_backup">Restore from backup</string>
<string name="data_restored">Restored</string>
<string name="preparing_">Preparing…</string>
<string name="report_github">Create issue on GitHub</string>
<string name="file_not_found">File not found</string>
<string name="data_restored_success">All data was restored</string>
<string name="data_restored_with_errors">The data was restored, but there are errors</string>
<string name="backup_information">You can create backup of your history and favourites and restore it</string>
<string name="just_now">Just now</string>
<string name="yesterday">Yesterday</string>
<string name="long_ago">Long ago</string>
<string name="group">Group</string>
<string name="today">Today</string>
<string name="tap_to_try_again">Tap to try again</string>
<string name="reader_mode_hint">The chosen configuration will be remembered for this manga</string>
<string name="silent">Silent</string>
<string name="captcha_required">CAPTCHA required</string>
<string name="captcha_solve">Solve</string>
<string name="clear_cookies">Clear cookies</string>
<string name="cookies_cleared">All cookies were removed</string>
<string name="chapters_checking_progress">Checking for new chapters: %1$d of %2$d</string>
<string name="clear_feed">Clear feed</string>
<string name="text_clear_updates_feed_prompt">Clear all update history permanently?</string>
<string name="check_for_new_chapters">Check for new chapters</string>
<string name="reverse">Reverse</string>
<string name="sign_in">Sign in</string>
<string name="auth_required">Sign in to view this content</string>
<string name="default_s">Default: %s</string>
<string name="_and_x_more">…and %1$d more</string>
<string name="next">Next</string>
<string name="protect_application_subtitle">Enter a password to start the app with</string>
<string name="confirm">Confirm</string>
<string name="password_length_hint">The password must be 4 characters or more</string>
<string name="search_only_on_s">Search only on %s</string>
<string name="text_clear_search_history_prompt">Remove all recent search queries permanently?</string>
<string name="other">Other</string>
<string name="welcome">Welcome</string>
<string name="backup_saved">Backup saved</string>
<string name="tracker_warning">Some devices have different system behavior, which may break background tasks.</string>
<string name="read_more">Read more</string>
<string name="queued">Queued</string>
<string name="text_downloads_holder">No active downloads</string>
<string name="chapter_is_missing_text">Download or read this missing chapter online.</string>
<string name="chapter_is_missing">The chapter is missing</string>
<string name="about_app_translation_summary">Translate this app</string>
<string name="about_app_translation">Translation</string>
<string name="about_feedback">Feedback</string>
<string name="about_feedback_4pda">Topic on 4PDA</string>
<string name="auth_complete">Authorized</string>
<string name="auth_not_supported_by">Logging in on %s is not supported</string>
<string name="text_clear_cookies_prompt">You will be logged out from all sources</string>
<string name="genres">Genres</string>
<string name="state_finished">Finished</string>
<string name="state_ongoing">Ongoing</string>
<string name="date_format">Date format</string>
<string name="system_default">Default</string>
<string name="exclude_nsfw_from_history">Exclude NSFW manga from history</string>
<string name="error_empty_name">You must enter a name</string>
<string name="show_pages_numbers">Numbered pages</string>
<string name="enabled_sources">Used sources</string>
<string name="available_sources">Available sources</string>
<string name="dynamic_theme">Dynamic theme</string>
<string name="dynamic_theme_summary">Applies a theme created on the color scheme of your wallpaper</string>
<string name="importing_progress">Importing manga: %1$d of %2$d</string>
<string name="screenshots_policy">Screenshot policy</string>
<string name="screenshots_allow">Allow</string>
<string name="screenshots_block_nsfw">Block on NSFW</string>
<string name="screenshots_block_all">Always block</string>
<string name="suggestions">Suggestions</string>
<string name="suggestions_enable">Enable suggestions</string>
<string name="suggestions_summary">Suggest manga based on your preferences</string>
<string name="suggestions_info">All data is analyzed locally on this device. There is no transfer of your personal data to any services</string>
<string name="text_suggestion_holder">Start reading manga and you will get personalized suggestions</string>
<string name="exclude_nsfw_from_suggestions">Do not suggest NSFW manga</string>
<string name="enabled">Enabled</string>
<string name="disabled">Disabled</string>
<string name="filter_load_error">Unable to load genres list</string>
<string name="reset_filter">Reset filter</string>
<string name="find_genre">Find genre</string>
<string name="onboard_text">Select languages which you want to read manga. You can change it later in settings.</string>
<string name="never">Never</string>
<string name="only_using_wifi">Only on Wi-Fi</string>
<string name="always">Always</string>
<string name="preload_pages">Preload pages</string>
<string name="logged_in_as">Logged in as %s</string>
<string name="nsfw">18+</string>
<string name="various_languages">Various languages</string>
<string name="search_chapters">Find chapter</string>
<string name="chapters_empty">No chapters in this manga</string>
<string name="percent_string_pattern">%1$s%%</string>
<string name="appearance">Appearance</string>
<string name="content">Content</string>
<string name="github" translatable="false">GitHub</string>
<string name="discord" translatable="false">Discord</string>
<string name="suggestions_updating">Suggestions updating</string>
<string name="suggestions_excluded_genres">Exclude genres</string>
<string name="suggestions_excluded_genres_summary">Specify genres that you do not want to see in the suggestions</string>
<string name="text_delete_local_manga_batch">Delete selected items from device permanently?</string>
<string name="removal_completed">Removal completed</string>
<string name="batch_manga_save_confirm">Download all selected manga and its chapters\? This can consume a lot of traffic and storage.</string>
<string name="shikimori" translatable="false">Shikimori</string>
<string name="parallel_downloads">Parallel downloads</string>
<string name="download_slowdown">Download slowdown</string>
<string name="download_slowdown_summary">Helps avoid blocking your IP address</string>
<string name="local_manga_processing">Saved manga processing</string>
<string name="chapters_will_removed_background">Chapters will be removed in the background. It can take some time</string>
<string name="canceled">Canceled</string>
<string name="account_already_exists">Account already exists</string>
<string name="back">Back</string>
<string name="sync">Synchronization</string>
<string name="sync_title">Sync your data</string>
<string name="email_enter_hint">Enter your email to continue</string>
<string name="hide">Hide</string>
<string name="new_sources_text">New manga sources are available</string>
<string name="check_new_chapters_title">Check for new chapters and notify about it</string>
<string name="show_notification_new_chapters_on">You will receive notifications about updates of manga you are reading</string>
<string name="show_notification_new_chapters_off">You will not receive notifications but new chapters will be highlighted in the lists</string>
<string name="notifications_enable">Enable notifications</string>
<string name="name">Name</string>
<string name="edit">Edit</string>
<string name="edit_category">Edit category</string>
<string name="tracking">Tracking</string>
<string name="empty_favourite_categories">No favourite categories</string>
<string name="logout">Log out</string>
<string name="bookmark_add">Add bookmark</string>
<string name="bookmark_remove">Remove bookmark</string>
<string name="bookmarks">Bookmarks</string>
<string name="bookmark_removed">Bookmark removed</string>
<string name="bookmark_added">Bookmark added</string>
<string name="undo">Undo</string>
<string name="removed_from_history">Removed from history</string>
<string name="dns_over_https">DNS over HTTPS</string>
<string name="default_mode">Default mode</string>
<string name="detect_reader_mode">Autodetect reader mode</string>
<string name="detect_reader_mode_summary">Automatically detect if manga is webtoon</string>
<string name="disable_battery_optimization">Disable battery optimization</string>
<string name="disable_battery_optimization_summary">Helps with background updates checks</string>
<string name="crash_text">Something went wrong. Please submit a bug report to the developers to help us fix it.</string>
<string name="send">Send</string>
<string name="status_planned">Planned</string>
<string name="status_reading">Reading</string>
<string name="status_re_reading">Re-reading</string>
<string name="status_completed">Completed</string>
<string name="status_on_hold">On hold</string>
<string name="status_dropped">Dropped</string>
<string name="disable_all">Disable all</string>
<string name="use_fingerprint">Use fingerprint if available</string>
<string name="appwidget_shelf_description">Manga from your favourites</string>
<string name="appwidget_recent_description">Your recently read manga</string>
<string name="report">Report</string>
<string name="show_reading_indicators">Show reading progress indicators</string>
<string name="data_deletion">Data deletion</string>
<string name="show_reading_indicators_summary">Show percentage read in history and favourites</string>
<string name="exclude_nsfw_from_history_summary">Manga marked as NSFW will never added to the history and your progress will not be saved</string>
<string name="clear_cookies_summary">Can help in case of some issues. All authorizations will be invalidated</string>
<string name="show_all">Show all</string>
<string name="invalid_domain_message">Invalid domain</string>
<string name="select_range">Select range</string>
<string name="clear_all_history">Clear all history</string>
<string name="last_2_hours">Last 2 hours</string>
<string name="history_cleared">History cleared</string>
<string name="manage">Manage</string>
<string name="no_bookmarks_yet">No bookmarks yet</string>
<string name="no_bookmarks_summary">You can create bookmark while reading manga</string>
<string name="bookmarks_removed">Bookmarks removed</string>
<string name="no_manga_sources">No manga sources</string>
<string name="no_manga_sources_text">Enable manga sources to read manga online</string>
<string name="random">Random</string>
<string name="categories_delete_confirm">Are you sure you want to delete the selected favorite categories?\nAll manga in it will be lost and this cannot be undone.</string>
<string name="reorder">Reorder</string>
<string name="empty">Empty</string>
<string name="changelog">Changelog</string>
<string name="explore">Explore</string>
<string name="confirm_exit">Press "Back" again to exit</string>
<string name="exit_confirmation_summary">Press "Back" twice to exit the app</string>
<string name="exit_confirmation">Exit confirmation</string>
<string name="saved_manga">Saved manga</string>
<string name="pages_cache">Pages cache</string>
<string name="other_cache">Other cache</string>
<string name="storage_usage">Storage usage</string>
<string name="available">Available</string>
<string name="memory_usage_pattern">%s - %s</string>
<string name="enter_email_text">Enter your email to continue</string>
<string name="removed_from_favourites">Removed from favourites</string>
<string name="removed_from_s">Removed from \"%s\"</string>
<string name="options">Options</string>
<string name="not_found_404">Content not found or removed</string>
<string name="downloading_manga">Downloading manga</string>
<string name="download_summary_pattern" translatable="false">&lt;b&gt;%1$s&lt;/b&gt; %2$s</string>
<string name="incognito_mode">Incognito mode</string>
<string name="app_update_available_s">Application update available: %s</string>
<string name="no_chapters">No chapters</string>
<string name="automatic_scroll">Automatic scroll</string>
<string name="off_short">Off</string>
<string name="seconds_pattern">%ss</string>
<string name="reader_info_pattern">Ch. %1$d/%2$d Pg. %3$d/%4$d</string>
<string name="reader_info_bar">Show information bar in reader</string>
<string name="comics_archive">Comics archive</string>
<string name="folder_with_images">Folder with images</string>
<string name="importing_manga">Importing manga</string>
<string name="import_completed">Import completed</string>
<string name="import_completed_hint">You can delete the original file from storage to save space</string>
<string name="import_will_start_soon">Import will start soon</string>
<string name="feed">Feed</string>
<string name="manga_error_description_pattern">Error details:&lt;br&gt;&lt;tt&gt;%1$s&lt;/tt&gt;&lt;br&gt;&lt;br&gt;1. Try to &lt;a href="%2$s"&gt;open manga in a web browser&lt;/a&gt; to ensure it is available on its source&lt;br&gt;2. If it is available, send an error report to the developers.</string>
<string name="history_shortcuts">Show recent manga shortcuts</string>
<string name="history_shortcuts_summary">Make recent manga available by long pressing on application icon</string>
<string name="reader_control_ltr_summary">Tap on the right edge or pressing the right key always switches to the next page</string>
<string name="reader_control_ltr">Ergonomic reader control</string>
<string name="color_correction">Color correction</string>
<string name="brightness">Brightness</string>
<string name="contrast">Contrast</string>
<string name="reset">Reset</string>
<string name="color_correction_hint">The chosen color settings will be remembered for this manga</string>
<string name="text_unsaved_changes_prompt">Save or discard unsaved changes\?</string>
<string name="discard">Discard</string>
<string name="error_no_space_left">No space left on device</string>
<string name="reader_slider">Show page switching slider</string>
<string name="webtoon_zoom">Webtoon zoom</string>
<string name="webtoon_zoom_summary">Allow zoom in/zoom out gesture in webtoon mode (beta)</string>
</resources>

View File

@@ -40,6 +40,11 @@
android:key="reader_animation"
android:title="@string/pages_animation" />
<SwitchPreferenceCompat
android:defaultValue="true"
android:key="webtoon_zoom"
android:title="@string/webtoon_zoom" />
<SwitchPreferenceCompat
android:defaultValue="true"
android:key="reader_bar"