From 41946099290bda08db4b8bc5c07af9935f93a01f Mon Sep 17 00:00:00 2001 From: Koitharu Date: Mon, 29 Jan 2024 11:32:05 +0200 Subject: [PATCH] Editor actions fixes --- .../kotatsu/reader/data/TapGridSettings.kt | 56 +- .../reader/ui/tapgrid/TapGridDispatcher.kt | 5 + .../reader/ReaderTapGridConfigActivity.kt | 29 +- app/src/main/res/menu/opt_tap_grid_config.xml | 11 + app/src/main/res/values/strings.xml | 1117 +++++++++-------- 5 files changed, 641 insertions(+), 577 deletions(-) create mode 100644 app/src/main/res/menu/opt_tap_grid_config.xml diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/reader/data/TapGridSettings.kt b/app/src/main/kotlin/org/koitharu/kotatsu/reader/data/TapGridSettings.kt index d26b9fb7b..740f6493d 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/reader/data/TapGridSettings.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/reader/data/TapGridSettings.kt @@ -1,6 +1,7 @@ package org.koitharu.kotatsu.reader.data import android.content.Context +import android.content.SharedPreferences import androidx.core.content.edit import dagger.hilt.android.qualifiers.ApplicationContext import kotlinx.coroutines.Dispatchers @@ -14,15 +15,17 @@ import javax.inject.Inject class TapGridSettings @Inject constructor(@ApplicationContext context: Context) { - private val prefs = context.getSharedPreferences("tap_grid", Context.MODE_PRIVATE) + private val prefs = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE) + + init { + if (!prefs.getBoolean(KEY_INIT, false)) { + reset() + } + } fun getTapAction(area: TapGridArea, isLongTap: Boolean): TapAction? { val key = getPrefKey(area, isLongTap) - return if (!isLongTap && key !in prefs) { - getDefaultTapAction(area) - } else { - prefs.getEnumValue(key, TapAction::class.java) - } + return prefs.getEnumValue(key, TapAction::class.java) } fun setTapAction(area: TapGridArea, isLongTap: Boolean, action: TapAction?) { @@ -30,24 +33,41 @@ class TapGridSettings @Inject constructor(@ApplicationContext context: Context) prefs.edit { putEnumValue(key, action) } } + fun reset() { + prefs.edit { + clear() + initDefaultActions(this) + putBoolean(KEY_INIT, true) + } + } + fun observe() = prefs.observe().flowOn(Dispatchers.IO) private fun getPrefKey(area: TapGridArea, isLongTap: Boolean): String = if (isLongTap) { - area.name + "_long" + area.name + SUFFIX_LONG } else { area.name } - private fun getDefaultTapAction(area: TapGridArea): TapAction = when (area) { - TapGridArea.TOP_LEFT, - TapGridArea.TOP_CENTER, - TapGridArea.CENTER_LEFT, - TapGridArea.BOTTOM_LEFT -> TapAction.PAGE_PREV - - TapGridArea.CENTER -> TapAction.TOGGLE_UI - TapGridArea.TOP_RIGHT, - TapGridArea.CENTER_RIGHT, - TapGridArea.BOTTOM_CENTER, - TapGridArea.BOTTOM_RIGHT -> TapAction.PAGE_NEXT + private fun initDefaultActions(editor: SharedPreferences.Editor) { + editor.putEnumValue(getPrefKey(TapGridArea.TOP_LEFT, false), TapAction.PAGE_PREV) + editor.putEnumValue(getPrefKey(TapGridArea.TOP_CENTER, false), TapAction.PAGE_PREV) + editor.putEnumValue(getPrefKey(TapGridArea.CENTER_LEFT, false), TapAction.PAGE_PREV) + editor.putEnumValue(getPrefKey(TapGridArea.BOTTOM_LEFT, false), TapAction.PAGE_PREV) + + editor.putEnumValue(getPrefKey(TapGridArea.CENTER, false), TapAction.TOGGLE_UI) + editor.putEnumValue(getPrefKey(TapGridArea.CENTER, true), TapAction.SHOW_MENU) + + editor.putEnumValue(getPrefKey(TapGridArea.TOP_RIGHT, false), TapAction.PAGE_NEXT) + editor.putEnumValue(getPrefKey(TapGridArea.CENTER_RIGHT, false), TapAction.PAGE_NEXT) + editor.putEnumValue(getPrefKey(TapGridArea.BOTTOM_CENTER, false), TapAction.PAGE_NEXT) + editor.putEnumValue(getPrefKey(TapGridArea.BOTTOM_RIGHT, false), TapAction.PAGE_NEXT) + } + + private companion object { + + private const val PREFS_NAME = "tap_grid" + private const val KEY_INIT = "_init" + private const val SUFFIX_LONG = "_long" } } diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/reader/ui/tapgrid/TapGridDispatcher.kt b/app/src/main/kotlin/org/koitharu/kotatsu/reader/ui/tapgrid/TapGridDispatcher.kt index 60108c372..96ec3d580 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/reader/ui/tapgrid/TapGridDispatcher.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/reader/ui/tapgrid/TapGridDispatcher.kt @@ -35,6 +35,11 @@ class TapGridDispatcher( return listener.onGridTouch(getArea(event.rawX, event.rawY)) } + override fun onDoubleTapEvent(e: MotionEvent): Boolean { + isDispatching = false // ignore long press after double tap + return super.onDoubleTapEvent(e) + } + override fun onLongPress(event: MotionEvent) { if (isDispatching) { listener.onGridLongTouch(getArea(event.rawX, event.rawY)) diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/settings/reader/ReaderTapGridConfigActivity.kt b/app/src/main/kotlin/org/koitharu/kotatsu/settings/reader/ReaderTapGridConfigActivity.kt index b1c4d0848..d3e08ef5a 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/settings/reader/ReaderTapGridConfigActivity.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/settings/reader/ReaderTapGridConfigActivity.kt @@ -5,6 +5,8 @@ import android.graphics.drawable.ColorDrawable import android.graphics.drawable.Drawable import android.graphics.drawable.LayerDrawable import android.os.Bundle +import android.view.Menu +import android.view.MenuItem import android.view.View import android.widget.TextView import androidx.core.graphics.ColorUtils @@ -58,6 +60,22 @@ class ReaderTapGridConfigActivity : BaseActivity { + confirmReset() + true + } + + else -> super.onOptionsItemSelected(item) + } + } + override fun onWindowInsetsChanged(insets: Insets) { viewBinding.root.updatePadding( left = insets.left, @@ -118,12 +136,21 @@ class ReaderTapGridConfigActivity : BaseActivity + tapGridSettings.reset() + }.show() + } + private fun createBackground(action: TapAction?): Drawable? { val ripple = getThemeDrawable(materialR.attr.selectableItemBackground) return if (action == null) { ripple } else { - LayerDrawable(arrayOf(ripple, ColorDrawable(ColorUtils.setAlphaComponent(action.color, 60)))) + LayerDrawable(arrayOf(ripple, ColorDrawable(ColorUtils.setAlphaComponent(action.color, 40)))) } } } diff --git a/app/src/main/res/menu/opt_tap_grid_config.xml b/app/src/main/res/menu/opt_tap_grid_config.xml new file mode 100644 index 000000000..5ce3e7652 --- /dev/null +++ b/app/src/main/res/menu/opt_tap_grid_config.xml @@ -0,0 +1,11 @@ + + + + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index a921a8a8c..5c4bcaf66 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,563 +1,563 @@ - Kotatsu - Local storage - Favourites - History - An error occurred - Network error - Details - Chapters - List - Detailed list - Grid - List mode - Settings - Manga sources - Loading… - Computing… - Chapter %1$d of %2$d - Close - Try again - Clear history - Nothing found - No history yet - Read - No favourites yet - Favourite this - New category - Add - Save - Share - Create shortcut… - Share %s - Search - Search manga - Downloading… - Processing… - Downloaded - Downloads - Name - Popular - Updated - Newest - Rating - Sorting order - Filter - Theme - Light - Dark - - Follow system - Pages - Clear - Clear all reading history permanently? - Remove - \"%s\" deleted from local storage - Save page - Saved - Share image - Import - Delete - This operation is not supported - Either pick a ZIP or CBZ file. - No description - Clear page cache - B|kB|MB|GB|TB - Standard - Webtoon - Read mode - Grid size - Search on %s - Delete manga - Permanently delete \"%s\" from device? - Reader settings - Switch pages - Edge taps - Volume buttons - Continue - Error - Clear thumbnails cache - Clear search history - Cleared - Gestures only - Internal storage - External storage - Domain - A new version of the app is available - Open in web browser - This manga has %s. Save all of it? - Save - Notifications - %1$d of %2$d on - New chapters - Download - Notifications settings - Notification sound - LED indicator - Vibration - Favourite categories - Remove - It\'s kind of empty here… - Try to reformulate the query. - What you read will be displayed here - Find what to read in the «Explore» section - Your manga will be displayed here - Find what to read in the «Explore» section - Save something first - Save something from an online catalog or import it from a file. - Shelf - Recent - Page animation - Downloads folder - Not available - No available storage - Other storage - Done - All favourites - Empty category - Read later - Updates - New chapters of what you are reading are shown here - Search results - New version: %s - Size: %s - Clear updates feed - Cleared - Rotate screen - Update - Feed update will start soon - Look for updates - Don\'t check - Enter password - Wrong password - Protect the app - Ask for password when starting Kotatsu - Repeat the password - Mismatching passwords - About - Version %s - Check for updates - No updates available - Right-to-left - New category - Scale mode - Fit center - Fit to height - Fit to width - Keep at start - Black - Uses less power on AMOLED screens - Backup and restore - Create data backup - Restore from backup - Restored - Preparing… - File not found - All data was restored - The data was restored, but there are errors - You can create backup of your history and favourites and restore it - Just now - Yesterday - Long ago - Group - Today - Tap to try again - The chosen configuration will be remembered for this manga - Silent - CAPTCHA required - Solve - Clear cookies - All cookies were removed - Clear feed - Clear all update history permanently? - Check for new chapters - Reverse - Sign in - Sign in to view this content - Default: %s - Next - Enter a password to start the app with - Confirm - The password must be 4 characters or more - Remove all recent search queries permanently? - Welcome - Backup saved - Some devices have different system behavior, which may break background tasks. - Read more - Queued - The chapter is missing - Translate this app - Translation - Authorized - Logging in on %s is not supported - You will be logged out from all sources - Genres - Finished - Ongoing - Default - Exclude NSFW manga from history - Numbered pages - Used sources - Available sources - Screenshot policy - Allow - Block on NSFW - Always block - Suggestions - Enable suggestions - Suggest manga based on your preferences - All data is only analyzed locally on this device and never sent anywhere. - Start reading manga and you will get personalized suggestions - Do not suggest NSFW manga - Enabled - Disabled - Unable to load genres list - Reset filter - Select languages which you want to read manga. You can change it later in settings. - Never - Only on Wi-Fi - Always - Preload pages - Logged in as %s - 18+ - Various languages - Find chapter - No chapters in this manga - %1$s%% - Appearance - Suggestions updating - Exclude genres - Specify genres that you do not want to see in the suggestions - Delete selected items from device permanently? - Removal completed - Shikimori - AniList - Download slowdown - Helps avoid blocking your IP address - Saved manga processing - Chapters will be removed in the background - Canceled - Account already exists - Back - Synchronization - Sync your data - Enter your email to continue - Hide - New manga sources are available - Check for new chapters and notify about it - You will receive notifications about updates of manga you are reading - You will not receive notifications but new chapters will be highlighted in the lists - Enable notifications - Name - Edit - Edit category - Tracking - No favourite categories - Log out - Add bookmark - Remove bookmark - Bookmarks - Bookmark removed - Bookmark added - Undo - Removed from history - DNS over HTTPS - Default mode - Autodetect reader mode - Automatically detect if manga is webtoon - Disable battery optimization - Helps with background updates checks - Something went wrong. Please submit a bug report to the developers to help us fix it. - Send - Planned - Reading - Re-reading - Completed - On hold - Dropped - Disable all - Use fingerprint if available - Manga from your favourites - Your recently read manga - Report - Show reading progress indicators - Data deletion - Show percentage read in history and favourites - Manga marked as NSFW will never be added to the history and your progress will not be saved - Can help in case of some issues. All authorizations will be invalidated - Show all - Invalid domain - Select range - Clear all history - Last 2 hours - History cleared - Manage - No bookmarks yet - You can create bookmark while reading manga - Bookmarks removed - No manga sources - Enable manga sources to read manga online - Random - Are you sure you want to delete the selected favorite categories?\nAll manga in it will be lost and this cannot be undone. - Reorder - Empty - Explore - Press "Back" again to exit - Press "Back" twice to exit the app - Exit confirmation - Saved manga - Pages cache - Other cache - Storage usage - Available - %s - %s - Removed from favourites - Options - Content not found or removed - %1$s · %2$s - Incognito mode - No chapters - Automatic scroll - Ch. %1$d/%2$d Pg. %3$d/%4$d - Show information bar in reader - Comics archive - Folder with images - Importing manga - Import completed - You can delete the original file from storage to save space - Import will start soon - Feed - Error details:<br><tt>%1$s</tt><br><br>1. Try to <a href="%2$s">open manga in a web browser</a> to ensure it is available on its source<br>2. Make sure you are using the <a href="kotatsu://about">latest version of Kotatsu</a><br>3. If it is available, send an error report to the developers. - Show recent manga shortcuts - Make recent manga available by long pressing on application icon - Tap on the right edge or pressing the right key always switches to the next page - Ergonomic reader control - Color correction - Brightness - Contrast - Reset - The chosen color settings will be remembered for this manga - Save or discard unsaved changes\? - Discard - No space left on device - Show page switching slider - Webtoon zoom - Different languages - Network is not available - Turn on Wi-Fi or mobile network to read manga online - Server side error (%1$d). Please try again later - Also clear information about new chapters - Compact - MyAnimeList - Source disabled - Content preloading - Mark as current - Language - Share logs - Enable logging - Record some actions for debug purposes. Don\'t turn it on if you\'re not sure what you\'re doing - Show suspicious content - Dynamic - Color scheme - Show in grid view - Miku - Asuka - Mion - Rikka - Sakura - Mamimi - Kanade - There is nothing here - To track reading progress, select Menu → Track on the manga details screen. - Services - Allow unstable updates - Receive notifications about unstable builds - Download started - Got it - Tap and hold on an item to reorder them - UserAgent header - Please restart the application to apply these changes - You can select one or more .cbz or .zip files, each file will be recognized as a separate manga. - You can select a directory with archives or images. Each archive (or subdirectory) will be recognized as a chapter. - Speed - Import a previously created backup of user data - Show on the Shelf - You can sign in into an existing account or create a new one - Find similar - Synchronization settings - Server address - You can use a self-hosted synchronization server or a default one. Don\'t change this if you\'re not sure what you\'re doing. - Ignore SSL errors - Choose mirror automatically - Automatically switch domains for manga sources on errors if mirrors are available - Pause - Resume - Paused - - Remove completed - Cancel all - Download only via Wi-Fi - Stop downloading when switching to a mobile network - Suggestion: %s - Sometimes show notifications with suggested manga - More - Enable - No thanks - All active downloads will be cancelled, partially downloaded data will be lost - Your downloads history will be permanently deleted - You don\'t have any downloads - Downloads have been resumed - Downloads have been paused - Downloads have been removed - Downloads have been cancelled - Do you want to receive personalized manga suggestions? - Translations - WebView not available: check if WebView provider is installed - Clear network cache - Type - Address - Port - Proxy - Invalid value - %1$s (%2$s) - Downloaded - Images optimization proxy - Use the wsrv.nl service to reduce traffic usage and speed up image loading if possible - Invert colors - Username - Password - Authorization (optional) - Invalid port number - Network - Data and privacy - Restore previously created backup - Allow zoom in gesture in webtoon mode - Show the current time and reading progress at the top of the screen - Show page numbers in bottom corner - Animate page switching - Press and hold the Read button to see more options - Clear cookies for specified domain only. In most cases will invalidate authorization - All chapters with translation %s - The whole manga - First %s - Next unread %s - All unread chapters - All unread chapters (%s) - Select chapters manually - Custom directory - Pick custom directory - You have no access to this file or directory - Local manga directories - Description - This month - Voice search - Related manga - Light - Dark - White - Black - Background - Data was not restored - Make sure you have selected the correct backup file - Manage categories - Do not update suggestions using metered network connections - Do not check for new chapters using metered network connections - Enter manga title, genre or source name - Progress - Added - View list - Show - %s requires a captcha to be resolved to work properly - Languages - Unknown - In progress - Disable NSFW - Too many requests. Try again later - Show a list of related manga. In some cases it may be inaccurate or missing - Advanced - Default section - Manga list - Invalid data is returned or file is corrupted - On device - Directories - Main screen sections - No more items can be added - To top - Moved to top - Zoom out - Zoom in - Show zoom buttons - Whether to show zoom control buttons in the bottom right corner - Keep screen on - Do not turn the screen off while you\'re reading manga - Dropped - Reduces banding, but may impact performance - 32-bit color mode - Suggest new sources after app update - Prompt to enable newly added sources after updating the application - List options - Relevance - Categories - Online variant - Periodic backups - Backup creation frequency - Every day - Every 2 days - Once per week - Twice per month - Once per month - Enable periodic backups - Backups output directory - Last successful backup: %s - x%.1f - Lock screen rotation - Manga - Hentai - Comics - Other - %1$s, %2$s - Sources catalog - Source enabled - There are no sources available in this section, or all of it might have been already added.\nStay tuned - No available manga sources found by your query - Catalog - Manage sources - Manual - Available: %1$d - Disable NSFW sources and hide adult manga from list if possible - Paused - Reduce memory consumption (beta) - Reduce offscreen pages quality to use less memory - State - Filtering by multiple genres is not supported by this manga source - Filtering by multiple states is not supported by this manga source - Search is not supported by this manga source - You can enable download slowdown for each manga source individually in the source settings if you are having problems with server-side blocking - Skip - Grayscale - Globally - This manga - These settings can be applied globally or only to the current manga. If applied globally, individual settings will not be overridden. - Apply - Filtering by both genres and locale is not supported by this source - Filtering by both genres and states is not supported by this source - Start typing the genre name - Might help with getting the download started if you have any issues with it - Please select which content sources you would like to enable. This can also be configured later in settings - Login to sync account - Restore - Backup date: %s - Upcoming - Name reversed - Content rating - Exclude genres - Safe - Suggestive - Adult - Default tab - Mark as completed - Mark selected manga as completely read?\n\nWarning: current reading progress will be lost. + Kotatsu + Local storage + Favourites + History + An error occurred + Network error + Details + Chapters + List + Detailed list + Grid + List mode + Settings + Manga sources + Loading… + Computing… + Chapter %1$d of %2$d + Close + Try again + Clear history + Nothing found + No history yet + Read + No favourites yet + Favourite this + New category + Add + Save + Share + Create shortcut… + Share %s + Search + Search manga + Downloading… + Processing… + Downloaded + Downloads + Name + Popular + Updated + Newest + Rating + Sorting order + Filter + Theme + Light + Dark + + Follow system + Pages + Clear + Clear all reading history permanently? + Remove + \"%s\" deleted from local storage + Save page + Saved + Share image + Import + Delete + This operation is not supported + Either pick a ZIP or CBZ file. + No description + Clear page cache + B|kB|MB|GB|TB + Standard + Webtoon + Read mode + Grid size + Search on %s + Delete manga + Permanently delete \"%s\" from device? + Reader settings + Switch pages + Edge taps + Volume buttons + Continue + Error + Clear thumbnails cache + Clear search history + Cleared + Gestures only + Internal storage + External storage + Domain + A new version of the app is available + Open in web browser + This manga has %s. Save all of it? + Save + Notifications + %1$d of %2$d on + New chapters + Download + Notifications settings + Notification sound + LED indicator + Vibration + Favourite categories + Remove + It\'s kind of empty here… + Try to reformulate the query. + What you read will be displayed here + Find what to read in the «Explore» section + Your manga will be displayed here + Find what to read in the «Explore» section + Save something first + Save something from an online catalog or import it from a file. + Shelf + Recent + Page animation + Downloads folder + Not available + No available storage + Other storage + Done + All favourites + Empty category + Read later + Updates + New chapters of what you are reading are shown here + Search results + New version: %s + Size: %s + Clear updates feed + Cleared + Rotate screen + Update + Feed update will start soon + Look for updates + Don\'t check + Enter password + Wrong password + Protect the app + Ask for password when starting Kotatsu + Repeat the password + Mismatching passwords + About + Version %s + Check for updates + No updates available + Right-to-left + New category + Scale mode + Fit center + Fit to height + Fit to width + Keep at start + Black + Uses less power on AMOLED screens + Backup and restore + Create data backup + Restore from backup + Restored + Preparing… + File not found + All data was restored + The data was restored, but there are errors + You can create backup of your history and favourites and restore it + Just now + Yesterday + Long ago + Group + Today + Tap to try again + The chosen configuration will be remembered for this manga + Silent + CAPTCHA required + Solve + Clear cookies + All cookies were removed + Clear feed + Clear all update history permanently? + Check for new chapters + Reverse + Sign in + Sign in to view this content + Default: %s + Next + Enter a password to start the app with + Confirm + The password must be 4 characters or more + Remove all recent search queries permanently? + Welcome + Backup saved + Some devices have different system behavior, which may break background tasks. + Read more + Queued + The chapter is missing + Translate this app + Translation + Authorized + Logging in on %s is not supported + You will be logged out from all sources + Genres + Finished + Ongoing + Default + Exclude NSFW manga from history + Numbered pages + Used sources + Available sources + Screenshot policy + Allow + Block on NSFW + Always block + Suggestions + Enable suggestions + Suggest manga based on your preferences + All data is only analyzed locally on this device and never sent anywhere. + Start reading manga and you will get personalized suggestions + Do not suggest NSFW manga + Enabled + Disabled + Unable to load genres list + Reset filter + Select languages which you want to read manga. You can change it later in settings. + Never + Only on Wi-Fi + Always + Preload pages + Logged in as %s + 18+ + Various languages + Find chapter + No chapters in this manga + %1$s%% + Appearance + Suggestions updating + Exclude genres + Specify genres that you do not want to see in the suggestions + Delete selected items from device permanently? + Removal completed + Shikimori + AniList + Download slowdown + Helps avoid blocking your IP address + Saved manga processing + Chapters will be removed in the background + Canceled + Account already exists + Back + Synchronization + Sync your data + Enter your email to continue + Hide + New manga sources are available + Check for new chapters and notify about it + You will receive notifications about updates of manga you are reading + You will not receive notifications but new chapters will be highlighted in the lists + Enable notifications + Name + Edit + Edit category + Tracking + No favourite categories + Log out + Add bookmark + Remove bookmark + Bookmarks + Bookmark removed + Bookmark added + Undo + Removed from history + DNS over HTTPS + Default mode + Autodetect reader mode + Automatically detect if manga is webtoon + Disable battery optimization + Helps with background updates checks + Something went wrong. Please submit a bug report to the developers to help us fix it. + Send + Planned + Reading + Re-reading + Completed + On hold + Dropped + Disable all + Use fingerprint if available + Manga from your favourites + Your recently read manga + Report + Show reading progress indicators + Data deletion + Show percentage read in history and favourites + Manga marked as NSFW will never be added to the history and your progress will not be saved + Can help in case of some issues. All authorizations will be invalidated + Show all + Invalid domain + Select range + Clear all history + Last 2 hours + History cleared + Manage + No bookmarks yet + You can create bookmark while reading manga + Bookmarks removed + No manga sources + Enable manga sources to read manga online + Random + Are you sure you want to delete the selected favorite categories?\nAll manga in it will be lost and this cannot be undone. + Reorder + Empty + Explore + Press "Back" again to exit + Press "Back" twice to exit the app + Exit confirmation + Saved manga + Pages cache + Other cache + Storage usage + Available + %s - %s + Removed from favourites + Options + Content not found or removed + %1$s · %2$s + Incognito mode + No chapters + Automatic scroll + Ch. %1$d/%2$d Pg. %3$d/%4$d + Show information bar in reader + Comics archive + Folder with images + Importing manga + Import completed + You can delete the original file from storage to save space + Import will start soon + Feed + Error details:<br><tt>%1$s</tt><br><br>1. Try to <a href="%2$s">open manga in a web browser</a> to ensure it is available on its source<br>2. Make sure you are using the <a href="kotatsu://about">latest version of Kotatsu</a><br>3. If it is available, send an error report to the developers. + Show recent manga shortcuts + Make recent manga available by long pressing on application icon + Tap on the right edge or pressing the right key always switches to the next page + Ergonomic reader control + Color correction + Brightness + Contrast + Reset + The chosen color settings will be remembered for this manga + Save or discard unsaved changes\? + Discard + No space left on device + Show page switching slider + Webtoon zoom + Different languages + Network is not available + Turn on Wi-Fi or mobile network to read manga online + Server side error (%1$d). Please try again later + Also clear information about new chapters + Compact + MyAnimeList + Source disabled + Content preloading + Mark as current + Language + Share logs + Enable logging + Record some actions for debug purposes. Don\'t turn it on if you\'re not sure what you\'re doing + Show suspicious content + Dynamic + Color scheme + Show in grid view + Miku + Asuka + Mion + Rikka + Sakura + Mamimi + Kanade + There is nothing here + To track reading progress, select Menu → Track on the manga details screen. + Services + Allow unstable updates + Receive notifications about unstable builds + Download started + Got it + Tap and hold on an item to reorder them + UserAgent header + Please restart the application to apply these changes + You can select one or more .cbz or .zip files, each file will be recognized as a separate manga. + You can select a directory with archives or images. Each archive (or subdirectory) will be recognized as a chapter. + Speed + Import a previously created backup of user data + Show on the Shelf + You can sign in into an existing account or create a new one + Find similar + Synchronization settings + Server address + You can use a self-hosted synchronization server or a default one. Don\'t change this if you\'re not sure what you\'re doing. + Ignore SSL errors + Choose mirror automatically + Automatically switch domains for manga sources on errors if mirrors are available + Pause + Resume + Paused + + Remove completed + Cancel all + Download only via Wi-Fi + Stop downloading when switching to a mobile network + Suggestion: %s + Sometimes show notifications with suggested manga + More + Enable + No thanks + All active downloads will be cancelled, partially downloaded data will be lost + Your downloads history will be permanently deleted + You don\'t have any downloads + Downloads have been resumed + Downloads have been paused + Downloads have been removed + Downloads have been cancelled + Do you want to receive personalized manga suggestions? + Translations + WebView not available: check if WebView provider is installed + Clear network cache + Type + Address + Port + Proxy + Invalid value + %1$s (%2$s) + Downloaded + Images optimization proxy + Use the wsrv.nl service to reduce traffic usage and speed up image loading if possible + Invert colors + Username + Password + Authorization (optional) + Invalid port number + Network + Data and privacy + Restore previously created backup + Allow zoom in gesture in webtoon mode + Show the current time and reading progress at the top of the screen + Show page numbers in bottom corner + Animate page switching + Press and hold the Read button to see more options + Clear cookies for specified domain only. In most cases will invalidate authorization + All chapters with translation %s + The whole manga + First %s + Next unread %s + All unread chapters + All unread chapters (%s) + Select chapters manually + Custom directory + Pick custom directory + You have no access to this file or directory + Local manga directories + Description + This month + Voice search + Related manga + Light + Dark + White + Black + Background + Data was not restored + Make sure you have selected the correct backup file + Manage categories + Do not update suggestions using metered network connections + Do not check for new chapters using metered network connections + Enter manga title, genre or source name + Progress + Added + View list + Show + %s requires a captcha to be resolved to work properly + Languages + Unknown + In progress + Disable NSFW + Too many requests. Try again later + Show a list of related manga. In some cases it may be inaccurate or missing + Advanced + Default section + Manga list + Invalid data is returned or file is corrupted + On device + Directories + Main screen sections + No more items can be added + To top + Moved to top + Zoom out + Zoom in + Show zoom buttons + Whether to show zoom control buttons in the bottom right corner + Keep screen on + Do not turn the screen off while you\'re reading manga + Dropped + Reduces banding, but may impact performance + 32-bit color mode + Suggest new sources after app update + Prompt to enable newly added sources after updating the application + List options + Relevance + Categories + Online variant + Periodic backups + Backup creation frequency + Every day + Every 2 days + Once per week + Twice per month + Once per month + Enable periodic backups + Backups output directory + Last successful backup: %s + x%.1f + Lock screen rotation + Manga + Hentai + Comics + Other + %1$s, %2$s + Sources catalog + Source enabled + There are no sources available in this section, or all of it might have been already added.\nStay tuned + No available manga sources found by your query + Catalog + Manage sources + Manual + Available: %1$d + Disable NSFW sources and hide adult manga from list if possible + Paused + Reduce memory consumption (beta) + Reduce offscreen pages quality to use less memory + State + Filtering by multiple genres is not supported by this manga source + Filtering by multiple states is not supported by this manga source + Search is not supported by this manga source + You can enable download slowdown for each manga source individually in the source settings if you are having problems with server-side blocking + Skip + Grayscale + Globally + This manga + These settings can be applied globally or only to the current manga. If applied globally, individual settings will not be overridden. + Apply + Filtering by both genres and locale is not supported by this source + Filtering by both genres and states is not supported by this source + Start typing the genre name + Might help with getting the download started if you have any issues with it + Please select which content sources you would like to enable. This can also be configured later in settings + Login to sync account + Restore + Backup date: %s + Upcoming + Name reversed + Content rating + Exclude genres + Safe + Suggestive + Adult + Default tab + Mark as completed + Mark selected manga as completely read?\n\nWarning: current reading progress will be lost. This category was hidden from the main screen and is accessible through Menu → Manage categories Approximate reading time Approximate remaining time @@ -581,4 +581,5 @@ Tap action Long tap action None + Reset settings to default values? This action cannot be undone.