]> git.openstreetmap.org Git - rails.git/blobdiff - app/controllers/amf_controller.rb
Rework locale selection
[rails.git] / app / controllers / amf_controller.rb
index f6ae7f231443228d4a349f98b318d832d6b4aa26..f2b592b498830f36fd68f1243df03abf3594e2db 100644 (file)
@@ -190,11 +190,13 @@ class AmfController < ApplicationController
     user = getuser(usertoken)
 
     if user && !user.languages.empty?
-      http_accept_language.user_preferred_languages = user.languages
+      langs = Locale.list(user.languages)
+    else
+      langs = Locale.list(http_accept_language.user_preferred_languages)
     end
 
-    lang = http_accept_language.compatible_language_from(getlocales)
-    (real_lang, localised) = getlocalized(lang)
+    lang = getlocales.preferred(langs)
+    (real_lang, localised) = getlocalized(lang.to_s)
 
     # Tell Potlatch what language it's using
     localised["__potlatch_locale"] = real_lang
@@ -874,7 +876,7 @@ class AmfController < ApplicationController
   end
 
   def getlocales
-    Dir.glob("#{Rails.root}/config/potlatch/locales/*").collect { |f| File.basename(f, ".yml") }
+    @locales ||= Locale.list(Dir.glob("#{Rails.root}/config/potlatch/locales/*").collect { |f| File.basename(f, ".yml") })
   end
 
   ##