# Qisutu - Open Source Ticket System
# Copyright (C) 2026 Franziska Steps
# Qisutu - Kim-KI, https://qisutu.de
#
# This file is part of Qisutu.
#
# Qisutu is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# Qisutu is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with Qisutu. If not, see <https://www.gnu.org/licenses/>.
#
# SPDX-FileCopyrightText: 2026 Franziska Steps
# SPDX-License-Identifier: AGPL-3.0-or-later

use utf8;

{
    PageLoginTitle          => 'Qisutu login',
    PageStartTitle          => 'Qisutu',
    LoginIntro              => 'Please sign in.',
    LoginUsername           => 'Username',
    LoginPassword           => 'Password',
    LoginAccountType        => 'Sign in as',
    LoginAsAgent            => 'Agent',
    LoginAsCustomer         => 'Customer',
    LoginSubmit             => 'Sign in',
    LoginInvalid            => 'Username or password is incorrect.',
    LoginCouldNotBeFinished => 'The sign-in could not be completed.',
    PasswordForgotLink                 => 'Forgot password?',
    PagePasswordForgotTitle          => 'Forgot password',
    PasswordForgotTitle              => 'Forgot password',
    PasswordForgotIntro              => 'Request a link to reset your password.',
    PasswordForgotAccountType        => 'User account',
    PasswordForgotUser               => 'Username or e-mail address',
    PasswordForgotSubmit             => 'Request reset link',
    PasswordForgotAccountTypeRequired => 'Please select agent or customer.',
    PasswordForgotUserRequired       => 'Please enter a username or e-mail address.',
    PasswordForgotCouldNotBeProcessed => 'The request could not be processed.',
    PagePasswordForgotSentTitle      => 'Request processed',
    PasswordForgotSentTitle          => 'E-mail requested',
    PasswordForgotSentText           => 'If a matching active user account exists, an e-mail with a password reset link has been sent.',
    PasswordForgotSentSpamHint       => 'Please also check the spam folder of your e-mail account.',
    PasswordBackToLogin              => 'Back to login',
    PagePasswordResetTitle           => 'Set a new password',
    PasswordResetTitle               => 'Set a new password',
    PasswordResetIntro               => 'Enter your new password twice.',
    PasswordResetNewPassword         => 'New password',
    PasswordResetRepeatPassword      => 'Repeat new password',
    PasswordResetPasswordHint        => 'The new password must contain at least 8 characters.',
    PasswordResetSubmit              => 'Save password',
    PasswordResetAllFieldsRequired   => 'Please complete both password fields.',
    PasswordResetTooShort            => 'The new password must contain at least 8 characters.',
    PasswordResetTooLong             => 'The new password is too long.',
    PasswordResetRepeatMismatch      => 'The new password and its repetition do not match.',
    PasswordResetCouldNotBeSaved     => 'The new password could not be saved.',
    PasswordResetInvalid             => 'The link is invalid or expired.',
    PagePasswordResetInvalidTitle    => 'Invalid link',
    PasswordResetInvalidTitle        => 'Link invalid or expired',
    PasswordResetInvalidText         => 'This password reset link is invalid, expired, or has already been used.',
    PasswordResetRequestNew          => 'Request a new link',
    PagePasswordResetCompleteTitle   => 'Password changed',
    PasswordResetCompleteTitle       => 'Password changed',
    PasswordResetCompleteText        => 'Your new password was saved successfully. All existing sessions have been ended.',
    PasswordResetCompleteLoginHint   => 'You can now log in with the new password.',
    PasswordResetToLogin             => 'Go to login',
    PasswordResetEmailSubject        => 'Qisutu: Reset password',
    PasswordChangedEmailSubject      => 'Qisutu: Password changed',
    PasswordEmailGreeting            => 'Hello {name},',
    PasswordResetEmailIntro          => 'A password reset was requested for your Qisutu user account.',
    PasswordResetEmailButton         => 'Set a new password',
    PasswordResetEmailValidity       => 'The link is valid for {minutes} minutes and can only be used once.',
    PasswordResetEmailIgnore         => 'If you did not request this change, you can ignore this e-mail.',
    PasswordResetEmailLinkHint       => 'If the button does not work, open this link:',
    PasswordChangedEmailIntro        => 'The password for your Qisutu user account was changed successfully.',
    PasswordChangedEmailWarning      => 'If you did not make this change, contact the Qisutu administrator immediately.',
    CustomerRegistrationLink                         => 'Register as a customer',
    PageCustomerRegistrationTitle                    => 'Register as a customer',
    CustomerRegistrationTitle                        => 'Register as a customer',
    CustomerRegistrationIntro                        => 'Register as a new contact person for your company.',
    CustomerRegistrationFirstname                    => 'First name',
    CustomerRegistrationLastname                     => 'Last name',
    CustomerRegistrationEmail                        => 'E-mail address',
    CustomerRegistrationCompany                      => 'Company',
    CustomerRegistrationLoginHint                    => 'Your e-mail address will also be your username.',
    CustomerRegistrationSubmit                       => 'Request registration link',
    CustomerRegistrationAllFieldsRequired            => 'Please complete all fields.',
    CustomerRegistrationFieldTooLong                 => 'At least one entry is too long.',
    CustomerRegistrationEmailInvalid                 => 'Please enter a valid e-mail address.',
    CustomerRegistrationCouldNotBeProcessed          => 'The registration request could not be processed.',
    PageCustomerRegistrationSentTitle                => 'Registration requested',
    CustomerRegistrationSentTitle                    => 'E-mail requested',
    CustomerRegistrationSentText                     => 'If the registration can be completed, an e-mail containing the link for setting your password has been sent.',
    CustomerRegistrationSentSpamHint                 => 'Please also check the spam folder of your e-mail account.',
    PageCustomerRegistrationPasswordTitle            => 'Complete registration',
    CustomerRegistrationPasswordTitle                => 'Complete registration',
    CustomerRegistrationPasswordIntro                => 'Set the password for your customer account now.',
    CustomerRegistrationPasswordNew                  => 'Password',
    CustomerRegistrationPasswordRepeat               => 'Repeat password',
    CustomerRegistrationPasswordHint                 => 'The password must be at least 8 characters long.',
    CustomerRegistrationPasswordSubmit               => 'Create customer account',
    CustomerRegistrationPasswordAllFieldsRequired    => 'Please complete both password fields.',
    CustomerRegistrationPasswordTooShort             => 'The password must be at least 8 characters long.',
    CustomerRegistrationPasswordTooLong              => 'The password is too long.',
    CustomerRegistrationPasswordMismatch             => 'The password and its repetition do not match.',
    CustomerRegistrationCouldNotBeCompleted          => 'The registration could not be completed.',
    CustomerRegistrationAccountExists                => 'A customer account already exists for this e-mail address. Please use the “Forgot password?” function.',
    PageCustomerRegistrationInvalidTitle             => 'Invalid registration link',
    CustomerRegistrationInvalidTitle                 => 'Link invalid or expired',
    CustomerRegistrationInvalidText                  => 'This registration link is invalid, expired, or has already been used.',
    CustomerRegistrationRequestNew                   => 'Request a new registration',
    CustomerRegistrationInvalid                      => 'The registration link is invalid or expired.',
    PageCustomerRegistrationCompleteTitle            => 'Registration completed',
    CustomerRegistrationCompleteTitle                => 'Customer account created',
    CustomerRegistrationCompleteText                 => 'Your company and customer account were created successfully.',
    CustomerRegistrationCompleteUsername             => 'Username',
    CustomerRegistrationCompleteLoginHint            => 'You can now log in as a customer.',
    CustomerRegistrationEmailSubject                 => 'Qisutu: Complete customer registration',
    CustomerRegistrationEmailGreeting                => 'Hello {name},',
    CustomerRegistrationEmailIntro                   => 'You requested the registration of a new Qisutu customer account. Use the following link to set your password.',
    CustomerRegistrationEmailCompany                 => 'Company',
    CustomerRegistrationEmailUsername                => 'Username',
    CustomerRegistrationEmailButton                  => 'Complete registration',
    CustomerRegistrationEmailValidity                => 'The link is valid for {minutes} minutes and can only be used once.',
    CustomerRegistrationEmailIgnore                  => 'If you did not request this registration, you can ignore this e-mail.',
    CustomerRegistrationEmailLinkHint                => 'If the button does not work, open this link:',
    StartLoggedInAs         => 'Signed in as',
    StartLogout             => 'Sign out',
    Navigation              => 'Navigation',
    NavigationCollapse       => 'Collapse navigation',
    NavigationExpand         => 'Expand navigation',
    UserMenuOpen             => 'Open user menu',
    NavigationDashboard     => 'Dashboard',
    NavigationTickets       => 'Tickets',
    NavigationCustomers     => 'Customers',
    NavigationOrganizations => 'Organizations',
    NavigationReports       => 'Reports',
    NavigationAdmin         => 'Administration',
    DashboardTitle          => 'Dashboard',
    DashboardSubtitle       => 'Ticket overview',
    DashboardIntro          => 'Welcome to the Qisutu workspace.',
    DashboardOpenTickets    => 'Open tickets',
    DashboardWaitingTickets => 'Waiting',
    DashboardTodayTickets   => 'Created today',
    DashboardWorkArea       => 'Work area',
    DashboardWorkAreaText   => 'The first ticket lists and working views will be added here.',
    DashboardAgentIntro     => 'Current workload, escalations, and tickets that require action.',
    DashboardCustomerIntro  => 'Overview of your tickets and current requests.',
    DashboardRefresh        => 'Refresh',
    DashboardRefreshing     => 'Refreshing …',
    DashboardRefreshFailed  => 'The dashboard could not be refreshed. The last loaded values remain visible.',
    DashboardLastUpdated    => 'Last updated',
    DashboardPeriod         => 'Period',
    DashboardPeriodToday    => 'Today',
    DashboardPeriod7Days    => 'Last 7 days',
    DashboardPeriod30Days   => 'Last 30 days',
    DashboardPeriod90Days   => 'Last 90 days',
    DashboardPeriodCustom   => 'Custom',
    DashboardDateFrom       => 'From',
    DashboardDateTo         => 'To',
    DashboardQueue          => 'Queue',
    DashboardScope          => 'Scope',
    DashboardScopeTeam      => 'My permitted queues',
    DashboardScopePersonal  => 'My tickets only',
    DashboardApplyFilters   => 'Apply',
    DashboardResetFilters   => 'Reset',
    DashboardNoQueueAccessTitle => 'No queue access',
    DashboardNoQueueAccessText  => 'This account cannot view tickets in any queue.',
    DashboardKPIOpen        => 'Open tickets',
    DashboardKPINew         => 'New tickets',
    DashboardKPIUnassigned  => 'Unassigned',
    DashboardKPIEscalated   => 'Escalated',
    DashboardKPIWarning     => 'Escalation within 8 hours',
    DashboardKPICustomerWaiting => 'Customer replies',
    DashboardTrendTitle     => 'Created and closed',
    DashboardTrendSubtitle  => 'Ticket development during the selected period',
    DashboardStatusTitle    => 'Open backlog by status',
    DashboardStatusSubtitle => 'Current distribution of tickets that are still open',
    DashboardAgeTitle       => 'Age of the open backlog',
    DashboardAgeSubtitle    => 'How long open tickets have existed',
    DashboardAgeUnder8Hours => 'Under 8 hours',
    DashboardAgeUnder24Hours => '8 to 24 hours',
    DashboardAgeUnder3Days  => '1 to 3 days',
    DashboardAgeUnder10Days => '3 to 10 days',
    DashboardAgeOver10Days  => 'Over 10 days',
    DashboardAttentionTitle => 'Action required',
    DashboardAttentionSubtitle => 'The most important tickets that need attention now',
    DashboardAttentionEmpty => 'There are currently no conspicuous tickets.',
    DashboardAttentionReasonEscalated => 'Escalated',
    DashboardAttentionReasonWarning => 'Escalation approaching',
    DashboardAttentionReasonCustomerWaiting => 'Customer awaiting reply',
    DashboardAttentionReasonUnassigned => 'Unassigned',
    DashboardAttentionReasonOld => 'Open for a long time',
    DashboardShowData       => 'Show values as table',
    DashboardDate           => 'Date',
    DashboardCreated        => 'Created',
    DashboardClosed         => 'Closed',
    DashboardTickets        => 'Tickets',
    DashboardAge            => 'Age',
    DashboardReason         => 'Reason',
    DashboardMinutesShort   => 'min',
    DashboardHoursShort     => 'h',
    DashboardDaysShort      => 'd',
    DashboardCustomerOpenTickets => 'Open tickets',
    DashboardCustomerWaitingTickets => 'Waiting tickets',
    DashboardCustomerTotalTickets => 'Total tickets',
    DashboardCustomerRecentTitle => 'Recently updated tickets',
    DashboardCustomerRecentSubtitle => 'Your five most recently changed requests',
    DashboardCustomerAllTickets => 'All tickets',
    DashboardCustomerCreateTicket => 'New ticket',
    DashboardCustomerEmptyTitle => 'No tickets yet',
    DashboardCustomerEmptyText => 'Create your first ticket to submit a request.',
    ProgramDashboardDescription     => 'Dashboard overview',
    ProgramTicketsDescription       => 'Ticket work area',
    ProgramCustomersDescription     => 'Customer management',
    ProgramOrganizationsDescription => 'Organization management',
    ProgramReportsDescription       => 'Reports and statistics',
    ProgramAdminDescription         => 'System administration',
    AdminAgentsTitle                => 'Agents',
    AdminAgentsDescription          => 'View and create agents.',
    AdminCustomersTitle             => 'Customers',
    AdminCustomersDescription       => 'View and create customers.',
    AdminCustomerUsersTitle         => 'Customer users',
    AdminCustomerUsersDescription   => 'View and create customer users.',
    AdminQueuesTitle                => 'Queues',
    AdminQueuesDescription          => 'View, create and assign queues to groups.',
    AdminSystemEmailsTitle          => 'System e-mail addresses',
    AdminSystemEmailsDescription    => 'View and create system e-mail addresses.',
    AdminPostmasterIMAPAccountsTitle => 'Email retrieval',
    AdminPostmasterIMAPAccountsDescription => 'Manage incoming email accounts for automatic ticket retrieval.',
    AdminMailAccountsNavigation     => 'Email retrieval',
    AdminStandardIMAPNavigation     => 'Standard IMAP',
    AdminMicrosoft365Navigation     => 'Microsoft 365',
    AdminGoogleMailNavigation       => 'Google Workspace/Gmail',
    AdminMailAccountSelectTitle     => 'Select email account type',
    AdminMailAccountSelectDescription => 'Configure standard password-based IMAP or OAuth2 for Microsoft 365 and Google Workspace/Gmail.',
    AdminMailAccountCreateAction    => 'Create account',
    AdminMailTypeStandardIMAP       => 'Standard IMAP',
    AdminMailTypeMicrosoft365       => 'Microsoft 365',
    AdminMailTypeGoogle             => 'Google Workspace/Gmail',
    AdminStandardIMAPChoiceDescription => 'Classic IMAP login with username and password.',
    AdminMicrosoft365ChoiceDescription => 'Securely connect a Microsoft mailbox using OAuth2 and XOAUTH2.',
    AdminGoogleMailChoiceDescription => 'Securely connect a Google mailbox using OAuth2 and XOAUTH2.',
    AdminStandardIMAPTitle          => 'Standard IMAP',
    AdminStandardIMAPDescription    => 'Manage a postmaster account using classic IMAP password authentication.',
    AdminStandardIMAPCreate         => 'Create standard IMAP account',
    AdminStandardIMAPEdit           => 'Edit standard IMAP account',
    AdminMicrosoft365Title          => 'Microsoft 365',
    AdminMicrosoft365Description    => 'Connect a Microsoft 365 mailbox with OAuth2 for automatic mail fetching.',
    AdminMicrosoft365Create         => 'Create Microsoft 365 account',
    AdminMicrosoft365Edit           => 'Edit Microsoft 365 account',
    AdminGoogleMailTitle            => 'Google Workspace/Gmail',
    AdminGoogleMailDescription      => 'Connect a Google Workspace or Gmail mailbox with OAuth2 for automatic mail fetching.',
    AdminGoogleMailCreate           => 'Create Google email account',
    AdminGoogleMailEdit             => 'Edit Google email account',
    AdminMicrosoft365ProviderHint   => 'Qisutu uses outlook.office365.com:993 and the official Microsoft IMAP OAuth2 scope.',
    AdminGoogleMailProviderHint     => 'Qisutu uses imap.gmail.com:993 and the official Google Mail OAuth2 scope.',
    AdminAccountType                => 'Account type',
    AdminConnectionStatus           => 'Connection status',
    AdminConnectionMessage          => 'Status message',
    AdminLastConnectionTest         => 'Last connection test',
    AdminPasswordAuthentication     => 'Password authentication',
    AdminOAuthConnected             => 'OAuth2 connected',
    AdminOAuthNotConnected          => 'OAuth2 not connected yet',
    AdminOAuthConnectionError       => 'OAuth2 connection error',
    AdminOAuthAuthorizationPending  => 'OAuth2 authorization pending',
    AdminOAuthSaveAndConnect        => 'Save and connect with OAuth2',
    AdminOAuthRedirectURI           => 'OAuth2 redirect URI',
    AdminOAuthRedirectURIHelp       => 'This exact URI must be registered as an allowed redirect URI with the provider.',
    AdminOAuthTokenExpires          => 'Access token valid until',
    AdminOAuthConnectedAndTested    => 'OAuth2 authorization and the IMAP connection were successful.',
    AdminOAuthAuthorizationSuccessful => 'The OAuth2 authorization was successful.',
    AdminOAuthAuthorizationFailed   => 'The OAuth2 authorization could not be completed.',
    AdminOAuthBaseURLMissing        => 'A valid Qisutu base URL must be configured in system settings for OAuth2.',
    AdminOAuthAccountMissing        => 'The OAuth2 email account was not found.',
    AdminOAuthProviderInvalid       => 'The selected OAuth2 provider is invalid.',
    AdminOAuthConfigurationIncomplete => 'The OAuth2 configuration is incomplete.',
    AdminOAuthStateStoreFailed      => 'The OAuth2 authorization could not be prepared.',
    AdminOAuthStateInvalid          => 'The OAuth2 request is invalid or expired. Please start the connection again.',
    AdminOAuthAuthorizationDenied   => 'The OAuth2 authorization was denied.',
    AdminOAuthAuthorizationCodeMissing => 'The OAuth2 authorization code is missing.',
    AdminOAuthRefreshTokenMissing   => 'The provider did not return a usable OAuth2 refresh token.',
    AdminOAuthTokenConnectionFailed => 'The OAuth2 token endpoint could not be reached.',
    AdminOAuthAccessTokenMissing    => 'The provider did not return an OAuth2 access token.',
    AdminOAuthGrantInvalid          => 'The OAuth2 grant type is invalid.',
    AdminOAuthTokenStoreFailed      => 'The OAuth2 tokens could not be stored.',
    AdminOAuthRandomSourceFailed    => 'A secure random value for the OAuth2 request could not be generated.',
    AdminOAuthAuthorizationStartFailed => 'The OAuth2 authorization could not be started.',
    AdminOAuthClientSecretRequired  => 'The OAuth2 client secret is required.',
    AdminOAuthClientIDRequired      => 'The OAuth2 client ID is required.',
    AdminOAuthTenantInvalid         => 'The Microsoft tenant ID is invalid.',
    AdminMailAccountSaveFailed      => 'The email account could not be saved.',
    AdminMailAccountActivated       => 'The email account was activated after a successful connection test.',
    AdminMailAccountDeactivated     => 'The email account was deactivated.',
    AdminMailAccountActivationFailed => 'The email account could not be activated because its connection test failed.',
    AdminMailAccountMissing         => 'The email account was not found.',
    AdminMailAccountDelete          => 'Delete',
    AdminMailAccountDeleteTitle     => 'Permanently delete email account?',
    AdminMailAccountDeleteWarning   => 'This action cannot be undone. The following inactive account will be deleted completely:',
    AdminMailAccountDeleteCredentialsWarning => 'Credentials, client secret and OAuth2 tokens will be removed permanently. Postmaster processing logs are retained and detached from the account.',
    AdminMailAccountDeleteConfirm   => 'Permanently delete account',
    AdminMailAccountDeleteActiveBlocked => 'An active email account cannot be deleted. Deactivate it first.',
    AdminMailAccountDeleteFailed    => 'The email account could not be deleted.',
    AdminMailAccountDeleted         => 'The email account was deleted completely. Existing processing logs were retained.',
    AdminIMAPUsernameRequired       => 'The IMAP username is required.',
    AdminSMTPAccountTitle           => 'SMTP sending',
    AdminSMTPAccountDescription     => 'Manage the global SMTP transport for outgoing ticket e-mails.',
    AdminSMTPAccountSelectTitle     => 'Select SMTP account type',
    AdminSMTPAccountSelectDescription => 'Configure classic SMTP or OAuth2 for Microsoft 365 and Google Workspace/Gmail.',
    AdminSMTPTypeStandard           => 'Standard SMTP',
    AdminSMTPTypeMicrosoft365       => 'Microsoft 365',
    AdminSMTPTypeGoogle             => 'Google Workspace/Gmail',
    AdminSMTPStandardChoiceDescription => 'SMTP login with username and password.',
    AdminSMTPMicrosoftChoiceDescription => 'Connect a Microsoft mailbox using OAuth2 and AUTH XOAUTH2.',
    AdminSMTPGoogleChoiceDescription => 'Connect a Google mailbox using OAuth2 and AUTH XOAUTH2.',
    AdminSMTPStandardTitle          => 'Standard SMTP',
    AdminSMTPStandardDescription    => 'Manage an SMTP transport using classic password authentication.',
    AdminSMTPStandardCreate         => 'Create standard SMTP transport',
    AdminSMTPStandardEdit           => 'Edit standard SMTP transport',
    AdminSMTPMicrosoft365Title      => 'Microsoft 365 SMTP',
    AdminSMTPMicrosoft365Description => 'Send outgoing mail through Microsoft 365 using OAuth2.',
    AdminSMTPMicrosoft365Create     => 'Create Microsoft 365 SMTP account',
    AdminSMTPMicrosoft365Edit       => 'Edit Microsoft 365 SMTP account',
    AdminSMTPGoogleTitle            => 'Google Workspace/Gmail SMTP',
    AdminSMTPGoogleDescription      => 'Send outgoing mail through Google Workspace or Gmail using OAuth2.',
    AdminSMTPGoogleCreate           => 'Create Google SMTP account',
    AdminSMTPGoogleEdit             => 'Edit Google SMTP account',
    AdminSMTPMicrosoftProviderHint  => 'Server, port and SMTP.Send scope are fixed safely. Client ID, client secret and tenant come from your Microsoft app registration.',
    AdminSMTPGoogleProviderHint     => 'Server, port and mail scope are fixed safely. Client ID and client secret come from your Google Cloud project.',
    AdminSMTPMailboxAddress         => 'Mailbox / username',
    AdminActiveAfterOAuthTest       => 'Activate after successful authorization and connection test',
    AdminOAuthReconnect             => 'Reconnect',
    AdminOAuthDisconnect            => 'Disconnect OAuth connection',
    AdminOAuthDisconnected          => 'OAuth connection was disconnected; the SMTP account is inactive.',
    AdminOAuthDisconnectFailed      => 'OAuth connection could not be disconnected.',
    AdminConnectionSuccessful       => 'Connection successful',
    AdminConnectionFailed           => 'Connection failed',
    AdminSalutationsTitle           => 'Salutations',
    AdminSalutationsDescription     => 'View and create salutations.',
    AdminSignaturesTitle            => 'Signatures',
    AdminSignaturesDescription      => 'View and create signatures.',
    AdminCalendarsTitle             => 'Calendars',
    AdminCalendarsDescription       => 'View and create calendars.',
    AdminGroupsTitle                => 'Groups',
    AdminGroupsDescription          => 'View, create and edit groups.',
    AdminPermissionsTitle           => 'Program configurations',
    AdminPermissionsDescription     => 'Edit program configs.',
    AdminProgramConfigs             => 'Program configurations',
    AdminProgramConfigEdit          => 'Edit program configuration',
    AdminAgentsList                 => 'Agent list',
    AdminEntries                    => 'entries',
    AdminCustomersList              => 'Customer list',
    AdminCustomerUsersList          => 'Customer users',
    AdminQueuesList                 => 'Queue list',
    AdminSystemEmailsList           => 'System e-mail addresses',
    AdminPostmasterIMAPAccountsList => 'Email retrieval accounts',
    AdminSMTPAccountList            => 'SMTP transport',
    AdminSalutationsList            => 'Salutations',
    AdminSignaturesList             => 'Signatures',
    AdminCalendarsList              => 'Calendars',
    AdminGroupsList                 => 'Group list',
    AdminAssignmentOverview         => 'Overview',
    AdminManageGroupsForAgent       => 'Manage group assignments for agent',
    AdminManageAgentsForGroup       => 'Manage agent assignments for group',
    AdminAgentCreate                => 'Create agent',
    AdminAgentEdit                  => 'Edit agent',
    AdminAgentFieldCreate           => 'Create agent field',
    AdminAgentFieldEdit             => 'Edit agent field',
    AdminAgentFields                => 'Agent fields',
    AdminAgentGroupPermissions      => 'Group membership and permissions',
    AdminAgentGroupAssignments      => 'Agent matrix',
    AdminProgramPermissionAssignments => 'Program configurations',
    AdminQueuePermissionAssignments => 'Queue groups',
    AdminCustomerCreate             => 'Create customer',
    AdminCustomerEdit               => 'Edit customer',
    AdminCustomerFieldCreate        => 'Create customer field',
    AdminCustomerFieldEdit          => 'Edit customer field',
    AdminCustomerFields             => 'Customer fields',
    AdminCustomerUserCreate         => 'Create customer user',
    AdminCustomerUserEdit           => 'Edit customer user',
    AdminCustomerUserFieldCreate    => 'Create customer user field',
    AdminCustomerUserFieldEdit      => 'Edit customer user field',
    AdminCustomerUserFields         => 'Customer user fields',
    AdminQueueCreate                => 'Create queue',
    AdminQueueEdit                  => 'Edit queue',
    AdminSystemEmailCreate          => 'Create system e-mail address',
    AdminSystemEmailEdit            => 'Edit system e-mail address',
    AdminPostmasterIMAPAccountCreate => 'Create IMAP account',
    AdminPostmasterIMAPAccountEdit  => 'Edit IMAP account',
    AdminSMTPAccountCreate          => 'Create SMTP transport',
    AdminSMTPAccountEdit            => 'Edit SMTP transport',
    AdminSalutationCreate           => 'Create salutation',
    AdminSalutationEdit             => 'Edit salutation',
    AdminSignatureCreate            => 'Create signature',
    AdminSignatureEdit              => 'Edit signature',
    AdminCalendarCreate             => 'Create calendar',
    AdminCalendarEdit               => 'Edit calendar',
    AdminGroupCreate                => 'Create group',
    AdminGroupEdit                  => 'Edit group',
    AdminGroupAssignments           => 'Assignments',
    AdminGroupAssign                => 'Assign group',
    AdminQueueGroupAssign           => 'Assign queue group',
    AdminPermissionAssign           => 'Assign permission',
    AdminAvailableGroups            => 'Available groups',
    AdminLogin                      => 'Login',
    AdminName                       => 'Name',
    AdminLabel                      => 'Label',
    AdminDisplayName                => 'Display name',
    AdminDatabaseField              => 'Database field',
    AdminDatabaseFieldHint          => 'ASCII only: letters, numbers and underscore. Must start with a letter.',
    AdminDatabaseFieldReadonlyHint  => 'This internal value cannot be changed after creation.',
    AdminFieldType                  => 'Field type',
    AdminFieldType_text             => 'Text',
    AdminFieldType_textarea         => 'Multiline text',
    AdminFieldType_email            => 'Email address',
    AdminFieldType_phone            => 'Telephone',
    AdminFieldType_date             => 'Date',
    AdminFieldType_number           => 'Number',
    AdminRequired                   => 'Required',
    AdminTranslations               => 'Translations',
    AdminTranslationLanguage        => 'Language',
    AdminTranslationAdd             => 'Add translation',
    AdminRemove                     => 'Remove',
    AdminDeleteField                => 'Delete field completely',
    AdminSourceLanguage             => 'source language',
    AdminTitle                      => 'Title',
    AdminContent                    => 'Content',
    AdminTimezone                   => 'Timezone',
    AdminEmail                      => 'E-mail',
    AdminUsername                   => 'Username',
    AdminHost                       => 'Server',
    AdminPort                       => 'Port',
    AdminInbound                    => 'Inbound',
    AdminOutbound                   => 'Outbound',
    AdminInboundEnabled             => 'IMAP fetching active',
    AdminOutboundEnabled            => 'SMTP sending active',
    AdminIMAP                       => 'IMAP',
    AdminSMTP                       => 'SMTP',
    AdminIMAPInbound                => 'IMAP fetching',
    AdminSMTPOutbound               => 'SMTP sending',
    AdminIMAPSecurity               => 'IMAP connection encryption',
    AdminSMTPSecurity               => 'SMTP connection encryption',
    AdminAuthType                   => 'Authentication',
    AdminOAuth2                     => 'OAuth2',
    AdminOAuthProvider              => 'OAuth2 provider',
    AdminOAuthTenantID              => 'Tenant ID',
    AdminOAuthClientID              => 'Client ID',
    AdminOAuthClientSecret          => 'Client secret',
    AdminOAuthScope                 => 'Scopes',
    AdminPasswordKeep               => 'Leave empty to keep the stored value',
    AdminConnectionTest             => 'Connection test',
    AdminTestIMAP                   => 'Test IMAP',
    AdminTestSMTP                   => 'Test SMTP',
    AdminSMTPTransportHintTitle     => 'One active SMTP transport',
    AdminSMTPTransportHintText      => 'Qisutu sends through exactly one active SMTP transport. The visible sender address still comes from the queue system e-mail address.',
    AdminSMTPDisabled               => 'SMTP is disabled for this mailbox.',
    AdminIMAPDisabled               => 'IMAP is disabled for this mailbox.',
    AdminOAuth2FlowMissing          => 'OAuth2 is selected, but the OAuth2 token flow is not connected yet.',
    AdminSMTPHostRequired           => 'SMTP server is required.',
    AdminIMAPHostRequired           => 'IMAP server is required.',
    AdminSMTPSSLRequired            => 'IO::Socket::SSL is required for SMTP TLS/SSL.',
    AdminIMAPSSLRequired            => 'IO::Socket::SSL is required for IMAP TLS/SSL.',
    AdminSMTPConnectionFailed       => 'SMTP connection failed.',
    AdminSMTPSTARTTLSFailed         => 'SMTP STARTTLS failed.',
    AdminSMTPAuthFailed             => 'SMTP authentication failed.',
    AdminSMTPCredentialsRequired    => 'SMTP username and SMTP password are required.',
    AdminSMTPConnectionOK           => 'SMTP connection successful.',
    AdminIMAPConnectionFailed       => 'IMAP connection failed.',
    AdminIMAPSConnectionFailed      => 'IMAPS connection failed.',
    AdminIMAPGreetingFailed         => 'IMAP greeting failed.',
    AdminIMAPSTARTTLSFailed         => 'IMAP STARTTLS failed.',
    AdminIMAPTLSHandshakeFailed     => 'IMAP TLS handshake failed.',
    AdminIMAPAuthFailed             => 'IMAP authentication failed.',
    AdminIMAPCredentialsRequired    => 'IMAP username and IMAP password are required.',
    AdminMailSecretDecryptFailed    => 'The stored credentials cannot be decrypted. Please save the password again in the mail account.',
    AdminIMAPFolderListFailed       => 'IMAP folder list could not be read.',
    AdminIMAPFolderSelectFailed     => 'IMAP inbox could not be opened.',
    AdminIMAPSearchFailed           => 'IMAP search for unread messages failed.',
    AdminIMAPDeleteFailed           => 'IMAP message could not be marked for deletion.',
    AdminIMAPExpungeFailed          => 'IMAP message could not be deleted from the server.',
    AdminIMAPConnectionOK           => 'IMAP connection successful.',
    AdminPassword                   => 'Password',
    AdminFirstname                  => 'Firstname',
    AdminLastname                   => 'Lastname',
    AdminGroups                     => 'Groups',
    AdminGroup                      => 'Group',
    AdminAgents                     => 'Agents',
    AdminActive                     => 'Active',
    AdminActiveYes                  => 'Yes',
    AdminActiveNo                   => 'No',
    AdminAction                     => 'Action',
    AdminDeactivate                 => 'Set inactive',
    AdminActivate                   => 'Set active',
    AdminCreate                     => 'Create',
    AdminSave                       => 'Save',
    AdminOpen                       => 'Open',
    AdminAssign                     => 'Assign',
    AdminBackToList                 => 'Back to list',
    AdminPasswordNew                => 'New password',
    AdminGroupID                    => 'Group',
    AdminAgent                      => 'Agent',
    AdminProgram                    => 'Program',
    AdminModule                     => 'Module',
    AdminDescription                => 'Description',
    AdminIcon                       => 'Icon',
    AdminURL                        => 'URL',
    AdminType                       => 'Type',
    AdminParent                     => 'Parent',
    AdminAccessType                 => 'Access for',
    AdminManageCustomerUsersForGroup => 'Manage customer users for group',
    AdminManageGroupsForCustomerUser => 'Manage groups for customer user',
    AdminGroupTypeAdmin             => 'Administrator group',
    AdminGroupTypeCustomer          => 'Customer group',
    AdminGroupTypeAgent             => 'Agent group',
    AdminCustomerAccessLevel        => 'Customer access',
    AdminAccessLevel                => 'Access level',
    AdminVisibleFor                 => 'Visible for',
    AdminPermissionGroup            => 'Permission group',
    AdminPermissionMode             => 'Permission mode',
    AdminInitialGroupID             => 'Initial group',
    AdminUserAccountID              => 'User',
    AdminCustomerID                 => 'Customer',
    AdminCustomerNumber             => 'Customer number',
    AdminCustomerUser               => 'Customer user',
    AdminCustomerUsers              => 'Users',
    AdminCustomer                   => 'Customer',
    AdminQueue                      => 'Queue',
    AdminQueueID                    => 'Queue',
    AdminTargetQueue                => 'Target queue',
    AdminParentQueueID              => 'Parent queue',
    AdminSystemEmail                => 'System e-mail address',
    AdminQueueNameGroupSystemEmailRequired => 'Queue, group and system e-mail address are required.',
    AdminSalutation                 => 'Salutation',
    AdminSignature                  => 'Signature',
    AdminCalendar                   => 'Calendar',
    AdminFollowUpAllowed            => 'Follow-up possible',
    AdminFollowUpOption             => 'E-mail replies to closed tickets',
    AdminFollowUpReopen             => 'Add to the existing ticket and reopen it',
    AdminFollowUpReopenHelp         => 'The reply is added to the existing ticket and its status is changed to Open.',
    AdminFollowUpNewTicket          => 'Create as a new ticket',
    AdminFollowUpNewTicketHelp      => 'The existing ticket remains closed; the reply creates a new ticket in the same queue.',
    AdminFollowUpReject             => 'Reject the reply',
    AdminFollowUpRejectHelp         => 'No article or ticket is created; the sender receives the rejection response.',
    AdminQueueFollowUpOptionInvalid => 'A valid handling option for replies to closed tickets must be selected.',
    AdminEscalations                => 'Escalations',
    AdminEscalationFirstResponse    => 'First response in minutes',
    AdminEscalationUpdate           => 'Update in minutes',
    AdminEscalationSolution         => 'Solution in minutes',
    AdminNoSelection                => 'No selection',
    AdminSortOrder                  => 'Sort order',
    AdminGroupType                  => 'Group type',
    AdminValidity                   => 'Validity',
    AdminValid                      => 'Valid',
    AdminInvalid                    => 'Invalid',
    AdminMembers                    => 'Members',
    AdminPermissions                => 'Program configs',
    AdminPermission                 => 'Permission',
    AdminRequiredPermission         => 'Required permission',
    AdminPermissionRead             => 'Read',
    AdminPermissionCreate           => 'Create',
    AdminPermissionChange           => 'Change',
    AdminPermissionOverview         => 'Overview',
    AdminPermissionFull             => 'Full',
    AdminPermissionNone             => 'No access',
    AdminPermissionWork             => 'Work',
    AdminPermissionOwnTickets       => 'Own tickets',
    AdminPermissionOrganizationTickets => 'Organization',
    AdminCustomerUserFilter         => 'Filter customer users',
    AdminCustomerUserFilterPlaceholder => 'Login, name, email or customer',
    AdminFilterApply                => 'Filter',
    AdminFilterReset                => 'Reset',
    AdminCustomerUserResults        => 'Customer users',
    AdminNoCustomerUsersFound       => 'No matching customer users found.',
    AdminCustomerUserPaginationLabel => 'Customer user pagination',
    AdminCancel                     => 'Cancel',
    ProgramLogin                    => 'Login',
    ProgramLoginDescription         => 'Login program',
    ProgramLogout                   => 'Logout',
    ProgramLogoutDescription        => 'Logout program',
    TicketListTitle                 => 'Ticket list',
    AgentTicketListTitle            => 'Ticket list',
    CustomerTicketListTitle         => 'My tickets',
    TicketListEmptyTitle            => 'No tickets found',
    TicketListEmptyText             => 'The first tickets will be shown here.',
    TicketListSelectView             => 'Select view',
    TicketListSaveDefaultView        => 'Save view as default',
    TicketListSelectColumns          => 'Select fields',
    TicketListSelectColumnsHint      => 'Select the fields that should be displayed in your ticket list.',
    TicketListViewNew                => 'New',
    TicketListViewAllOpen            => 'All open tickets',
    TicketListViewOpen               => 'Open',
    TicketListViewPending            => 'Pending',
    TicketListViewCustomerResponse   => 'Customer replies',
    TicketListViewUnassigned         => 'Unassigned',
    TicketListViewWarning            => 'Escalation approaching',
    TicketListViewAgeUnder8Hours     => 'Open tickets under 8 hours',
    TicketListViewAgeUnder24Hours    => 'Open tickets from 8 to 24 hours',
    TicketListViewAgeUnder3Days      => 'Open tickets from 1 to 3 days',
    TicketListViewAgeUnder10Days     => 'Open tickets from 3 to 10 days',
    TicketListViewAgeOver10Days      => 'Open tickets over 10 days',
    TicketListViewClosed             => 'Closed tickets',
    TicketListViewEscalated          => 'Escalated',
    TicketListViewMyTickets          => 'My tickets',
    TicketListAllQueues              => 'All queues',
    TicketListAllCustomers           => 'All customers',
    TicketListAllCustomerUsers       => 'All contacts',
    TicketListAllOwners              => 'All owners',
    TicketListUnassigned             => 'Unassigned',
    TicketListResetFilters           => 'Reset filters',
    TicketListNextEscalation         => 'Next escalation',
    TicketListPerPage                  => 'Tickets per page',
    TicketListPage                     => 'Page',
    TicketListPaginationLabel          => 'Ticket list pagination',
    TicketListPreviousPage             => 'Previous page',
    TicketListNextPage                 => 'Next page',
    TicketListTotalTickets             => 'Total matching tickets',
    TicketBulkActionTitle              => 'Bulk action',
    TicketBulkActionHint               => 'Changes are applied to each selected ticket individually.',
    TicketBulkActionSelectedTickets    => 'tickets selected',
    TicketBulkActionCurrentPageOnly    => 'The selection applies to the current page only (up to 50 tickets).',
    TicketBulkActionReason             => 'Change reason (optional)',
    TicketBulkActionReasonPlaceholder  => 'Why is this bulk action being performed?',
    TicketBulkActionReasonHint         => 'The reason is recorded in the ticket history, not as an internal note.',
    TicketBulkActionNotificationHint   => 'No notifications are sent for this bulk action. Automations continue to run, but their notification actions are suppressed as well.',
    TicketBulkActionApplyPrefix        => 'Apply to',
    TicketBulkActionApplySuffix        => 'tickets',
    TicketBulkActionKeep               => 'Do not change',
    TicketBulkActionConfirm            => 'Apply these changes to {count} tickets?',
    TicketBulkActionSelectPage         => 'Select all tickets on this page',
    TicketBulkActionSelect             => 'Select ticket',
    TicketBulkActionClearSelection     => 'Clear selection',
    TicketBulkActionResultTitle        => 'Bulk action completed',
    TicketBulkActionSuccessful         => 'successful',
    TicketBulkActionSkipped            => 'skipped',
    TicketBulkActionFailedCount        => 'failed',
    TicketBulkActionShowDetails        => 'Details for skipped or failed tickets',
    TicketBulkActionSelectionInvalid   => 'The ticket selection is invalid or is not entirely part of the current page.',
    TicketBulkActionInvalidSelection   => 'At least one selected action is invalid.',
    TicketBulkActionActionRequired     => 'Select at least one change.',
    TicketBulkActionInvalid            => 'The bulk action could not be started because the input is invalid.',
    TicketBulkActionFailed             => 'The bulk action failed.',
    TicketBulkActionPermissionDenied   => 'You do not have permission to edit this ticket.',
    TicketBulkActionNoChange           => 'The selected values are already set.',
    TicketBulkActionAuditFailed        => 'The change could not be recorded in the audit trail.',
    TicketBulkActionHistoryBy          => 'Performed by',
    TicketBulkActionHistoryReason      => 'Reason',
    TicketBulkActionHistoryEmpty       => 'No bulk changes have been recorded for this ticket yet.',
    TicketSearchTitle                    => 'Search',
    TicketSearchDescription              => 'Search tickets by content, ticket data, time periods, SLA and dynamic fields.',
    TicketSearchActive                   => 'Active search',
    TicketSearchHits                     => 'matches',
    TicketSearchEdit                     => 'Edit search',
    TicketSearchReset                    => 'Reset search',
    TicketSearchSubmit                   => 'Search',
    TicketSearchClearForm                => 'Clear fields',
    TicketSearchFreeText                 => 'Full text',
    TicketSearchTerm                     => 'Search term',
    TicketSearchTermPlaceholder          => 'Title, ticket text, email address or attachment name ...',
    TicketSearchMode                     => 'Search mode',
    TicketSearchModeAll                  => 'All words must occur',
    TicketSearchModeAny                  => 'At least one word must occur',
    TicketSearchModePhrase               => 'Exact phrase',
    TicketSearchIn                       => 'Search in',
    TicketSearchScopeTitle               => 'Ticket number and title',
    TicketSearchScopeArticle             => 'Article subject and ticket content',
    TicketSearchScopePeople              => 'Customer, contact and email addresses',
    TicketSearchScopeAttachment          => 'Attachments and filenames',
    TicketSearchTicketData               => 'Ticket data',
    TicketSearchMultiSelectHint          => 'Select multiple entries with Ctrl or Cmd.',
    TicketSearchPeriods                  => 'Time periods',
    TicketSearchFrom                     => 'From',
    TicketSearchTo                       => 'To',
    TicketSearchQuickCreated             => 'Created:',
    TicketSearchToday                    => 'Today',
    TicketSearchYesterday                => 'Yesterday',
    TicketSearchLast7Days                => 'Last 7 days',
    TicketSearchLast30Days               => 'Last 30 days',
    TicketSearchThisYear                 => 'This year',
    TicketSearchSolved                   => 'Solved',
    TicketSearchFirstResponseDue         => 'First response due',
    TicketSearchUpdateDue                => 'Update due',
    TicketSearchSolutionDue              => 'Solution due',
    TicketSearchSLAEscalation            => 'SLA and escalation',
    TicketSearchEscalationNormal         => 'Met / on plan',
    TicketSearchEscalationWarning        => 'At risk',
    TicketSearchEscalationBreached       => 'Breached / escalated',
    TicketSearchWithoutSLA               => 'Without SLA',
    TicketSearchFirstResponseOpen        => 'First response still open',
    TicketSearchUpdateOpen               => 'Update still open',
    TicketSearchSolutionOpen             => 'Solution still open',
    TicketSearchDynamicFields            => 'Dynamic fields',
    TicketSearchNotRestricted            => 'Do not restrict',
    TicketSearchOperatorContains         => 'contains',
    TicketSearchOperatorStarts           => 'starts with',
    TicketSearchOperatorExact            => 'is exactly',
    TicketSearchOperatorFrom             => 'from / greater or equal',
    TicketSearchOperatorTo               => 'to / less or equal',
    TicketSearchOperatorBetween          => 'between',
    TicketSearchOperatorEmpty            => 'is empty',
    TicketSearchOperatorNotEmpty         => 'is not empty',
    TicketSearchOperatorAnySelected      => 'contains any selected value',
    TicketSearchOperatorAllSelected      => 'contains all selected values',
    AgentTicketCreateTitle               => 'Create ticket',
    AgentTicketCreateDescription         => 'Create a new ticket for a contact or any e-mail address and optionally send it by e-mail.',
    AgentTicketCreateSendEmail           => 'Send e-mail',
    AgentTicketCreateToCustomerUser      => 'Contact or e-mail',
    AgentTicketCreateOwnerHelp           => 'Optional. If no owner is selected, the agent creating the ticket becomes the owner.',
    AgentTicketCreateCustomerInfoPanelTitle => 'Customer and contact',
    AgentTicketCreateCustomerInfoEmpty      => 'Select a contact to display all customer and contact information.',
    AgentTicketCreateCustomerInfoLoading    => 'Loading customer and contact information ...',
    AgentTicketCreateCustomerInfoError      => 'The customer and contact information could not be loaded.',
    AgentTicketCreateNoQueuesTitle       => 'No queue available',
    AgentTicketCreateNoQueuesText        => 'Your agent does not have an active queue with permission to create tickets.',
    AgentTicketCreateQueueRequired       => 'Please select a queue.',
    AgentTicketCreateQueueInvalid        => 'The selected queue is invalid or unavailable.',
    AgentTicketCreateCustomerUserRequired => 'Please select a contact or enter a valid e-mail address.',
    AgentTicketCreateRecipientHelp => 'Enter at least 2 characters and select a contact, or enter a complete e-mail address.',
    AgentTicketCreateCustomerUserInvalid => 'The selected contact is invalid or unavailable.',
    AgentTicketCreateCustomerUserEmailMissing => 'The selected contact does not have an e-mail address.',
    AgentTicketCreateSubjectRequired     => 'Please enter a subject.',
    AgentTicketCreateBodyRequired        => 'Please enter a message.',
    AgentTicketCreateOwnerInvalid        => 'The selected owner is invalid or unavailable.',
    AgentTicketCreateResponsibleInvalid  => 'The selected responsible agent is invalid or unavailable.',
    AgentTicketCreateStateInvalid        => 'The selected state is invalid or unavailable.',
    AgentTicketCreatePriorityInvalid     => 'The selected priority is invalid or unavailable.',
    AgentTicketCreateCcInvalid           => 'Please enter a valid CC e-mail address.',
    AgentTicketCreateMailFailed          => 'The e-mail could not be sent. The ticket was not created.',
    TicketCreateNew                 => 'New ticket',
    TicketCreateSubmit              => 'Create ticket',
    TicketCreateFailed              => 'The ticket could not be created.',
    TicketNumber                    => 'Number',
    TicketTitle                     => 'Title',
    TicketQueue                     => 'Queue',
    TicketState                     => 'State',
    TicketPriority                  => 'Priority',
    TicketAge                       => 'Age',
    TicketCustomer                  => 'Customer',
    TicketCustomerUser              => 'Contact',
    TicketOwner                     => 'Owner',
    TicketResponsible               => 'Responsible',
    TicketCreated                   => 'Created',
    TicketChanged                   => 'Changed',
    TicketZoomTitle                 => 'Ticket detail',
    TicketZoomDescription           => 'Ticket details and communication',
    TicketBackToList                => 'Back to list',
    TicketPrintWhole                => 'Print complete ticket',
    TicketPrintArticle              => 'Print article',
    TicketPrintWholeTitle           => 'Complete ticket',
    TicketPrintSingleTitle          => 'Single article',
    TicketPrintTicket               => 'Ticket',
    TicketPrintInternal             => 'Agents only / internal',
    TicketPrintNoArticles           => 'No articles are available for this ticket.',
    TicketPrintEmptyArticle         => '(Empty article)',
    TicketPrintPage                 => 'Page',
    TicketPrintGeneratedAt          => 'Generated at',
    TicketCustomerEmail             => 'E-mail',
    TicketPeople                    => 'People',
    TicketCreatedBy                 => 'Created by',
    TicketChangedBy                 => 'Changed by',
    TicketDates                     => 'Dates',
    TicketArticlesTitle             => 'Communication',
    TicketArticlesPlaceholder       => 'Ticket articles will be added in the next step.',
    TicketArticlesEmptyTitle        => 'No communication yet',
    TicketArticlesEmptyText         => 'This ticket does not have any articles yet.',
    TicketArticleFrom               => 'From',
    TicketArticleTo                 => 'To',
    TicketArticleChannel            => 'Channel',
    TicketArticleVisibility         => 'Visibility',
    TicketArticleVisibilityAgent    => 'Agent only',
    TicketArticleVisibilityCustomer => 'Customer only',
    TicketArticleVisibilityBoth     => 'Agent and customer',
    TicketArticleSenderAgent        => 'Agent',
    TicketArticleSenderCustomer     => 'Customer',
    TicketArticleSenderSystem       => 'System',
    TicketArticleSenderEmail        => 'E-mail',
    TicketArticleSenderUnknown      => 'Unknown',
    TicketArticleAlsoVisibleForCustomer => 'Also visible for customer',
    TicketArticleSubject            => 'Subject',
    TicketArticleBody               => 'Message',
    TicketArticleAttachments        => 'Attachments',
    TicketArticleAttachmentsEmpty   => 'No attachments selected yet.',
    TicketArticleAttachmentsHelp    => 'Selected files are stored with the article and sent with e-mail replies.',
    TicketArticleAttachmentRemove   => 'Remove',
    TicketArticleAttachmentLimitHelp         => 'Maximum size per attachment:',
    TicketArticleAttachmentTooLargeTitle     => 'Attachment too large',
    TicketArticleAttachmentTooLargeMessage   => 'The attachment “{{Filename}}” is {{FileSize}} and exceeds the permitted {{MaxSize}}.',
    TicketArticleAttachmentTooLargeAdmin     => 'Please contact the administrator.',
    TicketArticleAttachmentDialogOK          => 'OK',
    TicketArticleAttachmentTooLargeServer    => 'The attachment “{{Filename}}” exceeds the permitted maximum size of {{MaxSize}}. Please contact the administrator.',
    TicketArticleSubmit             => 'Save reply',
    TicketArticleSendEmail          => 'Send e-mail reply',
    TicketArticleSaveNote           => 'Save note',
    TicketArticleCreateFailed       => 'The reply could not be saved.',
    TicketArticleSendFailed         => 'The e-mail reply could not be sent.',
    TicketArticleBodyRequired       => 'The message must not be empty.',
    TicketArticleRecipientRequired  => 'No recipient was found for the e-mail reply.',
    TicketArticleReplyTo            => 'To',
    TicketArticleReplyCc            => 'CC',
    TicketArticleReplyToHelp        => 'Separate multiple recipients with comma or semicolon.',
    TicketArticleReplyCcHelp        => 'Optional. Separate multiple CC recipients with comma or semicolon.',
    TicketArticleSenderRequired     => 'No sender was found for the e-mail reply.',
    TicketArticleSMTPRequired       => 'No active SMTP transport is configured.',
    TicketReplyTitle                => 'Create reply',
    TicketReplyActionsTitle         => 'Actions',
    TicketReplyByEmail              => 'Send e-mail reply',
    TicketReplyCustomer            => 'Reply',
    TicketToolsOpen                 => 'Open ticket actions',
    TicketToolsClose                => 'Close ticket actions',
    TicketToolsTitle                => 'Ticket actions',
    TicketToolsIntro                => 'Select an action. Changes, links, and forwards are recorded in the ticket with an audit trail.',
    TicketToolsPlaceholder          => 'Visual preparation. This function will be implemented later.',
    TicketToolInternalArticle       => 'Internal article',
    TicketToolInternalArticleHelp   => 'This article is only visible to agents and documents the change in the ticket.',
    TicketToolSaveChange            => 'Save change',
    TicketToolAutocompleteHelp      => 'Enter at least 2 characters, then select an agent.',
    TicketToolCustomerSearchHelp    => 'Enter at least 2 characters, then select a contact with customer.',
    TicketToolSearchNoResults       => 'No results found.',
    TicketToolSearchLoading         => 'Searching ...',
    TicketToolSearchError           => 'Search could not be loaded.',
    TicketToolOwnerSearchPlaceholder => 'Search agent ...',
    TicketToolResponsibleSearchPlaceholder => 'Search agent ...',
    TicketToolCustomerSearchPlaceholder => 'Search contact or customer ...',
    TicketToolInvalidAction         => 'The ticket action is invalid.',
    TicketToolUpdateFailed          => 'The ticket action could not be saved.',
    TicketToolSelectionRequired     => 'Please select a valid entry.',
    TicketToolArticleBodyRequired   => 'The internal article must not be empty.',
    TicketToolNoChange              => 'No change was selected.',
    TicketToolsHistoryPlaceholder   => 'The ticket history will be shown here later.',
    TicketToolPriority              => 'Priority',
    TicketToolOwner                 => 'Change owner',
    TicketToolResponsible           => 'Responsible',
    TicketToolCustomer              => 'Change customer / contact',
    TicketToolQueue                 => 'Change queue',
    TicketToolClose                 => 'Close ticket',
    TicketToolCloseSubmit           => 'Close ticket',
    TicketToolForward               => 'Forward',
    TicketToolLink                  => 'Link',
    TicketToolMerge                 => 'Merge',
    TicketToolHistory               => 'History',
    TicketToolForwardTo             => 'Forward to',
    TicketToolForwardCc             => 'CC',
    TicketToolForwardRecipientHelp  => 'Separate multiple recipients with comma or semicolon.',
    TicketToolForwardCcHelp         => 'Optional. Separate multiple CC recipients with comma or semicolon.',
    TicketToolForwardBody           => 'Message',
    TicketToolForwardBodyHelp       => 'Write new text above. The ticket history below contains only articles visible to customers.',
    TicketToolForwardSend           => 'Send forward',
    TicketToolForwardRecipientRequired => 'Please enter at least one recipient for the forward.',
    TicketToolForwardRecipientInvalid => 'Please enter a valid recipient address.',
    TicketToolForwardSendFailed     => 'The forward could not be sent.',
    TicketToolNote                  => 'Note',
    TicketToolTicketNumber          => 'Ticket number',
    TicketToolTargetTicketNumber    => 'Target ticket number',
    CommonClose                     => 'Close',
    CommonCancel                    => 'Cancel',
    TicketLinkSearchPlaceholder     => 'Search by ticket number or title ...',
    TicketLinkHelp                  => 'The selected ticket is linked in both directions. No notifications are sent.',
    TicketLinkSubmit                => 'Link tickets',
    TicketLinkSelfDenied            => 'A ticket cannot be linked to itself.',
    TicketLinkAlreadyExists         => 'This ticket link already exists.',
    TicketLinkCreateFailed          => 'The ticket link could not be created.',
    TicketLinkTicketNotFound        => 'The selected ticket was not found.',
    TicketLinkPermissionDenied      => 'You are not allowed to change one of the selected tickets.',
    TicketLinkInvalidRequest        => 'The ticket action contains invalid data.',
    TicketLinkTransactionFailed     => 'The ticket action could not be saved completely.',
    TicketLinkTypeRelated           => 'Related ticket',
    TicketLinkTypeSplitChild        => 'Split-off ticket',
    TicketLinkTypeSplitOrigin       => 'Origin ticket',
    TicketLinkTypeMergeTarget       => 'Merged into',
    TicketLinkTypeMergedSource      => 'Merged source ticket',
    TicketLinkedTickets             => 'Linked tickets',
    TicketLinkedTicketsEmpty        => 'No linked tickets are available.',
    TicketMergeHelp                 => 'First select the second ticket and then explicitly choose the direction. All articles and attachments are moved to the target. The source remains as an empty, read-only audit shell.',
    TicketMergeDirection            => 'Merge direction',
    TicketMergeDirectionCurrentIntoSelected => 'move into the selected ticket',
    TicketMergeDirectionSelectedIntoCurrent => 'Move selected ticket into',
    TicketMergeDirectionRequired    => 'Please select the merge direction.',
    TicketMergeConfirmation         => 'I confirm: all articles and attachments are removed from the source ticket and moved to the target ticket.',
    TicketMergeSubmit               => 'Merge ticket',
    TicketMergeConfirmationRequired => 'Please explicitly confirm the merge.',
    TicketMergeSelfDenied           => 'A ticket cannot be merged into itself.',
    TicketMergeCustomerMismatch     => 'Tickets can only be merged when customer and contact are identical.',
    TicketMergeAlreadyMerged        => 'A ticket that has already been merged cannot be used again.',
    TicketMergeNoArticles           => 'The source ticket has no articles.',
    TicketMergeStateMissing         => 'The “merged” ticket state is not available.',
    TicketMergeFailed               => 'The tickets could not be merged.',
    TicketMergedReadOnly            => 'A merged source ticket is read-only.',
    TicketMergedShellTitle           => 'This ticket has been merged',
    TicketMergedShellText            => 'All articles and attachments were moved to the target ticket. This empty source remains only as an audit-safe reference.',
    TicketMergedShellLink            => 'Open target ticket:',
    TicketArticleSplit              => 'Split off',
    TicketArticleSplitTitle         => 'Split article into a new ticket',
    TicketArticleSplitIntro         => 'The article remains in the source ticket and is copied as an immutable snapshot into a new linked ticket.',
    TicketSplitTitleRequired        => 'Please enter a title for the new ticket.',
    TicketSplitQueueDenied          => 'You may not create a ticket in the selected queue.',
    TicketSplitSelectionInvalid     => 'Please check queue, state, priority, owner, and responsible agent.',
    TicketSplitArticleNotFound      => 'The article to split off was not found.',
    TicketSplitCreateFailed         => 'The split-off ticket could not be created.',
    TicketSplitCustomerInherited    => 'Customer and contact are inherited unchanged from the source ticket.',
    TicketSplitCopyAttachments      => 'Copy attachments from this article',
    TicketSplitNoNotifications      => 'No customer or agent notifications are sent. Dynamic fields, checklists, and time entries are not copied.',
    TicketSplitSubmit               => 'Create new ticket',
    TicketArticleCopyFailed         => 'A ticket article could not be copied.',
    TicketArticleAttachmentCopyFailed => 'The article attachments could not be copied.',
    TicketArticleOriginSaveFailed   => 'The article provenance could not be saved.',
    TicketArticleSplitOrigin        => 'Split from',
    TicketArticleMergeOrigin        => 'Copied from',
    TicketCreateNote                => 'Note',
    TicketStatusAfterSubmit         => 'State after saving',
    TicketStatusUpdateFailed        => 'The ticket state could not be set.',
    TicketAttachmentDownloadTitle       => 'Download attachment',
    TicketAttachmentDownloadDescription => 'Download ticket attachment.',
    TicketArticlesOpenAll           => 'Open all',
    TicketArticlesCloseAll          => 'Close all',
    TicketPriorityName_1_very_low => '1 very low',
    TicketPriorityName_2_low      => '2 low',
    TicketPriorityName_3_normal   => '3 normal',
    TicketPriorityName_4_high     => '4 high',
    TicketPriorityName_5_very_high => '5 very high',
    TicketStateName_new             => 'New',
    TicketStateName_open            => 'Open',
    TicketStateName_pending         => 'Pending',
    TicketStateName_pending_reminder => 'Pending reminder',
    TicketStateName_pending_auto_close => 'Pending auto close',
    TicketStateName_pending_auto_close_plus => 'Pending auto close +',
    TicketStateName_pending_auto_close_minus => 'Pending auto close -',
    TicketStateName_closed          => 'Closed',
    TicketStateName_closed_successful => 'Closed successful',
    TicketStateName_closed_unsuccessful => 'Closed unsuccessful',
    TicketStateName_resolved        => 'Resolved',
    TicketStateName_merged          => 'Merged',
    TicketStateName_removed         => 'Removed',
    TicketStateName_deleted         => 'Deleted',
    TicketStateName_escalated       => 'Escalated',
    TicketNotFoundTitle             => 'Ticket not found',
    TicketNotFoundText              => 'The requested ticket does not exist or cannot be opened.',
    ProgramPlaceholderTitle         => 'Program placeholder',
    ProgramPlaceholderText          => 'This program is registered but does not have its own page yet.',
    ErrorTitle                      => 'Error',
    ErrorText                       => 'The requested page could not be displayed.',
    ErrorPageNotFoundTitle          => 'Page not found',
    ErrorPageNotFoundText           => 'The requested program is not registered.',
    ErrorPermissionTitle            => 'Access denied',
    ErrorPermissionText             => 'You do not have permission to open this program.',
    ErrorProgramLoadTitle           => 'Program could not be loaded',
    ErrorProgramLoadText            => 'The registered program module could not be loaded.',
    ErrorProgramRunTitle            => 'Program could not be executed',
    ErrorProgramRunText             => 'The registered program did not return a valid response.',
    ErrorTemplateMissingTitle       => 'Program template missing',
    ErrorTemplateMissingText        => 'The registered program did not define an output template.',
    AgentPreferencesTitle            => 'Personal settings',
    AgentPreferencesDescription      => 'Edit your personal agent settings.',
    CustomerPreferencesTitle         => 'Personal settings',
    CustomerPreferencesDescription   => 'Edit your personal customer settings.',
    PreferencesPassword              => 'Change password',
    PreferencesCurrentPassword       => 'Current password',
    PreferencesNewPassword           => 'New password',
    PreferencesNewPasswordRepeat     => 'Repeat new password',
    PreferencesPasswordAllFieldsRequired => 'To change the password, current password, new password and repeated password must be filled in.',
    PreferencesPasswordRepeatMismatch => 'The new password and the repeated password do not match.',
    PreferencesPasswordTooShort      => 'The new password must be at least 8 characters long.',
    PreferencesPasswordCurrentWrong  => 'The current password is wrong.',
    PreferencesPasswordUserNotFound  => 'The user account could not be found.',
    PreferencesPasswordCouldNotBeSaved => 'The new password could not be saved.',
    PreferencesSaved                 => 'Your personal settings were saved.',
    PreferencesGeneral               => 'General',
    PreferencesLanguage              => 'Language',
    PreferencesTimezone              => 'Timezone',
    PreferencesStartPage             => 'Start page after sign-in',
    PreferencesTicketListLimit       => 'Tickets per page',
    PreferencesTheme                 => 'Theme',
    PreferencesThemeHint             => 'The theme applies only to agent pages. Administration pages remain unchanged.',
    ThemeDefault                     => 'Default',
    ThemeChristmas                   => 'Christmas',
    PreferencesNotifications         => 'Notifications',
    PreferencesNotificationsHint     => 'Agents can disable only optional notifications. Escalation and pending-reached notifications are always sent.',
    PreferencesNotifyNewTicket       => 'New ticket in my queues',
    PreferencesNotifyCustomerReply   => 'Customer reply in tickets from my queues',
    PreferencesNotifyAssignedTicket  => 'Ticket assigned to me',
    PreferencesNotifyStatusChange    => 'Ticket status changed',
    PreferencesAbsence               => 'Absence',
    PreferencesAbsenceActive         => 'I am absent',
    PreferencesAbsenceStart          => 'Absent from',
    PreferencesAbsenceEnd            => 'Absent until',
    PreferencesReplacementAgent      => 'Replacement agent',
    PreferencesNoReplacement         => 'No replacement',
    PreferencesAbsenceNote           => 'Absence note',
    PreferencesTicketWork            => 'Ticket work',
    PreferencesAfterReplyAction      => 'After sending a reply',
    PreferencesAfterReplyStay        => 'Stay in ticket',
    PreferencesAfterReplyList        => 'Back to ticket list',
    PreferencesAfterReplyNext        => 'Open next ticket',
    CalendarSaved                          => 'Calendar was saved.',
    CalendarHolidaySaved                   => 'Holiday was saved.',
    CalendarCreateHint                     => 'Default working times Monday to Friday 08:00-17:00 and fixed holidays are created automatically.',
    CalendarWorkingTimes                   => 'Working times',
    CalendarWorkingTimesHint               => 'These times will be used later for escalations, pending times and SLA calculations.',
    CalendarWorkingFrom                    => 'From',
    CalendarWorkingTo                      => 'To',
    CalendarHolidays                       => 'Holidays',
    CalendarHolidaysHint                   => 'Fixed and individual holidays for this calendar.',
    CalendarHolidayDate                    => 'Date',
    CalendarHolidayType                    => 'Type',
    CalendarHolidayRecurring               => 'Recurring yearly',
    CalendarHolidaySingle                  => 'Single date',
    CalendarHolidayRecurringAnnual         => 'Recurring yearly',
    CalendarHolidayCreate                  => 'Create holiday',
    CalendarHolidayDatePlaceholder         => 'YYYY-MM-DD / MM-DD',
    CalendarHolidayDefaultNewYear          => q{New Year's Day},
    CalendarHolidayDefaultLabourDay        => 'Labour Day',
    CalendarHolidayDefaultChristmasEve     => 'Christmas Eve',
    CalendarHolidayDefaultChristmasDay     => 'Christmas Day',
    CalendarHolidayDefaultBoxingDay        => 'Boxing Day',
    CalendarHolidayDefaultNewYearEve       => q{New Year's Eve},
    CalendarHolidayNameAndDateRequired     => 'Holiday name and date are required.',
    CalendarHolidayRecurringDateInvalid    => 'A recurring yearly holiday must use MM-DD or YYYY-MM-DD.',
    CalendarHolidaySingleDateInvalid       => 'A single holiday must use YYYY-MM-DD.',
    CalendarHolidayCreateFailed            => 'Holiday could not be created.',
    CalendarHolidayRequired                => 'Holiday is required.',
    CalendarHolidayDeactivateFailed        => 'Holiday could not be deactivated.',
    CalendarHolidayActiveChangeFailed      => 'Holiday status could not be changed.',
    TicketEscalation                   => 'Escalation',
    TicketEscalationOrPending          => 'Escalation / Pending',
    TicketEscalations                  => 'Escalations',
    TicketEscalationState              => 'Escalation state',
    TicketEscalationStateNormal        => 'Compliant / on schedule',
    TicketEscalationStateWarning       => 'At risk',
    TicketEscalationStateEscalated     => 'Breached',
    TicketPendingReached               => 'Pending reached',
    TicketEscalatedSince              => 'Escalated for:',
    TicketFirstResponseDueAt           => 'First response due',
    TicketFirstResponseAt              => 'First response done',
    TicketUpdateDueAt                  => 'Update due',
    TicketSolutionDueAt                => 'Solution due',
    TicketSolutionAt                   => 'Solved at',
    TicketPendingUntil                => 'Pending until',
    TicketPendingUntilHelp            => 'Required when a pending state is selected. Escalations pause until this time.',
    TicketPendingUntilRequired        => 'Please enter a pending-until date.',
    TicketPendingUntilFutureRequired  => 'The pending-until date must be in the future.',
    TicketEscalationCheckFailed       => 'Escalation check could not be executed.',
    TicketEscalationUpdateFailed       => 'Escalation times could not be updated.',
    CalendarMonday                         => 'Monday',
    CalendarTuesday                        => 'Tuesday',
    CalendarWednesday                      => 'Wednesday',
    CalendarThursday                       => 'Thursday',
    CalendarFriday                         => 'Friday',
    CalendarSaturday                       => 'Saturday',
    CalendarSunday                         => 'Sunday',

    AdminAgentNotificationsTitle       => 'Agent notifications',
    AdminAgentNotificationsDescription => 'Edit e-mail templates for agent notifications.',
    AdminAgentNotificationsList        => 'Agent notifications',
    AdminAgentNotificationEdit         => 'Edit agent notification',
    AdminAgentNotificationType         => 'Notification type',
    AdminAgentNotificationText         => 'HTML e-mail text',
    AdminAgentNotificationPlaceholders => 'Available placeholders',
    AdminAgentNotificationPlaceholdersHint => 'Placeholders can be used in the subject and in the CKEditor text. {{Ticket.LinkHTML}} creates a clickable ticket link.',
    AdminCustomerAutoResponsesTitle       => 'Auto responses',
    AdminCustomerAutoResponsesDescription => 'Manage automatic email responses to customer users for customer-related events.',
    AdminCustomerAutoResponsesList        => 'Automatic responses',
    AdminCustomerAutoResponseEdit         => 'Edit automatic response',
    AdminCustomerAutoResponseAction       => 'Triggering action',
    AdminCustomerAutoResponseText         => 'HTML email text',
    AdminCustomerAutoResponsePlaceholders => 'Available placeholders',
    AdminCustomerAutoResponsePlaceholdersHint => 'Placeholders can be used in the subject and CKEditor text. {{Ticket.LinkHTML}} creates a customer-portal ticket link. Incoming placeholders are intended especially for rejected emails.',
    AdminContentTemplatePlaceholders => 'Available placeholders',
    AdminContentTemplatePlaceholdersHint => 'Placeholders can be used in the CKEditor text and are replaced automatically when the salutation or signature is inserted. For new tickets, the ticket number and ticket link are added after saving.',
    AdminSubject                       => 'Subject',
    AdminText                          => 'Text',
    AdminEdit                          => 'Edit',

    AdminSystemSettingsTitle       => 'System settings',
    AdminSystemSettingsDescription => 'Manage global system values such as URL, FQDN and default language.',
    AdminSystemSettingsList        => 'System settings',
    AdminSystemSettingEdit       => 'Edit system setting',
    AdminSystemSettingsSaved       => 'System settings were saved.',
    AdminSystemSettingKey          => 'Key',
    AdminValue                     => 'Value',
    AdminDefaultValue              => 'Default value',
    AdminNoEntries                 => 'No entries available.',
    SystemSettingHTTPType          => 'HTTP type',
    SystemSettingHTTPTypeDescription => 'Protocol for external system links.',
    SystemSettingFQDN              => 'FQDN',
    SystemSettingFQDNDescription   => 'Full hostname without http/https and without path.',
    SystemSettingWebPath           => 'Web path',
    SystemSettingWebPathDescription => 'Optional path if Qisutu does not run directly in the web root, e.g. /qisutu.',
    SystemSettingDefaultLanguage   => 'Default system language',
    SystemSettingDefaultLanguageDescription => 'Default language if a user has no personal language setting.',
    SystemSettingAdminEmail                => 'Administrator email address',
    SystemSettingAdminEmailDescription     => 'Central administrative contact address for this Qisutu installation.',
    SystemSettingTimezone                  => 'System timezone',
    SystemSettingTimezoneDescription       => 'IANA timezone used as the installation default.',
    SystemSettingTicketHook        => 'Ticket hook',
    SystemSettingTicketHookDescription => 'Identifier for ticket numbers in e-mail subjects, e.g. Qisutu for [Qisutu#202607080001].',
    SystemSettingAttachmentMaxSize           => 'Attachment size limit',
    SystemSettingAttachmentMaxSizeDescription => 'Maximum permitted size per attachment for incoming e-mail, outgoing e-mail and ticket articles. The value is specified in MB.',
    TicketCustomerPortalSettingsGroup => 'Customer portal',
    SystemSettingCustomerStandardTicketWithForms => 'Standard ticket in addition to forms',
    SystemSettingCustomerStandardTicketWithFormsDescription => 'Allows customers to create a standard ticket even when ticket forms are available to them.',
    CustomerStandardTicketTitle => 'Standard ticket',
    CustomerStandardTicketDescription => 'Create a ticket without a predefined form.',
    CustomerStandardTicketOpen => 'Create standard ticket',

    AdminDynamicFieldsTitle                 => 'Dynamic fields',
    AdminDynamicFieldsDescription           => 'Manage dynamic ticket fields and assign them to queues.',
    AdminDynamicFieldsList                  => 'Dynamic fields',
    AdminDynamicFieldCreate                 => 'Create dynamic field',
    AdminDynamicFieldEdit                   => 'Edit dynamic field',
    AdminDynamicFieldAssignQueues           => 'Assign queues',
    AdminDynamicQueueAssignFields           => 'Assign dynamic fields',
    AdminDynamicFieldQueueAssignment        => 'Dynamic fields ↔ queues',
    AdminDynamicFieldQueueAssignmentDescription => 'Edit assignments either from a dynamic field or from a queue.',
    AdminDynamicFieldNameAndLabelRequired   => 'Database field and at least one translation are required.',
    AdminDynamicFieldDatabaseNameInvalid    => 'The database field must start with a letter and may contain only letters, numbers and underscores.',
    AdminDynamicFieldCreateFailed           => 'The dynamic field could not be created.',
    AdminDynamicFieldUpdateFailed           => 'The dynamic field could not be saved.',
    AdminDynamicFieldDeleteFailed           => 'The dynamic field could not be deleted.',
    AdminDynamicFieldTranslationRequired    => 'At least one complete translation is required.',
    AdminDynamicFieldAssignmentSaveFailed   => 'The assignment could not be saved.',
    AdminDynamicFieldLoadFailed             => 'The dynamic fields could not be loaded.',
    AdminDynamicFieldPossibleValues          => 'Possible values',
    AdminDynamicFieldPossibleValuesHint      => 'Create at least one key and display value for dropdown and multiselect fields.',
    AdminDynamicFieldOptionKey               => 'Key',
    AdminDynamicFieldOptionValue             => 'Display value',
    AdminDynamicFieldOptionTranslations      => 'Translations of possible values',
    AdminDynamicFieldOptionTranslationsHint  => 'Display values can be translated for each language. If no translation is entered, the original display value is used.',
    AdminDynamicFieldOptionTranslationInvalid => 'A translation of a possible value is invalid.',
    AdminDynamicFieldOptionDefault           => 'Default value',
    AdminDynamicFieldOptionAdd               => 'Add value',
    AdminDynamicFieldShowEmptyValue          => 'Show empty value',
    AdminDynamicFieldDefaultHint             => 'If no empty value is shown, at least one default value must be selected. Dropdown allows one default value; multiselect allows several.',
    AdminDynamicFieldOptionRequired          => 'Dropdown and multiselect fields require at least one possible value.',
    AdminDynamicFieldOptionInvalid           => 'Every possible value requires a valid key and display value.',
    AdminDynamicFieldOptionDuplicate         => 'The keys of the possible values must be unique.',
    AdminDynamicFieldDefaultRequired         => 'A default value is required when no empty value is shown.',
    AdminDynamicFieldDefaultInvalid          => 'The selected default value is invalid.',
    AdminDynamicFieldOptionSaveFailed        => 'The possible values could not be saved.',
    TicketDynamicFieldMultiSelectHint        => 'Select multiple values with Ctrl or Cmd.',
    TicketDynamicFieldEmptyValue             => '-',
    AdminInactive                           => 'Inactive',
    AgentTicketCreateQueuePlaceholder       => 'Please select a queue',
    TicketDynamicFields                     => 'Dynamic fields',
    TicketDynamicFieldRequired              => 'Please complete all required dynamic fields.',
    TicketDynamicFieldInvalid               => 'At least one dynamic field contains an invalid value.',
    TicketDynamicFieldSaveFailed            => 'The dynamic fields could not be saved.',

    AdminServicesTitle                    => 'Services',
    AdminServicesDescription              => 'Manage services and subservices.',
    AdminServicesList                     => 'Services',
    AdminService                          => 'Service',
    AdminServiceCreate                    => 'Create service',
    AdminServiceEdit                      => 'Edit service',
    AdminServicesEmpty                    => 'No services have been created yet.',
    AdminParentService                    => 'Parent service',
    AdminServiceNameRequired              => 'The service name is required.',
    AdminServiceParentInvalid             => 'The selected parent service is invalid.',
    AdminServiceCreateFailed              => 'The service could not be created.',
    AdminServiceUpdateFailed              => 'The service could not be saved.',
    AdminServiceLoadFailed                => 'The services could not be loaded.',
    AdminServiceNotFound                  => 'The service was not found.',
    AdminSLAsTitle                        => 'SLAs',
    AdminSLAsDescription                  => 'Manage service level agreements with calendars and escalation times.',
    AdminSLAsList                         => 'SLAs',
    AdminSLA                              => 'SLA',
    AdminSLACreate                        => 'Create SLA',
    AdminSLAEdit                          => 'Edit SLA',
    AdminSLAsEmpty                        => 'No SLAs have been created yet.',
    AdminSLAUpdateMode                    => 'Update mode',
    AdminSLAUpdateModeCustomer            => 'After customer response',
    AdminSLAUpdateModeRegular             => 'Regular update',
    AdminSLADefaultForService             => 'Default SLA for this service',
    AdminSLASnapshotHint                  => 'Changes apply to new assignments. Existing tickets keep their stored SLA values.',
    AdminSLARequired                      => 'Name, service, calendar and update mode are required.',
    AdminSLACreateFailed                  => 'The SLA could not be created.',
    AdminSLAUpdateFailed                  => 'The SLA could not be saved.',
    AdminSLASaveFailed                    => 'The SLA could not be saved.',
    AdminSLALoadFailed                    => 'The SLAs could not be loaded.',
    AdminSLANotFound                      => 'The SLA was not found.',
    AdminDefault                         => 'Default',
    AdminCustomerServicesTitle            => 'Customer services',
    AdminCustomerServicesDescription      => 'Assign services and SLAs to individual customers.',
    AdminCustomerServiceCustomerSelect    => 'Select customer',
    AdminCustomerServicesFor              => 'Services and SLAs for',
    AdminCustomerServicesHint             => 'Once at least one assignment exists, the customer can only use the services enabled here.',
    AdminAssigned                         => 'Assigned',
    AdminCustomerServiceCustomerRequired  => 'Please select a valid customer.',
    AdminCustomerServiceSLARequired       => 'An SLA must be selected for every enabled service.',
    AdminCustomerServiceSLAInvalid        => 'At least one service/SLA assignment is invalid.',
    AdminCustomerServiceSaveFailed        => 'The customer services could not be saved.',
    AdminCustomerServiceLoadFailed        => 'The customer services could not be loaded.',
    AdminTicketStatesTitle                => 'Ticket states',
    AdminTicketStatesDescription          => 'Manage ticket states and SLA pauses.',
    AdminTicketStatesList                 => 'Ticket states',
    AdminTicketState                      => 'Ticket state',
    AdminTicketStateType                  => 'State type',
    AdminTicketStateCreate                => 'Create ticket state',
    AdminTicketStateEdit                  => 'Edit ticket state',
    AdminSLAPause                         => 'Pause SLA time',
    AdminSLAPauseHint                     => 'When SLA pause is enabled, first response, update and solution deadlines are paused while the ticket is in this state.',
    AdminTicketStateRequired              => 'Name and state type are required.',
    AdminTicketStateCreateFailed          => 'The ticket state could not be created.',
    AdminTicketStateUpdateFailed          => 'The ticket state could not be saved.',
    AdminTicketStateLoadFailed            => 'The ticket states could not be loaded.',
    AdminTicketStateNotFound              => 'The ticket state was not found.',
    TicketService                         => 'Service',
    TicketServiceSelect                   => 'Select service',
    TicketServiceOptional                 => 'Optional. The SLA is determined automatically from customer and service.',
    TicketServiceLoadFailed               => 'The available services could not be loaded.',
    TicketServiceNotAvailable             => 'The selected service is not available for this customer.',
    TicketSLA                             => 'SLA',
    TicketSLACalendar                     => 'SLA calendar',
    TicketSLASource                       => 'SLA source',
    TicketSLASourceCustomer               => 'Customer assignment',
    TicketSLASourceDefault                => 'Service default',
    TicketSLASourceQueue                  => 'Queue fallback',
    TicketSLAFirstResponseMinutes         => 'First response in minutes',
    TicketSLAUpdateMinutes                => 'Update in minutes',
    TicketSLASolutionMinutes              => 'Solution in minutes',
    TicketSLAUpdateMode                   => 'Update mode',
    TicketServiceAndSLA                   => 'Service and SLA',
    TicketServiceChange                   => 'Change service',
    TicketServiceNoSelection              => 'No service / use queue escalations',
    TicketServiceChangeFailed             => 'Service and SLA could not be changed.',

    TicketToolService                        => 'Service / SLA',
    TicketServiceUpdateFailed                => 'Service and SLA could not be saved.',
    TicketSLAPauseStatus                     => 'SLA time paused',
    CommonYes                                => 'Yes',
    CommonNo                                 => 'No',
    TicketServiceNoLongerAvailable           => 'The previous service is no longer available for the current customer and is shown for information only.',

    AdminActions                               => 'Actions',
    AdminTicketStateTypeNew                    => 'New',
    AdminTicketStateTypeOpen                   => 'Open',
    AdminTicketStateTypePending                => 'Pending',
    AdminTicketStateTypeClosed                 => 'Closed',
    AdminSLAServiceChangeAssigned              => 'The service cannot be changed while this SLA is assigned to a customer.',
    AdminServiceNameTooLong                    => 'The service name may contain at most 255 characters.',
    AdminServiceFullNameTooLong                => 'The complete service path may contain at most 750 characters.',
    AdminSLANameTooLong                        => 'The SLA name may contain at most 255 characters.',

    AdminAutomationTriggersTitle                 => 'Triggers',
    AdminAutomationTriggersDescription           => 'Manage event-driven rules for tickets.',
    AdminAutomationTriggersList                  => 'Triggers',
    AdminAutomationSchedulesTitle                => 'Scheduled rules',
    AdminAutomationSchedulesDescription          => 'Select and process tickets automatically on a schedule.',
    AdminAutomationSchedulesList                 => 'Scheduled rules',
    AdminAutomationJobsTitle                     => 'Automation jobs',
    AdminAutomationJobsDescription               => 'Monitor automation execution, retries and errors.',
    AdminAutomationJobsList                      => 'Jobs',
    AdminAutomationTriggerCreate                 => 'Create trigger',
    AdminAutomationTriggerEdit                   => 'Edit trigger',
    AdminAutomationScheduleCreate                => 'Create scheduled rule',
    AdminAutomationScheduleEdit                  => 'Edit scheduled rule',
    AutomationName                               => 'Name',
    AutomationEvent                              => 'Event',
    AutomationSchedule                           => 'Schedule',
    AutomationNextRun                            => 'Next run',
    AutomationTicketSelection                    => 'Select tickets',
    AutomationTicketChanges                      => 'Changes to tickets',
    AutomationRulesEmpty                         => 'No rules have been created yet.',
    AutomationExpandCollapse                     => 'expand/collapse',
    AutomationScheduleType                       => 'Execution',
    AutomationEveryMinutes                       => 'Every X minutes',
    AutomationHourly                             => 'Hourly',
    AutomationDaily                              => 'Daily',
    AutomationWeekly                             => 'Weekly',
    AutomationMonthly                            => 'Monthly',
    AutomationIntervalMinutes                    => 'Interval in minutes',
    AutomationMinuteOfHour                       => 'Minute of hour',
    AutomationTime                               => 'Time',
    AutomationWeekday                            => 'Weekday',
    AutomationMonthday                           => 'Day of month',
    AutomationMonday                             => 'Monday',
    AutomationTuesday                            => 'Tuesday',
    AutomationWednesday                          => 'Wednesday',
    AutomationThursday                           => 'Thursday',
    AutomationFriday                             => 'Friday',
    AutomationSaturday                           => 'Saturday',
    AutomationSunday                             => 'Sunday',
    AutomationFreeText                           => 'Full text and ticket identifier',
    AutomationTicketData                         => 'Ticket data',
    AutomationTimes                              => 'Periods and age',
    AutomationNoOwner                            => 'Only tickets without owner',
    AutomationNoResponsible                      => 'Only tickets without responsible agent',
    AutomationChangedOlderMinutes                => 'Last change older than (minutes)',
    AutomationCustomerReplyOlderMinutes          => 'Last customer reply older than (minutes)',
    AutomationAgentReplyOlderMinutes             => 'Last agent reply older than (minutes)',
    AutomationMultiSelectEmpty                   => 'No selection',
    AutomationMultiSelectChoose                  => 'Select',
    AutomationMultiSelectSelected                => 'selected',
    AutomationMultiSelectMore                    => 'more',
    AutomationMultiSelectSearch                  => 'Search entries ...',
    AutomationMultiSelectSelectAll               => 'Select all visible',
    AutomationMultiSelectClear                   => 'Clear selection',
    AutomationMultiSelectApply                   => 'Apply',
    AutomationMultiSelectCancel                  => 'Cancel',
    AutomationMultiSelectClose                   => 'Close selection dialog',
    AutomationMultiSelectDialogTitle             => 'Multiple selection',
    AutomationPreview                            => 'Check matches',
    AutomationTicketsFound                       => 'Tickets found',
    AutomationFieldChanges                       => 'Change ticket fields',
    AutomationKeepValue                          => 'Keep unchanged',
    AutomationSetValue                           => 'Set',
    AutomationClearValue                         => 'Clear',
    AutomationRelativeMinutes                    => 'Pending for minutes from execution',
    AutomationCommunication                      => 'Note, email and agent notification',
    AutomationAddNote                            => 'Create internal/public note',
    AutomationSendCustomerEmail                  => 'Send email to customer',
    AutomationDeleteTickets                      => 'Delete tickets completely',
    AutomationDeleteWarning                      => 'The selected tickets will be permanently deleted with all articles, attachments, dynamic field values and related records. Stored attachment files will also be removed physically.',
    AutomationDeleteEnable                       => 'Enable complete ticket deletion',
    AutomationDeleteConfirm                      => 'Enter DELETE exactly to confirm',
    AutomationNameRequired                       => 'Please enter a name.',
    AutomationTypeInvalid                        => 'Invalid automation type.',
    AutomationEventRequired                      => 'Please select an event.',
    AutomationDeleteConfirmationInvalid          => 'Enter DELETE exactly to confirm complete deletion.',
    AutomationDeleteNeedsCondition               => 'A deletion rule must explicitly restrict the affected tickets. Selecting all tickets is not allowed.',
    AutomationDeleteExclusive                    => 'Complete ticket deletion cannot be combined with other ticket changes.',
    AutomationActionRequired                     => 'Please select at least one automatic change.',
    AutomationAllStatuses                        => 'All statuses',
    AutomationStatusPending                      => 'Pending',
    AutomationStatusRunning                      => 'Running',
    AutomationStatusSuccessful                   => 'Successful',
    AutomationStatusFailed                       => 'Failed',
    AutomationStatusCancelled                    => 'Cancelled',
    AutomationRule                               => 'Rule',
    AutomationJobType                            => 'Job type',
    AutomationStatus                             => 'Status',
    AutomationAttempts                           => 'Attempts',
    AutomationScheduledAt                        => 'Scheduled',
    AutomationFinishedAt                         => 'Finished',
    AutomationError                              => 'Error',
    AutomationRetry                              => 'Run again',
    AutomationCancel                             => 'Cancel',
    AutomationJobsEmpty                          => 'No jobs available.',
    TicketNoteCustomerVisible                    => 'Also visible to customer',

    AutomationScheduleInvalid                    => 'The selected schedule is invalid.',
    AutomationOwnerRequired                      => 'Please select the owner to set.',
    AutomationResponsibleRequired                => 'Please select the responsible agent to set.',
    AutomationServiceRequired                    => 'Please select the service to set.',
    AutomationNoteBodyRequired                   => 'A message is required for the automatic note.',
    TicketSearchSolvedAt                             => 'Solved at',
    TicketFirstResponseDue                           => 'First response due',
    TicketUpdateDue                                  => 'Update due',
    TicketSolutionDue                                => 'Solution due',
    AutomationAgentNotify                            => 'Notify agents',
    AutomationAgentNotifyNone                        => 'No agent notification',
    AutomationAgentNotifyQueue                       => 'All authorised agents of the current queue',
    AutomationAgentNotifyAgent                       => 'Notify a specific agent',
    AutomationAgentNotifyPlaceholders                => 'Available placeholders: {{Agent.FullName}}, {{Ticket.Number}}, {{Ticket.Title}}, {{Ticket.Queue}}',
    AutomationAgentNotifyModeInvalid                 => 'The agent notification mode is invalid.',
    AutomationAgentNotifyUserRequired                => 'Please select the agent to notify.',
    AutomationAgentNotifyBodyRequired                => 'A message is required for the agent notification.',
    TicketSearchChangedAt                            => 'Changed',
    TicketSearchCreatedAt                            => 'Created',
    TicketSearchEscalation                           => 'SLA / escalation',
    TicketSearchText                                 => 'Search text',
    TicketStatus                                     => 'Status',
    TicketSubject                                    => 'Subject',
    AutomationStateInvalid                           => 'The selected ticket status is invalid.',
    AutomationPendingMinutesRequired                 => 'A pending time in minutes is required for a pending status.',
    AutomationEmailBodyRequired                  => 'A message is required for the automatic customer email.',
    AdminResponseTemplatesTitle                    => 'Response templates',
    AdminResponseTemplatesDescription              => 'Manage response templates with CKEditor, attachments and queue assignments.',
    AdminResponseTemplatesList                     => 'Response templates',
    AdminResponseTemplateCreate                    => 'Create response template',
    AdminResponseTemplateEdit                      => 'Edit response template',
    AdminResponseTemplateContent                   => 'Template text',
    AdminResponseTemplateContentHelp               => 'The text is inserted between salutation and signature when replying.',
    AdminResponseTemplateContentPreview            => 'Text preview',
    AdminResponseTemplateQueues                    => 'Queues',
    AdminResponseTemplateAttachments               => 'Attachments',
    AdminResponseTemplateAddAttachments            => 'Add more attachments',
    AdminResponseTemplateExistingAttachments       => 'Existing attachments',
    AdminResponseTemplateNoAttachments             => 'This response template has no attachments.',
    AdminResponseTemplateAttachmentHelp             => 'Multiple files are supported. Maximum size per file:',
    AdminResponseTemplateAttachmentTooLarge         => 'Attachment “{{Filename}}” exceeds the permitted maximum size of {{MaxSize}}.',
    AdminResponseTemplateAssignQueues               => 'Assign queues',
    AdminResponseQueueAssignTemplates               => 'Assign response templates',
    AdminResponseTemplateQueueAssignmentTitle       => 'Response templates ↔ Queues',
    AdminResponseTemplateQueueAssignmentDescription => 'Assignments can be maintained from either the response template or the queue.',
    AdminResponseTemplateSaveFailed                 => 'The response template could not be saved.',
    AdminResponseTemplateDeactivateFailed           => 'The response template could not be deactivated.',
    AdminResponseTemplateAttachmentDeleteFailed     => 'The template attachment could not be deleted.',
    AdminResponseTemplateAssignmentSaveFailed       => 'The assignment could not be saved.',
    AdminResponseTemplateNotFound                   => 'The response template was not found.',
    AdminResponseTemplateQueueNotFound              => 'The queue was not found.',
    TicketResponseTemplate                          => 'Response template',
    TicketResponseTemplateNone                      => 'No response template',
    TicketResponseTemplateHelp                      => 'The template text is inserted between salutation and signature. Template attachments are added automatically.',
    TicketResponseTemplateLoadFailed                => 'The response template could not be loaded.',
    TicketResponseTemplateAttachmentsTitle          => 'Attachments from response template',
    TicketResponseTemplateAttachmentRemove          => 'Do not send',

    AdminChecklistsTitle                          => 'Checklists',
    AdminChecklistsDescription                    => 'Manage checklist templates with queue, service and customer assignments.',
    AdminChecklistsList                           => 'Checklist templates',
    AdminChecklistCreate                          => 'Create checklist',
    AdminChecklistEdit                            => 'Edit checklist',
    AdminChecklistUsage                           => 'Usage',
    AdminChecklistUsageAutomatic                  => 'Add automatically',
    AdminChecklistUsageManual                     => 'Available manually',
    AdminChecklistUsageBoth                       => 'Automatic and manual',
    AdminChecklistItems                           => 'Checklist items',
    AdminChecklistItemsHelp                       => 'Every item requires a short name and a precise task description. Required items must be completed before the ticket can be closed.',
    AdminChecklistItemAdd                         => 'Add item',
    AdminChecklistItemText                        => 'Checklist item name',
    AdminChecklistItemDescription                 => 'Task description',
    AdminChecklistRequiredBeforeClose             => 'Required before closing',
    AdminChecklistRequiredItems                   => 'Required items',
    AdminChecklistQueues                          => 'Queues',
    AdminChecklistServices                        => 'Services',
    AdminChecklistCustomers                       => 'Customers',
    AdminChecklistAssignQueues                    => 'Assign queues',
    AdminChecklistAssignServices                  => 'Assign services',
    AdminChecklistAssignCustomers                 => 'Assign customers',
    AdminChecklistQueueAssignTemplates            => 'Assign checklists to queue',
    AdminChecklistServiceAssignTemplates          => 'Assign checklists to service',
    AdminChecklistCustomerAssignTemplates         => 'Assign checklists to customer',
    AdminChecklistAssignments                     => 'Checklist assignments',
    AdminChecklistAssignmentsDescription          => 'Assignments can be maintained from the checklist or from queue, service and customer.',
    AdminChecklistNone                            => 'No checklist templates have been created yet.',
    AdminChecklistNameRequired                    => 'A checklist name is required.',
    AdminChecklistItemRequired                    => 'At least one checklist item is required.',
    AdminChecklistItemNameRequired                => 'Every checklist item requires a name.',
    AdminChecklistItemDescriptionRequired         => 'Every checklist item requires a task description.',
    AdminChecklistSaveFailed                      => 'The checklist could not be saved.',
    AdminChecklistDeactivateFailed                => 'The checklist could not be deactivated.',
    AdminChecklistAssignmentSaveFailed            => 'The checklist assignment could not be saved.',
    AdminChecklistNotFound                        => 'The checklist template was not found.',
    AdminChecklistAssignmentTargetNotFound        => 'The assignment target was not found.',
    TicketChecklists                              => 'Checklists',
    TicketChecklistProgress                       => 'Checklist progress',
    TicketChecklistNone                           => 'This ticket has no checklist yet.',
    TicketChecklistAdd                            => 'Add checklist',
    TicketChecklistAddButton                      => 'Add',
    TicketChecklistRemove                         => 'Remove checklist',
    TicketChecklistRemoveConfirm                  => 'Remove this checklist from the ticket?',
    TicketChecklistRequired                       => 'Required',
    TicketChecklistDetails                        => 'Details',
    TicketChecklistDetailsTitle                   => 'Task description',
    TicketChecklistAddFailed                      => 'The checklist could not be added to the ticket.',
    TicketChecklistRemoveFailed                   => 'The checklist could not be removed.',
    TicketChecklistItemSaveFailed                 => 'The checklist item could not be saved.',
    TicketChecklistTemplateNotAvailable           => 'This checklist template is not available for the ticket.',
    TicketChecklistChangeDenied                   => 'The checklist may not be changed.',
    TicketChangeAccessDenied                      => 'You have read-only access and may not change this ticket.',
    TicketChecklistAutomaticCreateFailed          => 'Automatic checklists could not be created.',
    TicketChecklistCloseBlocked                   => 'The ticket cannot be closed because required checklist items are open.',
    TicketChecklistCloseCheckFailed               => 'Required checklist items could not be checked.',
    AutomationChecklistTemplates                  => 'Checklist templates',
    AutomationChecklistHasOpen                    => 'Ticket has open checklist items',
    AutomationChecklistHasCompleted               => 'Ticket has a completed checklist',
    AutomationChecklistOpenRequired               => 'Open required items exist',
    AutomationChecklistAllRequiredDone            => 'All required items are completed',
    AutomationChecklistAdd                        => 'Add checklists',
    AutomationChecklistRemove                     => 'Remove checklists',
    AutomationChecklistSetItem                    => 'Change checklist item',
    AutomationChecklistMarkDone                   => 'Mark as completed (clear to reopen)',
    AutomationChecklistSetItemHelp                => 'Select a template and one of its items.',
    AutomationChecklistItemRequired               => 'A template and item are required for the checklist action.',
    AutomationChecklistItemInvalid                => 'The selected checklist item does not belong to the selected template.',

    AdminPostmasterFiltersTitle                      => 'Postmaster filters',
    AdminPostmasterFiltersDescription                => 'Recognize incoming emails by conditions and automatically change ticket and article properties.',
    PostmasterFilterList                             => 'Postmaster filters',
    PostmasterFilterListDescription                  => 'Filters are processed in ascending order. Several matching filters can influence the same email.',
    PostmasterFilterCreate                           => 'Create postmaster filter',
    PostmasterFilterEdit                             => 'Edit postmaster filter',
    PostmasterFilterNone                             => 'No postmaster filter has been configured yet.',
    PostmasterFilterLogTitle                         => 'Processing log',
    PostmasterFilterLogDescription                   => 'The latest incoming emails and the result of postmaster filter processing.',
    PostmasterFilterLogNone                          => 'No postmaster filter processing has been logged yet.',
    PostmasterFilterNameRequired                     => 'Enter a filter name.',
    PostmasterFilterNameTooLong                      => 'The filter name is too long.',
    PostmasterFilterNameExists                       => 'A postmaster filter with this name already exists.',
    PostmasterFilterNotFound                         => 'The postmaster filter was not found.',
    PostmasterFilterLoadFailed                       => 'The postmaster filters could not be loaded.',
    PostmasterFilterSaveFailed                       => 'The postmaster filter could not be saved.',
    PostmasterFilterConditionRequired                => 'Add at least one condition.',
    PostmasterFilterActionRequired                   => 'Add at least one action.',
    PostmasterFilterConditionInvalid                 => 'A condition is invalid.',
    PostmasterFilterOperatorInvalid                  => 'The selected operator does not match the field.',
    PostmasterFilterConditionValueRequired           => 'Enter a value for every condition.',
    PostmasterFilterNumberInvalid                    => 'Enter a valid number.',
    PostmasterFilterBooleanInvalid                   => 'Select Yes or No.',
    PostmasterFilterHeaderInvalid                    => 'Enter a valid email header name.',
    PostmasterFilterRegexInvalid                     => 'The regular expression is invalid',
    PostmasterFilterActionInvalid                    => 'An action is invalid.',
    PostmasterFilterActionTargetRequired             => 'Select a target for every action.',
    PostmasterFilterActionTargetInvalid              => 'An action target is invalid or inactive.',
    PostmasterFilterActionValueRequired              => 'Enter a value for every action.',
    PostmasterFilterActionValueInvalid               => 'An action value is invalid.',
    PostmasterFilterMatchModeInvalid                 => 'The condition combination is invalid.',
    PostmasterFilterScopeInvalid                     => 'The email scope is invalid.',
    PostmasterFilterLogSaveFailed                    => 'The postmaster processing log could not be saved.',
    PostmasterFilterLogLoadFailed                    => 'The postmaster processing log could not be loaded.',
    PostmasterFilterLogNotFound                      => 'The log entry was not found.',
    PostmasterFilterMatchMode                        => 'Condition combination',
    PostmasterFilterMatchAll                         => 'All conditions must match',
    PostmasterFilterMatchAny                         => 'At least one condition must match',
    PostmasterFilterScope                            => 'Applies to',
    PostmasterFilterScopeBoth                        => 'New tickets and follow-up emails',
    PostmasterFilterScopeNew                         => 'New tickets only',
    PostmasterFilterScopeFollowUp                    => 'Follow-up emails only',
    PostmasterFilterStopAfterMatch                   => 'Do not process further filters after a match',
    PostmasterFilterConditions                       => 'Conditions',
    PostmasterFilterConditionsDescription            => 'Select a part of the incoming email and define what should be searched for.',
    PostmasterFilterAdvancedConditions               => 'Show advanced conditions',
    PostmasterFilterAdvancedConditionsHelp           => 'Advanced conditions include technical email headers, message IDs, MIME types, mailbox information and regular expressions.',
    PostmasterFilterConditionGroupBasic              => 'Email content',
    PostmasterFilterConditionGroupAdvanced           => 'Advanced email information',
    PostmasterFilterConditionGroupLegacy             => 'Legacy conditions no longer available for selection',
    PostmasterFilterActions                          => 'Actions',
    PostmasterFilterActionsDescription               => 'Matching emails trigger the selected ticket or article changes. Only the inputs required for each action are displayed.',
    PostmasterFilterAddCondition                     => 'Add condition',
    PostmasterFilterAddAction                        => 'Add action',
    PostmasterFilterField                            => 'Email field',
    PostmasterFilterHeaderName                       => 'Email header',
    PostmasterFilterOperator                         => 'Comparison',
    PostmasterFilterValue                            => 'Search value',
    PostmasterFilterCaseSensitive                    => 'Case sensitive',
    PostmasterFilterAction                           => 'Action',
    PostmasterFilterTarget                           => 'Target',
    PostmasterFilterActionGroupTicket                => 'Change ticket',
    PostmasterFilterActionGroupArticle               => 'Change email article',
    PostmasterFilterActionGroupProcessing            => 'Control processing',
    PostmasterActionFieldQueue                       => 'Target queue',
    PostmasterActionFieldState                       => 'New status',
    PostmasterActionFieldPriority                    => 'New priority',
    PostmasterActionFieldOwner                       => 'New owner',
    PostmasterActionFieldResponsible                 => 'New responsible agent',
    PostmasterActionFieldService                     => 'New service',
    PostmasterActionFieldSLA                         => 'New SLA',
    PostmasterActionFieldCustomer                    => 'New customer',
    PostmasterActionFieldCustomerUser                => 'New contact',
    PostmasterActionFieldText                        => 'Text',
    PostmasterActionFieldDynamicField                => 'Dynamic field',
    PostmasterActionFieldNewValue                    => 'New value',
    PostmasterActionFieldMinutes                     => 'Minutes',
    PostmasterActionFieldVisibility                  => 'New visibility',
    PostmasterActionFieldSenderType                  => 'New sender type',
    PostmasterFilterSelect                           => 'Please select',
    PostmasterFilterRegexAdvanced                    => 'Advanced regular expression',
    PostmasterFilterTestTitle                        => 'Test filter',
    PostmasterFilterTestDescription                  => 'Upload an EML file or paste a complete raw email. The test does not create or change a ticket.',
    PostmasterFilterTestButton                       => 'Test filter',
    PostmasterFilterTestEmailRequired                => 'Upload an EML file or paste a raw email for the test.',
    PostmasterFilterTestParseFailed                  => 'The test email could not be parsed.',
    PostmasterFilterTestMatched                      => 'The filter matches this email.',
    PostmasterFilterTestNotMatched                   => 'The filter does not match this email.',
    PostmasterFilterActionsWouldRun                  => 'Actions that would be executed:',
    PostmasterFilterAnyMailbox                       => 'No specific mailbox',
    PostmasterFilterMailbox                          => 'Mailbox',
    PostmasterFilterEMLFile                          => 'EML file',
    PostmasterFilterRawEmail                         => 'Raw email',
    PostmasterFilterEmail                            => 'Email',
    PostmasterFilterResult                           => 'Result',
    PostmasterFilterMatches                          => 'Matched filters',
    PostmasterFilterVisibleBoth                      => 'Visible to customer and agents',
    PostmasterFilterVisibleAgent                     => 'Visible to agents only',
    PostmasterFilterSenderCustomer                   => 'Customer',
    PostmasterFilterSenderAgent                      => 'Agent',
    PostmasterFilterSenderSystem                     => 'System',
    PostmasterConditionFromEmail                     => 'Sender email address',
    PostmasterConditionFromDomain                    => 'Sender domain',
    PostmasterConditionFromName                      => 'Sender name',
    PostmasterConditionTo                            => 'Recipient (To)',
    PostmasterConditionCc                            => 'Recipient (CC)',
    PostmasterConditionSubject                       => 'Subject',
    PostmasterConditionBody                          => 'Message body',
    PostmasterConditionSubjectBody                   => 'Subject and message body',
    PostmasterConditionAttachmentName                => 'Attachment filename',
    PostmasterConditionAttachmentExtension           => 'Attachment file extension',
    PostmasterConditionAttachmentMime                => 'Attachment MIME type',
    PostmasterConditionAttachmentCount               => 'Number of attachments',
    PostmasterConditionHasAttachment                 => 'Has attachment',
    PostmasterConditionMessageID                     => 'Message-ID',
    PostmasterConditionInReplyTo                     => 'In-Reply-To',
    PostmasterConditionReferences                    => 'References',
    PostmasterConditionCustomHeader                  => 'Any email header',
    PostmasterConditionMailboxName                   => 'Mailbox name',
    PostmasterConditionMailboxEmail                  => 'Mailbox email address',
    PostmasterConditionCustomerName                  => 'Recognized customer user',
    PostmasterConditionCustomerCompany               => 'Recognized customer company',
    PostmasterConditionExistingTicket                => 'Existing ticket recognized',
    PostmasterOperatorContains                       => 'contains',
    PostmasterOperatorNotContains                    => 'does not contain',
    PostmasterOperatorEquals                         => 'is exactly',
    PostmasterOperatorNotEquals                      => 'is not',
    PostmasterOperatorStartsWith                     => 'starts with',
    PostmasterOperatorEndsWith                       => 'ends with',
    PostmasterOperatorEmpty                          => 'is empty',
    PostmasterOperatorNotEmpty                       => 'is not empty',
    PostmasterOperatorWildcard                       => 'matches wildcard pattern',
    PostmasterOperatorRegex                          => 'regular expression (advanced)',
    PostmasterOperatorGreaterThan                    => 'is greater than',
    PostmasterOperatorLessThan                       => 'is less than',
    PostmasterOperatorAtLeast                        => 'is at least',
    PostmasterOperatorAtMost                         => 'is at most',
    PostmasterActionQueue                            => 'Set queue',
    PostmasterActionState                            => 'Set state',
    PostmasterActionPriority                         => 'Set priority',
    PostmasterActionOwner                            => 'Set owner',
    PostmasterActionOwnerClear                       => 'Remove owner',
    PostmasterActionResponsible                      => 'Set responsible agent',
    PostmasterActionResponsibleClear                 => 'Remove responsible agent',
    PostmasterActionService                          => 'Set service',
    PostmasterActionSLA                              => 'Set SLA',
    PostmasterActionServiceClear                     => 'Remove service and SLA',
    PostmasterActionCustomer                         => 'Set customer company',
    PostmasterActionCustomerUser                     => 'Set customer user',
    PostmasterActionCustomerClear                    => 'Remove customer assignment',
    PostmasterActionTitleSet                         => 'Replace ticket title',
    PostmasterActionTitlePrepend                     => 'Prepend text to ticket title',
    PostmasterActionTitleAppend                      => 'Append text to ticket title',
    PostmasterActionDynamicField                     => 'Set dynamic field',
    PostmasterActionDynamicFieldClear                => 'Clear dynamic field',
    PostmasterActionArticleVisibility                => 'Set article visibility',
    PostmasterActionSenderType                       => 'Set sender type',
    PostmasterActionPendingMinutes                   => 'Set pending time in minutes',
    PostmasterActionReject                           => 'Reject email and trigger automatic response',
    PostmasterActionIgnore                           => 'Ignore email completely',
    CommonDate                                       => 'Date',
    CommonActions                                    => 'Actions',
    CommonError                                      => 'Error',
    Ticket                                           => 'Ticket',

    PostmasterFilterPendingMinutesRequired           => 'A pending state requires the action “Set pending time in minutes”.',

    PostmasterFilterLogDetails                       => 'Details',
    PostmasterFilterLogScopeSkipped                  => 'This filter was not evaluated because of its email scope.',
    PostmasterFilterActualValues                     => 'Detected values',

    AdminTimeAccountingActivityTypesTitle            => 'Time accounting – activity types',
    AdminTimeAccountingActivityTypesDescription      => 'Manage activity types used for time entries.',
    AdminTimeAccountingActivityTypesList             => 'Activity types',
    AdminTimeAccountingActivityTypeCreate            => 'Create activity type',
    AdminTimeAccountingActivityTypeEdit              => 'Edit activity type',
    AdminTimeAccountingActivityTypeName              => 'Name',
    AdminTimeAccountingActivityTypeDefault           => 'Default',
    AdminTimeAccountingActivityTypeHint              => 'Inactive activity types remain attached to existing entries. Only one type can be the default.',
    AdminTimeAccountingActivityTypeInvalid           => 'Please enter a valid name.',
    AdminTimeAccountingActivityTypeSaveFailed        => 'The activity type could not be saved.',
    SystemSettingTimeAccountingDefaultBillable       => 'New time entries billable by default',
    SystemSettingTimeAccountingDefaultBillableDescription => 'Preselects the billable checkbox for new time entries.',
    TimeAccountingTitle                              => 'Time accounting',
    TimeAccountingHours                              => 'Hours',
    TimeAccountingMinutes                            => 'Minutes',
    TimeAccountingBillable                           => 'Billable',
    TimeAccountingActivityType                       => 'Activity type',
    TimeAccountingNoActivityType                     => 'No activity type',
    TimeAccountingOptionalHint                       => 'Optional: no time entry is created when hours and minutes are empty.',
    TimeAccountingInvalidDuration                    => 'Enter valid hours and minutes (0–59).',
    TimeAccountingInvalidActivityType                => 'The selected activity type is unavailable.',
    TimeAccountingCreateFailed                       => 'The time entry could not be saved.',
    TimeAccountingCreateDenied                       => 'You may not add time to this ticket.',
    TimeAccountingDurationRequired                   => 'Enter a duration greater than zero.',
    TimeAccountingDescriptionRequired                => 'A description is required for a manual time entry.',
    TimeAccountingManualEntry                        => 'Add time manually',
    TimeAccountingDescription                        => 'Description',
    TimeAccountingSave                               => 'Add time',
    TimeAccountingTotal                              => 'Total',
    TimeAccountingBillableTotal                      => 'Billable',
    TimeAccountingNonBillableTotal                   => 'Non-billable',
    TimeAccountingNoEntries                          => 'No time has been recorded for this ticket.',
    TimeAccountingDate                               => 'Work date',
    TimeAccountingAgent                              => 'Agent',
    TimeAccountingDuration                           => 'Duration',
    TimeAccountingBilling                            => 'Billing',
    TimeAccountingBillableYes                        => 'Billable',
    TimeAccountingBillableNo                         => 'Non-billable',
    TimeAccountingCorrect                            => 'Correct',
    TimeAccountingCancelled                          => 'Cancelled',
    TimeAccountingCorrectionReason                   => 'Cancellation reason',
    TimeAccountingCreateCorrection                   => 'Cancel and create replacement',
    TimeAccountingCorrectionDenied                   => 'You do not have permission to correct time entries.',
    TimeAccountingCorrectionReasonRequired           => 'A cancellation reason is required.',
    TimeAccountingCorrectionDurationRequired         => 'The replacement entry must have a duration greater than zero.',
    TimeAccountingAlreadyCancelled                   => 'This entry is already cancelled or does not exist.',
    TimeAccountingCorrectionFailed                   => 'The correction entry could not be created.',

    AdminTimeAccountingReportTitle                   => 'Time accounting – report',
    AdminTimeAccountingReportDescription             => 'Analyse working time by period, agent, customer, queue, activity and billing type.',
    AdminTimeAccountingReportFilter                  => 'Report filters',
    AdminTimeAccountingReportDateFrom                => 'Period from',
    AdminTimeAccountingReportDateTo                  => 'Period to',
    AdminTimeAccountingReportAllAgents               => 'All agents',
    AdminTimeAccountingReportAllCustomers            => 'All customers',
    AdminTimeAccountingReportAllQueues               => 'All queues',
    AdminTimeAccountingReportAllActivities           => 'All activity types',
    AdminTimeAccountingReportAllBilling              => 'All billing types',
    AdminTimeAccountingReportApply                   => 'Run report',
    AdminTimeAccountingReportSummary                 => 'Time accounting summary',
    AdminTimeAccountingReportActiveEntries           => 'Valid entries',
    AdminTimeAccountingReportCancelledEntries        => 'Cancelled entries',
    AdminTimeAccountingReportCancelledExcluded       => 'Cancelled entries remain visible for audit purposes but are excluded from all time totals and groupings.',
    AdminTimeAccountingReportGroupByAgent            => 'Report by agent',
    AdminTimeAccountingReportGroupByCustomer         => 'Report by customer',
    AdminTimeAccountingReportGroupByActivity         => 'Report by activity type',
    AdminTimeAccountingReportEntries                 => 'entries',
    AdminTimeAccountingReportDetails                 => 'Entry details',
    AdminTimeAccountingReportExportCSV               => 'Export CSV',
    AdminTimeAccountingReportResultsLimited          => 'The table shows up to 500 entries. The CSV export contains all filtered entries.',
    AdminTimeAccountingReportNoResults               => 'No time entries were found for the selected filters.',
    AdminTimeAccountingReportInvalidFilter           => 'Check the period and filter values. The start date must not be after the end date.',
    AdminTimeAccountingReportLoadFailed              => 'The time accounting report could not be loaded.',
    AdminTimeAccountingReportActive                  => 'Valid',
    AdminTimeAccountingReportCustomer                => 'Customer',
    AdminTimeAccountingReportQueue                   => 'Queue',
    AdminTimeAccountingReportStatus                  => 'Status',
    AdminTimeAccountingReportSource                  => 'Source',
    AdminTimeAccountingReportDurationMinutes         => 'Duration in minutes',
    AdminTimeAccountingReportCancelledAt             => 'Cancelled at',
    AdminTimeAccountingReportCancelledBy             => 'Cancelled by',
    AdminTimeAccountingReportReplacementEntry        => 'Replacement entry',
    AdminTimeAccountingReportCorrectionOf            => 'Correction of entry',
    AdminTimeAccountingReportUnknownCustomer         => 'No customer',
    AdminTimeAccountingReportUnknownQueue            => 'No queue',
    AdminTimeAccountingReportUnknownActivity         => 'No activity type',

    AdminDelete                                      => 'Delete',
    AdminOptional                                    => 'Optional',
    AdminTicketFormsTitle                            => 'Forms',
    AdminTicketFormsDescription                      => 'Manage individual customer forms and public web forms.',
    AdminTicketFormsOverview                         => 'Form overview',
    AdminTicketFormCreate                            => 'Create form',
    AdminTicketFormEdit                              => 'Edit form',
    AdminTicketFormCreateCustomer                    => 'Create customer portal form',
    AdminTicketFormCreatePublic                      => 'Create web form',
    AdminTicketFormEditCustomer                      => 'Edit customer portal form',
    AdminTicketFormEditPublic                        => 'Edit web form',
    AdminTicketFormType                              => 'Form type',
    AdminTicketFormTypeCustomer                      => 'Customer portal',
    AdminTicketFormTypePublic                        => 'Public web form',
    AdminTicketFormFields                            => 'Form fields',
    AdminTicketFormFieldsHint                        => 'Required fields apply to this form only.',
    AdminTicketFormSubmissions                       => 'Submissions',
    AdminTicketFormInternalName                      => 'Internal name',
    AdminTicketFormSlug                              => 'URL identifier',
    AdminTicketFormSlugHint                          => 'Lowercase letters, digits and hyphens; becomes part of the public URL.',
    AdminTicketFormAllCustomers                      => 'Available to all customers',
    AdminTicketFormRequireConsent                    => 'Consent required',
    AdminTicketFormCustomerAssignments               => 'Customer assignment',
    AdminTicketFormCustomerAssignmentsHint           => 'Without global access, only selected customers can see the form.',
    AdminTicketFormCustomersSelected                 => 'customers selected',
    AdminTicketFormCustomerSelectionOpen             => 'Select customers',
    AdminTicketFormCustomerSelectionTitle            => 'Select customers',
    AdminTicketFormCustomerSelectionDescription      => 'Search and assign customers compactly by name or customer number.',
    AdminTicketFormCustomerSearchPlaceholder         => 'Filter by name or customer number …',
    AdminTicketFormCustomerLoadMore                  => 'Load more customers',
    AdminTicketFormCustomerSelectionApply            => 'Apply selection',
    AdminTicketFormCustomerSearchLoading             => 'Loading customers …',
    AdminTicketFormCustomerSearchEmpty               => 'No matching customers found.',
    AdminTicketFormCustomerSearchError               => 'The customer search could not be loaded.',
    AdminTicketFormWebSecurity                       => 'Web form security',
    AdminTicketFormAllowedOrigins                    => 'Allowed embedding domains',
    AdminTicketFormAllowedOriginsHint                => 'One complete https:// address per line or * for all domains.',
    AdminTicketFormRateHour                          => 'Limit per IP and hour',
    AdminTicketFormRateDay                           => 'Limit per IP and day',
    AdminTicketFormRateTotalDay                      => 'Overall daily limit',
    AdminTicketFormPublicTitle                       => 'Displayed title',
    AdminTicketFormSubmitLabel                       => 'Submit button label',
    AdminTicketFormConfirmation                      => 'Confirmation text',
    AdminTicketFormConsentText                       => 'Consent text',
    AdminTicketFormEmbed                             => 'Direct link and embedding',
    AdminTicketFormPublicURL                         => 'Public URL',
    AdminTicketFormIframeCode                        => 'Iframe code',
    AdminTicketFormPreview                           => 'Open preview',
    AdminTicketFormFieldCreate                       => 'Create field',
    AdminTicketFormFieldEdit                         => 'Edit field',
    AdminTicketFormFieldKey                          => 'Internal field key',
    AdminTicketFormFieldKeyHint                      => 'Unique technical name without spaces.',
    AdminTicketFormDefaultValue                      => 'Default value',
    AdminTicketFormOptions                           => 'Selection values',
    AdminTicketFormOptionsFormat                     => 'Options',
    AdminTicketFormOptionsHint                       => 'Add every selectable value separately. A dropdown allows one choice; a multiselect allows several choices.',
    AdminTicketFormOptionValue                       => 'Selection value, for example Hardware',
    AdminTicketFormOptionAdd                         => 'Add value',
    AdminTicketFormFieldLabel                        => 'Field label',
    AdminTicketFormFieldPlaceholder                  => 'Placeholder',
    AdminTicketFormFieldHelp                         => 'Help text',
    AdminTicketFormCoreField                         => 'Core field',
    AdminTicketFormNoFields                          => 'This form does not have any fields yet.',
    AdminTicketFormCreated                           => 'The form was created.',
    AdminTicketFormUpdated                           => 'The form was saved.',
    AdminTicketFormActivated                         => 'The form was activated.',
    AdminTicketFormDeactivated                       => 'The form was deactivated.',
    AdminTicketFormDeleted                           => 'The form was deleted.',
    AdminTicketFormFieldCreated                      => 'The form field was created.',
    AdminTicketFormFieldUpdated                      => 'The form field was saved.',
    AdminTicketFormFieldDeactivated                  => 'The form field was removed.',
    AdminTicketFormRequired                          => 'Please complete name, type, URL identifier, target queue and default translation.',
    AdminTicketFormCreateFailed                      => 'The form could not be created.',
    AdminTicketFormUpdateFailed                      => 'The form could not be saved.',
    AdminTicketFormNotFound                          => 'The form was not found.',
    AdminTicketFormDeleteInactiveRequired            => 'A form must be deactivated before it can be deleted.',
    AdminTicketFormDeleteHasSubmissions              => 'Forms with submissions cannot be deleted for audit reasons.',
    AdminTicketFormDeleteFailed                      => 'The form could not be deleted.',
    AdminTicketFormFieldCreateFailed                 => 'The form field could not be created.',
    AdminTicketFormFieldUpdateFailed                 => 'The form field could not be saved.',
    AdminTicketFormFieldNotFound                     => 'The form field was not found.',
    AdminTicketFormIdentityFieldRequired             => 'Name and email must remain active and required in public forms.',
    AdminTicketFormDefaultTranslationRequired        => 'A form title is required for the default language.',
    AdminTicketFormFieldLabelRequired                => 'A field label is required for the default language.',
    AdminTicketFormFieldTypeInvalid                  => 'The selected field type is invalid.',
    TicketFormsSelectTitle                           => 'Select the appropriate form',
    TicketFormsSelectDescription                     => 'Choose the form that best matches your request.',
    TicketFormOpen                                   => 'Open form',
    TicketFormSubmit                                 => 'Submit request',
    TicketFormConfirmationDefault                    => 'Thank you. Your request was submitted successfully.',
    TicketFormConsentFallback                        => 'I agree to the processing of my information.',
    TicketFormUnavailable                            => 'This form is not available.',
    TicketFormQueueUnavailable                       => 'The target queue for this form is unavailable.',
    TicketFormConsentRequired                        => 'Please confirm your consent.',
    TicketFormFieldInvalid                           => 'Please check the entry in “{field}”.',
    TicketFormRequiredFields                         => 'Please complete the required field “{field}”.',
    TicketFormFieldTooLong                           => 'The entry in “{field}” is too long.',
    TicketFormEmailInvalid                           => 'Please enter a valid email address.',
    TicketFormSubmissionSaveFailed                   => 'The form submission could not be saved.',
    PublicTicketFormName                             => 'Name',
    PublicTicketFormEmail                            => 'Email address',
    PublicTicketFormTooFast                          => 'The form was submitted too quickly. Please try again.',
    PublicTicketFormRateLimited                      => 'Too many requests. Please try again later.',
    PublicTicketFormNotFound                         => 'This web form was not found or is inactive.',
    PublicTicketFormSuccessTitle                     => 'Request submitted',
    PublicTicketFormTicketNumber                     => 'Ticket number',
    PublicTicketFormPrivacy                          => 'Your information will be sent to the ticket system to process your request.',
    TicketFormInformation                            => 'Form information',
    TicketFormCustomerInformation                    => 'Your form information',
    TicketFormName                                   => 'Form',
    TicketFormSource                                 => 'Source',
    TicketFormSubmittedAt                            => 'Submitted at',
    TicketFormSourceWeb                              => 'Web form',
    TicketFormSourceCustomer                         => 'Customer portal',

    TicketHistoryEmpty                              => 'There are no history entries for this ticket in this section yet.',
    TicketHistoryLoadError                          => 'The history could not be loaded.',
    TicketHistoryLoading                            => 'Loading history …',
    TicketHistoryFilterLabel                        => 'Filter history',
    TicketHistoryFilterAll                          => 'All',
    TicketHistoryFilterChanges                      => 'Changes',
    TicketHistoryFilterCommunication                => 'Communication',
    TicketHistoryFilterTime                         => 'Time',
    TicketHistoryFilterSystem                       => 'System',
    TicketHistoryLoadMore                           => 'Load more entries',
    TicketHistorySystem                             => 'System',
    TicketHistoryBackfill                           => 'Existing data',
    TicketHistoryEmptyValue                         => 'not set',
    TicketHistoryOpenArticle                        => 'Open article',
    TicketHistoryRelatedTicket                      => 'Related ticket',
    TicketHistoryBillable                           => 'Billable',
    TicketHistoryNotBillable                        => 'Not billable',
    TicketHistoryEventCreated                       => 'Ticket was created',
    TicketHistoryEventTitleChanged                  => 'Title was changed',
    TicketHistoryEventQueueChanged                  => 'Queue was changed',
    TicketHistoryEventStateChanged                  => 'State was changed',
    TicketHistoryEventPriorityChanged               => 'Priority was changed',
    TicketHistoryEventCustomerChanged               => 'Customer was changed',
    TicketHistoryEventCustomerUserChanged           => 'Customer contact was changed',
    TicketHistoryEventOwnerChanged                  => 'Owner was changed',
    TicketHistoryEventResponsibleChanged            => 'Responsible agent was changed',
    TicketHistoryEventServiceChanged                => 'Service was changed',
    TicketHistoryEventSLAChanged                    => 'SLA was changed',
    TicketHistoryEventPendingChanged                => 'Pending time was changed',
    TicketHistoryEventArticleCreated                => 'Communication was added',
    TicketHistoryEventAttachmentAdded               => 'Attachment was added',
    TicketHistoryEventDynamicFieldChanged           => 'Dynamic field was changed',
    TicketHistoryEventTimeAdded                     => 'Time was recorded',
    TicketHistoryEventTimeCancelled                 => 'Time entry was cancelled',
    TicketHistoryEventLinked                        => 'Ticket was linked',
    TicketHistoryEventSplit                         => 'Article was split into a ticket',
    TicketHistoryEventMerged                        => 'Ticket was merged',
    TicketHistoryEventChecklistAdded                => 'Checklist was added',
    TicketHistoryEventChecklistRemoved              => 'Checklist was removed',
    TicketHistoryEventChecklistItemCompleted        => 'Checklist item was completed',
    TicketHistoryEventChecklistItemReopened         => 'Checklist item was reopened',
    TicketHistoryEventChecklistCompleted            => 'Checklist was completed',
    TicketHistoryEventCloseBlocked                  => 'Closing was blocked by a checklist',
    TicketHistoryEventFormSubmitted                 => 'Form was submitted',
    TicketHistoryEventBulkAction                    => 'Bulk action was executed',
    TicketHistoryEventChanged                       => 'Ticket was changed',
    TicketHistorySourceApplication                  => 'Ticket processing',
    TicketHistorySourceEmail                        => 'Email',
    TicketHistorySourceNote                         => 'Internal note',
    TicketHistorySourceWeb                          => 'Customer communication',
    TicketHistorySourceCustomerPortal               => 'Customer portal',
    TicketHistorySourceWebForm                      => 'Web form',
    TicketHistorySourceBulk                         => 'Bulk action',
    TicketHistorySourceAutomation                   => 'Automation',
    TicketHistorySourceMigration                    => 'Data migration',
    TicketHistorySourceChecklist                    => 'Checklist',
    TicketHistorySourceManual                       => 'Manual entry',
    TicketHistorySourceCorrection                   => 'Correction',
    TicketHistorySourceSplit                        => 'Split',
    TicketHistorySourceMerge                        => 'Merge',
    TicketHistorySourceLink                         => 'Link',
    TicketHistorySourceAttachment                   => 'Attachment',

    NavigationCMDB                                  => 'CMDB',
    AdminClose                                      => 'Close',
    SearchTitle                                     => 'Search',
    SearchSubmit                                    => 'Search',
    SearchReset                                     => 'Reset',
    CMDBItemsTitle                                  => 'Configuration items',
    CMDBDescription                                 => 'Centrally manage configuration items, assignments, and dependencies.',
    AdminCMDBTypesTitle                             => 'CMDB structure',
    AdminCMDBTypesDescription                       => 'Manage CI types, custom fields, and relation types.',
    CMDBAccessDenied                                => 'You do not have permission to access the CMDB.',
    CMDBConfigurationItems                          => 'Configuration items',
    CMDBTypes                                       => 'CI types',
    CMDBType                                        => 'CI type',
    CMDBTypeCreate                                  => 'Create CI type',
    CMDBTypeEdit                                    => 'Edit CI type',
    CMDBTypeFields                                  => 'Custom fields',
    CMDBSelectType                                  => 'Select CI type',
    CMDBSelectTypeHelp                              => 'Select the appropriate template for the new configuration item.',
    CMDBSelect                                      => 'Select',
    CMDBCreate                                      => 'Create configuration item',
    CMDBEdit                                        => 'Edit configuration item',
    CMDBNumber                                      => 'CI number',
    CMDBName                                        => 'Name',
    CMDBDescriptionField                            => 'Description',
    CMDBIcon                                        => 'Abbreviation / icon',
    CMDBStatus                                      => 'Status',
    CMDBInventoryNumber                             => 'Inventory number',
    CMDBSerialNumber                                => 'Serial number',
    CMDBLocation                                    => 'Location',
    CMDBExternalID                                  => 'External ID',
    CMDBAssignment                                  => 'Customer assignment',
    CMDBSelectCustomer                              => 'Select customer',
    CMDBCustomerSearchHelp                          => 'Search by customer name or number. Large customer inventories are filtered compactly.',
    CMDBNoCustomer                                  => 'No customer assigned',
    CMDBCustomerAllUsers                            => 'For all customer contacts',
    CMDBCustomerVisible                             => 'Visible to the assigned customer',
    CMDBFieldCustomerVisible                        => 'This field can be shown to the customer.',
    CMDBFields                                      => 'CI fields',
    CMDBFieldsHelp                                  => 'Define custom fields for each CI type.',
    CMDBFieldCreate                                 => 'Create field',
    CMDBFieldEdit                                   => 'Edit field',
    CMDBFieldKey                                    => 'Internal field key',
    CMDBFieldLabel                                  => 'Field label',
    CMDBFieldType                                   => 'Field type',
    CMDBRequired                                    => 'Required field',
    CMDBDefaultValue                                => 'Default value',
    CMDBOptions                                     => 'Options',
    CMDBOptionsHelp                                 => 'One option per line. Optionally use key|display text.',
    CMDBRelationTypes                               => 'Relation types',
    CMDBRelationTypesHelp                           => 'Directed relations with labels for both directions.',
    CMDBForwardLabel                                => 'Forward label',
    CMDBReverseLabel                                => 'Reverse label',
    CMDBRelations                                   => 'Relations',
    CMDBRelationType                                => 'Relation type',
    CMDBTargetCI                                    => 'Target CI',
    CMDBRelationNote                                => 'Note',
    CMDBRelationAdd                                 => 'Add relation',
    CMDBTickets                                     => 'Tickets',
    CMDBLinkedAt                                    => 'Linked at',
    CMDBNoTickets                                   => 'No tickets have been linked yet.',
    CMDBHistory                                     => 'CI history',
    CMDBHistoryEmpty                                => 'This configuration item has no history entries yet.',
    CMDBOpenTicket                                  => 'Open ticket',
    CMDBArchive                                     => 'Archive',
    CMDBActivate                                    => 'Reactivate',
    CMDBSearchPlaceholder                           => 'CI number, name or searchable CI field',
    CMDBIncludeArchived                             => 'Include archived',
    CMDBAllTypes                                    => 'All CI types',
    CMDBAllStatuses                                 => 'All statuses',
    CMDBEmptyTitle                                  => 'No configuration items found',
    CMDBEmptyText                                   => 'Create a CI or adjust the filters.',
    CMDBImportExport                                => 'CSV import / export',
    CMDBImportHelp                                  => 'Import or export CMDB data from a UTF-8 CSV with an audit trail.',
    CMDBExportCSV                                   => 'Export CSV',
    CMDBImportCSV                                   => 'Import CSV',
    CMDBCSVFile                                     => 'CSV file',
    CMDBCSVLimit                                    => 'Maximum 5 MB and 2,000 records per import.',
    CMDBLink                                        => 'Link CI',
    CMDBUnlink                                      => 'Remove link',
    CMDBLinkToTicket                                => 'Link configuration item to ticket',
    CMDBTicketSearchHelp                            => 'Search by CI number, name or a CI field marked as searchable.',
    CMDBTicketNone                                  => 'No configuration item is linked to this ticket.',
    CMDBAffectedCI                                  => 'Affected configuration item',
    CMDBAffectedCIHelp                              => 'Optionally select the device, application, or service affected by the ticket.',
    CMDBNoSelection                                 => 'No selection',
    CMDBTypeNameRequired                            => 'Please enter a name for the CI type.',
    CMDBTypeSaveFailed                              => 'The CI type could not be saved.',
    CMDBTypeSaved                                   => 'The CI type was saved.',
    CMDBFieldRequired                               => 'CI type, field key, and field label are required.',
    CMDBFieldOptionsRequired                        => 'Dropdown and multiselect fields require at least one option.',
    CMDBFieldSaveFailed                             => 'The CI field could not be saved.',
    CMDBFieldSaved                                  => 'The CI field was saved.',
    CMDBRelationTypeRequired                        => 'Name and both labels of the relation type are required.',
    CMDBRelationTypeSaveFailed                      => 'The relation type could not be saved.',
    CMDBRelationTypeSaved                           => 'The relation type was saved.',
    CMDBNotFound                                    => 'The configuration item was not found.',
    CMDBRequiredFields                              => 'CI type and name are required.',
    CMDBRequiredField                               => 'Please complete all required CI fields.',
    CMDBInvalidField                                => 'At least one CI field contains an invalid value.',
    CMDBCustomerUserInvalid                         => 'The contact does not belong to the selected customer.',
    CMDBSaveFailed                                  => 'The configuration item could not be saved.',
    CMDBHistorySaveFailed                           => 'The immutable history entry could not be saved.',
    CMDBRelationInvalid                             => 'Select two different configuration items and a relation type.',
    CMDBRelationSaveFailed                          => 'The CI relation could not be saved.',
    CMDBLinkFailed                                  => 'The ticket link could not be saved.',
    CMDBImportFileInvalid                           => 'Select a valid CSV file up to 5 MB.',
    CMDBImportEmpty                                 => 'The CSV file contains no records to import.',
    CMDBImportHeader                                => 'The CSV file requires at least the type and name columns.',
    CMDBSaved                                       => 'The configuration item was saved.',
    CMDBStatusChanged                               => 'The active status was changed.',
    CMDBRelationSaved                               => 'The CI relation was changed.',
    CMDBImportResult                                => 'Import completed – created / updated / failed:',
    CMDBStatus_planned                              => 'Planned',
    CMDBStatus_active                               => 'Active',
    CMDBStatus_stock                                => 'In stock',
    CMDBStatus_repair                               => 'Repair',
    CMDBStatus_maintenance                          => 'Maintenance',
    CMDBStatus_retired                              => 'Retired',
    CMDBStatus_disposed                             => 'Disposed',
    CMDBHistory_created                             => 'Configuration item created',
    CMDBHistory_changed                             => 'Core data changed',
    CMDBHistory_field_changed                       => 'Custom field changed',
    CMDBHistory_activated                           => 'Configuration item reactivated',
    CMDBHistory_archived                            => 'Configuration item archived',
    CMDBHistory_ticket_linked                       => 'Ticket linked',
    CMDBHistory_ticket_unlinked                     => 'Ticket link removed',
    CMDBHistory_relation_added                      => 'CI relation added',
    CMDBHistory_relation_removed                    => 'CI relation removed',
    CMDBFieldType_text                              => 'Text',
    CMDBFieldType_textarea                          => 'Multiline text',
    CMDBFieldType_integer                           => 'Integer',
    CMDBFieldType_decimal                           => 'Decimal number',
    CMDBFieldType_date                              => 'Date',
    CMDBFieldType_datetime                          => 'Date and time',
    CMDBFieldType_boolean                           => 'Yes / No',
    CMDBFieldType_dropdown                          => 'Dropdown',
    CMDBFieldType_multiselect                       => 'Multiselect',
    CMDBFieldType_email                             => 'Email address',
    CMDBFieldType_url                               => 'URL',
    CMDBFieldType_ip                                => 'IP address',
    CMDBSource                                      => 'Data source',
    CMDBTechnicalKey                                => 'Technical key',
    CMDBStatuses                                    => 'CI statuses',
    CMDBStatusesHelp                                => 'Define statuses freely and assign them to the appropriate CI types.',
    CMDBStatusClass                                 => 'Status class',
    CMDBColor                                       => 'Color',
    CMDBStatusRequired                              => 'Status key and label are required.',
    CMDBStatusInvalid                               => 'The selected status is not enabled for this CI type.',
    CMDBStatusInUse                                 => 'A status currently in use cannot be removed from this CI type.',
    CMDBStatusSaveFailed                            => 'The CI status could not be saved.',
    CMDBStatusSaved                                 => 'The CI status was saved.',
    CMDBTypeStatuses                                => 'Allowed statuses',
    CMDBTypeStatusesHelp                            => 'Determines which statuses can be used for configuration items of this type.',
    CMDBDefaultStatus                               => 'Default status for new CIs',
    CMDBNoDefaultStatus                             => 'No default status',
    CMDBTypeStatusSaved                             => 'The status assignment was saved.',
    CMDBFieldGroups                                 => 'Field groups',
    CMDBFieldGroupsHelp                             => 'Optional groups structure extensive CI forms.',
    CMDBFieldGroup                                  => 'Field group',
    CMDBNoFieldGroup                                => 'No field group',
    CMDBFieldGroupRequired                          => 'Group key and label are required.',
    CMDBFieldGroupSaveFailed                        => 'The field group could not be saved.',
    CMDBFieldGroupSaved                             => 'The field group was saved.',
    CMDBSearchable                                  => 'Searchable',
    CMDBUnique                                      => 'Unique value',
    CMDBUniqueFieldDuplicate                        => 'A value of a unique CI field is already in use.',
    AdminCMDBImportsTitle                           => 'CMDB CSV imports',
    AdminCMDBImportsDescription                     => 'Manage vendor-neutral CSV import profiles, mappings and import runs.',
    CMDBImportProfiles                              => 'CSV import profiles',
    CMDBImportProfile                               => 'Import profile',
    CMDBImportProfileCreate                         => 'Create import profile',
    CMDBImportProfileHelp                           => 'A profile defines source, CSV format, CI type resolution and the external matching key.',
    CMDBImportNoProfiles                            => 'No import profiles yet',
    CMDBImportNoProfilesHelp                        => 'Create a dedicated mapping for each recurring CSV source.',
    CMDBImportSource                                => 'Source key',
    CMDBImportDelimiter                             => 'Delimiter',
    CMDBImportEncoding                              => 'Encoding',
    CMDBImportTypeMode                              => 'CI type resolution',
    CMDBImportFixedType                             => 'Fixed CI type',
    CMDBImportTypeFromColumn                        => 'CI type from CSV column',
    CMDBImportTypeColumn                            => 'CI type column',
    CMDBImportExternalIDColumn                      => 'External ID column',
    CMDBImportMaxRows                               => 'Maximum rows per run',
    CMDBImportMappings                              => 'Column mapping',
    CMDBImportMappingsHelp                          => 'Map CSV columns to Qisutu master data or freely defined CI fields.',
    CMDBImportSourceColumn                          => 'CSV column',
    CMDBImportTarget                                => 'Qisutu target',
    CMDBImportTargetKey                             => 'Technical CI field key',
    CMDBImportTargetKeyHelp                         => 'Required only for the “CI field” target.',
    CMDBImportPolicy                                => 'Update rule',
    CMDBImportValueMap                              => 'Value mapping',
    CMDBImportValueMapHelp                          => 'Optionally enter one mapping per line as source|target.',
    CMDBImportLastRun                               => 'Last run',
    CMDBImportRun                                   => 'Import CSV now',
    CMDBImportRunHelp                               => 'The same profile can be run nightly using bin/qisutu-cmdb-import.pl.',
    CMDBImportStarted                               => 'Started',
    CMDBImportFile                                  => 'File',
    CMDBImportRunStatus                             => 'Result',
    CMDBImportCreated                               => 'Created',
    CMDBImportUpdated                               => 'Updated',
    CMDBImportFailed                                => 'Failed',
    CMDBImportProfileRequired                       => 'Name, source key, external ID and CI type resolution are required.',
    CMDBImportProfileSaveFailed                     => 'The import profile could not be saved.',
    CMDBImportProfileNotFound                       => 'The active import profile was not found.',
    CMDBImportProfileSaved                          => 'The import profile was saved.',
    CMDBImportMappingRequired                       => 'CSV column and a valid Qisutu target are required.',
    CMDBImportMappingSaveFailed                     => 'The column mapping could not be saved.',
    CMDBImportMappingSaved                          => 'The column mapping was saved.',
    CMDBImportTarget_name                           => 'CI name',
    CMDBImportTarget_status                         => 'CI status key',
    CMDBImportTarget_customer_number                => 'Customer number',
    CMDBImportTarget_customer_user_email            => 'Customer contact email',
    CMDBImportTarget_customer_visible               => 'Visible to customers',
    CMDBImportTarget_active                         => 'Active',
    CMDBImportTarget_field                          => 'Custom CI field',
    CMDBImportPolicy_always                         => 'Always update',
    CMDBImportPolicy_if_empty                       => 'Only when Qisutu value is empty',
    CMDBImportPolicy_create_only                    => 'Only when first created',
    TicketHistoryEventCMDBLinked                    => 'Configuration item was linked',
    TicketHistoryEventCMDBUnlinked                  => 'CI link was removed',

    AdminCSVImportsTitle                            => 'CSV imports',
    AdminCSVImportsDescription                      => 'Safely import customers, contacts and agents using installation-specific CSV templates.',
    MasterDataImportCustomers                       => 'Customers',
    MasterDataImportCustomerUsers                   => 'Contacts',
    MasterDataImportAgents                          => 'Agents',
    MasterDataImportType                            => 'Import type',
    MasterDataImportFormatHelp                      => 'The template contains the fixed Qisutu structure and all currently active dynamic fields in this installation.',
    MasterDataImportDownloadTemplate                => 'Download CSV template',
    MasterDataImportExactHeader                     => 'Required header',
    MasterDataImportColumn                          => 'CSV column',
    MasterDataImportMeaning                         => 'Meaning',
    MasterDataImportRequired                        => 'Required',
    MasterDataImportExample                         => 'Example',
    MasterDataImportYes                             => 'Yes',
    MasterDataImportNo                              => 'No',
    MasterDataImportRules                           => 'Import rules',
    MasterDataImportRuleUTF8                        => 'File format: UTF-8, semicolon delimiter and one header row.',
    MasterDataImportRuleExact                       => 'The header must match the downloaded template exactly.',
    MasterDataImportRuleUpsert                      => 'Existing records are updated by customer number or login; new records are created.',
    MasterDataImportRuleNoDelete                    => 'Missing CSV rows do not delete or deactivate existing records.',
    MasterDataImportRuleNoPasswords                 => 'Passwords are never imported from CSV. New users receive an unknown random password.',
    MasterDataImportRuleAgentRights                 => 'Agent groups and permissions are not part of the import. Existing rights stay unchanged; new agents receive no group permissions.',
    MasterDataImportUpload                          => 'Validate CSV',
    MasterDataImportUploadHelp                      => 'Qisutu creates a preview first. If even one error exists, nothing can be imported.',
    MasterDataImportFile                            => 'CSV file',
    MasterDataImportFileHelp                        => 'Maximum 10 MB and 50,000 data rows. Use the current template from this installation.',
    MasterDataImportPreview                         => 'Create preview',
    MasterDataImportPreviewTitle                    => 'Import preview',
    MasterDataImportRows                            => 'Rows',
    MasterDataImportCreated                         => 'New',
    MasterDataImportUpdated                         => 'Changes',
    MasterDataImportUnchanged                       => 'Unchanged',
    MasterDataImportErrors                          => 'Errors',
    MasterDataImportRow                             => 'Row',
    MasterDataImportRecordKey                       => 'Record',
    MasterDataImportAction                          => 'Action',
    MasterDataImportMessage                         => 'Message',
    MasterDataImportAction_create                   => 'Create',
    MasterDataImportAction_update                   => 'Update',
    MasterDataImportAction_unchanged                => 'Unchanged',
    MasterDataImportAction_error                    => 'Error',
    MasterDataImportStatus_pending                  => 'Validated – ready',
    MasterDataImportStatus_invalid                  => 'Invalid',
    MasterDataImportStatus_imported                 => 'Imported',
    MasterDataImportStatus_cancelled                => 'Cancelled',
    MasterDataImportStatus_expired                  => 'Expired',
    MasterDataImportPreviewLimited                  => 'The interface displays at most 500 rows.',
    MasterDataImportDownloadErrors                  => 'Download errors as CSV',
    MasterDataImportSendInvitations                 => 'Send invitations to newly created active users',
    MasterDataImportInvitationsHelp                 => 'Optional: after a successful import, Qisutu sends a link for setting the initial password. This is disabled by default.',
    MasterDataImportExecute                         => 'Execute import',
    MasterDataImportCancel                          => 'Discard preview',
    MasterDataImportHistory                         => 'Import history',
    MasterDataImportHistoryHelp                     => 'The latest 50 validations and imports with their results and executing administrator.',
    MasterDataImportCreatedAt                       => 'Created at',
    MasterDataImportStatus                          => 'Status',
    MasterDataImportResult                          => 'Result',
    MasterDataImportCreatedBy                       => 'Executed by',
    MasterDataImportNoHistory                       => 'No CSV validation has been run yet.',
    MasterDataImportPreviewReady                    => 'The CSV was validated. Review the preview and then explicitly execute the import.',
    MasterDataImportCompleted                       => 'The CSV import was completed successfully.',
    MasterDataImportCancelled                       => 'The import preview was discarded.',
    MasterDataImportFieldCustomerNumber             => 'Unique customer number and matching key',
    MasterDataImportFieldCustomerName               => 'Displayed customer name',
    MasterDataImportFieldCustomerReference          => 'Customer number of the associated active customer',
    MasterDataImportFieldLogin                      => 'Unique login and matching key',
    MasterDataImportFieldEmail                      => 'Unique email address',
    MasterDataImportFieldFirstname                  => 'First name',
    MasterDataImportFieldLastname                   => 'Last name',
    MasterDataImportFieldActive                     => 'Active status: 1 = active, 0 = inactive',
    MasterDataImportFieldDynamic                    => 'Dynamic Qisutu field',
    MasterDataImportFileInvalid                     => 'Please choose a valid, non-empty CSV file.',
    MasterDataImportFileTooLarge                    => 'The CSV file exceeds the maximum size of 10 MB.',
    MasterDataImportUTF8Required                    => 'The CSV file is not valid UTF-8.',
    MasterDataImportTemplateFailed                  => 'The installation-specific CSV template could not be generated.',
    MasterDataImportDataLoadFailed                  => 'The master data required for the import could not be loaded.',
    MasterDataImportPreviewFailed                   => 'The CSV preview could not be stored.',
    MasterDataImportRunInvalid                      => 'The selected import run is invalid.',
    MasterDataImportRunExpired                      => 'The import preview expired, was discarded or was already executed.',
    MasterDataImportChangedAfterPreview             => 'The data changed after the preview. Please upload a new CSV preview.',
    MasterDataImportTransactionFailed               => 'The import failed. No changes were committed.',
    MasterDataImportCSVInvalid                      => 'The CSV syntax is invalid or a quote was not closed.',
    MasterDataImportCSVEmpty                        => 'The CSV file contains no usable rows.',
    MasterDataImportHeaderMismatch                  => 'The header does not match the current template. Expected: {Expected}',
    MasterDataImportNoDataRows                      => 'The CSV file contains only a header and no data records.',
    MasterDataImportTooManyRows                     => 'The CSV file contains more than 50,000 data rows.',
    MasterDataImportColumnCount                     => 'The number of columns does not match the header.',
    MasterDataImportDuplicateKey                    => 'The matching key “{Value}” occurs more than once in the CSV.',
    MasterDataImportDuplicateEmail                  => 'The email address “{Value}” occurs more than once in the CSV.',
    MasterDataImportRequiredField                   => 'The required field “{Field}” is empty.',
    MasterDataImportFieldTooLong                    => 'The field “{Field}” is longer than {Max} characters.',
    MasterDataImportBooleanInvalid                  => 'The field “{Field}” must contain 0 or 1.',
    MasterDataImportEmailInvalid                    => 'The field “{Field}” does not contain a valid email address.',
    MasterDataImportNumberInvalid                   => 'The field “{Field}” does not contain a valid number.',
    MasterDataImportDateInvalid                     => 'The field “{Field}” must contain a date in YYYY-MM-DD format.',
    MasterDataImportCustomerUnknown                 => 'Customer “{Value}” does not exist.',
    MasterDataImportCustomerInactive                => 'Customer “{Value}” is inactive.',
    MasterDataImportEmailUsed                       => 'The email address “{Value}” is already used by another user.',
    MasterDataImportSystemAgentProtected            => 'A protected system agent cannot be changed through CSV.',
    MasterDataImportAdminDeactivationProtected      => 'An agent with administration rights cannot be deactivated through CSV.',

    KnowledgeBaseNavigation                        => 'Knowledge base',
    KnowledgeBaseDescription                       => 'Search, create and revision-safely manage FAQ articles.',
    KnowledgeBaseCustomerDescription               => 'Find answers and instructions in the knowledge base.',
    AdminKnowledgeBaseTitle                        => 'Knowledge base',
    AdminKnowledgeBaseDescription                  => 'Manage knowledge base categories and permissions.',
    KnowledgeCategories                            => 'Categories',
    KnowledgeCategoriesManage                      => 'Manage categories',
    KnowledgeBackToArticles                        => 'Back to FAQ articles',
    KnowledgeCategory                              => 'Category',
    KnowledgeCategoryCreate                        => 'Create category',
    KnowledgeCategoryEdit                          => 'Edit category',
    KnowledgeCategoryInternalName                  => 'Internal name',
    KnowledgeCategoryInternalNameHelp              => 'Unique technical name without spaces.',
    KnowledgeCategoryInternalNameInvalid           => 'Please enter a valid, unique internal name.',
    KnowledgeCategoryParent                        => 'Parent category',
    KnowledgeCategoryNoParent                      => 'No parent category',
    KnowledgeCategoryParentInvalid                 => 'The selected parent category is invalid.',
    KnowledgeCategoryTranslationRequired           => 'A category name is required for at least one language.',
    KnowledgeCategorySaveFailed                    => 'The category could not be saved.',
    KnowledgeCategoryNotFound                      => 'The category was not found.',
    KnowledgeArticles                              => 'FAQ articles',
    KnowledgeArticleCreate                         => 'Create FAQ article',
    KnowledgeArticleEdit                           => 'Edit FAQ article',
    KnowledgeArticleNumber                         => 'FAQ number',
    KnowledgeArticleTitle                          => 'Title',
    KnowledgeArticleSummary                        => 'Summary',
    KnowledgeArticleCategoryRequired               => 'Please select a valid category.',
    KnowledgeArticleTitleRequired                  => 'Please enter a title.',
    KnowledgeArticleContentRequired                => 'Please enter a solution.',
    KnowledgeArticleCustomerRequired               => 'Please select at least one customer.',
    KnowledgeArticleNotFound                       => 'FAQ article not found',
    KnowledgeArticleNotAvailable                   => 'The requested article does not exist or is not available to your customer.',
    KnowledgeArticleSaveFailed                     => 'The FAQ article could not be saved.',
    KnowledgePermissions                           => 'Permissions',
    KnowledgePermissionsHelp                       => 'Define which agent groups may read, edit or publish articles.',
    KnowledgePermissionView                        => 'View',
    KnowledgePermissionEdit                        => 'Edit',
    KnowledgePermissionPublish                     => 'Publish',
    KnowledgePermissionsSaveFailed                 => 'The permissions could not be saved.',
    KnowledgePermissionsSaved                      => 'The permissions were saved.',
    KnowledgeEditDenied                            => 'You are not allowed to edit FAQ articles.',
    KnowledgeViewDenied                            => 'You are not allowed to open the knowledge base.',
    KnowledgePublishDenied                         => 'You are not allowed to publish or archive FAQ articles.',
    KnowledgeAllCategories                         => 'All categories',
    KnowledgeSelectCategory                        => 'Select category',
    KnowledgeStatus                                => 'Status',
    KnowledgeAllStatuses                           => 'All statuses',
    KnowledgeStatus_draft                          => 'Draft',
    KnowledgeStatus_published                      => 'Published',
    KnowledgeStatus_archived                       => 'Archived',
    KnowledgeLanguage                              => 'Language',
    KnowledgeAllLanguages                          => 'All languages',
    KnowledgeVisibility                            => 'Visibility',
    KnowledgeVisibility_internal                   => 'Agents only',
    KnowledgeVisibility_customer                   => 'Agents and customers',
    KnowledgeVisibilityHelp                        => '“Agents only” remains internal; “Agents and customers” also appears in the customer portal and may be inserted into customer-visible replies.',
    KnowledgeCustomerScope                         => 'Customer access',
    KnowledgeCustomerScope_all                     => 'All customers',
    KnowledgeCustomerScope_selected                => 'Selected customers',
    KnowledgeKeywords                              => 'Search terms',
    KnowledgeKeywordsHelp                          => 'Separate multiple search terms with commas.',
    KnowledgeSolution                              => 'Solution',
    KnowledgeQueueAssignment                       => 'Queue assignment',
    KnowledgeQueueAssignmentHelp                   => 'Without a selection, the article is available in all queues.',
    KnowledgeCustomerAssignment                    => 'Customer assignment',
    KnowledgeCustomerAssignmentHelp                => 'The selection is only used when customer access is set to “Selected customers”.',
    KnowledgeSearchPlaceholder                     => 'Title, FAQ number or search term',
    KnowledgeUsage                                 => 'Uses',
    KnowledgeRevision                              => 'Revision',
    KnowledgeRevisionHistory                       => 'Revision history',
    KnowledgeChangedBy                             => 'Changed by',
    KnowledgeNoArticles                            => 'No FAQ articles found',
    KnowledgeNoArticlesHelp                        => 'Adjust the filters or create the first article.',
    KnowledgeNoCustomerArticlesHelp                => 'No released articles match your search.',
    KnowledgeInsertOpen                            => 'Search FAQ',
    KnowledgeInsertHelp                            => 'Insert a solution at the current cursor position.',
    KnowledgeInsertTitle                           => 'Insert FAQ solution',
    KnowledgeInsertDescription                     => 'Search, review and insert an article at the current cursor position.',
    KnowledgeInsertLoading                         => 'Loading FAQ articles …',
    KnowledgeInsertNoResults                       => 'No matching FAQ articles found.',
    KnowledgeInsertError                           => 'The knowledge base could not be loaded.',
    KnowledgeInsertRestricted                      => 'This article may not be used in a customer-visible message.',
    KnowledgeInsertSolution                        => 'Insert solution',
    KnowledgeInsertTitleSolution                   => 'Insert title and solution',
    KnowledgeInsertLink                            => 'Insert customer portal link',

    AdminAPITitle=>'REST API', AdminAPIDescription=>'Easily manage secure access for external applications.',
    APITokenCreateTitle=>'Create API access', APITokenCreateDescription=>'Access uses the selected Qisutu user rights and only the functions enabled here.',
    APITokenLabel=>'Label', APITokenLabelPlaceholder=>'e.g. monitoring or customer portal', APITokenLabelHint=>'A clear name for the connected application.',
    APITokenUser=>'Qisutu user', APITokenUserHint=>'This user’s normal permissions apply in addition to the API permissions.', APINoUserSelected=>'No user selected yet',
    APISelectUser=>'Select user', APISelectUserHint=>'Search agents and contacts by name, login, email or customer.', APIUserSearchPlaceholder=>'Name, login, email or customer', APIUserSearchStart=>'Enter a search term or display the first available users.',
    APITokenPermissions=>'Allowed functions', APITokenPermissionsHint=>'Enable only what this application actually needs.',
    APIScopeGroupTickets=>'Tickets', APIScopeGroupCommunication=>'Communication', APIScopeGroupData=>'Master data', APIScopeGroupCustomers=>'Customers', APIScopeGroupAddons=>'Add-ons',
    APIScopeTicketsRead=>'Read tickets', APIScopeTicketsCreate=>'Create tickets', APIScopeTicketsStatus=>'Change ticket status', APIScopeTicketsProperties=>'Change queue, priority and assignments',
    APIScopeTicketArticles=>'Create replies and notes', APIScopeInternalNotes=>'Create internal notes', APIScopeAttachments=>'Read and add attachments', APIScopeMasterDataRead=>'Read queues, states, priorities and fields',
    APIScopeCustomersRead=>'Read customers and contacts', APIScopeCustomersWrite=>'Create or change customers and contacts',
    APITokenLifetime=>'Validity', APILifetime30=>'30 days', APILifetime90=>'90 days', APILifetime365=>'1 year', APILifetimeNever=>'No expiry date',
    APIAdvancedSettings=>'Advanced protection', APIAllowedIPs=>'Allowed IP addresses', APIAllowedIPsHint=>'Optional. Separate fixed IP addresses with commas or line breaks.',
    APIRateLimit=>'Requests per minute', APIRateLimitHint=>'Protects Qisutu from too many requests by one access.', APICreateToken=>'Create API access',
    APITokenCreatedTitle=>'API access created', APITokenCreatedText=>'Copy this key to the external application now.', APITokenCreatedWarning=>'For security, the complete key is shown only this once.', APICopyToken=>'Copy key',
    APITokenListTitle=>'Existing API access', APITokenValidity=>'Valid until', APITokenLastUsed=>'Last used', APITokenStatusActive=>'Active', APITokenStatusInactive=>'Inactive', APITokenStatusExpired=>'Expired', APITokenStatusUserInactive=>'User inactive',
    APIAccountAgent=>'Agent', APIAccountCustomer=>'Contact', APIDeactivateToken=>'Deactivate', APITokenDeactivated=>'API access was deactivated.', APINoTokensTitle=>'No API access yet', APINoTokensText=>'Create the first access for an external application above.',
    APIDocumentationTitle=>'Technical use', APIDocumentationDescription=>'Documentation is stored locally in Qisutu and requires no internet connection.', APIBaseURL=>'Base URL', APIAuthentication=>'Authentication', APIExample=>'Example',
    APIHeaderFallbackHint=>'If the web server does not pass the Authorization header to CGI, X-Qisutu-API-Token can be used instead.', APIRequestLogTitle=>'Latest API requests', APIRequestLogDescription=>'Audit log without passwords, tokens or message contents', APIMethodPath=>'Method and path', APIStatusCode=>'Status', APINoRequestLogs=>'No API requests logged yet.',
    APITokenUserLabelRequired=>'Enter a label and select a user.', APITokenLabelTooLong=>'The label is too long.', APITokenScopeRequired=>'Enable at least one function.', APITokenUserInvalid=>'The selected user does not exist or is inactive.', APITokenAllowedIPInvalid=>'The allowed IP address list is invalid.', APITokenGenerationFailed=>'The secure API key could not be generated.',
    APICopied=>'Copied', APIUserSearchNone=>'No matching users found.', APIUserSearchError=>'The user search failed.', APIConfirmDeactivate=>'Really deactivate this API key?',

    ReportCreate=>'Create report', ReportBackToList=>'Back to reports', ReportSavedReports=>'Saved reports', ReportEntries=>'entries',
    ReportName=>'Report name', ReportDataSource=>'Data source', ReportOwner=>'Owner', ReportVisibility=>'Sharing', ReportChangedAt=>'Changed',
    ReportOpen=>'Open', ReportCopy=>'Copy', ReportDelete=>'Deactivate', ReportNoReportsTitle=>'No reports yet',
    ReportNoReportsText=>'Create a report using tickets, articles or time entries.', ReportCreateFirst=>'Create first report', ReportCreateTitle=>'Create report',
    ReportDesignerDescription=>'Create, analyse and export flexible reports.', ReportBasicData=>'Name and sharing',
    ReportBasicDataHint=>'The report belongs to you and can optionally be shared with agent groups.', ReportVisibilityPrivate=>'Only me',
    ReportVisibilityShared=>'Shared with agent groups', ReportDescription=>'Description', ReportShareGroups=>'Share with agent groups',
    ReportShareGroupsHint=>'Multiple selection is possible. Only agents with general report permission can open the report.',
    ReportStepSource=>'Select data', ReportStepSourceHint=>'Which information should be analysed?', ReportStepFilters=>'Limit data',
    ReportStepFiltersHint=>'Filters are optional and can be combined.', ReportAddFilter=>'Add filter', ReportFilterLogic=>'Filter logic',
    ReportFilterAll=>'All filters must match', ReportFilterAny=>'At least one filter must match', ReportNoFilters=>'No filters – all permitted data is included.',
    ReportStepAnalysis=>'Design analysis', ReportStepAnalysisHint=>'Choose grouping, metrics, chart and detail columns.', ReportGrouping=>'Grouping',
    ReportChartType=>'Display', ReportSort=>'Sorting', ReportResultLimit=>'Maximum groups', ReportMetrics=>'Metrics', ReportMetricsHint=>'maximum 3',
    ReportDetailColumns=>'Detail columns', ReportDetailColumnsHint=>'maximum 12', ReportPreview=>'Calculate preview', ReportCopyAsOwn=>'Copy as my report',
    ReportExportCSVAnalysis=>'Analysis as CSV', ReportExportCSVDetails=>'Details as CSV', ReportExportPDF=>'PDF with chart', ReportPreviewTitle=>'Preview',
    ReportPreviewHint=>'The preview uses live data from the complete data set enabled for reporting.', ReportLoading=>'Calculating report …', ReportDetails=>'Details',
    ReportSelectValues=>'Select values', ReportApplySelection=>'Apply selection', ReportSaved=>'The report was saved.',
    ReportCopied=>'The report was copied as your own report.', ReportDeleted=>'The report was deactivated.',
    ReportReadOnlyHint=>'This shared report is read-only. You can run it or copy it as your own report.', ReportPreviewError=>'The report could not be calculated.',
    ReportNoValues=>'No values available.', ReportFilterValue=>'Filter value', ReportFilterValues=>'Separate multiple values with commas',
    ReportNoMatches=>'No matching values found.', ReportMetricValue=>'Value', ReportDetailLimited=>'The detail preview was limited. CSV export can contain up to 50,000 rows.',
    ReportDeleteConfirm=>'Really deactivate this report?', ReportMetricLimit=>'You can select no more than 3 metrics.',
    ReportColumnLimit=>'You can select no more than 12 detail columns.', Remove=>'Remove', ReportGeneratedAt=>'Generated at', ReportResults=>'Analysis',
    ReportPDFConfidential=>'Qisutu report – access and distribution are subject to your organisation policies',
    ReportOperatorEquals=>'equals', ReportOperatorNotEquals=>'does not equal', ReportOperatorContains=>'contains', ReportOperatorNotContains=>'does not contain',
    ReportOperatorOneOf=>'is one of', ReportOperatorNoneOf=>'is none of', ReportOperatorBetween=>'is between', ReportOperatorAtLeast=>'is at least',
    ReportOperatorAtMost=>'is at most', ReportOperatorEmpty=>'is empty', ReportOperatorNotEmpty=>'is not empty',
    ReportChartBar=>'Bar chart', ReportChartStackedBar=>'Stacked bars', ReportChartLine=>'Line chart', ReportChartArea=>'Area chart',
    ReportChartDoughnut=>'Doughnut chart', ReportChartTable=>'Table only', ReportChartKPI=>'Metrics only',
    ReportSortLabelAsc=>'Label ascending', ReportSortLabelDesc=>'Label descending', ReportSortValueDesc=>'First metric descending', ReportSortValueAsc=>'First metric ascending',
    ReportSourceTickets=>'Tickets', ReportSourceTicketsDescription=>'Analyse ticket inventory, states, queues, customers, SLA values and dynamic fields.',
    ReportSourceArticles=>'Articles and communication', ReportSourceArticlesDescription=>'Analyse emails, replies, notes and other ticket articles.',
    ReportSourceTime=>'Time accounting', ReportSourceTimeDescription=>'Analyse valid time entries by agent, customer, queue, activity and billing type.',
    ReportFieldTicketNumber=>'Ticket number', ReportFieldTitle=>'Title', ReportFieldCreatedAt=>'Created at', ReportFieldChangedAt=>'Changed at', ReportFieldClosedAt=>'Closed at',
    ReportFieldQueue=>'Queue', ReportFieldStatus=>'State', ReportFieldStateType=>'State type', ReportFieldPriority=>'Priority', ReportFieldCustomer=>'Customer', ReportFieldContact=>'Contact',
    ReportFieldOwner=>'Owner', ReportFieldResponsible=>'Responsible', ReportFieldService=>'Service', ReportFieldSLA=>'SLA', ReportFieldEscalation=>'Escalation',
    ReportFieldSLABreached=>'SLA breached', ReportFieldFirstResponseMinutes=>'Time to first response', ReportFieldSolutionMinutes=>'Solution time',
    ReportFieldArticleCreatedAt=>'Article created at', ReportFieldArticleNumber=>'Article number', ReportFieldSubject=>'Subject', ReportFieldChannel=>'Channel',
    ReportFieldSenderType=>'Sender type', ReportFieldVisibility=>'Visibility', ReportFieldInternal=>'Internal article', ReportFieldCreatedBy=>'Created by',
    ReportFieldWorkDate=>'Work date', ReportFieldDurationMinutes=>'Duration', ReportFieldBillable=>'Billable', ReportFieldDescription=>'Description',
    ReportFieldSource=>'Source', ReportFieldAgent=>'Agent', ReportFieldActivity=>'Activity type',
    ReportStateTypeNew=>'New', ReportStateTypeOpen=>'Open', ReportStateTypePending=>'Pending', ReportStateTypeClosed=>'Closed',
    ReportEscalationNormal=>'On track', ReportEscalationWarning=>'Warning', ReportEscalationEscalated=>'Escalated',
    ReportGroupNone=>'Grand total', ReportGroupCreatedDay=>'Creation day', ReportGroupCreatedWeek=>'Creation week', ReportGroupCreatedMonth=>'Creation month',
    ReportGroupCreatedQuarter=>'Creation quarter', ReportGroupCreatedYear=>'Creation year', ReportGroupArticleDay=>'Article day', ReportGroupArticleMonth=>'Article month',
    ReportGroupWorkDay=>'Work date', ReportGroupWorkMonth=>'Work month',
    ReportMetricTicketCount=>'Tickets', ReportMetricOpenCount=>'Open tickets', ReportMetricClosedCount=>'Closed tickets', ReportMetricNewCount=>'New tickets',
    ReportMetricEscalatedCount=>'Escalated tickets', ReportMetricBreachedCount=>'Tickets with SLA breach', ReportMetricSLACompliance=>'SLA compliance',
    ReportMetricAvgFirstResponse=>'Average first response', ReportMetricAvgSolution=>'Average solution time', ReportMetricArticleCount=>'Articles',
    ReportMetricDistinctTickets=>'Affected tickets', ReportMetricInternalCount=>'Internal articles', ReportMetricCustomerArticleCount=>'Customer articles',
    ReportMetricTimeEntries=>'Time entries', ReportMetricTotalMinutes=>'Total time', ReportMetricBillableMinutes=>'Billable time',
    ReportMetricNonBillableMinutes=>'Non-billable time', ReportMetricAverageMinutes=>'Average duration',
    ReportErrorInvalidConfiguration=>'The report configuration is invalid.', ReportErrorInvalidSource=>'The selected data source is invalid.',
    ReportErrorInvalidGroup=>'The selected grouping is invalid.', ReportErrorInvalidMetric=>'A selected metric is invalid.',
    ReportErrorInvalidField=>'A selected field is invalid.', ReportErrorInvalidOperator=>'A selected operator is invalid.',
    ReportErrorInvalidChart=>'The selected display is invalid.', ReportErrorTooManyFilters=>'Too many filters were created.',
    ReportErrorFilterValueMissing=>'A filter value is missing.', ReportErrorInvalidFilterValue=>'A filter value is invalid.',
    ReportErrorPermission=>'You are not allowed to edit this report.', ReportErrorExecution=>'The report could not be calculated.',
    ReportErrorNoQueueAccess=>'No permitted queues are available for this report.', ReportErrorNotFound=>'The report was not found.',
    ReportErrorName=>'Enter a valid report name.', ReportErrorSave=>'The report could not be saved.', ReportErrorDelete=>'The report could not be deactivated.',

    CommunicationLogTitle=>'Communication log',
    CommunicationLogDescription=>'Monitor IMAP, SMTP and OAuth2 connections centrally and trace errors down to each processing step.',
    CommunicationLogFilterTitle=>'Filter connections', CommunicationLogFilterDescription=>'Select a period, protocol, direction, account, status or search term.',
    CommunicationLogPeriod=>'Period', CommunicationLogPeriod1h=>'Last hour', CommunicationLogPeriod24h=>'Last 24 hours', CommunicationLogPeriod7d=>'Last 7 days', CommunicationLogPeriod30d=>'Last 30 days', CommunicationLogPeriodCustom=>'Custom period',
    CommunicationLogDateFrom=>'From', CommunicationLogDateTo=>'To', CommunicationLogProtocol=>'Protocol', CommunicationLogAllProtocols=>'All protocols',
    CommunicationLogDirection=>'Direction', CommunicationLogAllDirections=>'All directions', CommunicationLogDirectionIncoming=>'Incoming', CommunicationLogDirectionOutgoing=>'Outgoing', CommunicationLogDirectionSystem=>'System',
    CommunicationLogStatus=>'Status', CommunicationLogAllStatuses=>'All statuses', CommunicationLogStatusRunning=>'Running', CommunicationLogStatusSuccess=>'Successful', CommunicationLogStatusWarning=>'Warning', CommunicationLogStatusError=>'Error', CommunicationLogStatusCancelled=>'Cancelled',
    CommunicationLogAccount=>'Account', CommunicationLogAllAccounts=>'All accounts', CommunicationLogSearchPlaceholder=>'Account, address, subject, Message-ID, ticket number or error',
    CommunicationLogOverview=>'Overview', CommunicationLogConnections=>'Connections', CommunicationLogSuccessful=>'Successful', CommunicationLogWarnings=>'Warnings', CommunicationLogErrors=>'Errors', CommunicationLogRunning=>'Open connections', CommunicationLogMessagesInOut=>'Messages in / out', CommunicationLogAverageDuration=>'Average processing time',
    CommunicationLogConnectionsTitle=>'Connection list', CommunicationLogOperation=>'Operation', CommunicationLogServer=>'Server', CommunicationLogMessages=>'Messages', CommunicationLogDuration=>'Duration', CommunicationLogResult=>'Result', CommunicationLogReceived=>'Processed', CommunicationLogSent=>'Sent', CommunicationLogFailed=>'Failed', CommunicationLogShowDetails=>'Details',
    CommunicationLogStart=>'Start time', CommunicationLogEnd=>'End time', CommunicationLogOpenDetailsHint=>'Open connection details', CommunicationLogProcessingSummary=>'Processing result', CommunicationLogFound=>'Found', CommunicationLogCreated=>'Created', CommunicationLogUpdated=>'Updated', CommunicationLogIgnored=>'Ignored', CommunicationLogBytes=>'Bytes transferred', CommunicationLogTechnicalDetails=>'Show technical details', CommunicationLogPagination=>'Connection list pages', CommunicationLogPreviousPage=>'Previous page', CommunicationLogNextPage=>'Next page', CommunicationLogPage=>'Page',
    CommunicationLogNoEntriesTitle=>'No connections found', CommunicationLogNoEntriesText=>'No matching communication operations were logged during the selected period.',
    CommunicationLogDetailTitle=>'Connection details', CommunicationLogTraceID=>'Log ID', CommunicationLogSecurity=>'Connection security', CommunicationLogMessageMetadata=>'Message information', CommunicationLogSender=>'Sender', CommunicationLogRecipient=>'Recipient', CommunicationLogArticle=>'Article', CommunicationLogSteps=>'Processing steps', CommunicationLogStepsDescription=>'Chronological processing of this individual connection.', CommunicationLogNoStepsTitle=>'No processing steps available', CommunicationLogNoStepsText=>'No individual processing steps were recorded for this connection.',
    CommunicationLogOperationTest=>'Connection test', CommunicationLogOperationFetch=>'Fetch email', CommunicationLogOperationDelete=>'Delete email', CommunicationLogOperationSend=>'Send email', CommunicationLogOperationNotification=>'Send notification', CommunicationLogOperationAutomation=>'Automated email', CommunicationLogOperationCustomerRegistration=>'Registration email', CommunicationLogOperationPasswordReset=>'Send password link', CommunicationLogOperationPasswordChanged=>'Confirm password change', CommunicationLogOperationTokenRefresh=>'Refresh OAuth2 token', CommunicationLogOperationTokenAuthorization=>'Request OAuth2 token', CommunicationLogOperationAuthorizationCallback=>'Complete OAuth2 authorization',
    CommunicationLogLevelInfo=>'Information', CommunicationLogLevelSuccess=>'Successful', CommunicationLogLevelWarning=>'Warning', CommunicationLogLevelError=>'Error',
    CommunicationLogStageStart=>'Start', CommunicationLogStageConnect=>'Connection', CommunicationLogStageGreeting=>'Server greeting', CommunicationLogStageTls=>'Encryption', CommunicationLogStageOauth2=>'OAuth2', CommunicationLogStageAuthentication=>'Authentication', CommunicationLogStageSelect=>'Select mailbox', CommunicationLogStageSearch=>'Search messages', CommunicationLogStageFolderList=>'Fetch folders', CommunicationLogStageFetchMessage=>'Fetch message', CommunicationLogStageParseMessage=>'Parse message', CommunicationLogStageProcessMessage=>'Process message', CommunicationLogStagePostmasterFilter=>'Postmaster filter', CommunicationLogStageIgnored=>'Ignored', CommunicationLogStageTicket=>'Ticket processing', CommunicationLogStageDelete=>'Delete', CommunicationLogStageExpunge=>'Confirm deletion', CommunicationLogStageEnvelope=>'Sender and recipient', CommunicationLogStageTransfer=>'Transfer', CommunicationLogStageRequest=>'Request', CommunicationLogStageResponse=>'Response', CommunicationLogStageToken=>'Token processing', CommunicationLogStageAuthorization=>'Authorization', CommunicationLogStageConfiguration=>'Configuration', CommunicationLogStageLogout=>'Logout', CommunicationLogStageResult=>'Result', CommunicationLogStageProcessing=>'Processing',
    CommunicationLogStageTicketRecognition=>'Ticket recognition', CommunicationLogStageFilterCheck=>'Filter check', CommunicationLogStageFilterAction=>'Filter action', CommunicationLogStageDynamicField=>'Dynamic field', CommunicationLogStageAttachment=>'Attachments', CommunicationLogStageNotification=>'Notifications', CommunicationLogStageSourceCleanup=>'Clean up source message', CommunicationLogStageMessageBuild=>'Build message',
    SystemSettingCommunicationLogRetention=>'Communication log retention', SystemSettingCommunicationLogRetentionDescription=>'Number of days after which old communication logs are deleted automatically. 0 retains them indefinitely.', CommonDays=>'days',

    AdminAuthentication=>'Authentication', AdminAuthenticationLocal=>'Local', AdminAuthenticationLDAP=>'LDAP / Active Directory', AdminLDAPPasswordConversionHint=>'Setting a new password here changes this agent to local authentication.',
    AdminLDAPTitle=>'LDAP / Active Directory',
    AdminLDAPDescription=>'Configure separate directory authentication for agents and customer users and map LDAP attributes to Qisutu fields.',
    LDAPProfileSelection=>'Select LDAP profile', LDAPAgentProfileTitle=>'Agent LDAP', LDAPCustomerProfileTitle=>'Customer LDAP', LDAPAgentProfileDescription=>'Independent LDAP/AD connection, search and mapping used exclusively for agent sign-ins.', LDAPCustomerProfileDescription=>'Independent LDAP/AD connection, search and mapping for customer users and their customer companies.',
    LDAPConfigurationTitle=>'LDAP/AD configuration', LDAPConfigurationDescription=>'Each profile uses a completely separate connection, search, mapping, test and activation.',
    LDAPConfigurationName=>'Name', LDAPDirectoryType=>'Directory type', LDAPDirectoryTypeActiveDirectory=>'Active Directory', LDAPDirectoryTypeLDAP=>'Generic LDAP',
    LDAPConnectionTitle=>'Connection', LDAPHost=>'Server name', LDAPPort=>'Port', LDAPConnectionSecurity=>'Encryption', LDAPSecurityLDAPS=>'LDAPS', LDAPSecurityStartTLS=>'StartTLS', LDAPVerifyCertificate=>'Verify server certificate',
    LDAPCAFile=>'Custom CA file', LDAPCAFileHint=>'Optional absolute path to a PEM file. The operating system trust store is used when empty.',
    LDAPServiceAccountTitle=>'Technical search account', LDAPServiceAccountDescription=>'The search account is used only to locate the user and read mapped attributes.', LDAPBindDN=>'Bind DN / bind user', LDAPBindPassword=>'Bind password', LDAPBindPasswordStoredHint=>'A password is stored encrypted. Leave empty to keep it.', LDAPBindPasswordEmptyHint=>'Bind DN and password can only be supplied together.',
    LDAPSearchTitle=>'User search', LDAPBaseDN=>'User base DN', LDAPUserFilter=>'Additional user filter', LDAPUserFilterHint=>'Qisutu automatically adds the safely escaped login filter.',
    LDAPRequiredMappingTitle=>'Required standard mapping', LDAPRequiredMappingDescription=>'All displayed required attributes must provide a valid value for every automatically provisioned user or customer.',
    LDAPCustomerNumber=>'Customer number', LDAPCustomerName=>'Customer name', LDAPCustomerNumberHint=>'LDAP attribute containing the unique Qisutu customer-company number.', LDAPCustomerNameHint=>'LDAP attribute containing the Qisutu customer-company name.',
    LDAPProvisioningTitle=>'Automatic agent provisioning', LDAPCustomerProvisioningTitle=>'Automatic customer provisioning', LDAPCustomerProvisioningDescription=>'After successful sign-in Qisutu transactionally creates or updates the customer company, customer account and exactly one active assignment.', LDAPDefaultGroup=>'Default group for new agents', LDAPNoDefaultGroup=>'No automatic group assignment', LDAPDefaultGroupHint=>'Added only to newly created LDAP agents.', LDAPUpdateStandardFieldsOnLogin=>'Update standard fields at every LDAP sign-in',
    LDAPAgentFieldMappingTitle=>'Additional agent fields', LDAPCustomerUserFieldMappingTitle=>'Additional customer-user fields', LDAPAdditionalMappingDescription=>'Existing additional fields can be freely mapped to LDAP attributes.', LDAPCustomerMappingPreparedHint=>'These mappings are actively validated during customer LDAP sign-in and written to the Qisutu customer-user assignment.',
    LDAPQisutuField=>'Qisutu field', LDAPAttribute=>'LDAP attribute', LDAPMappingRequired=>'Required value', LDAPMappingUpdate=>'Update at sign-in', LDAPMappingClearEmpty=>'Clear when LDAP is empty', LDAPFieldRequiredInQisutu=>'– required in Qisutu',
    LDAPTestTitle=>'Test connection and mapping', LDAPTestDescription=>'The test searches for a user in the selected profile and verifies every required attribute. A test password also verifies sign-in.', LDAPTestLogin=>'Test login', LDAPTestPassword=>'Test password', LDAPTestPasswordHint=>'Optional. The password is neither stored nor logged.', LDAPTestSubmit=>'Test connection and mapping', LDAPLastTest=>'Last test',
    LDAPActivationTitle=>'Enable LDAP/AD sign-in', LDAPActivationDescription=>'After activation Qisutu checks only the matching account type against this profile. The login page shows no directory selector.', LDAPActivate=>'Enable LDAP/AD sign-in', LDAPDeactivate=>'Disable LDAP/AD sign-in', LDAPStatusActive=>'Active', LDAPStatusInactive=>'Inactive',
    LDAPConfigurationSavedTestRequired=>'The selected LDAP/AD profile was saved and disabled. Test its connection and mapping before activation.', LDAPConfigurationActivated=>'The selected LDAP/AD profile is active.', LDAPConfigurationDeactivated=>'The selected LDAP/AD profile was disabled.', LDAPTestSuccessful=>'Connection, user search and required mappings were verified successfully.', LDAPModuleMissing=>'The Perl module Net::LDAP is missing. Run Qisutu system preparation or the update again as root.', LDAPSuccessfulTestRequired=>'A successful connection and mapping test is required before activation.',
    LDAPProfileTypeInvalid=>'The LDAP profile is invalid.', LDAPDirectoryTypeInvalid=>'The directory type is invalid.', LDAPHostInvalid=>'The LDAP server name is invalid.', LDAPPortInvalid=>'The LDAP port is invalid.', LDAPSecurityInvalid=>'LDAPS or StartTLS must be used.', LDAPBaseDNRequired=>'The user base DN is required.', LDAPUserFilterInvalid=>'The LDAP user filter is invalid.', LDAPLoginAttributeRequired=>'A valid LDAP attribute is required for login.', LDAPFirstnameAttributeRequired=>'A valid LDAP attribute is required for first name.', LDAPLastnameAttributeRequired=>'A valid LDAP attribute is required for last name.', LDAPEmailAttributeRequired=>'A valid LDAP attribute is required for e-mail.', LDAPCustomerNumberAttributeRequired=>'A valid LDAP attribute is required for the customer number.', LDAPCustomerNameAttributeRequired=>'A valid LDAP attribute is required for the customer name.',
    LDAPBindCredentialsIncomplete=>'Bind DN and bind password must be supplied together.', LDAPConfigurationValueTooLong=>'At least one configuration value is too long.', LDAPDefaultGroupInvalid=>'The selected default group is invalid.', LDAPFieldMappingInvalid=>'At least one additional-field mapping is invalid.', LDAPFieldMappingLoadFailed=>'LDAP field mappings could not be loaded.', LDAPBindPasswordEncryptionFailed=>'The bind password could not be encrypted.', LDAPBindPasswordDecryptionFailed=>'The stored bind password could not be decrypted.', LDAPConfigurationLoadFailed=>'The LDAP configuration could not be loaded.', LDAPConfigurationSaveFailed=>'The LDAP configuration could not be saved.', LDAPActivationFailed=>'The LDAP configuration could not be enabled.', LDAPDeactivationFailed=>'The LDAP configuration could not be disabled.',
    LDAPRequiredAgentFieldMappingMissing=>'Every agent custom field required by Qisutu must be mapped to an LDAP attribute.', LDAPRequiredCustomerFieldMappingMissing=>'Every customer-user custom field required by Qisutu must be mapped to an LDAP attribute.',
    LDAPTestLoginRequired=>'Enter a test login.', LDAPTestFailed=>'The LDAP test failed.', LDAPConnectionFailed=>'The connection to the LDAP server failed.', LDAPTLSFailed=>'The encrypted LDAP connection could not be established.', LDAPServiceBindFailed=>'The technical LDAP search account could not sign in.', LDAPSearchFailed=>'The LDAP user search failed.', LDAPSearchNotUnique=>'The mapped login attribute returns more than one user.', LDAPAuthenticationFailed=>'The username or password is incorrect.',
    LDAPLoginValueMissing=>'The mapped login attribute has no valid value.', LDAPFirstnameValueMissing=>'The mapped first-name attribute has no valid value.', LDAPLastnameValueMissing=>'The mapped last-name attribute has no valid value.', LDAPEmailValueMissing=>'The mapped e-mail attribute has no value.', LDAPEmailValueInvalid=>'The mapped e-mail attribute is not a valid e-mail address.', LDAPRequiredDynamicFieldMissing=>'At least one additional field marked as required is empty in LDAP.', LDAPCustomerNumberValueMissing=>'The mapped customer-number attribute has no valid value.', LDAPCustomerNameValueMissing=>'The mapped customer-name attribute has no valid value.', LDAPAgentInactive=>'The existing Qisutu agent account is inactive.', LDAPAgentEmailConflict=>'The LDAP e-mail address already belongs to another Qisutu agent. Automatic duplicate creation was prevented.', LDAPAgentProvisionFailed=>'The LDAP agent could not be created or updated.', LDAPCustomerInactive=>'The mapped Qisutu customer company is inactive.', LDAPCustomerUserInactive=>'The existing Qisutu customer account is inactive.', LDAPCustomerUserEmailConflict=>'The LDAP e-mail address already belongs to another Qisutu customer account. Automatic duplicate creation was prevented.', LDAPCustomerProvisionFailed=>'The customer company, customer account or assignment could not be created or updated.',

    TwoFactorTitle=>'Two-factor authentication',
    TwoFactorPreferencesDescription=>'Protect sign-in with an additional time-based code from an authenticator app.',
    TwoFactorLoginTitle=>'Two-factor sign-in', TwoFactorLoginDescription=>'Enter the current code from your authenticator app or a recovery code.',
    TwoFactorSetupRequired=>'Two-factor authentication is required for this account.',
    TwoFactorSetupScanHint=>'Scan this QR code with Google Authenticator or another TOTP app. Then enter the displayed six-digit code.',
    TwoFactorSetupManualHint=>'If you cannot scan the QR code, add this secret key manually as a time-based account (TOTP, 6 digits, 30 seconds).',
    TwoFactorQRCodeLabel=>'QR code for setting up two-factor authentication',
    TwoFactorCodeOrRecoveryCode=>'Authenticator or recovery code', TwoFactorAuthenticatorCode=>'Current authenticator code',
    TwoFactorVerify=>'Verify', TwoFactorEnable=>'Enable', TwoFactorStart=>'Start setup', TwoFactorDisable=>'Disable',
    TwoFactorEnabledText=>'Two-factor authentication is enabled. Remaining recovery codes:',
    TwoFactorRecoveryRegenerate=>'Generate new recovery codes',
    TwoFactorRecoveryCodesTitle=>'Recovery codes', TwoFactorRecoveryCodesDescription=>'Each code can be used once if your authenticator app is unavailable.',
    TwoFactorRecoveryCodesOnce=>'Store these codes in a secure place now. They will not be shown again.', TwoFactorContinue=>'Continue to Qisutu',
    TwoFactorCodeInvalid=>'The two-factor code is invalid.', TwoFactorChallengeInvalid=>'The two-factor sign-in has expired. Please sign in again.',
    TwoFactorAdminReset=>'Reset two-factor setup', TwoFactorAdminResetHint=>'Use only when the person has lost access to both the authenticator app and all recovery codes.',
    TwoFactorAdminResetSuccess=>'The two-factor setup has been reset.',
    SecuritySettingsTwoFactorGroup=>'Security – two-factor authentication',
    SystemSettingTwoFactorAdministrators=>'Require 2FA for administrators', SystemSettingTwoFactorAdministratorsDescription=>'Administrators must set up an authenticator app at their next sign-in.',
    SystemSettingTwoFactorAgents=>'Require 2FA for agents', SystemSettingTwoFactorAgentsDescription=>'All agents must set up an authenticator app at their next sign-in.',
    SystemSettingTwoFactorCustomers=>'Require 2FA for customer users', SystemSettingTwoFactorCustomersDescription=>'All customer users must set up an authenticator app at their next sign-in.',

    AdminMailCertificateVerification=>'Server connection certificate verification',
    AdminMailVerifyServerCertificate=>'Verify the server certificate and host name',
    AdminMailCAFile=>'Custom CA file', AdminMailCAFileHint=>'Optional absolute path to a readable PEM file containing additional trusted certificate authorities.',
    AdminMailCAFileInvalid=>'The CA file must be an absolute path to a readable file.',
    AdminMailEncryptionTitle=>'Email encryption', AdminMailEncryptionDescription=>'Manage S/MIME certificates, identities and policies for incoming and outgoing email.',
    AdminMailEncryptionPolicies=>'S/MIME policies', AdminMailEncryptionPoliciesHint=>'Policies apply per system email address. Outgoing messages are signed first and then encrypted.',
    AdminMailEncryptionSignOutgoing=>'Sign outgoing', AdminMailEncryptionEncryptOutgoing=>'Encrypt outgoing', AdminMailEncryptionIncoming=>'Incoming',
    AdminMailEncryptionSign=>'Sign', AdminMailEncryptionDecrypt=>'Decrypt', AdminMailEncryptionVerify=>'Verify signature',
    AdminMailEncryptionDisabled=>'Disabled', AdminMailEncryptionWhenAvailable=>'When available for every recipient', AdminMailEncryptionRequired=>'Required',
    AdminMailEncryptionIdentityImport=>'Import own S/MIME identity', AdminMailEncryptionIdentityHint=>'Imports a certificate and private key for a system email address. The private key is stored encrypted.',
    AdminMailEncryptionRecipientImport=>'Import recipient certificate', AdminMailEncryptionRecipientHint=>'A recipient public certificate used for encrypted outgoing email.',
    AdminMailEncryptionPKCS12=>'PKCS#12 file (.p12/.pfx)', AdminMailEncryptionPassphrase=>'Passphrase', AdminMailEncryptionOrPEM=>'Alternatively, upload the certificate and private key separately in PEM format.',
    AdminMailEncryptionImport=>'Import', AdminMailEncryptionCertificate=>'Certificate', AdminMailEncryptionPrivateKey=>'Private key', AdminMailEncryptionCertificates=>'S/MIME certificates', AdminMailEncryptionCertificatesHint=>'Active identities and recipient certificates, including validity and SHA-256 fingerprint.',
    AdminMailEncryptionIdentity=>'Own identity', AdminMailEncryptionRecipient=>'Recipient', AdminMailEncryptionFingerprint=>'SHA-256 fingerprint', AdminMailEncryptionValidity=>'Validity', AdminMailEncryptionNoCertificates=>'No S/MIME certificates have been imported yet.',
    AdminMailEncryptionOpenSSLMissing=>'OpenSSL is unavailable. S/MIME cannot be used on this system.', AdminMailEncryptionFileTooLarge=>'The certificate file exceeds 5 MB.', AdminMailEncryptionCertificateRequired=>'Please select a certificate file.',
    AdminMailEncryptionPolicySaved=>'The S/MIME policy was saved.', AdminMailEncryptionIdentityImported=>'The S/MIME identity was imported securely.', AdminMailEncryptionRecipientImported=>'The recipient certificate was imported.', AdminMailEncryptionKeyUpdated=>'The certificate status was changed.', AdminMailEncryptionKeyDeleted=>'The certificate was deleted.',
    MailCryptoEncrypted=>'S/MIME encrypted', MailCryptoDecrypted=>'S/MIME decrypted', MailCryptoSignedValid=>'Valid S/MIME signature', MailCryptoSignedUntrusted=>'Valid signature, untrusted certificate', MailCryptoSignedInvalid=>'Invalid S/MIME signature', MailCryptoSignedUnchecked=>'S/MIME signature not verified',
    AdminAddonsTitle=>'Add-ons', AdminAddonsDescription=>'Install, update and uninstall Qisutu add-ons from complete source-code ZIP files.',
    AddonInstallTitle=>'Install or update an add-on', AddonInstallHint=>'The ZIP file and its readable qisutu-module.json are validated and then processed by the Qisutu daemon.', AddonPackageFile=>'Module ZIP file', AddonPackageFileHint=>'ZIP files up to 25 MB with complete source code, qisutu-module.json and a declared file list are accepted.', AddonInstallOrUpdate=>'Install or update', AddonInstalledTitle=>'Installed add-ons', AddonIdentifier=>'Module identifier', AddonVersion=>'Version', AddonStatus=>'Status', AddonUninstall=>'Uninstall', AddonUninstallConfirm=>'Really uninstall this add-on? Settings and module data will be retained.', AddonOperationsTitle=>'Module operations', AddonOperation=>'Operation', AddonMessage=>'Message', AddonCreatedAt=>'Requested', AddonOperationQueued=>'The module operation was validated and passed to the Qisutu daemon.',
    AddonStatus_Installed=>'Installed', AddonStatus_Unknown=>'Unknown', AddonOperation_Install=>'Installation', AddonOperation_Update=>'Update', AddonOperation_Uninstall=>'Uninstallation', AddonOperation_Unknown=>'Unknown', AddonOperationStatus_Pending=>'Pending', AddonOperationStatus_Processing=>'Processing', AddonOperationStatus_Completed=>'Completed', AddonOperationStatus_Failed=>'Failed', AddonOperationStatus_Unknown=>'Unknown',
    AddonPackageSizeInvalid=>'The module ZIP file is missing or larger than 25 MB.', AddonPackageControlFilesMissing=>'The module ZIP does not contain qisutu-module.json.', AddonPackageRootInvalid=>'The module ZIP must contain all files at its root or below exactly one outer module directory.', AddonManifestInvalid=>'qisutu-module.json is not valid JSON.', AddonManifestFormatInvalid=>'The installation description does not use a supported manifest_version.', AddonManifestIdentifierInvalid=>'The module identifier is invalid.', AddonManifestNameInvalid=>'The module name is invalid.', AddonManifestVersionInvalid=>'The module version is invalid.', AddonQisutuVersionIncompatible=>'The module is incompatible with this Qisutu version.', AddonManifestAPIInvalid=>'The add-on API declaration is invalid.', AddonAPIIncompatible=>'The module requires another add-on API version.', AddonCapabilityUnavailable=>'A required add-on capability is unavailable.', AddonManifestSettingInvalid=>'The installation description contains an invalid setting.', AddonManifestProviderInvalid=>'The installation description contains an invalid authentication provider.', AddonManifestTaskInvalid=>'The installation description contains an invalid background task.', AddonManifestServiceInvalid=>'The installation description contains an invalid add-on service.', AddonManifestEventInvalid=>'The installation description contains an invalid event subscription.', AddonManifestRESTInvalid=>'The installation description contains an invalid REST route.', AddonManifestUISlotInvalid=>'The installation description contains an invalid UI slot.', AddonManifestFilesInvalid=>'The declared file list or a file permission in qisutu-module.json is invalid.', AddonPackageFileUndeclared=>'The module ZIP contains a file that is not declared in qisutu-module.json.', AddonPackageArchiveInvalid=>'The module file is not a readable ZIP archive.', AddonPackagePathInvalid=>'The module ZIP contains an unsafe path.', AddonPackageDuplicateFile=>'The module ZIP contains a duplicate path.', AddonPackageFileTooLarge=>'An individual module file is too large.', AddonPackageExpandedSizeInvalid=>'The expanded module is too large.', AddonPackageFileCountInvalid=>'The module ZIP contains too many files.', AddonPackageNamespaceInvalid=>'Module Perl classes must use the Qisutu::Addon namespace.', AddonPackageExtensionInvalid=>'Please select a ZIP file.', AddonPackageAlreadyInstalled=>'This module is already installed. Use a higher module version for an update.', AddonPackageNotInstalled=>'The add-on is not installed.', AddonUpdateVersionInvalid=>'An update must have a higher module version.', AddonOperationInvalid=>'The module operation is invalid.', AddonOperationAlreadyPending=>'A module operation is already running for this module.', AddonOperationQueueFailed=>'The module operation could not be stored.', AddonSettingRequired=>'A required module setting is missing.', AddonSettingInvalid=>'A module setting is invalid.', AddonSettingEncryptFailed=>'A module secret could not be encrypted.', AddonSettingSaveFailed=>'The module settings could not be saved.',
    ExternalAuthOptions=>'External authentication', ExternalAuthOr=>'or', ExternalAuthProviderInvalid=>'The external authentication provider is unavailable.', ExternalAuthStateFailed=>'The secure authentication state could not be stored.', ExternalAuthStartFailed=>'External authentication could not be started.', ExternalAuthProviderRejected=>'Authentication was cancelled or rejected by the external provider.', ExternalAuthCallbackInvalid=>'The external provider response is invalid.', ExternalAuthStateInvalid=>'The authentication state is invalid or expired. Please start again.', ExternalAuthLoginFailed=>'External authentication failed.', ExternalAuthProviderLoadFailed=>'The external authentication provider could not be loaded.', ExternalAuthBaseURLMissing=>'External authentication requires a public HTTPS base URL in system settings.', ExternalAuthRandomFailed=>'Secure random data could not be generated.', ExternalAuthLocalLoginDisabled=>'Local agent authentication is disabled by the external authentication provider.', AdminAuthenticationExternal=>'External add-on',
    AdminSystemSettingsDatabaseConnection=>'Database connection', AdminSystemSettingsDatabaseSource=>'Read from core/config/QisutuConfig.pm', AdminSystemSettingsDatabaseServer=>'Server', AdminSystemSettingsDatabaseName=>'Database name', AdminSystemSettingsDatabaseUser=>'Database user', AdminSystemSettingsDatabasePassword=>'Database password', AdminSystemSettingsPasswordShow=>'Show password', AdminSystemSettingsPasswordHide=>'Hide password',
    SystemSettingMailBrandGroup=>'Email design', SystemSettingMailBrandName=>'Company name in emails', SystemSettingMailBrandNameDescription=>'The name is displayed in the colored header of all notifications and automatic replies.', SystemSettingMailBrandLogo=>'Company logo in emails', SystemSettingMailBrandLogoDescription=>'PNG, JPEG or GIF file up to 2 MB. Without a custom logo, the small Qisutu logo is used.', SystemSettingMailBrandLogoSelect=>'Please select a PNG, JPEG or GIF file.', SystemSettingMailBrandLogoCurrent=>'Current custom logo', SystemSettingMailBrandLogoDefault=>'The supplied small Qisutu logo is currently used.', SystemSettingMailBrandLogoHint=>'The logo is limited to 28 × 28 pixels in emails.', SystemSettingMailBrandLogoEmpty=>'The selected logo file is empty.', SystemSettingMailBrandLogoTooLarge=>'The logo file must not exceed 2 MB.', SystemSettingMailBrandLogoInvalid=>'The file is not a valid PNG, JPEG or GIF image.', SystemSettingMailBrandRootMissing=>'The Qisutu directory could not be determined.', SystemSettingMailBrandDirectoryFailed=>'The directory for the email logo could not be created.', SystemSettingMailBrandLogoSaveFailed=>'The email logo could not be saved.', SystemSettingMailBrandLogoWriteFailed=>'The email logo could not be saved completely.',
    FileInputChoose=>'Choose file', FileInputEmpty=>'No file selected',
}
