{ "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" } }