mirror of
https://github.com/ChrispyBacon-dev/DockFlare.git
synced 2026-04-28 03:39:32 +00:00
778 lines
52 KiB
JSON
778 lines
52 KiB
JSON
{
|
|
"nav.dashboard": "Dashboard",
|
|
"nav.access_policies": "Access Policies",
|
|
"nav.agents": "Agents",
|
|
"nav.settings": "Settings",
|
|
"nav.help": "Help",
|
|
"common.ok": "OK",
|
|
"common.cancel": "Cancel",
|
|
"common.close": "close",
|
|
"common.delete": "Delete",
|
|
"common.edit": "Edit",
|
|
"common.save": "Save",
|
|
"common.copy": "Copy",
|
|
"common.loading": "Loading...",
|
|
"common.actions": "Actions",
|
|
"common.status": "Status",
|
|
"common.type": "Type",
|
|
"common.active": "Active",
|
|
"common.confirm": "Confirm",
|
|
"common.alert": "Alert",
|
|
"common.input_required": "Input Required",
|
|
"common.change_language": "Change Language",
|
|
"common.logout": "Logout",
|
|
"common.sponsor_dockflare": "Sponsor DockFlare",
|
|
"common.back": "Back",
|
|
"common.next": "Next",
|
|
"common.submit": "Submit",
|
|
"common.none": "None",
|
|
"common.not_set": "Not set",
|
|
"login.title": "Sign In - DockFlare",
|
|
"login.username_placeholder": "Username",
|
|
"login.password_placeholder": "Password",
|
|
"login.submit": "Login",
|
|
"login.sign_in_with": "Sign in with {provider}",
|
|
"help.title": "Help - {title}",
|
|
"restore.title": "DockFlare is Restarting",
|
|
"restore.hold_tight": "Hold tight, DockFlare is rebooting...",
|
|
"restore.flavor_text": "We're loading your restored configuration and giving the tunnel hamsters a quick pep talk.",
|
|
"restore.whats_happening": "What's happening?",
|
|
"restore.secrets_imported": "Encrypted secrets were imported successfully.",
|
|
"restore.agents_warming_up": "Agents and rules are warming up.",
|
|
"restore.refresh_in": "We'll refresh this page automatically in <span id=\"countdown\">{seconds}</span> seconds.",
|
|
"status.title": "Dashboard",
|
|
"status.initialization_in_progress": "Initialization in Progress...",
|
|
"status.init_logs_below": "You can view logs below. The UI will update when ready.",
|
|
"status.cache_label": "Cache:",
|
|
"status.cache_connected": "Connected",
|
|
"status.cache_fallback": "Fallback",
|
|
"status.cache_redis_title": "Redis cache active",
|
|
"status.cache_memory_title": "Using in-memory cache",
|
|
"status.managed_ingress_rules": "Managed Ingress Rules",
|
|
"status.managed_by_agent": "Managed by Agent; tunnel is not editable.",
|
|
"status.manual_rules": "Manual Rules",
|
|
"status.add_manual_rule": "Add Manual Ingress Rule",
|
|
"status.no_ingress_rules": "No ingress rules are currently being managed.",
|
|
"status.add_new_manual_rule": "Add New Manual Ingress Rule",
|
|
"status.edit_ingress_rule": "Edit Ingress Rule",
|
|
"status.add_rule": "Add Rule",
|
|
"status.save_changes": "Save Changes",
|
|
"status.rule_ui_override": "Rule UI Override",
|
|
"status.ui_override": "UI Override",
|
|
"status.docker_rule_overridden": "This Docker rule has been overridden via UI and no longer reflects container labels.",
|
|
"status.ui_policy_override": "This policy is managed by the UI and overrides container labels.",
|
|
"status.revert_to_docker_labels": "Revert to Docker Labels",
|
|
"status.revert_policy_to_labels": "Revert Policy to Labels",
|
|
"status.domain_required": "Domain (Required)",
|
|
"status.domain_description": "Combined with subdomain to build the public hostname.",
|
|
"status.tunnel_required": "Tunnel (Required)",
|
|
"status.tunnel_description": "Choose which Cloudflare Tunnel will serve this hostname.",
|
|
"status.tunnel_name": "Tunnel Name",
|
|
"status.subdomain": "Subdomain",
|
|
"status.subdomain_optional": "(optional) subdomain",
|
|
"status.subdomain_description": "Leave blank for root. \"app\" becomes \"/app\".",
|
|
"status.path": "Path",
|
|
"status.path_optional": "(optional) path",
|
|
"status.public_hostname": "Public Hostname",
|
|
"status.service": "Service",
|
|
"status.service_target": "Service Target",
|
|
"status.service_description": "e.g., 192.168.1.10:8000 or my-service.local:3000 for HTTP/S/TCP etc.",
|
|
"status.type_required": "Type (Required)",
|
|
"status.url_required": "URL (Required for most types)",
|
|
"status.url_description": "e.g., api.example.com",
|
|
"status.http": "HTTP",
|
|
"status.https": "HTTPS",
|
|
"status.tcp": "TCP",
|
|
"status.ssh": "SSH (Native Client)",
|
|
"status.rdp": "RDP",
|
|
"status.bastion": "Bastion (Browser SSH/VNC)",
|
|
"status.bypass": "Bypass (Public App)",
|
|
"status.zone": "Zone",
|
|
"status.select_zone": "Select Zone",
|
|
"status.zone_override_help": "If blank, DockFlare will use \"Domain Name\". Target a specific Zone if \"Domain Name\" is ambiguous or CF_ZONE_ID is not set.",
|
|
"status.zone_override_placeholder": "yourdomain.com (if different from Domain Name or CF_ZONE_ID)",
|
|
"status.example_domain": "example.com",
|
|
"status.access_policy_optional": "Access Policy (Optional)",
|
|
"status.access_policy": "Access Policy",
|
|
"status.no_policy_assigned": "No Policy Assigned",
|
|
"status.using_groups_overrides": "Using groups overrides the manual policy options below. You can select multiple.",
|
|
"status.http_host_header_optional": "HTTP Host Header (Optional)",
|
|
"status.http_host_header_desc": "header sent to your origin server. Useful for origins expecting a different hostname than the public one. (Only applies to HTTP/HTTPS services).",
|
|
"status.origin_server_name_sni": "Origin Server Name (SNI for TLS)",
|
|
"status.origin_server_name_sni_short": "Origin Server Name (SNI)",
|
|
"status.origin_server_name_description": "Specify the hostname Cloudflare should use for TLS SNI when connecting to your origin. Leave blank if not needed. (Only applies to HTTP/HTTPS services).",
|
|
"status.match_sni_to_host": "Match SNI to Host",
|
|
"status.match_sni_to_host_description": "Makes Cloudflare use the public hostname as TLS SNI for origin connections. (Only applies to HTTP/HTTPS services).",
|
|
"status.disable_tls_verification": "Disable TLS Verification",
|
|
"status.no_tls_verify": "No TLS Verify",
|
|
"status.tls_verification_disabled": "TLS verification disabled for origin",
|
|
"status.tls_verification_check": "Check if the origin service uses self-signed SSL or is HTTP. (Only applies to HTTP/HTTPS services).",
|
|
"status.disable_chunked_encoding": "Disable Chunked Encoding",
|
|
"status.no_chunked_encoding": "No Chunked Encoding",
|
|
"status.chunked_encoding_description": "Disables chunked transfer encoding over HTTP/1.1. Useful for WSGI servers (Flask, Django) and other origins that don't support chunked requests. (Only applies to HTTP/HTTPS services).",
|
|
"status.chunked_encoding_disabled": "Chunked transfer encoding disabled for HTTP/1.1",
|
|
"status.enable_http2_origin": "Enable HTTP/2 Origin",
|
|
"status.http2_origin": "HTTP/2 Origin",
|
|
"status.http2_protocol_enabled": "HTTP/2 protocol enabled for origin connection",
|
|
"status.http2_origin_description": "Enable HTTP/2 protocol between Cloudflare and your origin server. Required for gRPC services. (Only applies to HTTP/HTTPS services).",
|
|
"status.clear": "Clear",
|
|
"status.hostname": "Hostname",
|
|
"status.hostname_a_z": "Hostname A-Z",
|
|
"status.hostname_z_a": "Hostname Z-A",
|
|
"status.sort_by": "Sort by",
|
|
"status.group_by": "Group by",
|
|
"status.all_status": "All Status",
|
|
"status.all_sources": "All Sources",
|
|
"status.source": "Source",
|
|
"status.host": "Host",
|
|
"status.failed": "Failed",
|
|
"status.pending": "Pending",
|
|
"status.pending_deletion": "Pending Deletion",
|
|
"status.last_action": "Last Action",
|
|
"status.expires_in": "Expires In",
|
|
"status.local_docker": "Local Docker",
|
|
"status.real_time_logs": "Real-time Activity Logs",
|
|
"status.logs_performance_hint": "(Click to enable - may impact performance)",
|
|
"status.enable_logs": "Enable Logs",
|
|
"status.disable_logs": "Disable Logs",
|
|
"status.click_enable_logs": "Click \"Enable Logs\" to start streaming...",
|
|
"status.http_status_code": "HTTP Status Code",
|
|
"status.url_or_status_code": "URL or Status Code",
|
|
"status.host_port_or_status_code": "host:port or status code",
|
|
"status.open_url": "Open https://{hostname}{path}",
|
|
"status.click_cf_icon_hint": "Click the Cloudflare icon to open this hostname in Cloudflare Zero Trust (Tunnels → Public Hostnames). Click the access-policy icon to edit the Access App.",
|
|
"status.view_cf_access_app": "View CF Access Application",
|
|
"status.view_cf_tunnel_route": "View CF Tunnel Route",
|
|
"status.select_tunnel": "Select a tunnel...",
|
|
"status.search_hostname": "Search Hostname",
|
|
"status.search_placeholder": "Search...",
|
|
"status.all_tunnels": "All Tunnels",
|
|
"status.manage_rule": "Manage Rule",
|
|
"status.dns_records": "DNS Records",
|
|
"status.cloudflare_zone_override": "Cloudflare Zone Name (Override/Specific)",
|
|
"status.zone_detection": "Zone Detection",
|
|
"status.enter_hostname_autodetect": "Enter a hostname to auto-detect the Cloudflare zone. Select a zone if multiple matches are found.",
|
|
"status.filter_sort_options": "Filter & Sort Options",
|
|
"status.showing_rules": "Showing {visible} of {total} rules",
|
|
"settings.title": "Settings",
|
|
"settings.general_settings": "General Settings",
|
|
"settings.all_cloudflare_tunnels": "All Cloudflare Tunnels",
|
|
"settings.backup_restore": "Backup & Restore",
|
|
"settings.security": "Security",
|
|
"settings.oauth_authentication": "OAuth Authentication",
|
|
"settings.tunnel_agent_status": "Tunnel & Agent Status",
|
|
"settings.check_version": "Check version",
|
|
"settings.check_version_title": "Check DockFlare version",
|
|
"settings.agent_control": "Agent Control",
|
|
"settings.start_agent": "Start Agent",
|
|
"settings.stop_agent": "Stop Agent",
|
|
"settings.agent_status": "Agent Status:",
|
|
"settings.master_api_key": "Master API Key",
|
|
"settings.show_master_api_key": "Show Master API Key",
|
|
"settings.master_api_key_desc": "Keep this key secret; rotate it if exposed.",
|
|
"settings.master_api_key_warning": "Treat this key like a password. Anyone with it can call the DockFlare API.",
|
|
"settings.session_timeout": "Session Timeout (seconds)",
|
|
"settings.cloudflare_api_token": "Cloudflare API Token",
|
|
"settings.cloudflare_account_id": "Cloudflare Account ID",
|
|
"settings.cf_account_id": "CF_ACCOUNT_ID",
|
|
"settings.update_cloudflare_credentials": "Update Cloudflare Credentials",
|
|
"settings.enter_new_credentials": "Enter a new Account ID or API Token to update. For security, current values are not displayed.",
|
|
"settings.credentials_require_restart": "Updating credentials require an DockFlare restart to take effect.",
|
|
"settings.could_not_retrieve_tunnel_info": "Could not retrieve tunnel information.",
|
|
"settings.ensure_api_token_permission": "This could also mean an error occurred. Ensure your API Token has 'Account:Cloudflare Tunnel:Read' permission.",
|
|
"settings.delete_cloudflare_tunnel": "Delete Cloudflare Tunnel",
|
|
"settings.delete_tunnel": "Delete Tunnel",
|
|
"settings.deleting_tunnel_warning": "Deleting this tunnel will disconnect any agents currently using it.",
|
|
"settings.no_tunnels_found": "No Cloudflare Tunnels found for Account ID:",
|
|
"settings.all_tunnels_on_account": "All Cloudflare Tunnels on Account",
|
|
"settings.displaying_tunnels_for": "Displaying tunnels for Account ID:",
|
|
"settings.tunnel_list_hint": "This list shows all tunnels on the account, not just the one managed by DockFlare. Click '+' to view associated DNS records.",
|
|
"settings.tunnel_details": "Tunnel Details",
|
|
"settings.tunnel_name": "Tunnel Name",
|
|
"settings.tunnel_id": "Tunnel ID",
|
|
"settings.tunnel_id_label": "Tunnel ID:",
|
|
"settings.tunnel_token_label": "Tunnel Token:",
|
|
"settings.desired_name_label": "Desired Name:",
|
|
"settings.tunnel_name_help": "Used for Cloudflare tunnel display. DockFlare automatically normalizes this value when generating the local cloudflared container name.",
|
|
"settings.create_backup": "Create Backup",
|
|
"settings.backup_description": "Download a full DockFlare backup archive (`.zip`) containing your encrypted configuration, agent keys, and state file. Store it safely with the `dockflare.key` included in the archive.",
|
|
"settings.download_backup": "Download Backup Archive",
|
|
"settings.upload_restore_backup": "Upload and Restore Backup",
|
|
"settings.restore_from_backup": "Restore from Backup",
|
|
"settings.restore_warning": "Restoring a backup overwrites configuration, credentials, agent keys, and state. This action cannot be undone.",
|
|
"settings.restore_upload_hint": "Upload a DockFlare backup archive (`.zip`). Legacy `state.json` files are still accepted but only restore rules/groups.",
|
|
"settings.restore_confirm": "Are you sure you want to overwrite your current settings with this backup? This cannot be undone.",
|
|
"settings.password_reset": "Password Reset",
|
|
"settings.current_password": "Current Password",
|
|
"settings.new_password": "New Password",
|
|
"settings.confirm_new_password": "Confirm New Password",
|
|
"settings.change_password": "Change Password",
|
|
"settings.to_confirm": "to confirm",
|
|
"settings.filesystem_access_required": "To reset your password, you must have filesystem access to the DockFlare container.",
|
|
"settings.disable_password_login": "Disable Password Login",
|
|
"settings.disable_password_warning": "When disabling password login, you become responsible for securing DockFlare access. Best practice is to use a Cloudflare Tunnel with an Access Policy and ensure Docker ports are not exposed, preventing access from the local network (LAN).",
|
|
"settings.security_warning": "Security Warning:",
|
|
"settings.oauth_settings": "OAuth Settings",
|
|
"settings.configure_oauth_desc": "Configure OAuth providers to allow users to log in with third-party services like Google, GitHub, or Microsoft.",
|
|
"settings.oauth_trust_warning": "OAuth providers you configure here will be trusted to authenticate users. Only add providers you control or fully trust.",
|
|
"settings.no_oauth_configured": "No OAuth providers configured. Click \"Add Provider\" to get started.",
|
|
"settings.add_provider": "Add Provider",
|
|
"settings.add_oauth_provider": "Add OAuth Provider",
|
|
"settings.edit_oauth_provider": "Edit OAuth Provider",
|
|
"settings.provider_id": "Provider ID",
|
|
"settings.provider_type": "Provider Type",
|
|
"settings.provider_name_example": "e.g. Google",
|
|
"settings.provider_display_name_example": "e.g. Google, GitHub Corporate",
|
|
"settings.provider_id_example": "e.g. google",
|
|
"settings.oauth_client_id": "OAuth Client ID",
|
|
"settings.client_id": "Client ID",
|
|
"settings.oauth_client_secret": "OAuth Client Secret",
|
|
"settings.client_secret": "Client Secret",
|
|
"settings.leave_blank_keep_secret": "Leave blank to keep existing secret",
|
|
"settings.issuer_url": "Issuer URL",
|
|
"settings.issuer_url_desc": "The OIDC provider's issuer URL.",
|
|
"settings.issuer_url_example": "https://authentik.example.com/application/o/dockflare/",
|
|
"settings.unique_id_for_provider": "Unique identifier for this provider",
|
|
"settings.google": "Google",
|
|
"settings.github": "GitHub",
|
|
"settings.generic_oidc": "Generic OIDC / Authentik",
|
|
"settings.enable_provider": "Enable Provider",
|
|
"settings.authorized_users": "Authorized Users",
|
|
"settings.only_listed_users": "Only users with email addresses listed here will be allowed to authenticate via OAuth.",
|
|
"settings.no_authorized_users": "No authorized users configured. Click \"Add User\" to authorize email addresses.",
|
|
"settings.add_user": "Add User",
|
|
"settings.add_authorized_user": "Add Authorized User",
|
|
"settings.email_address": "Email Address",
|
|
"settings.email_example": "user@example.com",
|
|
"settings.email_must_match": "This email must match exactly with the OAuth provider",
|
|
"settings.created_at": "Created At",
|
|
"settings.keep_existing_fields": "When enabled, DockFlare keeps existing Cloudflare tunnel route fields that it does not manage instead of clearing them during sync.",
|
|
"settings.external_mode": "External Mode:",
|
|
"settings.toggle_dns_records": "Toggle DNS records",
|
|
"settings.env_var": "The",
|
|
"settings.env_var_not_configured": "environment variable is not configured. This section cannot be displayed.",
|
|
"settings.cf_zone_id_label": "Primary Cloudflare Zone ID",
|
|
"settings.optional_default_zone_id": "Optional. The default Zone ID for new DNS records.",
|
|
"settings.zone_scan_label": "Other Zones to Scan (comma-separated)",
|
|
"settings.zone_scan_description": "e.g. my-other-domain.com, another.dev",
|
|
"settings.dockflare_public_url_label": "DockFlare Public URL",
|
|
"settings.dockflare_public_url_help": "Used for agent deploy script generation and Cloudflare Zero Trust app scoping. The DOCKFLARE_PUBLIC_URL environment variable takes precedence if set.",
|
|
"policies.title": "Access Policies",
|
|
"policies.advanced_access_policies": "Advanced Access Policies",
|
|
"policies.create_reusable_desc": "Create reusable access policies to apply with a single label.",
|
|
"policies.filter": "Filter:",
|
|
"policies.all_policies": "All Policies",
|
|
"policies.dockflare_managed": "DockFlare-Managed",
|
|
"policies.external": "External",
|
|
"policies.system": "System",
|
|
"policies.access_groups": "Access Groups",
|
|
"policies.create_new_group": "Create New Group",
|
|
"policies.no_groups_created": "No Access Groups have been created yet.",
|
|
"policies.click_create_group": "Click \"Create New Group\" to get started.",
|
|
"policies.display_name": "Display Name",
|
|
"policies.group_id_label": "Group ID (for label)",
|
|
"policies.cannot_delete_in_use": "Cannot delete: group is in use",
|
|
"policies.cannot_delete_system": "Cannot delete: system policy",
|
|
"policies.import_policies_desc": "Import ALL policies from Cloudflare, including those created manually or by other tools. External policies will be marked with a purple badge.",
|
|
"policies.sync_from_cloudflare": "Sync from Cloudflare",
|
|
"policies.sync_access_policies": "Sync Access Policies from Cloudflare",
|
|
"policies.sync_now": "Sync Now",
|
|
"policies.sync_all_policies": "Sync all policies",
|
|
"policies.import_reusable_desc": "Import reusable Access Policies from your Cloudflare account.",
|
|
"policies.loading_idps": "Loading identity providers...",
|
|
"policies.loading_zone_policies": "Loading zone policies...",
|
|
"policies.policy_summary": "Policy Summary",
|
|
"policies.policy_type": "Policy Type",
|
|
"policies.public_access_mode": "Public Access mode:",
|
|
"policies.authenticated_mode": "Authenticated mode:",
|
|
"policies.public_access_geo": "Public Access rule with geo-restrictions",
|
|
"policies.no_auth_method": "No Authentication Method Selected",
|
|
"policies.no_rules": "No rules",
|
|
"policies.rules_defined": "{count} rule(s) defined",
|
|
"policies.switch_to_public": "Switch to Public Access",
|
|
"policies.requires_email_or_identity": "Requires email or identity provider selection",
|
|
"policies.geo_no_auth_warning": "You have selected geo-restrictions but no authentication method (email or identity provider).",
|
|
"policies.create_zone_policy": "Create Zone Policy",
|
|
"policies.create_zone_default": "Create Zone Default Policy",
|
|
"policies.protect_all_subdomains": "Protect all subdomains of your zones with a wildcard",
|
|
"policies.to_protect_all_subdomains": "to protect all subdomains.",
|
|
"policies.this_will_create_wildcard": "This will create a wildcard Access Application for",
|
|
"policies.access_policy_label": "access policy.",
|
|
"policies.select_access_policy": "Select Access Policy",
|
|
"policies.policy_protect_desc": "The access policy that will protect",
|
|
"policies.used_by_services": "Used by these services:",
|
|
"policies.view_in_cf_zero_trust": "View Access Policies in Cloudflare Zero Trust",
|
|
"policies.view_idps_in_cf": "View Identity Providers in Cloudflare Zero Trust",
|
|
"policies.view_in_cloudflare": "View in Cloudflare",
|
|
"policies.configure_oauth_oidc": "Configure OAuth/OIDC providers for Zero Trust authentication.",
|
|
"policies.dockflare_prefix_only": "DockFlare- prefix only (Recommended)",
|
|
"policies.import_with_prefix": "Import only policies with",
|
|
"policies.dockflare_prefix": "DockFlare-",
|
|
"policies.rename_policies_desc": "You can rename policies in Cloudflare to use the",
|
|
"policies.keeps_list_clean": "prefix. This keeps your policy list clean and focused on container infrastructure.",
|
|
"policies.allows_organize": "prefix. This allows you to organize which policies appear in DockFlare without enabling full sync.",
|
|
"policies.did_you_want_to_create": "Did you want to create a",
|
|
"policies.pro_tip": "Pro tip:",
|
|
"policies.wildcard_geo_desc": "Anyone can access except from blocked countries",
|
|
"policies.open_in_cf_zero_trust": "Open in Cloudflare Zero Trust",
|
|
"policies.identity_providers": "Identity Providers",
|
|
"policies.add_provider": "Add Provider",
|
|
"policies.zone_default_policies": "Zone Default Policies (*.tld Wildcards)",
|
|
"policies.zone_name": "Zone Name",
|
|
"policies.zone_id": "Zone ID",
|
|
"policies.wildcard_hostname": "Wildcard Hostname",
|
|
"policies.protected": "Protected",
|
|
"policies.not_protected": "Not Protected",
|
|
"policies.cancel_add_auth": "Cancel - Add Authentication",
|
|
"policies.policy_in_use": "policy is in use",
|
|
"policies.in_use_by": "In use by",
|
|
"policies.service": "service",
|
|
"policies.services": "services",
|
|
"policies.used_by_count": "Used by",
|
|
"policies.failed_load_zone_policies": "Failed to load zone policies",
|
|
"policies.no_dns_zones": "No DNS zones found in your Cloudflare account.",
|
|
"policies.countries_selected": "of {total} countries selected",
|
|
"policies.no_countries_blocked": "No countries blocked.",
|
|
"policies.all_countries_allowed": "All countries allowed",
|
|
"policies.all_countries_blocked": "All countries blocked",
|
|
"policies.no_access_allowed": "No access allowed.",
|
|
"policies.one_country_allowed": "Only 1 country allowed.",
|
|
"policies.countries_blocked": "countries blocked.",
|
|
"policies.countries_allowed": "countries allowed.",
|
|
"policies.delete_external_policy_title": "Delete External Policy",
|
|
"policies.delete_group_confirm": "Are you sure you want to delete the Access Group",
|
|
"policies.cannot_be_undone": "This cannot be undone.",
|
|
"policies.external_policy_warning": "WARNING: This is an EXTERNAL policy not created by DockFlare.",
|
|
"policies.external_policy_affect": "may affect services outside of DockFlare.",
|
|
"policies.external_policy_confirm": "Are you absolutely sure you want to delete this external policy?",
|
|
"policies.security_requirement": "Security Requirement",
|
|
"policies.idp_email_required": "Security requirement: When using Identity Providers, you must specify allowed email addresses to prevent unauthorized access.",
|
|
"policies.remove_this_item": "Remove this item",
|
|
"policies.search_select_countries": "Search and select countries to block...",
|
|
"policies.select_identity_providers": "Select identity providers...",
|
|
"agents.title": "Agent Management",
|
|
"agents.agents_management": "Agents Management",
|
|
"agents.force_reconciliation": "Force Reconciliation",
|
|
"agents.generate_new_api_key": "Generate New API Key",
|
|
"agents.agent_id": "Agent ID",
|
|
"agents.display_name": "Display Name",
|
|
"agents.version": "Version",
|
|
"agents.status": "Status",
|
|
"agents.heart_beat": "Heart Beat",
|
|
"agents.assigned_tunnel": "Assigned Tunnel",
|
|
"agents.migration": "Migration",
|
|
"agents.cloudflared_version": "Cloudflared Version",
|
|
"agents.origin_ip": "Origin IP",
|
|
"agents.tunnel_status": "Tunnel Status",
|
|
"agents.active_api_keys": "Active API Keys",
|
|
"agents.generate_new_agent_key": "Generate New Agent API Key",
|
|
"agents.key_partial": "Key (Partial)",
|
|
"agents.full_api_key": "Full API Key",
|
|
"agents.created_at": "Created At",
|
|
"agents.copy_key_now": "Please copy this key now. You will not be able to see it again.",
|
|
"agents.key_rolled_success": "API Key Rolled Successfully",
|
|
"agents.update_agent_config": "Update your DockFlare agent configuration with this new key and restart the agent.",
|
|
"agents.revoked_keys": "Revoked Keys",
|
|
"agents.revoked_keys_desc": "Revoked API keys will appear here for cleanup",
|
|
"agents.no_agents_registered": "No agents have registered yet.",
|
|
"agents.no_revoked_keys": "No revoked keys",
|
|
"agents.revoked_at": "Revoked At",
|
|
"agents.auto_cleanup": "Auto Cleanup",
|
|
"agents.remove_old_keys": "Remove keys revoked >30 days ago",
|
|
"agents.auto_delete": "Auto-Delete",
|
|
"agents.clear_all": "Clear All",
|
|
"agents.rename_agent": "Rename Agent",
|
|
"agents.save_name": "Save Name",
|
|
"agents.name_persists": "This name will persist even when the agent reconnects",
|
|
"agents.enroll_agent": "Enroll Agent",
|
|
"agents.create_new_tunnel": "Create New Tunnel",
|
|
"agents.existing_tunnels": "Existing Tunnels",
|
|
"agents.select_existing_or_create": "Select an existing Cloudflare Tunnel to assign to this agent, or create a new tunnel by providing a name.",
|
|
"agents.loading_tunnels": "Loading tunnels...",
|
|
"agents.migration_assistant": "Migration Assistant",
|
|
"agents.open_migration_assistant": "Open Migration Assistant",
|
|
"agents.owner": "Owner",
|
|
"agents.owner_optional": "Owner (Optional, for reference)",
|
|
"agents.owner_example": "e.g., Production Server, NAS Server",
|
|
"agents.new_tunnel_name_example": "e.g., my-new-remote-server",
|
|
"agents.cf_zero_trust_title": "Cloudflare Zero Trust",
|
|
"agents.cf_zero_trust_desc": "Secure agent communication via Cloudflare Service Token. Required for one-liner agent deployment.",
|
|
"agents.cf_zero_trust_setup_btn": "Setup Zero Trust",
|
|
"agents.cf_zero_trust_remove_btn": "Remove",
|
|
"agents.cf_zero_trust_checking": "Checking configuration...",
|
|
"agents.deploy_agent": "Deploy Agent",
|
|
"agents.deploy_quick": "Quick Deploy",
|
|
"agents.deploy_compose_snippet": "Compose Snippet",
|
|
"agents.deploy_quick_desc": "Copy this script and paste it directly into your SSH session on the target server.",
|
|
"agents.deploy_compose_desc": "Save as <code>docker-compose.yml</code>, ensure <code>cloudflare-net</code> network exists, then run <code>docker compose up -d</code>.",
|
|
"setup.title": "DockFlare Setup",
|
|
"setup.step1.create_admin": "Create Admin User",
|
|
"setup.step1.final_step": "Final Step: Create Admin User",
|
|
"setup.step1.desc_new": "Create a secure administrator account to access the DockFlare web interface. All your data, including your password, will be encrypted to ensure it remains safe and confidential.",
|
|
"setup.step1.desc_migration": "Your settings have been imported. Please create an administrator account to complete the migration.",
|
|
"setup.step1.username_placeholder": "e.g., admin",
|
|
"setup.step1.restore_option": "Coming from another DockFlare instance? Restore from backup",
|
|
"setup.step2.desc": "Provide your Cloudflare API Token and Account ID. This is necessary for DockFlare to securely manage your tunnels and DNS records. You can find your Account ID in the Cloudflare dashboard, on the right side of the overview page for any of your domains. An API token can be created from the API Tokens page located in your profile.",
|
|
"setup.step2.token_placeholder": "Your Cloudflare API Token",
|
|
"setup.step2.account_id_placeholder": "Your Cloudflare Account ID",
|
|
"setup.step2.back": "Back to Step 1",
|
|
"setup.step3.desc": "Configure the settings for your Cloudflare Tunnel. The tunnel name you specify will identify your tunnel within the Cloudflare dashboard. Additionally, you have the option to designate a primary zone and other zones for DNS scanning.",
|
|
"setup.step3.tunnel_name_help": "A descriptive name for your Cloudflare Tunnel. This name will appear in your Cloudflare dashboard.",
|
|
"setup.step3.tunnel_name_note": "DockFlare automatically normalizes this value when generating the local cloudflared container name.",
|
|
"setup.step3.zone_id_placeholder": "e.g., abc123def456...",
|
|
"setup.step3.zone_id_help": "The main domain (zone) you want DockFlare to manage DNS records for. If you leave this blank, DockFlare will attempt to find a suitable zone automatically.",
|
|
"setup.step3.scan_zones_placeholder": "e.g., example.com, my-other-domain.net",
|
|
"setup.step3.grace_period_help": "The time (in seconds) to wait before automatically removing DNS records for a stopped container. This prevents records from being deleted immediately if a container is just being restarted. Minimum: 60 seconds.",
|
|
"setup.step3.back": "Back to Step 2",
|
|
"setup.step4.desc": "Review your configuration details below before completing the setup. Once you finalize, DockFlare will begin managing your tunnels based on these settings, and you will be redirected to the login page.",
|
|
"setup.step4.back": "Go Back",
|
|
"setup.steps.step1": "Web Access",
|
|
"setup.steps.step2": "Cloudflare",
|
|
"setup.steps.step3": "Tunnel",
|
|
"setup.steps.step4": "Finalize",
|
|
"setup.restore.title": "Restore DockFlare Backup",
|
|
"setup.restore.desc": "Upload a DockFlare backup archive (`.zip`) to restore configuration, state, and agent keys into this fresh deployment.",
|
|
"setup.restore.file_label": "Backup Archive (.zip)",
|
|
"setup.restore.file_help": "Backups must be generated from DockFlare ≥ 3.0.",
|
|
"setup.restore.info": "After a successful restore you will be redirected to the sign-in screen. Existing agents may take a moment to reconnect.",
|
|
"setup.restore.submit": "Restore Backup",
|
|
"setup.restore.manual_link": "Prefer to configure DockFlare manually?",
|
|
"setup.import.title": "Migration Assistant",
|
|
"setup.import.desc": "DockFlare has detected settings from a previous version (.env file). We've imported them for you.",
|
|
"setup.import.imported_settings": "Imported Settings",
|
|
"setup.import.review_text": "Please review the imported settings. If they are correct, proceed to the final step: creating your admin user account.",
|
|
"setup.import.proceed": "Proceed with Migration",
|
|
"setup.import.cancel": "Create New Configuration",
|
|
"modal.access_group.title_create": "Create New Access Group",
|
|
"modal.access_group.title_edit": "Edit Access Group",
|
|
"modal.access_group.tab_authenticated": "Authenticated Access",
|
|
"modal.access_group.tab_public": "Public Access",
|
|
"modal.access_group.auth_heading": "Authenticated Access",
|
|
"modal.access_group.auth_desc": "Requires user authentication via email/domain. Optionally restrict by geography. Use for protected applications.",
|
|
"modal.access_group.public_heading": "Public Access (Bypass)",
|
|
"modal.access_group.public_desc": "No authentication required. Publicly accessible with optional geographic restrictions. Email authentication is not available in this mode.",
|
|
"modal.access_group.display_name_label": "Display Name (Required)",
|
|
"modal.access_group.display_name_placeholder": "e.g., NAS Family Access",
|
|
"modal.access_group.display_name_help": "A friendly name shown in the UI.",
|
|
"modal.access_group.group_id_label": "Group ID (Required)",
|
|
"modal.access_group.group_id_placeholder": "e.g., nas-family",
|
|
"modal.access_group.group_id_help": "Used in Docker labels. Lowercase, numbers, and hyphens only.",
|
|
"modal.access_group.policy_rules": "Policy Rules",
|
|
"modal.access_group.idp_label": "Identity Providers",
|
|
"modal.access_group.idp_help": "Select OAuth/OIDC providers for authentication.",
|
|
"modal.access_group.idp_warning": "Emails are required when using IdPs.",
|
|
"modal.access_group.idp_email_warning": "Emails are required when using IdPs.",
|
|
"modal.access_group.tpl_block_except_us": "Block All Except US",
|
|
"modal.access_group.tpl_block_except_eu": "Block All Except EU",
|
|
"modal.access_group.tpl_block_high_risk": "Block High Risk Countries",
|
|
"modal.access_group.tpl_block_non_nato": "Block Non-NATO Countries",
|
|
"modal.access_group.emails_label": "Allowed Emails or Domains (Required with IdPs)",
|
|
"modal.access_group.emails_placeholder": "me@example.com, myfriend@example.com, @mycompany.com",
|
|
"modal.access_group.emails_help": "Comma-separated. To allow anyone from a domain, use",
|
|
"modal.access_group.emails_help_idp": "When using IdPs, you must specify allowed emails to prevent unauthorized access.",
|
|
"modal.access_group.ip_ranges_label": "Allowed IP Ranges",
|
|
"modal.access_group.ip_ranges_placeholder": "192.168.1.0/24, 2001:db8::/32",
|
|
"modal.access_group.ip_ranges_help": "Comma-separated list of IP ranges in CIDR format.",
|
|
"modal.access_group.countries_label": "Blocked Countries",
|
|
"modal.access_group.country_counter": "{selected} of 195 countries selected",
|
|
"modal.access_group.select_all": "Select All",
|
|
"modal.access_group.select_none": "Select None",
|
|
"modal.access_group.invert_selection": "Invert Selection",
|
|
"modal.access_group.quick_templates": "Quick Templates ▾",
|
|
"modal.access_group.block_all_except_us": "Block All Except US",
|
|
"modal.access_group.block_all_except_eu": "Block All Except EU",
|
|
"modal.access_group.block_high_risk": "Block High Risk Countries",
|
|
"modal.access_group.block_non_nato": "Block Non-NATO Countries",
|
|
"modal.access_group.select_by_region": "Select by Region ▾",
|
|
"modal.access_group.region_africa": "Africa",
|
|
"modal.access_group.region_asia": "Asia",
|
|
"modal.access_group.region_europe": "Europe",
|
|
"modal.access_group.region_north_america": "North America",
|
|
"modal.access_group.region_south_america": "South America",
|
|
"modal.access_group.region_oceania": "Oceania",
|
|
"modal.access_group.country_policy_help": "Selected countries will be blocked. All other countries will be allowed.",
|
|
"modal.access_group.common_scenarios": "Common scenarios:",
|
|
"modal.access_group.allow_us_only": "Allow US Only",
|
|
"modal.access_group.allow_us_eu": "Allow US + EU",
|
|
"modal.access_group.block_high_risk_short": "Block High Risk",
|
|
"modal.access_group.app_settings": "Application Settings (Optional)",
|
|
"modal.access_group.session_duration": "Session Duration",
|
|
"modal.access_group.session_duration_help": "e.g., 24h, 30m, 720h.",
|
|
"modal.access_group.auto_redirect": "Auto Redirect to Identity",
|
|
"modal.access_group.app_launcher_visible": "Visible in App Launcher",
|
|
"modal.access_group.save_group": "Save Group",
|
|
"modal.idp.title_create": "Add Identity Provider",
|
|
"modal.idp.title_edit": "Edit Identity Provider",
|
|
"modal.idp.help_text": "Need help? See",
|
|
"modal.idp.help_link_text": "Identity Provider Setup Guide",
|
|
"modal.idp.help_suffix": "for step-by-step instructions.",
|
|
"modal.idp.help_text_before": "Need help? See",
|
|
"modal.idp.help_text_link": "Identity Provider Setup Guide",
|
|
"modal.idp.help_text_after": "for step-by-step instructions.",
|
|
"modal.idp.friendly_name": "Friendly Name",
|
|
"modal.idp.friendly_name_placeholder": "e.g., google-main, azure-work",
|
|
"modal.idp.friendly_name_help": "Internal name for referencing this IdP in labels",
|
|
"modal.idp.display_name": "Display Name",
|
|
"modal.idp.display_name_placeholder": "e.g., Google Workspace, Company Azure AD",
|
|
"modal.idp.display_name_help": "Name shown in Cloudflare dashboard",
|
|
"modal.idp.provider_type": "Provider Type",
|
|
"modal.idp.select_provider": "Select a provider...",
|
|
"modal.idp.google": "Google (Consumer Accounts)",
|
|
"modal.idp.google_workspace": "Google Workspace",
|
|
"modal.idp.azure_ad": "Microsoft Azure AD",
|
|
"modal.idp.okta": "Okta",
|
|
"modal.idp.github": "GitHub",
|
|
"modal.idp.oidc": "Generic OpenID Connect",
|
|
"modal.idp.provider_google": "Google (Consumer Accounts)",
|
|
"modal.idp.provider_google_workspace": "Google Workspace",
|
|
"modal.idp.provider_azure_ad": "Microsoft Azure AD",
|
|
"modal.idp.provider_okta": "Okta",
|
|
"modal.idp.provider_github": "GitHub",
|
|
"modal.idp.provider_oidc": "Generic OpenID Connect",
|
|
"modal.idp.select_type_warning": "Select a provider type to configure credentials",
|
|
"modal.idp.redirect_uri_heading": "Redirect URI for OAuth Configuration:",
|
|
"modal.idp.create_provider": "Create Provider",
|
|
"modal.idp.save_provider": "Save Provider",
|
|
"js.alert.edit_dialog_error": "Could not open the edit dialog due to an error. Please check the console.",
|
|
"js.alert.sync_error": "Error: {error}",
|
|
"js.alert.sync_error_title": "Sync Error",
|
|
"js.alert.sync_error_generic": "Error syncing identity providers. Check console for details.",
|
|
"js.alert.error_title": "Error",
|
|
"js.alert.test_url_error": "Error opening test URL. Check console for details.",
|
|
"js.alert.save_error": "Error: {error}",
|
|
"js.alert.save_error_title": "Save Error",
|
|
"js.alert.save_error_generic": "Error saving identity provider. Check console for details.",
|
|
"js.alert.delete_error": "Error: {error}",
|
|
"js.alert.delete_error_title": "Delete Error",
|
|
"js.alert.delete_error_generic": "Error deleting identity provider. Check console for details.",
|
|
"js.alert.cf_setup_success": "Cloudflare Zero Trust configured successfully.",
|
|
"js.alert.cf_setup_success_title": "Success",
|
|
"js.alert.cf_removed": "Cloudflare Zero Trust configuration removed.",
|
|
"js.alert.cf_removed_title": "Success",
|
|
"js.confirm.idp_test_success": "Identity provider created successfully!\n\nWould you like to test this identity provider now?",
|
|
"js.confirm.idp_test_title": "Test Identity Provider",
|
|
"js.confirm.idp_delete": "Are you sure you want to delete the identity provider \"{friendlyName}\"? This will remove it from both DockFlare and Cloudflare.",
|
|
"js.confirm.idp_delete_title": "Delete Identity Provider",
|
|
"js.confirm.delete_api_key": "Are you sure you want to delete this API key?",
|
|
"js.confirm.delete_api_key_title": "Delete API Key",
|
|
"js.confirm.delete_rule": "Are you sure you want to delete the rule for {hostname}?",
|
|
"js.confirm.delete_rule_title": "Delete Rule",
|
|
"js.confirm.revert_rule": "Revert this rule to Docker labels? The UI override will be removed.",
|
|
"js.confirm.revert_rule_title": "Revert to Labels",
|
|
"js.confirm.revert_policy": "Revert this policy to Docker labels? The UI override will be removed.",
|
|
"js.confirm.revert_policy_title": "Revert Policy",
|
|
"js.confirm.delete_group": "Are you sure you want to delete the access group \"{name}\"?",
|
|
"js.confirm.delete_group_title": "Delete Access Group",
|
|
"js.confirm.delete_tunnel": "Are you sure you want to delete this Cloudflare tunnel?",
|
|
"js.confirm.delete_tunnel_title": "Delete Tunnel",
|
|
"js.confirm.force_reconcile": "Force a full reconciliation now?",
|
|
"js.confirm.force_reconcile_title": "Force Reconciliation",
|
|
"js.confirm.restore_backup": "Restoring a backup will overwrite all current settings. Continue?",
|
|
"js.confirm.restore_backup_title": "Restore Backup",
|
|
"js.confirm.cf_remove": "This will delete the Cloudflare Service Token and Access Application. Existing agents will lose their CF Zero Trust authentication. Continue?",
|
|
"js.confirm.cf_remove_title": "Remove Zero Trust Config",
|
|
"js.text.connecting_logs": "Connecting to log stream...",
|
|
"js.text.log_cleared": "Log cleared...",
|
|
"js.text.enable_logs_prompt": "Click \"Enable Logs\" to start streaming...",
|
|
"js.text.loading_dns": "Loading DNS records...",
|
|
"js.text.no_cname_records": "No CNAME records found.",
|
|
"js.text.error_loading_dns": "Error loading DNS records: {error}",
|
|
"js.text.browser_sse_not_supported": "Browser doesn't support Server-Sent Events.",
|
|
"js.text.log_connection_timeout": "--- Log stream connection timeout. Reconnecting... ---",
|
|
"js.text.log_connected": "--- Log stream connected ---",
|
|
"js.text.log_connection_error": "--- Log stream connection error. Retrying... ---",
|
|
"js.text.log_connection_failed": "--- Failed to establish log stream connection: {error} ---",
|
|
"js.text.log_health_check_error": "--- Health check: Log stream disconnected. Reconnecting... ---",
|
|
"js.text.state_sse_not_supported": "Browser doesn't support Server-Sent Events. State auto-refresh disabled.",
|
|
"js.text.countdown_expired": "Expired",
|
|
"js.text.countdown_expires_in": "Expires in {time}",
|
|
"js.text.invalid_date": "(Invalid Date)",
|
|
"js.text.reconciliation_complete": "Reconciliation complete",
|
|
"js.text.reconciliation_progress": "Reconciliation: {progress}%",
|
|
"js.text.reconciliation_processing": "Processing {processed} of {total} items...",
|
|
"js.text.theme_not_available": "Theme \"{theme}\" not available, defaulting to light.",
|
|
"js.text.no_tunnels_found": "No tunnels were found for this account. Configure a Cloudflare Tunnel before adding rules.",
|
|
"js.text.no_existing_tunnels": "No existing tunnels",
|
|
"js.text.select_existing_tunnel": "-- Select an existing tunnel --",
|
|
"js.text.all_rules": "All Rules",
|
|
"js.text.critical": "Critical",
|
|
"js.text.warning": "Warning",
|
|
"js.text.unavailable": "Unavailable",
|
|
"js.text.error": "Error",
|
|
"js.text.oauth_client_id_placeholder": "OAuth Client ID",
|
|
"js.text.create_access_group_title": "Create New Access Group",
|
|
"js.text.edit_access_group_title": "Edit Access Group: {displayName}",
|
|
"js.text.zone_enter_hostname": "Enter a hostname to auto-detect the Cloudflare zone.",
|
|
"js.text.zone_override": "Using zone override: {zoneName}",
|
|
"js.text.zone_detected": "Detected zone: {zoneName}",
|
|
"js.text.zone_select_multiple": "Multiple zones match this hostname. Choose the correct zone below.",
|
|
"js.text.zone_not_found": "No zone matched this hostname. Select the appropriate zone manually.",
|
|
"js.text.zone_selected": "Zone selected: {zoneName}",
|
|
"js.text.zone_badge_detected": "Detected",
|
|
"js.text.zone_badge_select": "Select zone",
|
|
"js.text.zone_badge_required": "Zone required",
|
|
"js.text.zone_badge_selected": "Selected",
|
|
"js.text.zone_badge_override": "Override",
|
|
"js.text.cf_configured": "Configured",
|
|
"js.text.cf_not_configured": "Not Configured",
|
|
"js.text.cf_active": "✓ Service Token active — Client ID: {client_id}",
|
|
"js.text.cf_setup_required": "Setup required. Set the <strong>DockFlare Public URL</strong> in <a href=\"{settings_url}\" class=\"link\">Settings</a>, then click <strong>Setup Zero Trust</strong>.",
|
|
"js.table.provider": "Provider",
|
|
"js.table.cloudflare_id": "Cloudflare ID",
|
|
"js.table.connector": "Connector",
|
|
"js.table.status": "Status",
|
|
"js.table.actions": "Actions",
|
|
"js.table.system_managed": "System-managed",
|
|
"js.table.user_configured": "User-configured",
|
|
"js.table.idp_edit": "Edit",
|
|
"js.table.idp_test": "Test IdP",
|
|
"js.table.idp_delete": "Delete",
|
|
"js.table.idp_empty": "No identity providers configured. Click \"Add Provider\" to get started.",
|
|
"js.table.idp_failed_to_load": "Failed to load identity providers",
|
|
"js.table.idp_error_loading": "Error loading identity providers",
|
|
"js.modal.idp_title_create": "Add Identity Provider",
|
|
"js.modal.idp_title_edit": "Edit Identity Provider",
|
|
"js.modal.idp_btn_create": "Create Provider",
|
|
"js.modal.idp_btn_update": "Update Provider",
|
|
"js.modal.idp_select_type": "Select a provider type to configure credentials",
|
|
"js.sync.syncing": "Syncing...",
|
|
"js.sync.default_text": "Sync from Cloudflare",
|
|
"js.form.tunnel": "Tunnel",
|
|
"js.form.zone": "Zone",
|
|
"js.form.from_agent": "From Agent",
|
|
"js.prompt.delete_tunnel_confirm": "Type \"delete\" to confirm tunnel deletion:",
|
|
"js.prompt.rename_agent": "Enter new display name for this agent:",
|
|
"flash.general_settings_updated": "General settings updated successfully.",
|
|
"flash.tunnel_name_changed": "Tunnel name changed. Restarting the agent to apply changes...",
|
|
"flash.error_saving_settings": "An error occurred while saving settings.",
|
|
"flash.security_settings_updated": "Security settings updated successfully.",
|
|
"flash.error_saving_security": "An error occurred while saving security settings.",
|
|
"flash.credentials_updated": "Cloudflare credentials updated. Re-initializing tunnel...",
|
|
"flash.no_new_credentials": "No new credentials were provided.",
|
|
"flash.error_updating_credentials": "An error occurred while updating credentials.",
|
|
"flash.tunnel_id_required": "Tunnel ID is required to delete a Cloudflare tunnel.",
|
|
"flash.deletion_cancelled": "Deletion cancelled. Type \"delete\" to confirm.",
|
|
"flash.tunnel_deleted": "Tunnel deleted successfully from Cloudflare.",
|
|
"flash.tunnel_delete_failed": "Failed to delete the tunnel via Cloudflare API. Verify permissions and try again.",
|
|
"flash.tunnel_delete_error": "Unexpected error deleting tunnel. Check logs for details.",
|
|
"flash.password_changed": "Password changed successfully.",
|
|
"flash.error_changing_password": "An error occurred while changing the password.",
|
|
"flash.incorrect_password": "Incorrect current password.",
|
|
"flash.country_list_error": "Could not load country list for Access Group modal.",
|
|
"flash.access_group.create_required": "Error: Group ID and Display Name are required.",
|
|
"flash.access_group.create_exists": "Error: Access Group with ID '{groupId}' already exists.",
|
|
"flash.access_group.create_error": "Error: {error}",
|
|
"flash.access_group.created": "Success: Access Group '{displayName}' created.",
|
|
"flash.access_group.update_not_found": "Error: Access Group with ID '{groupId}' not found.",
|
|
"flash.access_group.update_required": "Error: Display Name is required.",
|
|
"flash.access_group.update_error": "Error: {error}",
|
|
"flash.access_group.updated": "Success: Access Group '{displayName}' updated. Triggering reconciliation.",
|
|
"flash.access_group.delete_system": "Error: Cannot delete system policy '{displayName}'.",
|
|
"flash.access_group.delete_in_use": "Error: Cannot delete Access Group '{displayName}' because it is currently in use.",
|
|
"flash.access_group.deleted": "Success: Access Group '{displayName}' has been deleted.",
|
|
"flash.zone_policy.create_required": "Error: Zone name and access policy are required.",
|
|
"flash.zone_policy.policy_not_found": "Error: Access policy '{accessGroupId}' not found.",
|
|
"flash.zone_policy.wildcard_exists": "A wildcard policy for '{wildcardHostname}' already exists.",
|
|
"flash.zone_policy.created": "Success: Created zone default policy for '{wildcardHostname}'.",
|
|
"flash.zone_policy.access_app_error": "Error: Failed to create Access Application for '{wildcardHostname}'.",
|
|
"flash.zone_policy.create_error": "Error: Failed to create zone policy. {error}",
|
|
"flash.reusable_policies_not_enabled": "Error: Reusable policies feature is not enabled.",
|
|
"flash.access_groups_synced": "Success: Synced {imported} new and {updated} updated access groups from Cloudflare ({modeText}). {skipped} skipped.",
|
|
"flash.access_groups_no_new": "No new access groups to import. {skipped} existing policies found.",
|
|
"flash.access_groups_sync_error": "Error: Failed to sync access groups from Cloudflare. Check logs for details.",
|
|
"flash.login_error": "Invalid username or password.",
|
|
"flash.auth_state_error": "Invalid authentication state. Please try again.",
|
|
"flash.auth_failed": "Authentication failed.",
|
|
"flash.email_not_retrieved": "Could not retrieve email from provider. Cannot log in.",
|
|
"flash.access_denied": "Access denied for user {userEmail}.",
|
|
"flash.logout": "You have been logged out.",
|
|
"flash.setup.credentials_verified": "Credentials verified successfully.",
|
|
"flash.setup.validation_failed": "Validation failed. Cloudflare API returned: {errorMessage}",
|
|
"flash.setup.api_connection_failed": "Could not connect to the Cloudflare API: {error}",
|
|
"flash.setup.restore_select_error": "Please select a DockFlare backup archive (.zip).",
|
|
"flash.setup.restore_config_error": "Backup restored, but configuration could not be loaded. Check logs.",
|
|
"flash.setup.restore_failed": "Restore failed. Ensure you selected a DockFlare backup archive and try again.",
|
|
"flash.setup.migration_cancelled": "Migration cancelled. Please start the setup from scratch.",
|
|
"flash.setup.critical_info_missing": "Critical information (API Token or Account ID) was missing from the import. Please configure manually.",
|
|
"flash.setup.settings_confirmed": "Settings confirmed. Please create an admin user to continue.",
|
|
"flash.setup.required_fields_missing": "Warning: Missing required fields (CF_API_TOKEN or CF_ACCOUNT_ID). You will not be able to proceed.",
|
|
"flash.setup.setup_complete": "Setup complete! Please log in to continue.",
|
|
"form.setup.username": "Username",
|
|
"form.setup.password": "Password",
|
|
"form.setup.confirm_password": "Confirm Password",
|
|
"form.setup.passwords_must_match": "Passwords must match.",
|
|
"form.setup.next": "Next",
|
|
"form.setup.cf_api_token": "Cloudflare API Token",
|
|
"form.setup.cf_account_id": "Cloudflare Account ID",
|
|
"form.setup.tunnel_name": "Tunnel Name",
|
|
"form.setup.cf_zone_id": "Primary Cloudflare Zone ID (Optional)",
|
|
"form.setup.tunnel_dns_scan_zones": "Other Zones to Scan (comma-separated, optional)",
|
|
"form.setup.tunnel_dns_scan_zones_desc": "e.g. my-other-domain.com,another.dev",
|
|
"form.setup.grace_period": "Grace Period (seconds)",
|
|
"form.setup.complete_setup": "Complete Setup",
|
|
"form.setup.proceed_to_user": "Proceed to User Creation",
|
|
"form.settings.tunnel_name": "Tunnel Name",
|
|
"form.settings.tunnel_name_required": "A tunnel name is required.",
|
|
"form.settings.cf_zone_id": "Primary Cloudflare Zone ID",
|
|
"form.settings.tunnel_dns_scan_zones": "Other Zones to Scan (comma-separated)",
|
|
"form.settings.tunnel_dns_scan_zones_desc": "e.g. my-other-domain.com,another.dev",
|
|
"form.settings.grace_period": "Grace Period (seconds)",
|
|
"form.settings.grace_period_required": "Grace period is required.",
|
|
"form.settings.preserve_unmanaged_fields": "Preserve Unmanaged Cloudflare Ingress Fields",
|
|
"form.settings.save_general": "Save General Settings",
|
|
"form.security.disable_password_login": "Disable Password Login",
|
|
"form.security.oauth_session_timeout": "OAuth Session Timeout (seconds)",
|
|
"form.security.oauth_audit_logging": "Enable OAuth Audit Logging",
|
|
"form.security.save": "Save Security Settings",
|
|
"form.password.current": "Current Password",
|
|
"form.password.new": "New Password",
|
|
"form.password.new_min_length": "Password must be at least 8 characters long.",
|
|
"form.password.confirm": "Confirm New Password",
|
|
"form.password.confirm_must_match": "New passwords must match.",
|
|
"form.password.submit": "Change Password",
|
|
"form.login.username": "Username",
|
|
"form.login.username_required": "Username is required.",
|
|
"form.login.password": "Password",
|
|
"form.login.password_required": "Password is required.",
|
|
"form.login.submit": "Login",
|
|
"form.cloudflare.account_id": "Cloudflare Account ID",
|
|
"form.cloudflare.account_id_length": "Account ID must be 32 characters long.",
|
|
"form.cloudflare.api_token": "Cloudflare API Token",
|
|
"form.cloudflare.api_token_length": "API Token must be 40 characters long.",
|
|
"form.cloudflare.submit": "Update Cloudflare Credentials",
|
|
"nav.email": "Email",
|
|
"email.title": "Email Management",
|
|
"email.domain_setup": "Domain Setup",
|
|
"email.mailbox_management": "Mailboxes",
|
|
"email.permissions_title": "Permissions Required",
|
|
"email.permission_email_routing": "Email Routing",
|
|
"email.permission_workers": "Workers Scripts",
|
|
"email.permission_r2": "R2 Storage",
|
|
"email.permission_granted": "Granted",
|
|
"email.permission_missing": "Missing",
|
|
"email.recheck_permissions": "Check Permissions",
|
|
"email.setup_email": "Setup Email for Domain",
|
|
"email.setup_complete": "Configured",
|
|
"email.add_mailbox": "Add Mailbox",
|
|
"email.dns_verify": "Verify DNS",
|
|
"email.stats_received": "Emails Received",
|
|
"email.stats_sent": "Emails Sent",
|
|
"email.stats_storage": "Storage Used",
|
|
"email.stats_mailboxes": "Active Mailboxes",
|
|
"email.container_running": "Running",
|
|
"email.container_stopped": "Mail Manager or Webmail stopped",
|
|
"email.webmail_link": "Open Webmail",
|
|
"email.container_status": "Container Status",
|
|
"email.statistics": "Statistics",
|
|
"email.dns_records": "DNS Records",
|
|
"email.delete": "Delete",
|
|
"email.domain": "Domain",
|
|
"email.display_name": "Display Name",
|
|
"email.address": "Address",
|
|
"email.actions": "Actions",
|
|
"email.status": "Status",
|
|
"email.teardown": "Teardown",
|
|
"email.no_domains": "No domains configured.",
|
|
"email.choose_domain": "Choose a domain...",
|
|
"email.select_zone": "Select Cloudflare Zone"
|
|
}
|