From 4471d7b84fc783a08909473ef0243e6e07d2342a Mon Sep 17 00:00:00 2001 From: Ruben Davila Date: Thu, 20 Apr 2017 18:09:13 -0500 Subject: [PATCH 1/2] Some small fixes for the current I18n implementation --- app/controllers/projects/cycle_analytics_controller.rb | 1 + config/initializers/fast_gettext.rb | 2 +- lib/gitlab/i18n.rb | 6 +++--- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/app/controllers/projects/cycle_analytics_controller.rb b/app/controllers/projects/cycle_analytics_controller.rb index 88ac3ad046b..7ef8872a90b 100644 --- a/app/controllers/projects/cycle_analytics_controller.rb +++ b/app/controllers/projects/cycle_analytics_controller.rb @@ -4,6 +4,7 @@ class Projects::CycleAnalyticsController < Projects::ApplicationController include CycleAnalyticsParams before_action :authorize_read_cycle_analytics! + before_action :set_locale, only: :show def show @cycle_analytics = ::CycleAnalytics.new(@project, options(cycle_analytics_params)) diff --git a/config/initializers/fast_gettext.rb b/config/initializers/fast_gettext.rb index 54b0049033b..10a3ee02b85 100644 --- a/config/initializers/fast_gettext.rb +++ b/config/initializers/fast_gettext.rb @@ -1,3 +1,3 @@ FastGettext.add_text_domain 'gitlab', path: 'locale', type: :po -FastGettext.default_available_locales = Gitlab::I18n::AVAILABLE_LANGUAGES.keys FastGettext.default_text_domain = 'gitlab' +FastGettext.default_available_locales = Gitlab::I18n::AVAILABLE_LANGUAGES.keys diff --git a/lib/gitlab/i18n.rb b/lib/gitlab/i18n.rb index 0459def6517..64a86b55c7f 100644 --- a/lib/gitlab/i18n.rb +++ b/lib/gitlab/i18n.rb @@ -1,9 +1,9 @@ module Gitlab module I18n AVAILABLE_LANGUAGES = { - 'en' => 'English', - 'es' => 'Spanish', - 'de' => 'Deutsch' + 'en' => N_('English'), + 'es' => N_('Spanish'), + 'de' => N_('Deutsch') }.freeze end end From 6fbc6befa1768cc68471d17091ef08b2e73fec82 Mon Sep 17 00:00:00 2001 From: Ruben Davila Date: Thu, 20 Apr 2017 22:47:31 -0500 Subject: [PATCH 2/2] Monkey patch gettext_i18n_rails so it can parse content in Mustache format --- config/initializers/gettext_rails_i18n_patch.rb | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 config/initializers/gettext_rails_i18n_patch.rb diff --git a/config/initializers/gettext_rails_i18n_patch.rb b/config/initializers/gettext_rails_i18n_patch.rb new file mode 100644 index 00000000000..0413330c608 --- /dev/null +++ b/config/initializers/gettext_rails_i18n_patch.rb @@ -0,0 +1,17 @@ +module GettextI18nRails + class HamlParser + singleton_class.send(:alias_method, :old_convert_to_code, :convert_to_code) + + # We need to convert text in Mustache format + # to a format that can be parsed by Gettext scripts. + # If we found a content like "{{ 'Stage' | translate }}" + # in a HAML file we convert it to "= _('Stage')", that way + # it can be processed by the "rake gettext:find" script. + def self.convert_to_code(text) + text.gsub!(/{{ (.*)( \| translate) }}/, "= _(\\1)") + + old_convert_to_code(text) + end + end +end +