Browse Source

Maintenance: Make several untranslatable strings / settings translatable.

Martin Gruner 2 years ago
parent
commit
a46b3d0a68

+ 1 - 1
app/assets/javascripts/app/controllers/_ui_element/ticket_perform_action.coffee

@@ -449,7 +449,7 @@ class App.UiElement.ticket_perform_action
         name: "#{name}::internal"
         multiple: false
         null: false
-        options: { true: 'internal', false: 'public' }
+        options: { true: __('internal'), false: __('public') }
         value: meta.internal || 'false'
         translate: true
       )

+ 2 - 1
app/assets/javascripts/app/lib/app_post/multi_locales_row.coffee

@@ -34,7 +34,8 @@ class App.MultiLocalesRow extends App.Controller
         name:        name
         value:       value
         null:        false
-        placeholder: __('Select locale…')
+        translate:   true
+        placeholder: App.i18n.translatePlain('Select locale…')
         options:     [] #formattedLocales
         class:       'form-control--small'
     )

+ 5 - 5
app/assets/javascripts/app/models/group.coffee

@@ -39,11 +39,11 @@ class App.Group extends App.Model
       cssClass: cssClass.join(' ')
 
   @accesses: ->
-    read: 'Read'
-    create: 'Create'
-    change: 'Change'
-    overview: 'Overview'
-    full: 'Full'
+    read: __('Read')
+    create: __('Create')
+    change: __('Change')
+    overview: __('Overview')
+    full: __('Full')
 
   signature_id_is_display_warning: (signature_id) ->
     !App.Signature.find(signature_id).active

+ 1 - 1
app/assets/javascripts/app/models/macro.coffee

@@ -6,7 +6,7 @@ class App.Macro extends App.Model
     { name: 'name',            display: __('Name'),              tag: 'input', type: 'text', limit: 100, null: false },
     { name: 'perform',         display: __('Actions'),           tag: 'ticket_perform_action',           null: true
     },
-    { name: 'ux_flow_next_up', display: __('Once completed…'), tag: 'select', default: 'none', options: {
+    { name: 'ux_flow_next_up', display: __('Once completed…'), tag: 'select', default: 'none', translate: true, options: {
         none: __('Stay on tab'), next_task: __('Close tab'), next_task_on_close: __('Close tab on ticket close'), next_from_overview: __('Advance to next ticket from overview')
       }
     },

+ 1 - 1
app/assets/javascripts/app/models/webhook.coffee

@@ -6,7 +6,7 @@ class App.Webhook extends App.Model
     { name: 'name',             display: __('Name'),                      tag: 'input',     type: 'text', limit: 100, null: false },
     { name: 'endpoint',         display: __('Endpoint'),                  tag: 'input',     type: 'text', limit: 300, null: false, placeholder: 'https://target.example.com/webhook' },
     { name: 'signature_token',  display: __('HMAC SHA1 Signature Token'), tag: 'input',     type: 'text', limit: 100, null: true },
-    { name: 'ssl_verify',       display: __('SSL Verify'),                tag: 'boolean',   null: true, options: { true: 'yes', false: 'no'  }, default: true },
+    { name: 'ssl_verify',       display: __('SSL Verify'),                tag: 'boolean',   null: true, translate: true, options: { true: 'yes', false: 'no'  }, default: true },
     { name: 'note',             display: __('Note'),                      tag: 'textarea', note: '', limit: 250, null: true },
     { name: 'active',           display: __('Active'),                    tag: 'active',    default: true },
     { name: 'updated_at',       display: __('Updated'),                   tag: 'datetime',  readonly: 1 },

+ 29 - 0
db/migrate/20220513083500_mark_settings_as_translatable.rb

@@ -0,0 +1,29 @@
+# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
+
+class MarkSettingsAsTranslatable < ActiveRecord::Migration[6.0]
+  def change
+    return if !Setting.exists?(name: 'system_init_done')
+
+    settings_update = %w[
+      postmaster_follow_up_search_in
+      postmaster_sender_based_on_reply_to
+      ticket_define_email_from
+      pretty_date_format
+      storage_provider
+      password_min_2_lower_2_upper_characters
+      password_need_digit
+      password_need_special_character
+    ]
+
+    settings_update.each do |name|
+      fetched_setting = Setting.find_by(name: name)
+      next if !fetched_setting
+
+      fetched_setting.options = fetched_setting.options.tap do |options|
+        options[:form].first[:translate] = true
+      end
+
+      fetched_setting.save!
+    end
+  end
+end

+ 55 - 47
db/seeds/settings.rb

@@ -207,15 +207,16 @@ Setting.create_or_update(
   options:     {
     form: [
       {
-        display: '',
-        null:    false,
-        name:    'pretty_date_format',
-        tag:     'select',
-        options: {
-          relative:  'relative - e. g. "2 hours ago" or "2 days and 15 minutes ago"',
-          absolute:  'absolute - e. g. "Monday 09:30" or "Tuesday 23. Feb 14:20"',
-          timestamp: 'timestamp - e. g. "2018-08-30 14:30"',
+        display:   '',
+        null:      false,
+        name:      'pretty_date_format',
+        tag:       'select',
+        options:   {
+          relative:  __('relative - e. g. "2 hours ago" or "2 days and 15 minutes ago"'),
+          absolute:  __('absolute - e. g. "Monday 09:30" or "Tuesday 23. Feb 14:20"'),
+          timestamp: __('timestamp - e. g. "2018-08-30 14:30"'),
         },
+        translate: true,
       },
     ],
   },
@@ -343,15 +344,16 @@ Setting.create_if_not_exists(
   options:     {
     form: [
       {
-        display:  '',
-        null:     true,
-        name:     'storage_provider',
-        tag:      'select',
-        tranlate: true,
-        options:  {
+        display:   '',
+        null:      true,
+        name:      'storage_provider',
+        tag:       'select',
+        tranlate:  true,
+        options:   {
           'DB'   => __('Database'),
           'File' => __('Filesystem'),
         },
+        translate: true,
       },
     ],
   },
@@ -1892,14 +1894,15 @@ Setting.create_if_not_exists(
   options:     {
     form: [
       {
-        display: '',
-        null:    true,
-        name:    'password_min_2_lower_2_upper_characters',
-        tag:     'select',
-        options: {
+        display:   '',
+        null:      true,
+        name:      'password_min_2_lower_2_upper_characters',
+        tag:       'select',
+        options:   {
           1 => 'yes',
           0 => 'no',
         },
+        translate: true,
       },
     ],
   },
@@ -1917,14 +1920,15 @@ Setting.create_if_not_exists(
   options:     {
     form: [
       {
-        display: __('Needed'),
-        null:    true,
-        name:    'password_need_digit',
-        tag:     'select',
-        options: {
+        display:   __('Needed'),
+        null:      true,
+        name:      'password_need_digit',
+        tag:       'select',
+        options:   {
           1 => 'yes',
           0 => 'no',
         },
+        translate: true,
       },
     ],
   },
@@ -1942,14 +1946,15 @@ Setting.create_if_not_exists(
   options:     {
     form: [
       {
-        display: __('Needed'),
-        null:    true,
-        name:    'password_need_special_character',
-        tag:     'select',
-        options: {
+        display:   __('Needed'),
+        null:      true,
+        name:      'password_need_special_character',
+        tag:       'select',
+        options:   {
           1 => 'yes',
           0 => 'no',
         },
+        translate: true,
       },
     ],
   },
@@ -2062,9 +2067,9 @@ Setting.create_if_not_exists(
         tag:       'select',
         translate: true,
         options:   {
-          'left'  => 'left',
-          'right' => 'right',
-          'none'  => 'none',
+          'left'  => __('left'),
+          'right' => __('right'),
+          'none'  => __('none'),
         },
       },
     ],
@@ -2652,15 +2657,16 @@ Setting.create_if_not_exists(
   options:     {
     form: [
       {
-        display: '',
-        null:    true,
-        name:    'ticket_define_email_from',
-        tag:     'select',
-        options: {
+        display:   '',
+        null:      true,
+        name:      'ticket_define_email_from',
+        tag:       'select',
+        options:   {
           SystemAddressName:          __('System Address Display Name'),
           AgentNameSystemAddressName: __('Agent Name + FromSeparator + System Address Display Name'),
           AgentName:                  __('Agent Name'),
         },
+        translate: true,
       },
     ],
   },
@@ -2751,15 +2757,16 @@ Setting.create_if_not_exists(
   options:     {
     form: [
       {
-        display: '',
-        null:    true,
-        name:    'postmaster_follow_up_search_in',
-        tag:     'checkbox',
-        options: {
+        display:   '',
+        null:      true,
+        name:      'postmaster_follow_up_search_in',
+        tag:       'checkbox',
+        options:   {
           'references' => __('References - Search for follow-up also in In-Reply-To or References headers.'),
           'body'       => __('Body - Search for follow-up also in mail body.'),
           'attachment' => __('Attachment - Search for follow-up also in attachments.'),
         },
+        translate: true,
       },
     ],
   },
@@ -2778,15 +2785,16 @@ Setting.create_if_not_exists(
   options:     {
     form: [
       {
-        display: '',
-        null:    true,
-        name:    'postmaster_sender_based_on_reply_to',
-        tag:     'select',
-        options: {
+        display:   '',
+        null:      true,
+        name:      'postmaster_sender_based_on_reply_to',
+        tag:       'select',
+        options:   {
           ''                                     => '-',
           'as_sender_of_email'                   => __('Take Reply-To header as sender/from of email.'),
           'as_sender_of_email_use_from_realname' => __('Take Reply-To header as sender/from of email and use the real name of origin from.'),
         },
+        translate: true,
       },
     ],
   },

+ 37 - 0
i18n/zammad.pot

@@ -1543,6 +1543,7 @@ msgstr ""
 msgid "Certificates & Private Keys"
 msgstr ""
 
+#: app/assets/javascripts/app/models/group.coffee
 #: app/assets/javascripts/app/views/generic/login_preview.jst.eco
 #: app/assets/javascripts/app/views/integration/exchange.jst.eco
 #: app/assets/javascripts/app/views/integration/ldap.jst.eco
@@ -2184,6 +2185,7 @@ msgstr ""
 #: app/assets/javascripts/app/controllers/_dashboard/first_steps_clues.coffee
 #: app/assets/javascripts/app/controllers/_profile/token_access.coffee
 #: app/assets/javascripts/app/controllers/knowledge_base/add_form.coffee
+#: app/assets/javascripts/app/models/group.coffee
 #: app/assets/javascripts/app/views/agent_ticket_create.jst.eco
 #: app/assets/javascripts/app/views/agent_user_create.jst.eco
 #: app/assets/javascripts/app/views/customer_ticket_create.jst.eco
@@ -4325,6 +4327,10 @@ msgstr ""
 msgid "Frontend"
 msgstr ""
 
+#: app/assets/javascripts/app/models/group.coffee
+msgid "Full"
+msgstr ""
+
 #: app/assets/javascripts/app/views/getting_started/email.jst.eco
 msgid "Full Name"
 msgstr ""
@@ -6942,6 +6948,7 @@ msgid "Outdated Browser"
 msgstr ""
 
 #: app/assets/javascripts/app/controllers/overview.coffee
+#: app/assets/javascripts/app/models/group.coffee
 msgid "Overview"
 msgstr ""
 
@@ -7455,6 +7462,10 @@ msgstr ""
 msgid "Raw"
 msgstr ""
 
+#: app/assets/javascripts/app/models/group.coffee
+msgid "Read"
+msgstr ""
+
 #: app/assets/javascripts/app/views/report/time_range_picker.jst.eco
 msgid "Real-time"
 msgstr ""
@@ -11133,6 +11144,10 @@ msgstr ""
 msgid "Zip"
 msgstr ""
 
+#: db/seeds/settings.rb
+msgid "absolute - e. g. \"Monday 09:30\" or \"Tuesday 23. Feb 14:20\""
+msgstr ""
+
 #: app/assets/javascripts/app/controllers/_ui_element/active.coffee
 msgid "active"
 msgstr ""
@@ -11529,6 +11544,7 @@ msgstr ""
 msgid "inactive"
 msgstr ""
 
+#: app/assets/javascripts/app/controllers/_ui_element/ticket_perform_action.coffee
 #: app/assets/javascripts/app/controllers/knowledge_base/content_can_be_published_form.coffee
 msgid "internal"
 msgstr ""
@@ -11575,6 +11591,10 @@ msgstr ""
 msgid "last week"
 msgstr ""
 
+#: db/seeds/settings.rb
+msgid "left"
+msgstr ""
+
 #: app/assets/javascripts/app/lib/app_post/pretty_date.coffee
 msgid "m"
 msgstr ""
@@ -11653,6 +11673,7 @@ msgstr ""
 #: app/assets/javascripts/app/views/microsoft365/list.jst.eco
 #: app/assets/javascripts/app/views/profile/token_access.jst.eco
 #: app/assets/javascripts/app/views/widget/ticket_stats_list.jst.eco
+#: db/seeds/settings.rb
 msgid "none"
 msgstr ""
 
@@ -11725,6 +11746,10 @@ msgstr ""
 msgid "phone"
 msgstr ""
 
+#: app/assets/javascripts/app/controllers/_ui_element/ticket_perform_action.coffee
+msgid "public"
+msgstr ""
+
 #: app/assets/javascripts/app/controllers/knowledge_base/content_can_be_published_form.coffee
 msgid "published"
 msgstr ""
@@ -11741,6 +11766,10 @@ msgstr ""
 msgid "regex mismatch"
 msgstr ""
 
+#: db/seeds/settings.rb
+msgid "relative - e. g. \"2 hours ago\" or \"2 days and 15 minutes ago\""
+msgstr ""
+
 #: app/assets/javascripts/app/controllers/_ui_element/core_workflow_perform.coffee
 #: app/assets/javascripts/app/views/profile/linked_accounts.jst.eco
 msgid "remove"
@@ -11763,6 +11792,10 @@ msgstr ""
 msgid "reply"
 msgstr ""
 
+#: db/seeds/settings.rb
+msgid "right"
+msgstr ""
+
 #: app/assets/javascripts/app/controllers/cti.coffee
 msgid "ringing"
 msgstr ""
@@ -11901,6 +11934,10 @@ msgstr ""
 msgid "till (relative)"
 msgstr ""
 
+#: db/seeds/settings.rb
+msgid "timestamp - e. g. \"2018-08-30 14:30\""
+msgstr ""
+
 #: app/views/knowledge_base/public/not_found.html.erb
 msgid "to go to the homepage."
 msgstr ""