X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/0d5be22cb517ebaaab5eb7af13150bf61e41df56..df4267639d3cfe72c99b040c9b1c5502b9bae927:/app/controllers/amf_controller.rb diff --git a/app/controllers/amf_controller.rb b/app/controllers/amf_controller.rb index 1e87e47c2..86ca3f5fb 100644 --- a/app/controllers/amf_controller.rb +++ b/app/controllers/amf_controller.rb @@ -221,23 +221,35 @@ class AmfController < ApplicationController end lang = request.compatible_language_from(getlocales) + localised = getlocalized(lang) - begin - # if not, try the browser language - localised = YAML::load(File.open("#{RAILS_ROOT}/config/potlatch/localised/#{lang}/localised.yaml")) - rescue - # fall back to hardcoded English text - localised = "" - end + # Get help from i18n but delete it so we won't pass it around + # twice for nothing + help = localised["help_html"] + localised.delete("help_html") - begin - help = File.read("#{RAILS_ROOT}/config/potlatch/localised/#{lang}/help.html") - rescue - help = File.read("#{RAILS_ROOT}/config/potlatch/localised/en/help.html") - end return POTLATCH_PRESETS+[localised,help] end + def getlocalized(lang) + en = YAML::load(File.open("#{RAILS_ROOT}/config/potlatch/locales/en.yml"))["en"] + + if lang == 'en' + return en + else + # Use English as a fallback + begin + other = YAML::load(File.open("#{RAILS_ROOT}/config/potlatch/locales/#{lang}.yml"))[lang] + rescue + other = en + end + + # We have to return a flat list and some of the keys won't be + # translated (probably) + return en.merge(other) + end + end + ## # Find all the ways, POI nodes (i.e. not part of ways), and relations # in a given bounding box. Nodes are returned in full; ways and relations @@ -871,7 +883,7 @@ class AmfController < ApplicationController end def getlocales - Dir.glob("#{RAILS_ROOT}/config/potlatch/localised/*").collect { |f| File.basename(f) } + Dir.glob("#{RAILS_ROOT}/config/potlatch/locales/*").collect { |f| File.basename(f, ".yml") } end ##