From: Ævar Arnfjörð Bjarmason Date: Wed, 23 Sep 2009 17:08:46 +0000 (+0000) Subject: [2304]: Split the default English i18n parameter in Potlatch out to a YAML file X-Git-Tag: live~6639 X-Git-Url: https://git.openstreetmap.org/rails.git/commitdiff_plain/65eec829782df172eee676afe5b136fe33295a58 [2304]: Split the default English i18n parameter in Potlatch out to a YAML file --- diff --git a/app/controllers/amf_controller.rb b/app/controllers/amf_controller.rb index 1e87e47c2..d2c0230a8 100644 --- a/app/controllers/amf_controller.rb +++ b/app/controllers/amf_controller.rb @@ -221,23 +221,36 @@ 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"] + help = 'foo' + 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