Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 5 additions & 6 deletions lib/mini_i18n.rb
Original file line number Diff line number Diff line change
Expand Up @@ -90,9 +90,8 @@ def translate(key, options = {})
scope = options[:scope]

keys = [_locale.to_s]
keys << scope.to_s.split(separator) if scope
keys << key.to_s.split(separator)
keys = keys.flatten
keys.concat(scope.to_s.split(separator)) if scope
keys.concat(key.to_s.split(separator))

result = lookup(*keys)

Expand All @@ -117,8 +116,8 @@ def set_locale(new_locale)
end

def available_locale?(new_locale)
new_locale = new_locale.to_s
available_locales.include?(new_locale) && new_locale
locale_string = new_locale.to_s
available_locales.include?(locale_string) && locale_string
end

def lookup(*keys)
Expand Down Expand Up @@ -155,7 +154,7 @@ def with_pluralization(result, options, locale)
end

def with_interpolation(result, options)
if result.respond_to?(:match) && result.match(/%{\w+}/)
if result.is_a?(String) && result.include?('%{')
result = Utils.interpolate(result, options)
end

Expand Down
2 changes: 1 addition & 1 deletion lib/mini_i18n/pluralization.rb
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ def self.pluralize(mappings, count, locale = MiniI18n.locale)
private

def self.default_rule
-> (n) {
@default_rule ||= -> (n) {
case n
when 0
'zero'
Expand Down
10 changes: 5 additions & 5 deletions lib/mini_i18n/utils.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,15 @@ def interpolate(string, keys)
end

def deep_merge(merge_to, merge_from)
merged = merge_to.clone
merged = merge_to.dup

merge_from.each do |key, value|
key = key.to_s
string_key = key.to_s

if value.is_a?(Hash) && merged[key].is_a?(Hash)
merged[key] = deep_merge(merged[key], value)
if value.is_a?(Hash) && merged[string_key].is_a?(Hash)
merged[string_key] = deep_merge(merged[string_key], value)
else
merged[key] = value
merged[string_key] = value
end
end

Expand Down