Module: Traduction::I18n::I18nMethods

Included in:
Traduction::I18n
Defined in:
lib/traduction/i18n.rb

Instance Method Summary collapse

Instance Method Details

#diff_locales(options = {}) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/traduction/i18n.rb', line 6

def diff_locales(options = {})
  from_prefix, from_content = options[:from].to_a
  to_prefix, to_content = options[:to].to_a
  prefix = options[:prefix]

  from = YAML::load(from_content)[from_prefix]
  to = YAML::load(to_content)[to_prefix]

  messages = diff_yaml(from, to, prefix: prefix) do |k,v|
    yield k,v
  end

  display_messages(messages, empty_message: 'No added keys')
end

#diff_yaml(from, to, options = {}, &block) ⇒ Object



42
43
44
45
46
47
48
49
# File 'lib/traduction/i18n.rb', line 42

def diff_yaml(from, to, options = {}, &block)
  messages = []
  prefix = options[:prefix] || nil
  from.diff_more(to, :ignore_values => true).flatten_keys(prefix).each do |k,v|
    messages << yield(k,v)
  end
  messages
end

#display_messages(messages, options = {}) ⇒ Object



21
22
23
24
25
26
27
28
# File 'lib/traduction/i18n.rb', line 21

def display_messages(messages, options = {})
  empty_message = options[:empty_message] || 'Nothing found'
  if messages.present?
    messages.each { |m| puts m }
  else
    puts empty_message
  end
end

#load_default_localeObject



30
31
32
33
34
35
36
# File 'lib/traduction/i18n.rb', line 30

def load_default_locale
  i18n_default_locale = ::I18n.default_locale
  {
    :key => i18n_default_locale.to_s,
    :file => locale_file(i18n_default_locale)
  }
end

#locale_file(locale) ⇒ Object



38
39
40
# File 'lib/traduction/i18n.rb', line 38

def locale_file(locale)
  File.join('config', 'locales', "#{locale}.yml")
end