Sha256: 435252a49b59ea5b96430acc85d315e74a86623d5cd6f01a5564f3b05e8f8739

Contents?: true

Size: 1.88 KB

Versions: 6

Compression:

Stored size: 1.88 KB

Contents

module CopyTunerClient
  module HelperExtension
    class << self
      def hook_translation_helper(mod, middleware_enabled:)
        mod.class_eval do
          def translate_with_copyray_comment(key, **options)
            source = translate_without_copyray_comment(key, **options)

            if controller && CopyTunerClient::Rails.controller_of_rails_engine?(controller)
              return source
            end

            # TODO: test
            # NOTE: default引数が設定されている場合は、copytunerキャッシュの値をI18n.t呼び出しにより上書きしている
            # SEE: https://github.com/rails/rails/blob/6c43ebc220428ce9fc9569c2e5df90a38a4fc4e4/actionview/lib/action_view/helpers/translation_helper.rb#L82
            if options.key?(:default)
              I18n.t(key.to_s.first == '.' ? scope_key_by_partial(key) : key, **options)
            end

            if CopyTunerClient.configuration.disable_copyray_comment_injection
              source
            else
              separator = options[:separator] || I18n.default_separator
              scope = options[:scope]
              scope_key =
                if key.to_s.first == '.'
                  scope_key_by_partial(key)
                else
                  # NOTE: locale prefix無しのkeyが必要のためこうしている
                  I18n.normalize_keys(nil, key, scope, separator).compact.join(separator)
                end
              CopyTunerClient::Copyray.augment_template(source, scope_key)
            end
          end
          if middleware_enabled
            alias_method :translate_without_copyray_comment, :translate
            alias_method :translate, :translate_with_copyray_comment
            alias :t :translate
            alias :tt :translate_without_copyray_comment
          else
            alias :tt :translate
          end
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
copy_tuner_client-0.19.0 lib/copy_tuner_client/helper_extension.rb
copy_tuner_client-0.18.0 lib/copy_tuner_client/helper_extension.rb
copy_tuner_client-0.17.1 lib/copy_tuner_client/helper_extension.rb
copy_tuner_client-0.16.3 lib/copy_tuner_client/helper_extension.rb
copy_tuner_client-0.16.2 lib/copy_tuner_client/helper_extension.rb
copy_tuner_client-0.16.1 lib/copy_tuner_client/helper_extension.rb