Revision 51546fe5
Added by Marc Dequènes about 13 years ago
- ID 51546fe57a7c69cdece4127636d9bb2eb3d7528d
lib/cyborghood/cyborg/dsl.rb | ||
---|---|---|
#++
|
||
|
||
require 'active_support/basic_object'
|
||
require 'http_headers'
|
||
require 'set'
|
||
|
||
|
||
... | ... | |
|
||
def set_preferred_locales(prefs)
|
||
_add_subtask("setting/preferred_locales") do |subtask|
|
||
logger.debug "Task '#{@name}': setting preferred locales"
|
||
lang_chooser = HTTPHeaders::AcceptLanguage.parse(prefs)
|
||
if lang_chooser
|
||
@preferred_locales = prefs
|
||
|
||
ordered_list = lang_chooser.reduce(I18nController.instance.available_locales)
|
||
@locale = ordered_list.empty? ? I18nController::DEFAULT_LOCALE : ordered_list.first.range
|
||
logger.debug "Task '#{@name}': locale chosen: #{@locale}"
|
||
else
|
||
@errors << CyberError.new(:unrecoverable, "botnet/client/dsl", _("unparsable preferred locales"))
|
||
end
|
||
logger.debug "Task '#{@name}': setting preferred locales to: #{prefs}"
|
||
@preferred_locales = prefs
|
||
|
||
subtask.finish
|
||
end
|
||
end
|
Also available in: Unified diff
[evol] adapted current I18n system for late translation