Spaces:
Sleeping
Sleeping
| import type { TranslationStrings } from '../types'; | |
| const admin: TranslationStrings = { | |
| 'admin.notifications.title': 'Notifications', | |
| 'admin.notifications.hint': | |
| 'Choose one notification channel. Only one can be active at a time.', | |
| 'admin.notifications.none': 'Disabled', | |
| 'admin.notifications.email': 'Email (SMTP)', | |
| 'admin.notifications.webhook': 'Webhook', | |
| 'admin.notifications.ntfy': 'Ntfy', | |
| 'admin.ntfy.hint': | |
| 'Allow users to configure their own ntfy topics for push notifications. Set the default server below to pre-fill user settings.', | |
| 'admin.notifications.save': 'Save notification settings', | |
| 'admin.notifications.saved': 'Notification settings saved', | |
| 'admin.notifications.testWebhook': 'Send test webhook', | |
| 'admin.notifications.testWebhookSuccess': 'Test webhook sent successfully', | |
| 'admin.notifications.testWebhookFailed': 'Test webhook failed', | |
| 'admin.notifications.testNtfy': 'Send test ntfy', | |
| 'admin.notifications.testNtfySuccess': 'Test ntfy sent successfully', | |
| 'admin.notifications.testNtfyFailed': 'Test ntfy failed', | |
| 'admin.notifications.emailPanel.title': 'Email (SMTP)', | |
| 'admin.notifications.webhookPanel.title': 'Webhook', | |
| 'admin.notifications.inappPanel.title': 'In-App', | |
| 'admin.notifications.inappPanel.hint': | |
| 'In-app notifications are always active and cannot be disabled globally.', | |
| 'admin.notifications.adminWebhookPanel.title': 'Admin Webhook', | |
| 'admin.notifications.adminWebhookPanel.hint': | |
| 'This webhook is used exclusively for admin notifications (e.g. version alerts). It is separate from per-user webhooks and always fires when set.', | |
| 'admin.notifications.adminWebhookPanel.saved': 'Admin webhook URL saved', | |
| 'admin.notifications.adminWebhookPanel.testSuccess': | |
| 'Test webhook sent successfully', | |
| 'admin.notifications.adminWebhookPanel.testFailed': 'Test webhook failed', | |
| 'admin.notifications.adminWebhookPanel.alwaysOnHint': | |
| 'Admin webhook always fires when a URL is configured', | |
| 'admin.notifications.adminNtfyPanel.title': 'Admin Ntfy', | |
| 'admin.notifications.adminNtfyPanel.hint': | |
| 'This ntfy topic is used exclusively for admin notifications (e.g. version alerts). It is separate from per-user topics and always fires when configured.', | |
| 'admin.notifications.adminNtfyPanel.serverLabel': 'Ntfy Server URL', | |
| 'admin.notifications.adminNtfyPanel.serverHint': | |
| 'Also used as the default server for user ntfy notifications. Leave blank to default to ntfy.sh. Users can override this in their own settings.', | |
| 'admin.notifications.adminNtfyPanel.serverPlaceholder': 'https://ntfy.sh', | |
| 'admin.notifications.adminNtfyPanel.topicLabel': 'Admin Topic', | |
| 'admin.notifications.adminNtfyPanel.topicPlaceholder': 'trek-admin-alerts', | |
| 'admin.notifications.adminNtfyPanel.tokenLabel': 'Access Token (optional)', | |
| 'admin.notifications.adminNtfyPanel.tokenCleared': | |
| 'Admin access token cleared', | |
| 'admin.notifications.adminNtfyPanel.saved': 'Admin ntfy settings saved', | |
| 'admin.notifications.adminNtfyPanel.test': 'Send test ntfy', | |
| 'admin.notifications.adminNtfyPanel.testSuccess': | |
| 'Test ntfy sent successfully', | |
| 'admin.notifications.adminNtfyPanel.testFailed': 'Test ntfy failed', | |
| 'admin.notifications.adminNtfyPanel.alwaysOnHint': | |
| 'Admin ntfy always fires when a topic is configured', | |
| 'admin.notifications.adminNotificationsHint': | |
| 'Configure which channels deliver admin-only notifications (e.g. version alerts).', | |
| 'admin.notifications.tripReminders.title': 'Trip Reminders', | |
| 'admin.notifications.tripReminders.hint': | |
| 'Send a reminder notification before a trip starts (requires reminder days to be set on the trip).', | |
| 'admin.notifications.tripReminders.enabled': 'Trip reminders enabled', | |
| 'admin.notifications.tripReminders.disabled': 'Trip reminders disabled', | |
| 'admin.smtp.title': 'Email & Notifications', | |
| 'admin.smtp.hint': 'SMTP configuration for sending email notifications.', | |
| 'admin.smtp.testButton': 'Send test email', | |
| 'admin.webhook.hint': | |
| 'Allow users to configure their own webhook URLs for notifications (Discord, Slack, etc.).', | |
| 'admin.smtp.testSuccess': 'Test email sent successfully', | |
| 'admin.smtp.testFailed': 'Test email failed', | |
| 'admin.title': 'Administration', | |
| 'admin.subtitle': 'User management and system settings', | |
| 'admin.tabs.users': 'Users', | |
| 'admin.tabs.categories': 'Categories', | |
| 'admin.tabs.backup': 'Backup', | |
| 'admin.tabs.notifications': 'Notifications', | |
| 'admin.tabs.audit': 'Audit', | |
| 'admin.stats.users': 'Users', | |
| 'admin.stats.trips': 'Trips', | |
| 'admin.stats.places': 'Places', | |
| 'admin.stats.photos': 'Photos', | |
| 'admin.stats.files': 'Files', | |
| 'admin.table.user': 'User', | |
| 'admin.table.email': 'Email', | |
| 'admin.table.role': 'Role', | |
| 'admin.table.created': 'Created', | |
| 'admin.table.lastLogin': 'Last Login', | |
| 'admin.table.actions': 'Actions', | |
| 'admin.you': '(You)', | |
| 'admin.editUser': 'Edit User', | |
| 'admin.newPassword': 'New Password', | |
| 'admin.newPasswordHint': 'Leave empty to keep current password', | |
| 'admin.deleteUser': | |
| 'Delete user "{name}"? All trips will be permanently deleted.', | |
| 'admin.deleteUserTitle': 'Delete user', | |
| 'admin.newPasswordPlaceholder': 'Enter new password…', | |
| 'admin.toast.loadError': 'Failed to load admin data', | |
| 'admin.toast.userUpdated': 'User updated', | |
| 'admin.toast.updateError': 'Failed to update', | |
| 'admin.toast.userDeleted': 'User deleted', | |
| 'admin.toast.deleteError': 'Failed to delete', | |
| 'admin.toast.cannotDeleteSelf': 'Cannot delete your own account', | |
| 'admin.toast.userCreated': 'User created', | |
| 'admin.toast.createError': 'Failed to create user', | |
| 'admin.toast.fieldsRequired': 'Username, email and password are required', | |
| 'admin.createUser': 'Create User', | |
| 'admin.invite.title': 'Invite Links', | |
| 'admin.invite.subtitle': 'Create one-time registration links', | |
| 'admin.invite.create': 'Create Link', | |
| 'admin.invite.createAndCopy': 'Create & Copy', | |
| 'admin.invite.empty': 'No invite links created yet', | |
| 'admin.invite.maxUses': 'Max. Uses', | |
| 'admin.invite.expiry': 'Expires after', | |
| 'admin.invite.uses': 'used', | |
| 'admin.invite.expiresAt': 'expires', | |
| 'admin.invite.createdBy': 'by', | |
| 'admin.invite.active': 'Active', | |
| 'admin.invite.expired': 'Expired', | |
| 'admin.invite.usedUp': 'Used up', | |
| 'admin.invite.copied': 'Invite link copied to clipboard', | |
| 'admin.invite.copyLink': 'Copy link', | |
| 'admin.invite.deleted': 'Invite link deleted', | |
| 'admin.invite.createError': 'Failed to create invite link', | |
| 'admin.invite.deleteError': 'Failed to delete invite link', | |
| 'admin.tabs.settings': 'Settings', | |
| 'admin.allowRegistration': 'Allow Registration', | |
| 'admin.allowRegistrationHint': 'New users can register themselves', | |
| 'admin.authMethods': 'Authentication Methods', | |
| 'admin.passwordLogin': 'Password Login', | |
| 'admin.passwordLoginHint': 'Allow users to sign in with email and password', | |
| 'admin.passwordRegistration': 'Password Registration', | |
| 'admin.passwordRegistrationHint': | |
| 'Allow new users to register with email and password', | |
| 'admin.oidcLogin': 'SSO Login', | |
| 'admin.oidcLoginHint': 'Allow users to sign in with SSO', | |
| 'admin.oidcRegistration': 'SSO Auto-Provisioning', | |
| 'admin.oidcRegistrationHint': | |
| 'Automatically create accounts for new SSO users', | |
| 'admin.envOverrideHint': | |
| 'Password login settings are controlled by the OIDC_ONLY environment variable and cannot be changed here.', | |
| 'admin.lockoutWarning': 'At least one login method must remain enabled', | |
| 'admin.requireMfa': 'Require two-factor authentication (2FA)', | |
| 'admin.requireMfaHint': | |
| 'Users without 2FA must complete setup in Settings before using the app.', | |
| 'admin.apiKeys': 'API Keys', | |
| 'admin.apiKeysHint': | |
| 'Optional. Enables extended place data like photos and weather.', | |
| 'admin.mapsKey': 'Google Maps API Key', | |
| 'admin.mapsKeyHint': | |
| 'Required for place search. Get at console.cloud.google.com', | |
| 'admin.mapsKeyHintLong': | |
| 'Without an API key, OpenStreetMap is used for place search. With a Google API key, photos, ratings, and opening hours can be loaded as well. Get one at console.cloud.google.com.', | |
| 'admin.recommended': 'Recommended', | |
| 'admin.weatherKey': 'OpenWeatherMap API Key', | |
| 'admin.weatherKeyHint': 'For weather data. Free at openweathermap.org', | |
| 'admin.validateKey': 'Test', | |
| 'admin.keyValid': 'Connected', | |
| 'admin.keyInvalid': 'Invalid', | |
| 'admin.keySaved': 'API keys saved', | |
| 'admin.oidcTitle': 'Single Sign-On (OIDC)', | |
| 'admin.oidcSubtitle': | |
| 'Allow login via external providers like Google, Apple, Authentik or Keycloak.', | |
| 'admin.oidcDisplayName': 'Display Name', | |
| 'admin.oidcIssuer': 'Issuer URL', | |
| 'admin.oidcIssuerHint': | |
| 'The OpenID Connect Issuer URL of the provider. e.g. https://accounts.google.com', | |
| 'admin.oidcSaved': 'OIDC configuration saved', | |
| 'admin.oidcOnlyMode': 'Disable password authentication', | |
| 'admin.oidcOnlyModeHint': | |
| 'When enabled, only SSO login is permitted. Password-based login and registration are blocked.', | |
| 'admin.fileTypes': 'Allowed File Types', | |
| 'admin.fileTypesHint': 'Configure which file types users can upload.', | |
| 'admin.fileTypesFormat': | |
| 'Comma-separated extensions (e.g. jpg,png,pdf,doc). Use * to allow all types.', | |
| 'admin.fileTypesSaved': 'File type settings saved', | |
| 'admin.placesPhotos.title': 'Place Photos', | |
| 'admin.placesPhotos.subtitle': | |
| 'Fetch photos from the Google Places API. Disable to save API quota. Wikimedia photos are unaffected.', | |
| 'admin.placesAutocomplete.title': 'Place Autocomplete', | |
| 'admin.placesAutocomplete.subtitle': | |
| 'Use the Google Places API for search suggestions. Disable to save API quota.', | |
| 'admin.placesDetails.title': 'Place Details', | |
| 'admin.placesDetails.subtitle': | |
| 'Fetch detailed place information (hours, rating, website) from the Google Places API. Disable to save API quota.', | |
| 'admin.bagTracking.title': 'Bag Tracking', | |
| 'admin.bagTracking.subtitle': | |
| 'Enable weight and bag assignment for packing items', | |
| 'admin.collab.chat.title': 'Chat', | |
| 'admin.collab.chat.subtitle': 'Real-time messaging for trip collaboration', | |
| 'admin.collab.notes.title': 'Notes', | |
| 'admin.collab.notes.subtitle': 'Shared notes and documents', | |
| 'admin.collab.polls.title': 'Polls', | |
| 'admin.collab.polls.subtitle': 'Group polls and voting', | |
| 'admin.collab.whatsnext.title': "What's Next", | |
| 'admin.collab.whatsnext.subtitle': 'Activity suggestions and next steps', | |
| 'admin.tabs.config': 'Personalization', | |
| 'admin.tabs.defaults': 'User Defaults', | |
| 'admin.defaultSettings.title': 'Default User Settings', | |
| 'admin.defaultSettings.description': | |
| 'Set instance-wide defaults. Users who have not changed a setting will see these values. Their own changes always take priority.', | |
| 'admin.defaultSettings.saved': 'Default saved', | |
| 'admin.defaultSettings.reset': 'Reset to built-in default', | |
| 'admin.defaultSettings.resetToBuiltIn': 'reset', | |
| 'admin.defaultSettings.mapProvider': 'Map engine', | |
| 'admin.defaultSettings.mapProviderHint': | |
| 'The default map for everyone on this instance. Each user can still override it in their own settings.', | |
| 'admin.defaultSettings.providerLeaflet': 'Standard (free)', | |
| 'admin.defaultSettings.providerMapbox': 'Mapbox (3D)', | |
| 'admin.defaultSettings.mapboxToken': 'Shared Mapbox token', | |
| 'admin.defaultSettings.mapboxTokenHint': | |
| 'Used for every user who has not entered their own token — so the whole instance gets Mapbox without sharing the key individually. Stored encrypted.', | |
| 'admin.defaultSettings.mapboxStyle': 'Map style', | |
| 'admin.defaultSettings.mapboxStylePlaceholder': 'Choose a style…', | |
| 'admin.defaultSettings.mapbox3d': '3D buildings & terrain', | |
| 'admin.defaultSettings.mapboxQuality': 'High-quality mode', | |
| 'admin.tabs.templates': 'Packing Templates', | |
| 'admin.packingTemplates.title': 'Packing Templates', | |
| 'admin.packingTemplates.subtitle': | |
| 'Create reusable packing lists for your trips', | |
| 'admin.packingTemplates.create': 'New Template', | |
| 'admin.packingTemplates.namePlaceholder': | |
| 'Template name (e.g. Beach Holiday)', | |
| 'admin.packingTemplates.empty': 'No templates created yet', | |
| 'admin.packingTemplates.items': 'items', | |
| 'admin.packingTemplates.categories': 'categories', | |
| 'admin.packingTemplates.itemName': 'Item name', | |
| 'admin.packingTemplates.itemCategory': 'Category', | |
| 'admin.packingTemplates.categoryName': 'Category name (e.g. Clothing)', | |
| 'admin.packingTemplates.addCategory': 'Add category', | |
| 'admin.packingTemplates.created': 'Template created', | |
| 'admin.packingTemplates.deleted': 'Template deleted', | |
| 'admin.packingTemplates.loadError': 'Failed to load templates', | |
| 'admin.packingTemplates.createError': 'Failed to create template', | |
| 'admin.packingTemplates.deleteError': 'Failed to delete template', | |
| 'admin.packingTemplates.saveError': 'Failed to save', | |
| 'admin.tabs.addons': 'Addons', | |
| 'admin.addons.title': 'Addons', | |
| 'admin.addons.subtitle': | |
| 'Enable or disable features to customize your TREK experience.', | |
| 'admin.addons.catalog.packing.name': 'Lists', | |
| 'admin.addons.catalog.packing.description': | |
| 'Packing lists and to-do tasks for your trips', | |
| 'admin.addons.catalog.budget.name': 'Budget', | |
| 'admin.addons.catalog.budget.description': | |
| 'Track expenses and plan your trip budget', | |
| 'admin.addons.catalog.documents.name': 'Documents', | |
| 'admin.addons.catalog.documents.description': | |
| 'Store and manage travel documents', | |
| 'admin.addons.catalog.vacay.name': 'Vacay', | |
| 'admin.addons.catalog.vacay.description': | |
| 'Personal vacation planner with calendar view', | |
| 'admin.addons.catalog.atlas.name': 'Atlas', | |
| 'admin.addons.catalog.atlas.description': | |
| 'World map with visited countries and travel stats', | |
| 'admin.addons.catalog.collab.name': 'Collab', | |
| 'admin.addons.catalog.collab.description': | |
| 'Real-time notes, polls, and chat for trip planning', | |
| 'admin.addons.catalog.memories.name': 'Photos (Immich)', | |
| 'admin.addons.catalog.memories.description': | |
| 'Share trip photos via your Immich instance', | |
| 'admin.addons.catalog.mcp.name': 'MCP', | |
| 'admin.addons.catalog.mcp.description': | |
| 'Model Context Protocol for AI assistant integration', | |
| 'admin.addons.subtitleBefore': | |
| 'Enable or disable features to customize your ', | |
| 'admin.addons.subtitleAfter': ' experience.', | |
| 'admin.addons.enabled': 'Enabled', | |
| 'admin.addons.disabled': 'Disabled', | |
| 'admin.addons.type.trip': 'Trip', | |
| 'admin.addons.type.global': 'Global', | |
| 'admin.addons.type.integration': 'Integration', | |
| 'admin.addons.tripHint': 'Available as a tab within each trip', | |
| 'admin.addons.globalHint': | |
| 'Available as a standalone section in the main navigation', | |
| 'admin.addons.integrationHint': | |
| 'Backend services and API integrations with no dedicated page', | |
| 'admin.addons.toast.updated': 'Addon updated', | |
| 'admin.addons.toast.error': 'Failed to update addon', | |
| 'admin.addons.noAddons': 'No addons available', | |
| 'admin.weather.title': 'Weather Data', | |
| 'admin.weather.badge': 'Since March 24, 2026', | |
| 'admin.weather.description': | |
| 'TREK uses Open-Meteo as its weather data source. Open-Meteo is a free, open-source weather service — no API key required.', | |
| 'admin.weather.forecast': '16-day forecast', | |
| 'admin.weather.forecastDesc': 'Previously 5 days (OpenWeatherMap)', | |
| 'admin.weather.climate': 'Historical climate data', | |
| 'admin.weather.climateDesc': | |
| 'Averages from the last 85 years for days beyond the 16-day forecast', | |
| 'admin.weather.requests': '10,000 requests / day', | |
| 'admin.weather.requestsDesc': 'Free, no API key required', | |
| 'admin.weather.locationHint': | |
| 'Weather is based on the first place with coordinates in each day. If no place is assigned to a day, any place from the place list is used as a reference.', | |
| 'admin.tabs.mcpTokens': 'MCP Access', | |
| 'admin.mcpTokens.title': 'MCP Access', | |
| 'admin.mcpTokens.subtitle': | |
| 'Manage OAuth sessions and API tokens across all users', | |
| 'admin.mcpTokens.sectionTitle': 'API Tokens', | |
| 'admin.mcpTokens.owner': 'Owner', | |
| 'admin.mcpTokens.tokenName': 'Token Name', | |
| 'admin.mcpTokens.created': 'Created', | |
| 'admin.mcpTokens.lastUsed': 'Last Used', | |
| 'admin.mcpTokens.never': 'Never', | |
| 'admin.mcpTokens.empty': 'No MCP tokens have been created yet', | |
| 'admin.mcpTokens.deleteTitle': 'Delete Token', | |
| 'admin.mcpTokens.deleteMessage': | |
| 'This will revoke the token immediately. The user will lose MCP access through this token.', | |
| 'admin.mcpTokens.deleteSuccess': 'Token deleted', | |
| 'admin.mcpTokens.deleteError': 'Failed to delete token', | |
| 'admin.mcpTokens.loadError': 'Failed to load tokens', | |
| 'admin.oauthSessions.sectionTitle': 'OAuth Sessions', | |
| 'admin.oauthSessions.clientName': 'Client', | |
| 'admin.oauthSessions.owner': 'Owner', | |
| 'admin.oauthSessions.scopes': 'Scopes', | |
| 'admin.oauthSessions.created': 'Created', | |
| 'admin.oauthSessions.empty': 'No active OAuth sessions', | |
| 'admin.oauthSessions.revokeTitle': 'Revoke Session', | |
| 'admin.oauthSessions.revokeMessage': | |
| 'This will revoke the OAuth session immediately. The client will lose MCP access.', | |
| 'admin.oauthSessions.revokeSuccess': 'Session revoked', | |
| 'admin.oauthSessions.revokeError': 'Failed to revoke session', | |
| 'admin.oauthSessions.loadError': 'Failed to load OAuth sessions', | |
| 'admin.tabs.github': 'GitHub', | |
| 'admin.audit.subtitle': | |
| 'Security-sensitive and administration events (backups, users, MFA, settings).', | |
| 'admin.audit.empty': 'No audit entries yet.', | |
| 'admin.audit.refresh': 'Refresh', | |
| 'admin.audit.loadMore': 'Load more', | |
| 'admin.audit.showing': '{count} loaded · {total} total', | |
| 'admin.audit.col.time': 'Time', | |
| 'admin.audit.col.user': 'User', | |
| 'admin.audit.col.action': 'Action', | |
| 'admin.audit.col.resource': 'Resource', | |
| 'admin.audit.col.ip': 'IP', | |
| 'admin.audit.col.details': 'Details', | |
| 'admin.github.title': 'Release History', | |
| 'admin.github.subtitle': 'Latest updates from {repo}', | |
| 'admin.github.latest': 'Latest', | |
| 'admin.github.prerelease': 'Pre-release', | |
| 'admin.github.showDetails': 'Show details', | |
| 'admin.github.hideDetails': 'Hide details', | |
| 'admin.github.loadMore': 'Load more', | |
| 'admin.github.loading': 'Loading...', | |
| 'admin.github.error': 'Failed to load releases', | |
| 'admin.github.by': 'by', | |
| 'admin.github.support': 'Helps me keep building TREK', | |
| 'admin.update.available': 'Update available', | |
| 'admin.update.text': | |
| 'TREK {version} is available. You are running {current}.', | |
| 'admin.update.button': 'View on GitHub', | |
| 'admin.update.install': 'Install Update', | |
| 'admin.update.confirmTitle': 'Install Update?', | |
| 'admin.update.confirmText': | |
| 'TREK will be updated from {current} to {version}. The server will restart automatically afterwards.', | |
| 'admin.update.dataInfo': | |
| 'All your data (trips, users, API keys, uploads, Vacay, Atlas, budgets) will be preserved.', | |
| 'admin.update.warning': | |
| 'The app will be briefly unavailable during the restart.', | |
| 'admin.update.confirm': 'Update Now', | |
| 'admin.update.installing': 'Updating…', | |
| 'admin.update.success': 'Update installed! Server is restarting…', | |
| 'admin.update.failed': 'Update failed', | |
| 'admin.update.backupHint': 'We recommend creating a backup before updating.', | |
| 'admin.update.backupLink': 'Go to Backup', | |
| 'admin.update.howTo': 'How to Update', | |
| 'admin.update.dockerText': | |
| 'Your TREK instance runs in Docker. To update to {version}, run the following commands on your server:', | |
| 'admin.update.reloadHint': 'Please reload the page in a few seconds.', | |
| 'admin.tabs.permissions': 'Permissions', | |
| 'admin.addons.catalog.journey.name': 'Journey', | |
| 'admin.addons.catalog.journey.description': | |
| 'Trip tracking & travel journal with check-ins, photos, and daily stories', | |
| 'admin.passkey.title': 'Passkey login', | |
| 'admin.passkey.cardHint': 'Let users sign in with passkeys (WebAuthn). Off by default.', | |
| 'admin.passkey.login': 'Enable passkey login', | |
| 'admin.passkey.loginHint': | |
| 'Show a "Sign in with a passkey" option and let users enrol passkeys in their settings.', | |
| 'admin.passkey.notConfigured': | |
| 'No WebAuthn domain resolves for this deployment yet. Set APP_URL or the Relying Party ID below — passkeys stay hidden until then.', | |
| 'admin.passkey.rpId': 'Relying Party ID (domain)', | |
| 'admin.passkey.rpIdHint': | |
| 'The bare domain passkeys are bound to, e.g. trek.example.org. Leave empty to derive it from APP_URL. Changing it later invalidates existing passkeys.', | |
| 'admin.passkey.origins': 'Allowed origins', | |
| 'admin.passkey.originsHint': | |
| 'Comma-separated full origins, e.g. https://trek.example.org. Leave empty to use APP_URL.', | |
| 'admin.passkey.reset': 'Reset passkeys', | |
| 'admin.passkey.resetHint': | |
| "Remove all of this user's passkeys (e.g. on a lost device). They can still sign in with their password.", | |
| 'admin.passkey.resetConfirm': 'Remove all passkeys for {name}?', | |
| 'admin.passkey.resetDone': 'Removed {count} passkey(s)', | |
| }; | |
| export default admin; | |