X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/942ca1ff2332252ee8db34a436c0b0c1983145b1..bec2340a448d2eaa9ffe2e2ca1980b31ae73c342:/app/controllers/amf_controller.rb?ds=sidebyside diff --git a/app/controllers/amf_controller.rb b/app/controllers/amf_controller.rb index 3fa47d088..2aee84d0c 100644 --- a/app/controllers/amf_controller.rb +++ b/app/controllers/amf_controller.rb @@ -76,7 +76,7 @@ class AmfController < ApplicationController logger.info("Executing AMF #{message}(#{args.join(',')}):#{index}") case message - when 'getpresets'; results[index]=AMF.putdata(index,getpresets(args[0])) + when 'getpresets'; results[index]=AMF.putdata(index,getpresets(*args)) when 'whichways'; results[index]=AMF.putdata(index,whichways(*args)) when 'whichways_deleted'; results[index]=AMF.putdata(index,whichways_deleted(*args)) when 'getway'; results[index]=AMF.putdata(index,getway(args[0].to_i)) @@ -213,13 +213,21 @@ class AmfController < ApplicationController # Return presets (default tags, localisation etc.): # uses POTLATCH_PRESETS global, set up in OSM::Potlatch. - def getpresets(lang) #:doc: - lang.gsub!(/[^\w\-]/,'') + def getpresets(usertoken,lang) #:doc: + user = getuser(usertoken) + + if user && !user.languages.empty? + request.user_preferred_languages = user.languages + end + + lang = request.compatible_language_from(getlocales) begin + # if not, try the browser language localised = YAML::load(File.open("#{RAILS_ROOT}/config/potlatch/localised/#{lang}/localised.yaml")) rescue - localised = "" # guess we'll just have to use the hardcoded English text instead + # fall back to hardcoded English text + localised = "" end begin @@ -851,6 +859,9 @@ class AmfController < ApplicationController } end + def getlocales + Dir.glob("#{RAILS_ROOT}/config/potlatch/localised/*").collect { |f| File.basename(f) } + end # ==================================================================== # Alternative SQL queries for getway/whichways