Browse Source

Fixes issue #2169 - Time format always english if generated from system.

Mantas Masalskis 5 years ago
parent
commit
7fab92d074

+ 1 - 1
app/controllers/first_steps_controller.rb

@@ -177,7 +177,7 @@ class FirstStepsController < ApplicationController
     original_user_id = UserInfo.current_user_id
     result = NotificationFactory::Mailer.template(
       template: 'test_ticket',
-      locale:   agent.preferences[:locale] || Setting.get('locale_default') || 'en-us',
+      locale:   agent.locale,
       objects:  {
         agent:    agent,
         customer: customer,

+ 8 - 0
app/models/locale.rb

@@ -119,6 +119,14 @@ all:
     result.data
   end
 
+  #  Default system locale
+  #
+  #  @example
+  #    Locale.default
+  def self.default
+    Setting.get('locale_default') || 'en-us'
+  end
+
   private_class_method def self.to_database(data)
     ActiveRecord::Base.transaction do
       data.each do |locale|

+ 0 - 4
app/models/ticket.rb

@@ -1462,7 +1462,6 @@ result
     # get subject
     subject = NotificationFactory::Mailer.template(
       templateInline: value['subject'],
-      locale:         'en-en',
       objects:        objects,
       quote:          false,
     )
@@ -1470,7 +1469,6 @@ result
 
     body = NotificationFactory::Mailer.template(
       templateInline: value['body'],
-      locale:         'en-en',
       objects:        objects,
       quote:          true,
     )
@@ -1561,8 +1559,6 @@ result
     objects = build_notification_template_objects(article)
     body = NotificationFactory::Renderer.new(
       objects:  objects,
-      locale:   'en-en',
-      timezone: Setting.get('timezone_default'),
       template: value['body'],
       escape:   false
     ).render.html2text.tr(' ', ' ') # convert non-breaking space to simple space

+ 1 - 1
app/models/transaction/notification.rb

@@ -235,7 +235,7 @@ class Transaction::Notification
 
     return {} if !@item[:changes]
 
-    locale = user.preferences[:locale] || Setting.get('locale_default') || 'en-us'
+    locale = user.locale
 
     # only show allowed attributes
     attribute_list = ObjectManager::Attribute.by_object_as_hash('Ticket', user)

+ 2 - 2
app/models/transaction/slack.rb

@@ -86,8 +86,8 @@ class Transaction::Slack
 
     result = NotificationFactory::Slack.template(
       template: template,
-      locale:   user[:preferences][:locale] || Setting.get('locale_default'),
-      timezone: user[:preferences][:timezone] || Setting.get('timezone_default'),
+      locale:   user.locale,
+      timezone: Setting.get('timezone_default'),
       objects:  {
         ticket:       ticket,
         article:      article,

+ 4 - 3
app/models/translation.rb

@@ -237,14 +237,15 @@ or
       end
     end
 
-    record = Translation.where(locale: locale, source: 'timestamp', format: 'time').pluck(:target).first
-    return timestamp.to_s if !record
-
     begin
       timestamp = timestamp.in_time_zone(timezone)
     rescue
       return timestamp.to_s
     end
+
+    record = Translation.where(locale: locale, source: 'timestamp', format: 'time').pluck(:target).first
+    return timestamp.to_s if !record
+
     record.sub!('dd', format('%02d', timestamp.day))
     record.sub!('d', timestamp.day.to_s)
     record.sub!('mm', format('%02d', timestamp.month))

+ 2 - 2
app/models/user.rb

@@ -916,9 +916,9 @@ try to find correct name
     firstname.blank? && lastname.blank?
   end
 
-  # get locale of user or system if user's own is not set
+  # get locale identifier of user or system if user's own is not set
   def locale
-    preferences.fetch(:locale) { Setting.get('locale_default') }
+    preferences.fetch(:locale) { Locale.default }
   end
 
   private

+ 3 - 3
lib/calendar_subscriptions/tickets.rb

@@ -76,7 +76,7 @@ class CalendarSubscriptions::Tickets
       condition:    condition,
     )
 
-    user_locale       = @user.preferences['locale'] || Setting.get('locale_default') || 'en-us'
+    user_locale       = @user.locale
     translated_ticket = Translation.translate(user_locale, 'ticket')
 
     events_data = []
@@ -126,7 +126,7 @@ class CalendarSubscriptions::Tickets
       condition:    condition,
     )
 
-    user_locale       = @user.preferences['locale'] || Setting.get('locale_default') || 'en-us'
+    user_locale       = @user.locale
     translated_ticket = Translation.translate(user_locale, 'ticket')
     customer          = Translation.translate(user_locale, 'customer')
 
@@ -183,7 +183,7 @@ class CalendarSubscriptions::Tickets
       condition:    condition,
     )
 
-    user_locale                  = @user.preferences['locale'] || Setting.get('locale_default') || 'en-us'
+    user_locale                  = @user.locale
     translated_ticket_escalation = Translation.translate(user_locale, 'ticket escalation')
     customer                     = Translation.translate(user_locale, 'customer')
 

+ 1 - 1
lib/excel_sheet.rb

@@ -5,7 +5,7 @@ class ExcelSheet
     @header          = header
     @records         = records
     @timezone        = timezone.presence || Setting.get('timezone_default')
-    @locale          = locale || 'en-en'
+    @locale          = locale || Locale.default
     @tempfile        = Tempfile.new('excel-export.xls')
     @workbook        = WriteExcel.new(@tempfile)
     @worksheet       = @workbook.add_worksheet

+ 1 - 1
lib/notification_factory.rb

@@ -53,7 +53,7 @@ returns
   private_class_method :template_path
 
   def self.template_filenames(data)
-    locale = data[:locale] || Setting.get('locale_default') || 'en-us'
+    locale = data[:locale] || Locale.default
 
     [locale, locale[0, 2], 'en']
       .uniq

Some files were not shown because too many files changed in this diff