feat(i18n): replace hardcoded English text with translation keys in files, settings, and pipelines templates

Replace all hardcoded English strings in three HTML Jinja2 templates with
`{{ _("key") }}` translation function calls, adding 87 new keys to en.json.

files.html:
- Page title, drop overlay, upload modal, error messages
- All filter labels, placeholders, options (status, OCR quality, etc.)
- Saved searches and full-text search UI
- Bulk action buttons, table headers, pagination
- Delete and preview modal text

settings.html:
- Page heading, configuration priority legend
- Header buttons (Wizard, DB Wizard, Export, Audit Log)
- Search bar placeholder and aria-labels
- Sidebar categories, no-results state
- Per-setting labels: required, enable prefix, effective value
- Autocomplete and model picker hints/placeholders
- Revert/save button labels and states

pipelines.html:
- Page title and subtitle
- New Pipeline button, loading state, empty state
- Pipeline card badges (System, Default, Inactive, Disabled)
- Add/Edit step modal fields and labels
- OCR language options and hints
- Cancel/Delete buttons in all modals

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot]
2026-03-12 00:17:23 +00:00
parent bea9dae957
commit 8c77982109
4 changed files with 247 additions and 168 deletions
+84 -3
View File
@@ -193,7 +193,7 @@
"upload.button_processing": "Processing...",
"files.page_title": "File Records",
"files.drop_overlay_title": "Drop files or folders anywhere to upload",
"files.drop_overlay_hint": "Supports PDF, Office docs, images, HTML, Markdown, and more",
"files.drop_overlay_hint": "Supports PDF, Office docs, images, HTML, Markdown, and more folders are processed recursively",
"files.upload_modal_header": "Uploading Files",
"files.queue_banner_link": "View Queue",
"files.filter_search_placeholder": "Enter filename...",
@@ -216,7 +216,7 @@
"files.saved_searches_empty": "No saved searches yet",
"files.saved_searches_save": "Save Current",
"files.saved_searches_error": "Could not load saved searches",
"files.fulltext_search_label": "Full-Text Search",
"files.fulltext_search_label": "Full-Text Search (OCR text, metadata, tags)",
"files.fulltext_search_placeholder": "Search document content, sender, tags, type...",
"files.search_results_title": "Search Results",
"files.search_results_empty": "No results found.",
@@ -754,5 +754,86 @@
"common.prev_page": "Previous page",
"common.next_page": "Next page",
"common.page": "Page",
"common.col_pending": "Pending"
"common.col_pending": "Pending",
"files.upload_modal_close": "Close upload progress",
"files.upload_modal_aria": "Upload progress",
"files.filter_form_aria": "Filter files",
"files.filter_search_label": "Search Filename",
"files.filter_date_from_aria": "Filter from date",
"files.filter_date_to_aria": "Filter to date",
"files.filter_tags_aria": "Filter by tags (comma-separated)",
"files.filter_ocr_quality_aria": "Filter by OCR quality score",
"files.saved_searches_save_aria": "Save current filters as a saved search",
"files.status_duplicate": "Duplicate",
"files.files_selected": "files selected",
"files.error_hint": "This might be due to a configuration or import issue. Please check the server logs.",
"files.queue_banner_items": "item(s) are currently queued or being processed. Files will appear here once processing completes.",
"files.pagination_showing": "Showing",
"files.pagination_of": "of",
"files.pagination_files": "files",
"files.table_aria": "File records",
"files.pagination_nav_aria": "File list pagination",
"settings.page_heading": "Application Settings",
"settings.manage_config_prefix": "Manage configuration. Priority:",
"settings.source_db_badge": "DB",
"settings.source_env_badge": "ENV",
"settings.source_default_badge": "DEFAULT",
"settings.restart_required_suffix": "= restart required",
"settings.encrypted_suffix": "= encrypted at rest",
"settings.wizard_btn": "Wizard",
"settings.db_wizard_btn": "DB Wizard",
"settings.export_btn": "Export",
"settings.export_db_only": "DB settings only",
"settings.export_full_config": "Full effective config",
"settings.audit_log_btn": "Audit Log",
"settings.search_placeholder": "Search settings by name, key, or description…",
"settings.search_aria_label": "Search settings",
"settings.search_clear_aria": "Clear search",
"settings.categories_heading": "Categories",
"settings.categories_aria": "Settings categories",
"settings.jump_to_category": "Jump to category…",
"settings.no_results_heading": "No settings found",
"settings.no_results_hint": "Try a different search term or",
"settings.no_results_clear": "clear the search",
"settings.settings_count_suffix": "settings",
"settings.required_label": "(required)",
"settings.boolean_enable_prefix": "Enable",
"settings.effective_value_label": "Effective 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.autocomplete_no_matches": "No matches — you can still type a custom value",
"settings.autocomplete_hint": "Type to search known values, or enter any custom value.",
"settings.autocomplete_placeholder": "Type to search or enter a value…",
"settings.model_picker_placeholder": "Select a common model or type a custom name…",
"settings.model_picker_hint": "Pick from the list or type any model name supported by your provider.",
"settings.encrypted_title": "Value is encrypted at rest in database",
"settings.toggle_visibility_title": "Show/hide value",
"settings.toggle_visibility_aria": "Toggle password visibility",
"settings.revert_title": "Remove DB override and revert to environment variable or default",
"settings.revert_btn": "Remove from DB",
"settings.reverting": "Reverting…",
"settings.save_setting_title": "Save this setting",
"settings.saving_state": "Saving…",
"settings.save_all_btn": "Save All Changes",
"pipelines.new_pipeline_btn": "New Pipeline",
"pipelines.subtitle_intro": "Define and manage custom document processing workflows.",
"pipelines.subtitle_system_pre": "System pipelines (created by admins) are shown with a",
"pipelines.subtitle_system_post": "badge and are visible to all users.",
"pipelines.loading": "Loading pipelines…",
"pipelines.empty_state_hint": "Create your first pipeline to define custom document processing workflows.",
"pipelines.no_steps": "No steps defined. Add a step to start building your pipeline.",
"pipelines.add_step_btn": "Add Step",
"pipelines.name_placeholder": "My pipeline",
"pipelines.description_placeholder": "Optional description",
"pipelines.system_pipeline_label": "System pipeline (visible to all users)",
"pipelines.step_type_label": "Step Type",
"pipelines.custom_label_label": "Custom Label",
"pipelines.optional_suffix": "(optional)",
"pipelines.step_label_placeholder": "Override the default step name",
"pipelines.force_cloud_ocr_label": "Force cloud OCR (skip local text extraction)",
"pipelines.ocr_language_label": "OCR Language",
"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.",
"common.select_placeholder": "— select —"
}