Sha256: 00fa40b968e08000f729e83cbb503e5820e9970cb9841617483d086edafdf335

Contents?: true

Size: 977 Bytes

Versions: 52

Compression:

Stored size: 977 Bytes

Contents

# frozen_string_literal: true

# Transalte with array of translation
#
#   => UiBibz::Utils::Internationalization.new("ui_bibz.table.actions.#{ @store.model.to_s.underscore }.show", default: defaults).translate
module UiBibz::Utils
  # Internalizations methods to translate can be used outside of Ui Bibz
  class Internationalization
    def initialize(translation, options = {})
      @translation = translation
      @options     = options
    end

    def translate
      I18n.t(@translation, **options_with_default)
    end

    private

    def options_with_default
      @options[:default] = translate_default unless @options[:default].nil?
      @options
    end

    # To know if translation missing
    def i18n_set?(key)
      I18n.t key, raise: true
    rescue StandardError
      false
    end

    def translate_default
      I18n.t(Array(@options[:default]).find { |translation| i18n_set? translation }, default: Array(@options[:default]).last)
    end
  end
end

Version data entries

52 entries across 52 versions & 1 rubygems

Version Path
ui_bibz-4.0.0.beta18 lib/ui_bibz/utils/internationalization.rb
ui_bibz-4.0.0.beta17 lib/ui_bibz/utils/internationalization.rb
ui_bibz-4.0.0.beta16 lib/ui_bibz/utils/internationalization.rb
ui_bibz-4.0.0.beta15 lib/ui_bibz/utils/internationalization.rb
ui_bibz-4.0.0.beta14 lib/ui_bibz/utils/internationalization.rb
ui_bibz-4.0.0.beta13 lib/ui_bibz/utils/internationalization.rb
ui_bibz-4.0.0.beta10 lib/ui_bibz/utils/internationalization.rb
ui_bibz-4.0.0.beta9 lib/ui_bibz/utils/internationalization.rb
ui_bibz-4.0.0.beta8 lib/ui_bibz/utils/internationalization.rb
ui_bibz-4.0.0.beta7 lib/ui_bibz/utils/internationalization.rb
ui_bibz-4.0.0.beta6 lib/ui_bibz/utils/internationalization.rb
ui_bibz-4.0.0.beta4 lib/ui_bibz/utils/internationalization.rb
ui_bibz-4.0.0.beta3 lib/ui_bibz/utils/internationalization.rb
ui_bibz-3.0.13 lib/ui_bibz/utils/internationalization.rb
ui_bibz-3.0.12 lib/ui_bibz/utils/internationalization.rb
ui_bibz-3.0.11 lib/ui_bibz/utils/internationalization.rb
ui_bibz-3.0.10 lib/ui_bibz/utils/internationalization.rb
ui_bibz-3.0.9 lib/ui_bibz/utils/internationalization.rb
ui_bibz-3.0.8 lib/ui_bibz/utils/internationalization.rb
ui_bibz-3.0.7 lib/ui_bibz/utils/internationalization.rb