module Tr8nClientSdk::ActionControllerExtension::InstanceMethods

Public Instance Methods

tr8n_browser_accepted_locales() click to toggle source
# File lib/tr8n_client_sdk/extensions/action_controller_extension.rb, line 52
def tr8n_browser_accepted_locales
  @tr8n_browser_accepted_locales ||= Tr8n::Utils.browser_accepted_locales(request)
end
tr8n_component() click to toggle source

Overwrite this method in a controller to assign a custom component for all views

# File lib/tr8n_client_sdk/extensions/action_controller_extension.rb, line 72
def tr8n_component
  nil
end
tr8n_init_client_sdk() click to toggle source
# File lib/tr8n_client_sdk/extensions/action_controller_extension.rb, line 92
def tr8n_init_client_sdk
  return if Tr8n.config.disabled?

  @tr8n_started_at = Time.now

  if params[:tr8n]
    tr8n_toggle_tools(params[:tr8n] == 'on')
  end

  tr8n_session_params = {
    :tools_enabled    => tr8n_tools_enabled?,
    :source           => tr8n_source,
    :component        => tr8n_component
  }

  if Tr8n.config.current_user_method
    begin
      tr8n_session_params.merge!(:user => self.send(Tr8n.config.current_user_method))
    rescue
      # Tr8n.logger.error('Current user method is specified but not provided')
    end
  end

  if tr8n_tools_enabled? # gets translator and locale from the cookie
    tr8n_session_params.merge!(:cookies => request.cookies)
  else # uses default locale
    tr8n_session_params.merge!(:locale => tr8n_locale)
  end

  Tr8n.session.init(tr8n_session_params)

  I18n.enforce_available_locales = false
  I18n.locale = Tr8n.session.current_language.locale
end
tr8n_locale() click to toggle source
# File lib/tr8n_client_sdk/extensions/action_controller_extension.rb, line 84
def tr8n_locale
  self.send(Tr8n.config.current_locale_method) if Tr8n.config.current_locale_method
rescue
  session[:locale] = tr8n_user_preferred_locale unless session[:locale]
  session[:locale] = params[:locale] if params[:locale]
  session[:locale] || Tr8n.config.default_locale
end
tr8n_reset_client_sdk() click to toggle source
# File lib/tr8n_client_sdk/extensions/action_controller_extension.rb, line 127
def tr8n_reset_client_sdk
  return if Tr8n.config.disabled?
  @tr8n_finished_at = Time.now
  tr8n_application.submit_missing_keys
  Tr8n.session.reset
  Tr8n.logger.info("Request took #{@tr8n_finished_at - @tr8n_started_at} mls") if @tr8n_started_at
end
tr8n_source() click to toggle source

Overwrite this method in a controller to assign a custom source for all views

# File lib/tr8n_client_sdk/extensions/action_controller_extension.rb, line 65
def tr8n_source
  "/#{controller_name}/#{action_name}"
rescue
  self.class.name
end
tr8n_toggle_tools(flag) click to toggle source
# File lib/tr8n_client_sdk/extensions/action_controller_extension.rb, line 76
def tr8n_toggle_tools(flag)
  session[:tr8n_tools_disabled] = !flag
end
tr8n_tools_enabled?() click to toggle source
# File lib/tr8n_client_sdk/extensions/action_controller_extension.rb, line 80
def tr8n_tools_enabled?
  not session[:tr8n_tools_disabled]
end
tr8n_user_preferred_locale() click to toggle source
# File lib/tr8n_client_sdk/extensions/action_controller_extension.rb, line 56
def tr8n_user_preferred_locale
  tr8n_browser_accepted_locales.each do |locale|
    next unless Tr8n.session.application.locales.include?(locale)
    return locale
  end
  Tr8n.config.default_locale
end