Maintenance: Improved translatable source strings in Settings.

This commit is contained in:
Martin Gruner 2022-01-21 16:00:17 +01:00 committed by Rolf Schmidt
parent ff246de1d7
commit fd816b3c71
3 changed files with 745 additions and 342 deletions

View file

@ -0,0 +1,346 @@
# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
class SettingUpdates < ActiveRecord::Migration[6.0]
def change # rubocop:disable Metrics/AbcSize
return if !Setting.exists?(name: 'system_init_done')
settings_update = [
{
title: __('2 lower case and 2 upper case characters'),
name: 'password_min_2_lower_2_upper_characters',
description: __('Password needs to contain 2 lower case and 2 upper case characters.'),
},
{
title: __('User email for multiple users'),
name: 'user_email_multiple_use',
description: __('Allow using one email address for multiple users.'),
},
{
title: __('sipgate.io alternative FQDN'),
name: 'sipgate_alternative_fqdn',
description: __('Alternative FQDN for callbacks if you operate Zammad in an internal network.'),
},
{
title: __('Auto Assignment'),
name: 'ticket_auto_assignment',
},
{
title: __('BCC address for all outgoing emails'),
name: 'system_bcc',
description: __('To archive all outgoing emails from Zammad to external, you can store a BCC email address here.'),
},
{
title: __('Additional follow-up detection'),
name: 'postmaster_follow_up_search_in',
description: __('By default, the follow-up check is done via the subject of an email. This setting lets you add more fields for which the follow-up check will be executed.'),
},
{
title: __('Note - default visibility'),
name: 'ui_ticket_zoom_article_note_new_internal',
description: __('Defines the default visibility for new notes.'),
},
{
title: __('Defines postmaster filter.'),
name: '0014_postmaster_filter_own_notification_loop_detection',
description: __('Defines postmaster filter to check if the email is a self-created notification email, then ignore it to prevent email loops.'),
},
{
title: __('HTTP type'),
name: 'http_type',
description: __('Defines the HTTP protocol of your instance.'),
},
{
title: __('Defines the timeframe during which a self-created note can be deleted.'),
name: 'ui_ticket_zoom_article_delete_timeframe',
},
{
title: __('Import Endpoint'),
name: 'import_freshdesk_endpoint',
description: __('Defines a Freshdesk endpoint to import users, tickets, states, and articles.'),
},
{
title: __('Import Endpoint'),
name: 'import_kayako_endpoint',
description: __('Defines a Kayako endpoint to import users, tickets, states, and articles.'),
},
{
title: __('Import Endpoint'),
name: 'import_otrs_endpoint',
description: __('Defines an OTRS endpoint to import users, tickets, states, and articles.'),
},
{
title: __('Import Endpoint'),
name: 'import_zendesk_endpoint',
description: __('Defines a Zendesk endpoint to import users, tickets, states, and articles.'),
},
{
title: __('Stats Backend'),
name: 'Stats::TicketWaitingTime',
description: __('Defines a dashboard stats backend that gets scheduled automatically.'),
},
{
title: __('Stats Backend'),
name: 'Stats::TicketEscalation',
description: __('Defines a dashboard stats backend that gets scheduled automatically.'),
},
{
title: __('Stats Backend'),
name: 'Stats::TicketChannelDistribution',
description: __('Defines a dashboard stats backend that gets scheduled automatically.'),
},
{
title: __('Stats Backend'),
name: 'Stats::TicketLoadMeasure',
description: __('Defines a dashboard stats backend that gets scheduled automatically.'),
},
{
title: __('Stats Backend'),
name: 'Stats::TicketInProcess',
description: __('Defines a dashboard stats backend that gets scheduled automatically.'),
},
{
title: __('Stats Backend'),
name: 'Stats::TicketReopen',
description: __('Defines a dashboard stats backend that gets scheduled automatically.'),
},
{
title: __('Import Password for HTTP basic authentication'),
name: 'import_otrs_password',
description: __('Defines HTTP basic authentication password (only if OTRS is protected via HTTP basic auth).'),
},
{
title: __('Developer System'),
name: 'developer_mode',
description: __('Defines if the application is in developer mode (all users have the same password and password reset will work without email delivery).'),
},
{
title: __('Group selection for ticket creation'),
name: 'form_ticket_create_group_id',
description: __('Defines the group of tickets created via web form.'),
},
{
title: __('Limit tickets by IP per day'),
name: 'form_ticket_create_by_ip_per_day',
description: __('Defines a limit for how many tickets can be created via web form from one IP address per day.'),
},
{
title: __('Limit tickets by IP per hour'),
name: 'form_ticket_create_by_ip_per_hour',
description: __('Defines a limit for how many tickets can be created via web form from one IP address per hour.'),
},
{
title: __('Limit tickets per day'),
name: 'form_ticket_create_per_day',
description: __('Defines a limit for how many tickets can be created via web form per day.'),
},
{
title: __('Defines postmaster filter.'),
name: '5400_postmaster_filter_jira_check',
description: __('Defines postmaster filter to identify Jira mails for correct follow-ups.'),
},
{
title: __('Defines postmaster filter.'),
name: '5401_postmaster_filter_jira_check',
description: __('Defines postmaster filter to identify Jira mails for correct follow-ups.'),
},
{
title: __('Defines postmaster filter.'),
name: '0950_postmaster_filter_bounce_delivery_permanent_failed',
description: __('Defines postmaster filter to identify postmaster bounces; and disables sending notification if delivery fails permanently.'),
},
{
title: __('Defines postmaster filter.'),
name: '0955_postmaster_filter_bounce_delivery_temporary_failed',
description: __('Defines postmaster filter to identify postmaster bounces; and reopens tickets if delivery fails permanently.'),
},
{
title: __('Defines postmaster filter.'),
name: '0900_postmaster_filter_bounce_follow_up_check',
description: __('Defines postmaster filter to identify postmaster bounces; and handles them as follow-up of the original tickets'),
},
{
title: __('Defines postmaster filter.'),
name: '5400_postmaster_filter_service_now_check',
description: __('Defines postmaster filter to identify ServiceNow mails for correct follow-ups.'),
},
{
title: __('Defines postmaster filter.'),
name: '5401_postmaster_filter_service_now_check',
description: __('Defines postmaster filter to identify ServiceNow mails for correct follow-ups.'),
},
{
title: __('Defines postmaster filter.'),
name: '0005_postmaster_filter_trusted',
description: __('Defines postmaster filter to remove X-Zammad headers from untrustworthy sources.'),
},
{
title: __('HTML Email CSS Font'),
name: 'html_email_css_font',
description: __('Defines the CSS font information for HTML emails.'),
},
{
title: __('Geo IP Service'),
name: 'geo_ip_backend',
description: __('Defines the backend for geo IP lookups. Also shows location of an IP address if it is traceable.'),
},
{
title: __('CTI config'),
name: 'cti_config',
description: __('Defines the CTI config.'),
},
{
title: __('Set agent limit'),
name: 'system_agent_limit',
description: __('Defines the agent limit.'),
},
{
title: __('Product Name'),
name: 'product_name',
description: __('Defines the name of the application, shown in the web interface, tabs, and title bar of the web browser.'),
},
{
title: __('Define postmaster filter.'),
name: '5500_postmaster_internal_article_check',
description: __('Defines postmaster filter which sets the articles visibility to internal if it is a rely to an internal article or the last outgoing email is internal.'),
},
{
title: __('CTI customer last activity'),
name: 'cti_customer_last_activity',
description: __('Defines the duration of customer activity (in seconds) on a call until the user profile dialog is shown.'),
},
{
title: __('Slack config'),
name: 'slack_config',
description: __('Defines the Slack config.'),
},
{
title: __('Auto-close state'),
name: 'icinga_auto_close_state_id',
description: __('Defines the state of auto-closed tickets.'),
},
{
title: __('Auto-close state'),
name: 'nagios_auto_close_state_id',
description: __('Defines the state of auto-closed tickets.'),
},
{
title: __('Auto-close state'),
name: 'check_mk_auto_close_state_id',
description: __('Defines the state of auto-closed tickets.'),
},
{
title: __('Auto-close state'),
name: 'check_mk_auto_close_state_id',
description: __('Defines the state of auto-closed tickets.'),
},
{
title: __('Locale'),
name: 'locale_default',
description: __('Defines the default system language.'),
},
{
title: __('Timezone'),
name: 'timezone_default',
description: __('Defines the default system timezone.'),
},
{
title: __('Defines transaction backend.'),
name: '9100_cti_caller_id_detection',
description: __('Defines the transaction backend which detects caller IDs in objects and stores them for CTI lookups.'),
},
{
title: __('User Organization Selector - email'),
name: 'ui_user_organization_selector_with_email',
description: __('Defines if the email should be displayed in the result of the user/organization widget.'),
},
{
title: __('GitHub App Credentials'),
name: 'auth_github_credentials',
description: __('Enables user authentication via GitHub.'),
},
{
title: __('Customer selection based on sender and receiver list'),
name: 'postmaster_sender_is_agent_search_for_customer',
description: __('If the sender is an agent, set the first user in the recipient list as the customer.'),
},
{
title: __('Import API key for requesting the Freshdesk API'),
name: 'import_freshdesk_endpoint_key',
description: __('Defines Freshdesk endpoint authentication API key.'),
},
{
title: __('Import API key for requesting the Zendesk API'),
name: 'import_zendesk_endpoint_key',
description: __('Defines Zendesk endpoint authentication API key.'),
},
{
title: __('Knowledge Base active'),
name: 'kb_active',
description: __('Defines if Knowledge Base navbar button is enabled.'),
},
{
title: __('Knowledge Base active publicly'),
name: 'kb_active_publicly',
description: __('Defines if Knowledge Base navbar button is enabled for users without Knowledge Base permission.'),
},
{
title: __('Knowledge Base multilingual support'),
name: 'kb_multi_lingual_support',
description: __('Support of multilingual Knowledge Base.'),
},
{
title: __('Maximum Email Size'),
name: 'postmaster_max_size',
description: __('Defines the maximum accepted email size in MB.'),
},
{
title: __('Maximum failed logins'),
name: 'password_max_login_failed',
description: __('Defines after how many failed logins accounts will be deactivated.'),
},
{
title: __('Sender based on Reply-To header'),
name: 'postmaster_sender_based_on_reply_to',
description: __('Set/overwrite sender/from of email based on "Reply-To" header. Useful to set correct customer if email is received from a third-party system on behalf of a customer.'),
},
{
title: __('Ticket Last Contact Behaviour'),
name: 'ticket_last_contact_behaviour',
description: __('Sets the last customer contact based on either the last contact of the customer in general or on the last contact of the customer that has not received a response.'),
},
{
title: __('CTI Token'),
name: 'cti_token',
description: __('Token for CTI.'),
},
{
title: __('CTI integration'),
name: 'cti_integration',
description: __('Defines if generic CTI integration is enabled or not.'),
},
{
title: __('Placetel Token'),
name: 'placetel_token',
description: __('Defines the token for Placetel.'),
},
]
settings_update.each do |setting|
fetched_setting = Setting.find_by(name: setting[:name])
next if !fetched_setting
if setting[:title]
# "Updating title of #{setting[:name]} to #{setting[:title]}"
fetched_setting.title = setting[:title]
end
if setting[:description]
# "Updating description of #{setting[:name]} to #{setting[:description]}"
fetched_setting.description = setting[:description]
end
fetched_setting.save!
end
end
end

View file

@ -63,7 +63,7 @@ Setting.create_if_not_exists(
area: 'Core::WebApp',
description: __('Message for login page.'),
options: {},
state: __('Something about to share. Click here to change.'),
state: __('This is a default maintenance message. Click here to change.'),
preferences: {
permission: ['admin.maintenance'],
},
@ -73,7 +73,7 @@ Setting.create_if_not_exists(
title: __('Developer System'),
name: 'developer_mode',
area: 'Core::Develop',
description: __('Defines if application is in developer mode (useful for developer, all users have the same password, password reset will work without email delivery).'),
description: __('Defines if the application is in developer mode (all users have the same password and password reset will work without email delivery).'),
options: {},
state: Rails.env.development?,
preferences: { online_service_disable: true },
@ -93,7 +93,7 @@ Setting.create_if_not_exists(
title: __('Product Name'),
name: 'product_name',
area: 'System::Branding',
description: __('Defines the name of the application, shown in the web interface, tabs and title bar of the web browser.'),
description: __('Defines the name of the application, shown in the web interface, tabs, and title bar of the web browser.'),
options: {
form: [
{
@ -163,7 +163,7 @@ Setting.create_if_not_exists(
title: __('Locale'),
name: 'locale_default',
area: 'System::Branding',
description: __('Defines the system default language.'),
description: __('Defines the default system language.'),
options: {
form: [
{
@ -183,7 +183,7 @@ Setting.create_if_not_exists(
title: __('Timezone'),
name: 'timezone_default',
area: 'System::Branding',
description: __('Defines the system default timezone.'),
description: __('Defines the default system timezone.'),
options: {
form: [
{
@ -311,7 +311,7 @@ Setting.create_if_not_exists(
title: __('HTTP type'),
name: 'http_type',
area: 'System::Base',
description: __('Define the http protocol of your instance.'),
description: __('Defines the HTTP protocol of your instance.'),
options: {
form: [
{
@ -395,7 +395,7 @@ Setting.create_if_not_exists(
title: __('Geo IP Service'),
name: 'geo_ip_backend',
area: 'System::Services',
description: __('Defines the backend for geo IP lookups. Shows also location of an IP address if an IP address is shown.'),
description: __('Defines the backend for geo IP lookups. Also shows location of an IP address if it is traceable.'),
options: {
form: [
{
@ -652,7 +652,7 @@ Setting.create_if_not_exists(
title: __('User Organization Selector - email'),
name: 'ui_user_organization_selector_with_email',
area: 'UI::UserOrganizatiomSelector',
description: __('Display of the e-mail in the result of the user/organization widget.'),
description: __('Defines if the email should be displayed in the result of the user/organization widget.'),
options: {
form: [
{
@ -679,7 +679,7 @@ Setting.create_if_not_exists(
title: __('Note - default visibility'),
name: 'ui_ticket_zoom_article_note_new_internal',
area: 'UI::TicketZoom',
description: __('Default visibility for new note.'),
description: __('Defines the default visibility for new notes.'),
options: {
form: [
{
@ -1153,10 +1153,10 @@ Setting.create_if_not_exists(
frontend: true
)
Setting.create_if_not_exists(
title: __('User email for muliple users'),
title: __('User email for multiple users'),
name: 'user_email_multiple_use',
area: 'Model::User',
description: __('Allow to use email address for muliple users.'),
description: __('Allow using one email address for multiple users.'),
options: {
form: [
{
@ -1289,7 +1289,7 @@ Setting.create_if_not_exists(
controller: 'SettingsAreaSwitch',
sub: ['auth_twitter_credentials'],
title_i18n: ['Twitter'],
description_i18n: ['Twitter', __('Twitter Developer Site'), 'https://dev.twitter.com/apps'],
description_i18n: ['Twitter', 'Twitter Developer Site', 'https://dev.twitter.com/apps'], # rubocop:disable Zammad/DetectTranslatableString
permission: ['admin.security'],
},
state: false,
@ -1352,7 +1352,7 @@ Setting.create_if_not_exists(
controller: 'SettingsAreaSwitch',
sub: ['auth_facebook_credentials'],
title_i18n: ['Facebook'],
description_i18n: ['Facebook', __('Facebook Developer Site'), 'https://developers.facebook.com/apps/'],
description_i18n: ['Facebook', 'Facebook Developer Site', 'https://developers.facebook.com/apps/'], # rubocop:disable Zammad/DetectTranslatableString
permission: ['admin.security'],
},
state: false,
@ -1417,7 +1417,7 @@ Setting.create_if_not_exists(
controller: 'SettingsAreaSwitch',
sub: ['auth_google_oauth2_credentials'],
title_i18n: ['Google'],
description_i18n: ['Google', __('Google API Console Site'), 'https://console.cloud.google.com/apis/credentials'],
description_i18n: ['Google', 'Google API Console Site', 'https://console.cloud.google.com/apis/credentials'], # rubocop:disable Zammad/DetectTranslatableString
permission: ['admin.security'],
},
state: false,
@ -1481,7 +1481,7 @@ Setting.create_if_not_exists(
controller: 'SettingsAreaSwitch',
sub: ['auth_linkedin_credentials'],
title_i18n: ['LinkedIn'],
description_i18n: ['LinkedIn', __('Linkedin Developer Site'), 'https://www.linkedin.com/developer/apps'],
description_i18n: ['LinkedIn', 'LinkedIn Developer Site', 'https://www.linkedin.com/developer/apps'], # rubocop:disable Zammad/DetectTranslatableString
permission: ['admin.security'],
},
state: false,
@ -1545,17 +1545,17 @@ Setting.create_if_not_exists(
controller: 'SettingsAreaSwitch',
sub: ['auth_github_credentials'],
title_i18n: ['Github'],
description_i18n: ['Github', __('Github OAuth Applications'), 'https://github.com/settings/applications'],
description_i18n: ['Github', 'GitHub OAuth Applications', 'https://github.com/settings/applications'], # rubocop:disable Zammad/DetectTranslatableString
permission: ['admin.security'],
},
state: false,
frontend: true
)
Setting.create_if_not_exists(
title: __('Github App Credentials'),
title: __('GitHub App Credentials'),
name: 'auth_github_credentials',
area: 'Security::ThirdPartyAuthentication::Github',
description: __('Enables user authentication via Github.'),
description: __('Enables user authentication via GitHub.'),
options: {
form: [
{
@ -1609,7 +1609,7 @@ Setting.create_if_not_exists(
controller: 'SettingsAreaSwitch',
sub: ['auth_gitlab_credentials'],
title_i18n: ['GitLab'],
description_i18n: ['GitLab', __('GitLab Applications'), 'https://your-gitlab-host/admin/applications'],
description_i18n: ['GitLab', 'GitLab Applications', 'https://your-gitlab-host/admin/applications'], # rubocop:disable Zammad/DetectTranslatableString
permission: ['admin.security'],
},
state: false,
@ -1679,8 +1679,8 @@ Setting.create_if_not_exists(
preferences: {
controller: 'SettingsAreaSwitch',
sub: ['auth_microsoft_office365_credentials'],
title_i18n: [__('Office 365')],
description_i18n: [__('Office 365'), __('Microsoft Application Registration Portal'), 'https://portal.azure.com'],
title_i18n: ['Office 365'], # rubocop:disable Zammad/DetectTranslatableString
description_i18n: ['Office 365', 'Microsoft Application Registration Portal', 'https://portal.azure.com'], # rubocop:disable Zammad/DetectTranslatableString
permission: ['admin.security'],
},
state: false,
@ -1750,7 +1750,7 @@ Setting.create_if_not_exists(
controller: 'SettingsAreaSwitch',
sub: ['auth_weibo_credentials'],
title_i18n: ['Weibo'],
description_i18n: [__('Sina Weibo'), __('Sina Weibo Open Protal'), 'http://open.weibo.com'],
description_i18n: ['Sina Weibo', 'Sina Weibo Open Portal', 'http://open.weibo.com'], # rubocop:disable Zammad/DetectTranslatableString
permission: ['admin.security'],
},
state: false,
@ -1911,10 +1911,10 @@ Setting.create_if_not_exists(
frontend: false
)
Setting.create_if_not_exists(
title: __('2 lower and 2 upper characters'),
title: __('2 lower case and 2 upper case characters'),
name: 'password_min_2_lower_2_upper_characters',
area: 'Security::Password',
description: __('Password needs to contain 2 lower and 2 upper characters.'),
description: __('Password needs to contain 2 lower case and 2 upper case characters.'),
options: {
form: [
{
@ -1989,7 +1989,7 @@ Setting.create_if_not_exists(
title: __('Maximum failed logins'),
name: 'password_max_login_failed',
area: 'Security::Password',
description: __('Number of failed logins after account will be deactivated.'),
description: __('Defines after how many failed logins accounts will be deactivated.'),
options: {
form: [
{
@ -2106,7 +2106,7 @@ Setting.create_if_not_exists(
title: __('Ticket Last Contact Behaviour'),
name: 'ticket_last_contact_behaviour',
area: 'Ticket::Base',
description: __('Sets the last customer contact based on the last contact of a customer or on the last contact of a customer to whom an agent has not yet responded.'),
description: __('Sets the last customer contact based on either the last contact of the customer in general or on the last contact of the customer that has not received a response.'),
options: {
form: [
{
@ -2245,7 +2245,7 @@ Setting.create_if_not_exists(
)
Setting.create_if_not_exists(
title: __('Auto Assigment'),
title: __('Auto Assignment'),
name: 'ticket_auto_assignment',
area: 'Web::Base',
description: __('Enable ticket auto assignment.'),
@ -2519,10 +2519,10 @@ if group
group_id = group.id
end
Setting.create_if_not_exists(
title: __('Group selection for Ticket creation'),
title: __('Group selection for ticket creation'),
name: 'form_ticket_create_group_id',
area: 'Form::Base',
description: __('Defines if group of created tickets via web form.'),
description: __('Defines the group of tickets created via web form.'),
options: {
form: [
{
@ -2542,10 +2542,10 @@ Setting.create_if_not_exists(
)
Setting.create_if_not_exists(
title: __('Limit tickets by ip per hour'),
title: __('Limit tickets by IP per hour'),
name: 'form_ticket_create_by_ip_per_hour',
area: 'Form::Base',
description: __('Defines limit of tickets by ip per hour via web form.'),
description: __('Defines a limit for how many tickets can be created via web form from one IP address per hour.'),
options: {
form: [
{
@ -2563,10 +2563,10 @@ Setting.create_if_not_exists(
frontend: false,
)
Setting.create_if_not_exists(
title: __('Limit tickets by ip per day'),
title: __('Limit tickets by IP per day'),
name: 'form_ticket_create_by_ip_per_day',
area: 'Form::Base',
description: __('Defines limit of tickets by ip per day via web form.'),
description: __('Defines a limit for how many tickets can be created via web form from one IP address per day.'),
options: {
form: [
{
@ -2587,7 +2587,7 @@ Setting.create_if_not_exists(
title: __('Limit tickets per day'),
name: 'form_ticket_create_per_day',
area: 'Form::Base',
description: __('Defines limit of tickets per day via web form.'),
description: __('Defines a limit for how many tickets can be created via web form per day.'),
options: {
form: [
{
@ -2723,7 +2723,7 @@ Setting.create_if_not_exists(
title: __('Maximum Email Size'),
name: 'postmaster_max_size',
area: 'Email::Base',
description: __('Maximum size in MB of emails.'),
description: __('Defines the maximum accepted email size in MB.'),
options: {
form: [
{
@ -2773,7 +2773,7 @@ Setting.create_if_not_exists(
title: __('Additional follow-up detection'),
name: 'postmaster_follow_up_search_in',
area: 'Email::Base',
description: __('By default the follow-up check is done via the subject of an email. With this setting you can add more fields for which the follow-up check will be executed.'),
description: __('By default, the follow-up check is done via the subject of an email. This setting lets you add more fields for which the follow-up check will be executed.'),
options: {
form: [
{
@ -2800,7 +2800,7 @@ Setting.create_if_not_exists(
title: __('Sender based on Reply-To header'),
name: 'postmaster_sender_based_on_reply_to',
area: 'Email::Base',
description: __('Set/overwrite sender/from of email based on reply-to header. Useful to set correct customer if email is received from a third party system on behalf of a customer.'),
description: __('Set/overwrite sender/from of email based on "Reply-To" header. Useful to set correct customer if email is received from a third-party system on behalf of a customer.'),
options: {
form: [
{
@ -2827,7 +2827,7 @@ Setting.create_if_not_exists(
title: __('Customer selection based on sender and receiver list'),
name: 'postmaster_sender_is_agent_search_for_customer',
area: 'Email::Base',
description: __('If the sender is an agent, set the first user in the recipient list as a customer.'),
description: __('If the sender is an agent, set the first user in the recipient list as the customer.'),
options: {
form: [
{
@ -2923,10 +2923,10 @@ Setting.create_if_not_exists(
)
Setting.create_if_not_exists(
title: __('Bcc address for all outgoing emails'),
title: __('BCC address for all outgoing emails'),
name: 'system_bcc',
area: 'Email::Enhanced',
description: __('To archive all outgoing emails from Zammad to external, you can store a bcc email address here.'),
description: __('To archive all outgoing emails from Zammad to external, you can store a BCC email address here.'),
options: {},
state: '',
preferences: { online_service_disable: true },
@ -3209,7 +3209,7 @@ Setting.create_if_not_exists(
title: __('Import Endpoint'),
name: 'import_otrs_endpoint',
area: 'Import::OTRS',
description: __('Defines OTRS endpoint to import users, tickets, states and articles.'),
description: __('Defines an OTRS endpoint to import users, tickets, states, and articles.'),
options: {
form: [
{
@ -3262,10 +3262,10 @@ Setting.create_if_not_exists(
)
Setting.create_if_not_exists(
title: __('Import Password for http basic authentication'),
title: __('Import Password for HTTP basic authentication'),
name: 'import_otrs_password',
area: 'Import::OTRS',
description: __('Defines http basic authentication password (only if OTRS is protected via http basic auth).'),
description: __('Defines HTTP basic authentication password (only if OTRS is protected via HTTP basic auth).'),
options: {
form: [
{
@ -3284,7 +3284,7 @@ Setting.create_if_not_exists(
title: __('Import Endpoint'),
name: 'import_zendesk_endpoint',
area: 'Import::Zendesk',
description: __('Defines Zendesk endpoint to import users, ticket, states and articles.'),
description: __('Defines a Zendesk endpoint to import users, tickets, states, and articles.'),
options: {
form: [
{
@ -3299,10 +3299,10 @@ Setting.create_if_not_exists(
frontend: false
)
Setting.create_if_not_exists(
title: __('Import Key for requesting the Zendesk API'),
title: __('Import API key for requesting the Zendesk API'),
name: 'import_zendesk_endpoint_key',
area: 'Import::Zendesk',
description: __('Defines Zendesk endpoint authentication key.'),
description: __('Defines Zendesk endpoint authentication API key.'),
options: {
form: [
{
@ -3340,7 +3340,7 @@ Setting.create_if_not_exists(
title: __('Import Endpoint'),
name: 'import_freshdesk_endpoint',
area: 'Import::Freshdesk',
description: __('Defines Freshdesk endpoint to import users, ticket, states and articles.'),
description: __('Defines a Freshdesk endpoint to import users, tickets, states, and articles.'),
options: {
form: [
{
@ -3355,10 +3355,10 @@ Setting.create_if_not_exists(
frontend: false
)
Setting.create_if_not_exists(
title: __('Import Key for requesting the Freshdesk API'),
title: __('Import API key for requesting the Freshdesk API'),
name: 'import_freshdesk_endpoint_key',
area: 'Import::Freshdesk',
description: __('Defines Freshdesk endpoint authentication key.'),
description: __('Defines Freshdesk endpoint authentication API key.'),
options: {
form: [
{
@ -3377,7 +3377,7 @@ Setting.create_if_not_exists(
title: __('Import Endpoint'),
name: 'import_kayako_endpoint',
area: 'Import::Kayako',
description: __('Defines Kayako endpoint to import users, ticket, states and articles.'),
description: __('Defines a Kayako endpoint to import users, tickets, states, and articles.'),
options: {
form: [
{
@ -3432,7 +3432,7 @@ Setting.create_if_not_exists(
title: __('Import Backends'),
name: 'import_backends',
area: 'Import',
description: __('A list of active import backends that get scheduled automatically.'),
description: __('A list of active import backends that gets scheduled automatically.'),
options: {},
state: ['Import::Ldap', 'Import::Exchange'],
preferences: {
@ -3588,7 +3588,7 @@ Setting.create_if_not_exists(
title: __('Defines postmaster filter.'),
name: '0005_postmaster_filter_trusted',
area: 'Postmaster::PreFilter',
description: __('Defines postmaster filter to remove X-Zammad headers from not trusted sources.'),
description: __('Defines postmaster filter to remove X-Zammad headers from untrustworthy sources.'),
options: {},
state: 'Channel::Filter::Trusted',
frontend: false
@ -3660,7 +3660,7 @@ Setting.create_if_not_exists(
title: __('Defines postmaster filter.'),
name: '0014_postmaster_filter_own_notification_loop_detection',
area: 'Postmaster::PreFilter',
description: __('Define postmaster filter to check if email is a own created notification email, then ignore it to prevent email loops.'),
description: __('Defines postmaster filter to check if the email is a self-created notification email, then ignore it to prevent email loops.'),
options: {},
state: 'Channel::Filter::OwnNotificationLoopDetection',
frontend: false
@ -3705,7 +3705,7 @@ Setting.create_if_not_exists(
title: __('Defines postmaster filter.'),
name: '0900_postmaster_filter_bounce_follow_up_check',
area: 'Postmaster::PreFilter',
description: __('Defines postmaster filter to identify postmaster bounced - to handle it as follow-up of the original ticket.'),
description: __('Defines postmaster filter to identify postmaster bounces; and handles them as follow-up of the original tickets'),
options: {},
state: 'Channel::Filter::BounceFollowUpCheck',
frontend: false
@ -3714,7 +3714,7 @@ Setting.create_if_not_exists(
title: __('Defines postmaster filter.'),
name: '0950_postmaster_filter_bounce_delivery_permanent_failed',
area: 'Postmaster::PreFilter',
description: __('Defines postmaster filter to identify postmaster bounced - disable sending notification on permanent deleivery failed.'),
description: __('Defines postmaster filter to identify postmaster bounces; and disables sending notification if delivery fails permanently.'),
options: {},
state: 'Channel::Filter::BounceDeliveryPermanentFailed',
frontend: false
@ -3723,7 +3723,7 @@ Setting.create_if_not_exists(
title: __('Defines postmaster filter.'),
name: '0955_postmaster_filter_bounce_delivery_temporary_failed',
area: 'Postmaster::PreFilter',
description: __('Defines postmaster filter to identify postmaster bounced - reopen ticket on permanent temporary failed.'),
description: __('Defines postmaster filter to identify postmaster bounces; and reopens tickets if delivery fails permanently.'),
options: {},
state: 'Channel::Filter::BounceDeliveryTemporaryFailed',
frontend: false
@ -3768,7 +3768,7 @@ Setting.create_if_not_exists(
title: __('Defines postmaster filter.'),
name: '5400_postmaster_filter_service_now_check',
area: 'Postmaster::PreFilter',
description: __('Defines postmaster filter to identify service now mails for correct follow-ups.'),
description: __('Defines postmaster filter to identify ServiceNow mails for correct follow-ups.'),
options: {},
state: 'Channel::Filter::ServiceNowCheck',
frontend: false
@ -3777,7 +3777,7 @@ Setting.create_if_not_exists(
title: __('Defines postmaster filter.'),
name: '5401_postmaster_filter_service_now_check',
area: 'Postmaster::PostFilter',
description: __('Defines postmaster filter to identify service now mails for correct follow-ups.'),
description: __('Defines postmaster filter to identify ServiceNow mails for correct follow-ups.'),
options: {},
state: 'Channel::Filter::ServiceNowCheck',
frontend: false
@ -3786,7 +3786,7 @@ Setting.create_if_not_exists(
title: __('Defines postmaster filter.'),
name: '5400_postmaster_filter_jira_check',
area: 'Postmaster::PreFilter',
description: __('Defines postmaster filter to identify jira mails for correct follow-ups.'),
description: __('Defines postmaster filter to identify Jira mails for correct follow-ups.'),
options: {},
state: 'Channel::Filter::JiraCheck',
frontend: false
@ -3795,7 +3795,7 @@ Setting.create_if_not_exists(
title: __('Defines postmaster filter.'),
name: '5401_postmaster_filter_jira_check',
area: 'Postmaster::PostFilter',
description: __('Defines postmaster filter to identify jira mails for correct follow-ups.'),
description: __('Defines postmaster filter to identify Jira mails for correct follow-ups.'),
options: {},
state: 'Channel::Filter::JiraCheck',
frontend: false
@ -3804,7 +3804,7 @@ Setting.create_if_not_exists(
title: __('Define postmaster filter.'),
name: '5500_postmaster_internal_article_check',
area: 'Postmaster::PreFilter',
description: __('Defines the postmaster filter which set the article internal if a forwarded, replied or sent email also exists with the article internal received.'),
description: __('Defines postmaster filter which sets the articles visibility to internal if it is a rely to an internal article or the last outgoing email is internal.'),
options: {},
state: 'Channel::Filter::InternalArticleCheck',
frontend: false
@ -3885,10 +3885,10 @@ Setting.create_if_not_exists(
frontend: false
)
Setting.create_if_not_exists(
title: __('Auto close state'),
title: __('Auto-close state'),
name: 'icinga_auto_close_state_id',
area: 'Integration::Icinga',
description: __('Defines the state of auto closed tickets.'),
description: __('Defines the state of auto-closed tickets.'),
options: {
form: [
{
@ -3983,10 +3983,10 @@ Setting.create_if_not_exists(
frontend: false
)
Setting.create_if_not_exists(
title: __('Auto close state'),
title: __('Auto-close state'),
name: 'nagios_auto_close_state_id',
area: 'Integration::Nagios',
description: __('Defines the state of auto closed tickets.'),
description: __('Defines the state of auto-closed tickets.'),
options: {
form: [
{
@ -4081,10 +4081,10 @@ Setting.create_if_not_exists(
frontend: false
)
Setting.create_if_not_exists(
title: __('Auto close state'),
title: __('Auto-close state'),
name: 'check_mk_auto_close_state_id',
area: 'Integration::CheckMK',
description: __('Defines the state of auto closed tickets.'),
description: __('Defines the state of auto-closed tickets.'),
options: {
form: [
{
@ -4192,10 +4192,10 @@ Setting.create_if_not_exists(
frontend: false
)
Setting.create_if_not_exists(
title: __('Auto close state'),
title: __('Auto-close state'),
name: 'monit_auto_close_state_id',
area: 'Integration::Monit',
description: __('Defines the state of auto closed tickets.'),
description: __('Defines the state of auto-closed tickets.'),
options: {
form: [
{
@ -4486,7 +4486,7 @@ Setting.create_if_not_exists(
title: __('Slack config'),
name: 'slack_config',
area: 'Integration::Slack',
description: __('Defines the slack config.'),
description: __('Defines the Slack config.'),
options: {},
state: {
items: []
@ -4539,10 +4539,10 @@ Setting.create_if_not_exists(
frontend: false,
)
Setting.create_if_not_exists(
title: __('sipgate.io alternative fqdn'),
title: __('sipgate.io alternative FQDN'),
name: 'sipgate_alternative_fqdn',
area: 'Integration::Sipgate::Expert',
description: __('Alternative FQDN for callbacks if you operate Zammad in internal network.'),
description: __('Alternative FQDN for callbacks if you operate Zammad in an internal network.'),
options: {
form: [
{
@ -4560,10 +4560,10 @@ Setting.create_if_not_exists(
frontend: false
)
Setting.create_if_not_exists(
title: __('cti integration'),
title: __('CTI integration'),
name: 'cti_integration',
area: 'Integration::Switch',
description: __('Defines if generic CTI is enabled or not.'),
description: __('Defines if generic CTI integration is enabled or not.'),
options: {
form: [
{
@ -4588,10 +4588,10 @@ Setting.create_if_not_exists(
frontend: true
)
Setting.create_if_not_exists(
title: __('cti config'),
title: __('CTI config'),
name: 'cti_config',
area: 'Integration::Cti',
description: __('Defines the cti config.'),
description: __('Defines the CTI config.'),
options: {},
state: { 'outbound' => { 'routing_table' => [], 'default_caller_id' => '' }, 'inbound' => { 'block_caller_ids' => [] } },
preferences: {
@ -4604,7 +4604,7 @@ Setting.create_if_not_exists(
title: __('CTI Token'),
name: 'cti_token',
area: 'Integration::Cti',
description: __('Token for cti.'),
description: __('Token for CTI.'),
options: {
form: [
{
@ -4622,10 +4622,10 @@ Setting.create_if_not_exists(
frontend: false
)
Setting.create_if_not_exists(
title: __('cti customer last activity'),
title: __('CTI customer last activity'),
name: 'cti_customer_last_activity',
area: 'Integration::Cti',
description: __('Defines the range in seconds of customer activity to trigger the user profile dialog on call.'),
description: __('Defines the duration of customer activity (in seconds) on a call until the user profile dialog is shown.'),
options: {},
state: 30.days,
preferences: {
@ -4677,10 +4677,10 @@ Setting.create_if_not_exists(
frontend: false,
)
Setting.create_if_not_exists(
title: __('PLACETEL Token'),
title: __('Placetel Token'),
name: 'placetel_token',
area: 'Integration::Placetel',
description: __('Token for Placetel.'),
description: __('Defines the token for Placetel.'),
options: {
form: [
{
@ -4749,7 +4749,7 @@ Setting.create_if_not_exists(
title: __('Defines transaction backend.'),
name: '9100_cti_caller_id_detection',
area: 'Transaction::Backend::Async',
description: __('Defines the transaction backend which detects caller IDs in objects and store them for CTI lookups.'),
description: __('Defines the transaction backend which detects caller IDs in objects and stores them for CTI lookups.'),
options: {},
state: 'Transaction::CtiCallerIdDetection',
frontend: false
@ -4814,10 +4814,10 @@ Setting.create_if_not_exists(
frontend: false
)
Setting.create_if_not_exists(
title: __('Set limit of agents'),
title: __('Set agent limit'),
name: 'system_agent_limit',
area: 'Core::Online',
description: __('Defines the limit of the agents.'),
description: __('Defines the agent limit.'),
options: {},
state: false,
preferences: { online_service_disable: true },
@ -4828,7 +4828,7 @@ Setting.create_if_not_exists(
title: __('HTML Email CSS Font'),
name: 'html_email_css_font',
area: 'Core',
description: __('Defines the CSS font information for HTML Emails.'),
description: __('Defines the CSS font information for HTML emails.'),
options: {},
state: "font-family:'Helvetica Neue', Helvetica, Arial, Geneva, sans-serif; font-size: 12px;",
preferences: {
@ -4842,7 +4842,7 @@ Setting.create_if_not_exists(
title: __('Stats Backend'),
name: 'Stats::TicketWaitingTime',
area: 'Dashboard::Stats',
description: __('Defines a dashboard stats backend that get scheduled automatically.'),
description: __('Defines a dashboard stats backend that gets scheduled automatically.'),
options: {},
state: 'Stats::TicketWaitingTime',
preferences: {
@ -4857,7 +4857,7 @@ Setting.create_if_not_exists(
title: __('Stats Backend'),
name: 'Stats::TicketEscalation',
area: 'Dashboard::Stats',
description: __('Defines a dashboard stats backend that get scheduled automatically.'),
description: __('Defines a dashboard stats backend that gets scheduled automatically.'),
options: {},
state: 'Stats::TicketEscalation',
preferences: {
@ -4872,7 +4872,7 @@ Setting.create_if_not_exists(
title: __('Stats Backend'),
name: 'Stats::TicketChannelDistribution',
area: 'Dashboard::Stats',
description: __('Defines a dashboard stats backend that get scheduled automatically.'),
description: __('Defines a dashboard stats backend that gets scheduled automatically.'),
options: {},
state: 'Stats::TicketChannelDistribution',
preferences: {
@ -4887,7 +4887,7 @@ Setting.create_if_not_exists(
title: __('Stats Backend'),
name: 'Stats::TicketLoadMeasure',
area: 'Dashboard::Stats',
description: __('Defines a dashboard stats backend that get scheduled automatically.'),
description: __('Defines a dashboard stats backend that gets scheduled automatically.'),
options: {},
state: 'Stats::TicketLoadMeasure',
preferences: {
@ -4902,7 +4902,7 @@ Setting.create_if_not_exists(
title: __('Stats Backend'),
name: 'Stats::TicketInProcess',
area: 'Dashboard::Stats',
description: __('Defines a dashboard stats backend that get scheduled automatically.'),
description: __('Defines a dashboard stats backend that gets scheduled automatically.'),
options: {},
state: 'Stats::TicketInProcess',
preferences: {
@ -4917,7 +4917,7 @@ Setting.create_if_not_exists(
title: __('Stats Backend'),
name: 'Stats::TicketReopen',
area: 'Dashboard::Stats',
description: __('Defines a dashboard stats backend that get scheduled automatically.'),
description: __('Defines a dashboard stats backend that gets scheduled automatically.'),
options: {},
state: 'Stats::TicketReopen',
preferences: {
@ -4928,10 +4928,10 @@ Setting.create_if_not_exists(
)
Setting.create_if_not_exists(
title: __('Kb multi-lingual support'),
title: __('Knowledge Base multilingual support'),
name: 'kb_multi_lingual_support',
area: 'Kb::Core',
description: __('Support of multi-lingual Knowledge Base.'),
description: __('Support of multilingual Knowledge Base.'),
options: {},
state: true,
preferences: { online_service_disable: true },
@ -4939,10 +4939,10 @@ Setting.create_if_not_exists(
)
Setting.create_if_not_exists(
title: __('Kb active'),
title: __('Knowledge Base active'),
name: 'kb_active',
area: 'Kb::Core',
description: __('Defines if KB navbar button is enabled'),
description: __('Defines if Knowledge Base navbar button is enabled.'),
state: true,
preferences: {
prio: 1,
@ -4954,10 +4954,10 @@ Setting.create_if_not_exists(
)
Setting.create_if_not_exists(
title: __('Kb active publicly'),
title: __('Knowledge Base active publicly'),
name: 'kb_active_publicly',
area: 'Kb::Core',
description: __('Defines if KB navbar button is enabled for users without KB permission'),
description: __('Defines if Knowledge Base navbar button is enabled for users without Knowledge Base permission.'),
state: false,
preferences: {
prio: 1,
@ -4969,7 +4969,7 @@ Setting.create_if_not_exists(
)
Setting.create_if_not_exists(
title: __('Define timeframe where a own created note can get deleted.'),
title: __('Defines the timeframe during which a self-created note can be deleted.'),
name: 'ui_ticket_zoom_article_delete_timeframe',
area: 'UI::TicketZoomArticle',
description: __("Set timeframe in seconds. If it's set to 0 you can delete notes without time limits"),
@ -5046,7 +5046,7 @@ Setting.create_if_not_exists(
controller: 'SettingsAreaSwitch',
sub: {},
title_i18n: ['SSO'],
description_i18n: ['SSO', __('Button for Single Sign On.')],
description_i18n: ['SSO'],
permission: ['admin.security'],
},
state: false,

File diff suppressed because it is too large Load diff