admin:
  breadcrumb:
    aria_label: "Breadcrumb"
    new_page: "New page"
    edit_page: "Edit page"
    new_category: "New category"
    edit_category: "Edit category"
    media_upload: "Upload"
    media_edit: "Edit media"
    new_user: "New user"
    edit_user: "Edit user"
    new_role: "New role"
    edit_role: "Edit role"
    route_fallback: "Administration"
  system_status: "System Status"
  system_health: "System Health"
  system_health_description: "Monitor your system status"
  recent_activity: "Recent Activity"
  no_recent_activity: "No recent activity"
  yes: "Yes"
  no: "No"
  not_available: "Not available"
  # License Management
  license_management: "License Management"
  license_management_description: "Manage your TerraFlow CMS license"

  # Custom Fields
  custom_fields:
    title: "Custom Fields"
    description: "Custom fields for pages, categories, users and settings."
    overview: "Overview"
    manage_sets: "Manage field sets"
    manage_fields: "Manage fields"
    field_sets: "Field sets"
    fields: "Fields"
    preview: "Preview"
    preview_pages: "Pages"
    preview_categories: "Categories"
    preview_users: "Users"
    preview_media: "Media"
    sets: "Field sets"
    new_set: "New field set"
    edit_set: "Edit field set"
    new_field: "New field"
    edit_field: "Edit field"
    create_new_set: "Create a new field set"
    edit_set_description: "Edit the field set"
    create_new_field: "Create a new field"
    edit_field_description: "Edit the field"
    add_set: "Add field set"
    sets_description: "Organise fields in sets per entity type (e.g. pages, categories)."
    test_nav: "Test"
    fields_description: "Create and manage individual custom fields."
    no_sets: "No field sets yet."
    no_fields: "No fields yet."
    no_fields_hint: "Create a field set first, then add fields."
    technical_name: "Technical name"
    entity_type: "Entity type"
    required: "Required"
    position: "Position"
    type: "Type"
    set: "Field set"
    back_to_overview: "Back to overview"
    delete_set_confirm: "Really delete this field set? All associated fields will be removed."
    delete_field_confirm: "Really delete this field?"
    label_name: "Name"
    label_description: "Description"
    label_active: "Active"
    label_default_value: "Default value"
    default_value_checked: "Checked by default"
    save: "Save"
    cancel: "Cancel"
    back: "Back"
    actions: "Actions"
    add_field: "Add field"
    show_fields: "Show fields"
    options_configure: "Configure options"
    options_description: "Add the available options for this field. For each item you can specify a value and a label."
    options_add: "Add option"

  license:
    status: "License Status"
    status_description: "Monitor your license status"
    valid: "License is valid"
    invalid: "License is invalid"
    key: "License Key"
    domain: "Domain"
    type: "License Type"
    lifecycle_status: "Lifecycle status"
    valid_until: "Valid Until"
    customer: "Customer"
    plan_info: "Plan Information"
    plan_name: "Plan Name"
    max_domains: "Max Domains"
    max_users: "Max Users"
    days_remaining: "Days Remaining"
    days: "Days"
    last_check: "Last Check"
    server_url: "Server URL"
    heartbeat_status: "Heartbeat Status"
    quick_actions: "Quick Actions"
    system_info: "System Information"
    debug_info: "Debug Information"
    environment_override: "Environment Override"
    developer_mode: "Developer Mode"
    environment_override_info: "Environment automatically set to 'dev' due to Developer license"
    invalid_title: "Administration Blocked"
    invalid_description: "The administration is blocked due to an invalid or expired license."
    good_news: "Good News"
    frontend_works: "Your website (frontend) continues to work normally! Only the administration is blocked."
    timestamp: "Timestamp"
    affected_area: "Affected Area"
    administration_area: "Administration (/admin)"
    activation_instructions: "To reactivate the administration, please check your license."
    check_status: "Check License Status"
    back_to_website: "Back to Website"
    refresh: "Refresh"
    activate: "Activate"
    features: "Get Features"
    toggle_block: "Block/Unblock"
    checking: "Checking..."
    activating: "Activating..."
    loading: "Loading..."
    processing: "Processing..."
    check_completed: "License check completed"
    activation_success: "License successfully activated"
    features_loaded: "Features successfully loaded"
    error: "Error"
    unknown_error: "Unknown error"
    check_failed: "License check failed"
    activation_failed: "Activation failed"
    activation_error: "Error during activation"
    error_redacted: "The detailed error message was hidden for security reasons."
    open_admin_license: "Open license management"
    features_failed: "Features could not be retrieved"
    features_error: "Error retrieving features"
    block_confirm: "Do you really want to block the license?"
    block_failed: "Blocking failed"
    block_error: "Error during blocking"
    auto_check_failed: "Automatic license check failed"
    auto_check_error: "Automatic license check failed"

  cache_management: "Cache Management"
  cache_management_description: "Manage the system cache for optimal performance"

  email_templates:
    intro: "Twig-enabled subject and body templates per type and locale. Plugin types appear in the list automatically."
    edit: "Edit template"
    log: "Send log"
    locale: "Language"
    content: "Content"
    variables: "Variables"
    test_send: "Test send"
    test_email: "Recipient (test)"
    send_test: "Send test"
    test_hint: "Placeholder data is used (e.g. demo.user). A row is written to the send log."
    log_intro: "Recently sent transactional emails (including failures)."
    log_time: "Time"
    log_type: "Type"
    log_recipient: "Recipient"
    log_subject: "Subject"
    log_status: "Status"
    log_test: "Test"
    log_empty: "No entries yet."
    status_sent: "Sent"
    status_failed: "Failed"

  system_logs:
    intro: "View Monolog files from var/log (read-only). Large files are shown as a limited tail from the end."
    no_files: "No log files found in var/log."
    column_file: "File"
    column_size: "Size"
    column_modified: "Modified"
    open: "Open"
    bytes_on_disk: "File size on disk: %bytes% bytes"
    truncated_hint: "Excerpt (file was truncated)"
    lines: "Lines"
    level: "Level"
    level_all: "All levels"
    search: "Text search"
    search_placeholder: "Line must contain…"
    apply: "Apply"
    empty_result: "No lines match the current filters."
    view_title: "View log"
    select_file: "Please choose a valid log file."

  log_cleanup:
    intro: "Automatically delete old Monolog files under var/log. Only files matching the usual naming pattern are removed, and only if their last modification is older than the retention period."
    task_hint: "After saving, the “terraflow.log_cleanup” task is synced with your interval; use cron/worker like for other scheduled tasks."
    save: "Save"
    saved: "Settings saved and the scheduled task was updated."
    enabled: "Enable automatic log cleanup"
    retention_days: "Retention (days)"
    interval_seconds: "Run interval (seconds)"
    interval_help: "Minimum 300 (5 min), maximum 604800 (7 days). How often the task is scheduled when cron and workers run."

  scheduled_tasks:
    title: "Scheduled tasks"
    description: "Overview of registered scheduled tasks (database + Messenger queue)."
    cli_hint: "Cron: run sync and run periodically; work as a long-running consumer for the async queue."
    column_name: "Name"
    column_description: "Description"
    column_source: "Source"
    column_interval: "Interval"
    column_status: "Status"
    column_last_run: "Last run"
    column_next_run: "Next run"
    column_error: "Last error"
    source_core: "Core"
    action_queue: "Run now"
    action_clear_error: "Clear error"
    empty: "No tasks in the database. Run migrations first, then terraflow:scheduled-task:sync."
    flash_queued: "Task has been queued for execution."
    flash_queue_failed: "Could not queue the task (inactive, plugin disabled, or wrong status)."
    flash_failure_cleared: "Error cleared; the task is scheduled again."
    flash_clear_failed: "Could not clear the error."
    flash_csrf: "Invalid security token. Please try again."
    status:
      scheduled: "scheduled"
      queued: "queued"
      running: "running"
      failed: "failed"
      inactive: "inactive"
    desc:
      heartbeat: "Core heartbeat (logging, demo task)"
      publish_scheduled_pages: "Publishes due scheduled pages (content workflow)"
      log_cleanup: "Deletes expired Monolog files in var/log (see Log cleanup module)"
      cache_maintenance: "Cache maintenance per Cache module settings (pools, HttpCache, tags, warmup)"
      example_plugin_demo: "Example plugin demo task"
  cache:
    configuration: "Cache Configuration"
    adapter: "Adapter"
    tag_support: "Tag Support"
    versioning: "Versioning"
    last_cleared: "Last Cleared"
    never: "Never"
    http_cache_title: "Symfony HTTP Cache"
    http_cache_description: "Optional reverse-proxy cache in front of the kernel (public/index.php). Only active in production when HTTP_CACHE=1."
    http_cache_status: "Status"
    http_cache_enabled: "Enabled (HTTP_CACHE)"
    http_cache_disabled: "Disabled"
    http_cache_path: "Storage path"
    http_cache_size: "Approx. size"
    http_cache_clear_hint: "“Clear all cache” and the Alt+C hotkey also purge this store, regardless of HTTP_CACHE. Responses with Cache-Control: private are not stored by the HttpCache layer."
    quick_actions: "Quick Actions"
    clear_all: "Clear All Cache"
    warmup: "Warmup Cache"
    statistics: "Cache Statistics"
    tag_invalidation: "Cache Invalidation by Tags"
    tags_input: "Tags (comma-separated)"
    tags_placeholder: "e.g. pages,content,navigation"
    tags_description: "Enter the cache tags that should be invalidated"
    invalidate_tags: "Invalidate Tags"
    common_tags: "Common Tags"
    tag_click_hint: "Click on a tag to add it to the input field"
    tag_support_unavailable: "Tag Support Unavailable"
    tag_support_description: "Tag-based cache invalidation is not supported by your current cache adapter"
    console_commands: "Console Commands"
    console_description: "You can also execute cache operations via command line"
    basic_commands: "Basic Commands"
    advanced_commands: "Advanced Commands"
    clear_cache: "Clear Cache"
    warmup_cache: "Warmup Cache"
    cache_statistics: "Cache Statistics"
    invalidate_tags_cli: "Invalidate Tags (CLI)"
    enter_at_least_one_tag: "Please enter at least one tag"
    click_to_copy: "Click to copy"
    command_copied: "Command copied"
    copy_failed: "Copy failed"
    clear_confirm_message: "Do you really want to clear the entire cache?"
    clear_confirm_description: "All cached data will be removed"
    clear: "Clear"
    clearing_cache: "Clearing cache"
    warmup_confirm_message: "Do you want to warmup the cache?"
    warmup_confirm_description: "Frequently used data will be preloaded"
    warming_up_cache: "Warming up cache"
    statistics_feature_coming_soon: "Cache statistics will be available in a future version"
    task_section_title: "Scheduled cache maintenance"
    task_section_intro: "Task “terraflow.cache_maintenance”: configurable steps on your interval (cron + worker like other scheduled tasks)."
    task_link_scheduled: "Open scheduled tasks"
    task_enabled: "Enable scheduled cache maintenance"
    task_interval_seconds: "Interval (seconds)"
    task_interval_help: "Between 300 (5 min) and 604800 (7 days)."
    task_action_clear_pools: "Clear application cache pools"
    task_action_clear_pools_help: "Clears the pages, media, system, plugins, and default pools—not the Symfony container cache."
    task_action_purge_http: "Purge HTTP cache store"
    task_action_purge_http_help: "Removes the HttpCache directory under var/cache (same store as “clear all” targets for that layer)."
    task_action_invalidate_tags: "Invalidate cache tags"
    task_tags_csv: "Tags (comma or whitespace)"
    task_tags_csv_help: "Only when “Invalidate cache tags” is enabled, e.g. pages, content, navigation."
    task_action_warmup: "Run cache warmup"
    task_action_warmup_help: "Same as the “Warmup cache” button (primes system/navigation caches)."
    task_saved: "Cache maintenance settings saved; the scheduled task was synced."
    task_error_no_action: "Select at least one action, or turn off scheduled maintenance."
    task_error_tags_required: "Enter tags or disable tag invalidation."
    task_execution_order_hint: "Each run order: 1) clear app pools if enabled, 2) purge HTTP cache, 3) invalidate tags, 4) warmup."
  global_footer: "Global footer"
  image_compressor:
    title: "Image Compressor Settings"
    description: "Supported formats: JPEG (.jpg/.jpeg), PNG, and WebP. Add one active rule per extension (jpegoptim, optipng, cwebp)."
    add_new_setting: "Add New Setting"
    create_title: "Create Image Compressor Settings"
    edit_title: "Edit Image Compressor Setting"
    file_format: "File format"
    active: "Active"
    delete_confirm_prefix: "the setting for"
    empty: "No compression settings yet."
    flash_created: "Setting was created."
    flash_updated: "Setting was saved."
    batch_hint: "Compresses existing images under public/uploads (recursive). Each run processes up to a limit—run again for large libraries or use the terraflow:images:compress console command."
    batch_button: "Compress uploads now"
    batch_max_label: "Max. files per run"
    batch_done: "Compression finished: %processed% files processed, %compressed% compressed successfully, %skipped% skipped (no matching active rule), %errors% errors. Approx. space saved: %saved_kb% KB."
  redirect_module:
    empty: "No redirects yet."
    form_hint: "Source: route without a leading slash (must not start with “admin”). Destination: full URL or path."
    delete_confirm_prefix: "the redirect"
    flash_created: "Redirect was created."
    flash_updated: "Redirect was updated."
    flash_deleted: "Redirect was deleted."
    flash_delete_failed: "Could not delete redirect: %message%"
    flash_source_admin_forbidden: "The source must not start with “admin”."
  backup:
    download_hint: "Download a previously generated database backup."
    reset_warning: "Resets the database and removes all content. Only use if you have a current backup."
    reset_confirm_html: "Do you really want to reset the database?<br><br><strong class=\"text-danger\">All data will be lost.</strong><br><small class=\"text-muted\">This cannot be undone.</small>"
    reset_confirm_title: "Reset database"
    reset_confirm_button: "Reset"
  maintenance_module:
    maintenance_mode_status: "Maintenance mode"
    maintenance_mode_active_hint: "Visitors see the maintenance page (except whitelisted IPs)."
    maintenance_mode_inactive_hint: "The site is publicly available as usual."
    custom_page_placeholder: "Optional: custom HTML/Twig for the maintenance page…"
    ip_whitelist_title: "IP whitelist"
    ip_whitelist_help: "Addresses that may browse normally while maintenance is on. Supports CIDR (e.g. 192.168.1.0/24) and wildcards (e.g. 192.168.1.*)."
    ip_label: "IP address or pattern"
    ip_placeholder: "e.g. 192.168.1.100"
    ip_add: "Add"
    ip_add_current: "Add current IP"
    ip_detected_hint: "Detected client IP: %ip%"
    ip_current_unknown: "Could not determine the current IP (empty or untrusted proxy chain)."
    ip_error_empty: "IP address must not be empty."
    ip_error_invalid: "Invalid IP format or pattern: %ip%"
    ip_flash_added: "The IP address was added to the whitelist."
    ip_flash_duplicate: "This IP address is already on the whitelist."
    ip_flash_error: "Could not add the IP address: %message%"
    ip_column: "IP / pattern"
    ip_remove: "Remove"
    ip_empty: "No entries – during maintenance all visitors only see the maintenance page."
    ip_delete_confirm: "Remove IP address “%ip%” from the whitelist?"
    ip_delete_warning: "This address will lose maintenance bypass access."

  # Modal System Translations
  modal:
    # General
    hint: "Notice"
    confirmation_required: "Confirmation required"
    input_required: "Input required"
    success: "Success"
    error: "Error"
    warning: "Warning"
    loading: "Loading"
    please_wait: "Please wait..."
    
    # Buttons
    ok: "OK"
    confirm: "Confirm"
    cancel: "Cancel"
    delete: "Delete"
    save: "Save"
    close: "Close"
    
    # Delete Confirmations
    delete_element: "Delete element"
    delete_confirm: "Do you really want to delete this element?"
    delete_warning: "This action cannot be undone."
    
    # Input Placeholder
    input_placeholder: "Input..."
    
    # Loading Messages
    deleting: "Deleting..."
    saving: "Saving..."
    loading_data: "Loading data..."
    
    # Success Messages
    deleted_successfully: "successfully deleted!"
    saved_successfully: "successfully saved!"
    copied_to_clipboard: "copied to clipboard!"
    
    # Error Messages
    delete_error: "Error while deleting."
    save_error: "Error while saving."
    clipboard_error: "Error copying to clipboard."
    unexpected_error: "An unexpected error occurred."
    
    # Bulk Actions
    elements: "Elements"
    bulk_action_confirm: "Do you really want to {action} {count} {itemType}?"
    confirm_action: "Confirm {action}"
    this_element: "this element"

  help_guide:
    menu: "Help guide"
    eyebrow: "CMS Help"
    title: "TerraFlow Guide"
    subtitle: "A guided introduction to key areas, workflows, and important features."
    intro: "Choose a topic on the left. Guides relevant to the current page are highlighted."
    current_page: "This page"
    previous: "Previous"
    next: "Next"
    close: "Close"
    step_label: "Step"
    step_short: "Step %step%"
    step_counter: "%current% of %total% steps"
    empty_title: "No help available yet"
    empty_text: "No guide is currently registered for this area."
    guides:
      getting_started:
        title: "Getting oriented"
        summary: "How the admin is structured and how to move through it confidently."
        steps:
          step1:
            title: "Understand navigation"
            body1: "The main navigation sits at the top. Administration contains content and core data, while Tools contains system and module areas."
            body2: "The user dropdown in the top right gives access to profile, security options, this guide, and the hotkey help."
          step2:
            title: "Read page context"
            body1: "Breadcrumbs show where you currently are and make it easy to jump back quickly."
            body2: "Highlighted headings and admin cards separate actions, forms, and overviews into clearly recognizable sections."
          step3:
            title: "Work with permissions"
            body1: "The CMS hides functions depending on permissions. If a menu item or action is missing, it is usually related to your role."
            body2: "That keeps the interface lean for editors and complete for administrators."
      dashboard:
        title: "Reading the dashboard"
        summary: "The dashboard is your entry point for status, activity, and quick access."
        steps:
          step1:
            title: "Interpret metrics"
            body1: "The statistic cards give you a quick snapshot of how many items, users, or requests currently exist in the system."
            body2: "Watch for unusual jumps when you want to understand recent changes or integrations."
          step2:
            title: "Use quick actions"
            body1: "Quick actions take you straight to frequently used areas like pages, media, or settings."
            body2: "That saves clicks when working through recurring editorial tasks."
          step3:
            title: "Watch activity"
            body1: "Recent activity, notices, or system status areas help you identify open work early."
            body2: "After deployments, imports, or larger content changes, this overview is especially useful."
      content:
        title: "Managing content"
        summary: "Pages, categories, and publishing follow a shared editorial workflow."
        steps:
          step1:
            title: "Separate pages and categories"
            body1: "Pages hold the actual content, while categories structure and group content for navigation or listings."
            body2: "If you plan the structure first, the CMS stays manageable even with many items."
          step2:
            title: "Use status intentionally"
            body1: "Draft, scheduled, and published determine whether content is visible already or still being prepared."
            body2: "Before publishing, always check visibility, route, SEO data, and any linked categories."
          step3:
            title: "Keep revisions and preview in mind"
            body1: "For larger changes, it is worth reviewing content as a draft and using any available revision or preview features."
            body2: "That reduces mistakes on the live site and makes changes easier to understand later."
      media:
        title: "Managing media cleanly"
        summary: "Uploads, folders, and file maintenance work best with a clear structure."
        steps:
          step1:
            title: "Upload with intent"
            body1: "Use meaningful file names and upload media in the right format whenever possible so later maintenance stays simple."
            body2: "Folders help keep images, documents, and campaign assets easy to find over time."
          step2:
            title: "Reuse instead of duplicating"
            body1: "Before uploading a new file, check whether it already exists. That reduces duplicates and saves storage."
            body2: "Existing media can often be reused in multiple places."
          step3:
            title: "Think about optimization"
            body1: "Compression, metadata, and file size affect performance and loading times across your website."
            body2: "For large images or heavy upload usage, it is worth checking compression and cache features."
      modules_settings:
        title: "Modules and settings"
        summary: "This is where you control system behavior, extensions, and project-specific configuration."
        steps:
          step1:
            title: "Modules vs plugins"
            body1: "Modules are built-in functional areas such as privacy, cache, or contact requests."
            body2: "Plugins extend the system further and may be activated or configured separately depending on the project."
          step2:
            title: "Settings with broad impact"
            body1: "Changes in settings often affect the whole system. Always consider which areas of the website are impacted."
            body2: "For security- or SEO-related options, a quick frontend check is especially helpful."
          step3:
            title: "Stay extensible"
            body1: "New features can register their own help topics so guidance appears exactly where it is needed."
            body2: "That lets documentation grow with the CMS instead of aging inside a static handbook."
      productivity:
        title: "Working faster"
        summary: "Search, hotkeys, and consistent patterns save time in daily work."
        steps:
          step1:
            title: "Use global search"
            body1: "The search in the top right often gets you to pages, media, or sections faster than clicking through menus."
            body2: "Use clear names and titles so content is easier to find later."
          step2:
            title: "Know your hotkeys"
            body1: "ALT+I opens the hotkey help. There you will find keyboard shortcuts for navigation, saving, and more."
            body2: "For repeated editorial flows, this is much faster than relying on mouse navigation."
          step3:
            title: "Use the guide contextually"
            body1: "This guide shows general topics and highlights help that fits the current page exactly."
            body2: "When new modules are added later, they can use the same mechanism for their own onboarding."
      contact_requests:
        title: "Handling contact requests"
        summary: "Process incoming messages in a structured way without losing context."
        steps:
          step1:
            title: "Read the list"
            body1: "The overview shows sender, email, time, status, and source of each request at a glance."
            body2: "Use search to quickly filter by name or email when you need a specific request."
          step2:
            title: "Use actions correctly"
            body1: "From the list you can open a request, mark it as answered, copy the ID, or delete it."
            body2: "The detail page also shows the full message text and a direct mail link."
          step3:
            title: "Maintain status carefully"
            body1: "Only mark requests as answered once they have really been handled or forwarded to the right person."
            body2: "That helps your team keep track of open and completed conversations even at higher volume."

  # Hotkeys
  hotkeys:
    new_page: "New Page"
    clear_cache: "Clear Cache"
    # Alias of admin.cache.* (hotkey modal / compatibility)
    clear_cache_confirm: "Do you really want to clear the entire cache?"
    clear_cache_warning: "All cached data will be removed"
    clear: "Clear"
    save: "Save"
    categories: "Categories"
    users: "Users"
    media: "Media"
    roles: "Roles"
    settings: "Settings"
    tools: "Tools"
    plugins: "Plugins"
    dashboard: "Dashboard"
    help: "Help"
    clearing_cache: "Clearing cache..."
    please_wait: "Please wait"
    cache_cleared: "Cache cleared"
    cache_cleared_message: "System cache has been successfully cleared"
    error: "Error"
    cache_clear_error: "Cache could not be cleared"
    network_error: "Network error"
    connection_failed: "Connection failed"
    welcome_title: "Welcome to Admin Area"
    welcome_message: "Press ALT+I for available hotkeys"
    modal_title: "Admin Hotkeys"
    modal_subtitle: "Keyboard shortcuts for quick navigation and actions"
    navigation: "Navigation"
    actions: "Actions"
    this_help: "This Help"
    info_text: "Hotkeys work in most areas of the administration. In input fields, only certain hotkeys are available."
    tips: "Tips & Notes"
    tip_1: "Hotkeys work in most areas of the administration"
    tip_2: "In input fields, only certain hotkeys are available"
    tip_3: "Press ALT+I anytime for this help"
    footer_info: "Keyboard shortcuts for efficient administration"
    close: "Close"
    executing_hotkey: "Executing hotkey:"
    saving: "Saving..."
    processing_form: "Processing form"
    no_form: "No form"
    nothing_to_save: "Nothing to save found"
    no_permission: "No permission"
    action_not_allowed: "Action not allowed: %action%"
    debug_enabled: "Debug mode enabled"
    debug_disabled: "Debug mode disabled"
    hotkey_system: "Hotkey System"
    action: "Action"
    alt_p_captured: "ALT+P detected and captured"
    unknown_hotkey: "Unknown hotkey:"
    saving_form: "Saving form:"
    no_form_to_save: "No form to save found"
    debug:
      keydown_event: "Keydown event:"
      alt: "Alt:"
      target: "Target:"
    clearing_cache_debug: "Clearing cache..."
    navigating_to: "Navigating to:"
    debug_mode: "Hotkey Debug Mode:"
    on: "ON"
    off: "OFF"

  # Notifications
  notifications:
    saving: "Saving"
    network_error: "Network error"
    connection_failed: "Connection failed"
    system_initialized: "Admin Notification System initialized"

  ajax_forms:
    request_failed_title: "Request failed"
    unexpected_response_title: "Unexpected response"
    unexpected_response_detail: "The page will be reloaded."

  # Console Messages
  console:
    modal_system_initialized: "AdminModalSystem successfully initialized"
    modal_translations_available: "Modal translations available via TerraFlowTranslations"
    modal_system_loaded: "TerraFlow Modal System loaded - All JavaScript dialogs have been replaced!"
    mobile_dropdown_found_buttons: "Mobile Dropdown Fix: Found"
    mobile_dropdown_buttons: "dropdown buttons"
    mobile_dropdown_added_listener: "Mobile Dropdown Fix: Added event listener"
    mobile_dropdown_clicked: "Mobile Dropdown Fix: Button clicked!"
    mobile_dropdown_button: "Mobile Dropdown Fix: Button:"
    mobile_dropdown_menu: "Mobile Dropdown Fix: Dropdown menu:"
    mobile_dropdown_no_menu: "Mobile Dropdown Fix: No dropdown menu found"
    mobile_dropdown_creating_modal: "Mobile Dropdown Fix: Creating modal..."
    css_loading_error: "Error loading CSS file:"
    wysiwyg_css_loading_error: "Error loading WYSIWYG CSS file:"
    text_node_error: "Current node is not a text node."
    hotkeys_loaded: "Admin Hotkeys successfully loaded"
    hotkeys_help_hint: "Press ALT+I for keyboard shortcuts help"

  # Mobile Dropdown
  mobile_dropdown:
    options: "Options"
    close: "Close"

  # Code Editor
  code_editor:
    saved: "Saved"
    content_updated: "Code editor content has been updated"
    search_for: "Search for:"
    replace_with: "Replace with:"
    found_at_position: "Found at position"
    text_not_found: "Text not found."
    line: "Ln"
    column: "Col"
    chars: "chars"
    words: "words"
    tooltips:
      undo: "Undo (Ctrl+Z)"
      redo: "Redo (Ctrl+Y)"
      select_all: "Select All (Ctrl+A)"
      comment: "Comment (Ctrl+/)"
      duplicate_line: "Duplicate Line (Ctrl+D)"
      indent: "Indent"
      outdent: "Outdent"
      find: "Find (Ctrl+F)"
      replace: "Replace (Ctrl+H)"
      wysiwyg_editor: "WYSIWYG Editor"
      fullscreen: "Fullscreen (Ctrl+F11)"
      media_browser: "Open Media Browser"

  # Unified Editor (Visual + Code)
  editor:
    tab_visual: "Visual"
    tab_code: "Code"
    words: "Words"
    resize_handle: "Drag to resize height"
    mode_group_aria: "Switch between visual and source view"

  # WYSIWYG Editor
  wysiwyg:
    saved: "Saved"
    content_updated: "WYSIWYG editor content updated"
    source_mode_hint: "The rich text editor uses TinyMCE (self-hosted, open source). Edit visually or use “Source code” for raw HTML. Twig and complex structures are safest in the source dialog; visual mode no longer forces a root <p> but may still normalize content."
    source_invalid_html: "Could not apply HTML. Please check the markup."
    enter_font_size: "Enter font size (px):"
    enter_url: "Enter URL:"
    enter_link_text: "Enter link text:"
    open_in_new_tab: "Open link in new tab?"
    tooltips:
      bold: "Bold (Ctrl+B)"
      italic: "Italic (Ctrl+I)"
      underline: "Underline (Ctrl+U)"
      unordered_list: "Bullet List"
      ordered_list: "Numbered List"
      justify_left: "Align Left"
      justify_center: "Center"
      justify_right: "Align Right"
      justify_full: "Justify"
      create_link: "Insert Link"
      font_size: "Font Size"
      remove_format: "Remove Formatting"
      refresh_css: "Refresh CSS"
      code_editor: "HTML source"
      visual_editor: "Visual editor"
      fullscreen: "Fullscreen (Ctrl+F11)"
      insert_image: "Insert Image"
      media_browser: "Open Media Browser"
    enter_image_url: "Enter image URL:"
    enter_alt_text: "Enter alt text:"

  # Loading Text
  loading_text: "Loading..."

  plugin_info: "Plugin information"
  back_to_plugin_list: "Back to plugin list"
  back_to_details: "Back to details"
  plugin_information: "Plugin information"
  requirements: "Requirements"
  compatibility: "Compatibility"

  plugin_settings: "Plugin settings"
  contact_requests: "Contact requests"
  view_contact_request: "View contact request"
  contact_requests_lead: "Messages from your site’s contact form at a glance."
  contact_request_open: "Open"
  contact_request_done: "Done"
  contact_requests_empty: "No contact requests yet"
  contact_requests_no_match: "No results for this search."
  contact_requests_empty_hint: "When visitors submit the contact form, entries will appear here."
  contact_request:
    delete_confirm: "Really delete the contact request from __NAME__?"
    delete_warning: "This permanently removes the request; it cannot be restored."
    mark_answered: "Mark as answered"
    mailto: "Write email"
    message_label: "Message"
    back_to_list: "Back to list"
    id_copied_title: "Copied"
    id_copied_message: "The ID was copied to the clipboard."
    id_copy_error_title: "Copy failed"
    id_copy_error_message: "The ID could not be copied."
    flash_not_found: "Contact request not found."
    flash_deleted: "Contact request deleted."
    flash_delete_error: "Could not delete the contact request: %message%"
    flash_marked_answered: "Contact request marked as answered."
    flash_mark_error: "Could not update the contact request: %message%"
  status: "Status"
  dashboard_files: "Files"
  upload: "Upload"
  add: "Add"
  create_page: "Create page"
  quick_actions: "Quick actions"
  copy_reference: "Copy reference code"
  management_overview: "Management overview"
  upload_media: "Upload file"
  upload_media.description: "Upload images, videos, audio files or documents"
  back: "Back"
  upload_page:
    drag_drop_title: "Drop file here"
    drag_drop_text: "Drag a file here"
    drag_drop_text_multi: "Upload multiple files at once"
    or: "or"
    browse_files: "Browse files"
    select_files: "Select files"
    upload_stats: "Upload statistics"
    selected_files: "Selected files"
    total_size: "Total size"
    upload_progress: "Upload progress"
    uploading_label: "Uploading..."
    preparing: "Preparing..."
    multi_upload_title: "Multi-upload"
    multi_upload_drag: "Multiple files via drag & drop"
    multi_upload_ctrl: "Or select with CTRL/CMD"
    multi_upload_max: "Max. 50MB per file"
    clear_all: "Clear all"
    clear_all_confirm: "Do you really want to remove all files?"
    supported_formats: "Supported formats"
    max_size: "Maximum file size"
    name_placeholder: "Enter filename..."
    name_help: "Enter a meaningful name for the file"
    uploading: "Uploading..."
    file_info: "File Information"
    file_type: "File type"
    file_size: "File size"
    last_modified: "Last modified"
    file_selected: "File selected"
    file_too_large: "File too large"
    max_size_warning: "Maximum file size: 50MB"
    upload_started: "Upload started"
    uploading_file: "File is being uploaded..."
    file_cleared: "File removed"
    select_new_file: "Select a new file"
  first: "First"
  manage_plugins_description: "Here you can manage the website plugins."
  upload_new_media: "Upload new file"
  media_management: "Media Management"
  previous: "Previous"
  next: "Next"
  last: "Last"
  copy: "Copy"
  copy_id: "Copy ID"
  view: "View"
  tools: "Tools"
  manage_tools: "Overview of website tools"
  show_tools: "Show tools"
  create_translation: "Create translation"
  maintenance: "Maintenance"
  maintenance_description: "Here you can activate or deactivate the website maintenance mode."
  website: "Website"
  administration: "Administration"
  translations:
    qualifier: "Qualifier"
    text: "Text"
    locale: "Language"
    delete_confirm_prefix: "the translation"
  translations_management: "Translation Management"
  manage_translations_description: "Here you can manage the website translations. Use the <a href=\"{{ path('admin_reference_codes') }}\">Twig Reference Codes</a> in your pages. The storefront route <b>/change-locale/{locale}</b> can be used to change the language."
  copy_shortcode: "Copy reference code"
  show_categories: "Show categories"
  
  # Reference Codes
  reference_codes:
    title: "Twig Reference Codes"
    description: "Use these Twig functions in your pages"
    contact_form: "Contact Form"
    contact_form_description: "Inserts a complete contact form"
    media_url: "Media URL"
    media_url_description: "Returns the URL of a media file by ID"
    current_date: "Current Date"
    current_date_description: "Returns the current date in the specified format"
    translate_text: "Translate Text"
    translate_text_description: "Translates text based on the qualifier"
    qr_code_url: "QR Code URL"
    qr_code_url_description: "Generates a QR code URL for a web address"
    page_route: "Page Route"
    page_route_description: "Returns the route of a page by ID"
    category_route: "Category Route"
    category_route_description: "Returns the route of a category by ID"
    usage_info: "Usage Information"
    how_to_use: "How to use these functions?"
    usage_step_1: "Copy the desired reference code"
    usage_step_2: "Insert it into your Twig template or page"
    usage_step_3: "Replace the placeholders with your own values"
    examples: "Examples"
    example_1: "Include contact form"
    example_2: "Image with media URL (ID)"
    example_3: "Display translated text"
    copied: "Copied!"
    copied_message: "The reference code has been copied to clipboard"
    copy_error: "Copy Error"
    copy_error_message: "The reference code could not be copied"
  manage_categories: "Manage website categories"
  create_user: "Create user"
  you: "You"
  show_title: "Show title"
  modules_information:
    translations: "Translations"
    maintenance: "Maintenance mode"
    maintenance_description: "Here you can activate or deactivate the website maintenance mode."
    translations_description: "Here you can manage the website translations."
    backup: "Backups"
    backup_description: "Here you can create and restore backups of your website."
    404: "Not Found page"
    404_description: "Here you can create or edit a 404 page."
    contact_requests: "Contact requests"
    redirects: "Redirects"
    image_compressor: "Image compressor"
    contact_requests_description: "Organize and manage contact requests from your website."
    redirects_description: "Create and manage redirects for your website."
    image_compressor_description: "Compress images from your website."
    robots_txt: "robots.txt"
    robots_txt_description: "Control the robots.txt file for search engine crawlers."
    captcha: "Captcha"
    captcha_description: "Protect public forms from bots (ALTCHA, self-hosted, privacy-friendly)."
    scheduled_tasks: "Scheduled tasks"
    scheduled_tasks_description: "Status of core and plugin tasks, manual queue and error reset."
    email_templates: "Email templates"
    email_templates_description: "Edit transactional emails (Twig), send tests, and view the send log."
    system_logs: "System logs"
    system_logs_description: "Browse and view Monolog files under var/log (tail view, filters)."
    log_cleanup: "Log cleanup"
    log_cleanup_description: "Scheduled task: delete old *.log files under var/log based on configurable retention."
    oauth: "OAuth 2.0"
    oauth_description: "Social sign-in for your site (Google, Microsoft, …) and optionally TerraFlow as an OAuth server for third-party apps."
    privacy: "Privacy & cookies"
    privacy_description: "Storefront cookie banner, GDPR data export and account erasure (extensible via plugins)."
    photopea: "Photopea"
    photopea_description: "Edit images and PSD/PSB from media in Photopea and save back."
  oauth_module:
    page_intro: "Set up social sign-in for your site (visitors sign in with Google, Microsoft, etc.). OAuth server endpoints for third-party apps are in the collapsible section below."
    section_inbound_badge: "For your website"
    section_inbound_title: "Sign in with Google, Microsoft, Facebook…"
    section_inbound_lead: "For each provider you create an app in the developer console and paste Client ID and Secret here. Endpoints and scopes are built in for the templates."
    section_inbound_step1: "Pick a template (e.g. Google). Use “Custom provider” only if you connect your own OAuth server."
    section_inbound_step2: "Copy the redirect URL from this admin form into the provider’s app settings."
    section_inbound_step3: "Adjust the display name, save credentials, and enable the provider."
    section_outbound_badge: "For developers"
    section_outbound_title: "TerraFlow as OAuth server (APIs & third-party apps)"
    section_outbound_lead: "A different use case: other applications request access to user data through your TerraFlow server. Only needed if you plan such integrations."
    license_inactive: "The OAuth module is not enabled for your current license or license validation failed. Public OAuth endpoints will return 404."
    twofa_title: "Two-factor authentication"
    twofa_body: "If 2FA is enabled for your account, you must complete the second step before an OAuth authorization (/oauth/authorize) is granted. After login you will be redirected to the 2FA page when required."
    endpoints_title: "Public endpoints"
    label_authorize: "Authorization (authorization code)"
    label_token: "Token"
    label_userinfo: "Userinfo"
    clients_hint: "OAuth clients are stored in the database (oauth2_client table). A management UI may be added later."
    clients_manage_hint: "Manage redirect URIs and secrets here—no SQL required."
    outbound_server_hint: "Outbound (authorization server for third-party apps):"
  oauth_inbound:
    new_title: "Add OAuth provider"
    edit_title: "Edit OAuth provider"
    inbound_title: "Sign-in providers (inbound)"
    inbound_intro: "With a template you only add Client ID and Secret from the provider console. “Custom provider” is for advanced setups with your own URLs."
    custom_endpoints: "Endpoints (custom provider only)"
    add_provider: "Add provider"
    no_providers: "No providers configured."
    col.name: "Display name"
    col.slug: "Slug"
    col.type: "Type"
    col.status: "Status"
    enabled: "On"
    disabled: "Off"
    incomplete: "no secret"
    toggle: "Toggle"
    confirm_delete: "Delete this provider? All user links for it will be removed."
    saved: "Saved."
    deleted: "Provider deleted."
    error.slug_taken: "This slug is already in use."
    error.custom_urls: "Please fill in all three URLs."
    error.terraflow_remote_required: "Enter the base URL of the other TerraFlow server (e.g. https://login.example.com)."
    preset.google: "Google"
    preset.facebook: "Facebook"
    preset.microsoft: "Microsoft"
    preset.atlassian: "Atlassian"
    preset.custom: "Custom provider (manual URLs)"
    preset.terraflow: "Another TerraFlow server"
    form:
      page_intro: "Follow the numbered steps. For a template, OAuth URLs and scopes are automatic—you do not configure them."
      provider_type: "Template"
      provider_type_help: "Choose “Custom provider” only if you are not using a major vendor and need to enter URLs yourself."
      edit_type_locked: "Provider type cannot be changed after creation."
      redirect_aria: "OAuth redirect URL"
      redirect_title: "Redirect / callback URL at the provider"
      redirect_body: "Register this exact URL as an allowed redirect in the provider’s app (e.g. Google Cloud Console)."
      copy_redirect: "Copy"
      copied: "Copied"
      redirect_hint_preset: "For this template the path segment is fixed (e.g. …/google/callback)."
      redirect_hint_custom: "The slug is the URL segment you choose; the preview updates as you type."
      step_provider: "Provider type"
      step_provider_help: "Common providers are preconfigured. Extra technical fields appear only for “Custom provider”."
      step_identity: "Name & visibility"
      step_credentials: "Credentials from the developer console"
      step_credentials_help: "You get Client ID and Secret when you create an OAuth client or web app there."
      display_name_help: "Shown on login and registration (e.g. “Continue with Google”)."
      client_id_help: "Often labelled “Client ID” or “Application ID”."
      step_scopes: "Permissions (scopes)"
      step_scopes_help: "Separate scopes with spaces. Leave empty to use sensible defaults for OpenID/email."
      scopes_examples: "Examples: openid email profile · or User.Read (Microsoft Graph)"
      preset_auto_title: "Template active"
      preset_auto_body: "Scopes, OAuth endpoints, and JSON fields for user id/email are set automatically and refreshed from the template on each save. Nothing more to enter here."
      terraflow_remote_url: "Base URL of the other TerraFlow server"
      terraflow_remote_url_help: "Origin only, no path (e.g. https://login.company.com). This site will call that server’s <code>/oauth/authorize</code>, <code>/oauth/token</code>, and <code>/oauth/userinfo</code>."
      terraflow_setup_hint: "<p class=\"mb-2\"><strong>Where do Client ID and secret come from?</strong> On the <em>other</em> TerraFlow, create the client under <strong>Modules → OAuth 2.0 → OAuth clients (authorization server)</strong> (no manual database work).</p><ol class=\"small mb-0 ps-3\"><li><strong>On this site:</strong> Copy the callback URL above.</li><li><strong>On the other TerraFlow:</strong> Create a new OAuth client, paste that callback as a redirect URI, keep it confidential, set a secret – note the <strong>client ID</strong> and <strong>plain secret</strong>.</li><li><strong>In this form:</strong> Enter the other instance’s base URL plus that client ID and secret.</li></ol><p class=\"small text-muted mb-0\">Scopes on the other server: <code>openid</code>, <code>email</code>, <code>profile</code>.</p>"
      slug: "URL slug"
      slug_required: "Slug is required"
      display_name: "Display name"
      enabled: "Enabled"
      client_id: "Client ID"
      client_secret: "Client secret"
      secret_placeholder: "Leave empty to keep the current secret"
      secret_help: "Leave empty to keep the stored secret; fill in only when setting or changing the secret."
      slug_help: "Lowercase letters, digits, hyphen and underscore only (e.g. google or my-idp)."
      scopes: "Scopes (space-separated)"
      scopes_help: "Empty = default scopes for the template"
      scopes_help_custom: "Leave empty for default scopes openid, email, profile. Otherwise list scopes separated by spaces."
      auth_url: "Authorization URL"
      token_url: "Token URL"
      userinfo_url: "Userinfo URL"
      user_id_field: "JSON field for user ID"
      user_email_field: "JSON field for email"
      user_name_field: "JSON field for display name"
      icon_class: "Bootstrap icon class (without bi-)"
      icon_help: "e.g. google → bi-google if left empty"
  oauth_server_client:
    title: "OAuth clients (authorization server)"
    manage: "Manage OAuth clients"
    list_intro: "Clients for third-party apps and other TerraFlow instances: manage redirect URIs and credentials here."
    list_hint: "The authorization code flow uses the public endpoints shown in the collapsible section on the OAuth module page."
    add: "Add client"
    empty: "No OAuth clients yet."
    new_title: "Add OAuth client"
    edit_title: "Edit OAuth client"
    edit_identifier_locked: "The client ID cannot be changed after creation:"
    saved: "OAuth client saved."
    deleted: "OAuth client deleted."
    confirm_delete: "Delete this OAuth client? Existing tokens remain in the database but become unusable."
    col.name: "Name"
    col.identifier: "Client ID"
    col.redirects: "Redirects"
    col.type: "Type"
    col.status: "Status"
    confidential: "Confidential"
    public_client: "Public (PKCE)"
    form:
      identifier: "Client ID (identifier)"
      identifier_help: "Public client name, e.g. my-portal or a UUID. Letters, digits, hyphen and underscore only."
      name_label: "Display name"
      redirect_uris: "Redirect URIs"
      redirect_uris_help: "One URL per line. Must match the other app’s callback URL <strong>exactly</strong> (including <code>http</code>/<code>https</code> and port)."
      confidential: "Confidential client (with secret)"
      confidential_help: "For server-side or web apps with a client secret. Disable only if you need a public PKCE-only client."
      active: "Active"
      client_secret: "Client secret"
      secret_help_new: "Stored as a hash. Required for confidential clients."
      secret_help_edit: "Leave empty to keep the current secret."
    error:
      identifier_format: "2–100 characters: letters, digits, hyphen and underscore only."
      identifier_taken: "This client ID is already in use."
      redirect_required: "Enter at least one redirect URI."
      redirect_invalid: "Invalid URL: %url%"
      secret_required: "A secret is required for confidential clients."
  profile_oauth:
    title: "External sign-ins"
    intro: "Link OAuth providers to sign in with them."
    unlink: "Disconnect"
    none: "No linked accounts yet."
    add_connection: "Add connection"
    unlinked: "Link removed."
    unlink_failed: "Could not remove the link."
    csrf_invalid: "Invalid form. Please try again."
  profile_oauth_server:
    title: "Connected apps"
    intro: "These applications have been granted OAuth access to your account. Revoke access if you no longer need it."
    revoke: "Revoke access"
    revoke_confirm: "Really revoke access for this app? It will no longer be able to act on your behalf."
    revoked: "Access has been revoked."
    none: "No apps currently have access to your account."
  robots_txt_saved: "robots.txt has been saved."
  captcha:
    saved: "Captcha settings have been saved."
    hint_title: "ALTCHA (self-hosted)"
    hint_body: "We use <strong>ALTCHA</strong>: proof-of-work in the browser; challenge creation and verification run on <strong>your server</strong> (no third-party captcha API). Set a secret HMAC key (e.g. <code>openssl rand -hex 32</code>). The widget script is served from <code>public/vendor/altcha/altcha.min.js</code>. Challenge URL: <code>/altcha/challenge</code>. Leave the field empty to keep the stored secret."
    hmac_set: "An HMAC secret is stored (hidden for security)."
    section_connection: "Secret & activation"
    section_forms: "Protected forms"
    protect_forms_intro: "Only applies when captcha is enabled and an HMAC secret of at least 24 characters is set."
    enabled: "Enable captcha"
    hmac_secret: "Secret HMAC key"
    hmac_placeholder: "Enter a new secret …"
    hmac_help: "At least 24 characters. Leave empty to keep the saved secret unchanged."
    protect_contact: "Contact form"
    protect_login: "Login"
    protect_register: "Registration"
    protect_forgot: "Forgot password"
    protect_reset: "Set new password"
  create_redirect: "Create redirect"
  create: "Create"
  update: "Update"
  edit_redirect: "Edit redirect"
  createRedirect: "Create redirect"
  redirects_management: "Redirect Management"
  manage_redirects_description: "Here you can view and manage all redirects."
  source: "Source"
  destination: "Destination"
  statusCode: "Status Code"
  show_media: "Show media"
  show_modules: "Show modules"
  manage_media: "Manage website media"
  manage_modules: "All website modules"
  copy_link: "Copy link"
  
  # Modern Media Browser
  media_browser:
    title: "Media Browser"
    items: "items"
    selected: "selected"
    search_placeholder: "Search media..."
    filter_all: "All Files"
    filter_images: "Images"
    filter_documents: "Documents"
    filter_videos: "Videos"
    filter_audio: "Audio"
    sort_name_asc: "Name (A-Z)"
    sort_name_desc: "Name (Z-A)"
    sort_date_asc: "Date (oldest first)"
    sort_date_desc: "Date (newest first)"
    sort_size_asc: "Size (smallest first)"
    sort_size_desc: "Size (largest first)"
    upload: "Upload"
    drag_drop_title: "Drop files here"
    drag_drop_text: "Drag files here or click to select"
    select_files: "Select Files"
    uploading: "Uploading..."
    no_media_found: "No media found"
    no_media_description: "No media found matching your search criteria."
    upload_first_media: "Upload First Media"
    cancel: "Cancel"
    insert_selected: "Insert Selected"
    preview: "Preview"
    copy_reference: "Copy Reference Code"
    delete: "Delete"
    insert: "Insert"
    reference_copied: "Reference code copied"
    reference_copied_message: "The reference code has been copied to clipboard"
    delete_media: "Delete Media"
    delete_confirm_message: "Do you really want to delete this media file?"
    media_deleted: "Media deleted"
    media_deleted_message: "The media file has been successfully deleted"
    bulk_delete: "Delete Multiple Files"
    bulk_delete_confirm: "Do you really want to delete the selected files?"
    bulk_delete_success: "Files deleted"
    bulk_delete_success_message: "The selected files have been successfully deleted"
  open: "Open"
  answer: "Answer"
  modules: "Modules"
  modules_overview_hint: "Quick access to extension modules, grouped by topic. Only modules you are allowed to use are shown."
  modules_search_placeholder: "Search modules…"
  modules_no_match: "No module matches your search."
  modules_group_content: "Content & communication"
  modules_group_seo: "SEO & media"
  modules_group_operations: "Operations & maintenance"
  modules_group_system: "System"
  modules_cache:
    title: "Cache management"
    description_short: "Clear or warm up cache and view statistics."
  manage_contact_requests_description: "Here you can view and manage all contact requests.<br>Use the <a href=\"{{ path('admin_reference_codes') }}\">Twig Reference Codes</a> to embed the contact form on a page."
  name: "Name"
  answered: "Answered"
  is_admin: "Admin"
  category:
    back: "Back"
    basic_info: "Basic Information"
    content_section: "Content & Settings"
    new_description: "Create a new category with individual settings."
    edit_description: "Edit the category and its settings."
    title: 'Title'
    active: 'Active'
    priority: 'Priority'
    show_listing_methods: 'Show sorting on category page'
    no_parent: "No parent category"
    delete_confirm_prefix: "the category"
    delete_warning: "This action cannot be undone. All subcategories will also be deleted."
    drag_hint: "Drag and drop categories to move them. Drag pages onto a category to assign them."
    drag_to_move: "Drag to move"
    drop_root: "As root category (top level)"
    drop_here: "Drop here"
    pages_count: "pages"
    pages_label: "Pages"
    drag_page_to_category: "Drag page onto a category to assign"
    move_failed: "Move failed."
    page_move_failed: "Page could not be assigned."
    move_target_not_found: "Target category not found."
    move_no_self: "A category cannot be moved into itself."
    move_no_descendant: "A category cannot be moved into its own subcategory."
    parent_not_self: "The parent category cannot be the category itself."
    not_found: "Category not found."
  category_confirm_delete: "Are you sure you want to delete this category? Relationships to pages will also be deleted."
  create_category: "Create category"
  edit_category: "Edit category"
  categories_management: "Category Management"
  category_title: "Title"
  categories: "Categories"
  content: "Content"
  advanced: "Advanced"
  edit_page: "Edit page"
  users: "Users"
  pages: "Pages"
  roles: "Roles"
  dashboard: "Dashboard"
  users_management: "User Management"
  pages_management: "Pages"
  roles_management: "Role Management"
  search: "Search"
  pagesTitle: "Page title"
  createdAt: "Created at"
  createPage: "Create page"
  settings: "Settings"
  manage_users: "Manage website users"
  show_users: "Show users"
  manage_pages: "Manage website page content"
  show_pages: "Show pages"
  manage_system_settings: "Manage system settings"
  show_settings: "Show settings"
  edit_user: "Edit user"
  plugins: "Plugins"
  filter_active_plugins_only: "Show active plugins only"
  save: "Save"
  privacy:
    title: "Privacy & cookies"
    lead: "Cookie consent for visitors and tools for access and erasure (Art. 15/17 GDPR)."
    cookie_section: "Cookie banner (storefront)"
    cookie_hint: "When enabled, a banner shows categories. Optional scripts can use data-cookie-category."
    gdpr_export_section: "Data export (Art. 15)"
    gdpr_export_hint: "Structured JSON export of all registered core and plugin sections for the given account."
    gdpr_erase_section: "Delete account (Art. 17)"
    gdpr_erase_warning: "The user, OAuth links, WebAuthn, recovery codes and custom fields are removed permanently. You cannot delete your own account here."
    plugins_hint: "Plugins can register more cookie categories, export sections and erasure steps via Symfony tags or events (see TerraFlow\\Privacy\\* interfaces)."
    cookie_saved: "Cookie settings saved."
    gdpr_user_not_found: "No user found for that identifier."
    gdpr_erase_confirm_invalid: "Please type the confirmation exactly as shown."
    gdpr_erase_self_forbidden: "You cannot delete your own account here."
    gdpr_erased: "The user account was deleted."
  photopea:
    title: "Photopea"
    lead: "Pick a media file, edit it in Photopea, and save the result back to the same file (same URL)."
    need_media_view: "You need “View media” permission to use this module."
    select_label: "Media file"
    select_placeholder: "— Select a file —"
    search_placeholder: "Search media…"
    btn_load: "Open in Photopea"
    btn_save: "Save to media"
    editor_title: "Editor"
    hint_formats: "Supported: JPG, PNG, WebP, GIF, PSD, PSB."
    hint_save_permission: "Saving back requires the “Edit media” permission."
    status_loading_list: "Loading media list…"
    status_loading_file: "Loading file…"
    status_ready: "Ready."
    status_saved: "Saved."
    status_error: "Error."
    pagination: "Page %page% / %pages% (%total% files)"
    prev_page: "Previous"
    next_page: "Next"
    open_in_media: "Open in media library"
    error:
      csrf: "Invalid security token."
      invalid_media: "Invalid or unsupported media file."
      no_file: "No file uploaded."
      too_large: "File is too large (max. 25 MB)."
      extension_mismatch: "Export format does not match the original file extension."
      path: "Invalid path or outside the media directory."
      storage: "Media directory is not configured."
      write: "Could not write the file on the server."
      load_list: "Could not load the media list."
      photopea_timeout: "Photopea did not respond in time."
      fetch_media: "Could not load the media file."
      save_failed: "Save failed."
    saved: "The media file was updated."
  manage_pages_description: "Here you can manage the website page content."
  pages_list_hint: "Filters and table – a quick overview of all pages."
  pages_results_range: "Showing %from%–%to% of %total%"
  pages_reset_filters: "Reset filters"
  users_list_hint: "Filters and table – a quick overview of all users."
  users_reset_filters: "Reset filters"
  users_empty_filtered: "No users match these filters. Adjust or reset filters."
  users_table_user: "User"
  users_table_email: "Email"
  users_table_roles: "Roles"
  users_table_created: "Created"
  pages_open_categories: "Categories"
  pages_empty_filtered: "No pages match these filters. Adjust or reset filters."
  pages_table_title: "Title"
  pages_table_category: "Category"
  pages_table_url: "URL"
  pages_table_status: "Status"
  pages_table_created: "Created"
  filter_category: "Category"
  filter_category_all: "All categories"
  filter_category_none: "Uncategorized"
  filter_status: "Status"
  filter_status_all: "All"
  filter_status_active: "Active only"
  filter_status_inactive: "Inactive only"
  filter_status_live: "Live (public)"
  filter_status_not_live: "Not live"
  filter_status_draft: "Draft"
  filter_status_scheduled: "Scheduled"
  filter_status_published: "Status: Published"
  page_status_not_routable: "Not public"
  global_search_placeholder: "Global search…"
  content_lock_blocked: "This content is being edited by “%user%”."
  revision_rollback_success: "Content was restored."
  revisions:
    title: "Revisions"
    subtitle: "Revisions for %type% #%id%"
    date: "Time"
    user: "User"
    diff: "Compare"
    rollback: "Restore"
    rollback_confirm: "Really restore this revision?"
    empty: "No revisions yet."
    diff_title: "Differences"
    diff_legend: "Compare: saved revision → current state. Lines with “−” are from the revision, “+” from the current state; unchanged lines are context."
    field: "Field"
    before: "Revision (old)"
    after: "Current"
    no_diff: "No differences."
    custom_fields_diff_hint: "Values are normalized for comparison (keys sorted alphabetically, datetimes as ISO timestamps). Only real content changes show up—not just a different order in the stored structure."
  sort_label: "Sort"
  sort_created_desc: "Newest first"
  sort_created_asc: "Oldest first"
  sort_title_asc: "Title A–Z"
  sort_title_desc: "Title Z–A"
  pages_inactive_url_hint: "Page is inactive – not served on the site"
  pages_inactive_no_preview: "Preview unavailable (page inactive)"
  preview: "Preview"
  preview_options: "Preview options"
  preview_locale: "Language"
  preview_locale_session: "(session default)"
  preview_simulated_role: "Role (display)"
  preview_flags: "Feature flags"
  manage_system_settings_description: "Here you can manage the general system settings."
  system_name: "System name"
  timezone: "Timezone"
  timezone_berlin: "Berlin (GMT+1)"
  auto_backup: "Automatic backup"
  email_notifications: "Email notifications"
  notification_frequency: "Notification frequency"
  daily: "Daily"
  weekly: "Weekly"
  id: "ID"
  username: "Username"
  email: "Email"
  actions: "Actions"
  edit: "Edit"
  delete: "Delete"
  confirm_delete: "Are you sure?"
  manage_users_description: "Here you can view and manage all users."
  duplicate: 'Duplicate'
  maintenance_mode_disable: 'Disable maintenance mode'
  maintenance_mode_enable: 'Enable maintenance mode'
  maintenance_mode_enabled: 'Maintenance mode enabled'
  maintenance_mode_disabled: 'Maintenance mode disabled'
  search_redirects_placeholder: "Search by source or destination..."
  search_translations_placeholder: "Search by qualifier, text or language..."
  search_contact_placeholder: "Search by name or email..."
  custom_404_page: "Custom 404 page"
  custom_404_description: "Leave empty to use the generic TerraFlow maintenance page."
  show_logout_in_navigation: 'Show logout in navigation'
  favicon: 'Favicon'
  allow_remember_me_on_login: 'Allow remember me on login'
  login_identifier_mode_description: 'Defines whether users can log in with username, email, or both.'
  allow_password_reset_description: 'Enables or disables the "forgot password" function on the login page.'
  settings_nav:
    general: "General"
    seo: "SEO & Meta"
    code: "Code"
    navigation: "Navigation & Footer"
    navigation_section_intro: "Edit custom navigation, the global footer, and storefront navigation options (e.g. login, logout, registration) in one place."
    security: "Login & Security"
    custom_fields: "Custom fields"
  meta_tags: 'Global meta tags'
  profile: "Profile"
  profile_information: "Profile Information"
  edit_profile: "Edit Profile"
  two_factor:
    settings: "Two-factor authentication"
    title: "Authentication code"
    subtitle: "Enter the code from your authenticator app."
    intro: "For administrator accounts only: TOTP (authenticator app) and/or passkeys (iPhone Face ID/Touch ID, YubiKey, etc.) — both optional, usable together."
    section_totp: "Authenticator app (TOTP)"
    section_passkeys: "Passkeys / security keys"
    passkeys_intro: "After your password you can sign in with a registered passkey or device. You can store multiple passkeys."
    passkeys_none: "No passkey registered yet."
    passkey_add: "Add passkey"
    passkey_remove: "Remove"
    passkey_confirm_remove: "Really remove this passkey?"
    passkey_unnamed: "Passkey"
    passkey_register_title: "Register passkey"
    passkey_register_intro: "Follow your browser or device prompts (Face ID, Touch ID, security key)."
    passkey_register_submit: "Register passkey"
    passkey_register_cancel: "Back"
    passkey_label_optional: "Label (optional)"
    passkey_label_placeholder: "e.g. iPhone, office YubiKey"
    passkey_registered: "Passkey saved."
    passkey_removed: "Passkey removed."
    passkey_invalid: "Registration failed. Please try again."
    passkey_login_hint: "Sign in with your passkey or security key."
    passkey_https_warning: "WebAuthn usually requires HTTPS. Sign-in may fail without an encrypted connection."
    passkey_follow_browser: "Confirm the prompt in your browser or device dialog."
    passkey_submit_hint: "Click Sign in to start the passkey prompt."
    admin_only: "2FA is only available for administrators."
    active: "Two-factor authentication is enabled."
    inactive: "2FA is not set up."
    enable: "Set up 2FA"
    disable: "Disable 2FA"
    confirm_disable: "Really disable two-factor authentication?"
    confirm: "Confirm activation"
    code_label: "6-digit code"
    step_confirm: "Scan the QR code with your app and enter a valid code."
    scan_qr: "QR code generated. Scan it with your authenticator app."
    enabled: "2FA has been enabled."
    disabled: "2FA has been disabled."
    invalid_code: "The code is invalid or has expired."
    cancel_setup: "Cancel setup"
    setup_cancelled: "Setup was cancelled."
    nav_link: "2FA / Security"
    banner_no_2fa: "Your administrator account does not have two-factor authentication enabled. You should enable at least one method for security."
    banner_no_2fa_action: "Open 2FA settings"
    provider_totp: "Authenticator app"
    provider_recovery: "Recovery code"
    provider_webauthn_two_factor_provider: "Passkey"
    section_preferred: "Default method"
    preferred_intro: "When multiple 2FA methods are active, the method selected here will be shown first at login."
    preferred_save: "Save"
    preferred_saved: "Default 2FA method saved."
    provider_passkey: "Passkey / security key"
    section_recovery: "Recovery codes"
    recovery_status_ok: "%count% active code(s) on file (each usable once)."
    recovery_manage: "Manage codes"
    recovery_pending_regen: "After signing in with a recovery code you must save new codes."
    recovery_open_wizard: "Open setup wizard"
    recovery_setup_required: "Please set up recovery codes — required when 2FA is enabled."
    recovery_need_method: "Enable TOTP or a passkey first."
    recovery_login_title: "Recovery code"
    recovery_login_subtitle: "Enter one of your saved codes (single use)."
    recovery_login_warning: "Only use this if you cannot use your authenticator app or passkey. After sign-in, new codes are generated and must be saved immediately."
    recovery_code_label: "Recovery code"
  recovery_codes:
    title: "Set up recovery codes"
    show_title: "Your recovery codes"
    manage_title: "Recovery codes"
    intro: "You will receive eight codes. Each code works once. Store them safely (password manager, printout in a secure place)."
    intro_warning: "These codes are shown in plain text only once. Save them now — without them, sign-in may be difficult if you lose your app or passkey."
    generate: "Generate codes"
    regenerate: "Generate new codes"
    regenerate_warning: "All previous recovery codes will stop working when you generate new ones."
    regenerate_confirm: "Invalidate all existing recovery codes and generate new ones?"
    once_only: "Important: Save the codes now. They cannot be shown again later."
    download: "Download as file"
    copy: "Copy all"
    copied: "Copied"
    download_header: "TerraFlow CMS – recovery codes"
    confirm_challenge: "To confirm, enter code no. %n% exactly as shown (dashes optional)."
    code_label: "Code"
    checkbox_label: "I have stored the codes securely."
    finish: "Finish setup"
    saved: "Recovery codes are set up."
    invalid_confirm_code: "The code you entered is invalid."
    checkbox_required: "Please confirm that you have stored the codes."
    session_invalid: "This step’s session expired. Please start again."
    stuck_title: "Resume setup"
    stuck_body: "Codes are already stored but the one-time display is no longer available. You can generate new codes; old ones will be invalidated."
    lost_session_title: "Session expired"
    lost_session_body: "After signing in with a recovery code, new codes must be viewed and saved. That display is no longer available in this browser session."
    lost_session_hint: "Sign out and sign in again with your password and authenticator app or passkey. If that is not possible, contact an administrator or use maintenance tooling if available."
    logout: "Log out"
    need_2fa_first: "Enable TOTP or a passkey first."
    after_login_warning: "You signed in with a recovery code. Save your new codes now — they are shown only this one time."
    manage_intro: "You currently have %count% recovery code(s) on file."
    back_to_2fa: "Back to 2FA settings"
  search_button: "Search"
  save_shortcut_hint: "Press Ctrl + S for quick save"
  no_category: "No Category"
  no_pages_found: "No pages found"
  create_first_page_description: "Create your first page to get started."
  create_first_page_button: "Create first page"
  no_users_found: "No users found"
  create_first_user_description: "Create your first user to get started."
  create_first_user_button: "Create first user"
  role_management: "Role Management"
  new_role: "New Role"
  search_placeholder: "Search..."
  system: "System"
  no_permissions: "None"
  really_delete: "Really delete?"
  no_roles_found: "No roles found."
  roles_list_hint: "Filters and table – a quick overview of all roles."
  roles_reset_filters: "Reset filters"
  roles_empty_filtered: "No roles match these filters. Adjust or reset filters."
  roles_table_name: "Role"
  roles_table_description: "Description"
  roles_table_permissions: "Permissions"
  roles_table_type: "Type"
  roles_custom: "Custom"
  roles_system_not_deletable: "System roles cannot be deleted"
  active: "Active"
  no_modules_found: "No modules found."
  system_modules: "System Modules"
  system_modules_description: "Manage system modules and tools"
  modules_description: "Various modules and tools"
  access_modules: "Access modules"
  configure_system_settings: "Configure your system settings"
  system_options: "System Options"
  allow_new_registrations: "Allow new user registrations"
  inactive: "Inactive"
  no_plugins_found: "No plugins found. Place plugins in the plugin/ directory."
  search_plugins_placeholder: "Search by name, label, author..."
  no_media_found: "No media files found"
  no_tools_found: "No tools/extensions found."
  german: "German"
  english: "English"
  user_role: "User"
  role_user: "ROLE_USER"
  edit_role: "Edit Role"
  new_role_title: "New Role"
  installed: "Installed"
  not_installed: "Not installed"
  version: "Version"
  author: "Author"
  dependencies: "Dependencies"
  configuration: "Configuration"
  file_information: "File Information"
  usage: "Usage"
  size: "Size"
  type: "Type"
  available: "Available"
  upload_first_media_description: "Upload your first media file to get started."
  shortcode_copied: "Reference code copied!"
  meta_tags_description: "Meta tags for better search engine optimization"
  global_css_description: "Global CSS for all pages"
  global_js_description: "Global JavaScript for all pages"
  global_js_bottom_description: "JavaScript before the closing </body> tag"
  custom_navigation_description: "Custom navigation"
  global_footer_description: "Global footer for all pages"
  automatic_backups_description: "Enable automatic backups"
  show_admin_in_nav_description: "Show admin link in navigation"
  show_login_in_nav_description: "Show login link in navigation"
  show_logout_in_nav_description: "Show logout link in navigation"
  show_registration_in_nav_description: "Show registration link in navigation"
  custom_maintenance_page: "Custom Maintenance Page"
  custom_maintenance_description: "Leave it empty to use TerraFlow's generic maintenance page."
  edit_user_description: "Here you can edit the user's profile."
  permissions:
    permissions: "Permissions"
    dashboard_access: "Dashboard - Access"
    user_view: "Users - View"
    user_create: "Users - Create"
    user_edit: "Users - Edit"
    user_delete: "Users - Delete"
    role_view: "Roles - View"
    role_create: "Roles - Create"
    role_edit: "Roles - Edit"
    role_delete: "Roles - Delete"
    page_view: "Pages - View"
    page_create: "Pages - Create"
    page_edit: "Pages - Edit"
    page_delete: "Pages - Delete"
    category_view: "Categories - View"
    category_create: "Categories - Create"
    category_edit: "Categories - Edit"
    category_delete: "Categories - Delete"
    media_view: "Media - View"
    media_upload: "Media - Upload"
    media_edit: "Media - Edit"
    media_delete: "Media - Delete"
    settings_view: "Settings - View"
    settings_edit: "Settings - Edit"
    plugins_view: "Plugins - View"
    plugins_install: "Plugins - Install"
    plugins_edit: "Plugins - Edit"
    plugins_delete: "Plugins - Delete"
    extensions_view: "Tools - View"
    extensions_edit: "Tools - Edit"
    system_admin: "System - Administrator"
    view: "View"
    create: "Create"
    edit: "Edit"
    delete: "Delete"
    access: "Access"
    upload: "Upload"
    install: "Install"
    admin: "Administrator"
  create_image_compressor_settings: "Create Image Compressor Settings"
  image_compressor_settings: "Image Compressor Settings"
  file_format: "File Format"
  database_backup: "Database Backup"
  manage_database_backups: "Manage your database backups efficiently and securely."
  upload_backup: "Upload Backup"
  upload_backup_choose_file: "Choose a file"
  download_backup: "Download Backup"
  no_backup_available: "No backup available for download."
  reset_database: "Reset Database"
  reset_database_confirm: "Are you sure you want to reset the database? This action cannot be undone."
  plugin_management: "Plugin Management"
  description: "Description"
  general_settings: "General Settings"
  navigation_footer: "Navigation & Footer"
  reload_plugins: "Reload plugins"
  deactivate: "Deactivate"
  uninstall: "Uninstall"
  plugin_deactivate_confirm: "Deactivate plugin?"
  plugin_uninstall_confirm: "Really uninstall plugin? All data will be lost!"
  no_plugin_settings: "This plugin has no configurable settings or is not installed."
  
  # Plugin-specific translations
  plugin:
    install: "Install"
    deactivate: "Deactivate"
    uninstall: "Uninstall"
    install_confirm_title: "Install Plugin"
    deactivate_confirm_title: "Deactivate Plugin"
    uninstall_confirm_title: "Uninstall Plugin"
    install_confirm_message: "Do you really want to install the plugin \"{pluginName}\"?"
    deactivate_confirm_message: "Do you really want to deactivate the plugin \"{pluginName}\"?"
    uninstall_confirm_message: "Do you really want to uninstall the plugin \"{pluginName}\"?"
    uninstall_warning: "All plugin data will be lost!"
  show_remember_me_description: "Activate \"Remember me\" option"
  dashboard_welcome: "Welcome to the admin dashboard! Here you get a quick overview of your website."
  dashboard_stats_aria: "Statistics overview"
  dashboard_free_suffix: "free"
  dashboard_missing_extensions: "Missing extensions"
  dashboard_status_unknown: "Unknown"
  statistic_users: "Total users"
  statistic_pages: "Total pages"
  statistic_media: "Total media"
  statistic_categories: "Total categories"
  statistic_roles: "Total roles"
  statistic_plugins: "Plugins installed"
  statistic_extensions: "Extensions installed"
  statistic_redirects: "Redirects set up"
  statistic_contact_requests: "Contact requests received"
  statistic_backups: "Backups available"
  statistic_translations: "Translations available"
  button_group: "Button group"
  details: "Details"
  configure: "Configure"
  install: "Install"
  plugin_install_confirm: "Install plugin?"
  landing_page: "Landing page"
  list_in_navigation: "Show in navigation"
  showTitle: "Show title"
  passwordRepeat: "Repeat password"
  seo_meta_tags: "SEO & Meta-Tags"
  custom_code: "Custom code"
  dev_warning: "Warning: You are running a development version of TerraFlow. Please use a stable version for production."
  env_dev_banner_title: "Development environment (APP_ENV=dev): "
  env_dev_banner: "Symfony is running in \"dev\" mode (verbose errors, profiler). For production, set APP_ENV=prod and warm/optimize the cache."
  made_with: "Made with ❤️ by <a href=\"https://itsandre.mov/\">itsandre.mov</a>"
  title: "TerraFlowCMS"
  toggle_menu: "Toggle menu"
  administrator: "Administrator"
  cancel: "Cancel"
  create_user_description: "Create a new user for the website"
  user:
    profile_image_preview: "Profile Picture Preview"
    roles: "Roles"
    user_id: "User ID"
    user_information: "User Information"
    username_placeholder: "Enter username"
    username_help: "Unique username for login"
    email_placeholder: "email@example.com"
    email_help: "Used for notifications"
    password_placeholder: "New password (optional)"
    password_help: "Leave empty to keep current password"
    roles_permissions: "Roles & Permissions"
    user_roles: "User Roles"
    roles_description: "Manage user permissions"
    default_role_help: "Default role - cannot be removed"
    delete_confirm_prefix: "the user"
  
  media:
    title: "Media"
    delete_confirm_prefix: "the media file"
    delete_warning: "This action cannot be undone. The file will be removed from the server."
    move_to_root: "Drop here → move to root"
    drag_to_move: "Drag to move into a folder"
    new_folder: "New folder"
    folder_name: "Folder name"
    new_folder_placeholder: "e.g. Documents 2024"
    create_folder: "Create folder"
  
  manage_media_description: "Manage website media files"
  delete_media_confirm: "Are you sure you want to delete this file?"
  upload_first_media_button: "Upload first file"
  categories_description: "Here you can manage the website categories."
  no_categories_found: "No categories found."
  create_first_category: "Create your first category to get started."
  create_first_category_button: "Create first category"
  system_tools: "System Tools"
  system_tools_description: "Advanced system tools and functions"
  tools_description: "Various tools and extensions"
  access_tools: "Access tools"
  settings_description: "System settings and configuration"
  access_settings: "Access settings"
  plugins_description: "Plugin management and configuration"
  manage_plugins: "Manage plugins"
  page_info: "Page %current% of %total%"
  manage_roles_description: "Manage user roles and their permissions"
  search_roles_placeholder: "Search roles..."
  create_first_role_description: "Create your first role to manage user permissions"
  create_first_role_button: "Create first role"
  permission_groups:
    dashboard: "Dashboard"
    user: "User"
    role: "Role"
    page: "Page"
    category: "Category"
    media: "Media"
    license: "License Management"
    settings: "Settings"
    system: "System"
    plugins: "Plugins"
    modules: "Modules"
    extensions: "Extensions"
    tools: "Tools"
    "404": "404 Module"
    backup: "Backup"
    translations: "Translations"
    maintenance: "Maintenance"
    contact: "Contact"
    redirects: "Redirects"
    image: "Image Compressor"
    accounting: "Accounting"
    cache: "Cache"
    custom: "Custom Fields"
  role:
    new_role: "Create New Role"
    edit_title: "Edit Role"
    new_description: "Create a new user role with specific permissions"
    edit_description: "Edit the role and its permissions"
    back: "Back"
    basic_info: "Basic Information"
    role_name: "Role Name"
    role_name_placeholder: "e.g. Editor, Moderator"
    role_name_help: "Unique name for the role"
    description: "Description"
    description_placeholder: "Description of the role and its tasks"
    description_help: "Optional description of the role"
    system_role: "System Role"
    system_role_help: "System roles cannot be deleted"
    permissions_title: "Permissions"
    quick_selection: "Quick Selection"
    select_all: "Select All"
    deselect_all: "Deselect All"
    read_only: "Read Only"
    editor: "Editor"
    administrator: "Administrator"
    permissions_count: "Permission"
    permissions_count_plural: "Permissions"
    no_permissions: "No permissions assigned"
    confirm_delete: "Really delete role?"
    save: "Save"
  page:
    basic_info: "Basic Information"
    content_section: "Content & Settings"
    new_description: "Create a new page with individual settings."
    edit_description: "Edit the page and its settings."
    delete_confirm_prefix: "the page"
    back: "Back"

menu:
  language: "Language"
  logout: "Logout"

form:
  translation:
    qualifier: "Qualifier"
    text: "Text"
    locale: "Language code"
  category:
    title: 'Title'
    active: 'Active'
    priority: 'Priority'
    route: 'Route'
    show_listing_methods: 'Show sorting on category page'
    no_parent: "No parent category"
    basic_info: "Basic Information"
    content_section: "Content & Settings"
    new_description: "Create a new category with individual settings."
    edit_description: "Edit the category and its settings."
    parent: 'Parent Category'
  page:
    hide_navigation: 'Hide navigation on this page'
    show_title: 'Show title'
    footer: 'Footer'
    footer_overwrite: 'Override global footer'
    stylesheets_overwrite: 'Override global stylesheets'
    javascripts_bottom_overwrite: 'Override global javascripts (bottom)'
    javascripts_overwrite: 'Override global javascripts'
    permission_required: 'Required permission'
    title: 'Title'
    content: 'Content'
    category: 'Category'
    active: 'Active'
    active_help: "When status is Published, this controls live visibility. Draft/Scheduled force inactive."
    publication_status: 'Publication status'
    publication_status_draft: 'Draft'
    publication_status_scheduled: 'Scheduled'
    publication_status_published: 'Published'
    keep_public_while_draft: 'Keep last published version online'
    keep_public_while_draft_help: 'Visitors keep seeing the last published version: for a draft, until you publish again; for Scheduled, until the chosen date and time (then your edited version goes live). Without this, the page is temporarily unavailable to the public.'
    edit_published_hint: 'This page is currently public. To edit without publishing changes immediately, choose “Draft” and save.'
    scheduled_publish_at: 'Scheduled publication'
    validation:
      scheduled_needs_date: 'Please set a date and time for scheduled publication.'
      scheduled_must_be_future: 'The scheduled date must be in the future.'
    priority: 'Priority'
    stylesheets: 'Stylesheets'
    javascripts_bottom: 'Javascripts (bottom)'
    javascripts: 'Javascripts'
    route: 'Route'
    meta_tags: 'Meta tags'
    list_in_navigation: 'Show in navigation'
    landing_page: 'Landing page'
    meta_tags_overwrite: 'Override global meta tags'
    navigation: 'Navigation'
  registration:
    username: 'Username'
    email: 'Email'
    email_required: 'Please enter your email address.'
    email_invalid: 'Please enter a valid email address.'
    agree_terms: 'I agree to the terms of service'
    should_agree_terms: 'You must agree to the terms of service'
    please_enter_password: 'Please enter a password'
    password_too_short: 'Password is too short'
    password: 'Password'
  forgot_password:
    identifier: "Username or email"
    identifier_required: "Please enter a username or email."
  reset_password:
    new_password: "New password"
    repeat_new_password: "Repeat new password"
    password_required: "Please enter a new password."
    password_too_short: "Password must be at least 8 characters long."
    password_mismatch: "The passwords do not match."
  settings:
    navigation: 'Global navigation'
    login_with_email: 'Login with email'
    login_identifier_mode: 'Login mode'
    login_identifier_mode_username: 'Username only'
    login_identifier_mode_email: 'Email only'
    login_identifier_mode_both: 'Username or email'
    allow_password_reset: 'Allow forgot password'
    showLogoutInNavigation: 'Show logout in navigation'
    text_separator: 'Title separator'
    theme: 'Theme'
    show_administration_in_navigation: 'Show administration in navigation'
    global_stylesheet: 'Global stylesheet'
    global_javascript: 'Global javascript'
    global_javascript_bottom: 'Global javascript (bottom)'
    global_footer: 'Global footer'
    system_name: 'System name'
    timezone: 'Timezone'
    automatic_backup: 'Automatic backup'
    allow_registrations: 'Allow registrations'
    show_login_in_navigation: 'Show login in navigation'
    show_registration_in_navigation: 'Show registration in navigation'
    show_logout_in_navigation: 'Show logout in navigation'
    favicon: 'Favicon'
    allow_remember_me_on_login: 'Allow remember me on login'
    meta_tags: 'Global meta tags'
    robots_txt: 'robots.txt content'
    robots_txt_help: 'Leave empty for the default robots.txt. If you omit a “Sitemap:” line, the sitemap URL is appended automatically.'
  privacy:
    cookie_consent_enabled: 'Enable cookie banner'
    cookie_policy_url: 'Cookie / privacy policy URL'
    cookie_consent_intro: 'Optional text above categories (HTML allowed)'
    cookie_consent_intro_help: 'Shown in the banner below the title. Only paste trusted HTML.'
    gdpr_identifier_label: 'User ID, email or username'
    gdpr_identifier_placeholder: 'e.g. 12 or name@example.com'
    gdpr_identifier_help: 'Looks up exactly one matching account.'
    gdpr_export_submit: 'Download JSON export'
    gdpr_erase_confirm_label: 'Confirmation (type DELETE)'
    gdpr_erase_confirm_help: 'Type DELETE to confirm permanent deletion.'
    gdpr_erase_submit: 'Delete account permanently'
  user:
    profile_image: "Profile Image"
    username: "Username"
    email: "Email"
    password: "Password"
    roles: "Roles"
    username_required: "Please enter a username."
    username_min_length: "The username must be at least {{ limit }} characters long."
    username_max_length: "The username must not exceed {{ limit }} characters."
    email_required: "Please enter an email address."
    password_required: "Please enter a password."
    password_min_length: "The password must be at least {{ limit }} characters long."
    password_leave_empty: "Leave empty to keep the current password"
    profile_image_invalid_type: "Please upload a valid image (JPG, PNG, WebP or GIF)."
    profile_image_max_size: "The image must not exceed 5MB."
    profile_image_help: "Maximum 5MB. Allowed formats: JPG, PNG, WebP, GIF"
    profile_image_preview: "Profile Image Preview"
    default_role_help: "Default role - assigned automatically"
    user_information: "User Information"
    username_help: "Unique username for login"
    email_help: "Used for notifications"
    roles_permissions: "Roles & Permissions"
    user_roles: "User Roles"
    roles_description: "Manage the permissions of the new user"
    created_at: "Created"
    password_min_help: "At least 6 characters"
    password_min_help_invite: "Optional when invitation email is enabled (otherwise required). At least 6 characters."
    send_invitation_email: "Send invitation email"
    send_invitation_email_help: "Sends a link to set the password (valid for one hour). Works even if “Forgot password” is disabled."
    profile_picture: "Profile picture"
    username_placeholder: "Enter username"
    email_placeholder: "email@example.com"
    password_placeholder: "New password (optional)"
    password_help: "Leave empty to keep current password"
  email_template:
    subject: "Subject (Twig)"
    html_body: "HTML body (Twig)"
    text_body: "Plain text body (Twig, optional)"
    active: "Active"
  media:
    name: "Name"
    upload_file: "Upload file"
    invalid_file_type: "Please upload a valid file (JPEG, PNG, PDF)."
  image_compressor:
    file_format: "File extension"
    file_format_help: "Which uploaded files this rule applies to."
    choose_format: "Choose format…"
    format_jpg: "JPEG (.jpg)"
    format_jpeg: "JPEG (.jpeg)"
    format_png: "PNG"
    format_webp: "WebP"
    active: "Active"
    quality: "Quality (JPEG/WebP, 1–100)"
    quality_help: "Higher = better image quality, larger files. Maps to jpegoptim --max and cwebp -q."
    png_level: "PNG optimisation (0–7)"
    png_level_help: "optipng -o: higher levels are slower but may save more."
    strip_metadata: "Strip JPEG metadata"
    strip_metadata_help: "Removes EXIF/IPTC (jpegoptim --strip-all). Recommended for web delivery."
  redirect:
    source: "Source route"
    destination: "Destination URL"
    status_code: "HTTP status code"
    301_moved_permanently: "301 Moved permanently"
    302_found: "302 Found"
    delete_confirm_prefix: "the redirect"

  # Console Messages
  console:
    modal_system_initialized: "Modal system initialized"
    modal_translations_available: "Modal translations available"
    modal_system_loaded: "Modal system loaded"
    css_loading_error: "Error loading CSS file:"
    wysiwyg_css_loading_error: "Error loading WYSIWYG CSS file:"
    mobile_dropdown_found_buttons: "Mobile dropdown buttons found:"
    mobile_dropdown_buttons: "buttons"
    mobile_dropdown_added_listener: "Event listener added"
    mobile_dropdown_clicked: "Mobile dropdown clicked"
    mobile_dropdown_button: "Button:"
    mobile_dropdown_menu: "Menu:"
    mobile_dropdown_no_menu: "No dropdown menu found"
    mobile_dropdown_creating_modal: "Creating mobile modal"

  # Notifications
  notifications:
    system_initialized: "Notification system initialized"
    saving: "Saving"
    network_error: "Network error"
    connection_failed: "Connection failed"

  # Mobile Dropdown
  mobile_dropdown:
    options: "Options"
    close: "Close"

storefront:
  register:
    saas_plan_selected: "Selected SaaS plan: %plan%. Options from the price calculator are carried over."
  auth:
    forgot_password_title: "Forgot password"
    forgot_password_description: "Enter your login identifier. If an account exists, we will send a reset link."
    send_reset_link: "Send reset link"
    back_to_login: "Back to login"
    reset_request_sent: "If a matching account exists, a reset link has been sent."
    reset_token_invalid: "The reset link is invalid or has expired."
    reset_password_title: "Set new password"
    reset_password_description: "Choose a new password for your account."
    reset_password_submit: "Save password"
    password_reset_success: "Your password was changed successfully. Please sign in again."
    reset_mail_subject: "Reset your password"
    reset_mail_intro: "You requested a password reset for your account."
    reset_mail_cta: "Reset password now"
    reset_mail_expiry: "This link is valid for 1 hour."
    reset_mail_ignore: "If you did not request this, you can ignore this email."
  oauth:
    or_continue: "Or continue with"
    continue_with: "Continue with %name%"
    linked_success: "Account linked."
    error_state: "Invalid OAuth session. Please try again."
    error_denied: "Sign-in was cancelled at the provider."
    error_token: "Token exchange failed. Check client ID, secret, and redirect URL."
    error_profile: "Could not read profile data."
    error_misconfigured: "OAuth provider is not configured correctly."
    error_no_email: "The provider did not return an email. Registration is not possible."
    error_email_exists: "An account with this email already exists. Sign in and link the provider in your profile."
    error_registration_disabled: "Registration is disabled. No account matches this sign-in."
    error_link_taken: "This external account is already linked to another user."
    error_already_linked: "You have already linked this provider."
    error_account_other_user: "This external account belongs to another user."
    error_provider_slot: "Another external identity is already linked for this provider."
    error_generic: "OAuth sign-in failed."

privacy:
  cookie:
    banner_title: "Cookies & privacy"
    accept_all: "Accept all"
    reject_optional: "Necessary only"
    save_choice: "Save choice"
    policy_link: "Privacy & policy"
    category:
      necessary:
        label: "Necessary"
        description: "Required for core features (session, security, cookie choice)."
      functional:
        label: "Functional"
        description: "Comfort features (e.g. language, enhanced UI)."
      analytics:
        label: "Analytics"
        description: "Usage statistics (only with consent)."
      marketing:
        label: "Marketing"
        description: "Personalisation and ads (only with consent)."

copyright: "TerraFlowCMS © %year%"

license:
  status:
    active: "Active license"
    expired: "License expired"
    expiring_soon: "License expiring soon"
    valid_until: "Valid until"
    license_type: "License type"
    domains: "Domains"
    renew: "Renew license"
    renew_now: "Renew now"
    expired_notice: "Warning: Your license has expired. Please renew your license to continue using the application."
    expiring_soon_notice: "Note: Your license is expiring soon. Renew your license to continue having full access."
    license_key: "License key"
    current: "Current license"
    active_notice: "Your license is valid and active."
    description: "Here you can manage and renew your license."
    title: "TerraFlowCMS License"

date_format: "d.m.Y H:i"

error:
  unknown_error: "An unknown error occurred."
  page_not_found: "Page not found."
  unauthorized: "Unauthorized."
  forbidden: "Forbidden."
  unknown_action: "Unknown action."
  unknown: "Unknown error."
  captcha: "Invalid captcha, please try again."
  no_permission: "You do not have permission to view this page."
  profile_image_upload: "Error uploading profile image: %error%"

success:
  contact_form: "Thank you for your message. We will get back to you as soon as possible."
  media_management: "Media management"
  upload_new_media: "Upload new file"
  copy_shortcode: "Copy reference code"
  copy: "Copy"
  copy_reference: "Copy reference code"
  available: "Available"
  file_information: "File information:"
  delete_media_confirm: "Are you sure you want to delete this file?"
  upload_first_media_description: "Upload your first media file to get started."
  upload_first_media_button: "Upload first file"
  categories_description: "Here you can manage the website categories."
  no_categories_found: "No categories found."
  create_first_category: "Create your first category to get started."
  create_first_category_button: "Create first category"
  duplicate: "Duplicate"
  view: "View"
  edit: "Edit"
  delete: "Delete"
  first: "First"
  previous: "Previous"
  next: "Next"
  last: "Last"
  upload_media: "Upload file"
  suchen: "Search"
  create_first_user_button: "Create first user"
  bearbeiten: "Edit"
  media_uploaded: "File uploaded successfully."
  media_deleted: "File deleted successfully."
  user_created: "User created successfully!"
  user_created_invite_sent: "User created and invitation email was sent."
  user_updated: "User updated successfully."
  user_deleted: "User deleted successfully."
  settings_saved: "Settings saved successfully."
  page_duplicated: "Page duplicated successfully."
  category_deleted: "Category deleted successfully."
  category_duplicated: "Category duplicated successfully."
  language_changed: "Language changed successfully."
  maintenance_enabled: "Maintenance mode enabled."
  maintenance_disabled: "Maintenance mode disabled."
  page_created: "Page created successfully."
  email_template_saved: "Email template saved."
  email_template_test_sent: "Test email sent."

  # Cache Management
  system_health: "System Health"
  system_health_description: "Monitor your system status"
  system_status: "System Status"
  healthy: "Healthy"
  warning: "Warning"
  critical: "Critical"
  recent_activity: "Recent Activity"
  no_recent_activity: "No recent activity"
  clear_cache: "Clear Cache"
  php_extensions: "PHP Extensions"
  database: "Database"
  version: "Version"
  size: "Size"
  tables: "Tables"
  query_time: "Query Time"
  engine: "Engine"
  
warning:
  user_created_invite_failed: "User was created, but the invitation email could not be sent: %message%"

email_template:
  type:
    password_reset:
      name: "Password reset"
      description: "Email after “Forgot password” with a link to set a new password."
    user_invitation:
      name: "User invitation"
      description: "Email after creating a user in the admin with a link to activate the account."
