module Tr8n::ActionControllerExtension::InstanceMethods
Public Instance Methods
init_tr8n()
click to toggle source
# File lib/tr8n/extensions/action_controller_extension.rb, line 95 def init_tr8n # initialize request thread variables Tr8n::Config.init(tr8n_init_current_locale, tr8n_init_current_user, tr8n_init_current_source) # invalidate source for the current page Tr8n::Cache.invalidate_source(Tr8n::Config.current_source) # track user's last ip address if Tr8n::Config.enable_country_tracking? and Tr8n::Config.current_user_is_translator? Tr8n::Config.current_translator.update_last_ip(tr8n_request_remote_ip) end end
tr(label, desc = "", tokens = {}, options = {})
click to toggle source
There are two ways to call the tr method
tr(label, desc = “”, tokens = {}, options = {}) or tr(label, {:desc => “”, tokens => {}, …})
# File lib/tr8n/extensions/action_controller_extension.rb, line 115 def tr(label, desc = "", tokens = {}, options = {}) return label if label.tr8n_translated? if desc.is_a?(Hash) options = desc tokens = options[:tokens] || {} desc = options[:desc] || "" end options.merge!(:caller => caller) options.merge!(:url => request.url) options.merge!(:host => request.env['HTTP_HOST']) unless Tr8n::Config.enabled? return Tr8n::TranslationKey.substitute_tokens(label, tokens, options) end Tr8n::Config.current_language.translate(label, desc, tokens, options) end
tr8n_browser_accepted_locales()
click to toggle source
Author: Iain Hecker reference: github.com/iain/http_accept_language
# File lib/tr8n/extensions/action_controller_extension.rb, line 36 def tr8n_browser_accepted_locales @accepted_languages ||= request.env['HTTP_ACCEPT_LANGUAGE'].split(/\s*,\s*/).collect do |l| l += ';q=1.0' unless l =~ /;q=\d+\.\d+$/ l.split(';q=') end.sort do |x,y| raise Tr8n::Exception.new("Not correctly formatted") unless x.first =~ /^[a-z\-]+$/i y.last.to_f <=> x.last.to_f end.collect do |l| l.first.downcase.gsub(/-[a-z]+$/i) { |x| x.upcase } end rescue [] end
tr8n_init_current_locale()
click to toggle source
# File lib/tr8n/extensions/action_controller_extension.rb, line 72 def tr8n_init_current_locale eval(Tr8n::Config.current_locale_method) rescue # fallback to the default session based locale implementation # choose the first language from the accepted languages header session[:locale] = tr8n_user_preffered_locale unless session[:locale] session[:locale] = params[:locale] if params[:locale] session[:locale] end
tr8n_init_current_source()
click to toggle source
# File lib/tr8n/extensions/action_controller_extension.rb, line 66 def tr8n_init_current_source "#{self.class.name.underscore.gsub("_controller", "")}/#{self.action_name}" rescue self.class.name end
tr8n_init_current_user()
click to toggle source
# File lib/tr8n/extensions/action_controller_extension.rb, line 82 def tr8n_init_current_user unless Tr8n::Config.site_user_info_enabled? # deprecated - the site should run a standalone translation engine with a bridge user = Tr8n::Translator.find_by_id(session[:tr8n_translator_id]) if session[:tr8n_translator_id] user ||= Tr8n::Translator.new return user end eval(Tr8n::Config.current_user_method) rescue Tr8n::Logger.error("Site user integration is enabled, but #{Tr8n::Config.current_user_method} method is not defined") Tr8n::Translator.new end
tr8n_request_remote_ip()
click to toggle source
# File lib/tr8n/extensions/action_controller_extension.rb, line 58 def tr8n_request_remote_ip @remote_ip ||= if request.env['HTTP_X_FORWARDED_FOR'] request.env['HTTP_X_FORWARDED_FOR'].split(',').first else request.remote_ip end end
tr8n_user_preffered_locale()
click to toggle source
# File lib/tr8n/extensions/action_controller_extension.rb, line 50 def tr8n_user_preffered_locale tr8n_browser_accepted_locales.each do |locale| lang = Tr8n::Language.for(locale) return locale if lang and lang.enabled? end Tr8n::Config.default_locale end
trfe(label, desc = "", tokens = {}, options = {})
click to toggle source
flash error
# File lib/tr8n/extensions/action_controller_extension.rb, line 147 def trfe(label, desc = "", tokens = {}, options = {}) flash[:trfe] = tr(label, desc, tokens, options) end
trfn(label, desc = "", tokens = {}, options = {})
click to toggle source
flash notice
# File lib/tr8n/extensions/action_controller_extension.rb, line 142 def trfn(label, desc = "", tokens = {}, options = {}) flash[:trfn] = tr(label, desc, tokens, options) end
trfw(label, desc = "", tokens = {}, options = {})
click to toggle source
flash error
# File lib/tr8n/extensions/action_controller_extension.rb, line 152 def trfw(label, desc = "", tokens = {}, options = {}) flash[:trfw] = tr(label, desc, tokens, options) end
trl(label, desc = "", tokens = {}, options = {})
click to toggle source
for translating labels
# File lib/tr8n/extensions/action_controller_extension.rb, line 137 def trl(label, desc = "", tokens = {}, options = {}) tr(label, desc, tokens, options.merge(:skip_decorations => true)) end