1. Try to fix the current code somehow. If it is not possible add the
language :method call
class Application
language :user_language
def user_language
self.lang = current_user.language
end
end
2. Leave it to the user. Possibly adding the helper methods like
language_from_http_accept_language(env, auto_choose = true) and/or
leaving the auto detection as default option [somehow].
class Application < Merb::Controller
before :set_language
def set_language
self.lang ||= params[:language]
self.lang ||= current_user.language if current_user
self.lang ||= language_from_http_accept_language env
self.lang ||= 'en'
end
end
Personally I prefer the first option which IMHO have bigger usability.