Sha256: 941e9c018f6ce4fad1d25556b4960a8a78d8d270d57cd1ae7914e6132e79cd13
Contents?: true
Size: 1.55 KB
Versions: 9
Compression:
Stored size: 1.55 KB
Contents
module Alchemy module I18n # Alchemy translation methods # # 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) # # It offers a shortcut method and view helper called _t # # === 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/, '') } end def self.translation_files Dir.glob(File.join(File.dirname(__FILE__), '../../config/locales/alchemy.*.yml')) end end end
Version data entries
9 entries across 9 versions & 1 rubygems