Sha256: 2493276800b0a0694e95de53e3d90bf5bdb94b19813dad43cf8d242556939eac
Contents?: true
Size: 1.83 KB
Versions: 1
Compression:
Stored size: 1.83 KB
Contents
require 'fast_gettext' require 'locale' module HammerCLI module I18n module AllDomains def _(key) FastGettext::TranslationMultidomain.D_(key) end def n_(*keys) FastGettext::TranslationMultidomain.Dn_(*keys) end def s_(key, separator=nil) FastGettext::TranslationMultidomain.Ds_(key, separator) end def ns_(*keys) FastGettext::TranslationMultidomain.Dns_(*keys) end end class AbstractLocaleDomain def available_locales Dir.glob(locale_dir+'/*').select { |f| File.directory? f }.map { |f| File.basename(f) } end def translated_files [] end def type :mo end attr_reader :locale_dir, :domain_name end class LocaleDomain < AbstractLocaleDomain def translated_files Dir.glob(File.join(File.dirname(__FILE__), '../**/*.rb')) end def locale_dir File.join(File.dirname(__FILE__), '../../locale') end def domain_name 'hammer-cli' end end def self.locale lang_variant = Locale.current.to_simple.to_str lang = lang_variant.gsub(/_.*/, "") hammer_domain = HammerCLI::I18n::LocaleDomain.new if hammer_domain.available_locales.include? lang_variant lang_variant else lang end end def self.domains @domains ||= [] @domains end def self.add_domain(domain) domains << domain FastGettext.add_text_domain(domain.domain_name, :path => domain.locale_dir, :type => domain.type, :report_warning => false) end Encoding.default_external='UTF-8' if defined? Encoding FastGettext.locale = locale end end include FastGettext::Translation include HammerCLI::I18n::AllDomains HammerCLI::I18n.add_domain(HammerCLI::I18n::LocaleDomain.new)
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
hammer_cli-0.1.0 | lib/hammer_cli/i18n.rb |