Simplifies the tenant Visibility tab to match the tenant-only appearance
model established by the previous commits:
- primary_color: now required. Removed the "No brand color / Use system
default (no brand accent)" toggle — every tenant carries a concrete
primary color. Legacy NULL rows render the neutral app default (#2fa4a4)
in the color picker and are converted to that explicit hex on save.
- default_theme: the select no longer offers a "Use system default" empty
option. Legacy NULL rows resolve to 'light' at render time; saves always
persist a valid theme via SettingsAppGateway::normalizeTheme().
- allow_user_theme: replaced the tri-state "Use system default (allowed) /
Force allow / Force disallow" select with a single boolean switch
("Users may choose their own theme"). Legacy NULL rows load as checked.
Saves persist 0/1 explicitly.
TenantService: sanitize no longer reads primary_color_use_default or
allow_user_theme_mode; it validates primary_color as a required hex and
treats allow_user_theme as a plain boolean. Both create and update paths
write concrete values only — no more NULL writes for these three fields.
DirectorySettingsGateway gains a normalizeTheme() delegate so TenantService
can route through the same gateway it uses for isAllowedTheme().
Removed now-unused app-color-default-toggle JS component + its runtime
registration + its architecture-test entry. i18n cleanup: "No brand
color", "Use system default (no brand accent)", "When enabled the tenant
renders without a brand accent color.", "Use system default (light)",
"Use system default (allowed)", "Force allow user theme", "Force disallow
user theme", "User theme policy is invalid" all removed. New copy: "Users
may choose their own theme" + helper text, plus a tightened tab blockquote.
Tests: TenantServiceTest validInput() updated to send concrete values;
settingsGateway mock gets normalizeTheme() + isAllowedTheme() defaults.
All 1985 tests pass; PHPStan level 5 clean; QG-006 clean.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1277 lines
67 KiB
JSON
1277 lines
67 KiB
JSON
{
|
|
"Login": "Login",
|
|
"Login credentials": "Login credentials",
|
|
"Login provider": "Login provider",
|
|
"Open full page": "Open full page",
|
|
"Loading": "Loading",
|
|
"Failed to load": "Failed to load",
|
|
"Register": "Register",
|
|
"Password": "Password",
|
|
"Or": "Or",
|
|
"Forgot password": "Forgot password",
|
|
"Remember me": "Remember me",
|
|
"Clear login tokens": "Clear login tokens",
|
|
"Clear all login tokens for this user?": "Clear all login tokens for this user?",
|
|
"Login tokens cleared": "Login tokens cleared",
|
|
"Send access": "Send access",
|
|
"Access PDF": "Access PDF",
|
|
"Download access PDFs": "Download access PDFs",
|
|
"Generate access PDFs for selected users?": "Generate access PDFs for selected users?",
|
|
"Too many users selected": "Too many users selected",
|
|
"No valid users selected": "No valid users selected",
|
|
"Failed to generate access PDF": "Failed to generate access PDF",
|
|
"ZIP support missing (ext-zip)": "ZIP support missing (ext-zip)",
|
|
"Send access email to this user?": "Send access email to this user?",
|
|
"Access email sent": "Access email sent",
|
|
"Access email failed": "Access email failed",
|
|
"Your access details": "Your access details",
|
|
"Reset password": "Reset password",
|
|
"Verification code": "Verification code",
|
|
"Verify code": "Verify code",
|
|
"Verify": "Verify",
|
|
"Send code": "Send code",
|
|
"Send code again": "Send code again",
|
|
"Enter your email address and we will send you a verification code.": "Enter your email address and we will send you a verification code.",
|
|
"Enter the verification code we sent to your email.": "Enter the verification code we sent to your email.",
|
|
"Please enter a valid email address": "Please enter a valid email address",
|
|
"Please enter the 6-digit code": "Please enter the 6-digit code",
|
|
"Invalid or expired code": "Invalid or expired code",
|
|
"Code verified": "Code verified",
|
|
"Password reset code": "Password reset code",
|
|
"If the email exists, a verification code has been sent.": "If the email exists, a verification code has been sent.",
|
|
"Choose a new password for your account.": "Choose a new password for your account.",
|
|
"Password updated": "Password updated",
|
|
"Password can not be updated": "Password can not be updated",
|
|
"Profile can not be updated": "Profile can not be updated",
|
|
"Reset request not found": "Reset request not found",
|
|
"Reset request already used": "Reset request already used",
|
|
"Reset request expired": "Reset request expired",
|
|
"Username": "Username",
|
|
"Admin": "Admin",
|
|
"Logout": "Logout",
|
|
"Account": "Account",
|
|
"Continue": "Continue",
|
|
"Show password": "Show password",
|
|
"Hide password": "Hide password",
|
|
"Use different email": "Use different email",
|
|
"Back to login": "Back to login",
|
|
"Encrypted connection": "Encrypted",
|
|
"HTTPS/TLS 1.2+ in transit": "HTTPS/TLS 1.2+ in transit",
|
|
"Problems logging in": "Problems logging in",
|
|
"We could not continue with these login details": "We could not continue with these login details",
|
|
"Too many login attempts. Please wait and try again.": "Too many login attempts. Please wait and try again.",
|
|
"No login method is available for this tenant": "No login method is available for this tenant",
|
|
"Cached": "Cached",
|
|
"App identity": "App identity",
|
|
"Configured": "Configured",
|
|
"Not configured": "Not configured",
|
|
"Theme policy": "Theme policy",
|
|
"Brand color": "Brand color",
|
|
"User override enabled": "User override enabled",
|
|
"User override disabled": "User override disabled",
|
|
"Token lifetime policy": "Token lifetime policy",
|
|
"Token operations": "Token operations",
|
|
"CORS allowlist": "CORS allowlist",
|
|
"Shared Microsoft credentials": "Shared Microsoft credentials",
|
|
"Authority endpoint": "Authority endpoint",
|
|
"%d defaults configured": "%d defaults configured",
|
|
"%d events enabled": "%d events enabled",
|
|
"%d origins configured": "%d origins configured",
|
|
"days": "days",
|
|
"Leave empty to use the runtime default title.": "Leave empty to use the runtime default title.",
|
|
"Leave empty to keep the currently stored client secret.": "Leave empty to keep the currently stored client secret.",
|
|
"This setting controls the application name shown across the UI.": "This setting controls the application name shown across the UI.",
|
|
"This setting controls the default language for users without a personal preference.": "This setting controls the default language for users without a personal preference.",
|
|
"These defaults prefill tenant, department and role when new users are created.": "These defaults prefill tenant, department and role when new users are created.",
|
|
"This setting controls the global default theme and whether users may choose their own theme.": "This setting controls the global default theme and whether users may choose their own theme.",
|
|
"This setting controls the primary UI accent color for the default app theme.": "This setting controls the primary UI accent color for the default app theme.",
|
|
"Telemetry helps detect recurring UI issues and failed requests in production.": "Telemetry helps detect recurring UI issues and failed requests in production.",
|
|
"Limit which event types are collected to match your privacy and operations requirements.": "Limit which event types are collected to match your privacy and operations requirements.",
|
|
"These limits define default and maximum lifetimes for newly issued API tokens.": "These limits define default and maximum lifetimes for newly issued API tokens.",
|
|
"Define which origins may call your API from browsers. Use one origin per line.": "Define which origins may call your API from browsers. Use one origin per line.",
|
|
"This action revokes all active API tokens immediately across all users.": "This action revokes all active API tokens immediately across all users.",
|
|
"The authority URL defines the Microsoft identity tenant endpoint used for sign-in.": "The authority URL defines the Microsoft identity tenant endpoint used for sign-in.",
|
|
"This will expire all remember-me tokens immediately and force users to sign in again.": "This will expire all remember-me tokens immediately and force users to sign in again.",
|
|
"Global settings are stored in the database. storage/runtime/settings.php is only a runtime cache for selected app settings.": "Global settings are stored in the database. storage/runtime/settings.php is only a runtime cache for selected app settings.",
|
|
"Create your account": "Create your account",
|
|
"First name": "First name",
|
|
"Name": "Name",
|
|
"Last name": "Last name",
|
|
"Email": "Email",
|
|
"Password (again)": "Password confirm",
|
|
"Password requirements": "Password requirements",
|
|
"At least %d characters": "At least %d characters",
|
|
"At least one uppercase letter": "At least one uppercase letter",
|
|
"At least one lowercase letter": "At least one lowercase letter",
|
|
"At least one number": "At least one number",
|
|
"At least one symbol": "At least one symbol",
|
|
"Must not contain your email": "Must not contain your email",
|
|
"Email/password not valid": "Email or password is invalid",
|
|
"First name cannot be empty": "First name cannot be empty",
|
|
"Last name cannot be empty": "Last name cannot be empty",
|
|
"Email cannot be empty": "Email cannot be empty",
|
|
"Email is not valid": "Email is not valid",
|
|
"Password cannot be empty": "Password cannot be empty",
|
|
"Passwords must match": "Passwords must match",
|
|
"Password must be at least %d characters": "Password must be at least %d characters",
|
|
"Password must include an uppercase letter": "Password must include an uppercase letter",
|
|
"Password must include a lowercase letter": "Password must include a lowercase letter",
|
|
"Password must include a number": "Password must include a number",
|
|
"Password must include a symbol": "Password must include a symbol",
|
|
"Password must not contain your email": "Password must not contain your email",
|
|
"Email is already taken": "Email is already taken",
|
|
"User can not be registered": "User can not be registered",
|
|
"Language not supported": "Language not supported",
|
|
"Language": "Language",
|
|
"Sales": "Sales",
|
|
"Master data": "Master data",
|
|
"Organization": "Organization",
|
|
"Roles & permissions": "Roles & permissions",
|
|
"Permissions": "Permissions",
|
|
"Permission key": "Permission key",
|
|
"Create permission": "Create permission",
|
|
"Edit permission": "Edit permission",
|
|
"View permission": "View permission",
|
|
"Delete this permission?": "Delete this permission?",
|
|
"Permission created": "Permission created",
|
|
"Permission updated": "Permission updated",
|
|
"Permission deleted": "Permission deleted",
|
|
"Permission not found": "Permission not found",
|
|
"Permission can not be created": "Permission can not be created",
|
|
"Permission can not be updated": "Permission can not be updated",
|
|
"Permission key cannot be empty": "Permission key cannot be empty",
|
|
"Permission key is invalid": "Permission key is invalid",
|
|
"Permission key already exists": "Permission key already exists",
|
|
"Assigned permissions": "Assigned permissions",
|
|
"Select permissions": "Select permissions",
|
|
"No permissions available": "No permissions available",
|
|
"No active permissions are configured yet.": "No active permissions are configured yet.",
|
|
"No active roles are configured yet.": "No active roles are configured yet.",
|
|
"Permission denied": "Permission denied",
|
|
"No active tenant assigned": "No active tenant assigned",
|
|
"Please select at least one tenant": "Please select at least one tenant",
|
|
"perm.users.view": "View users",
|
|
"perm.users.create": "Create users",
|
|
"perm.users.update": "Update users",
|
|
"perm.users.access_pdf": "Generate onboarding PDFs",
|
|
"perm.users.delete": "Delete users",
|
|
"perm.users.self_update": "Update own user",
|
|
"perm.users.update_assignments": "Update user assignments",
|
|
"Permission origin": "Permission origin",
|
|
"perm.tenants.view": "View tenants",
|
|
"perm.tenants.create": "Create tenants",
|
|
"perm.tenants.update": "Update tenants",
|
|
"perm.tenants.delete": "Delete tenants",
|
|
"perm.departments.view": "View departments",
|
|
"perm.departments.create": "Create departments",
|
|
"perm.departments.update": "Update departments",
|
|
"perm.departments.delete": "Delete departments",
|
|
"perm.roles.view": "View roles",
|
|
"perm.roles.create": "Create roles",
|
|
"perm.roles.update": "Update roles",
|
|
"perm.roles.delete": "Delete roles",
|
|
"perm.roles.assign_all": "Assign all roles",
|
|
"perm.permissions.view": "View permissions",
|
|
"perm.permissions.create": "Create permissions",
|
|
"perm.permissions.update": "Update permissions",
|
|
"perm.permissions.delete": "Delete permissions",
|
|
"perm.settings.view": "View settings",
|
|
"perm.settings.update": "Update settings",
|
|
"perm.mail_log.view": "View mail logs",
|
|
"perm.jobs.view": "View scheduled jobs",
|
|
"perm.jobs.manage": "Manage scheduled jobs",
|
|
"perm.jobs.run_now": "Run scheduled jobs manually",
|
|
"perm.user_lifecycle_audit.view": "View user lifecycle logs",
|
|
"perm.users.lifecycle_restore": "Restore users from lifecycle audit",
|
|
"Select all": "Select all",
|
|
"Activate": "Activate",
|
|
"Deactivate": "Deactivate",
|
|
"Delete": "Delete",
|
|
"Activate users?": "Activate users?",
|
|
"Deactivate users?": "Deactivate users?",
|
|
"Delete users?": "Delete users?",
|
|
"Send access emails to selected users?": "Send access emails to selected users?",
|
|
"%d users activated": "%d users activated",
|
|
"%d users deactivated": "%d users deactivated",
|
|
"%d users deleted": "%d users deleted",
|
|
"Access emails sent to %d users": "Access emails sent to %d users",
|
|
"Access emails sent to %d users, %f failed": "Access emails sent to %d users, %f failed",
|
|
"Failed to activate users": "Failed to activate users",
|
|
"Failed to deactivate users": "Failed to deactivate users",
|
|
"Failed to delete users": "Failed to delete users",
|
|
"Failed to send access emails": "Failed to send access emails",
|
|
"Home": "Home",
|
|
"Exception": "Exception",
|
|
"An error occurred": "An error occurred",
|
|
"in %s on line %s": "in %s on line %s",
|
|
"Copy request ID": "Copy request ID",
|
|
"Error details": "Error details",
|
|
"Request": "Request",
|
|
"Queries": "Queries",
|
|
"An unexpected error occurred. If the problem persists, please contact support with the reference below.": "An unexpected error occurred. If the problem persists, please contact support with the reference below.",
|
|
"Stack Trace": "Stack Trace",
|
|
"Caused by": "Caused by",
|
|
"URL": "URL",
|
|
"User Agent": "User Agent",
|
|
"Headers": "Headers",
|
|
"GET Parameters": "GET Parameters",
|
|
"POST Parameters": "POST Parameters",
|
|
"Session (keys + types)": "Session (keys + types)",
|
|
"Context": "Context",
|
|
"PHP": "PHP",
|
|
"SAPI": "SAPI",
|
|
"Memory (current)": "Memory (current)",
|
|
"Memory (peak)": "Memory (peak)",
|
|
"Application": "Application",
|
|
"Active Modules": "Active Modules",
|
|
"Loaded Extensions (%d)": "Loaded Extensions (%d)",
|
|
"Query tracking is not available (Debugger disabled or not initialized).": "Query tracking is not available (Debugger disabled or not initialized).",
|
|
"No queries were executed before the error occurred.": "No queries were executed before the error occurred.",
|
|
"Queries (%d)": "Queries (%d)",
|
|
"Bad Request": "Bad Request",
|
|
"Unauthorized": "Unauthorized",
|
|
"Forbidden": "Forbidden",
|
|
"Not Found": "Not Found",
|
|
"Method Not Allowed": "Method Not Allowed",
|
|
"Request Timeout": "Request Timeout",
|
|
"Unprocessable Entity": "Unprocessable Entity",
|
|
"Too Many Requests": "Too Many Requests",
|
|
"Internal Server Error": "Internal Server Error",
|
|
"Bad Gateway": "Bad Gateway",
|
|
"Service Unavailable": "Service Unavailable",
|
|
"Users": "Users",
|
|
"Avatar": "Avatar",
|
|
"Theme": "Theme",
|
|
"Light": "Light",
|
|
"Dark": "Dark",
|
|
"Dark green": "Dark green",
|
|
"Main menu": "Main menu",
|
|
"Toggle Sidebar": "Toggle Sidebar",
|
|
"Toggle Detail Sidebar": "Toggle Detail Sidebar",
|
|
"%d selected": "%d selected",
|
|
"Create user": "Create user",
|
|
"Edit user": "Edit user",
|
|
"View user": "View user",
|
|
"Create": "Create",
|
|
"Create & close": "Create & close",
|
|
"Save": "Save",
|
|
"Save & close": "Save & close",
|
|
"Cancel": "Cancel",
|
|
"Close": "Close",
|
|
"Confirm": "Confirm",
|
|
"Please confirm": "Please confirm",
|
|
"This action cannot be undone.": "This action cannot be undone.",
|
|
"Active": "Active",
|
|
"Actions": "Actions",
|
|
"ID": "ID",
|
|
"Created": "Created",
|
|
"Created by": "Created by",
|
|
"Modified by": "Modified by",
|
|
"Modified": "Modified",
|
|
"Open": "Open",
|
|
"Press Enter to open row": "Press Enter to open row",
|
|
"Retry": "Retry",
|
|
"Yes": "Yes",
|
|
"No": "No",
|
|
"User created": "User created",
|
|
"User updated": "User updated",
|
|
"User deleted": "User deleted",
|
|
"User not found": "User not found",
|
|
"User can not be updated": "User can not be updated",
|
|
"Avatar updated": "Profile image updated",
|
|
"Avatar removed": "Profile image removed",
|
|
"Upload failed": "Upload failed",
|
|
"File is too large": "File is too large",
|
|
"Invalid image file": "Invalid image file",
|
|
"No file uploaded": "No file uploaded",
|
|
"You cannot delete your own account": "You cannot delete your own account",
|
|
"Login required": "Login required",
|
|
"You cannot deactivate your own account": "You cannot deactivate your own account",
|
|
"Welcome back": "Welcome back",
|
|
"New password (optional)": "New password (optional)",
|
|
"Account is inactive": "Account is inactive",
|
|
"Inactive": "Inactive",
|
|
"Filter": "Filter",
|
|
"Apply filters": "Apply filters",
|
|
"Clear all filters": "Clear all filters",
|
|
"Close filters": "Close filters",
|
|
"Remove filter": "Remove filter",
|
|
"Filters applied": "Filters applied",
|
|
"Filter removed": "Filter removed",
|
|
"All filters cleared": "All filters cleared",
|
|
"UUID": "UUID",
|
|
"Profile image": "Profile image",
|
|
"Profile": "Profile",
|
|
"Profile description": "Profile description",
|
|
"Search results": "Search results",
|
|
"Result": "Result",
|
|
"Type": "Type",
|
|
"Page": "Page",
|
|
"Upload image": "Upload image",
|
|
"App logo": "App logo",
|
|
"Upload logo": "Upload logo",
|
|
"Logo updated": "Logo updated",
|
|
"Logo removed": "Logo removed",
|
|
"Allowed file types: SVG, PNG, JPG, WEBP": "Allowed file types: SVG, PNG, JPG, WEBP",
|
|
"Favicon": "Favicon",
|
|
"Upload favicon": "Upload favicon",
|
|
"Favicon updated": "Favicon updated",
|
|
"Favicon removed": "Favicon removed",
|
|
"Allowed file types: PNG": "Allowed file types: PNG",
|
|
"Square images are recommended (icons are center-cropped).": "Square images are recommended (icons are center-cropped).",
|
|
"Primary color": "Primary color",
|
|
"Primary color is invalid": "Primary color is invalid",
|
|
"The primary color affects buttons and accent elements across the app.": "The primary color affects buttons and accent elements across the app.",
|
|
"Export CSV": "Export CSV",
|
|
"Export": "Export",
|
|
"Export as CSV": "Export as CSV",
|
|
"Export for Excel": "Export for Excel",
|
|
"State": "State",
|
|
"Edit": "Edit",
|
|
"Status": "Status",
|
|
"Visibility": "Visibility",
|
|
"Inactive entries are hidden in lists and selections.": "Inactive entries are hidden in lists and selections.",
|
|
"All": "All",
|
|
"Explorer": "Explorer",
|
|
"Search": "Search",
|
|
"Search...": "Search...",
|
|
"Search users, tenants, pages...": "Search users, tenants, pages...",
|
|
"Users, tenants, departments, roles and more": "Users, tenants, departments, roles and more",
|
|
"Searching...": "Searching...",
|
|
"Search failed. Please try again.": "Search failed. Please try again.",
|
|
"No results found": "No results found",
|
|
"View all results": "View all results",
|
|
"navigate": "navigate",
|
|
"open": "open",
|
|
"close": "close",
|
|
"Created from": "Created from",
|
|
"Created to": "Created to",
|
|
"Settings": "Settings",
|
|
"Documentation": "Documentation",
|
|
"Documentation navigation": "Documentation navigation",
|
|
"On this page": "On this page",
|
|
"Getting started": "Getting started",
|
|
"Architecture & rules": "Architecture & rules",
|
|
"Frontend": "Frontend",
|
|
"Features": "Features",
|
|
"API reference": "API reference",
|
|
"Operations": "Operations",
|
|
"Automation & integrations": "Automation & integrations",
|
|
"Logs": "Logs",
|
|
"System": "System",
|
|
"System permission": "System permission",
|
|
"System permission can not be deleted": "System permission can not be deleted",
|
|
"System permissions are core and should rarely be disabled.": "System permissions are core and should rarely be disabled.",
|
|
"Statistics": "Statistics",
|
|
"Active users": "Active users",
|
|
"Inactive users": "Inactive users",
|
|
"Sent emails": "Sent emails",
|
|
"Primary navigation": "Primary navigation",
|
|
"Footer navigation": "Footer navigation",
|
|
"Language switcher": "Language switcher",
|
|
"Sort column ascending": "Sort column ascending",
|
|
"Sort column descending": "Sort column descending",
|
|
"Previous": "Previous",
|
|
"Next": "Next",
|
|
"Navigation": "Navigation",
|
|
"Display": "Display",
|
|
"Session": "Session",
|
|
"Page %d of %d": "Page %d of %d",
|
|
"Page %d": "Page %d",
|
|
"Per page": "Per page",
|
|
"Skip to main content": "Skip to main content",
|
|
"Rows per page": "Rows per page",
|
|
"Showing": "Showing",
|
|
"of": "of",
|
|
"to": "to",
|
|
"results": "results",
|
|
"Loading...": "Loading...",
|
|
"No records found": "No records found",
|
|
"An error happened while fetching the data": "An error happened while fetching the data",
|
|
"Delete this user?": "Delete this user?",
|
|
"Delete user": "Delete user",
|
|
"This will permanently delete this user.": "This will permanently delete this user.",
|
|
"Delete this tenant?": "Delete this tenant?",
|
|
"Delete tenant": "Delete tenant",
|
|
"This will permanently delete this tenant.": "This will permanently delete this tenant.",
|
|
"Tenant": "Tenant",
|
|
"Default tenant": "Default tenant",
|
|
"Default role": "Default role",
|
|
"Default department": "Default department",
|
|
"Default": "Default",
|
|
"Access & password": "Access & password",
|
|
"Security": "Security",
|
|
"Preferences": "Preferences",
|
|
"My account": "My account",
|
|
"None": "None",
|
|
"Settings updated": "Settings updated",
|
|
"setting.default_tenant": "Default tenant used when no tenant is assigned on user creation",
|
|
"setting.default_role": "Default role used when no role is assigned on user creation",
|
|
"setting.default_department": "Default department used when no department is assigned on user creation",
|
|
"setting.app_title": "App title shown in the browser title bar",
|
|
"setting.app_locale": "Default language used when no user or URL locale is set",
|
|
"Default language": "Default language",
|
|
"setting.app_registration": "Allow public self-registration",
|
|
"setting.api_token_default_ttl_days": "Default lifetime for newly created API tokens in days (default: 90)",
|
|
"setting.api_token_max_ttl_days": "Maximum lifetime for API tokens in days (hard cap)",
|
|
"setting.api_cors_allowed_origins": "Allowed browser origins for API CORS (one origin per line)",
|
|
"API token default lifetime (days)": "API token default lifetime (days)",
|
|
"API token maximum lifetime (days)": "API token maximum lifetime (days)",
|
|
"Allowed CORS origins": "Allowed CORS origins",
|
|
"One origin per line, e.g. https://app.example.com": "One origin per line, e.g. https://app.example.com",
|
|
"Default theme": "Default theme",
|
|
"Allow user theme": "Allow user theme",
|
|
"Allow registration": "Allow registration",
|
|
"Appearance": "Appearance",
|
|
"API docs": "API docs",
|
|
"Can view API documentation": "Can view API documentation",
|
|
"Appearance is controlled per tenant. Every tenant carries its own primary color and default theme.": "Appearance is controlled per tenant. Every tenant carries its own primary color and default theme.",
|
|
"Users may choose their own theme": "Users may choose their own theme",
|
|
"Controls whether users in this tenant can override the tenant default with a personal theme preference.": "Controls whether users in this tenant can override the tenant default with a personal theme preference.",
|
|
"The theme used for users in this tenant who have no personal preference.": "The theme used for users in this tenant who have no personal preference.",
|
|
"Inactive tenants are excluded from user access and tenant-scoped data.": "Inactive tenants are excluded from user access and tenant-scoped data.",
|
|
"Status & meta": "Status & meta",
|
|
"Audit": "Audit",
|
|
"Overview": "Overview",
|
|
"Choose color": "Choose color",
|
|
"Code": "Code",
|
|
"Cost center": "Cost center",
|
|
"Department code already exists": "Department code already exists",
|
|
"Role code already exists": "Role code already exists",
|
|
"Internationalization": "Internationalization",
|
|
"User creation rules": "User creation rules",
|
|
"App title": "App title",
|
|
"Tenants": "Tenants",
|
|
"Create tenant": "Create tenant",
|
|
"Edit tenant": "Edit tenant",
|
|
"View tenant": "View tenant",
|
|
"Tenant created": "Tenant created",
|
|
"Tenant updated": "Tenant updated",
|
|
"Tenant deleted": "Tenant deleted",
|
|
"Tenant not found": "Tenant not found",
|
|
"Tenant can not be deleted while departments are assigned": "Tenant can not be deleted while departments are assigned",
|
|
"Tenant can not be created": "Tenant can not be created",
|
|
"Tenant can not be updated": "Tenant can not be updated",
|
|
"Tenant image": "Tenant image",
|
|
"Assigned tenants": "Assigned tenants",
|
|
"Assigned tenant": "Assigned tenant",
|
|
"Primary tenant": "Primary tenant",
|
|
"Select primary tenant": "Select primary tenant",
|
|
"Please select a primary tenant": "Please select a primary tenant",
|
|
"Primary tenant must be one of the assigned tenants": "Primary tenant must be one of the assigned tenants",
|
|
"Department assignments cleaned: %d": "Department assignments cleaned: %d",
|
|
"Select tenants": "Select tenants",
|
|
"Select tenant": "Select tenant",
|
|
"Assigned roles": "Assigned roles",
|
|
"Select roles": "Select roles",
|
|
"Department": "Department",
|
|
"Departments": "Departments",
|
|
"Create department": "Create department",
|
|
"Edit department": "Edit department",
|
|
"View department": "View department",
|
|
"Department created": "Department created",
|
|
"Department updated": "Department updated",
|
|
"Department deleted": "Department deleted",
|
|
"Department not found": "Department not found",
|
|
"Department can not be created": "Department can not be created",
|
|
"Department can not be updated": "Department can not be updated",
|
|
"Department can not be deleted while users are assigned": "Department can not be deleted while users are assigned",
|
|
"Delete this department?": "Delete this department?",
|
|
"Delete department": "Delete department",
|
|
"This will permanently delete this department.": "This will permanently delete this department.",
|
|
"Assigned departments": "Assigned departments",
|
|
"Select departments": "Select departments",
|
|
"Departments for tenant": "Departments for tenant",
|
|
"No departments available for this tenant": "No departments available for this tenant",
|
|
"Assign tenants first to select departments": "Assign tenants first to select departments",
|
|
"No tenants available": "No tenants available",
|
|
"No tenant is available in your current scope.": "No tenant is available in your current scope.",
|
|
"Role": "Role",
|
|
"Roles": "Roles",
|
|
"No roles available": "No roles available",
|
|
"Assignable roles": "Assignable roles",
|
|
"Create role": "Create role",
|
|
"Edit role": "Edit role",
|
|
"View role": "View role",
|
|
"Role created": "Role created",
|
|
"Role updated": "Role updated",
|
|
"Role deleted": "Role deleted",
|
|
"Role not found": "Role not found",
|
|
"Role can not be created": "Role can not be created",
|
|
"Role can not be updated": "Role can not be updated",
|
|
"Delete this role?": "Delete this role?",
|
|
"Delete role": "Delete role",
|
|
"Delete permission": "Delete permission",
|
|
"This will permanently delete this role.": "This will permanently delete this role.",
|
|
"This will permanently delete this permission.": "This will permanently delete this permission.",
|
|
"Description": "Description",
|
|
"Description cannot be empty": "Description cannot be empty",
|
|
"Status is invalid": "Status is invalid",
|
|
"Address": "Address",
|
|
"Postal code": "Postal code",
|
|
"City": "City",
|
|
"Country": "Country",
|
|
"Mail logs": "Mail logs",
|
|
"Mail log": "Mail log",
|
|
"View mail log": "View mail log",
|
|
"Mail log not found": "Mail log not found",
|
|
"Email details": "Email details",
|
|
"Recipient": "Recipient",
|
|
"Subject": "Subject",
|
|
"Template": "Template",
|
|
"Sent": "Sent",
|
|
"Failed": "Failed",
|
|
"Queued": "Queued",
|
|
"Error message": "Error message",
|
|
"Error information": "Error information",
|
|
"Provider message ID": "Provider message ID",
|
|
"Sent at": "Sent at",
|
|
"Created at": "Created at",
|
|
"Delivery information": "Delivery information",
|
|
"All statuses": "All statuses",
|
|
"Contact": "Contact",
|
|
"Support": "Support",
|
|
"Support email": "Support email",
|
|
"Support phone": "Support phone",
|
|
"No contact details available": "No contact details available",
|
|
"VAT ID": "VAT ID",
|
|
"Tax number": "Tax number",
|
|
"Billing email": "Billing email",
|
|
"Phone": "Phone",
|
|
"Website": "Website",
|
|
"Legal": "Legal",
|
|
"No legal links configured": "No legal links configured",
|
|
"Privacy URL": "Privacy URL",
|
|
"Imprint URL": "Imprint URL",
|
|
"Region": "Region",
|
|
"Fax": "Fax",
|
|
"Back": "Back",
|
|
"Access denied": "Access denied",
|
|
"You do not have permission to view this content.": "You do not have permission to view this content.",
|
|
"If you believe this is an error, please contact your system administrator.": "If you believe this is an error, please contact your system administrator.",
|
|
"Requested URL": "Requested URL",
|
|
"Forward": "Forward",
|
|
"Status changed": "Status changed",
|
|
"Status changed by": "Status changed by",
|
|
"Requested path": "Requested path",
|
|
"Page not found": "Page not found",
|
|
"The page you requested does not exist or has moved.": "The page you requested does not exist or has moved.",
|
|
"Back to start": "Back to start",
|
|
"Page updated": "Page updated",
|
|
"Page can not be updated": "Page can not be updated",
|
|
"Content is invalid": "Content is invalid",
|
|
"You are not allowed to edit this page": "You are not allowed to edit this page",
|
|
"Form expired, please try again": "Form expired, please try again",
|
|
"Start writing...": "Start writing...",
|
|
"View": "View",
|
|
"Heading": "Heading",
|
|
"Copy content to": "Copy content to",
|
|
"Existing content in the target language will be overwritten": "Existing content in the target language will be overwritten",
|
|
"Content copied": "Content copied",
|
|
"Target language required": "Target language required",
|
|
"Source content not found": "Source content not found",
|
|
"Employment": "Employment",
|
|
"Job title": "Job title",
|
|
"Hire date": "Hire date",
|
|
"German": "German",
|
|
"English": "English",
|
|
"Switch tenant": "Switch tenant",
|
|
"Copy": "Copy",
|
|
"Registration successful! Please check your email for the verification code.": "Registration successful! Please check your email for the verification code.",
|
|
"Registration is currently disabled": "Registration is currently disabled.",
|
|
"A new verification code has been sent.": "A new verification code has been sent.",
|
|
"Email already verified. Please login.": "Email already verified. Please login.",
|
|
"If the email exists, a new verification code has been sent.": "If the email exists, a new verification code has been sent.",
|
|
"Email verified successfully! Please login.": "Email verified successfully! Please login.",
|
|
"Too many failed attempts. Please request a new code.": "Too many failed attempts. Please request a new code.",
|
|
"Verify email": "Verify email",
|
|
"Enter the verification code we sent to your email to complete your registration.": "Enter the verification code we sent to your email to complete your registration.",
|
|
"Email verified": "Email verified",
|
|
"Not verified": "Not verified",
|
|
"Verified": "Verified",
|
|
"SMTP host": "SMTP host",
|
|
"SMTP port": "SMTP port",
|
|
"SMTP user": "SMTP user",
|
|
"SMTP password": "SMTP password",
|
|
"SMTP security": "SMTP security",
|
|
"SMTP from address": "SMTP from address",
|
|
"SMTP from name": "SMTP from name",
|
|
"Mobile": "Mobile",
|
|
"Short dial": "Short dial",
|
|
"setting.smtp_host": "SMTP server host (e.g. smtp.example.com)",
|
|
"setting.smtp_port": "SMTP port (e.g. 587)",
|
|
"setting.smtp_user": "SMTP username",
|
|
"setting.smtp_password": "Leave empty to keep the existing password",
|
|
"setting.smtp_secure": "SMTP encryption method",
|
|
"setting.smtp_from": "From address for outgoing emails",
|
|
"setting.smtp_from_name": "From name for outgoing emails",
|
|
"High contrast": "High contrast",
|
|
"Toggle contrast": "Toggle contrast",
|
|
"Email security": "Email security",
|
|
"API": "API",
|
|
"API requests (24h)": "API requests (24h)",
|
|
"Request trend vs previous 24h": "Request trend vs previous 24h",
|
|
"4xx errors (24h)": "4xx errors (24h)",
|
|
"5xx errors (24h)": "5xx errors (24h)",
|
|
"P95 response time (ms)": "P95 response time (ms)",
|
|
"Tokens expiring in 7 days": "Tokens expiring in 7 days",
|
|
"Top API error codes (24h)": "Top API error codes (24h)",
|
|
"Slowest API endpoints (avg, 24h)": "Slowest API endpoints (avg, 24h)",
|
|
"Import runs (7d)": "Import runs (7d)",
|
|
"Created rows (7d)": "Created rows (7d)",
|
|
"Failed rows (7d)": "Failed rows (7d)",
|
|
"Success rate (7d)": "Success rate (7d)",
|
|
"Recent import runs": "Recent import runs",
|
|
"Imports by profile (7d)": "Imports by profile (7d)",
|
|
"Top import error codes (7d)": "Top import error codes (7d)",
|
|
"Runs": "Runs",
|
|
"Created rows": "Created rows",
|
|
"Failed rows": "Failed rows",
|
|
"Success rate": "Success rate",
|
|
"Requests": "Requests",
|
|
"Average duration (ms)": "Average duration (ms)",
|
|
"Maximum duration (ms)": "Maximum duration (ms)",
|
|
"Error": "Error",
|
|
"Active tenants": "Active tenants",
|
|
"Inactive tenants": "Inactive tenants",
|
|
"Active departments": "Active departments",
|
|
"Inactive departments": "Inactive departments",
|
|
"Active roles": "Active roles",
|
|
"Inactive roles": "Inactive roles",
|
|
"Roles without permissions": "Roles without permissions",
|
|
"Permissions without roles": "Permissions without roles",
|
|
"Users without roles": "Users without roles",
|
|
"Users without tenants": "Users without tenants",
|
|
"Mail failures": "Mail failures",
|
|
"Last email sent": "Last email sent",
|
|
"Never": "Never",
|
|
"Recent logins": "Recent logins",
|
|
"Never logged in": "Never logged in",
|
|
"Last login": "Last login",
|
|
"Last login via": "Last login via",
|
|
"Local": "Local",
|
|
"Microsoft": "Microsoft",
|
|
"Unknown": "Unknown",
|
|
"User": "User",
|
|
"No entries found": "No entries found",
|
|
"Login status": "Login status",
|
|
"Logged in": "Logged in",
|
|
"Email unverified": "Email unverified",
|
|
"Password resets": "Password resets",
|
|
"No password reset requests": "No password reset requests",
|
|
"No reset has been requested for this account yet.": "No reset has been requested for this account yet.",
|
|
"Requested at": "Requested at",
|
|
"Expires at": "Expires at",
|
|
"Used at": "Used at",
|
|
"Attempts": "Attempts",
|
|
"Used": "Used",
|
|
"Expired": "Expired",
|
|
"Expired by admin": "Expired by admin",
|
|
"Login tokens": "Login tokens",
|
|
"No login tokens": "No login tokens",
|
|
"This user is currently not signed in via remember-me.": "This user is currently not signed in via remember-me.",
|
|
"Expire all login tokens": "Expire all login tokens",
|
|
"Expire all login tokens?": "Expire all login tokens?",
|
|
"%d active login tokens": "%d active login tokens",
|
|
"%d login tokens expired": "%d login tokens expired",
|
|
"Danger zone": "Danger zone",
|
|
"This will mark all remember-me tokens as expired. Users will need to sign in again.": "This will mark all remember-me tokens as expired. Users will need to sign in again.",
|
|
"Last used": "Last used",
|
|
"Keyboard shortcuts": "Keyboard shortcuts",
|
|
"Open search": "Open search",
|
|
"Save in edit pages": "Save in edit pages",
|
|
"Unsaved changes": "Unsaved changes",
|
|
"Unsaved change (%d field)": "Unsaved change (%d field)",
|
|
"Unsaved changes (%d fields)": "Unsaved changes (%d fields)",
|
|
"Please review the following errors": "Please review the following errors",
|
|
"You have unsaved changes. Leave without saving?": "You have unsaved changes. Leave without saving?",
|
|
"Switch sidebar section": "Switch sidebar section",
|
|
"Action": "Action",
|
|
"Mac": "Mac",
|
|
"Windows": "Windows",
|
|
"Email verification code": "Email verification code",
|
|
"Failed to switch tenant": "Failed to switch tenant",
|
|
"IDs": "IDs",
|
|
"Pages": "Pages",
|
|
"Permission": "Permission",
|
|
"No effective permissions": "No effective permissions",
|
|
"Assign at least one role to show effective permissions.": "Assign at least one role to show effective permissions.",
|
|
"Please verify your email first": "Please verify your email first",
|
|
"Toggle sidebar": "Toggle sidebar",
|
|
"Unverified": "Unverified",
|
|
"Imprint": "Imprint",
|
|
"Privacy": "Privacy",
|
|
"Terms of Service": "Terms of Service",
|
|
"Custom fields": "Custom fields",
|
|
"User custom fields": "User custom fields",
|
|
"Affected tenants": "Affected tenants",
|
|
"If a tenant appears here, at least one custom field setup needs review (missing options, inactive fields with values, or unused active fields).": "If a tenant appears here, at least one custom field setup needs review (missing options, inactive fields with values, or unused active fields).",
|
|
"Issue": "Issue",
|
|
"Count": "Count",
|
|
"Selection fields without options": "Selection fields without options",
|
|
"Tenants with broken selection fields": "Tenants with broken selection fields",
|
|
"Inactive custom fields with values": "Inactive custom fields with values",
|
|
"Unused active custom fields": "Unused active custom fields",
|
|
"Save tenant first to manage custom fields": "Save tenant first to manage custom fields",
|
|
"Define custom fields here. They appear per user in the \"Custom fields\" tab and can be maintained there.": "Define custom fields here. They appear per user in the \"Custom fields\" tab and can be maintained there.",
|
|
"Add custom field": "Add custom field",
|
|
"The label is shown in user custom fields and in address book filters.": "The label is shown in user custom fields and in address book filters.",
|
|
"The field type controls input and filter behavior.": "The field type controls input and filter behavior.",
|
|
"Field type": "Field type",
|
|
"Text": "Text",
|
|
"Textarea": "Textarea",
|
|
"Select": "Select",
|
|
"Multiselect": "Multiselect",
|
|
"Boolean": "Boolean",
|
|
"Date": "Date",
|
|
"Filterable": "Filterable",
|
|
"Options (one per line)": "Options (one per line)",
|
|
"Example: manager|Manager": "Example: manager|Manager",
|
|
"One option per line. Optional format: key|Label.": "One option per line. Optional format: key|Label.",
|
|
"No custom fields configured yet": "No custom fields configured yet",
|
|
"Delete custom field": "Delete custom field",
|
|
"Custom field saved": "Custom field saved",
|
|
"Custom field deleted": "Custom field deleted",
|
|
"Custom field can not be created": "Custom field can not be created",
|
|
"Custom field can not be updated": "Custom field can not be updated",
|
|
"Custom field can not be deleted": "Custom field can not be deleted",
|
|
"Custom field values can not be saved": "Custom field values can not be saved",
|
|
"Custom field not found": "Custom field not found",
|
|
"Label cannot be empty": "Label cannot be empty",
|
|
"Field key cannot be empty": "Field key cannot be empty",
|
|
"Field type is invalid": "Field type is invalid",
|
|
"Field key already exists": "Field key already exists",
|
|
"Options are required for this field type": "Options are required for this field type",
|
|
"Assign tenants first to edit custom fields": "Assign tenants first to edit custom fields",
|
|
"Custom fields for tenant": "Custom fields for tenant",
|
|
"No custom fields configured for this tenant": "No custom fields configured for this tenant",
|
|
"No custom fields configured for selected tenants": "No custom fields configured for selected tenants",
|
|
"Select options": "Select options",
|
|
"Invalid value for %s": "Invalid value for %s",
|
|
"Please select": "Please select",
|
|
"perm.custom_fields.manage": "Manage tenant custom fields",
|
|
"perm.custom_fields.edit_values": "Edit user custom field values",
|
|
"Label": "Label",
|
|
"Required": "Required",
|
|
"Filterable fields are available in address book filters.": "Filterable fields are available in address book filters.",
|
|
"Inactive fields are hidden in forms and filters.": "Inactive fields are hidden in forms and filters.",
|
|
"Default theme is invalid": "Default theme is invalid",
|
|
"Theme change is disabled for this tenant": "Theme change is disabled for this tenant",
|
|
"Controls whether users in this tenant can choose their own theme.": "Controls whether users in this tenant can choose their own theme.",
|
|
"Tenants can override color and theme behavior in their appearance settings.": "Tenants can override color and theme behavior in their appearance settings.",
|
|
"User theme policy": "User theme policy",
|
|
"APP_CRYPTO_KEY is missing or invalid": "APP_CRYPTO_KEY is missing or invalid",
|
|
"Allowed email domains": "Allowed email domains",
|
|
"Authority URL": "Authority URL",
|
|
"Clear override secret": "Clear override secret",
|
|
"Client ID override": "Client ID override",
|
|
"Client ID override is required": "Client ID override is required",
|
|
"Client secret could not be encrypted": "Client secret could not be encrypted",
|
|
"Client secret override": "Client secret override",
|
|
"Client secret override is required": "Client secret override is required",
|
|
"Enable Microsoft login for this tenant": "Enable Microsoft login for this tenant",
|
|
"Entra tenant ID (tid)": "Entra tenant ID (tid)",
|
|
"Entra tenant ID is invalid": "Entra tenant ID is invalid",
|
|
"Microsoft SSO": "Microsoft SSO",
|
|
"Microsoft login": "Microsoft login",
|
|
"Microsoft login could not be started": "Microsoft login could not be started",
|
|
"Microsoft login failed": "Microsoft login failed",
|
|
"Microsoft login is not allowed for this account": "Microsoft login is not allowed for this account",
|
|
"Microsoft login is not available for this tenant": "Microsoft login is not available for this tenant",
|
|
"Microsoft login was cancelled or failed": "Microsoft login was cancelled or failed",
|
|
"Microsoft-only login requires a complete configuration": "Microsoft-only login requires a complete configuration",
|
|
"No access to this tenant": "No access to this tenant",
|
|
"Shared credentials missing": "Shared credentials missing",
|
|
"Optional allow-list, comma or newline separated (example.com).": "Optional allow-list, comma or newline separated (example.com).",
|
|
"Password login is disabled for this tenant. Please use Microsoft login.": "Password login is disabled for this tenant. Please use Microsoft login.",
|
|
"Password login is disabled for all assigned tenants": "Password login is disabled for all assigned tenants",
|
|
"Password login mode": "Password login mode",
|
|
"Local password only": "Local password only",
|
|
"Local password + Microsoft": "Local password + Microsoft",
|
|
"Credentials source": "Credentials source",
|
|
"Shared app": "Shared app",
|
|
"Tenant override": "Tenant override",
|
|
"SSO configuration status": "SSO configuration status",
|
|
"Configuration complete": "Configuration complete",
|
|
"Required Microsoft configuration": "Required Microsoft configuration",
|
|
"Required for Microsoft login.": "Required for Microsoft login.",
|
|
"SSO": "SSO",
|
|
"Shared Microsoft app credentials are used by tenants that enable \"Use shared app credentials\".": "Shared Microsoft app credentials are used by tenants that enable \"Use shared app credentials\".",
|
|
"Shared client ID": "Shared client ID",
|
|
"Shared client secret": "Shared client secret",
|
|
"Sign in with Microsoft": "Sign in with Microsoft",
|
|
"Tenant SSO settings could not be saved": "Tenant SSO settings could not be saved",
|
|
"Tenant login link is invalid": "Tenant login link is invalid",
|
|
"Profile sync on Microsoft login": "Profile sync on Microsoft login",
|
|
"Sync fields": "Sync fields",
|
|
"Sync first name": "Sync first name",
|
|
"Sync last name": "Sync last name",
|
|
"Sync display name": "Sync display name",
|
|
"Sync job title": "Sync job title",
|
|
"Sync phone": "Sync phone",
|
|
"Sync mobile": "Sync mobile",
|
|
"Sync avatar image": "Sync avatar image",
|
|
"User profile fields are global and affect all tenants of this user": "User profile fields are global and affect all tenants of this user",
|
|
"Phone/mobile/avatar sync requires Microsoft Graph (User.Read)": "Phone/mobile/avatar sync requires Microsoft Graph (User.Read)",
|
|
"SSO-enabled tenants": "SSO-enabled tenants",
|
|
"SSO-enforced tenants": "SSO-enforced tenants",
|
|
"SSO rollout": "SSO rollout",
|
|
"Users with Microsoft-only login": "Users with Microsoft-only login",
|
|
"Microsoft profile sync gaps": "Microsoft profile sync gaps",
|
|
"Microsoft only": "Microsoft only",
|
|
"Use shared app credentials from settings": "Use shared app credentials from settings",
|
|
"Override only if this tenant needs a separate Entra app.": "Override only if this tenant needs a separate Entra app.",
|
|
"Write-only. Leave empty to keep current secret.": "Write-only. Leave empty to keep current secret.",
|
|
"Client secret override is invalid": "Client secret override is invalid",
|
|
"Client credentials are missing": "Client credentials are missing",
|
|
"setting.microsoft_shared_client_id": "Setting key for shared Microsoft client ID",
|
|
"setting.microsoft_shared_client_secret_enc": "Setting key for shared Microsoft client secret (encrypted)",
|
|
"setting.microsoft_authority": "Base OpenID authority URL for Microsoft login",
|
|
"API tokens": "API tokens",
|
|
"Token name": "Token name",
|
|
"Create API token": "Create API token",
|
|
"Revoke": "Revoke",
|
|
"Revoke this API token?": "Revoke this API token?",
|
|
"Revoked": "Revoked",
|
|
"Prefix": "Prefix",
|
|
"No API tokens": "No API tokens",
|
|
"Create a token to enable API access for this user.": "Create a token to enable API access for this user.",
|
|
"No API token has been created for this user yet.": "No API token has been created for this user yet.",
|
|
"New API token (copy now — shown only once):": "New API token (copy now — shown only once):",
|
|
"API token created. Copy it now — it will not be shown again.": "API token created. Copy it now — it will not be shown again.",
|
|
"Could not create API token: %s": "Could not create API token: %s",
|
|
"API token revoked": "API token revoked",
|
|
"%d API tokens revoked": "%d API tokens revoked",
|
|
"%d active API tokens": "%d active API tokens",
|
|
"Revoke all API tokens": "Revoke all API tokens",
|
|
"Revoke all API tokens?": "Revoke all API tokens?",
|
|
"API token default lifetime is invalid": "API token default lifetime is invalid",
|
|
"API token max lifetime is invalid": "API token max lifetime is invalid",
|
|
"nav.logs.mail": "E-mail",
|
|
"nav.audit.api": "API",
|
|
"nav.audit.system": "System",
|
|
"nav.audit.imports": "Imports",
|
|
"nav.audit.user_lifecycle": "User lifecycle",
|
|
"API audit": "API logs",
|
|
"API audit logs": "API logs",
|
|
"Request ID": "Request ID",
|
|
"Method": "Method",
|
|
"Path": "Path",
|
|
"Status code": "Status code",
|
|
"Duration (ms)": "Duration (ms)",
|
|
"Error code": "Error code",
|
|
"Token ID": "Token ID",
|
|
"Token tenant": "Token tenant",
|
|
"Purge API audit logs": "Purge API logs",
|
|
"Purge entries older than 90 days?": "Purge entries older than 90 days?",
|
|
"%d API audit entries purged": "%d API log entries purged",
|
|
"API audit entry not found": "API log entry not found",
|
|
"View API audit entry": "View API log entry",
|
|
"Request details": "Request details",
|
|
"Scope": "Scope",
|
|
"Query metadata (keys)": "Query metadata (keys)",
|
|
"All methods": "All methods",
|
|
"Tenant ID": "Tenant ID",
|
|
"User ID": "User ID",
|
|
"IP": "IP",
|
|
"CORS allowed origins are invalid": "CORS allowed origins are invalid",
|
|
"Token name is required": "Token name is required",
|
|
"e.g. CI Pipeline": "e.g. CI Pipeline",
|
|
"Imports": "Imports",
|
|
"You do not have permission to run imports.": "You do not have permission to run imports.",
|
|
"CSV file": "CSV file",
|
|
"Max size 10MB, max 20000 rows": "Max size 10MB, max 20000 rows",
|
|
"Download sample CSV": "Download sample CSV",
|
|
"Analyze file": "Analyze file",
|
|
"CSV header": "CSV header",
|
|
"Target field": "Target field",
|
|
"Ignore column": "Ignore column",
|
|
"Assignment columns require additional permission.": "Assignment columns require additional permission.",
|
|
"Run preview": "Run preview",
|
|
"Preview": "Preview",
|
|
"Rows total": "Rows total",
|
|
"Valid rows": "Valid rows",
|
|
"Would create": "Would create",
|
|
"Would skip": "Would skip",
|
|
"Would fail": "Would fail",
|
|
"Row issues": "Row issues",
|
|
"Start import": "Start import",
|
|
"Import finished": "Import finished",
|
|
"Processed": "Processed",
|
|
"Skipped": "Skipped",
|
|
"Import another file": "Import another file",
|
|
"No row errors found": "No row errors found",
|
|
"Row": "Row",
|
|
"Message": "Message",
|
|
"No upload file provided": "No upload file provided",
|
|
"Upload exceeds the maximum size": "Upload exceeds the maximum size",
|
|
"Invalid file type": "Invalid file type",
|
|
"CSV header is invalid": "CSV header is invalid",
|
|
"CSV file has no data rows": "CSV file has no data rows",
|
|
"CSV row limit exceeded": "CSV row limit exceeded",
|
|
"Required mapping is missing": "Required mapping is missing",
|
|
"Assignment import permission is required": "Assignment import permission is required",
|
|
"Email is invalid": "Email is invalid",
|
|
"Email already exists": "Email already exists",
|
|
"Locale is invalid": "Locale is invalid",
|
|
"Active value is invalid": "Active value is invalid",
|
|
"Hire date must be YYYY-MM-DD": "Hire date must be YYYY-MM-DD",
|
|
"Tenant is missing, inactive or invalid": "Tenant is missing, inactive or invalid",
|
|
"Role is missing, inactive or invalid": "Role is missing, inactive or invalid",
|
|
"Department is missing, inactive or invalid": "Department is missing, inactive or invalid",
|
|
"Department does not belong to tenant": "Department does not belong to tenant",
|
|
"Tenant assignment is out of your scope": "Tenant assignment is out of your scope",
|
|
"Unexpected error during import": "Unexpected error during import",
|
|
"Required field is empty: first_name": "Required field is empty: first_name",
|
|
"Required field is empty: last_name": "Required field is empty: last_name",
|
|
"User assignments can not be updated": "User assignments can not be updated",
|
|
"How the import works": "How the import works",
|
|
"1. Upload CSV and click analyze": "1. Upload CSV and click analyze",
|
|
"2. Map your CSV columns to system fields": "2. Map your CSV columns to system fields",
|
|
"3. Review preview counters and row errors": "3. Review preview counters and row errors",
|
|
"4. Start import for valid rows": "4. Start import for valid rows",
|
|
"Rules": "Rules",
|
|
"Create-only: existing entries are skipped": "Create-only: existing entries are skipped",
|
|
"Here is a CSV template for this import profile.": "Here is a CSV template for this import profile.",
|
|
"Reference": "Reference",
|
|
"Required fields": "Required fields",
|
|
"Required field is empty: description": "Required field is empty: description",
|
|
"Tenant must be a valid UUID": "Tenant must be a valid UUID",
|
|
"Code already exists": "Code already exists",
|
|
"Department already exists for this tenant": "Department already exists for this tenant",
|
|
"Duplicate entry in CSV file": "Duplicate entry in CSV file",
|
|
"Entry could not be created": "Entry could not be created",
|
|
"Import logs": "Import logs",
|
|
"Import audit logs": "Import audit logs",
|
|
"Run UUID": "Run UUID",
|
|
"Mapped fields": "Mapped fields",
|
|
"Created count": "Created count",
|
|
"Skipped count": "Skipped count",
|
|
"Failed count": "Failed count",
|
|
"Purge import logs": "Purge import logs",
|
|
"%d import audit entries purged": "%d import audit entries purged",
|
|
"Import audit entry not found": "Import audit entry not found",
|
|
"View import audit entry": "View import audit entry",
|
|
"Import details": "Import details",
|
|
"Started": "Started",
|
|
"Finished": "Finished",
|
|
"File": "File",
|
|
"Current tenant": "Current tenant",
|
|
"Error code distribution": "Error code distribution",
|
|
"All profiles": "All profiles",
|
|
"Running": "Running",
|
|
"Success": "Success",
|
|
"Partial": "Partial",
|
|
"Import": "Import",
|
|
"Counters": "Counters",
|
|
"User lifecycle policy": "User lifecycle policy",
|
|
"Session policy": "Session policy",
|
|
"Registration controls whether new users can create an account.": "Registration controls whether new users can create an account.",
|
|
"Session limits define how long logged-in users stay signed in.": "Set idle and absolute limits for active sessions.",
|
|
"User lifecycle defines when inactive users are deactivated or deleted.": "User lifecycle defines when inactive users are deactivated or deleted.",
|
|
"System audit controls whether security events are logged and how long they are kept.": "System audit controls whether security events are logged and how long they are kept.",
|
|
"Session idle timeout (minutes)": "Session idle timeout (minutes)",
|
|
"Session absolute timeout (hours)": "Session absolute timeout (hours)",
|
|
"Allowed range: 5-1440 minutes (default: 30)": "Allowed range: 5-1440 minutes (default: 30)",
|
|
"Allowed range: 1-72 hours (default: 8)": "Allowed range: 1-72 hours (default: 8)",
|
|
"Deactivate users after inactivity (days)": "Deactivate users after inactivity (days)",
|
|
"Delete inactive users after (days)": "Delete inactive users after (days)",
|
|
"0 disables this rule": "0 disables this rule",
|
|
"Run user lifecycle now?": "Run user lifecycle now?",
|
|
"Run user lifecycle now": "Run user lifecycle now",
|
|
"setting.user_inactivity_deactivate_days": "Automatically set users inactive after this many days without login",
|
|
"setting.user_inactivity_delete_days": "Automatically delete inactive users after this many additional days",
|
|
"setting.session_idle_timeout_minutes": "Maximum idle time in minutes before users are signed out (default: 30)",
|
|
"setting.session_absolute_timeout_hours": "Maximum total session duration in hours before users are signed out (default: 8)",
|
|
"User lifecycle already running": "User lifecycle already running",
|
|
"User lifecycle failed": "User lifecycle failed",
|
|
"User lifecycle completed: %d deactivated, %d deleted": "User lifecycle completed: %d deactivated, %d deleted",
|
|
"User inactivity deactivation period is invalid": "User inactivity deactivation period is invalid",
|
|
"User inactivity deletion period is invalid": "User inactivity deletion period is invalid",
|
|
"Session idle timeout is invalid": "Session idle timeout is invalid",
|
|
"Session absolute timeout is invalid": "Session absolute timeout is invalid",
|
|
"Auto-delete is ignored while auto-deactivate is disabled": "Auto-delete is ignored while auto-deactivate is disabled",
|
|
"Scheduled jobs": "Scheduled jobs",
|
|
"Scheduled job not found": "Scheduled job not found",
|
|
"Scheduled job is not registered": "Scheduled job is not registered",
|
|
"This scheduled job is no longer registered and cannot be edited. It has been superseded by a newer version.": "This scheduled job is no longer registered and cannot be edited. It has been superseded by a newer version.",
|
|
"Scheduled job could not be saved": "Scheduled job could not be saved",
|
|
"Scheduled job saved": "Scheduled job saved",
|
|
"Edit scheduled job": "Edit scheduled job",
|
|
"View scheduled job": "View scheduled job",
|
|
"Job": "Job",
|
|
"Job key": "Job key",
|
|
"Run history": "Run history",
|
|
"Run now": "Run now",
|
|
"Next run": "Next run",
|
|
"Last run": "Last run",
|
|
"Last error": "Last error",
|
|
"Schedule": "Schedule",
|
|
"Schedule type": "Schedule type",
|
|
"Schedule interval": "Schedule interval",
|
|
"Schedule time": "Schedule time",
|
|
"Weekdays": "Weekdays",
|
|
"Hourly": "Hourly",
|
|
"Daily": "Daily",
|
|
"Weekly": "Weekly",
|
|
"Enabled": "Enabled",
|
|
"Disabled": "Disabled",
|
|
"Timezone": "Timezone",
|
|
"Catch up once": "Catch up once",
|
|
"Scheduler": "Scheduler",
|
|
"Every %d hour(s)": "Every %d hour(s)",
|
|
"Every %d day(s) at %s": "Every %d day(s) at %s",
|
|
"Every %d week(s) on %s at %s": "Every %d week(s) on %s at %s",
|
|
"No weekdays": "No weekdays",
|
|
"Mon": "Mon",
|
|
"Tue": "Tue",
|
|
"Wed": "Wed",
|
|
"Thu": "Thu",
|
|
"Fri": "Fri",
|
|
"Sat": "Sat",
|
|
"Sun": "Sun",
|
|
"Schedule type is invalid": "Schedule type is invalid",
|
|
"Schedule time is required": "Schedule time is required",
|
|
"Timezone is invalid": "Timezone is invalid",
|
|
"Hourly interval must be between 1 and 24": "Hourly interval must be between 1 and 24",
|
|
"Daily interval must be between 1 and 365": "Daily interval must be between 1 and 365",
|
|
"Weekly interval must be between 1 and 52": "Weekly interval must be between 1 and 52",
|
|
"At least one weekday is required for weekly schedule": "At least one weekday is required for weekly schedule",
|
|
"Scheduled job run completed": "Scheduled job run completed",
|
|
"Scheduled job run skipped": "Scheduled job run skipped",
|
|
"Scheduled job run failed": "Scheduled job run failed",
|
|
"Scheduler is already running": "Scheduler is already running",
|
|
"Purge scheduler logs": "Purge scheduler logs",
|
|
"Purge run logs older than 90 days?": "Purge run logs older than 90 days?",
|
|
"%d scheduler run logs purged": "%d scheduler run logs purged",
|
|
"User lifecycle logs": "User lifecycle logs",
|
|
"View user lifecycle audit entry": "View user lifecycle audit entry",
|
|
"Lifecycle audit entry not found": "Lifecycle audit entry not found",
|
|
"Purge user lifecycle logs": "Purge user lifecycle logs",
|
|
"Purge entries older than 365 days?": "Purge entries older than 365 days?",
|
|
"%d user lifecycle audit entries purged": "%d user lifecycle audit entries purged",
|
|
"Lifecycle event": "Lifecycle event",
|
|
"Trigger": "Trigger",
|
|
"Reason code": "Reason code",
|
|
"Target": "Target",
|
|
"Target UUID": "Target UUID",
|
|
"Target email": "Target email",
|
|
"Policy": "Policy",
|
|
"Snapshot summary": "Snapshot summary",
|
|
"Snapshot version": "Snapshot version",
|
|
"Restore status": "Restore status",
|
|
"Restored at": "Restored at",
|
|
"Restored by": "Restored by",
|
|
"Restored user": "Restored user",
|
|
"Restore user": "Restore user",
|
|
"Restore": "Restore",
|
|
"Restore this user from lifecycle snapshot?": "Restore this user from lifecycle snapshot?",
|
|
"User restored": "User restored",
|
|
"User restore failed": "User restore failed",
|
|
"Lifecycle event was already restored": "Lifecycle event was already restored",
|
|
"Lifecycle snapshot unavailable": "Lifecycle snapshot unavailable",
|
|
"Restore not possible: email already exists": "Restore not possible: email already exists",
|
|
"Restore not possible: uuid already exists": "Restore not possible: uuid already exists",
|
|
"All triggers": "All triggers",
|
|
"Manual": "Manual",
|
|
"Cron": "Cron",
|
|
"Enabled jobs": "Enabled jobs",
|
|
"Overdue jobs": "Overdue jobs",
|
|
"Scheduler runs (24h)": "Scheduler runs (24h)",
|
|
"Failed scheduler runs (24h)": "Failed scheduler runs (24h)",
|
|
"Cron runner active": "Cron runner active",
|
|
"Last heartbeat": "Last heartbeat",
|
|
"Last runner result": "Last runner result",
|
|
"Runner lock not acquired": "Runner lock not acquired",
|
|
"Locale": "Locale",
|
|
"Learning path": "Learning path",
|
|
"Concepts": "Concepts",
|
|
"How-to guides": "How-to guides",
|
|
"Contributor guide": "Contributor guide",
|
|
"System audit": "System audit",
|
|
"System audit logs": "System audit logs",
|
|
"View system audit entry": "View system audit entry",
|
|
"System audit entry not found": "System audit entry not found",
|
|
"Enable system audit log": "Enable system audit log",
|
|
"Purge system audit logs": "Purge system audit logs",
|
|
"Purge expired system audit entries?": "Purge expired system audit entries?",
|
|
"%d system audit entries purged": "%d system audit entries purged",
|
|
"All outcomes": "All outcomes",
|
|
"All channels": "All channels",
|
|
"Event type": "Event type",
|
|
"Outcome": "Outcome",
|
|
"Actor": "Actor",
|
|
"Actor tenant": "Actor tenant",
|
|
"Event details": "Event details",
|
|
"Target type": "Target type",
|
|
"IP hash": "IP hash",
|
|
"User agent hash": "User agent hash",
|
|
"Channel": "Channel",
|
|
"Denied": "Denied",
|
|
"Event": "Event",
|
|
"Metadata": "Metadata",
|
|
"Select users": "Select users",
|
|
"Select actions": "Select actions",
|
|
"Select statuses": "Select statuses",
|
|
"Select triggers": "Select triggers",
|
|
"Tenant #%d": "Tenant #%d",
|
|
"Tenant #%d (deleted)": "Tenant #%d (deleted)",
|
|
"Select event types": "Select event types",
|
|
"Select actor users": "Select actor users",
|
|
"User #%d": "User #%d",
|
|
"User #%d (deleted)": "User #%d (deleted)",
|
|
"Retention (days)": "Retention (days)",
|
|
"Frontend telemetry": "Frontend telemetry",
|
|
"Enable frontend telemetry": "Enable frontend telemetry",
|
|
"Sampling rate": "Sampling rate",
|
|
"Allowed telemetry events": "Allowed telemetry events",
|
|
"warnOnce warnings": "warnOnce warnings",
|
|
"AJAX errors": "AJAX errors",
|
|
"The percentage of users who will have telemetry enabled.": "The percentage of users who will have telemetry enabled.",
|
|
"Advanced telemetry options": "Advanced telemetry options",
|
|
"setting.system_audit_enabled": "Enable/disable system audit logging",
|
|
"setting.system_audit_retention_days": "Retention in days for system audit entries",
|
|
"setting.frontend_telemetry_enabled": "Enable/disable secure frontend UX and error telemetry",
|
|
"setting.frontend_telemetry_sample_rate": "Sampling rate between 0 and 1 for accepted frontend telemetry events",
|
|
"setting.frontend_telemetry_allowed_events": "Allowed frontend telemetry event groups (warn_once, ajax_error)",
|
|
"System audit events (24h)": "System audit events (24h)",
|
|
"System audit risks (24h)": "System audit risks (24h)",
|
|
"Failed or denied": "Failed or denied",
|
|
"Recent system audit risks (24h)": "Recent system audit risks (24h)",
|
|
"Lifecycle runs (7d)": "Lifecycle runs (7d)",
|
|
"Lifecycle risks (7d)": "Lifecycle risks (7d)",
|
|
"Restore actions (7d)": "Restore actions (7d)",
|
|
"Recent lifecycle risks (7d)": "Recent lifecycle risks (7d)",
|
|
"Your session has expired. Please log in again.": "Your session timed out. Please sign in again. If you chose Remember me, sign-in can happen automatically.",
|
|
"Failed to update role permissions": "Failed to update role permissions",
|
|
"Failed to update permission roles": "Failed to update permission roles",
|
|
"Login persistence": "Login persistence",
|
|
"Controls remember-me token lifetime and Microsoft auto-remember behavior.": "Controls remember-me token lifetime and Microsoft auto-remember behavior.",
|
|
"Remember token lifetime (days)": "Remember token lifetime (days)",
|
|
"Allowed range: 1-365 days (default: 30)": "Allowed range: 1-365 days (default: 30)",
|
|
"Microsoft Auto-Remember default": "Microsoft Auto-Remember default",
|
|
"When enabled, successful Microsoft logins automatically persist a remember-me token (unless overridden per tenant).": "When enabled, successful Microsoft logins automatically persist a remember-me token (unless overridden per tenant).",
|
|
"Inherit global default": "Inherit global default",
|
|
"Force on": "Force on",
|
|
"Force off": "Force off",
|
|
"Controls whether Microsoft logins automatically persist a remember-me token.": "Controls whether Microsoft logins automatically persist a remember-me token.",
|
|
"Complete": "Complete",
|
|
"Incomplete": "Incomplete",
|
|
"No domain restrictions": "No domain restrictions",
|
|
"Configuration status": "Configuration status",
|
|
"SSO setup is incomplete": "SSO setup is incomplete",
|
|
"Complete the required Microsoft configuration before enforcing Microsoft-only login.": "Complete the required Microsoft configuration before enforcing Microsoft-only login.",
|
|
"Login policy": "Login policy",
|
|
"Allow Microsoft-only login (disable local password login)": "Allow Microsoft-only login (disable local password login)",
|
|
"Remember login after Microsoft sign-in": "Remember login after Microsoft sign-in",
|
|
"Access and profile sync": "Access and profile sync",
|
|
"Profile sync": "Profile sync",
|
|
"App credentials (advanced)": "App credentials (advanced)",
|
|
"Remember token lifetime is invalid": "Remember token lifetime is invalid",
|
|
"Session expiring": "Session expiring",
|
|
"Your session will expire in {countdown}. Would you like to continue?": "Your session will expire in {countdown}. Would you like to continue?",
|
|
"Extend session": "Extend session",
|
|
"Log out": "Log out",
|
|
"System Info": "System Info",
|
|
"Health Status": "Health Status",
|
|
"Check": "Check",
|
|
"Details": "Details",
|
|
"PHP version": "PHP version",
|
|
"PHP SAPI": "PHP SAPI",
|
|
"Active modules": "Active modules",
|
|
"No modules active.": "No modules active.",
|
|
"Module": "Module",
|
|
"Dependencies": "Dependencies",
|
|
"Permission summary": "Permission summary",
|
|
"Active permissions": "Active permissions",
|
|
"Inactive (orphaned) permissions": "Inactive (orphaned) permissions",
|
|
"Permissions by source": "Permissions by source",
|
|
"Source": "Source",
|
|
"No health checks available.": "No health checks available.",
|
|
"Warning": "Warning",
|
|
"Fail": "Fail",
|
|
"Environment": "Environment",
|
|
"Modules": "Modules",
|
|
"Version": "Version",
|
|
"Breadcrumb": "Breadcrumb",
|
|
"LDAP Username": "LDAP Username",
|
|
"Sign in with LDAP": "Sign in with LDAP",
|
|
"LDAP login is not available for this tenant.": "LDAP login is not available for this tenant.",
|
|
"Your email domain is not allowed for LDAP login on this tenant.": "Your email domain is not allowed for LDAP login on this tenant.",
|
|
"LDAP server is not reachable. Please try again later.": "LDAP server is not reachable. Please try again later.",
|
|
"Your LDAP account does not have an email address configured.": "Your LDAP account does not have an email address configured.",
|
|
"LDAP host is required": "LDAP host is required",
|
|
"LDAP base DN is required": "LDAP base DN is required",
|
|
"LDAP port must be between 1 and 65535": "LDAP port must be between 1 and 65535",
|
|
"Search filter must contain %s placeholder": "Search filter must contain %s placeholder",
|
|
"LDAP-only login requires a complete configuration": "LDAP-only login requires a complete configuration",
|
|
"Direct bind method requires a username format": "Direct bind method requires a username format",
|
|
"Bind DN could not be encrypted": "Bind DN could not be encrypted",
|
|
"Bind password could not be encrypted": "Bind password could not be encrypted",
|
|
"Tenant LDAP settings could not be saved": "Tenant LDAP settings could not be saved",
|
|
"Bind DN could not be decrypted": "Bind DN could not be decrypted",
|
|
"Bind password could not be decrypted": "Bind password could not be decrypted",
|
|
"LDAP login": "LDAP login",
|
|
"LDAP setup is incomplete": "LDAP setup is incomplete",
|
|
"LDAP connection settings": "LDAP connection settings",
|
|
"Enable LDAP login for this tenant": "Enable LDAP login for this tenant",
|
|
"LDAP Host": "LDAP Host",
|
|
"Encryption": "Encryption",
|
|
"None (not recommended)": "None (not recommended)",
|
|
"Verify TLS certificate": "Verify TLS certificate",
|
|
"Base DN": "Base DN",
|
|
"Bind DN (service account)": "Bind DN (service account)",
|
|
"Bind password": "Bind password",
|
|
"Clear bind password": "Clear bind password",
|
|
"Test connection": "Test connection",
|
|
"Search and bind settings": "Search and bind settings",
|
|
"Bind method": "Bind method",
|
|
"Search then bind (recommended)": "Search then bind (recommended)",
|
|
"Direct bind": "Direct bind",
|
|
"User search filter": "User search filter",
|
|
"Search scope": "Search scope",
|
|
"Subtree (recursive)": "Subtree (recursive)",
|
|
"One level": "One level",
|
|
"Network timeout (seconds)": "Network timeout (seconds)",
|
|
"Direct bind username format": "Direct bind username format",
|
|
"Unique ID attribute": "Unique ID attribute",
|
|
"Attribute mapping and sync": "Attribute mapping and sync",
|
|
"Map application fields to LDAP directory attributes.": "Map application fields to LDAP directory attributes.",
|
|
"Profile sync on LDAP login": "Profile sync on LDAP login",
|
|
"Allow LDAP-only login (disable local password login)": "Allow LDAP-only login (disable local password login)",
|
|
"Sync email": "Sync email",
|
|
"AD: objectGUID, OpenLDAP: entryUUID, FreeIPA: ipaUniqueID": "AD: objectGUID, OpenLDAP: entryUUID, FreeIPA: ipaUniqueID",
|
|
"Login could not be completed. Please contact your administrator.": "Login could not be completed. Please contact your administrator.",
|
|
"Only for direct bind. Use %s as placeholder. Example: %s@corp.example.com or uid=%s,ou=People,dc=example,dc=com": "Only for direct bind. Use %s as placeholder. Example: %s@corp.example.com or uid=%s,ou=People,dc=example,dc=com",
|
|
"Optional allow-list, comma or newline separated.": "Optional allow-list, comma or newline separated.",
|
|
"Please enter your username and password.": "Please enter your username and password.",
|
|
"Port": "Port",
|
|
"Search-then-bind uses a service account to find the user DN first, then binds with the user credentials.": "Search-then-bind uses a service account to find the user DN first, then binds with the user credentials.",
|
|
"Use %s as placeholder for the username. Examples: (&(objectClass=user)(sAMAccountName=%s)) for AD, (&(objectClass=inetOrgPerson)(uid=%s)) for OpenLDAP": "Use %s as placeholder for the username. Examples: (&(objectClass=user)(sAMAccountName=%s)) for AD, (&(objectClass=inetOrgPerson)(uid=%s)) for OpenLDAP",
|
|
"Username or password not valid": "Username or password not valid",
|
|
"Write-only. Leave empty to keep current value.": "Write-only. Leave empty to keep current value.",
|
|
"Your account is deactivated.": "Your account is deactivated.",
|
|
"LDAP": "LDAP",
|
|
"LDAP attribute map could not be encoded": "LDAP attribute map could not be encoded",
|
|
"Drop file here or click to select": "Drop file here or click to select",
|
|
"Remove selected file": "Remove selected file",
|
|
"Replace": "Replace",
|
|
"Delete this image?": "Delete this image?",
|
|
"Current image": "Current image",
|
|
"Open navigation": "Open navigation",
|
|
"Close navigation": "Close navigation",
|
|
"Priority": "Priority",
|
|
"Note": "Note",
|
|
"Optional note...": "Optional note...",
|
|
"Security level updated": "Security level updated",
|
|
"About": "About",
|
|
"Call": "Call",
|
|
"Copy email address": "Copy email address",
|
|
"Copy phone number": "Copy phone number",
|
|
"Copy mobile number": "Copy mobile number",
|
|
"Hired": "Hired",
|
|
"Primary": "Primary",
|
|
"Send email": "Send email",
|
|
"Summary": "Summary"
|
|
}
|