'VPN accesses', 'subtitle' => 'Who is connected to the management network — create, block or remove accesses.', 'peers' => 'Accesses', 'peer' => 'Access', 'address' => 'Address', 'traffic' => 'Traffic', 'handshake' => 'Last contact', 'status' => 'Status', 'actions' => 'Actions', 'empty' => 'No accesses yet. The first one appears here once the hub has picked it up.', 'never' => 'never', 'last_sync' => 'As of :time', 'never_synced' => 'No data from the hub yet', 'host_peer' => 'Host access', 'operator_peer' => 'Staff access', 'unknown_peer' => 'Unknown access', 'status_online' => 'Connected', 'status_idle' => 'Configured', 'status_blocked' => 'Blocked', 'status_pending' => 'Applying', 'add' => 'Create access', 'name' => 'Label', 'own_key' => 'Own public key', 'own_key_hint' => 'Leave empty and we generate a keypair, showing the ready-made config once.', 'own_key_placeholder' => 'optional', 'invalid_key' => 'That is not a valid WireGuard key (32 bytes, base64).', 'duplicate_key' => 'An access already exists for this key.', 'pending_removal' => 'This access is currently being removed. Please wait a moment.', 'host_key' => 'This key already belongs to a host. A second access on it would cut that host\'s tunnel.', 'created' => 'Access created.', 'blocked' => 'Access blocked.', 'unblocked' => 'Access re-enabled.', 'deleted' => 'Access removed.', 'config_ready' => 'Configuration for :name', 'config_once' => 'The private key is not stored and is only visible now.', 'download' => 'Download', 'copy_failed' => 'The browser blocked copying — select the text or download the file instead.', 'qr_show' => 'QR code', 'qr_hide' => 'Hide QR', 'qr_hint' => 'Scan with the WireGuard app.', 'copy' => 'Copy', 'copied' => 'Copied', 'block' => 'Block', 'unblock' => 'Unblock', 'delete' => 'Remove', 'cancel' => 'Cancel', 'delete_title' => 'Remove :name for good?', 'delete_body' => 'The access is deleted from the hub. Restoring it requires a new keypair.', 'delete_host_warning' => 'Careful: this access belongs to host :host. CluPilot will no longer reach that host.', 'delete_confirm' => 'Remove access', 'owner' => 'Owner', 'owner_hint' => 'The access belongs to its owner — only they can retrieve the config later.', 'owner_must_be_operator' => 'A VPN access may only belong to a staff member.', 'you' => 'You', 'no_owner' => 'No owner', 'store_config' => 'Store configuration', 'store_config_hint' => 'Kept encrypted. The owner can retrieve it later with their password.', 'vault_unavailable' => 'Storing is unavailable: VPN_CONFIG_KEY is not set.', 'cannot_store_foreign_key' => 'With your own public key we never hold the private half — there is nothing to store.', 'get_config' => 'Retrieve configuration', 'get_config_title' => 'Configuration for :name', 'get_config_body' => 'Asked every time, on purpose: please enter your own password.', 'your_password' => 'Your password', 'reveal' => 'Show', 'wrong_password' => 'That password is not correct.', 'too_many_attempts' => 'Too many attempts. Try again in :seconds seconds.', 'config_unreadable' => 'The stored configuration cannot be decrypted. Please re-issue the access.', 'no_stored_config' => 'This access was created without storing its configuration — the private key only exists on your device. Use "Re-issue" to get a new one.', 'reissue' => 'Re-issue', 'reissue_confirm' => 'Generate a new keypair for :name? The current configuration stops working immediately.', 'reissued' => 'New key issued — the old configuration no longer works.', 'reissue_staff_only' => 'Host accesses are renewed through host management, not here.', 'hub' => 'Hub', 'endpoint' => 'Endpoint', 'hub_key' => 'Public key', 'subnet' => 'Subnet', 'hub_incomplete_title' => 'Hub is not fully configured yet', 'hub_incomplete_body' => 'CLUPILOT_WG_ENDPOINT and CLUPILOT_WG_HUB_PUBKEY are empty — generated configs would be unusable.', ];