module Conjoin::I18N
Public Class Methods
setup(app)
click to toggle source
# File lib/conjoin/i18n.rb, line 8 def self.setup(app) app.settings[:default_locale] = 'en-US' app.settings[:translations] = File.join(app.root, 'i18n') ::R18n::Filters.off :untranslated ::R18n::Filters.on :untranslated_html if Conjoin.env.test? or Conjoin.env.development? ::R18n.clear_cache! end end
Public Instance Methods
get_locale_from_host()
click to toggle source
# File lib/conjoin/i18n.rb, line 40 def get_locale_from_host # auxiliar method to get locale from the subdomain (assuming it is a valid locale). data = req.host.split('.')[0] data if ::R18n::Locale.exists? data end
set_locale(req, force_default = false)
click to toggle source
# File lib/conjoin/i18n.rb, line 18 def set_locale(req, force_default = false) ::R18n.set do ::R18n::I18n.default = settings[:default_locale] locale = get_locale_from_host # You can add support for path language info :) Just do it and pull request it ;) # locale = get_locale_from_path if locale.nil? if locale.nil? and not force_default locales = ::R18n::I18n.parse_http req.env['HTTP_ACCEPT_LANGUAGE'] if req.params['locale'] locales.insert 0, req.params['locale'] elsif req.session['locale'] locales.insert 0, req.session['locale'] end else locales = [] locales << locale locales << settings[:default_locale] end ::R18n::I18n.new locales, settings[:translations] end end