d22175310a
🚨 Severity: HIGH 💡 Vulnerability: User-provided IMAP `host` in `_test_imap_connection` and `pull_inbox` was not validated against private IPs, creating an SSRF risk. 🎯 Impact: Attackers could abuse the endpoints to port-scan or interact with internal/private network services. 🔧 Fix: Integrated `is_private_ip` from `app.utils.network` to block connections resolving to private, loopback, link-local, or reserved IPs. ✅ Verification: Ran `test_imap_tasks.py` and `test_api_imap_accounts.py` successfully. Checked `ruff` output and diffs. Removed all scratch files from the commit. Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
1896 lines
118 KiB
JSON
1896 lines
118 KiB
JSON
{
|
||
"about.creator_heading": "Meet the Creator",
|
||
"about.creator_name": "Christian Krakau-Louis",
|
||
"about.creator_pre": "DocuElevate is passionately developed by",
|
||
"about.features_admin_api": "Powerful REST API for programmatic access",
|
||
"about.features_admin_config": "Highly configurable via environment variables",
|
||
"about.features_admin_docker": "Docker-ready for easy deployment and scaling",
|
||
"about.features_admin_heading": "Administration",
|
||
"about.features_admin_oauth2": "OAuth2 authentication support with Authentik",
|
||
"about.features_automation_background": "Background processing with Redis and Celery",
|
||
"about.features_automation_gmail": "Gmail and generic email account integration",
|
||
"about.features_automation_heading": "Automation",
|
||
"about.features_automation_imap": "IMAP inbox polling from multiple sources",
|
||
"about.features_automation_ingestion": "Automated document ingestion from various inputs",
|
||
"about.features_heading": "Key Features",
|
||
"about.features_integration_cloud": "Cloud storage: Dropbox, Google Drive, OneDrive, Amazon S3",
|
||
"about.features_integration_heading": "Integration & Storage",
|
||
"about.features_integration_multi_dest": "Multi-destination support (store documents in multiple locations)",
|
||
"about.features_integration_protocols": "Transfer protocols: FTP, SFTP, Email forwarding",
|
||
"about.features_integration_selfhosted": "Self-hosted options: Nextcloud, Paperless NGX, WebDAV",
|
||
"about.features_processing_classification": "Intelligent document classification and date extraction",
|
||
"about.features_processing_heading": "Document Processing",
|
||
"about.features_processing_metadata": "Automated metadata extraction using a pluggable AI provider",
|
||
"about.features_processing_ocr": "OCR powered by Azure Document Intelligence",
|
||
"about.features_processing_pdf": "PDF conversion for various file formats via Gotenberg",
|
||
"about.features_processing_upload": "Simple and secure file uploads with drag & drop support",
|
||
"about.github_logo_alt": "GitHub Logo",
|
||
"about.heading": "About DocuElevate",
|
||
"about.intro_post": " – your modern, intelligent solution for document processing! We’ve built DocuElevate to completely transform the way you handle your documents – from upload to extraction, from processing to storage.",
|
||
"about.intro_pre": "Welcome to ",
|
||
"about.involved_description": "Want to dive into the code, contribute ideas, or learn more about DocuElevate?",
|
||
"about.involved_docs": "Read the Documentation",
|
||
"about.involved_github": "View DocuElevate on GitHub",
|
||
"about.involved_heading": "Get Involved",
|
||
"about.involved_website": "Visit DocuElevate Website",
|
||
"about.legal_description": "We care about your privacy and data security. Please review our:",
|
||
"about.legal_heading": "Privacy & Legal",
|
||
"about.legal_license": "License Information",
|
||
"about.legal_privacy": "Privacy Notice",
|
||
"about.page_title": "About DocuElevate",
|
||
"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}",
|
||
"admin_plans.aria_move_down": "Move {name} down",
|
||
"admin_plans.aria_move_up": "Move {name} up",
|
||
"admin_plans.aria_remove_feature_n": "Remove feature {n}",
|
||
"admin_plans.btn_add_feature": "Add Feature",
|
||
"admin_plans.btn_add_plan": "Add Plan",
|
||
"admin_plans.btn_cancel": "Cancel",
|
||
"admin_plans.btn_create": "Create Plan",
|
||
"admin_plans.btn_delete": "Delete",
|
||
"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…",
|
||
"admin_plans.btn_save_changes": "Save Changes",
|
||
"admin_plans.btn_save_order": "Save Order",
|
||
"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",
|
||
"admin_plans.col_active": "Active",
|
||
"admin_plans.col_monthly": "Monthly",
|
||
"admin_plans.col_monthly_limit": "Monthly Limit",
|
||
"admin_plans.col_order": "Order",
|
||
"admin_plans.col_overage_pct": "Overage %",
|
||
"admin_plans.col_plan": "Plan",
|
||
"admin_plans.col_yearly": "Yearly",
|
||
"admin_plans.coming_soon": "Coming soon",
|
||
"admin_plans.featured_badge": "Featured",
|
||
"admin_plans.field_active": "Active",
|
||
"admin_plans.field_allow_overage": "Allow Overage Billing",
|
||
"admin_plans.field_api_access": "API Access",
|
||
"admin_plans.field_badge_text": "Badge Text",
|
||
"admin_plans.field_buffer": "Buffer:",
|
||
"admin_plans.field_cta_text": "CTA Button Text",
|
||
"admin_plans.field_docs_month": "Docs / Month",
|
||
"admin_plans.field_featured": "Featured / Highlighted",
|
||
"admin_plans.field_lifetime_docs": "Lifetime Docs",
|
||
"admin_plans.field_mailboxes": "Email Mailboxes",
|
||
"admin_plans.field_max_file_size": "Max File Size (MB)",
|
||
"admin_plans.field_name": "Name",
|
||
"admin_plans.field_ocr_pages": "OCR Pages / Month",
|
||
"admin_plans.field_overage_doc_price": "Overage price / doc ($)",
|
||
"admin_plans.field_overage_ocr_price": "Overage price / OCR page ($)",
|
||
"admin_plans.field_plan_id": "Plan ID",
|
||
"admin_plans.field_price_monthly": "Monthly Price ($)",
|
||
"admin_plans.field_price_yearly": "Yearly Price ($)",
|
||
"admin_plans.field_sort_order": "Sort Order",
|
||
"admin_plans.field_storage_dests": "Storage Destinations",
|
||
"admin_plans.field_stripe_monthly": "Stripe Price ID (monthly)",
|
||
"admin_plans.field_stripe_yearly": "Stripe Price ID (yearly)",
|
||
"admin_plans.field_tagline": "Tagline",
|
||
"admin_plans.field_trial_days": "Trial Days",
|
||
"admin_plans.free_label": "Free",
|
||
"admin_plans.heading": "Plan Designer",
|
||
"admin_plans.hint_features": "These bullet points appear on the pricing page card for this plan.",
|
||
"admin_plans.hint_plan_id": "Lowercase slug, cannot be changed after creation.",
|
||
"admin_plans.hint_zero_unlimited": "Enter 0 for unlimited.",
|
||
"admin_plans.js_delete_confirm": "Delete plan \"{id}\"? This cannot be undone.",
|
||
"admin_plans.js_delete_failed": "Delete failed",
|
||
"admin_plans.js_failed_load": "Failed to load plans",
|
||
"admin_plans.js_order_saved": "Order saved!",
|
||
"admin_plans.js_plan_created": "Plan created!",
|
||
"admin_plans.js_plan_deleted": "Plan \"{id}\" deleted.",
|
||
"admin_plans.js_plan_updated": "Plan updated!",
|
||
"admin_plans.js_reorder_failed": "Reorder failed",
|
||
"admin_plans.js_save_failed": "Save failed",
|
||
"admin_plans.js_seed_confirm": "Seed the four default plans? This is a no-op if plans already exist.",
|
||
"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…",
|
||
"admin_plans.modal_close_aria": "Close modal",
|
||
"admin_plans.modal_create_title": "Add Plan",
|
||
"admin_plans.modal_edit_title_prefix": "Edit Plan: ",
|
||
"admin_plans.no_plans_intro": "No plans yet. Click",
|
||
"admin_plans.no_plans_suffix": "to seed the four built-in plans.",
|
||
"admin_plans.overage_0pct": "0% (exact)",
|
||
"admin_plans.overage_100pct": "100%",
|
||
"admin_plans.overage_50pct": "50%",
|
||
"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 × (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 — DocuElevate Admin",
|
||
"admin_plans.section_basic_info": "Basic Info",
|
||
"admin_plans.section_display": "Display",
|
||
"admin_plans.section_features": "Features List",
|
||
"admin_plans.section_overage": "Overage Designer",
|
||
"admin_plans.section_pricing": "Pricing",
|
||
"admin_plans.section_stripe": "Stripe Integration",
|
||
"admin_plans.section_volume": "Volume Limits",
|
||
"admin_plans.status_active": "Active",
|
||
"admin_plans.status_inactive": "Inactive",
|
||
"admin_plans.stripe_desc_after": "to auto-create them. Free plans do not need Stripe Price IDs.",
|
||
"admin_plans.stripe_desc_before": "Enter the Stripe Price IDs for this plan, or use the",
|
||
"admin_plans.stripe_wizard_aria": "Open Stripe Setup Wizard in a new tab",
|
||
"admin_plans.stripe_wizard_link": "Stripe Wizard",
|
||
"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_users.add_user_profile_btn": "Add User Profile",
|
||
"admin_users.admin_only_badge": "Admin Only",
|
||
"admin_users.btn_password": "Password",
|
||
"admin_users.btn_reset": "Reset",
|
||
"admin_users.col_display_name": "Display Name",
|
||
"admin_users.col_documents": "Documents",
|
||
"admin_users.col_email": "Email",
|
||
"admin_users.col_last_upload": "Last Upload",
|
||
"admin_users.col_plan": "Plan",
|
||
"admin_users.col_role": "Role",
|
||
"admin_users.col_upload_limit": "Upload Limit",
|
||
"admin_users.col_user_id": "User ID",
|
||
"admin_users.col_username": "Username",
|
||
"admin_users.create_local_account_btn": "Create Local Account",
|
||
"admin_users.create_local_title": "Create Local Account",
|
||
"admin_users.delete_account_btn": "Delete Account",
|
||
"admin_users.delete_local_confirm": "Are you sure you want to delete the account for",
|
||
"admin_users.delete_local_title": "Delete Local Account",
|
||
"admin_users.delete_local_warning": "This cannot be undone. Documents owned by this user are not deleted.",
|
||
"admin_users.delete_profile_btn": "Delete Profile",
|
||
"admin_users.delete_profile_confirm": "Are you sure you want to delete the profile for",
|
||
"admin_users.delete_profile_title": "Delete User Profile",
|
||
"admin_users.delete_profile_warning": "This only removes the admin-managed profile record. Documents owned by this user are not deleted.",
|
||
"admin_users.deleting": "Deleting…",
|
||
"admin_users.edit_local_title": "Edit Local Account",
|
||
"admin_users.filter_placeholder": "Filter by user ID…",
|
||
"admin_users.global_default": "global default",
|
||
"admin_users.heading": "User Management",
|
||
"admin_users.js_account_created": "Account created",
|
||
"admin_users.js_account_created_msg": "Local account for \"{username}\" was created successfully.",
|
||
"admin_users.js_account_deleted_msg": "Account for \"{username}\" has been removed.",
|
||
"admin_users.js_account_updated": "Account has been updated.",
|
||
"admin_users.js_delete_failed": "Delete failed",
|
||
"admin_users.js_deleted": "Deleted",
|
||
"admin_users.js_email_not_sent": "Email not sent",
|
||
"admin_users.js_email_sent": "Email sent",
|
||
"admin_users.js_email_sent_msg": "Password reset email sent to \"{email}\".",
|
||
"admin_users.js_failed": "Failed",
|
||
"admin_users.js_failed_create": "Failed to create account.",
|
||
"admin_users.js_failed_load_local": "Failed to load local users",
|
||
"admin_users.js_failed_load_users": "Failed to load users",
|
||
"admin_users.js_failed_set_password": "Failed to set password.",
|
||
"admin_users.js_failed_update": "Failed to update account.",
|
||
"admin_users.js_network_error": "Network error",
|
||
"admin_users.js_password_set": "Password set",
|
||
"admin_users.js_password_set_msg": "Password for \"{username}\" has been updated.",
|
||
"admin_users.js_profile_deleted": "Profile for \"{id}\" has been removed.",
|
||
"admin_users.js_profile_saved": "Profile for \"{id}\" has been saved.",
|
||
"admin_users.js_save_failed": "Save failed",
|
||
"admin_users.js_saved": "Saved",
|
||
"admin_users.js_smtp_not_configured": "SMTP is not configured.",
|
||
"admin_users.js_updated": "Updated",
|
||
"admin_users.loading_users": "Loading users…",
|
||
"admin_users.local_account_active": "Account active",
|
||
"admin_users.local_accounts_heading": "Local User Accounts",
|
||
"admin_users.local_accounts_subheading": "Email/password accounts created directly on this server.",
|
||
"admin_users.local_admin_privileges": "Grant admin privileges",
|
||
"admin_users.local_admin_privileges_short": "Admin privileges",
|
||
"admin_users.local_create_btn": "Create Account",
|
||
"admin_users.local_create_one": "Create one.",
|
||
"admin_users.local_creating": "Creating…",
|
||
"admin_users.local_display_name_optional": "(optional)",
|
||
"admin_users.local_loading": "Loading…",
|
||
"admin_users.local_no_accounts": "No local accounts yet.",
|
||
"admin_users.local_password_hint": "Minimum 8 characters.",
|
||
"admin_users.local_saving": "Saving…",
|
||
"admin_users.local_username_hint": "3–64 characters. Letters, numbers, hyphens and underscores only.",
|
||
"admin_users.modal_add_title": "Add User Profile",
|
||
"admin_users.modal_billing_cycle_label": "Billing Cycle",
|
||
"admin_users.modal_billing_monthly": "Monthly",
|
||
"admin_users.modal_billing_yearly": "Yearly",
|
||
"admin_users.modal_block_hint": "(prevents new document uploads)",
|
||
"admin_users.modal_block_label": "Block this user",
|
||
"admin_users.modal_close_aria": "Close dialog",
|
||
"admin_users.modal_complimentary_hint": "(user keeps tier benefits but is never billed — set automatically for admin accounts)",
|
||
"admin_users.modal_complimentary_label": "Complimentary plan",
|
||
"admin_users.modal_daily_limit_hint": "(leave empty to use global default)",
|
||
"admin_users.modal_daily_limit_label": "Daily Upload Limit",
|
||
"admin_users.modal_daily_limit_placeholder": "e.g. 50 (0 = unlimited)",
|
||
"admin_users.modal_display_name_label": "Display Name",
|
||
"admin_users.modal_display_name_placeholder": "Alice Smith (optional)",
|
||
"admin_users.modal_edit_title": "Edit User Profile",
|
||
"admin_users.modal_notes_label": "Admin Notes",
|
||
"admin_users.modal_notes_placeholder": "Internal notes visible only to admins…",
|
||
"admin_users.modal_period_start_hint": "Annual carry-over calculates from this date. Leave blank for monthly enforcement.",
|
||
"admin_users.modal_period_start_label": "Subscription Period Start",
|
||
"admin_users.modal_plan_business": "Business — $7.99/mo (300/mo, unlimited mailboxes)",
|
||
"admin_users.modal_plan_free": "Free — 25 lifetime files",
|
||
"admin_users.modal_plan_hint": "Sets the quota limits for this user. Limits are enforced on upload.",
|
||
"admin_users.modal_plan_label": "Subscription Plan",
|
||
"admin_users.modal_plan_professional": "Professional — $5.99/mo (150/mo, 3 mailboxes)",
|
||
"admin_users.modal_plan_starter": "Starter — $2.99/mo (50/mo, 1 mailbox)",
|
||
"admin_users.modal_save_changes": "Save Changes",
|
||
"admin_users.modal_saving": "Saving…",
|
||
"admin_users.modal_user_id_hint": "The stable identifier that matches owner_id in documents.",
|
||
"admin_users.modal_user_id_label": "User ID",
|
||
"admin_users.modal_user_id_placeholder": "user@example.com or OAuth sub",
|
||
"admin_users.new_account_btn": "New Account",
|
||
"admin_users.new_password_label": "New Password",
|
||
"admin_users.no_users_add_hint": "Upload some documents or add a profile above.",
|
||
"admin_users.no_users_found": "No users found.",
|
||
"admin_users.no_users_search_hint": "Try a different search term.",
|
||
"admin_users.page_title": "User Management – Admin – DocuElevate",
|
||
"admin_users.pagination_page_of": "of",
|
||
"admin_users.per_day": "/ day",
|
||
"admin_users.role_admin": "Admin",
|
||
"admin_users.role_user": "User",
|
||
"admin_users.search_users_label": "Search users",
|
||
"admin_users.set_password_btn": "Set Password",
|
||
"admin_users.set_password_desc": "The user should change this password after logging in.",
|
||
"admin_users.set_password_desc_pre": "Set a new password directly for",
|
||
"admin_users.set_password_title": "Set Temporary Password",
|
||
"admin_users.setting": "Setting…",
|
||
"admin_users.status_blocked": "Blocked",
|
||
"admin_users.status_unverified": "Unverified",
|
||
"admin_users.subheading": "Manage user profiles, per-user upload limits, and document ownership.",
|
||
"admin_users.total_count_users": "{count} users",
|
||
"admin_users.total_no_users": "No users",
|
||
"admin_users.total_one_user": "1 user",
|
||
"api_tokens.col_created": "Created",
|
||
"api_tokens.col_last_ip": "Last IP",
|
||
"api_tokens.col_last_used": "Last Used",
|
||
"api_tokens.col_name": "Name",
|
||
"api_tokens.col_prefix": "Token Prefix",
|
||
"api_tokens.copy_to_clipboard": "Copy token to clipboard",
|
||
"api_tokens.copy_upload_example": "Copy upload example to clipboard",
|
||
"api_tokens.copy_warning_1": "Copy this token now — it will",
|
||
"api_tokens.copy_warning_2": "not be shown again",
|
||
"api_tokens.create_heading": "Create New Token",
|
||
"api_tokens.create_token": "Create Token",
|
||
"api_tokens.creating": "Creating…",
|
||
"api_tokens.heading": "API Tokens",
|
||
"api_tokens.intro": "Create personal API tokens to interact with the DocuElevate API programmatically. Use tokens for webhook uploads, CI/CD pipelines, or any script that needs to upload or retrieve documents.",
|
||
"api_tokens.loading_tokens": "Loading tokens…",
|
||
"api_tokens.never": "Never",
|
||
"api_tokens.no_tokens_heading": "No API tokens yet",
|
||
"api_tokens.no_tokens_help": "Create your first token above to get started.",
|
||
"api_tokens.page_title": "API Tokens – DocuElevate",
|
||
"api_tokens.revoke": "Revoke",
|
||
"api_tokens.revoke_prefix": "Revoke token",
|
||
"api_tokens.status_active": "Active",
|
||
"api_tokens.status_revoked": "Revoked",
|
||
"api_tokens.table_aria": "API Tokens",
|
||
"api_tokens.token_created": "Token created successfully!",
|
||
"api_tokens.token_name_label": "Token name",
|
||
"api_tokens.token_name_placeholder": "e.g. CI Pipeline, Webhook Upload, My Script",
|
||
"api_tokens.usage_heading": "Usage Example",
|
||
"api_tokens.usage_intro_post": "header with any API request:",
|
||
"api_tokens.usage_intro_pre": "Use your API token in the",
|
||
"api_tokens.your_tokens": "Your Tokens",
|
||
"app.name": "DocuElevate",
|
||
"attribution.heading": "Third-Party Software Attributions",
|
||
"attribution.intro": "DocuElevate uses several open source libraries and tools. We are grateful to the developers of these projects for their contributions to open source software.",
|
||
"attribution.page_title": "DocuElevate - Third-Party Attributions",
|
||
"attribution.paramiko_lgpl_note": "Note: This library is licensed under the GNU Lesser General Public License v2.1 (LGPL-2.1)",
|
||
"attribution.section_docker": "Docker Images",
|
||
"attribution.section_frontend": "Frontend Dependencies",
|
||
"attribution.section_python": "Python Dependencies",
|
||
"attribution.special_lgpl_link": "here",
|
||
"attribution.special_lgpl_post": ".",
|
||
"attribution.special_lgpl_pre": "A copy of the LGPL license can be found",
|
||
"attribution.special_source_post": ".",
|
||
"attribution.special_source_pre": "This software includes Paramiko, which is licensed under LGPL. The source code for Paramiko is available at",
|
||
"attribution.special_title": "Special Attribution:",
|
||
"audit.col_ip": "IP",
|
||
"audit.col_resource": "Resource",
|
||
"audit.col_timestamp": "Timestamp",
|
||
"audit.critical": "Critical",
|
||
"audit.filter_action": "Action",
|
||
"audit.filter_all_actions": "All actions",
|
||
"audit.filter_all_users": "All users",
|
||
"audit.filter_resource_placeholder": "e.g. document, user",
|
||
"audit.filter_resource_type": "Resource Type",
|
||
"audit.filter_severity": "Severity",
|
||
"audit.filter_user": "User",
|
||
"audit.filters_section_label": "Audit log filters",
|
||
"audit.next": "Next",
|
||
"audit.next_label": "Next page",
|
||
"audit.no_events": "No audit events recorded yet.",
|
||
"audit.no_events_hint": "Significant actions (logins, document operations, settings changes) will appear here.",
|
||
"audit.page_title": "Audit Logs - DocuElevate",
|
||
"audit.pagination_label": "Audit log pagination",
|
||
"audit.prev": "Prev",
|
||
"audit.prev_label": "Previous page",
|
||
"audit.refresh_label": "Refresh audit logs",
|
||
"audit.siem_disabled_title": "SIEM forwarding is disabled",
|
||
"audit.siem_enabled_title": "Events are being forwarded to ",
|
||
"audit.siem_off": "SIEM: Off",
|
||
"audit.subtitle": "Comprehensive, append-only record of all significant actions.",
|
||
"audit.table_label": "Audit log events",
|
||
"audit.title": "Audit Logs",
|
||
"auth.confirm_password": "Confirm Password",
|
||
"auth.create_account": "Create account",
|
||
"auth.display_name_label": "Display Name",
|
||
"auth.email_label": "Email",
|
||
"auth.forgot_password": "Forgot Password?",
|
||
"auth.forgot_username": "Forgot username?",
|
||
"auth.login": "Log In",
|
||
"auth.login_title": "Log In",
|
||
"auth.logo_alt": "DocuElevate Logo",
|
||
"auth.logout": "Log Out",
|
||
"auth.my_account": "My Account",
|
||
"auth.no_account": "Don't have an account?",
|
||
"auth.or_continue_with": "Or continue with",
|
||
"auth.password_label": "Password",
|
||
"auth.profile": "Profile",
|
||
"auth.remember_me": "Remember me",
|
||
"auth.return_home": "Return to Home",
|
||
"auth.sign_in": "Sign in",
|
||
"auth.sign_in_sso": "Sign in with SSO",
|
||
"auth.sign_in_with": "Sign in with",
|
||
"auth.sign_in_with_username": "Sign in with username",
|
||
"auth.signup": "Sign Up",
|
||
"auth.signup_title": "Sign Up",
|
||
"auth.username_label": "Username",
|
||
"auth.username_or_email": "Username or Email",
|
||
"auth.verify_email_back_sign_in": "Back to sign in",
|
||
"auth.verify_email_expiry": "The link expires in 24 hours. If you don’t see the email, check your spam folder.",
|
||
"auth.verify_email_heading": "Check your inbox",
|
||
"auth.verify_email_message": "We’ve sent you a verification email. Please click the link in the email to activate your account.",
|
||
"auth.verify_email_page_title": "DocuElevate - Verify Your Email",
|
||
"auth.verify_email_resend_aria_label": "Email address for resend",
|
||
"auth.verify_email_resend_button": "Resend verification email",
|
||
"auth.verify_email_resend_label": "Email address",
|
||
"auth.verify_email_resend_placeholder": "Enter your email address",
|
||
"auth.verify_email_resend_prompt": "Didn’t receive it?",
|
||
"backup.archives_heading": "Backup Archives",
|
||
"backup.backup_now": "Backup Now",
|
||
"backup.clean_up": "Clean Up",
|
||
"backup.cleanup_title": "Run retention cleanup now",
|
||
"backup.col_created": "Created",
|
||
"backup.col_filename": "Filename",
|
||
"backup.col_size": "Size",
|
||
"backup.col_storage": "Storage",
|
||
"backup.col_type": "Type",
|
||
"backup.config_auto_backup": "Auto-backup",
|
||
"backup.config_remote_dest": "Remote destination",
|
||
"backup.config_retention": "Retention",
|
||
"backup.config_total_size": "Total local size",
|
||
"backup.confirm_btn": "Confirm",
|
||
"backup.confirm_title": "Confirm action",
|
||
"backup.heading": "Backup Management",
|
||
"backup.local_only": "Local only",
|
||
"backup.no_backups": "No backups yet.",
|
||
"backup.no_backups_hint": "Click Backup Now to create your first backup.",
|
||
"backup.page_title": "Backup Management",
|
||
"backup.records_label": "records",
|
||
"backup.restore_btn": "Restore",
|
||
"backup.restore_desc_mid": "backup archive to restore the database.",
|
||
"backup.restore_desc_pre": "Upload a",
|
||
"backup.restore_desc_warning": "This will overwrite all current data.",
|
||
"backup.restore_file_label": "Backup archive (.db.gz)",
|
||
"backup.restore_heading": "Restore from File",
|
||
"backup.restoring": "Restoring…",
|
||
"backup.retention_daily_detail": "– kept for 3 weeks",
|
||
"backup.retention_heading": "Retention policy",
|
||
"backup.retention_hourly_detail": "– kept for 4 days",
|
||
"backup.retention_note": "Backups beyond these limits are automatically pruned after each new backup is created.",
|
||
"backup.retention_weekly_detail": "– kept for ~3 months",
|
||
"backup.snapshots": "snapshots",
|
||
"backup.status_ok": "ok",
|
||
"backup.storage_local": "local",
|
||
"backup.subtitle": "Database backups are created automatically: hourly (4 days), daily (3 weeks), weekly (13 weeks).",
|
||
"backup.table_aria": "Backup archives",
|
||
"backup.trigger_daily": "Backup Now (Daily)",
|
||
"backup.trigger_hourly": "Backup Now (Hourly)",
|
||
"backup.trigger_weekly": "Backup Now (Weekly)",
|
||
"backup.type_daily": "Daily",
|
||
"backup.type_hourly": "Hourly",
|
||
"backup.type_weekly": "Weekly",
|
||
"billing.go_to_dashboard": "Go to dashboard",
|
||
"billing.manage_subscription": "Manage subscription",
|
||
"billing.success_heading": "You're all set!",
|
||
"billing.success_message": "Your subscription has been activated. Thank you for choosing DocuElevate!",
|
||
"billing.success_page_title": "DocuElevate - Subscription Activated",
|
||
"common.actions": "Actions",
|
||
"common.active": "Active",
|
||
"common.all": "All",
|
||
"common.avatar": "Avatar",
|
||
"common.back": "Back",
|
||
"common.cancel": "Cancel",
|
||
"common.close": "Close",
|
||
"common.col_pending": "Pending",
|
||
"common.completed": "Completed",
|
||
"common.confirm": "Confirm",
|
||
"common.copied": "Copied!",
|
||
"common.copy": "Copy",
|
||
"common.create": "Create",
|
||
"common.created": "Created",
|
||
"common.date": "Date",
|
||
"common.delete": "Delete",
|
||
"common.description": "Description",
|
||
"common.details": "Details",
|
||
"common.disabled": "Disabled",
|
||
"common.download": "Download",
|
||
"common.duplicate": "Duplicate",
|
||
"common.edit": "Edit",
|
||
"common.enabled": "Enabled",
|
||
"common.error": "Error",
|
||
"common.failed": "Failed",
|
||
"common.filter": "Filter",
|
||
"common.inactive": "Inactive",
|
||
"common.info": "Info",
|
||
"common.loading": "Loading...",
|
||
"common.name": "Name",
|
||
"common.next": "Next",
|
||
"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",
|
||
"common.prev_page": "Previous page",
|
||
"common.previous": "Previous",
|
||
"common.processing": "Processing",
|
||
"common.refresh": "Refresh",
|
||
"common.reset": "Reset",
|
||
"common.retry": "Retry",
|
||
"common.save": "Save",
|
||
"common.search": "Search",
|
||
"common.select": "Select",
|
||
"common.select_placeholder": "— select —",
|
||
"common.size": "Size",
|
||
"common.status": "Status",
|
||
"common.submit": "Submit",
|
||
"common.success": "Success",
|
||
"common.tags": "Tags",
|
||
"common.test": "Test",
|
||
"common.test_connection": "Test Connection",
|
||
"common.type": "Type",
|
||
"common.update": "Update",
|
||
"common.updated": "Updated",
|
||
"common.upload": "Upload",
|
||
"common.view": "View",
|
||
"common.warning": "Warning",
|
||
"common.yes": "Yes",
|
||
"cookie.accept": "Got it",
|
||
"cookie.learn_more": "Learn more",
|
||
"cookie.message": "This website uses cookies to improve your experience.",
|
||
"cookie.notice": "DocuElevate uses only essential session cookies required for authentication and service operation. No tracking or analytics cookies are used.",
|
||
"cookie.notice_label": "Cookie notice",
|
||
"cookie.policy_link": "Cookie Policy",
|
||
"cookie.privacy_link": "Privacy Notice",
|
||
"cookie_policy.heading": "Cookie Policy",
|
||
"cookie_policy.last_updated": "Last Updated:",
|
||
"cookie_policy.page_title": "Cookie Policy - DocuElevate",
|
||
"cookie_policy.s1_heading": "What Are Cookies",
|
||
"cookie_policy.s1_p1": "Cookies are small text files that are stored on your computer or mobile device when you visit a website. They are widely used to make websites work more efficiently and provide information to the website owners.",
|
||
"cookie_policy.s2_heading": "How We Use Cookies",
|
||
"cookie_policy.s2_li1_body": "To identify you when you sign in and maintain your session while you use the application.",
|
||
"cookie_policy.s2_li1_label": "Authentication & Session Management:",
|
||
"cookie_policy.s2_p1_post": "for the following purpose:",
|
||
"cookie_policy.s2_p1_pre": "DocuElevate uses",
|
||
"cookie_policy.s2_p1_strong": "only strictly necessary session cookies",
|
||
"cookie_policy.s2_p2": "These cookies are mandatory for the proper functioning of our service. Without these cookies, you would be required to log in repeatedly during your browsing session.",
|
||
"cookie_policy.s2_p3": "Because these cookies are strictly necessary for the service to function, they are exempt from prior-consent requirements under the EU ePrivacy Directive (Art. 5(3)) and equivalent national implementations. We do not set any optional, analytics, advertising, or tracking cookies.",
|
||
"cookie_policy.s3_col_duration": "Duration",
|
||
"cookie_policy.s3_col_name": "Name",
|
||
"cookie_policy.s3_col_purpose": "Purpose",
|
||
"cookie_policy.s3_col_type": "Type",
|
||
"cookie_policy.s3_heading": "Cookie Details",
|
||
"cookie_policy.s3_row1_duration": "Session (deleted on browser close or logout)",
|
||
"cookie_policy.s3_row1_purpose": "Maintains your authenticated session; required for login to function.",
|
||
"cookie_policy.s3_row1_type": "Strictly Necessary",
|
||
"cookie_policy.s3_row2_duration": "Persistent (browser localStorage)",
|
||
"cookie_policy.s3_row2_purpose": "Stores your acknowledgement of the cookie notice so it is not shown repeatedly (stored in localStorage, not a cookie).",
|
||
"cookie_policy.s3_row2_type": "Strictly Necessary",
|
||
"cookie_policy.s4_heading": "No Third-Party Cookies",
|
||
"cookie_policy.s4_p1": "DocuElevate does not use any third-party cookies, tracking cookies, advertising cookies, or analytics cookies. We respect your privacy and only implement the minimum cookies required for our service to function.",
|
||
"cookie_policy.s4_p2_pre": "For more information about how we handle your data, please see our",
|
||
"cookie_policy.s4_privacy_link": "Privacy Notice",
|
||
"cookie_policy.s5_heading": "Managing Cookies",
|
||
"cookie_policy.s5_p1": "Most web browsers allow you to control cookies through their settings. However, blocking or deleting our session cookies will prevent DocuElevate from functioning, as user authentication relies on these cookies.",
|
||
"cookie_policy.s5_p2": "You may also clear the cookie notice acknowledgement stored in your browser's localStorage at any time via your browser's developer tools (Application → Local Storage).",
|
||
"cookie_policy.s5_p3_and": "and",
|
||
"cookie_policy.s5_p3_pre": "This Cookie Policy is part of and incorporated into our",
|
||
"cookie_policy.s5_privacy_link": "Privacy Notice",
|
||
"cookie_policy.s5_terms_link": "Terms of Service",
|
||
"credentials.col_action": "Action",
|
||
"credentials.col_credential": "Credential",
|
||
"credentials.col_source": "Source",
|
||
"credentials.configured": "Configured",
|
||
"credentials.edit_in_settings": "Edit in Settings",
|
||
"credentials.legend_db": "Value stored in the database (encrypted at rest; overrides environment variable)",
|
||
"credentials.legend_env_after": " file",
|
||
"credentials.legend_env_before": "Value from environment variable or ",
|
||
"credentials.legend_missing": "Credential not set — integration will not work",
|
||
"credentials.legend_restart": "Restart required when this credential is rotated",
|
||
"credentials.legend_title": "Legend",
|
||
"credentials.manage_settings": "Manage Settings",
|
||
"credentials.not_configured": "Not Configured",
|
||
"credentials.page_title": "Credential Audit - DocuElevate",
|
||
"credentials.raw_json": "Raw JSON (API)",
|
||
"credentials.restart_title": "Restart required after rotating this credential",
|
||
"credentials.source_db_title": "Stored in database (encrypted)",
|
||
"credentials.source_env_title": "From environment variable",
|
||
"credentials.status_missing": "Missing",
|
||
"credentials.subtitle": "Overview of all sensitive credentials used by DocuElevate. No secret values are shown here — only whether each credential is configured and where it comes from.",
|
||
"credentials.table_for": "Credentials for",
|
||
"credentials.title": "Credential Audit",
|
||
"credentials.total_credentials": "Total Credentials",
|
||
"dashboard.active_integrations": "Active Integrations",
|
||
"dashboard.files_this_month": "Files This Month",
|
||
"dashboard.files_today": "Files Today",
|
||
"dashboard.ocr_processed": "OCR Processed",
|
||
"dashboard.quick_actions": "Quick Actions",
|
||
"dashboard.recent_activity": "Recent Activity",
|
||
"dashboard.storage_targets": "Storage Targets",
|
||
"dashboard.title": "Dashboard",
|
||
"dashboard.total_files": "Total Files",
|
||
"dashboard.welcome": "Welcome to DocuElevate",
|
||
"devices.col_created": "Connected",
|
||
"devices.col_device": "Device",
|
||
"devices.col_last_ip": "Last IP",
|
||
"devices.col_last_seen": "Last Seen",
|
||
"devices.col_last_used": "Last Used",
|
||
"devices.col_platform": "Platform",
|
||
"devices.col_push_token": "Push Token",
|
||
"devices.col_status": "Status",
|
||
"devices.col_token_prefix": "Token Prefix",
|
||
"devices.confirm_deactivate_device": "Remove this device? It will stop receiving push notifications.",
|
||
"devices.confirm_revoke_token": "Revoke access for this device? It will need to log in again.",
|
||
"devices.deactivate_device": "Remove",
|
||
"devices.device_removed_success": "Device removed successfully.",
|
||
"devices.heading": "Mobile Devices",
|
||
"devices.intro": "Manage your mobile app connections and registered devices. You can revoke access for individual devices here.",
|
||
"devices.loading": "Loading devices…",
|
||
"devices.mobile_tokens_description": "These tokens were created when you logged in via the mobile app or scanned a QR code. Revoking a token will sign the device out.",
|
||
"devices.mobile_tokens_heading": "Mobile App Tokens",
|
||
"devices.no_devices": "No registered devices",
|
||
"devices.no_devices_help": "Install the DocuElevate mobile app and log in to register a device for push notifications.",
|
||
"devices.no_mobile_tokens": "No mobile app tokens",
|
||
"devices.no_mobile_tokens_help": "Log in via the mobile app or scan a QR code to create a mobile token.",
|
||
"devices.page_title": "Devices – DocuElevate",
|
||
"devices.qr_login_cta": "Connect a new device via QR code",
|
||
"devices.registered_devices_description": "Devices registered for push notifications from the DocuElevate mobile app.",
|
||
"devices.registered_devices_heading": "Registered Devices",
|
||
"devices.revoke_token": "Revoke",
|
||
"devices.status_active": "Active",
|
||
"devices.status_inactive": "Inactive",
|
||
"devices.status_revoked": "Revoked",
|
||
"devices.token_revoked_success": "Device token revoked successfully.",
|
||
"duplicates.file_id_label": "File ID",
|
||
"duplicates.file_id_placeholder": "e.g. 42",
|
||
"duplicates.find_btn": "Find",
|
||
"duplicates.found_files": "duplicate file(s) total.",
|
||
"duplicates.found_groups": "duplicate group(s) with",
|
||
"duplicates.found_prefix": "Found",
|
||
"duplicates.group_aria": "Duplicate group",
|
||
"duplicates.heading": "Duplicate Documents",
|
||
"duplicates.how_it_works_heading": "How near-duplicate detection works",
|
||
"duplicates.max_results_label": "Max results",
|
||
"duplicates.near_dup_desc": "Select a document to check whether any other files contain the same (or very similar) content — even if they were scanned at different times and have different SHA-256 hashes.",
|
||
"duplicates.near_dup_heading": "Find Near-Duplicates for a Document",
|
||
"duplicates.no_exact_heading": "No exact duplicates found",
|
||
"duplicates.page_title": "Duplicate Documents - DocuElevate",
|
||
"duplicates.pagination_aria": "Pagination",
|
||
"duplicates.role_duplicate": "Duplicate",
|
||
"duplicates.role_original": "Original",
|
||
"duplicates.tab_exact": "Exact Duplicates",
|
||
"duplicates.tab_near": "Near-Duplicate Finder",
|
||
"duplicates.tabs_aria": "Duplicate detection tabs",
|
||
"duplicates.threshold_label": "Similarity threshold",
|
||
"duplicates.view_dup_aria": "View duplicate file",
|
||
"duplicates.view_original_aria": "View original file",
|
||
"error.404_code": "404",
|
||
"error.404_heading": "Oops, we couldn’t find that page!",
|
||
"error.404_home": "Return Home",
|
||
"error.404_message": "It seems DocuElevate has misplaced the document you were looking for. Don’t worry – we’ve got your back.",
|
||
"error.404_title": "404 - Not Found",
|
||
"error.500_code": "500",
|
||
"error.500_debug_info": "Show Debug Info",
|
||
"error.500_description": "Our servers encountered a mishap and need a moment.",
|
||
"error.500_heading": "Oops! Something Went Wrong.",
|
||
"error.500_home": "Go Home",
|
||
"error.500_img_alt": "Illustration of a server error",
|
||
"error.500_message1": "Our servers encountered a mishap and need a moment. Maybe the hamsters spilled their coffee?",
|
||
"error.500_message2": "We're already on it—sorting files, rebooting servers, and recalibrating flux capacitors.",
|
||
"error.500_title": "Server Error - DocuElevate",
|
||
"error.forbidden": "Forbidden",
|
||
"error.forbidden_message": "You do not have permission to access this page.",
|
||
"error.not_found": "Page not found",
|
||
"error.not_found_message": "The page you are looking for does not exist.",
|
||
"error.server_error": "Internal Server Error",
|
||
"error.server_error_message": "Something went wrong. Please try again later.",
|
||
"error.unauthorized": "Unauthorized",
|
||
"error.unauthorized_message": "You need to log in to access this page.",
|
||
"files.action_delete": "Delete file",
|
||
"files.action_details": "View details",
|
||
"files.action_preview": "Quick preview",
|
||
"files.bulk_clear_selection": "Clear Selection",
|
||
"files.bulk_cloud_ocr": "Re-run Cloud OCR",
|
||
"files.bulk_delete": "Delete Selected",
|
||
"files.bulk_download": "Download as ZIP",
|
||
"files.bulk_reprocess": "Reprocess Selected",
|
||
"files.delete_modal_cancel": "Cancel",
|
||
"files.delete_modal_confirm": "Delete",
|
||
"files.delete_modal_message": "Are you sure you want to delete this file?",
|
||
"files.delete_modal_title": "Confirm Deletion",
|
||
"files.document_title": "Document Title",
|
||
"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",
|
||
"files.filter_all_providers": "All Providers",
|
||
"files.filter_all_statuses": "All Statuses",
|
||
"files.filter_all_types": "All Types",
|
||
"files.filter_apply": "Apply Filters",
|
||
"files.filter_clear": "Clear",
|
||
"files.filter_date_from": "Date From",
|
||
"files.filter_date_from_aria": "Filter from date",
|
||
"files.filter_date_to": "Date To",
|
||
"files.filter_date_to_aria": "Filter to date",
|
||
"files.filter_form_aria": "Filter files",
|
||
"files.filter_mime_type": "MIME Type",
|
||
"files.filter_ocr_all": "All Files",
|
||
"files.filter_ocr_good": "Good quality",
|
||
"files.filter_ocr_poor": "Poor quality",
|
||
"files.filter_ocr_quality": "OCR Quality",
|
||
"files.filter_ocr_quality_aria": "Filter by OCR quality score",
|
||
"files.filter_ocr_unchecked": "Not yet assessed",
|
||
"files.filter_search_label": "Search Filename",
|
||
"files.filter_search_placeholder": "Enter filename...",
|
||
"files.filter_storage_provider": "Storage Provider",
|
||
"files.filter_tags_aria": "Filter by tags (comma-separated)",
|
||
"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_reset_zoom": "Reset zoom",
|
||
"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.js_zoom_in": "Zoom in",
|
||
"files.js_zoom_out": "Zoom out",
|
||
"files.no_files": "No files found",
|
||
"files.ocr_status": "OCR Status",
|
||
"files.page_title": "File Records",
|
||
"files.pagination_files": "files",
|
||
"files.pagination_first": "First",
|
||
"files.pagination_last": "Last",
|
||
"files.pagination_nav_aria": "File list pagination",
|
||
"files.pagination_next": "Next",
|
||
"files.pagination_of": "of",
|
||
"files.pagination_previous": "Previous",
|
||
"files.pagination_showing": "Showing",
|
||
"files.preview_modal_close": "Close preview",
|
||
"files.preview_modal_title": "Preview",
|
||
"files.queue_banner_items": "item(s) are currently queued or being processed. Files will appear here once processing completes.",
|
||
"files.queue_banner_link": "View Queue",
|
||
"files.saved_searches_empty": "No saved searches yet",
|
||
"files.saved_searches_error": "Could not load saved searches",
|
||
"files.saved_searches_label": "Saved Searches",
|
||
"files.saved_searches_save": "Save Current",
|
||
"files.saved_searches_save_aria": "Save current filters as a saved search",
|
||
"files.search_results_empty": "No results found.",
|
||
"files.search_results_title": "Search Results",
|
||
"files.status_duplicate": "Duplicate",
|
||
"files.table_actions": "Actions",
|
||
"files.table_aria": "File records",
|
||
"files.table_created_at": "Created At",
|
||
"files.table_empty": "No files found",
|
||
"files.table_id": "ID",
|
||
"files.table_mime_type": "MIME Type",
|
||
"files.table_original_filename": "Original Filename",
|
||
"files.table_select_all": "Select all files on this page",
|
||
"files.tags": "Tags",
|
||
"files.title": "Files",
|
||
"files.upload_modal_aria": "Upload progress",
|
||
"files.upload_modal_close": "Close upload progress",
|
||
"files.upload_modal_header": "Uploading Files",
|
||
"files.uploaded": "Uploaded",
|
||
"footer.about": "About",
|
||
"footer.attribution": "Attribution",
|
||
"footer.attributions": "Attributions",
|
||
"footer.cookies": "Cookies",
|
||
"footer.copyright": "DocuElevate {year}",
|
||
"footer.imprint": "Imprint",
|
||
"footer.license": "License",
|
||
"footer.navigation": "Footer navigation",
|
||
"footer.privacy": "Privacy",
|
||
"footer.terms": "Terms",
|
||
"footer.version": "Version {version}",
|
||
"help.destinations_dropbox": "Dropbox",
|
||
"help.destinations_dropbox_desc": "OAuth-linked. Files land in your chosen folder.",
|
||
"help.destinations_email": "Email Forwarding",
|
||
"help.destinations_email_desc": "Processed files sent as SMTP attachments.",
|
||
"help.destinations_google_drive": "Google Drive",
|
||
"help.destinations_google_drive_desc": "Service account or OAuth. Supports shared drives.",
|
||
"help.destinations_heading": "Destinations – Where Documents Go",
|
||
"help.destinations_nextcloud": "Nextcloud / WebDAV",
|
||
"help.destinations_nextcloud_desc": "Self-hosted cloud storage via WebDAV.",
|
||
"help.destinations_onedrive": "OneDrive",
|
||
"help.destinations_onedrive_desc": "Microsoft Graph API integration.",
|
||
"help.destinations_paperless": "Paperless-ngx",
|
||
"help.destinations_paperless_desc": "Push documents straight into Paperless for archival.",
|
||
"help.destinations_s3": "Amazon S3",
|
||
"help.destinations_s3_desc": "Any S3-compatible bucket (AWS, MinIO, Wasabi).",
|
||
"help.destinations_sftp": "SFTP / FTP",
|
||
"help.destinations_sftp_desc": "Secure file transfer to any server.",
|
||
"help.destinations_webhook": "Webhook",
|
||
"help.destinations_webhook_desc": "POST metadata to any external endpoint.",
|
||
"help.documentation": "Documentation",
|
||
"help.faq": "Frequently Asked Questions",
|
||
"help.faq_1_a": "Navigate to the Upload page, drag-and-drop your files or click Choose File. DocuElevate converts images and office documents to PDF, runs OCR, and extracts metadata automatically.",
|
||
"help.faq_1_q": "How do I upload documents?",
|
||
"help.faq_2_a": "PDF, JPEG, PNG, TIFF, BMP, GIF, DOCX, XLSX, PPTX, ODT, ODS, TXT, RTF, and HTML. Non-PDF files are automatically converted to PDF before processing.",
|
||
"help.faq_2_q": "Which file formats are supported?",
|
||
"help.faq_3_a": "Yes. Go to Email Ingestion, add an IMAP account, and DocuElevate will poll for new messages and process attachments automatically.",
|
||
"help.faq_3_q": "Can I ingest documents from email?",
|
||
"help.faq_4_a": "Pipelines let you chain processing steps – OCR, AI extraction, format conversion – and route the result to one or more destinations. Create and manage them from the Pipelines page.",
|
||
"help.faq_4_q": "How do processing pipelines work?",
|
||
"help.faq_5_a": "DocuElevate encrypts credentials at rest, communicates over TLS, and never stores your documents longer than necessary. See the Privacy Notice for full details.",
|
||
"help.faq_5_a_post": " for full details.",
|
||
"help.faq_5_a_pre": "DocuElevate encrypts credentials at rest, communicates over TLS, and never stores your documents longer than necessary. See the ",
|
||
"help.faq_5_q": "Is my data secure?",
|
||
"help.faq_heading": "Frequently Asked Questions",
|
||
"help.getting_started": "Getting Started",
|
||
"help.heading": "Help Center",
|
||
"help.ingestion_curl": "cURL / REST API",
|
||
"help.ingestion_curl_desc": "Use the REST API to push documents programmatically. Authenticate with a Bearer token and POST files to the upload endpoint.",
|
||
"help.ingestion_heading": "Data Ingestion Tools",
|
||
"help.ingestion_mobile": "Mobile Apps",
|
||
"help.ingestion_mobile_desc": "Use any mobile scanning app that supports custom HTTP upload destinations to send photos and scans to DocuElevate from your phone or tablet.",
|
||
"help.ingestion_scanners": "Network Scanners",
|
||
"help.ingestion_scanners_desc": "Point any network scanner or multifunction printer at DocuElevate's upload endpoint. Scanned documents land directly in your processing queue.",
|
||
"help.ingestion_watched_folders": "Watched Folders",
|
||
"help.ingestion_watched_folders_desc": "Configure a local or network folder to be monitored. Any file placed in a watched folder is automatically uploaded and processed by DocuElevate.",
|
||
"help.ingestion_zapier": "Zapier / n8n / Make",
|
||
"help.ingestion_zapier_desc": "Integrate DocuElevate into your automation workflows with Zapier, n8n, or Make. Use the REST API actions to trigger document uploads from any event.",
|
||
"help.meta_description": "Get help with DocuElevate – find guides on uploading documents, connecting cloud storage, setting up pipelines, and more.",
|
||
"help.og_description": "Get help with DocuElevate – find guides on uploading documents, connecting cloud storage, setting up pipelines, and more.",
|
||
"help.page_title": "Help Center",
|
||
"help.privacy_notice": "Privacy Notice",
|
||
"help.quickstart_heading": "Quick Start",
|
||
"help.quickstart_storage": "Connect Storage",
|
||
"help.quickstart_storage_desc": "Head to Settings and link your cloud accounts. Processed documents are automatically routed to every destination you configure.",
|
||
"help.quickstart_storage_desc_full": "Head to Integrations and link your cloud storage accounts. DocuElevate supports Dropbox, Google Drive, OneDrive, Amazon S3, Nextcloud, and more. Processed documents are automatically routed to every destination you configure.",
|
||
"help.quickstart_upload": "Upload Documents",
|
||
"help.quickstart_upload_desc": "Drag & drop files onto the Upload page or click Choose File. DocuElevate converts images and office documents to PDF, runs OCR, and extracts metadata automatically.",
|
||
"help.quickstart_workflows": "Automate Workflows",
|
||
"help.quickstart_workflows_desc": "Create Pipelines to define multi-step processing and routing rules. Combine OCR, AI extraction, format conversion, and delivery in a single flow.",
|
||
"help.sources_email_ingestion": "Email Ingestion (IMAP)",
|
||
"help.sources_email_ingestion_desc": "Forward documents to a dedicated mailbox. Under Email Ingestion, add one or more IMAP accounts. DocuElevate polls for new messages and processes attachments automatically.",
|
||
"help.sources_heading": "Sources – Getting Documents In",
|
||
"help.sources_rest_api": "REST API",
|
||
"help.sources_rest_api_desc": "Integrate programmatically by POST-ing files to /api/upload. Ideal for scripts, watched folders, scanners, or third-party tools like Zapier and n8n.",
|
||
"help.sources_scanner": "Scanner & Mobile",
|
||
"help.sources_scanner_desc": "Point network scanners at DocuElevate's upload endpoint or use any mobile scanning app that supports custom HTTP destinations.",
|
||
"help.sources_scanner_desc_full": "Configure your network scanner or multifunction printer to send scans directly to DocuElevate. Use the /api/upload endpoint as the destination. Mobile scanning apps with custom upload destinations are also supported.",
|
||
"help.sources_web_upload": "Web Upload",
|
||
"help.sources_web_upload_desc": "The fastest way to get started. Open the Upload page, drop one or more files, and DocuElevate takes care of the rest. Supported formats include PDF, JPEG, PNG, TIFF, DOCX, XLSX, and more.",
|
||
"help.subheading": "Everything you need to get the most out of DocuElevate. Browse topics below or search for what you need.",
|
||
"help.support": "Support",
|
||
"help.support_admin_message": "Contact your administrator for support information.",
|
||
"help.support_description": "Can’t find what you’re looking for? Our support team is here to help.",
|
||
"help.support_heading": "Contact Support",
|
||
"help.support_live_chat": "Live Chat available – click the chat bubble to start a conversation.",
|
||
"help.support_ticket_button": "Submit a Ticket",
|
||
"help.support_ticket_desc": "Fill in the form below and our support team will get back to you as soon as possible.",
|
||
"help.support_ticket_heading": "Open a Support Ticket",
|
||
"help.title": "Help Center",
|
||
"help.workflows_creating": "Creating a Pipeline",
|
||
"help.workflows_definition": "A Pipeline is a series of processing steps that run automatically whenever a document is ingested. Each step can transform, enrich, or route the document.",
|
||
"help.workflows_heading": "Workflows & Pipelines",
|
||
"help.workflows_step_1": "Convert to PDF",
|
||
"help.workflows_step_1_create": "Go to Pipelines in the main menu.",
|
||
"help.workflows_step_1_full": "Convert to PDF – all incoming files are normalised to a consistent PDF format.",
|
||
"help.workflows_step_2": "OCR – extract text",
|
||
"help.workflows_step_2_create": "Click New Pipeline and give it a name.",
|
||
"help.workflows_step_2_full": "OCR – extract selectable text from scanned pages using Azure Document Intelligence or the built-in engine.",
|
||
"help.workflows_step_3": "AI metadata extraction",
|
||
"help.workflows_step_3_create": "Add the processing steps you need.",
|
||
"help.workflows_step_3_full": "AI metadata extraction – classify document type and pull key fields such as amounts, dates, and names using OpenAI.",
|
||
"help.workflows_step_4": "Deliver to one or more destinations",
|
||
"help.workflows_step_4_create": "Choose one or more delivery destinations.",
|
||
"help.workflows_step_5_create": "Save – new documents will be processed through this pipeline automatically.",
|
||
"help.workflows_typical_steps": "Typical Steps",
|
||
"help.workflows_what_is": "What is a Pipeline?",
|
||
"imprint.business_registration_heading": "Business Registration",
|
||
"imprint.business_registration_vat": "VAT Identification Number according to §27a Value Added Tax Act:",
|
||
"imprint.contact_heading": "Contact Information",
|
||
"imprint.dispute_heading": "Online Dispute Resolution",
|
||
"imprint.dispute_p1": "The European Commission provides a platform for online dispute resolution (OS):",
|
||
"imprint.dispute_p2": "We are not willing or obligated to participate in dispute resolution proceedings before a consumer arbitration board.",
|
||
"imprint.heading": "Imprint",
|
||
"imprint.legal_copyright": "All content on this website is protected by copyright. Any use outside the limits of copyright law requires the written consent of the respective author or creator.",
|
||
"imprint.legal_heading": "Legal Notices",
|
||
"imprint.legal_liability": "Despite careful content control, we assume no liability for the content of external links. The operators of the linked pages are solely responsible for their content.",
|
||
"imprint.page_title": "Imprint - DocuElevate",
|
||
"imprint.policies_cookie_desc": "Information about cookies we use",
|
||
"imprint.policies_cookie_label": "Cookie Policy",
|
||
"imprint.policies_heading": "Related Policies",
|
||
"imprint.policies_intro": "Our service is governed by the following policies:",
|
||
"imprint.policies_license_desc": "How our software is licensed",
|
||
"imprint.policies_license_label": "License Information",
|
||
"imprint.policies_privacy_desc": "How we handle your data",
|
||
"imprint.policies_privacy_label": "Privacy Policy",
|
||
"imprint.policies_terms_desc": "Rules for using DocuElevate",
|
||
"imprint.policies_terms_label": "Terms of Service",
|
||
"imprint.provider_heading": "Service Provider",
|
||
"imprint.responsible_content_heading": "Responsible for Content",
|
||
"imprint.responsible_content_rstv": "According to § 55 Abs. 2 RStV:",
|
||
"imprint.subtitle": "Information according to § 5 TMG (German Telemedia Act)",
|
||
"index.badge_intelligent": "Intelligent Document Processing",
|
||
"index.button_browse_files": "Browse Files",
|
||
"index.button_upload": "Upload",
|
||
"index.capabilities_cloud": "Cloud storage: Dropbox, OneDrive, Google Drive, NextCloud",
|
||
"index.capabilities_ingestion": "Email & URL-based document ingestion",
|
||
"index.capabilities_ocr": "OCR & metadata extraction with AI",
|
||
"index.capabilities_paperless": "Paperless-ngx integration for document management",
|
||
"index.capabilities_title": "Capabilities",
|
||
"index.capabilities_workflows": "Automated classification & routing workflows",
|
||
"index.cta_description": "Join teams already automating their document processing with DocuElevate.",
|
||
"index.cta_heading": "Ready to elevate your document workflow?",
|
||
"index.cta_pricing": "See pricing",
|
||
"index.cta_signup": "Create a free account",
|
||
"index.dashboard_subtitle": "Intelligent document processing & management",
|
||
"index.dashboard_subtitle_teams": "Intelligent document processing & management — built for teams",
|
||
"index.feature_ai": "AI Metadata Extraction",
|
||
"index.feature_ai_desc": "OpenAI, Claude, Gemini, and other pluggable AI providers classify documents and pull out key fields like dates, amounts, and subjects.",
|
||
"index.feature_cloud": "Multi-Cloud Storage",
|
||
"index.feature_cloud_desc": "Route processed files to Dropbox, Google Drive, OneDrive, Amazon S3, Nextcloud, Paperless NGX, WebDAV, FTP/SFTP, and more.",
|
||
"index.feature_email": "Email & IMAP Ingestion",
|
||
"index.feature_email_desc": "Automatically pull documents from Gmail or any IMAP mailbox — no manual uploads needed.",
|
||
"index.feature_ocr": "OCR & Text Extraction",
|
||
"index.feature_ocr_desc": "Azure Document Intelligence converts scanned PDFs and images into fully searchable text automatically.",
|
||
"index.feature_pipelines": "Custom Pipelines",
|
||
"index.feature_pipelines_desc": "Build processing pipelines with configurable steps — OCR, AI extraction, format conversion, and storage routing in any order.",
|
||
"index.feature_search": "Full-Text Search",
|
||
"index.feature_search_desc": "Instantly find any document by content, metadata, or tags across your entire archive.",
|
||
"index.feature_section_title": "Everything you need for smart document workflows",
|
||
"index.getting_started": "Getting Started",
|
||
"index.getting_started_1": "Configure integrations via System Status",
|
||
"index.getting_started_2": "Upload your first document",
|
||
"index.getting_started_3": "Review results in Files",
|
||
"index.getting_started_learn": "Learn more about DocuElevate",
|
||
"index.hero_description": "DocuElevate ingests your documents, runs OCR, extracts metadata with AI, and routes files to Dropbox, Google Drive, OneDrive, S3, Nextcloud, and more — all in one seamless pipeline.",
|
||
"index.hero_heading": "From upload to insight — automatically.",
|
||
"index.hero_login": "Log In",
|
||
"index.hero_pricing": "View Plans & Pricing",
|
||
"index.hero_signup": "Get Started — it’s free",
|
||
"index.integrations_active": "Active integrations",
|
||
"index.integrations_storage": "Storage targets",
|
||
"index.integrations_title": "Integrations",
|
||
"index.integrations_view_status": "View system status",
|
||
"index.page_title_dashboard": "Dashboard",
|
||
"index.page_title_public": "Intelligent Document Processing",
|
||
"index.platform_overview": "Platform overview",
|
||
"index.processing_stats": "Processing Stats",
|
||
"index.quick_actions": "Quick Actions",
|
||
"index.quick_documents": "My Documents",
|
||
"index.quick_documents_desc": "Browse your processed files",
|
||
"index.quick_search": "Search",
|
||
"index.quick_search_desc": "Full-text search across documents",
|
||
"index.quick_subscription": "My Subscription",
|
||
"index.quick_subscription_desc": "View plan & usage details",
|
||
"index.quick_system_status": "System Status",
|
||
"index.quick_system_status_desc": "Check integration health",
|
||
"index.quick_upload": "Upload Document",
|
||
"index.quick_upload_desc": "Process a new file",
|
||
"index.quick_view_files": "View All Files",
|
||
"index.quick_view_files_desc": "Browse processed documents",
|
||
"index.single_user_heading": "DocuElevate Dashboard",
|
||
"index.single_user_subtitle": "Intelligent document processing & management",
|
||
"index.stat_active_integrations": "Active Integrations",
|
||
"index.stat_active_users": "Active users",
|
||
"index.stat_files_month": "Files this month",
|
||
"index.stat_files_ocr": "Files with OCR",
|
||
"index.stat_files_today": "Files today",
|
||
"index.stat_storage_targets": "Storage Targets",
|
||
"index.stat_this_month": "This month",
|
||
"index.stat_today": "Today",
|
||
"index.stat_total_files": "Total files",
|
||
"index.stat_total_processed": "Total processed",
|
||
"index.tier_plan": "Plan",
|
||
"index.tier_upgrade": "Upgrade",
|
||
"index.tier_view_details": "View full details",
|
||
"index.upgrade_daily_limits": "Higher daily & monthly limits",
|
||
"index.upgrade_description": "Unlock more documents, more destinations and priority support.",
|
||
"index.upgrade_destinations": "More storage destinations",
|
||
"index.upgrade_ocr_pages": "More OCR pages",
|
||
"index.upgrade_plan": "Upgrade your plan",
|
||
"index.upgrade_view_pricing": "View plans & pricing",
|
||
"index.usage_lifetime": "Lifetime files",
|
||
"index.usage_month": "Files this month",
|
||
"index.usage_my_usage": "My usage",
|
||
"index.usage_today": "Files today",
|
||
"index.usage_unlimited": "Unlimited",
|
||
"integrations.access_key_label": "Access Key ID",
|
||
"integrations.active_label": "Active",
|
||
"integrations.add_button": "Add Integration",
|
||
"integrations.add_first_button": "Add Your First Integration",
|
||
"integrations.api_token_label": "API Token",
|
||
"integrations.authorize_btn": "Authorize",
|
||
"integrations.authorize_reauth": "Re-Authorize",
|
||
"integrations.bucket_label": "Bucket",
|
||
"integrations.configure": "Configure",
|
||
"integrations.connect": "Connect",
|
||
"integrations.connected": "Connected",
|
||
"integrations.connection_failed": "Connection failed",
|
||
"integrations.connection_success": "Connection successful",
|
||
"integrations.delete_confirm_are_you_sure": "Are you sure you want to delete",
|
||
"integrations.delete_confirm_title": "Delete Integration?",
|
||
"integrations.delete_confirm_undone": "This action cannot be undone.",
|
||
"integrations.delete_emails_label": "Delete emails after processing",
|
||
"integrations.delete_files_label": "Delete files after processing",
|
||
"integrations.destinations_quota_label": "Storage Destinations:",
|
||
"integrations.destinations_section": "Destinations",
|
||
"integrations.direction_destination": "Destination (storage)",
|
||
"integrations.direction_label": "Direction",
|
||
"integrations.direction_placeholder": "— Select —",
|
||
"integrations.direction_source": "Source (ingestion)",
|
||
"integrations.disconnect": "Disconnect",
|
||
"integrations.email_settings": "Email Forward Settings",
|
||
"integrations.empty_state": "No integrations configured",
|
||
"integrations.endpoint_label": "Endpoint URL",
|
||
"integrations.endpoint_optional": "(optional, for S3-compatible)",
|
||
"integrations.folder_label": "Folder",
|
||
"integrations.folder_optional": "(optional)",
|
||
"integrations.folder_path_label": "Folder Path",
|
||
"integrations.folder_prefix_label": "Folder Prefix",
|
||
"integrations.generic_settings_hint": "Configuration for this integration type can be provided as JSON after creation via the API.",
|
||
"integrations.gmail_hint": "Gmail labels & star: when enabled, processed emails are starred and tagged with an \"Ingested\" label in Gmail. Only applies to Gmail servers.",
|
||
"integrations.gmail_labels": "Apply Gmail labels & star",
|
||
"integrations.host_label": "Host",
|
||
"integrations.imap_settings": "IMAP Settings",
|
||
"integrations.loading": "Loading integrations…",
|
||
"integrations.modal_close": "Close modal",
|
||
"integrations.modal_title_add": "Add Integration",
|
||
"integrations.modal_title_edit": "Edit Integration",
|
||
"integrations.name_label": "Label",
|
||
"integrations.name_placeholder": "e.g. Work Gmail, S3 Archive",
|
||
"integrations.nextcloud_settings": "Nextcloud Settings",
|
||
"integrations.nextcloud_url_label": "Nextcloud URL",
|
||
"integrations.no_integrations_body": "Add your first integration to connect ingestion sources (like IMAP) and storage destinations (like S3, Dropbox, or Google Drive).",
|
||
"integrations.not_connected": "Not Connected",
|
||
"integrations.oauth_folder_label": "Folder",
|
||
"integrations.oauth_hint": "Save this integration first, then use the Authorize button to complete the OAuth flow. Your credentials will be stored securely in your personal integration record.",
|
||
"integrations.page_title": "Integrations",
|
||
"integrations.paperless_settings": "Paperless NGX Settings",
|
||
"integrations.password_label": "Password",
|
||
"integrations.paused": "Paused",
|
||
"integrations.plan_label": "Plan:",
|
||
"integrations.port_label": "Port",
|
||
"integrations.quota_not_available": "(not available)",
|
||
"integrations.quota_unlimited": "/ unlimited",
|
||
"integrations.recipient_label": "Recipient Email",
|
||
"integrations.region_label": "Region",
|
||
"integrations.remote_path_label": "Remote Path",
|
||
"integrations.s3_prefix_label": "Prefix (folder path)",
|
||
"integrations.s3_settings": "S3 Settings",
|
||
"integrations.secret_key_label": "Secret Access Key",
|
||
"integrations.show_password": "Show password",
|
||
"integrations.show_secrets": "Show secrets",
|
||
"integrations.show_token": "Show token",
|
||
"integrations.source_local": "Local Filesystem",
|
||
"integrations.source_type_label": "Source Type",
|
||
"integrations.sources_quota_label": "Mailbox Sources:",
|
||
"integrations.sources_section": "Sources",
|
||
"integrations.subtitle": "Manage your ingestion sources and storage destinations in one place.",
|
||
"integrations.title": "Integrations",
|
||
"integrations.type_label": "Integration Type",
|
||
"integrations.type_placeholder": "— Select direction first —",
|
||
"integrations.upgrade_plan": "Upgrade Plan",
|
||
"integrations.use_ssl": "Use SSL",
|
||
"integrations.username_label": "Username",
|
||
"integrations.watch_folder_settings": "Watch Folder Settings",
|
||
"integrations.webdav_settings": "WebDAV Settings",
|
||
"integrations.webdav_url_label": "WebDAV URL",
|
||
"integrations.webhook_heading": "Webhook Ingestion",
|
||
"integrations.webhook_how_heading": "How Webhook Ingestion Works",
|
||
"integrations.webhook_how_text": "A webhook integration allows external systems to push documents directly into DocuElevate via the REST API. Instead of DocuElevate polling for new files (like IMAP), your application sends files to DocuElevate using an HTTP request with an API token for authentication.",
|
||
"integrations.webhook_ideal_text": "This is ideal for CI/CD pipelines, automation scripts, scanner integrations, or any system that generates documents and needs to send them for processing.",
|
||
"integrations.webhook_quick_start": "Quick Start",
|
||
"integrations.webhook_security_tip": "Create a dedicated API token for each integration and revoke it immediately if compromised. Tokens can be managed on the API Tokens page.",
|
||
"integrations.webhook_step1": "Go to {api_tokens_link} and create a personal token.",
|
||
"integrations.webhook_upload_with_token": "Use the token to upload documents via the API:",
|
||
"language.bg": "Български",
|
||
"language.ca": "Català",
|
||
"language.change_success": "Language changed to {language}",
|
||
"language.changed": "Language changed to {language}",
|
||
"language.cs": "Čeština",
|
||
"language.da": "Dansk",
|
||
"language.de": "Deutsch",
|
||
"language.el": "Ελληνικά",
|
||
"language.en": "English",
|
||
"language.es": "Español",
|
||
"language.et": "Eesti",
|
||
"language.fi": "Suomi",
|
||
"language.fr": "Français",
|
||
"language.ga": "Gaeilge",
|
||
"language.hr": "Hrvatski",
|
||
"language.hu": "Magyar",
|
||
"language.is": "Íslenska",
|
||
"language.it": "Italiano",
|
||
"language.lb": "Lëtzebuergesch",
|
||
"language.lt": "Lietuvių",
|
||
"language.lv": "Latviešu",
|
||
"language.nb": "Norsk",
|
||
"language.nl": "Nederlands",
|
||
"language.no_results": "No languages found",
|
||
"language.pl": "Polski",
|
||
"language.pt": "Português",
|
||
"language.ro": "Română",
|
||
"language.ru": "Русский",
|
||
"language.search_placeholder": "Search languages…",
|
||
"language.selector": "Language",
|
||
"language.selector_label": "Select language",
|
||
"language.sk": "Slovenčina",
|
||
"language.sl": "Slovenščina",
|
||
"language.sv": "Svenska",
|
||
"language.tr": "Türkçe",
|
||
"language.uk": "Українська",
|
||
"language.zh": "中文",
|
||
"license.apache_description": "DocuElevate is distributed under the Apache License 2.0, which is a permissive open-source software license that allows you to use, modify, distribute, and contribute to the project.",
|
||
"license.apache_heading": "Apache License 2.0",
|
||
"license.heading": "License Information",
|
||
"license.page_title": "License Information - DocuElevate",
|
||
"license.related_about_link": "About page",
|
||
"license.related_and": "and",
|
||
"license.related_heading": "Related Information",
|
||
"license.related_p1_post": "for information about using the DocuElevate service.",
|
||
"license.related_p1_pre": "While this license governs the use of our software, please also review our",
|
||
"license.related_p2_post": ".",
|
||
"license.related_p2_pre": "For more information about DocuElevate, please visit the",
|
||
"license.related_privacy_link": "Privacy Policy",
|
||
"license.related_terms_link": "Terms of Service",
|
||
"nav.about": "About",
|
||
"nav.account_menu": "Account menu",
|
||
"nav.account_menu_for": "Account menu for {name}",
|
||
"nav.admin": "Admin",
|
||
"nav.admin.audit_logs": "Audit Logs",
|
||
"nav.admin.backups": "Backups",
|
||
"nav.admin.plans": "Plans",
|
||
"nav.admin.scheduled_jobs": "Scheduled Jobs",
|
||
"nav.admin.users": "Users",
|
||
"nav.admin_actions": "Admin actions",
|
||
"nav.admin_menu": "Admin menu",
|
||
"nav.api_docs": "API Docs",
|
||
"nav.api_tokens": "API Tokens",
|
||
"nav.backup_restore": "Backup & Restore",
|
||
"nav.credentials": "Credentials",
|
||
"nav.dark_mode": "Dark Mode",
|
||
"nav.dashboard": "Dashboard",
|
||
"nav.developer_docs": "Developer Docs",
|
||
"nav.devices": "Devices",
|
||
"nav.duplicates": "Duplicates",
|
||
"nav.file_manager": "File Manager",
|
||
"nav.files": "Files",
|
||
"nav.get_started": "Get Started",
|
||
"nav.help": "Help",
|
||
"nav.help_center": "Help Center",
|
||
"nav.imap": "Email Import",
|
||
"nav.integrations": "Integrations",
|
||
"nav.light_mode": "Light Mode",
|
||
"nav.login": "Log In",
|
||
"nav.logout": "Log Out",
|
||
"nav.main_navigation": "Main navigation",
|
||
"nav.my_subscription": "My Subscription",
|
||
"nav.notifications": "Notifications",
|
||
"nav.open_main_menu": "Open main menu",
|
||
"nav.pipelines": "Pipelines",
|
||
"nav.plan_designer": "Plan Designer",
|
||
"nav.pricing": "Pricing",
|
||
"nav.profile": "Profile",
|
||
"nav.profile_settings": "Profile Settings",
|
||
"nav.queue": "Queue",
|
||
"nav.queue_monitor": "Queue Monitor",
|
||
"nav.scheduled_jobs": "Scheduled Jobs",
|
||
"nav.search": "Search",
|
||
"nav.settings": "Settings",
|
||
"nav.shared_links": "Shared Links",
|
||
"nav.sign_out": "Sign Out",
|
||
"nav.signup": "Sign Up",
|
||
"nav.similarity": "Similarity",
|
||
"nav.skip_to_content": "Skip to main content",
|
||
"nav.status": "Status",
|
||
"nav.subscription": "Subscription",
|
||
"nav.system_reset": "System Reset",
|
||
"nav.toggle_dark_mode": "Toggle dark mode",
|
||
"nav.toggle_nav": "Toggle navigation menu",
|
||
"nav.upload": "Upload",
|
||
"nav.users": "Users",
|
||
"nav.version": "Version Info",
|
||
"notifications.filter_all": "All",
|
||
"notifications.filter_read": "Read only",
|
||
"notifications.filter_unread": "Unread only",
|
||
"notifications.manage_desc": "Manage your notification inbox, targets, and event preferences",
|
||
"notifications.mark_all_read": "Mark All as Read",
|
||
"notifications.mark_all_read_btn": "Mark all read",
|
||
"notifications.mark_read": "Mark as Read",
|
||
"notifications.no_notifications": "No notifications",
|
||
"notifications.page_title": "Notifications",
|
||
"notifications.tab_inbox": "Inbox",
|
||
"notifications.tab_settings": "Settings",
|
||
"notifications.title": "Notifications",
|
||
"notifications.unread_count": "{count} unread notifications",
|
||
"pipelines.active_label": "Active",
|
||
"pipelines.add_step_btn": "Add Step",
|
||
"pipelines.create": "Create Pipeline",
|
||
"pipelines.custom_label_label": "Custom Label",
|
||
"pipelines.default_label": "Default",
|
||
"pipelines.description_label": "Description",
|
||
"pipelines.description_placeholder": "Optional description",
|
||
"pipelines.disabled_label": "Disabled",
|
||
"pipelines.edit": "Edit Pipeline",
|
||
"pipelines.empty_state": "No pipelines yet",
|
||
"pipelines.empty_state_hint": "Create your first pipeline to define custom document processing workflows.",
|
||
"pipelines.enabled_label": "Enabled",
|
||
"pipelines.force_cloud_ocr_label": "Force cloud OCR (skip local text extraction)",
|
||
"pipelines.inactive_label": "Inactive",
|
||
"pipelines.loading": "Loading pipelines…",
|
||
"pipelines.name_placeholder": "My pipeline",
|
||
"pipelines.new_pipeline_btn": "New Pipeline",
|
||
"pipelines.no_steps": "No steps defined. Add a step to start building your pipeline.",
|
||
"pipelines.ocr_auto": "Auto (use system default)",
|
||
"pipelines.ocr_language_hint": "Overrides the global language setting for Tesseract/EasyOCR. Azure and Mistral auto-detect the language.",
|
||
"pipelines.ocr_language_label": "OCR Language",
|
||
"pipelines.optional_suffix": "(optional)",
|
||
"pipelines.page_title": "Processing Pipelines",
|
||
"pipelines.set_default": "Set as my default pipeline",
|
||
"pipelines.step_label_placeholder": "Override the default step name",
|
||
"pipelines.step_type_label": "Step Type",
|
||
"pipelines.subtitle_intro": "Define and manage custom document processing workflows.",
|
||
"pipelines.subtitle_system_post": "badge and are visible to all users.",
|
||
"pipelines.subtitle_system_pre": "System pipelines (created by admins) are shown with a",
|
||
"pipelines.system_label": "System",
|
||
"pipelines.system_pipeline_label": "System pipeline (visible to all users)",
|
||
"pipelines.title": "Processing Pipelines",
|
||
"privacy.heading": "DocuElevate – Privacy Notice",
|
||
"privacy.last_updated": "Last Updated:",
|
||
"privacy.page_title": "Privacy Notice - DocuElevate",
|
||
"privacy.s10_access_body": "You may request a copy of the personal data we hold about you.",
|
||
"privacy.s10_access_label": "Right of Access (Art. 15):",
|
||
"privacy.s10_complaint_body": "You have the right to lodge a complaint with your national Data Protection Authority (DPA). In Germany: Bundesbeauftragte für den Datenschutz und die Informationsfreiheit (BfDI). In the UK: Information Commissioner's Office (ICO). In Switzerland: Federal Data Protection and Information Commissioner (FDPIC).",
|
||
"privacy.s10_complaint_label": "Right to Lodge a Complaint:",
|
||
"privacy.s10_contact": "To exercise any of the above rights, contact us at",
|
||
"privacy.s10_erasure_body": "You may request deletion of your personal data where there is no overriding legitimate reason for us to retain it.",
|
||
"privacy.s10_erasure_label": "Right to Erasure (Art. 17):",
|
||
"privacy.s10_heading": "10. Your Rights (EU / EEA / UK / Switzerland)",
|
||
"privacy.s10_object_body": "You may object to processing based on legitimate interests at any time.",
|
||
"privacy.s10_object_label": "Right to Object (Art. 21):",
|
||
"privacy.s10_p1": "Under GDPR (and the UK GDPR / Swiss nFADP equivalent), you have the following rights:",
|
||
"privacy.s10_portability_body": "You may request your data in a structured, commonly used, machine-readable format.",
|
||
"privacy.s10_portability_label": "Right to Data Portability (Art. 20):",
|
||
"privacy.s10_rectification_body": "You may request correction of inaccurate or incomplete personal data.",
|
||
"privacy.s10_rectification_label": "Right to Rectification (Art. 16):",
|
||
"privacy.s10_response": "We will respond within one calendar month (extendable by two further months for complex requests).",
|
||
"privacy.s10_restriction_body": "You may request that we temporarily halt processing of your data in certain circumstances.",
|
||
"privacy.s10_restriction_label": "Right to Restriction (Art. 18):",
|
||
"privacy.s10_withdraw_body": "Where processing is based on consent, you may withdraw that consent at any time without affecting the lawfulness of prior processing.",
|
||
"privacy.s10_withdraw_label": "Right to Withdraw Consent:",
|
||
"privacy.s11_categories_body": "Identifiers (name, email), account authentication tokens, and document metadata that you choose to upload.",
|
||
"privacy.s11_categories_label": "Categories of personal information collected:",
|
||
"privacy.s11_contact": "To submit a verifiable consumer request, contact us at",
|
||
"privacy.s11_correct_body": "You may request correction of inaccurate personal information.",
|
||
"privacy.s11_correct_label": "Right to Correct:",
|
||
"privacy.s11_delete_body": "You may request deletion of personal information we have collected, subject to certain exceptions.",
|
||
"privacy.s11_delete_label": "Right to Delete:",
|
||
"privacy.s11_heading": "11. Additional Rights – United States (CCPA / CPRA)",
|
||
"privacy.s11_know_body": "You may request disclosure of the categories and specific pieces of personal information we have collected about you.",
|
||
"privacy.s11_know_label": "Right to Know:",
|
||
"privacy.s11_limit_body": "We do not use sensitive personal information beyond what is necessary to provide the service.",
|
||
"privacy.s11_limit_label": "Right to Limit Use of Sensitive Personal Information:",
|
||
"privacy.s11_nondiscrim_body": "We will not discriminate against you for exercising any of these rights.",
|
||
"privacy.s11_nondiscrim_label": "Non-Discrimination:",
|
||
"privacy.s11_optout_body": "We do not sell or share personal information as defined by CCPA/CPRA. No opt-out mechanism is required; however, you may contact us to confirm this.",
|
||
"privacy.s11_optout_label": "Right to Opt Out of Sale / Sharing:",
|
||
"privacy.s11_p1": "If you are a resident of California or another US state with applicable privacy legislation (including Virginia VCDPA, Colorado CPA, Connecticut CTDPA, Utah UCPA), the following additional disclosures apply:",
|
||
"privacy.s11_purpose_body": "Providing, improving, and securing the DocuElevate service. We do not sell or share personal information for cross-context behavioural advertising.",
|
||
"privacy.s11_purpose_label": "Purpose of collection:",
|
||
"privacy.s11_response": "We will respond within 45 days (extendable by an additional 45 days when reasonably necessary).",
|
||
"privacy.s12_access_body": "You may request access to your personal information and information about how it has been used or disclosed.",
|
||
"privacy.s12_access_label": "Right of Access:",
|
||
"privacy.s12_contact": "Direct privacy complaints to our Privacy Officer at",
|
||
"privacy.s12_contact_post": ", or to the Office of the Privacy Commissioner of Canada.",
|
||
"privacy.s12_correction_body": "You may challenge the accuracy or completeness of your personal information and request correction.",
|
||
"privacy.s12_correction_label": "Right to Correction:",
|
||
"privacy.s12_heading": "12. Additional Rights – Canada (PIPEDA / Québec Law 25)",
|
||
"privacy.s12_li1": "We collect, use, and disclose personal information only with your knowledge and consent, or as permitted by law.",
|
||
"privacy.s12_p1": "If you are located in Canada, the following applies under the Personal Information Protection and Electronic Documents Act (PIPEDA) and applicable provincial legislation (including Québec Law 25 / Bill 64):",
|
||
"privacy.s12_quebec_body": "Under Law 25, you have additional rights including the right to data portability (effective September 2023) and the right to de-indexation where personal information is disseminated online.",
|
||
"privacy.s12_quebec_label": "Québec residents:",
|
||
"privacy.s12_withdraw_body": "Subject to legal or contractual restrictions, you may withdraw consent to the collection, use, or disclosure of your personal information on reasonable notice.",
|
||
"privacy.s12_withdraw_label": "Right to Withdraw Consent:",
|
||
"privacy.s13_brazil_body": "If you are located in Brazil, you have the following rights under the LGPD:",
|
||
"privacy.s13_brazil_label": "Brazil (LGPD – Lei Geral de Proteção de Dados, Law 13.709/2018):",
|
||
"privacy.s13_contact": "Contact:",
|
||
"privacy.s13_heading": "13. Additional Rights – Latin America (LGPD & Others)",
|
||
"privacy.s13_li1": "Confirmation of the existence of processing and access to your data.",
|
||
"privacy.s13_li2": "Correction of incomplete, inaccurate, or outdated data.",
|
||
"privacy.s13_li3": "Anonymisation, blocking, or deletion of unnecessary or excessive data.",
|
||
"privacy.s13_li4": "Portability of your data to another service or product provider.",
|
||
"privacy.s13_li5": "Deletion of personal data processed with your consent.",
|
||
"privacy.s13_li6": "Information about entities with which your data has been shared.",
|
||
"privacy.s13_li7": "Information about the possibility of not consenting and the consequences of refusal.",
|
||
"privacy.s13_li8": "Revocation of consent.",
|
||
"privacy.s13_other_body": "We also recognise applicable privacy laws in Argentina (PDPA), Mexico (LFPDPPP), Chile, Colombia (Ley 1581), and others. Users in these jurisdictions may exercise equivalent rights as outlined under their national law by contacting us.",
|
||
"privacy.s13_other_label": "Other Latin American Countries:",
|
||
"privacy.s14_apj_body": "We recognise the data protection rights afforded to residents of these jurisdictions under their respective national laws. Contact us to exercise your rights.",
|
||
"privacy.s14_apj_label": "Other APJ markets (Singapore PDPA, New Zealand Privacy Act, India DPDP Act):",
|
||
"privacy.s14_australia_body": "Australian residents may request access to and correction of their personal information. We will respond to access requests within 30 days. Complaints may be lodged with the Office of the Australian Information Commissioner (OAIC).",
|
||
"privacy.s14_australia_label": "Australia (Privacy Act 1988 and Australian Privacy Principles):",
|
||
"privacy.s14_contact": "Contact:",
|
||
"privacy.s14_heading": "14. Additional Rights – Asia-Pacific & Japan",
|
||
"privacy.s14_japan_body": "Japanese residents may request disclosure, correction, addition or deletion, suspension of use, erasure, or suspension of third-party provision of their personal information held by us. Third-party disclosures require your prior consent except where permitted by law.",
|
||
"privacy.s14_japan_label": "Japan (APPI – Act on the Protection of Personal Information):",
|
||
"privacy.s14_korea_body": "Korean residents may request access, correction, deletion, and suspension of processing. We handle personal information of Korean residents in accordance with the PIPA.",
|
||
"privacy.s14_korea_label": "South Korea (PIPA – Personal Information Protection Act):",
|
||
"privacy.s15_contact": "Contact:",
|
||
"privacy.s15_heading": "15. Additional Rights – Ukraine",
|
||
"privacy.s15_p1": "Users located in Ukraine are protected under the Law of Ukraine \"On Personal Data Protection\" (No. 2297-VI). Your rights include access to, correction, blocking, and deletion of your personal data, as well as the right to object to processing.",
|
||
"privacy.s16_cookies_link": "Cookie Policy",
|
||
"privacy.s16_heading": "16. Updates to this Privacy Notice",
|
||
"privacy.s16_license_link": "License Information",
|
||
"privacy.s16_p1": "We may update this notice from time to time to reflect changes in our practices or applicable laws. The \"Last Updated\" date at the top of this page indicates when the notice was last revised. Where changes are material, we will notify users via in-application notification or email where appropriate.",
|
||
"privacy.s16_p2_pre": "If you have any questions or concerns about this Privacy Notice or your personal data, please contact us at",
|
||
"privacy.s16_p3_pre": "Please also review our",
|
||
"privacy.s16_terms_link": "Terms of Service",
|
||
"privacy.s1_address": "Alter Steinweg 3, 20459 Hamburg, Germany",
|
||
"privacy.s1_company": "Christian Louis IT Beratung",
|
||
"privacy.s1_contact_label": "Contact Email:",
|
||
"privacy.s1_heading": "1. Data Controller",
|
||
"privacy.s1_p1": "The controller responsible for processing your personal data under the EU General Data Protection Regulation (GDPR) and equivalent privacy laws worldwide is:",
|
||
"privacy.s1_p3": "For all privacy-related requests (access, deletion, rectification, opt-out, or complaints), please contact us at the email address above. We will respond within 30 days (or the period prescribed by applicable law).",
|
||
"privacy.s2_heading": "2. Scope of this Privacy Notice",
|
||
"privacy.s2_p1_pre": "This notice applies to the DocuElevate web application, hosted at",
|
||
"privacy.s2_p2": "It covers all users globally, including those in the European Union (EU), European Economic Area (EEA), Germany, United Kingdom (UK), Switzerland, Ukraine, United States (US), Canada, Latin America (Latam), Asia-Pacific, and Japan. Market-specific disclosures are provided in dedicated sections below.",
|
||
"privacy.s3_audit_body": "We maintain limited audit logs (action type, timestamp, user identifier) to ensure service integrity and security. These logs do not include document content.",
|
||
"privacy.s3_audit_label": "Audit Logs:",
|
||
"privacy.s3_auth_body": "We use OAuth 2.0 (Google, Dropbox, Microsoft/OneDrive) and optional local authentication. Through OAuth, we may receive your name, email address, and profile picture.",
|
||
"privacy.s3_auth_label": "User Authentication:",
|
||
"privacy.s3_doc_body": "Documents you upload are processed for OCR (optical character recognition), metadata extraction, and storage to your chosen cloud provider. Document content is processed only for the purpose you initiate and is not stored beyond what is operationally necessary.",
|
||
"privacy.s3_doc_label": "Document Processing:",
|
||
"privacy.s3_heading": "3. Data Collection & Purposes",
|
||
"privacy.s3_legal_body": "Our primary legal bases for processing are:",
|
||
"privacy.s3_legal_label": "Legal Basis (GDPR Art. 6):",
|
||
"privacy.s3_li1": "(1)(b) Performance of a contract: to provide the DocuElevate service you have requested.",
|
||
"privacy.s3_li2": "(1)(c) Legal obligation: to comply with applicable laws and regulations.",
|
||
"privacy.s3_li3": "(1)(f) Legitimate interests: ensuring the security of the service and preventing fraud.",
|
||
"privacy.s4_heading": "4. Data Minimization & Purpose Limitation",
|
||
"privacy.s4_li1": "We collect only the minimum personal data required to operate the service.",
|
||
"privacy.s4_li2": "Document content is processed strictly for the purpose you initiate (OCR, storage, metadata extraction). We do not use your documents to train AI models or for any secondary purpose.",
|
||
"privacy.s4_li3": "No advertising, behavioural tracking, or profiling is performed.",
|
||
"privacy.s4_li4": "No tracking cookies or analytics scripts are loaded.",
|
||
"privacy.s4_li5": "Third-party AI services (e.g., OpenAI, Azure Document Intelligence) are invoked only when you initiate document processing, and data is transmitted under data processing agreements.",
|
||
"privacy.s4_p1": "DocuElevate is designed with data minimization as a core principle (GDPR Art. 5(1)(c)):",
|
||
"privacy.s5_cookie_link": "Cookie Policy",
|
||
"privacy.s5_heading": "5. Use of Cookies & Similar Technologies",
|
||
"privacy.s5_p1_post": "to maintain your authenticated session. These cookies are essential for the service to function and are exempt from prior-consent requirements under the EU ePrivacy Directive (Art. 5(3)) and equivalent national laws.",
|
||
"privacy.s5_p1_pre": "DocuElevate uses",
|
||
"privacy.s5_p1_strong": "only strictly necessary session cookies",
|
||
"privacy.s5_p2_body": "analytics cookies, advertising cookies, tracking pixels, or any third-party cookies that would require your consent.",
|
||
"privacy.s5_p2_label": "We do not use:",
|
||
"privacy.s5_p3_pre": "For full details on the cookies we set, their names, duration, and purpose, please visit our",
|
||
"privacy.s6_ai_body": "When you initiate OCR or AI-based metadata extraction, document data is transmitted to the AI service you or your administrator has configured. This transmission is governed by a data processing agreement with the respective provider.",
|
||
"privacy.s6_ai_label": "AI Processing Services (OpenAI, Azure Document Intelligence, others):",
|
||
"privacy.s6_heading": "6. Third-Party Services",
|
||
"privacy.s6_no_sale_body": "We do not sell, rent, or share your personal data with third parties for advertising, marketing, or any purpose unrelated to providing the service.",
|
||
"privacy.s6_no_sale_label": "No Sale or Sharing for Advertising:",
|
||
"privacy.s6_oauth_body": "When you choose to authenticate via OAuth, the respective provider processes your credentials and may share limited profile information with us. These providers maintain their own privacy policies.",
|
||
"privacy.s6_oauth_label": "OAuth Providers (Google, Dropbox, Microsoft):",
|
||
"privacy.s6_storage_body": "Documents are stored in the cloud provider you configure. Your configured credentials are stored encrypted in the application database and are used solely to perform the storage operations you request.",
|
||
"privacy.s6_storage_label": "Cloud Storage Providers (Google Drive, Dropbox, OneDrive, Amazon S3, Nextcloud, WebDAV/SFTP/FTP):",
|
||
"privacy.s7_adequacy_body": "where the European Commission has recognised an equivalent level of protection (e.g., United Kingdom, Switzerland, Canada (commercial organisations), Japan, South Korea).",
|
||
"privacy.s7_adequacy_label": "Adequacy Decisions",
|
||
"privacy.s7_contact": "You may request a copy of the relevant safeguards by contacting us at",
|
||
"privacy.s7_heading": "7. International Data Transfers",
|
||
"privacy.s7_idta_body": "for transfers from the UK after Brexit.",
|
||
"privacy.s7_idta_label": "UK International Data Transfer Agreements (IDTAs)",
|
||
"privacy.s7_p1": "DocuElevate is hosted in the European Union / EEA by default. Where personal data is transferred outside the EEA (for example to US-based AI service providers such as OpenAI), we rely on appropriate safeguards including:",
|
||
"privacy.s7_scc_body": "adopted by the European Commission (2021/914/EU) for transfers to processors and controllers in third countries.",
|
||
"privacy.s7_scc_label": "Standard Contractual Clauses (SCCs)",
|
||
"privacy.s8_audit_body": "Retained for up to 90 days for security and compliance purposes.",
|
||
"privacy.s8_audit_label": "Audit logs:",
|
||
"privacy.s8_contact": "To request deletion of your account and all associated personal data, please contact us at",
|
||
"privacy.s8_files_body": "Retained for the duration of your use of the service. You may delete individual files at any time through the application.",
|
||
"privacy.s8_files_label": "File records and metadata:",
|
||
"privacy.s8_heading": "8. Data Retention",
|
||
"privacy.s8_oauth_body": "Stored in encrypted form and revocable at any time via your OAuth provider.",
|
||
"privacy.s8_oauth_label": "OAuth tokens:",
|
||
"privacy.s8_p1": "We retain personal data only as long as strictly necessary to provide the DocuElevate service or to comply with legal obligations:",
|
||
"privacy.s8_session_body": "Deleted when you log out or after session timeout.",
|
||
"privacy.s8_session_label": "Session data:",
|
||
"privacy.s9_heading": "9. Data Security",
|
||
"privacy.s9_li1": "Encryption of credentials and sensitive configuration at rest.",
|
||
"privacy.s9_li2": "Transport Layer Security (TLS/HTTPS) for all communications.",
|
||
"privacy.s9_li3": "Role-based access controls limiting access to personal data.",
|
||
"privacy.s9_li4": "Regular security audits and dependency vulnerability scanning.",
|
||
"privacy.s9_li5": "CSRF protection on all state-changing requests.",
|
||
"privacy.s9_p1": "We implement appropriate technical and organisational measures (TOMs) to protect your personal data, including:",
|
||
"privacy.toc_1": "Data Controller",
|
||
"privacy.toc_10": "Your Rights (EU / EEA / UK / Switzerland)",
|
||
"privacy.toc_11": "Additional Rights – United States (CCPA/CPRA)",
|
||
"privacy.toc_12": "Additional Rights – Canada (PIPEDA / Law 25)",
|
||
"privacy.toc_13": "Additional Rights – Latin America (LGPD & others)",
|
||
"privacy.toc_14": "Additional Rights – Asia-Pacific & Japan",
|
||
"privacy.toc_15": "Additional Rights – Ukraine",
|
||
"privacy.toc_16": "Updates to this Privacy Notice",
|
||
"privacy.toc_2": "Scope of this Privacy Notice",
|
||
"privacy.toc_3": "Data Collection & Purposes",
|
||
"privacy.toc_4": "Data Minimization & Purpose Limitation",
|
||
"privacy.toc_5": "Use of Cookies & Similar Technologies",
|
||
"privacy.toc_6": "Third-Party Services",
|
||
"privacy.toc_7": "International Data Transfers",
|
||
"privacy.toc_8": "Data Retention",
|
||
"privacy.toc_9": "Data Security",
|
||
"privacy.toc_heading": "Contents",
|
||
"profile.avatar_alt": "Your profile picture",
|
||
"profile.avatar_heading": "Profile Picture",
|
||
"profile.avatar_remove": "Remove custom avatar",
|
||
"profile.avatar_upload_hint": "Upload a JPEG, PNG, GIF, or WebP image up to 2 MB. If no custom picture is set, your {gravatar} is shown.",
|
||
"profile.choose_image": "Choose image…",
|
||
"profile.confirm_password": "Confirm New Password",
|
||
"profile.contact_email_hint": "Used for system notifications. This does not change your login e-mail.",
|
||
"profile.contact_email_label": "Contact / Notification E-mail",
|
||
"profile.contact_email_placeholder": "you@example.com",
|
||
"profile.current_password": "Current Password",
|
||
"profile.default_document_language_auto": "Use system default",
|
||
"profile.default_document_language_hint": "Documents in other languages are automatically translated into this language. Leave blank to use the system default (English).",
|
||
"profile.default_document_language_label": "Default Document Language",
|
||
"profile.dismiss": "Dismiss",
|
||
"profile.display_name_hint": "Leave blank to use your account username or email.",
|
||
"profile.display_name_label": "Display Name",
|
||
"profile.display_name_placeholder": "Your name as shown in the UI",
|
||
"profile.general_heading": "General Information",
|
||
"profile.gravatar_link": "Gravatar",
|
||
"profile.heading": "Profile Settings",
|
||
"profile.language_auto_detect": "Auto-detect (from browser)",
|
||
"profile.language_hint": "Choose your preferred interface language. “Auto-detect” follows your browser settings.",
|
||
"profile.language_label": "UI Language",
|
||
"profile.new_password": "New Password",
|
||
"profile.new_password_hint": "Minimum 8 characters.",
|
||
"profile.page_title": "Profile Settings – DocuElevate",
|
||
"profile.password_heading": "Change Password",
|
||
"profile.preferences_heading": "Preferences",
|
||
"profile.save_button": "Save Changes",
|
||
"profile.saving": "Saving…",
|
||
"profile.subtitle": "Manage your display name, avatar, language, and theme preferences.",
|
||
"profile.theme_dark": "Dark",
|
||
"profile.theme_hint": "“System Default” follows your device’s dark-mode setting.",
|
||
"profile.theme_label": "Colour Scheme",
|
||
"profile.theme_light": "Light",
|
||
"profile.theme_system": "System Default",
|
||
"profile.update_password": "Update Password",
|
||
"profile.updating": "Updating…",
|
||
"qr_login.claimed_device": "Device: {device_name}",
|
||
"qr_login.claimed_message": "QR code login successful! Your mobile device is now connected.",
|
||
"qr_login.description": "Scan this QR code with the DocuElevate mobile app to log in instantly.",
|
||
"qr_login.expired_message": "This QR code has expired. Please generate a new one.",
|
||
"qr_login.generate_new": "Generate New QR Code",
|
||
"qr_login.heading": "Mobile App QR Login",
|
||
"qr_login.how_it_works": "How it works",
|
||
"qr_login.page_title": "QR Code Login – DocuElevate",
|
||
"qr_login.pending_message": "Waiting for mobile app to scan…",
|
||
"qr_login.step_1": "Open the DocuElevate app on your phone",
|
||
"qr_login.step_2": "Tap \"Scan QR Code\" on the login screen",
|
||
"qr_login.step_3": "Point your camera at this QR code",
|
||
"qr_login.subtitle": "Log in to the mobile app by scanning a QR code from this page.",
|
||
"qr_login.time_remaining": "Expires in {seconds} seconds",
|
||
"queue.active_tasks": "Active Tasks",
|
||
"queue.auto_refresh_1": "Auto-refreshes every",
|
||
"queue.auto_refresh_2": "seconds",
|
||
"queue.col_arguments": "Arguments",
|
||
"queue.col_current_step": "Current Step",
|
||
"queue.col_file": "File",
|
||
"queue.col_files": "Files",
|
||
"queue.col_queue": "Queue",
|
||
"queue.col_state": "State",
|
||
"queue.col_task": "Task",
|
||
"queue.col_task_id": "Task ID",
|
||
"queue.files_processing": "Files Processing",
|
||
"queue.heading": "Queue Monitor",
|
||
"queue.last_updated": "Last updated:",
|
||
"queue.loading_stats": "Loading queue statistics…",
|
||
"queue.no_active_tasks": "No active tasks",
|
||
"queue.no_data": "No data",
|
||
"queue.no_files_processing": "No files currently processing",
|
||
"queue.page_title": "Queue Monitor",
|
||
"queue.processing_pipeline": "Processing Pipeline",
|
||
"queue.queued_tasks": "Queued Tasks",
|
||
"queue.recently_processing": "Recently Processing Files",
|
||
"queue.redis_queues": "Redis Queues",
|
||
"queue.subtitle": "Real-time view of the document processing pipeline and Celery task queues.",
|
||
"queue.workers_online": "Workers Online",
|
||
"search.button": "Search",
|
||
"search.error_message": "Search is temporarily unavailable. Please try again in a moment.",
|
||
"search.filter_aria_clear": "Clear all filters",
|
||
"search.filter_clear_button": "Clear Filters",
|
||
"search.filter_date_from": "Date From",
|
||
"search.filter_date_to": "Date To",
|
||
"search.filter_document_type": "Document Type",
|
||
"search.filter_document_type_placeholder": "e.g. Invoice",
|
||
"search.filter_language": "Language",
|
||
"search.filter_language_placeholder": "e.g. de",
|
||
"search.filter_sender": "Sender",
|
||
"search.filter_sender_placeholder": "e.g. ACME Corp",
|
||
"search.filter_tags": "Tags",
|
||
"search.filter_tags_placeholder": "e.g. amazon",
|
||
"search.filter_text_quality": "Text Quality",
|
||
"search.filter_text_quality_all": "All",
|
||
"search.filter_text_quality_high": "High",
|
||
"search.filter_text_quality_low": "Low",
|
||
"search.filter_text_quality_medium": "Medium",
|
||
"search.filter_text_quality_no_text": "No text",
|
||
"search.heading": "Document Search",
|
||
"search.input_aria_label": "Search documents",
|
||
"search.input_placeholder": "Search documents by content, sender, tags, type...",
|
||
"search.loading_indicator": "Searching…",
|
||
"search.no_results": "No results found",
|
||
"search.page_title": "Search Documents",
|
||
"search.placeholder": "Search by filename, content, tags...",
|
||
"search.result_empty": "No documents found matching your query.",
|
||
"search.results_count": "{count} results found",
|
||
"search.saved_aria_save": "Save current search",
|
||
"search.saved_button": "Save Current",
|
||
"search.saved_empty": "No saved searches yet",
|
||
"search.saved_error": "Could not load saved searches",
|
||
"search.saved_label": "Saved Searches",
|
||
"search.saved_loading": "Loading...",
|
||
"search.title": "Search Documents",
|
||
"sessions.active_sessions": "Active Sessions",
|
||
"sessions.confirm_revoke_all": "This will log you out of all other devices and browsers, and revoke all API tokens. Continue?",
|
||
"sessions.confirm_revoke_one": "Are you sure you want to end this session?",
|
||
"sessions.current_session": "This device",
|
||
"sessions.device_info": "Device",
|
||
"sessions.expires": "Expires",
|
||
"sessions.ip_address": "IP Address",
|
||
"sessions.last_active": "Last active",
|
||
"sessions.log_off_everywhere": "Log Off All Other Sessions",
|
||
"sessions.log_off_everywhere_desc": "End all other browser sessions and revoke all API tokens. Your current session will remain active.",
|
||
"sessions.no_other_sessions": "No other active sessions found.",
|
||
"sessions.qr_login_link": "Log in on mobile via QR code",
|
||
"sessions.revoke": "End Session",
|
||
"sessions.revoked_all_success": "All other sessions have been ended.",
|
||
"sessions.revoked_success": "Session ended successfully.",
|
||
"sessions.security_heading": "Security & Sessions",
|
||
"sessions.security_subtitle": "Manage your active sessions across devices and browsers.",
|
||
"sessions.session_lifetime": "Session lifetime: {days} days",
|
||
"sessions.started": "Started",
|
||
"settings.audit_log_btn": "Audit Log",
|
||
"settings.autocomplete_hint": "Type to search known values, or enter any custom value.",
|
||
"settings.autocomplete_no_matches": "No matches — you can still type a custom value",
|
||
"settings.autocomplete_placeholder": "Type to search or enter a value…",
|
||
"settings.boolean_enable_prefix": "Enable",
|
||
"settings.categories_aria": "Settings categories",
|
||
"settings.categories_heading": "Categories",
|
||
"settings.db_wizard_btn": "DB Wizard",
|
||
"settings.effective_value_label": "Effective value:",
|
||
"settings.encrypted_suffix": "= encrypted at rest",
|
||
"settings.encrypted_title": "Value is encrypted at rest in database",
|
||
"settings.export_btn": "Export",
|
||
"settings.export_db_only": "DB settings only",
|
||
"settings.export_full_config": "Full effective config",
|
||
"settings.jump_to_category": "Jump to category…",
|
||
"settings.manage_config_prefix": "Manage configuration. Priority:",
|
||
"settings.model_picker_hint": "Pick from the list or type any model name supported by your provider.",
|
||
"settings.model_picker_placeholder": "Select a common model or type a custom name…",
|
||
"settings.no_results_clear": "clear the search",
|
||
"settings.no_results_heading": "No settings found",
|
||
"settings.no_results_hint": "Try a different search term or",
|
||
"settings.page_heading": "Application Settings",
|
||
"settings.required_label": "(required)",
|
||
"settings.reset_confirm": "Are you sure you want to reset this setting?",
|
||
"settings.restart_required_suffix": "= restart required",
|
||
"settings.revert_btn": "Remove from DB",
|
||
"settings.revert_title": "Remove DB override and revert to environment variable or default",
|
||
"settings.reverting": "Reverting…",
|
||
"settings.save_all_btn": "Save All Changes",
|
||
"settings.save_error": "Failed to save setting",
|
||
"settings.save_setting_title": "Save this setting",
|
||
"settings.save_success": "Setting saved successfully",
|
||
"settings.saving_state": "Saving…",
|
||
"settings.search_aria_label": "Search settings",
|
||
"settings.search_clear_aria": "Clear search",
|
||
"settings.search_placeholder": "Search settings by name, key, or description…",
|
||
"settings.settings_count_suffix": "settings",
|
||
"settings.source_db_badge": "DB",
|
||
"settings.source_default_badge": "DEFAULT",
|
||
"settings.source_env_badge": "ENV",
|
||
"settings.title": "Settings",
|
||
"settings.toggle_visibility_aria": "Toggle password visibility",
|
||
"settings.toggle_visibility_title": "Show/hide value",
|
||
"settings.user_autocomplete_empty": "No matching users found",
|
||
"settings.user_autocomplete_hint": "Type to search existing users by name, or enter any identifier manually.",
|
||
"settings.user_autocomplete_placeholder": "Start typing to search users…",
|
||
"settings.wizard_btn": "Wizard",
|
||
"shared.col_expiry": "Expiry",
|
||
"shared.col_file_label": "File / Label",
|
||
"shared.col_link": "Link",
|
||
"shared.col_views": "Views",
|
||
"shared.copy_link_aria": "Copy link to clipboard",
|
||
"shared.copy_link_title": "Copy link",
|
||
"shared.create_btn": "Create Link",
|
||
"shared.create_heading": "Create New Shared Link",
|
||
"shared.creating": "Creating…",
|
||
"shared.expiry_12h": "12 hours",
|
||
"shared.expiry_14d": "14 days",
|
||
"shared.expiry_1h": "1 hour",
|
||
"shared.expiry_24h": "24 hours (1 day)",
|
||
"shared.expiry_30d": "30 days",
|
||
"shared.expiry_3d": "3 days",
|
||
"shared.expiry_6h": "6 hours",
|
||
"shared.expiry_7d": "7 days",
|
||
"shared.expiry_label": "Expiry",
|
||
"shared.expiry_never": "Never",
|
||
"shared.file_id_help_post": "page or in the document detail URL.",
|
||
"shared.file_id_help_pre": "Find the file ID on the",
|
||
"shared.file_id_label": "File ID",
|
||
"shared.file_id_placeholder": "e.g. 42",
|
||
"shared.files_link": "Files",
|
||
"shared.heading": "Shared Links",
|
||
"shared.label_label": "Label",
|
||
"shared.label_placeholder": "e.g. Shared with Bob",
|
||
"shared.link_created": "Shared link created!",
|
||
"shared.link_created_help": "Copy and send this link to the recipient.",
|
||
"shared.links_count_aria": "number of links",
|
||
"shared.max_downloads_label": "Max downloads",
|
||
"shared.no_links": "No shared links yet. Create one above to get started.",
|
||
"shared.open_in_new_tab": "Open in new tab",
|
||
"shared.open_link_aria": "Open shared link",
|
||
"shared.optional": "(optional)",
|
||
"shared.page_title": "Shared Links – DocuElevate",
|
||
"shared.password_label": "Password",
|
||
"shared.password_placeholder": "Leave blank for no password",
|
||
"shared.password_protected": "Password protected",
|
||
"shared.refresh_aria": "Refresh shared links list",
|
||
"shared.revoke_aria_prefix": "Revoke shared link for",
|
||
"shared.revoke_btn": "Revoke",
|
||
"shared.status_active": "Active",
|
||
"shared.status_expired": "Expired",
|
||
"shared.status_limit_reached": "Limit reached",
|
||
"shared.status_revoked": "Revoked",
|
||
"shared.subtitle": "Share documents with anyone via a time-limited or view-limited link. Recipients do not need a DocuElevate account. Links can be password-protected and revoked at any time.",
|
||
"shared.table_aria": "Shared links",
|
||
"shared.unlimited_placeholder": "Unlimited",
|
||
"shared.your_links": "Your Shared Links",
|
||
"similarity.backfill_auto": "The background task will compute them automatically every 5 minutes, or you can",
|
||
"similarity.files_missing_text": "file(s) have OCR text but no embedding yet.",
|
||
"similarity.find_pairs_btn": "Find Pairs",
|
||
"similarity.heading": "Document Similarity",
|
||
"similarity.load_error": "Failed to load pairs.",
|
||
"similarity.min_similarity_label": "Min. similarity",
|
||
"similarity.no_pairs_detail": "No document pairs exceed the similarity threshold.",
|
||
"similarity.no_pairs_heading": "No similar pairs found",
|
||
"similarity.page_title": "Document Similarity - DocuElevate",
|
||
"similarity.pagination_aria": "Similarity pairs pagination",
|
||
"similarity.per_page_label": "Per page",
|
||
"similarity.scanning": "Scanning for similar document pairs…",
|
||
"similarity.stat_embedding_model": "Embedding Model",
|
||
"similarity.stat_missing_embedding": "Missing Embedding",
|
||
"similarity.stat_total_files": "Total Files",
|
||
"similarity.stat_with_embedding": "With Embedding",
|
||
"similarity.subtitle": "Pairs of documents with high semantic similarity, ranked by score.",
|
||
"similarity.trigger_aria": "Trigger embedding computation for all files missing embeddings",
|
||
"similarity.trigger_now": "trigger it now",
|
||
"status.active": "Active",
|
||
"status.ai_empty_response": "(empty)",
|
||
"status.ai_extraction_desc": "Paste the plain-text content of a document below and run it through the configured AI provider to inspect the raw response, extracted JSON, and tags.",
|
||
"status.ai_extraction_failed": "AI Extraction Failed",
|
||
"status.ai_extraction_label": "Document Text",
|
||
"status.ai_extraction_placeholder": "Paste the plain-text content of your document here…",
|
||
"status.ai_extraction_title": "AI Extraction Test",
|
||
"status.app_version": "App Version",
|
||
"status.as_account": "as",
|
||
"status.auth_required": "Authentication Required",
|
||
"status.build_date": "Build Date",
|
||
"status.config_settings": "Configuration Settings",
|
||
"status.config_settings_desc": "For more detailed configuration settings and environment variables, check the settings page.",
|
||
"status.configure_now": "Configure Now",
|
||
"status.configured": "Configured",
|
||
"status.connection_error": "Connection Error",
|
||
"status.connection_test_failed": "Connection Test Failed",
|
||
"status.connection_test_successful": "Connection Test Successful",
|
||
"status.container_id": "Container ID",
|
||
"status.container_started": "Container Started",
|
||
"status.dashboard_subtitle": "This dashboard shows the status of all configured integrations and targets.",
|
||
"status.debug_mode": "Debug Mode",
|
||
"status.error_running_extraction": "Error running extraction: ",
|
||
"status.error_testing_connection": "Error testing connection: ",
|
||
"status.error_testing_notifications": "Error testing notifications: ",
|
||
"status.extracted_tags": "Extracted Tags",
|
||
"status.git_commit": "Git Commit",
|
||
"status.inactive": "Inactive",
|
||
"status.json_parse_issue": "JSON parse issue: ",
|
||
"status.last_check": "Last Check",
|
||
"status.manage": "Manage",
|
||
"status.modal_default_message": "Operation completed successfully.",
|
||
"status.modal_default_title": "Success",
|
||
"status.no_details": "No details available",
|
||
"status.not_configured": "Not Configured",
|
||
"status.notification_config_missing": "Notification Configuration Missing",
|
||
"status.open": "Open",
|
||
"status.page_title": "System Status",
|
||
"status.parsed_json_label": "Parsed JSON",
|
||
"status.provider_config_details": "{name} Configuration Details",
|
||
"status.provider_details": "Provider Details",
|
||
"status.raw_llm_response": "Raw LLM Response",
|
||
"status.run_extraction": "Run Extraction",
|
||
"status.running": "Running…",
|
||
"status.sending": "Sending...",
|
||
"status.setting_label": "Setting",
|
||
"status.test_connection": "Test Connection",
|
||
"status.test_extraction": "Test Extraction",
|
||
"status.test_failed": "Test Failed",
|
||
"status.test_notification_failed": "Test Notification Failed",
|
||
"status.test_notification_sent": "Test Notification Sent",
|
||
"status.test_notifications": "Test Notifications",
|
||
"status.test_provider": "Test {name}",
|
||
"status.test_successful": "Test Successful",
|
||
"status.testing": "Testing...",
|
||
"status.token_expired": "Your token has expired or is invalid. Please reconfigure this connection.",
|
||
"status.token_valid_for": "Token valid for:",
|
||
"status.value_label": "Value",
|
||
"status.view_config": "View Detailed Configuration",
|
||
"status.view_details": "View Details",
|
||
"subscription.available_plans_heading": "Available Plans",
|
||
"subscription.back_to_dashboard": "Back to Dashboard",
|
||
"subscription.cancel_pending": "Cancel change",
|
||
"subscription.cancel_scheduled": "Cancel scheduled change",
|
||
"subscription.contact_sales": "Contact Sales",
|
||
"subscription.current_badge": "Current",
|
||
"subscription.current_plan": "Current Plan",
|
||
"subscription.current_plan_cta": "Your current plan",
|
||
"subscription.downgrade_to_prefix": "Downgrade to",
|
||
"subscription.features_heading": "What’s included in your plan",
|
||
"subscription.free": "Free",
|
||
"subscription.heading": "My Subscription",
|
||
"subscription.keep_plan_prefix": "Keep",
|
||
"subscription.lifetime_files": "Total files (lifetime)",
|
||
"subscription.month_files": "Files this month",
|
||
"subscription.more_features_label": "more",
|
||
"subscription.page_title": "My Subscription – DocuElevate",
|
||
"subscription.pending_badge": "Pending",
|
||
"subscription.pending_benefits": "You keep all current plan benefits until then.",
|
||
"subscription.pending_on": "on",
|
||
"subscription.pending_title": "Pending plan change scheduled",
|
||
"subscription.pending_will_change": "Your plan will change to",
|
||
"subscription.per_mo": "/mo",
|
||
"subscription.per_month": "/month",
|
||
"subscription.since": "Since",
|
||
"subscription.single_user_body": "Subscription tiers apply when multi-user mode is active. Your instance currently runs in single-user mode with no processing limits. An admin can enable multi-user mode via {settings_link}.",
|
||
"subscription.single_user_title": "Multi-user mode is not enabled.",
|
||
"subscription.subtitle": "Your current plan, usage and available upgrades.",
|
||
"subscription.this_month_label": "this month",
|
||
"subscription.today_files": "Files today",
|
||
"subscription.today_label": "today",
|
||
"subscription.unlimited": "Unlimited",
|
||
"subscription.upgrade_info": "Upgrades take effect immediately. Downgrades are scheduled for the end of your current billing period.",
|
||
"subscription.upgrade_to_prefix": "Upgrade to",
|
||
"subscription.usage_heading": "Usage",
|
||
"system_reset.danger_desc": "The actions below will permanently destroy data. They cannot be undone. Application settings and configuration are preserved, but all documents, files, processing history, and audit logs will be deleted.",
|
||
"system_reset.danger_zone": "Danger Zone — Irreversible Actions",
|
||
"system_reset.full_reset_button": "Wipe All Data",
|
||
"system_reset.full_reset_desc": "Permanently deletes all user data from the database and removes all work files from disk. The application will be in its initial state after this operation.",
|
||
"system_reset.full_reset_item_cache": "All watch-folder caches and ingestion state",
|
||
"system_reset.full_reset_item_db": "All document records, processing logs, and audit history",
|
||
"system_reset.full_reset_item_files": "All original, processed, and temporary files on disk",
|
||
"system_reset.full_reset_item_settings_kept": "Application settings and configuration are preserved",
|
||
"system_reset.full_reset_subtitle": "Wipe everything and start fresh",
|
||
"system_reset.full_reset_title": "Full System Reset",
|
||
"system_reset.heading": "System Reset",
|
||
"system_reset.js_error_generic": "An error occurred. Please check the server logs for details.",
|
||
"system_reset.js_success_full": "System reset complete. All user data has been wiped.",
|
||
"system_reset.js_success_reimport": "Reset complete. Original files have been staged for re-import via the watch folder.",
|
||
"system_reset.page_title": "System Reset",
|
||
"system_reset.reimport_button": "Reset & Re-import",
|
||
"system_reset.reimport_desc": "Copies your original files to a special reimport folder, wipes everything, then lets the watch-folder mechanism re-process them as if they were freshly uploaded.",
|
||
"system_reset.reimport_note": "Re-imported files will go through the full processing pipeline with the same rate limits and backoff strategy as regular uploads.",
|
||
"system_reset.reimport_step_1": "Original files are copied to a dedicated reimport folder",
|
||
"system_reset.reimport_step_2": "All data (database + work files) is wiped clean",
|
||
"system_reset.reimport_step_3": "The reimport folder is configured as a watch folder for automatic re-ingestion",
|
||
"system_reset.reimport_subtitle": "Wipe and re-process all original files",
|
||
"system_reset.reimport_title": "Reset & Re-import",
|
||
"system_reset.startup_reset_active": "Factory Reset on Startup is ACTIVE",
|
||
"system_reset.startup_reset_desc": "FACTORY_RESET_ON_STARTUP is enabled. All user data is wiped every time the application starts.",
|
||
"system_reset.subtitle": "Reset DocuElevate to a clean, fresh state. All user data will be permanently deleted.",
|
||
"system_reset.type_delete": "Type DELETE to confirm",
|
||
"system_reset.type_delete_help": "You must type the word DELETE in capital letters to enable the reset button.",
|
||
"system_reset.type_reimport": "Type REIMPORT to confirm",
|
||
"system_reset.type_reimport_help": "You must type the word REIMPORT in capital letters to enable the button.",
|
||
"terms.cookie_link": "Cookie Policy",
|
||
"terms.heading": "Terms of Service",
|
||
"terms.last_updated": "Last Updated:",
|
||
"terms.license_link": "License Information",
|
||
"terms.page_title": "Terms of Service - DocuElevate",
|
||
"terms.privacy_link": "Privacy Policy",
|
||
"terms.s1_heading": "1. Acceptance of Terms",
|
||
"terms.s1_p1": "By accessing or using DocuElevate, you agree to be bound by these Terms of Service. If you do not agree to these terms, please do not use this service.",
|
||
"terms.s2_heading": "2. Description of Service",
|
||
"terms.s2_p1": "DocuElevate provides document processing, OCR, metadata extraction, and storage services. We reserve the right to modify or discontinue any aspect of the service at any time.",
|
||
"terms.s3_heading": "3. User Responsibilities",
|
||
"terms.s3_li1": "All content you upload to DocuElevate",
|
||
"terms.s3_li2": "Ensuring you have proper rights to upload and process documents",
|
||
"terms.s3_li3": "Maintaining the confidentiality of your account credentials",
|
||
"terms.s3_li4": "Any activity that occurs under your account",
|
||
"terms.s3_p1": "You are responsible for:",
|
||
"terms.s3_p2_and": "and",
|
||
"terms.s3_p2_post": ".",
|
||
"terms.s3_p2_pre": "By using our service, you also agree to our",
|
||
"terms.s4_heading": "4. Intellectual Property Rights",
|
||
"terms.s4_p1": "DocuElevate respects intellectual property rights. Users may not upload content that infringes on the intellectual property rights of others.",
|
||
"terms.s5_heading": "5. Limitation of Liability",
|
||
"terms.s5_p1": "DocuElevate provides the service \"as is\" without warranties of any kind. We shall not be liable for any direct, indirect, incidental, special, consequential, or punitive damages resulting from your use of or inability to use the service.",
|
||
"terms.s6_heading": "6. Governing Law",
|
||
"terms.s6_p1": "These Terms shall be governed by the laws of Germany, without regard to its conflict of law provisions.",
|
||
"terms.s6_p2_post": ".",
|
||
"terms.s6_p2_pre": "If you have any questions about these Terms, please contact us at",
|
||
"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",
|
||
"upload.download_button": "Download and Process",
|
||
"upload.downloading": "Downloading file from URL...",
|
||
"upload.drag_drop": "Drag & drop files here or click to browse",
|
||
"upload.drop_hint_desktop": "Drag & drop files or folders here, or click to select files.",
|
||
"upload.drop_hint_mobile": "Tap to select files or use the camera button below.",
|
||
"upload.drop_zone_aria": "File upload area. Drag and drop files here, or press Enter to browse files.",
|
||
"upload.error": "Upload failed",
|
||
"upload.error_invalid_url": "Invalid URL format",
|
||
"upload.error_url_required": "Please enter a URL",
|
||
"upload.file_size_hint": "Maximum size: 500 MB per file",
|
||
"upload.file_types": "Allowed types: PDF, Office documents (Word, Excel, PowerPoint, etc.), Images",
|
||
"upload.filename_description": "Leave empty to use filename from URL",
|
||
"upload.filename_label": "Filename (optional)",
|
||
"upload.filename_placeholder": "my-document.pdf",
|
||
"upload.max_size": "Maximum file size: {size}",
|
||
"upload.page_title": "Upload Files",
|
||
"upload.section_device": "Upload from Device",
|
||
"upload.section_url": "Upload from URL",
|
||
"upload.select_file": "Select File",
|
||
"upload.success": "File uploaded successfully",
|
||
"upload.title": "Upload Document",
|
||
"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"
|
||
}
|