Fix compatible_language_from in the http_accept_language plugin to

correctly follow the RFC 2616 language selection algorithm and then
revert to the previous way of selecting languages.
This commit is contained in:
Tom Hughes 2009-07-15 23:42:56 +00:00
parent 1368f194da
commit 25d0017b18
2 changed files with 3 additions and 5 deletions

View file

@ -110,9 +110,8 @@ class ApplicationController < ActionController::Base
end
end
I18n.locale = request.preferred_language_from(I18n.available_locales) ||
request.compatible_language_from(I18n.available_locales)
logger.info("Select #{I18n.locale} matching #{request.user_preferred_languages.join(',')} against #{I18n.available_locales.join(',')}")
I18n.locale = request.compatible_language_from(I18n.available_locales)
response.headers['Content-Language'] = I18n.locale.to_s
end

View file

@ -48,9 +48,8 @@ module HttpAcceptLanguage
#
def compatible_language_from(array)
user_preferred_languages.map do |x|
x = x.to_s.split("-")[0]
array.find do |y|
y.to_s.split("-")[0] == x
y.to_s =~ /^#{x.to_s}(-|$)/
end
end.compact.first
end