Sha256: acfc9489c1fe0b5fc0448df069a36731b10ff9fa5bf594bf75df4b95cdf101ec
Contents?: true
Size: 1.5 KB
Versions: 28
Compression:
Stored size: 1.5 KB
Contents
module Alchemy class I18n # A I18n Proxy for Alchemy translations # # Instead of having to translate strings and defining a default value: # # Alchemy::I18n.t("Hello World!", :default => 'Hello World!') # # We define this method to define the value only once: # # Alchemy::I18n.t("Hello World!") # # Note that interpolation still works: # # Alchemy::I18n.t("Hello %{world}!", :world => @world) # # === Notes # # All translations are scoped into the +alchemy+ namespace. # Even scopes are scoped into the +alchemy+ namespace. # # So a call for t('hello', :scope => :world) has to be translated like this: # # de: # alchemy: # world: # hello: Hallo # def self.t(msg, *args) options = args.extract_options! options[:default] = options[:default] ? options[:default] : msg.to_s.humanize scope = ['alchemy'] case options[:scope].class.name when "Array" scope += options[:scope] when "String" scope << options[:scope] when "Symbol" scope << options[:scope] unless options[:scope] == :alchemy end ::I18n.t(msg, options.merge(:scope => scope)) end def self.available_locales translation_files.collect { |f| f.match(/.{2}\.yml$/).to_s.gsub(/\.yml/, '') }.uniq end def self.translation_files Rails.application.config.i18n.load_path.select { |p| p.split('/').last.match(/alchemy/) } end end end
Version data entries
28 entries across 28 versions & 1 rubygems