String extract (#148)
* FolderSyncWorker: update supported file types in getFileType * Extract hardcoded strings to `strings.xml` and `plurals.xml` * Extract hardcoded strings to `strings.xml` and `plurals.xml` * Extract hardcoded strings to `strings.xml` and `plurals.xml` in MainViewModel * Extract hardcoded strings to `strings.xml` and `plurals.xml` in Common.kt * Extract hardcoded strings to `strings.xml` and `plurals.xml` in Epub Reader
This commit is contained in:
parent
da1c5bce1e
commit
381193d774
20 changed files with 1388 additions and 855 deletions
19
app/src/main/res/values/plurals.xml
Normal file
19
app/src/main/res/values/plurals.xml
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<plurals name="book_count">
|
||||
<item quantity="one">%1$d book</item>
|
||||
<item quantity="other">%1$d books</item>
|
||||
</plurals>
|
||||
<plurals name="book_word">
|
||||
<item quantity="one">book</item>
|
||||
<item quantity="other">books</item>
|
||||
</plurals>
|
||||
<plurals name="shelf_count">
|
||||
<item quantity="one">%1$d shelf</item>
|
||||
<item quantity="other">%1$d shelves</item>
|
||||
</plurals>
|
||||
<plurals name="search_results_count">
|
||||
<item quantity="one">%1$d result found</item>
|
||||
<item quantity="other">%1$d results found</item>
|
||||
</plurals>
|
||||
</resources>
|
||||
|
|
@ -1,6 +1,249 @@
|
|||
<resources>
|
||||
<string name="app_name">Episteme</string>
|
||||
|
||||
<!-- General Actions & Words -->
|
||||
<string name="action_cancel">Cancel</string>
|
||||
<string name="action_save">Save</string>
|
||||
<string name="action_delete">Delete</string>
|
||||
<string name="action_remove">Remove</string>
|
||||
<string name="action_ok">OK</string>
|
||||
<string name="action_close">Close</string>
|
||||
<string name="action_add">Add</string>
|
||||
<string name="action_rename">Rename</string>
|
||||
<string name="action_back">Back</string>
|
||||
<string name="action_search">Search</string>
|
||||
<string name="action_clear">Clear</string>
|
||||
<string name="action_apply">Apply</string>
|
||||
<string name="tab_free">Free</string>
|
||||
<string name="action_save_catalog">Save</string>
|
||||
|
||||
<!-- Shared Composables & Dialogs -->
|
||||
<string name="legal_agreement_full">%1$s you agree to our %2$s and acknowledge you have read our %3$s.</string>
|
||||
<string name="legal_terms_of_service">Terms of Service</string>
|
||||
<string name="legal_privacy_policy">Privacy Policy</string>
|
||||
<string name="legal_licenses">Licenses</string>
|
||||
<string name="items_selected_count">%1$d selected</string>
|
||||
<string name="clear_selection">Clear Selection</string>
|
||||
<string name="pin_unpin">Pin/Unpin</string>
|
||||
<string name="info">Info</string>
|
||||
<string name="select_all">Select All</string>
|
||||
<string name="dialog_delete_permanently">Delete File(s) Permanently</string>
|
||||
<string name="dialog_remove_from_recents">Remove from Recents</string>
|
||||
<string name="dialog_warning_folder_sync_delete">Warning: Some selected items are synced from a local folder. Proceeding will delete the actual files from your device storage.\n\nThis action cannot be undone.</string>
|
||||
<string name="dialog_permanently_delete_desc">Do you want to permanently delete %1$d selected file(s) from your device? This action cannot be undone.</string>
|
||||
<string name="dialog_remove_recents_desc">Do you want to remove %1$d selected file(s) from the recent files list? It will reappear if you open it again from the library.</string>
|
||||
<string name="file_information">File Information</string>
|
||||
<string name="book_name">Book Name</string>
|
||||
<string name="copy_name">Copy Name</string>
|
||||
<string name="original_name">Original Name: %1$s</string>
|
||||
<string name="revert_to_original">Revert to Original</string>
|
||||
<string name="file_name">File Name: %1$s</string>
|
||||
<string name="author">Author</string>
|
||||
<string name="format">Format</string>
|
||||
<string name="size">Size</string>
|
||||
<string name="added">Added</string>
|
||||
<string name="location">Location</string>
|
||||
<string name="source_opds">Source: OPDS Stream</string>
|
||||
<string name="source_in_app">In-App Storage</string>
|
||||
<string name="internal_storage">Internal storage</string>
|
||||
<string name="about_title">About Episteme</string>
|
||||
<string name="about_version">Version: %1$s (Build: %2$d)</string>
|
||||
<string name="empty_select_file">Select a File</string>
|
||||
<string name="clear_cloud_data_title">Clear All Synced Data?</string>
|
||||
<string name="clear_cloud_data_desc">Are you sure you want to permanently delete all of your book data from the cloud? This will also wipe your local library to prevent re-syncing. This action cannot be undone.</string>
|
||||
<string name="delete_all_data">DELETE ALL DATA</string>
|
||||
|
||||
<!-- Navigation & Home -->
|
||||
<string name="nav_home">Home</string>
|
||||
<string name="nav_library">Library</string>
|
||||
<string name="recent_files">Recent Files</string>
|
||||
<string name="your_library_empty">Your Library is Empty</string>
|
||||
<string name="your_library_empty_desc">Select a file to read, or sync a local folder to automatically import books.</string>
|
||||
<string name="no_recent_files">No Recent Files</string>
|
||||
<string name="no_recent_files_desc">Open a file from your library to see it here.</string>
|
||||
<string name="setup_folder_sync">Setup Folder Sync</string>
|
||||
<string name="sync_folder">Sync Folder</string>
|
||||
<string name="local_folder">Local Folder</string>
|
||||
<string name="opds_stream">OPDS Stream</string>
|
||||
<string name="pinned">Pinned</string>
|
||||
<string name="progress_complete">%1$d%% complete</string>
|
||||
<string name="not_available_locally">Not available locally</string>
|
||||
|
||||
<!-- Drawer Menu -->
|
||||
<string name="drawer_sign_in">Sign in with Google</string>
|
||||
<string name="drawer_by_signing_in">By signing in,</string>
|
||||
<string name="drawer_pro_unlocked">Episteme Pro</string>
|
||||
<string name="drawer_upgrade_pro">Upgrade to Episteme Pro</string>
|
||||
<string name="drawer_sync_library">Sync Library</string>
|
||||
<string name="drawer_backup_local_folders">Cloud sync for Local Folders</string>
|
||||
<string name="drawer_backup_desc">Upload books from your synced folders to Google Drive.</string>
|
||||
<string name="drawer_custom_fonts">Custom Fonts</string>
|
||||
<string name="drawer_help_feedback">Help & Feedback</string>
|
||||
<string name="drawer_sign_out">Sign Out</string>
|
||||
|
||||
<!-- Top Bar Options -->
|
||||
<string name="options_recent_limit">Recent Files Limit</string>
|
||||
<string name="options_no_limit">No limit</string>
|
||||
<string name="options_files_limit">%1$d files</string>
|
||||
<string name="options_clear_book_cache">Clear Book Cache</string>
|
||||
<string name="options_clear_reflow_cache">Clear Reflow Cache</string>
|
||||
|
||||
<!-- Library Screen -->
|
||||
<string name="library_title">Library</string>
|
||||
<string name="search_placeholder">Search title or author…</string>
|
||||
<string name="filter_types">Types: %1$s</string>
|
||||
<string name="filter_folders">Folders: %1$d</string>
|
||||
<string name="filter_status">Status: %1$s</string>
|
||||
<string name="tab_all_books">All Books</string>
|
||||
<string name="tab_shelves">Shelves</string>
|
||||
<string name="tab_folders">Folders</string>
|
||||
<string name="tab_catalogs">Catalogs</string>
|
||||
<string name="no_results_found">No results found for \"%1$s\"</string>
|
||||
<string name="library_empty_desc">Select a PDF, EPUB, MOBI, or AZW3 file from your device to get started.</string>
|
||||
<string name="fab_add_file">Add file</string>
|
||||
<string name="fab_new_shelf">New shelf</string>
|
||||
<string name="create_new_shelf">Create New Shelf</string>
|
||||
<string name="shelf_name_hint">Shelf Name</string>
|
||||
<string name="action_create">Create</string>
|
||||
<string name="menu_rename_shelf">Rename shelf</string>
|
||||
<string name="menu_delete_shelf">Delete shelf</string>
|
||||
<string name="fab_add_books">Add books</string>
|
||||
<string name="shelf_empty">This shelf is empty</string>
|
||||
<string name="add_to_shelf">Add to %1$s</string>
|
||||
<string name="fab_add_count">ADD (%1$d)</string>
|
||||
<string name="no_unshelved_books">No unshelved books to add</string>
|
||||
<string name="all_books_in_shelf">All books are already in this shelf</string>
|
||||
<string name="dialog_rename_shelf">Rename Shelf</string>
|
||||
<string name="dialog_delete_shelf">Delete Shelf?</string>
|
||||
<string name="dialog_delete_shelf_desc">Are you sure you want to delete the \'%1$s\' shelf? All books will be moved to Unshelved.</string>
|
||||
<string name="dialog_remove_from_shelf">Remove from Shelf?</string>
|
||||
<string name="dialog_remove_from_shelf_desc">Are you sure you want to remove %1$d %2$s from the \'%3$s\' shelf? The book(s) will remain in your library and appear under Unshelved.</string>
|
||||
<string name="dialog_delete_shelves">Delete %1$s?</string>
|
||||
<string name="dialog_delete_shelves_desc">Are you sure you want to delete the %1$d selected %2$s? All books within will be moved to Unshelved.</string>
|
||||
|
||||
<!-- Folder Sync -->
|
||||
<string name="sync_local_folders">Sync Local Folders</string>
|
||||
<string name="sync_folders_desc">Connect local folders to create a live library. Episteme will monitor files and sync progress.</string>
|
||||
<string name="fab_add_folder">Add Folder</string>
|
||||
<string name="scan_all">Scan All</string>
|
||||
<string name="scanning">Scanning…</string>
|
||||
<string name="sync_meta">Sync Meta</string>
|
||||
<string name="last_sync">LAST SYNC</string>
|
||||
<string name="books_count">BOOKS</string>
|
||||
<string name="menu_edit_filters">Edit Filters</string>
|
||||
<string name="menu_remove_folder">Remove Folder</string>
|
||||
<string name="filter_file_types">Filter File Types</string>
|
||||
<string name="filter_file_types_desc">Select the file types you want to sync from this folder:</string>
|
||||
<string name="filter_library">Filter Library</string>
|
||||
<string name="filter_file_type">File Type</string>
|
||||
<string name="filter_source_folder">Source Folder</string>
|
||||
<string name="filter_read_status">Read Status</string>
|
||||
<string name="clear_all">Clear All</string>
|
||||
|
||||
<!-- OPDS -->
|
||||
<string name="fab_add_catalog">Add Catalog</string>
|
||||
<string name="search_catalog_placeholder">Search catalog…</string>
|
||||
<string name="feed_empty">This feed is empty.</string>
|
||||
<string name="status_downloading">Downloading…</string>
|
||||
<string name="status_loading">Loading…</string>
|
||||
<string name="action_stream">Stream</string>
|
||||
<string name="action_unavailable">Unavailable</string>
|
||||
<string name="action_download">Download</string>
|
||||
<string name="download_format">Download Format</string>
|
||||
<string name="action_stream_now">Stream Now</string>
|
||||
<string name="action_read">Read</string>
|
||||
<string name="no_supported_formats">No supported formats available.</string>
|
||||
<string name="publisher">PUBLISHER</string>
|
||||
<string name="published">PUBLISHED</string>
|
||||
<string name="language">LANGUAGE</string>
|
||||
<string name="synopsis">Synopsis</string>
|
||||
<string name="edit_catalog">Edit Catalog</string>
|
||||
<string name="add_opds_catalog">Add OPDS Catalog</string>
|
||||
<string name="catalog_name">Catalog Name</string>
|
||||
<string name="url">URL</string>
|
||||
<string name="url_placeholder">http://192.168.1.50:8080/opds</string>
|
||||
<string name="auth_optional">Authentication (Optional)</string>
|
||||
<string name="username">Username</string>
|
||||
<string name="password">Password</string>
|
||||
<string name="delete_catalog">Delete Catalog</string>
|
||||
<string name="delete_catalog_desc">Are you sure you want to delete \'%1$s\'?</string>
|
||||
<string name="delete_catalog_warning">Deleting this catalog will also permanently remove %1$d streaming books associated with it from your library.</string>
|
||||
<string name="preset_label">Preset</string>
|
||||
|
||||
<!-- Pro Screen -->
|
||||
<string name="free_plan">Free Plan</string>
|
||||
<string name="price_free">$0</string>
|
||||
<string name="forever_free">Forever free</string>
|
||||
<string name="feature_multiple_formats">Multiple Formats</string>
|
||||
<string name="feature_multiple_formats_desc">Supports PDF, EPUB, MOBI, AZW3</string>
|
||||
<string name="feature_tts">Android Text-to-Speech</string>
|
||||
<string name="feature_tts_desc">Listen to your books with built-in TTS</string>
|
||||
<string name="feature_dict">Basic Dictionary</string>
|
||||
<string name="feature_dict_desc">Look up single words quickly</string>
|
||||
<string name="current_plan">Current Plan</string>
|
||||
<string name="pro_sale_off">50%% OFF</string>
|
||||
<string name="loading_price">Loading price…</string>
|
||||
<string name="one_time_payment">One-time payment</string>
|
||||
<string name="lifetime_access">Lifetime Access</string>
|
||||
<string name="early_access_sale">Early Access Sale</string>
|
||||
<string name="pro_includes">Everything in Free, plus:</string>
|
||||
<string name="feature_cloud_sync">Cloud Sync Across Devices</string>
|
||||
<string name="feature_cloud_sync_desc">Keep your entire library, including book files and reading progress, synced across up to 4 devices.</string>
|
||||
<string name="feature_summarize">Summarization</string>
|
||||
<string name="feature_summarize_desc">Get quick summaries of chapters or pages</string>
|
||||
<string name="feature_smart_dict">Smart Dictionary</string>
|
||||
<string name="feature_smart_dict_desc">Search phrases and even paragraphs, not just single words</string>
|
||||
<string name="feature_priority">Priority Feature Requests</string>
|
||||
<string name="feature_priority_desc">Your suggestions get prioritized</string>
|
||||
<string name="pro_unlocked">Pro Features Unlocked!</string>
|
||||
<string name="sign_in_required">Sign in Required</string>
|
||||
<string name="verifying_purchase">Verifying purchase…</string>
|
||||
<string name="existing_purchase_found">Existing Purchase Found</string>
|
||||
<string name="get_lifetime_access">Get Lifetime Access</string>
|
||||
<string name="upgrade_unavailable">Upgrade currently unavailable. Please check your internet and try again.</string>
|
||||
<string name="sign_in_to_purchase">Please sign in to your Google account to purchase Episteme Pro.</string>
|
||||
<string name="verifying_purchase_desc">This may take a few moments. Your Pro status will be updated automatically.</string>
|
||||
<string name="dialog_existing_purchase_desc">This device already has a Pro purchase, but it\'s linked to a different account. Please sign in to the account that was used for the original purchase to restore your Pro features.</string>
|
||||
<string name="dialog_early_access_desc">You\'re getting Episteme Pro at a special discounted price during our early access period! This is a limited-time offer.</string>
|
||||
<string name="dialog_sign_in_required_desc">Please sign in to your Google account to purchase Episteme Pro and unlock all premium features.</string>
|
||||
<string name="action_not_now">Not Now</string>
|
||||
<string name="action_got_it">Got It!</string>
|
||||
|
||||
<!-- Fonts -->
|
||||
<string name="custom_fonts">Custom Fonts</string>
|
||||
<string name="import_font">Import Font</string>
|
||||
<string name="no_custom_fonts">No Custom Fonts</string>
|
||||
<string name="import_fonts_desc">Import TTF or OTF files to use them in your books.</string>
|
||||
<string name="font_preview_text">Grumpy wizards make toxic brew for the evil queen! 1234567890 ?.,;:</string>
|
||||
<string name="font_preview_error">Preview unavailable (Invalid font file)</string>
|
||||
<string name="dialog_delete_font">Delete Font?</string>
|
||||
<string name="dialog_delete_font_desc">Are you sure you want to delete \'%1$s\'? This will remove it from all your devices if sync is on.</string>
|
||||
|
||||
<!-- Feedback -->
|
||||
<string name="get_in_touch">Get in Touch</string>
|
||||
<string name="feedback_desc">Found a bug, have a feature request, or just want to say hi? Let us know on GitHub or send us an email.</string>
|
||||
<string name="github_issues">GitHub Issues</string>
|
||||
<string name="github_issues_desc">Report bugs, request features, and track development progress.</string>
|
||||
<string name="email_support">Email Support</string>
|
||||
<string name="email_support_desc">Contact us directly via email for any other inquiries.</string>
|
||||
|
||||
<!-- Dialogs -->
|
||||
<string name="dialog_unlock_pro">Unlock Episteme Pro</string>
|
||||
<string name="dialog_unlock_pro_desc">Sync across devices is a Pro feature. Unlock all pro features with a single, one-time purchase.</string>
|
||||
<string name="action_upgrade">Upgrade</string>
|
||||
<string name="dialog_confirm_sign_out">Confirm Sign Out</string>
|
||||
<string name="dialog_confirm_sign_out_desc">Are you sure you want to sign out?</string>
|
||||
<string name="device_limit_reached">Device Limit Reached</string>
|
||||
<string name="device_limit_reached_desc">To use Episteme Pro on this device, please remove one of your existing registered devices.</string>
|
||||
<string name="last_seen">Last seen: %1$s</string>
|
||||
<string name="dialog_destructive_action">Confirm Destructive Action</string>
|
||||
<string name="dialog_destructive_action_desc">This will permanently delete all your books and reading progress from this device AND from your Google Drive account. This action cannot be undone. Are you sure?</string>
|
||||
<string name="dialog_clear_book_cache">Clear Book Cache</string>
|
||||
<string name="dialog_clear_book_cache_desc">This will clear all processed pages in pagination mode. This helps fix layout issues but will require books to be re-processed next time you open them.</string>
|
||||
<string name="action_confirm_clear">Confirm & Clear</string>
|
||||
<string name="dialog_clear_reflow_cache">Clear Reflow Cache</string>
|
||||
<string name="dialog_clear_reflow_cache_desc">This will delete all generated \'Text View\' versions of your PDFs and clear their associated images/HTML cache. Your original PDFs will remain untouched.</string>
|
||||
|
||||
<!-- Tooltip titles -->
|
||||
<string name="tooltip_back">Back</string>
|
||||
<string name="tooltip_dictionary">Dictionary</string>
|
||||
|
|
@ -58,4 +301,328 @@
|
|||
<string name="tooltip_hide_results_desc">Collapse the search results panel</string>
|
||||
<string name="tooltip_prev_result_desc">Jump to the previous search match in the document</string>
|
||||
<string name="tooltip_next_result_desc">Jump to the next search match in the document</string>
|
||||
|
||||
<string name="action_sign_in">Sign In</string>
|
||||
<string name="action_select_folder">Select Folder</string>
|
||||
<string name="action_select">Select</string>
|
||||
<string name="legal_footer_combined">Privacy Policy • Terms of Service • Licenses</string>
|
||||
<string name="app_name_oss">Episteme OSS</string>
|
||||
<string name="debug_show_device_management">[Debug] Show Device Management</string>
|
||||
<string name="debug_clear_cloud_local_data">[Debug] Clear Cloud & Local Data</string>
|
||||
<string name="debug_fps">FPS: %1$d</string>
|
||||
<string name="error_folder_selection_unsupported">Your device doesn\'t support folder selection. You can still import files individually.</string>
|
||||
<string name="error_no_file_manager">No file manager found. Please install a file manager app.</string>
|
||||
<string name="feedback_email_subject">Feedback: Episteme Reader</string>
|
||||
<string name="banner_downloaded">Downloaded %1$s</string>
|
||||
<string name="filter_facet">%1$s: %2$s</string>
|
||||
<string name="never">Never</string>
|
||||
<string name="folder_filter_count">%1$s: %2$d</string>
|
||||
|
||||
<!-- ViewModel Messages: Banners & Errors -->
|
||||
<string name="banner_removed_streaming_books">Removed %1$d streaming books.</string>
|
||||
<string name="error_import_font">Failed to import font: %1$s</string>
|
||||
<string name="banner_text_view_deleted">Text view deleted.</string>
|
||||
<string name="error_sync_drive_permission">Sync requires Google Drive permission.</string>
|
||||
<string name="error_purchase_general">An error occurred with the purchase.</string>
|
||||
<string name="banner_upgrade_success">Upgrade successful! Welcome to Pro.</string>
|
||||
<string name="error_purchase_verification">Purchase verification failed. Please contact support if you were charged.</string>
|
||||
<string name="banner_device_removed">This device was removed from your account.</string>
|
||||
<string name="error_verify_device">Could not verify this device. Please check your connection.</string>
|
||||
<string name="error_update_devices">Failed to update devices. Please try again.</string>
|
||||
<string name="banner_saving_pdf">Saving PDF…</string>
|
||||
<string name="banner_pdf_saved">PDF saved successfully.</string>
|
||||
<string name="error_open_file_saving">Failed to open file for saving.</string>
|
||||
<string name="error_saving_pdf">Error saving PDF: %1$s</string>
|
||||
<string name="banner_saving_original_pdf">Saving original PDF…</string>
|
||||
<string name="banner_original_pdf_saved">Original PDF saved successfully.</string>
|
||||
<string name="share_subject">Sharing: %1$s</string>
|
||||
<string name="share_chooser_title">Share PDF</string>
|
||||
<string name="error_share_failed">Share failed: %1$s</string>
|
||||
<string name="error_folder_limit_reached">Limit reached: Maximum %1$d folders allowed.</string>
|
||||
<string name="error_folder_already_synced">This folder is already synced.</string>
|
||||
<string name="banner_folder_added">Folder added: %1$s</string>
|
||||
<string name="error_access_folder_permissions">Failed to access folder permissions.</string>
|
||||
<string name="banner_folder_removed">Folder removed.</string>
|
||||
<string name="banner_folder_sync_updating">Folder Sync: Updating metadata…</string>
|
||||
<string name="banner_folder_sync_scanning">Scanning folder for new books…</string>
|
||||
<string name="banner_folder_sync_complete">Folder Sync: Scan complete.</string>
|
||||
<string name="error_sync_failed">Sync failed.</string>
|
||||
<string name="error_enable_sync_download">Enable sync to download files.</string>
|
||||
<string name="error_download_failed">Failed to download %1$s.</string>
|
||||
<string name="error_enable_sync_clear_cloud">Enable sync to clear cloud data.</string>
|
||||
<string name="error_not_signed_in_clear_cloud">Not signed in, cannot clear cloud data.</string>
|
||||
<string name="banner_clearing_cloud_local_data">Clearing all cloud and local data…</string>
|
||||
<string name="banner_cloud_local_data_cleared">All cloud and local data cleared successfully.</string>
|
||||
<string name="error_clear_all_data">Error: Failed to clear all data.</string>
|
||||
<string name="banner_local_data_cleared">All local data cleared.</string>
|
||||
<string name="error_sign_in_failed">Sign in failed. Please try again.</string>
|
||||
<string name="error_no_google_account">Could not find a Google account. This can happen on a fresh install, please try again in a moment.</string>
|
||||
<string name="error_sign_in_internet">An error occurred during sign in. Please check your internet connection.</string>
|
||||
<string name="error_sign_in_device_management">Please sign in to test device management.</string>
|
||||
<string name="error_sync_pro_feature">Sync is an Episteme Pro feature.</string>
|
||||
<string name="error_not_signed_in_sync">Not signed in, cannot sync.</string>
|
||||
<string name="banner_cloud_sync_checking">Cloud Sync: Checking for updates…</string>
|
||||
<string name="banner_cloud_sync_complete">Cloud Sync: Complete.</string>
|
||||
<string name="error_sync_library_failed">Failed to sync library.</string>
|
||||
<string name="error_recent_item_not_found">Could not find recent item.</string>
|
||||
<string name="error_import_file_failed">Failed to import file.</string>
|
||||
<string name="error_file_location_not_found">Could not find file location.</string>
|
||||
<string name="error_load_generated_text_view">Failed to load generated text view.</string>
|
||||
<string name="error_text_view_generation_failed">Text view generation failed.</string>
|
||||
<string name="error_load_fb2">Failed to load FB2: %1$s</string>
|
||||
<string name="error_load_file">Failed to load file: %1$s</string>
|
||||
<string name="error_load_mobi">Failed to load MOBI: %1$s</string>
|
||||
<string name="error_load_epub">Failed to load EPUB: %1$s</string>
|
||||
<string name="banner_file_deleted_from_folder">File deleted from folder. Removed from library.</string>
|
||||
<string name="error_shelf_exists">A shelf with that name already exists.</string>
|
||||
<string name="banner_deleting_all_devices">Deleting from all devices…</string>
|
||||
<string name="banner_deletion_complete">Deletion complete.</string>
|
||||
<string name="error_cloud_sync_failed_deleted_locally">Cloud sync failed, deleted locally.</string>
|
||||
<string name="banner_books_removed_library">%1$d book(s) removed from library.</string>
|
||||
<string name="banner_reflow_cache_cleared">Reflow cache & generated text views cleared.</string>
|
||||
|
||||
<!-- Common.kt: SearchTopBar & SearchNavigationControls -->
|
||||
<string name="search_in_book">Search in book…</string>
|
||||
<string name="content_desc_close_search">Close Search</string>
|
||||
<string name="content_desc_clear_search">Clear Search</string>
|
||||
<string name="content_desc_hide_results">Hide Results</string>
|
||||
<string name="content_desc_show_results">Show Results</string>
|
||||
<string name="content_desc_prev_result">Previous Search Result</string>
|
||||
<string name="content_desc_next_result">Next Search Result</string>
|
||||
<string name="search_no_results_simple">No results found.</string>
|
||||
|
||||
<!-- Common.kt: SummarizationPopup -->
|
||||
<string name="generating_summary">Generating summary…</string>
|
||||
<string name="action_stop">Stop</string>
|
||||
<string name="action_read_aloud">Read aloud</string>
|
||||
<string name="action_copy">Copy</string>
|
||||
<string name="no_summary_generated">No summary could be generated.</string>
|
||||
|
||||
<!-- Common.kt: AiDefinitionPopup -->
|
||||
<string name="ai_thinking">Thinking…</string>
|
||||
<string name="content_desc_open_dictionary">Open in Dictionary App</string>
|
||||
<string name="ai_no_definition">AI could not provide a definition.</string>
|
||||
<string name="ai_asking_about">Asking AI about \'%1$s\'…</string>
|
||||
|
||||
<!-- Common.kt: TtsSettingsSheet -->
|
||||
<string name="tts_settings">Text-to-Speech Settings</string>
|
||||
<string name="tts_stop_to_change_settings">Please stop playback to change settings.</string>
|
||||
<string name="tts_synthesis_mode">Synthesis Mode</string>
|
||||
<string name="tts_mode_on_device">On-Device</string>
|
||||
<string name="tts_mode_cloud_hq">Cloud (HQ)</string>
|
||||
<string name="tts_voice_selection">Voice Selection</string>
|
||||
<string name="tts_play_sample">Play Sample</string>
|
||||
|
||||
<!-- Common.kt: DeviceVoiceSettingsSheet -->
|
||||
<string name="tts_device_voice_settings">On-Device Voice Settings</string>
|
||||
<string name="content_desc_close_settings">Close Settings</string>
|
||||
<string name="tts_system_default">System Default</string>
|
||||
<string name="tts_system_default_desc">Matches your Android system settings</string>
|
||||
<string name="content_desc_selected">Selected</string>
|
||||
<string name="tts_loading_voices">Loading voices…</string>
|
||||
<string name="tts_no_voices">No voices available on this device.</string>
|
||||
<string name="tts_specific_voices">Specific Voices</string>
|
||||
<string name="tts_available_voices_count">Available Voices (%1$d)</string>
|
||||
<string name="tts_no_voices_for_language">No voices found for this language.</string>
|
||||
<string name="tts_voice_variant">Variant: %1$s</string>
|
||||
<string name="tts_voice_sample_text">This is a sample of %1$s.</string>
|
||||
|
||||
<!-- Common.kt: ReaderThemePanel & ThemeBuilderView -->
|
||||
<string name="reading_themes">Reading Themes</string>
|
||||
<string name="theme_presets">Presets</string>
|
||||
<string name="theme_my_themes">My Themes</string>
|
||||
<string name="theme_no_custom">No custom themes yet. Tap \'+\' to create one.</string>
|
||||
<string name="theme_new">New Theme</string>
|
||||
<string name="theme_edit">Edit Theme</string>
|
||||
<string name="theme_name">Theme Name</string>
|
||||
<string name="theme_preview_quote">So many books, so little time.</string>
|
||||
<string name="theme_preview_author">- Frank Zappa</string>
|
||||
<string name="theme_low_contrast_warning">⚠️ Low contrast! This might cause eye strain.</string>
|
||||
<string name="theme_page_color">Page Color</string>
|
||||
<string name="theme_text_color">Text Color</string>
|
||||
<string name="theme_color_live_preview">Live Preview</string>
|
||||
<string name="theme_color_preview_text">Reading is dreaming.</string>
|
||||
<string name="theme_color_hex">Hex</string>
|
||||
|
||||
<!-- Common.kt: RGB Inputs -->
|
||||
<string name="color_r">R</string>
|
||||
<string name="color_g">G</string>
|
||||
<string name="color_b">B</string>
|
||||
|
||||
<!-- Common.kt: fetchAiDefinition -->
|
||||
<string name="error_text_empty">Text is empty.</string>
|
||||
<string name="error_ai_empty_definition">AI returned an empty definition.</string>
|
||||
<string name="error_could_not_get_definition">Could not get definition.</string>
|
||||
<string name="error_unknown_server">An unknown server error occurred.</string>
|
||||
<string name="error_network_check_connection">Network error. Check connection.</string>
|
||||
|
||||
<!-- Common.kt: fetchRecap -->
|
||||
<string name="error_not_enough_context">Not enough context for a recap.</string>
|
||||
<string name="error_parse_recap">Failed to parse recap.</string>
|
||||
<string name="error_network_recap">Network error during recap generation.</string>
|
||||
|
||||
<!-- DictionarySettingsDialog.kt -->
|
||||
<string name="dict_lookup_settings">Lookup Settings</string>
|
||||
<string name="dict_dictionary_engine">Dictionary Engine</string>
|
||||
<string name="dict_smart_ai">Smart (AI)</string>
|
||||
<string name="dict_external_app">External App</string>
|
||||
<string name="dict_ai_description">Uses AI for definitions. Will fall back to the external app below if offline or if the selected phrase is too long.</string>
|
||||
<string name="dict_external_description">Uses the selected app for dictionary lookups.</string>
|
||||
<string name="dict_fallback_app">Fallback App</string>
|
||||
<string name="dict_dictionary_app">Dictionary App</string>
|
||||
<string name="dict_select_app">Select an app</string>
|
||||
<string name="dict_translate">Translate</string>
|
||||
<string name="dict_translate_description">App used for translating selected text.</string>
|
||||
<string name="dict_search_app">Search App</string>
|
||||
<string name="dict_search_app_description">App used for web searches.</string>
|
||||
<string name="dict_none">None</string>
|
||||
|
||||
<!-- EpubReaderAi.kt -->
|
||||
<string name="ai_error_book_content_empty">The book content is empty.</string>
|
||||
<string name="ai_error_parse_summary">Failed to parse summary from server response.</string>
|
||||
<string name="ai_error_fetch_summary">Could not fetch summary.</string>
|
||||
<string name="ai_error_with_code">Error: %1$d. %2$s</string>
|
||||
<string name="ai_error_network_server">Network error. Please check connection and server status.</string>
|
||||
<string name="ai_analyzing_chapter">Analyzing Chapter %1$d…</string>
|
||||
<string name="ai_reading_position">Reading current position…</string>
|
||||
<string name="ai_generating_recap">Generating Recap…</string>
|
||||
<string name="ai_chapter_summary">Chapter Summary</string>
|
||||
<string name="ai_story_recap_beta">Story Recap (Beta)</string>
|
||||
<string name="ai_unlock_summarization">Unlock Chapter Summarization</string>
|
||||
<string name="ai_unlock_summarization_desc">Get concise summaries of any chapter with Episteme Pro. Upgrade to start using this feature.</string>
|
||||
<string name="action_learn_more">Learn More</string>
|
||||
<string name="ai_unlock_smart_dict">Unlock Smart Dictionary</string>
|
||||
<string name="ai_unlock_smart_dict_desc">Defining entire phrases and paragraphs up to 2000 characters is a Pro feature. Upgrade to get instant definitions for any selected text.</string>
|
||||
|
||||
<!-- EpubReaderAnnotations.kt -->
|
||||
<string name="content_desc_bookmark_icon">Bookmark</string>
|
||||
<string name="content_desc_selected_slot">Selected Slot</string>
|
||||
<string name="dialog_customize_palette">Customize Palette</string>
|
||||
<string name="palette_tap_slot_to_edit">Tap a slot to edit:</string>
|
||||
<string name="palette_select_color_for_slot">Select a color for the slot:</string>
|
||||
|
||||
<!-- EpubReaderContent.kt -->
|
||||
<string name="chapter_empty">This chapter is empty.</string>
|
||||
<string name="chapter_not_found">Chapter not found</string>
|
||||
<string name="error_loading_chapter">Error loading chapter</string>
|
||||
|
||||
<!-- EpubReaderControls.kt -->
|
||||
<string name="content_desc_dictionary_settings">Dictionary Settings</string>
|
||||
<string name="tooltip_theme">Theme</string>
|
||||
<string name="tooltip_theme_desc">Theme Settings</string>
|
||||
<string name="content_desc_more_options">More Options</string>
|
||||
<string name="menu_view_original_pdf">View Original PDF</string>
|
||||
<string name="menu_delete_text_view">Delete Text View</string>
|
||||
<string name="menu_reading_mode_vertical">Reading Mode: Vertical</string>
|
||||
<string name="menu_reading_mode_paginated">Reading Mode: Paginated</string>
|
||||
<string name="content_desc_enabled">Enabled</string>
|
||||
<string name="menu_remove_bookmark">Remove bookmark</string>
|
||||
<string name="menu_bookmark_this_page">Bookmark this page</string>
|
||||
<string name="menu_tap_to_turn_pages">Tap to Turn Pages</string>
|
||||
<string name="menu_volume_button_scrolling">Volume Button Scrolling</string>
|
||||
<string name="menu_volume_button_page_turn">Volume Button Page Turn</string>
|
||||
<string name="menu_realistic_page_turns">Realistic Page Turns</string>
|
||||
<string name="menu_keep_screen_on">Keep Screen On</string>
|
||||
<string name="menu_visual_options">Visual Options</string>
|
||||
<string name="menu_auto_scroll">Auto Scroll</string>
|
||||
<string name="menu_tts_voice_settings">TTS Voice Settings</string>
|
||||
<string name="menu_tts_settings_debug">TTS Settings (Debug)</string>
|
||||
<string name="content_desc_navigate_slider">Navigate with slider</string>
|
||||
<string name="content_desc_chapters_menu">Chapters Menu</string>
|
||||
<string name="content_desc_text_formatting">Text Formatting</string>
|
||||
<string name="menu_chapter_summarization">Chapter Summarization</string>
|
||||
<string name="menu_recap_beta">Recap (Beta)</string>
|
||||
<string name="content_desc_stop_tts">Stop TTS</string>
|
||||
<string name="content_desc_start_tts">Start TTS</string>
|
||||
<string name="content_desc_pause_tts">Pause TTS</string>
|
||||
<string name="content_desc_resume_tts">Resume TTS</string>
|
||||
<string name="content_desc_exit_slider">Exit slider navigation</string>
|
||||
<string name="content_desc_start_page_thumbnail">Start page thumbnail</string>
|
||||
<string name="content_desc_expand">Expand</string>
|
||||
<string name="content_desc_collapse">Collapse</string>
|
||||
<string name="content_desc_pause_playback">Pause</string>
|
||||
<string name="content_desc_start_playback">Play</string>
|
||||
<string name="auto_scroll_local_speed">Local Speed</string>
|
||||
<string name="auto_scroll_global_speed">Global Speed</string>
|
||||
<string name="content_desc_select_mode">Select Mode</string>
|
||||
<string name="auto_scroll_applies_all_files">Applies to all files</string>
|
||||
<string name="auto_scroll_saved_for_file">Saved for this file only</string>
|
||||
<string name="content_desc_disable_musician_mode">Disable Musician Mode</string>
|
||||
<string name="content_desc_enable_musician_mode">Enable Musician Mode</string>
|
||||
<string name="content_desc_swap_controls">Swap Controls</string>
|
||||
<string name="label_min">Min</string>
|
||||
<string name="label_max">Max</string>
|
||||
<string name="content_desc_slower">Slower</string>
|
||||
<string name="content_desc_faster">Faster</string>
|
||||
<string name="page_of_pages">Page %1$d of %2$d</string>
|
||||
|
||||
<!-- EpubReaderDrawer.kt -->
|
||||
<string name="tab_chapters">Chapters</string>
|
||||
<string name="tab_bookmarks">Bookmarks</string>
|
||||
<string name="tab_highlights">Highlights</string>
|
||||
<string name="no_bookmarks_yet">You haven\'t added any bookmarks yet.</string>
|
||||
<string name="bookmark_page_of">Page %1$d of %2$d</string>
|
||||
<string name="content_desc_more_options_bookmark">More options for bookmark</string>
|
||||
<string name="menu_rename">Rename</string>
|
||||
<string name="dialog_rename_bookmark">Rename Bookmark</string>
|
||||
<string name="label_new_name">New Name</string>
|
||||
<string name="dialog_delete_bookmark">Delete Bookmark?</string>
|
||||
<string name="dialog_delete_bookmark_desc">Are you sure you want to permanently delete this bookmark?</string>
|
||||
<string name="no_highlights_yet">No highlights yet.</string>
|
||||
<string name="unknown_chapter">Unknown Chapter</string>
|
||||
<string name="content_desc_options">Options</string>
|
||||
<string name="dialog_delete_highlight">Delete Highlight?</string>
|
||||
<string name="dialog_delete_highlight_desc">Are you sure you want to permanently delete this highlight?</string>
|
||||
|
||||
<!-- EpubReaderScreen.kt -->
|
||||
<string name="banner_original_pdf_not_found">Original PDF not found.</string>
|
||||
<string name="error_book_content_not_found">Error: Book content not found. Path: %1$s</string>
|
||||
<string name="toast_select_dictionary_first">Please select a dictionary app first.</string>
|
||||
<string name="toast_select_translate_first">Please select a translate app first.</string>
|
||||
<string name="toast_select_search_first">Please select a search app first.</string>
|
||||
<string name="no_chapters_available">No chapters available for this book.</string>
|
||||
<string name="navigating_to_position">Navigating to position…</string>
|
||||
<string name="dialog_permission_required">Permission Required</string>
|
||||
<string name="dialog_permission_notification_desc">To show playback controls while the app is in the background, please grant the notification permission.</string>
|
||||
<string name="action_continue">Continue</string>
|
||||
<string name="dialog_justified_text_limitation">Justified Text Limitation</string>
|
||||
<string name="dialog_justified_text_limitation_desc">Using Justified alignment in Paginated Mode may cause text selection and highlights to be inaccurate due to layout limitations.</string>
|
||||
<string name="action_i_understand">I Understand</string>
|
||||
<string name="navigating_to_chapter">Navigating to chapter…</string>
|
||||
<string name="toast_select_offline_dict_first">Select an offline dictionary first.</string>
|
||||
<string name="banner_book_not_paginated">Book is not paginated yet.</string>
|
||||
<string name="banner_wait_for_load">Wait for book to load fully.</string>
|
||||
<string name="release_for_previous_chapter">Release for Previous Chapter</string>
|
||||
<string name="release_for_next_chapter">Release for Next Chapter</string>
|
||||
<string name="pull_further_percent">Pull further… (%1$d%%)</string>
|
||||
<string name="chapter">Chapter</string>
|
||||
<string name="error_could_not_get_chapter_content">Could not get chapter content.</string>
|
||||
<string name="error_could_not_determine_chapter">Could not determine current chapter.</string>
|
||||
<string name="error_webview_not_available">WebView not available.</string>
|
||||
<string name="page_number_of_total">Page %1$d/%2$d</string>
|
||||
|
||||
<!-- EpubReaderSettings.kt -->
|
||||
<string name="format_local">Local Format</string>
|
||||
<string name="format_global">Global Format</string>
|
||||
<string name="action_reset">Reset</string>
|
||||
<string name="label_size">Size</string>
|
||||
<string name="label_spacing">Spacing</string>
|
||||
<string name="select_font">Select Font</string>
|
||||
<string name="tab_presets">Presets</string>
|
||||
<string name="tab_imported">Imported</string>
|
||||
<string name="button_import_from_files">Import from Files</string>
|
||||
<string name="no_imported_fonts_yet">No imported fonts yet.</string>
|
||||
<string name="visual_options_title">Visual Options</string>
|
||||
<string name="visual_options_system_ui">System UI (Status & Navigation Bars)</string>
|
||||
<string name="visual_options_system_ui_desc">Control the visibility of the device\'s system bars.</string>
|
||||
<string name="visual_options_progress_bar">Progress Bar</string>
|
||||
<string name="visual_options_progress_bar_desc">The reading progress and chapter indicator at the bottom of the screen.</string>
|
||||
<string name="visual_options_seamless_chapter">Seamless Chapter Transition</string>
|
||||
<string name="visual_options_seamless_chapter_desc">Instantly load the next/previous chapter when scrolling past the end, without the pull-to-refresh animation.</string>
|
||||
|
||||
<!-- ExternalDictionaryHelper.kt -->
|
||||
<string name="dict_app_label_search">Search</string>
|
||||
<string name="error_opening_dictionary">Error opening dictionary</string>
|
||||
<string name="error_opening_translate">Error opening translate app</string>
|
||||
<string name="error_opening_search">Error opening search app</string>
|
||||
</resources>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue