516 lines
18 KiB
JSON
516 lines
18 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",
|
|
"smtp": "SMTP"
|
|
},
|
|
"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",
|
|
"categoryAccount": "Account",
|
|
"categorySmtp": "SMTP",
|
|
"account": {
|
|
"title": "Account",
|
|
"avatarLabel": "Profile Picture",
|
|
"avatarHelp": "Allowed formats: PNG, JPEG, WebP. Maximum size: 2 MB.",
|
|
"uploadCta": "Upload picture",
|
|
"uploadSuccess": "Profile picture updated successfully.",
|
|
"uploadError": "Upload failed. Please check the file format and size.",
|
|
"deleteAvatarCta": "Delete picture",
|
|
"deleteAvatarSuccess": "Profile picture deleted.",
|
|
"deleteAvatarError": "Delete failed.",
|
|
"accentColorLabel": "Accent Color",
|
|
"accentColorHelp": "Used for buttons, highlights and active elements. Default: #ffed00.",
|
|
"accentColorSave": "Save color",
|
|
"accentColorReset": "Reset",
|
|
"accentColorSuccess": "Accent color saved.",
|
|
"accentColorError": "Save failed.",
|
|
"ldapManagedNotice": "Your password is managed via the directory (LDAP) and cannot be changed here.",
|
|
"passwordSectionTitle": "Change Password"
|
|
},
|
|
"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.",
|
|
"formFieldName": "Name",
|
|
"formFieldType": "Type",
|
|
"formFieldUrl": "URL",
|
|
"formFieldUsername": "Username",
|
|
"formFieldPassword": "Password",
|
|
"formFieldColor": "Color",
|
|
"formFieldExchangeMode": "Exchange Mode",
|
|
"formFieldDomain": "Domain",
|
|
"formFieldDomainHint": "Windows domain (e.g. COMPANY)",
|
|
"formTestConnection": "Test connection",
|
|
"formTesting": "Testing...",
|
|
"formTestSuccess": "Connection successful",
|
|
"formTestFailed": "Connection failed",
|
|
"saveError": "Save failed. Please check your input.",
|
|
"saveSuccess": "Saved successfully",
|
|
"formSave": "Save",
|
|
"formSaving": "Saving...",
|
|
"formCancel": "Cancel",
|
|
"formUrlErrorHttps": "URL must use HTTPS protocol",
|
|
"formUrlErrorInvalid": "Invalid URL format"
|
|
},
|
|
"note": {
|
|
"name": "Notes",
|
|
"description": "Free-text notes with Markdown",
|
|
"defaultTitle": "Note",
|
|
"autosaveError": "Save failed",
|
|
"editMode": "Edit",
|
|
"viewMode": "Preview"
|
|
},
|
|
"calculator": {
|
|
"name": "Calculator",
|
|
"description": "Basic arithmetic with keyboard support"
|
|
},
|
|
"favorites": {
|
|
"name": "Favorites",
|
|
"description": "Quick-access links",
|
|
"loading": "Loading favorites...",
|
|
"empty": "No favorites yet.",
|
|
"addTitle": "Title",
|
|
"addUrl": "URL",
|
|
"addButton": "Add",
|
|
"listView": "List",
|
|
"gridView": "Grid",
|
|
"editButton": "Edit favorite",
|
|
"deleteButton": "Delete favorite",
|
|
"saveButton": "Save",
|
|
"cancelButton": "Cancel",
|
|
"error": "Error loading favorites"
|
|
},
|
|
"link": {
|
|
"name": "Link",
|
|
"description": "Single quick-access link",
|
|
"loading": "Loading link...",
|
|
"empty": "No link set yet.",
|
|
"addTitle": "Title",
|
|
"addUrl": "URL",
|
|
"addButton": "Add",
|
|
"listView": "List",
|
|
"gridView": "Tile",
|
|
"editButton": "Edit link",
|
|
"deleteButton": "Delete link",
|
|
"saveButton": "Save",
|
|
"cancelButton": "Cancel",
|
|
"error": "Error loading link"
|
|
},
|
|
"stopwatch": {
|
|
"name": "Stopwatch",
|
|
"description": "Time measurement with lap times",
|
|
"start": "Start",
|
|
"stop": "Stop",
|
|
"reset": "Reset",
|
|
"lap": "Lap"
|
|
}
|
|
},
|
|
"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",
|
|
"csvFormatHelp": "CSV format (semicolon): Kennzeichen;Marke;Modell;Fahrer",
|
|
"csvFormatExample": "Example: GP-JL 728E;Mercedes;GLC 300;Max Mustermann",
|
|
"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 / Mailbox",
|
|
"folderExchangeHelp": "Common mailboxes: Inbox, SentItems, DeletedItems, Drafts, JunkEmail",
|
|
"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",
|
|
"exchangeAuthHint": "401 — possible causes:",
|
|
"exchangeAuthHint1": "Wrong password or username",
|
|
"exchangeAuthHint2": "Domain: Windows short name (e.g. COMPANY, not company.com)",
|
|
"exchangeAuthHint3": "Username without domain prefix (e.g. 'max.muster', not 'COMPANY\\max.muster')",
|
|
"exchangeAuthHint4": "Office 365 / Exchange Online: EWS basic auth disabled since Oct 2022 — not supported"
|
|
},
|
|
"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"
|
|
},
|
|
"certManager": {
|
|
"title": "Certificate Manager",
|
|
"description": "Inspect, split, merge and convert certificates.",
|
|
"tabs": {
|
|
"inspect": "Inspect",
|
|
"split": "Split",
|
|
"merge": "Merge",
|
|
"convert": "Convert"
|
|
},
|
|
"dropZone": {
|
|
"placeholder": "Drag file here or click to browse",
|
|
"formats": ".pem, .crt, .cer, .der, .pfx, .p12, .p7b, .p7c"
|
|
},
|
|
"paste": {
|
|
"placeholder": "Paste PEM content (-----BEGIN ...)"
|
|
},
|
|
"password": {
|
|
"label": "Password (PFX/P12)"
|
|
},
|
|
"or": "or",
|
|
"actions": {
|
|
"inspect": "Inspect",
|
|
"split": "Split",
|
|
"merge": "Merge",
|
|
"convert": "Convert",
|
|
"download": "Download",
|
|
"processing": "Processing..."
|
|
},
|
|
"emptyState": {
|
|
"inspect": "No certificate loaded.",
|
|
"inspectBody": "Upload a file or paste PEM text.",
|
|
"split": "No file loaded.",
|
|
"splitBody": "Upload a fullchain or P7B file.",
|
|
"merge": "No certificates selected.",
|
|
"mergeBody": "Upload at least two files.",
|
|
"convert": "No file loaded.",
|
|
"convertBody": "Upload a file and select an output format."
|
|
},
|
|
"error": {
|
|
"generic": "Processing failed. Check the file format or password.",
|
|
"wrongPassword": "Wrong password. Could not decrypt the PFX/P12 file.",
|
|
"unknownFormat": "Unknown format. The file could not be recognized as a certificate."
|
|
}
|
|
|
|
"accessDenied": "Access denied" }
|
|
}
|