feat(i18n): localize files view - replace all hardcoded strings with translation keys
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
This commit is contained in:
+112
-70
@@ -41,6 +41,53 @@
|
||||
"about.story_heading": "Our Story",
|
||||
"about.story_p1": "DocuElevate was created with one goal in mind: to simplify and streamline document management for everyone, whether you’re a small startup or a large enterprise.",
|
||||
"about.story_p2": "We harness the power of pluggable AI providers (OpenAI, Anthropic Claude, Google Gemini, Ollama, OpenRouter, Portkey, and more) for metadata extraction and text refinement, integrate seamlessly with Dropbox, Nextcloud, and Paperless NGX for storage and indexing, leverage Azure Document Intelligence for OCR, and even use Gotenberg for file-to-PDF conversions.",
|
||||
"admin_files.admin_only_badge": "Admin Only",
|
||||
"admin_files.aria_breadcrumb": "Breadcrumb",
|
||||
"admin_files.badge_delta_detected": "Delta detected",
|
||||
"admin_files.badge_duplicate": "dup",
|
||||
"admin_files.badge_in_db": "in DB",
|
||||
"admin_files.badge_on_disk": "on disk",
|
||||
"admin_files.breadcrumb_workdir": "workdir",
|
||||
"admin_files.btn_download": "Download",
|
||||
"admin_files.col_actions": "Actions",
|
||||
"admin_files.col_db": "DB",
|
||||
"admin_files.col_health": "Health",
|
||||
"admin_files.col_id": "ID",
|
||||
"admin_files.col_ingested": "Ingested",
|
||||
"admin_files.col_local_filename": "local_filename",
|
||||
"admin_files.col_missing_paths": "Missing paths",
|
||||
"admin_files.col_modified": "Modified",
|
||||
"admin_files.col_name": "Name",
|
||||
"admin_files.col_original_file_path": "original_file_path",
|
||||
"admin_files.col_original_filename": "Original Filename",
|
||||
"admin_files.col_path_relative": "Path (relative to workdir)",
|
||||
"admin_files.col_processed_file_path": "processed_file_path",
|
||||
"admin_files.col_size": "Size",
|
||||
"admin_files.delta_detected_detail": "Found {orphan_count} orphan file(s) on disk with no DB record, and {ghost_count} DB record(s) with missing files on disk.",
|
||||
"admin_files.delta_detected_title": "Delta detected.",
|
||||
"admin_files.empty_database": "No file records found in the database.",
|
||||
"admin_files.empty_directory": "This directory is empty.",
|
||||
"admin_files.ghost_records_desc": "(in DB, file(s) missing on disk)",
|
||||
"admin_files.ghost_records_heading": "Ghost records",
|
||||
"admin_files.heading": "File Manager",
|
||||
"admin_files.health_missing": "Missing",
|
||||
"admin_files.health_ok": "OK",
|
||||
"admin_files.legend_file_exists": "File exists on disk",
|
||||
"admin_files.legend_file_missing": "File missing from disk",
|
||||
"admin_files.legend_found_in_db": "Found in DB",
|
||||
"admin_files.legend_not_in_db": "Not in DB (orphan)",
|
||||
"admin_files.legend_path_not_set": "Path not set",
|
||||
"admin_files.no_delta": "No delta found — filesystem and database are in sync.",
|
||||
"admin_files.no_ghost_records": "No ghost records found.",
|
||||
"admin_files.no_orphan_files": "No orphan files found.",
|
||||
"admin_files.orphan_files_desc": "(on disk, no DB record)",
|
||||
"admin_files.orphan_files_heading": "Orphan files",
|
||||
"admin_files.page_title": "File Manager – Admin",
|
||||
"admin_files.status_in_db": "In DB",
|
||||
"admin_files.status_orphan": "Orphan",
|
||||
"admin_files.tab_database": "Database Records",
|
||||
"admin_files.tab_filesystem": "Filesystem",
|
||||
"admin_files.tab_reconcile": "Reconcile",
|
||||
"admin_plans.aria_delete_plan": "Delete {name}",
|
||||
"admin_plans.aria_edit_plan": "Edit {name}",
|
||||
"admin_plans.aria_feature_n": "Feature {n}",
|
||||
@@ -55,10 +102,10 @@
|
||||
"admin_plans.btn_edit": "Edit",
|
||||
"admin_plans.btn_restore_defaults": "Restore Defaults",
|
||||
"admin_plans.btn_restore_defaults_title": "Restore all four default plans (only if no plans exist yet)",
|
||||
"admin_plans.btn_restoring": "Restoring\u2026",
|
||||
"admin_plans.btn_restoring": "Restoring…",
|
||||
"admin_plans.btn_save_changes": "Save Changes",
|
||||
"admin_plans.btn_save_order": "Save Order",
|
||||
"admin_plans.btn_saving": "Saving\u2026",
|
||||
"admin_plans.btn_saving": "Saving…",
|
||||
"admin_plans.btn_stripe_setup": "Stripe Setup",
|
||||
"admin_plans.btn_stripe_setup_title": "Open the Stripe Setup Wizard to configure API keys and sync plans",
|
||||
"admin_plans.col_actions": "Actions",
|
||||
@@ -113,7 +160,7 @@
|
||||
"admin_plans.js_seed_failed": "Seed failed",
|
||||
"admin_plans.js_yearly_enter": "Enter yearly price to show savings",
|
||||
"admin_plans.js_yearly_save": "Save {pct}% vs monthly",
|
||||
"admin_plans.loading": "Loading plans\u2026",
|
||||
"admin_plans.loading": "Loading plans…",
|
||||
"admin_plans.modal_close_aria": "Close modal",
|
||||
"admin_plans.modal_create_title": "Add Plan",
|
||||
"admin_plans.modal_edit_title_prefix": "Edit Plan: ",
|
||||
@@ -122,17 +169,17 @@
|
||||
"admin_plans.overage_0pct": "0% (exact)",
|
||||
"admin_plans.overage_100pct": "100%",
|
||||
"admin_plans.overage_50pct": "50%",
|
||||
"admin_plans.overage_announce": "\u2192 announce",
|
||||
"admin_plans.overage_announce": "→ announce",
|
||||
"admin_plans.overage_buffer_body_prefix": "The overage buffer is",
|
||||
"admin_plans.overage_buffer_body_suffix": "We advertise X docs/month but only enforce at",
|
||||
"admin_plans.overage_buffer_formula": "X \u00d7 (1 + buffer%)",
|
||||
"admin_plans.overage_buffer_formula": "X × (1 + buffer%)",
|
||||
"admin_plans.overage_buffer_invisible": "invisible to users",
|
||||
"admin_plans.overage_buffer_tail": "docs. For example, a 150-doc/month plan with a 20% buffer enforces at 180 docs. This prevents hard cutoffs at the exact announced limit, giving users a graceful soft landing.",
|
||||
"admin_plans.overage_buffer_title": "About the Overage Buffer",
|
||||
"admin_plans.overage_docs": "docs,",
|
||||
"admin_plans.overage_docs_end": "docs",
|
||||
"admin_plans.overage_enforce_at": "enforce at",
|
||||
"admin_plans.page_title": "Plan Designer \u2014 DocuElevate Admin",
|
||||
"admin_plans.page_title": "Plan Designer — DocuElevate Admin",
|
||||
"admin_plans.section_basic_info": "Basic Info",
|
||||
"admin_plans.section_display": "Display",
|
||||
"admin_plans.section_features": "Features List",
|
||||
@@ -149,53 +196,6 @@
|
||||
"admin_plans.stripe_wizard_text": "Stripe Setup Wizard",
|
||||
"admin_plans.subheading": "Manage subscription plans shown on the public pricing page.",
|
||||
"admin_plans.table_aria_label": "Subscription plans",
|
||||
"admin_files.admin_only_badge": "Admin Only",
|
||||
"admin_files.aria_breadcrumb": "Breadcrumb",
|
||||
"admin_files.badge_delta_detected": "Delta detected",
|
||||
"admin_files.badge_duplicate": "dup",
|
||||
"admin_files.badge_in_db": "in DB",
|
||||
"admin_files.badge_on_disk": "on disk",
|
||||
"admin_files.breadcrumb_workdir": "workdir",
|
||||
"admin_files.btn_download": "Download",
|
||||
"admin_files.col_actions": "Actions",
|
||||
"admin_files.col_db": "DB",
|
||||
"admin_files.col_health": "Health",
|
||||
"admin_files.col_id": "ID",
|
||||
"admin_files.col_ingested": "Ingested",
|
||||
"admin_files.col_local_filename": "local_filename",
|
||||
"admin_files.col_missing_paths": "Missing paths",
|
||||
"admin_files.col_modified": "Modified",
|
||||
"admin_files.col_name": "Name",
|
||||
"admin_files.col_original_file_path": "original_file_path",
|
||||
"admin_files.col_original_filename": "Original Filename",
|
||||
"admin_files.col_path_relative": "Path (relative to workdir)",
|
||||
"admin_files.col_processed_file_path": "processed_file_path",
|
||||
"admin_files.col_size": "Size",
|
||||
"admin_files.delta_detected_detail": "Found {orphan_count} orphan file(s) on disk with no DB record, and {ghost_count} DB record(s) with missing files on disk.",
|
||||
"admin_files.delta_detected_title": "Delta detected.",
|
||||
"admin_files.empty_database": "No file records found in the database.",
|
||||
"admin_files.empty_directory": "This directory is empty.",
|
||||
"admin_files.ghost_records_desc": "(in DB, file(s) missing on disk)",
|
||||
"admin_files.ghost_records_heading": "Ghost records",
|
||||
"admin_files.heading": "File Manager",
|
||||
"admin_files.health_missing": "Missing",
|
||||
"admin_files.health_ok": "OK",
|
||||
"admin_files.legend_file_exists": "File exists on disk",
|
||||
"admin_files.legend_file_missing": "File missing from disk",
|
||||
"admin_files.legend_found_in_db": "Found in DB",
|
||||
"admin_files.legend_not_in_db": "Not in DB (orphan)",
|
||||
"admin_files.legend_path_not_set": "Path not set",
|
||||
"admin_files.no_delta": "No delta found \u2014 filesystem and database are in sync.",
|
||||
"admin_files.no_ghost_records": "No ghost records found.",
|
||||
"admin_files.no_orphan_files": "No orphan files found.",
|
||||
"admin_files.orphan_files_desc": "(on disk, no DB record)",
|
||||
"admin_files.orphan_files_heading": "Orphan files",
|
||||
"admin_files.page_title": "File Manager \u2013 Admin",
|
||||
"admin_files.status_in_db": "In DB",
|
||||
"admin_files.status_orphan": "Orphan",
|
||||
"admin_files.tab_database": "Database Records",
|
||||
"admin_files.tab_filesystem": "Filesystem",
|
||||
"admin_files.tab_reconcile": "Reconcile",
|
||||
"admin_users.add_user_profile_btn": "Add User Profile",
|
||||
"admin_users.admin_only_badge": "Admin Only",
|
||||
"admin_users.btn_password": "Password",
|
||||
@@ -505,6 +505,7 @@
|
||||
"common.next_page": "Next page",
|
||||
"common.no": "No",
|
||||
"common.none": "None",
|
||||
"common.not_available": "N/A",
|
||||
"common.page": "Page",
|
||||
"common.paused": "Paused",
|
||||
"common.pending": "Pending",
|
||||
@@ -668,6 +669,7 @@
|
||||
"files.drop_overlay_hint": "Supports PDF, Office docs, images, HTML, Markdown, and more – folders are processed recursively",
|
||||
"files.drop_overlay_title": "Drop files or folders anywhere to upload",
|
||||
"files.error_hint": "This might be due to a configuration or import issue. Please check the server logs.",
|
||||
"files.file_actions_aria": "File actions",
|
||||
"files.file_size": "File Size",
|
||||
"files.filename": "Filename",
|
||||
"files.files_selected": "files selected",
|
||||
@@ -695,6 +697,47 @@
|
||||
"files.filter_tags_placeholder": "e.g. invoice,amazon",
|
||||
"files.fulltext_search_label": "Full-Text Search (OCR text, metadata, tags)",
|
||||
"files.fulltext_search_placeholder": "Search document content, sender, tags, type...",
|
||||
"files.js_confirm_cloud_ocr": "Are you sure you want to re-run Cloud OCR on {count} file(s)?",
|
||||
"files.js_confirm_delete_files": "Are you sure you want to delete {count} file(s)?",
|
||||
"files.js_confirm_reprocess_files": "Are you sure you want to reprocess {count} file(s)?",
|
||||
"files.js_delete_saved_search_aria": "Delete saved search {name}",
|
||||
"files.js_delete_saved_search_confirm": "Delete this saved search?",
|
||||
"files.js_download": "Download",
|
||||
"files.js_download_file_aria": "Download file",
|
||||
"files.js_enter_search_name": "Enter a name for this saved search:",
|
||||
"files.js_error_deleting_file": "Error deleting file: {error}",
|
||||
"files.js_error_deleting_files": "Error deleting files: {error}",
|
||||
"files.js_error_downloading_files": "Error downloading files: {error}",
|
||||
"files.js_error_queuing_cloud_ocr": "Error queuing Cloud OCR: {error}",
|
||||
"files.js_error_reprocessing_files": "Error reprocessing files: {error}",
|
||||
"files.js_failed_create_zip": "Failed to create ZIP download",
|
||||
"files.js_failed_delete_file": "Failed to delete file",
|
||||
"files.js_failed_delete_files": "Failed to delete files",
|
||||
"files.js_failed_load_file": "Failed to load file",
|
||||
"files.js_failed_load_pdf": "Failed to load PDF",
|
||||
"files.js_failed_queue_cloud_ocr": "Failed to queue Cloud OCR",
|
||||
"files.js_failed_reprocess_files": "Failed to reprocess files",
|
||||
"files.js_full_view": "Full view",
|
||||
"files.js_load_saved_searches_error": "Could not load saved searches",
|
||||
"files.js_loading": "Loading…",
|
||||
"files.js_next_page": "Next »",
|
||||
"files.js_no_filters_to_save": "No filters to save. Please apply at least one filter (search, date, status, tags, etc.) before saving.",
|
||||
"files.js_no_results": "No results found.",
|
||||
"files.js_no_saved_searches": "No saved searches yet",
|
||||
"files.js_open_full_view_aria": "Open full view",
|
||||
"files.js_page_info": "Page {page} / {pages}",
|
||||
"files.js_pdf_page_info": "Page {page} of {total}",
|
||||
"files.js_prev_page": "« Prev",
|
||||
"files.js_preview_fallback": "Preview",
|
||||
"files.js_search_results_count": "{total} result(s) for \"{query}\"",
|
||||
"files.js_search_unavailable": "Search unavailable: {error}",
|
||||
"files.js_searching": "Searching…",
|
||||
"files.js_select_files_cloud_ocr": "Please select files to re-run Cloud OCR on",
|
||||
"files.js_select_files_delete": "Please select files to delete",
|
||||
"files.js_select_files_download": "Please select files to download",
|
||||
"files.js_select_files_reprocess": "Please select files to reprocess",
|
||||
"files.js_untitled": "(untitled)",
|
||||
"files.js_view_file": "View file",
|
||||
"files.no_files": "No files found",
|
||||
"files.ocr_status": "OCR Status",
|
||||
"files.page_title": "File Records",
|
||||
@@ -1707,6 +1750,21 @@
|
||||
"terms.s6_p3_mid": ". For licensing information, please refer to our",
|
||||
"terms.s6_p3_post": ".",
|
||||
"terms.s6_p3_pre": "For information about how we use cookies, please see our",
|
||||
"translation.copied": "Copied!",
|
||||
"translation.copy": "Copy",
|
||||
"translation.default_language_version": "Default Language Version",
|
||||
"translation.detected_language": "Detected language",
|
||||
"translation.hide_text": "Hide text",
|
||||
"translation.load_translation": "Load translation",
|
||||
"translation.no_translation": "No translation available yet — it may still be processing",
|
||||
"translation.select_language": "Select language…",
|
||||
"translation.select_target": "Please select a target language.",
|
||||
"translation.show_text": "Show text",
|
||||
"translation.translate_btn": "Translate",
|
||||
"translation.translate_to": "Translate to Another Language",
|
||||
"translation.translated_to": "Translated to",
|
||||
"translation.translating": "Translating…",
|
||||
"translation.translation_failed": "Translation failed",
|
||||
"upload.browse_button": "Browse Files",
|
||||
"upload.button_processing": "Processing...",
|
||||
"upload.camera_button": "Take Photo / Scan Document",
|
||||
@@ -1734,21 +1792,5 @@
|
||||
"upload.uploading": "Uploading...",
|
||||
"upload.url_description": "Enter a direct link to a file (PDF, Office documents, or images)",
|
||||
"upload.url_label": "File URL",
|
||||
"upload.url_placeholder": "https://example.com/document.pdf",
|
||||
|
||||
"translation.default_language_version": "Default Language Version",
|
||||
"translation.detected_language": "Detected language",
|
||||
"translation.show_text": "Show text",
|
||||
"translation.hide_text": "Hide text",
|
||||
"translation.copy": "Copy",
|
||||
"translation.load_translation": "Load translation",
|
||||
"translation.translate_to": "Translate to Another Language",
|
||||
"translation.select_language": "Select language…",
|
||||
"translation.translate_btn": "Translate",
|
||||
"translation.translating": "Translating…",
|
||||
"translation.no_translation": "No translation available yet — it may still be processing",
|
||||
"translation.translated_to": "Translated to",
|
||||
"translation.translation_failed": "Translation failed",
|
||||
"translation.select_target": "Please select a target language.",
|
||||
"translation.copied": "Copied!"
|
||||
"upload.url_placeholder": "https://example.com/document.pdf"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user