01ff137f43
- SMTP: add test-to field, send real email via sendMail() instead of verify() - SMTP: fix no_auth warning shown as error for open-relay servers - DKV: register dkv-fleet in MODULE_REGISTRY (fixes "Modul nicht gefunden") - DKV: add dynamic [category]/[moduleSlug]/settings + vehicles sub-routes - DKV: settings/vehicles links use useParams for consistent URLs - DKV: add gear icon settings link to module main page - DKV: rename module to "DKV-Rechnung" in seed + translations - DKV: add optional domain field for Exchange (WebCredentials 3rd arg) - DKV: hide IMAP-only fields (Port/Verschlüsselung/Ordner) when Exchange selected - DKV: hide Exchange-only field (Domain) when IMAP selected - Prisma: add domain column to DkvModuleConfig Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
376 lines
13 KiB
JSON
376 lines
13 KiB
JSON
{
|
|
"common": {
|
|
"appName": "Tessera",
|
|
"loading": "Loading...",
|
|
"save": "Save",
|
|
"cancel": "Cancel",
|
|
"menu": "Menu",
|
|
"confirm": "Confirm",
|
|
"delete": "Delete",
|
|
"edit": "Edit",
|
|
"create": "Create",
|
|
"close": "Close",
|
|
"yes": "Yes",
|
|
"no": "No",
|
|
"active": "Active",
|
|
"inactive": "Inactive",
|
|
"actions": "Actions",
|
|
"accessDenied": "Access denied"
|
|
},
|
|
"auth": {
|
|
"login": "Sign In",
|
|
"username": "Username",
|
|
"password": "Password",
|
|
"rememberMe": "Remember me",
|
|
"submit": "Sign In",
|
|
"forgotPassword": "Forgot password?",
|
|
"error": {
|
|
"invalidCredentials": "Invalid username or password",
|
|
"networkError": "Connection error. Please try again."
|
|
},
|
|
"branding": {
|
|
"tagline": "Modular workflow platform for your organization"
|
|
},
|
|
"resetPassword": {
|
|
"title": "Reset Password",
|
|
"email": "Email address",
|
|
"submit": "Send Reset Link",
|
|
"success": "If an account with this email exists, a reset link has been sent.",
|
|
"backToLogin": "Back to Sign In",
|
|
"newPasswordTitle": "Set New Password",
|
|
"newPassword": "New Password",
|
|
"confirmPassword": "Confirm Password",
|
|
"submitReset": "Reset Password",
|
|
"resetSuccess": "Your password has been reset successfully.",
|
|
"redirecting": "You will be redirected to the sign in page in a few seconds...",
|
|
"tokenExpired": "This reset link has expired. Please request a new one.",
|
|
"tokenUsed": "This reset link has already been used. Please request a new one.",
|
|
"tokenInvalid": "This reset link is invalid.",
|
|
"passwordMismatch": "Passwords do not match."
|
|
},
|
|
"changePassword": {
|
|
"title": "Change Password",
|
|
"currentPassword": "Current Password",
|
|
"newPassword": "New Password",
|
|
"confirmPassword": "Confirm New Password",
|
|
"submit": "Change Password",
|
|
"success": "Your password has been changed successfully.",
|
|
"forceChangeNotice": "For security reasons, you must change your password before continuing.",
|
|
"wrongCurrentPassword": "The current password is incorrect.",
|
|
"networkError": "Connection error. Please try again.",
|
|
"passwordMismatch": "Passwords do not match."
|
|
}
|
|
},
|
|
"header": {
|
|
"search": "Search...",
|
|
"userMenu": "User menu",
|
|
"breadcrumb": {
|
|
"home": "Home"
|
|
},
|
|
"settings": "Settings",
|
|
"logout": "Sign Out",
|
|
"admin": {
|
|
"label": "Administration",
|
|
"users": "Users",
|
|
"tenants": "Tenants",
|
|
"modules": "Modules",
|
|
"ldap": "LDAP"
|
|
},
|
|
"role": {
|
|
"SUPER_ADMIN": "Super Admin",
|
|
"ADMIN": "Admin",
|
|
"USER": "User"
|
|
}
|
|
},
|
|
"sidebar": {
|
|
"dashboard": "Dashboard",
|
|
"marketplace": "Marketplace",
|
|
"settings": "Settings",
|
|
"collapse": "Collapse",
|
|
"expand": "Expand",
|
|
"userPlaceholder": "User",
|
|
"search": "Search modules...",
|
|
"noResults": "No modules found",
|
|
"categories": {
|
|
"label": "Categories",
|
|
"empty": "No modules"
|
|
},
|
|
"admin": "Administration",
|
|
"users": "Users",
|
|
"tenants": "Tenants",
|
|
"ldap": "LDAP",
|
|
"modules": "Modules"
|
|
},
|
|
"dashboard": {
|
|
"title": "Dashboard",
|
|
"empty": "No active widgets",
|
|
"addWidget": "Add widget"
|
|
},
|
|
"settings": {
|
|
"link": "Settings",
|
|
"navLabel": "Settings",
|
|
"backToDashboard": "Back to Dashboard",
|
|
"categoryDashboard": "Dashboard",
|
|
"categoryWidgets": "Widgets",
|
|
"categoryCalendar": "Calendar",
|
|
"categoryGeneral": "General",
|
|
"categorySmtp": "SMTP",
|
|
"sourceDeleteConfirm": "Are you sure you want to delete this calendar source?",
|
|
"sourceDeleteCta": "Delete source",
|
|
"providerDeleteConfirm": "Are you sure you want to delete this search provider?",
|
|
"providerDeleteCta": "Delete provider",
|
|
"cancel": "Cancel",
|
|
"smtp": {
|
|
"title": "SMTP Configuration",
|
|
"host": "Host",
|
|
"port": "Port",
|
|
"encryption": "Encryption",
|
|
"username": "Username",
|
|
"password": "Password",
|
|
"fromAddress": "Sender Address (From)",
|
|
"fromAddressHelp": "The email address shown as the sender.",
|
|
"save": "Save Settings",
|
|
"test": "Test Connection",
|
|
"showPassword": "Show password",
|
|
"hidePassword": "Hide password",
|
|
"testToLabel": "Send test email to",
|
|
"testToPlaceholder": "recipient@example.com",
|
|
"testToHelp": "Optional — sends a real test email to this address.",
|
|
"testTesting": "Testing connection...",
|
|
"testSuccess": "Connection successful",
|
|
"testFailed": "Connection failed"
|
|
}
|
|
},
|
|
"widgets": {
|
|
"emptyHeading": "No active widgets",
|
|
"emptyBody": "Click edit to add widgets to your dashboard.",
|
|
"addWidget": "Add widget",
|
|
"catalogTitle": "Add widget",
|
|
"deleteTooltip": "Remove widget",
|
|
"editMode": "Edit dashboard",
|
|
"saveChanges": "Save changes",
|
|
"layoutLoadError": "Could not load dashboard. Please reload the page.",
|
|
"widgetSaveError": "Could not save changes. Please try again.",
|
|
"clock": {
|
|
"name": "Clock",
|
|
"description": "Shows the current time",
|
|
"dateHint": "Show date"
|
|
},
|
|
"search": {
|
|
"name": "Search",
|
|
"description": "Quick web search",
|
|
"placeholder": "Search...",
|
|
"providers": "Search Providers",
|
|
"addProvider": "Add Custom Provider",
|
|
"addProviderButton": "Add Provider"
|
|
},
|
|
"calendar": {
|
|
"name": "Calendar",
|
|
"description": "Upcoming events",
|
|
"loading": "Loading...",
|
|
"emptyNoSources": "No calendar sources configured",
|
|
"emptyNoEvents": "No upcoming events",
|
|
"connectionSuccess": "Connection successful",
|
|
"connectionError": "Connection failed. Please check the URL and credentials.",
|
|
"addSource": "Add source",
|
|
"sourceEmpty": "No calendar sources configured. Add a source to display events."
|
|
},
|
|
"note": {
|
|
"name": "Notes",
|
|
"description": "Free-text notes with Markdown",
|
|
"defaultTitle": "Note",
|
|
"autosaveError": "Save failed"
|
|
}
|
|
},
|
|
"admin": {
|
|
"users": {
|
|
"title": "User Management",
|
|
"create": "Create User",
|
|
"edit": "Edit User",
|
|
"delete": "Delete User",
|
|
"deleteConfirm": "Are you sure you want to delete this user?",
|
|
"name": "Name",
|
|
"username": "Username",
|
|
"email": "Email",
|
|
"displayName": "Display Name",
|
|
"role": "Role",
|
|
"status": "Status",
|
|
"actions": "Actions",
|
|
"password": "Password",
|
|
"noUsers": "No users found"
|
|
},
|
|
"tenants": {
|
|
"title": "Tenant Management",
|
|
"create": "Create Tenant",
|
|
"edit": "Edit Tenant",
|
|
"name": "Name",
|
|
"slug": "Slug",
|
|
"status": "Status",
|
|
"userCount": "Users",
|
|
"actions": "Actions",
|
|
"noTenants": "No tenants found",
|
|
"deleteConfirm": "Are you sure you want to delete this tenant?",
|
|
"cannotDeleteActive": "Cannot delete tenants with active users"
|
|
}
|
|
},
|
|
"adminModules": {
|
|
"title": "Module Management",
|
|
"description": "Activate or deactivate modules for your tenant",
|
|
"activate": "Activate",
|
|
"deactivate": "Deactivate",
|
|
"activated": "Activated",
|
|
"deactivated": "Deactivated",
|
|
"system": "System",
|
|
"version": "Version",
|
|
"noModules": "No modules available",
|
|
"activateSuccess": "Module activated successfully",
|
|
"deactivateSuccess": "Module deactivated successfully",
|
|
"error": "Error managing module"
|
|
},
|
|
"theme": {
|
|
"light": "Light",
|
|
"dark": "Dark",
|
|
"system": "System"
|
|
},
|
|
"locale": {
|
|
"de": "Deutsch",
|
|
"en": "English"
|
|
},
|
|
"modules": {
|
|
"categoryTitle": "Modules: {category}",
|
|
"openModule": "Open",
|
|
"noModules": "No active modules in this category",
|
|
"notFound": "Module not found",
|
|
"notFoundDescription": "The requested module does not exist or is not activated.",
|
|
"backToCategory": "Back to category",
|
|
"allModules": "Modules",
|
|
"allModulesDescription": "Available modules for your tenant",
|
|
"noActiveModules": "No modules activated. Ask your administrator to enable modules."
|
|
},
|
|
"domaincheck": {
|
|
"title": "Domain Check",
|
|
"description": "Check if a domain is available",
|
|
"inputPlaceholder": "Enter domain (e.g. example.com)",
|
|
"suggestions": "Alternatives",
|
|
"checkButton": "Check",
|
|
"statusAvailable": "Available",
|
|
"statusRegistered": "Registered",
|
|
"noResults": "Enter a domain name to check availability",
|
|
"checking": "Checking...",
|
|
"error": "Error checking domain"
|
|
},
|
|
"dkvFleet": {
|
|
"pageTitle": "DKV Invoice",
|
|
"checkNow": "Check Now",
|
|
"checking": "Checking...",
|
|
"lastChecked": "Last checked: {time}",
|
|
"neverChecked": "Never checked",
|
|
"settingsTitle": "Module Settings",
|
|
"historyTitle": "Processing History",
|
|
"exportFilesTitle": "Recent Export Files",
|
|
"emptyHistory": "No invoices processed yet",
|
|
"emptyHistoryBody": "Click 'Check Now' to poll the inbox. New invoices will appear here automatically.",
|
|
"emptyExports": "No export files available yet",
|
|
"emptyVehicles": "No vehicles configured",
|
|
"emptyVehiclesBody": "Add vehicles manually or upload a CSV file.",
|
|
"status": {
|
|
"processed": "Processed",
|
|
"error": "Error",
|
|
"sendFailed": "Send Failed"
|
|
},
|
|
"col": {
|
|
"dateTime": "Date/Time",
|
|
"invoiceNumber": "Invoice Number",
|
|
"vehicles": "Vehicles",
|
|
"transactions": "Transactions",
|
|
"status": "Status",
|
|
"exportFile": "Export File",
|
|
"licensePlate": "License Plate",
|
|
"brand": "Make",
|
|
"model": "Model",
|
|
"driver": "Driver",
|
|
"actions": "Actions"
|
|
},
|
|
"addVehicle": "Add Vehicle",
|
|
"editVehicle": "Edit Vehicle",
|
|
"deleteVehicle": "Delete Vehicle",
|
|
"deleteVehicleBody": "Vehicle {plate} will be permanently removed from the master list. This action cannot be undone.",
|
|
"importCsv": "Import CSV",
|
|
"importMode": "Import Mode",
|
|
"importMerge": "Merge — add new vehicles, keep existing",
|
|
"importReplace": "Replace — delete all existing vehicles and re-import",
|
|
"importReplaceWarning": "All existing vehicles will be replaced.",
|
|
"importReplaceConfirmTitle": "Replace Vehicles?",
|
|
"importReplaceConfirmBody": "All existing vehicles will be replaced with the CSV data. This action cannot be undone.",
|
|
"importReplaceConfirmButton": "Replace",
|
|
"importSuccess": "{count} vehicles imported",
|
|
"vehicleCount": "{count} vehicles",
|
|
"tabs": {
|
|
"inbox": "Inbox",
|
|
"vehicles": "Vehicles"
|
|
},
|
|
"form": {
|
|
"protocol": "Protocol",
|
|
"host": "Host",
|
|
"hostExchange": "EWS URL",
|
|
"domain": "Domain",
|
|
"domainHelp": "Optional — Windows domain (e.g. CONTOSO). Leave blank if not required.",
|
|
"port": "Port",
|
|
"encryption": "Encryption",
|
|
"encryptionNone": "None",
|
|
"folder": "Folder",
|
|
"senderFilter": "Sender Filter",
|
|
"pollInterval": "Poll Interval",
|
|
"pollIntervalSuffix": "Minutes",
|
|
"username": "Username",
|
|
"password": "Password",
|
|
"exportRecipient": "Export Recipient",
|
|
"vehicleFormat": "Vehicle Format String",
|
|
"vehicleFormatHelp": "Available placeholders: {Marke}, {Modell}, {Kennzeichen}, {Fahrer}",
|
|
"active": "Active",
|
|
"testConnection": "Test Connection",
|
|
"testTesting": "Testing connection...",
|
|
"testSuccess": "Connection successful",
|
|
"testFailed": "Connection failed: {error}",
|
|
"save": "Save Settings",
|
|
"cancel": "Cancel Editing",
|
|
"cancelDialog": "Cancel",
|
|
"showPassword": "Show password",
|
|
"hidePassword": "Hide password"
|
|
},
|
|
"errors": {
|
|
"pollFailed": "Could not check inbox. Review the configuration under 'Module Settings > Inbox'.",
|
|
"smtpFailed": "Export was created but could not be sent. The file is still available for manual download."
|
|
}
|
|
},
|
|
"marketplace": {
|
|
"title": "Marketplace",
|
|
"subtitle": "Discover and activate modules for your tenant",
|
|
"activate": "Activate Module",
|
|
"deactivate": "Deactivate",
|
|
"searchPlaceholder": "Search modules...",
|
|
"statusAll": "All",
|
|
"statusActive": "Activated",
|
|
"statusAvailable": "Available",
|
|
"categoryAll": "All",
|
|
"emptyTitle": "No modules available yet",
|
|
"emptyBody": "Modules are provided by the system administrator. Check back later.",
|
|
"filteredEmptyTitle": "No results",
|
|
"filteredEmptyBody": "Try a different search term or adjust your filters.",
|
|
"errorLoad": "Could not load modules. Please reload the page.",
|
|
"toastActivated": "Module activated successfully",
|
|
"toastDeactivated": "Module deactivated successfully",
|
|
"toastActivateError": "Activation failed. Please try again.",
|
|
"toastDeactivateError": "Deactivation failed. Please try again.",
|
|
"deactivateDialogTitle": "Deactivate Module",
|
|
"deactivateDialogBody": "Do you want to deactivate {moduleName} for this tenant? The module will be removed from the sidebar.",
|
|
"deactivateDialogConfirm": "Deactivate",
|
|
"deactivateDialogCancel": "Cancel",
|
|
"tenantContextLabel": "Tenant Context",
|
|
"backToMarketplace": "Back to Marketplace",
|
|
"detailVersion": "Version {version}",
|
|
"detailStatusActive": "Activated for this tenant",
|
|
"detailStatusInactive": "Not activated"
|
|
}
|
|
}
|