# File lib/i18n/backend/active_record.rb, line 14 14: def available_locales 15: begin 16: Translation.available_locales 17: rescue ::ActiveRecord::StatementInvalid 18: [] 19: end 20: end
# File lib/i18n/backend/active_record.rb, line 22 22: def store_translations(locale, data, options = {}) 23: escape = options.fetch(:escape, true) 24: flatten_translations(locale, data, escape, false).each do |key, value| 25: Translation.locale(locale).lookup(expand_keys(key)).delete_all 26: Translation.create(:locale => locale.to_s, :key => key.to_s, :value => value) 27: end 28: end
For a key :’foo.bar.baz’ return [‘foo’, ‘foo.bar’, ‘foo.bar.baz’]
# File lib/i18n/backend/active_record.rb, line 51 51: def expand_keys(key) 52: key.to_s.split(FLATTEN_SEPARATOR).inject([]) do |keys, key| 53: keys << [keys.last, key].compact.join(FLATTEN_SEPARATOR) 54: end 55: end
# File lib/i18n/backend/active_record.rb, line 32 32: def lookup(locale, key, scope = [], options = {}) 33: key = normalize_flat_keys(locale, key, scope, options[:separator]) 34: result = Translation.locale(locale).lookup(key).all 35: 36: if result.empty? 37: nil 38: elsif result.first.key == key 39: result.first.value 40: else 41: chop_range = (key.size + FLATTEN_SEPARATOR.size)..1 42: result = result.inject({}) do |hash, r| 43: hash[r.key.slice(chop_range)] = r.value 44: hash 45: end 46: result.deep_symbolize_keys 47: end 48: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.