From f4dba81b6460be14cacbe067956cb74b9743a18d Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Fri, 2 Oct 2009 23:41:19 +0000 Subject: [PATCH] Modify the existing i18n() javascript function to lookup strings in the javascript i18n array as well as expanding arguments, and make all lookups go through it. --- app/helpers/application_helper.rb | 4 ++-- public/javascripts/map.js | 10 +++++----- public/javascripts/site.js | 6 ++++-- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 010737245..7dcbe369b 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -15,7 +15,7 @@ module ApplicationHelper js = "" js << "\n" @@ -29,7 +29,7 @@ private value = t(key) if value.is_a?(String) - js << "rails_i18n['#{key}'] = '" << escape_javascript(value) << "';\n" + js << "i18n_strings['#{key}'] = '" << escape_javascript(value) << "';\n" else value.each_key do |k| js << javascript_strings_for_key("#{key}.#{k}") diff --git a/public/javascripts/map.js b/public/javascripts/map.js index 8ae2349ea..32953c439 100644 --- a/public/javascripts/map.js +++ b/public/javascripts/map.js @@ -36,26 +36,26 @@ function createMap(divName, options) { displayProjection: new OpenLayers.Projection("EPSG:4326") }); - var mapnik = new OpenLayers.Layer.OSM.Mapnik(rails_i18n["javascripts.map.base.mapnik"], { + var mapnik = new OpenLayers.Layer.OSM.Mapnik(i18n("javascripts.map.base.mapnik"), { displayOutsideMaxExtent: true, wrapDateLine: true }); map.addLayer(mapnik); - var osmarender = new OpenLayers.Layer.OSM.Osmarender(rails_i18n["javascripts.map.base.osmarender"], { + var osmarender = new OpenLayers.Layer.OSM.Osmarender(i18n("javascripts.map.base.osmarender"), { displayOutsideMaxExtent: true, wrapDateLine: true }); map.addLayer(osmarender); - var cyclemap = new OpenLayers.Layer.OSM.CycleMap(rails_i18n["javascripts.map.base.cycle_map"], { + var cyclemap = new OpenLayers.Layer.OSM.CycleMap(i18n("javascripts.map.base.cycle_map"), { displayOutsideMaxExtent: true, wrapDateLine: true }); map.addLayer(cyclemap); var nonamekey = nonamekeys[document.domain]; - var noname = new OpenLayers.Layer.OSM(rails_i18n["javascripts.map.base.noname"], [ + var noname = new OpenLayers.Layer.OSM(i18n("javascripts.map.base.noname"), [ "http://a.tile.cloudmade.com/" + nonamekey + "/3/256/${z}/${x}/${y}.png", "http://b.tile.cloudmade.com/" + nonamekey + "/3/256/${z}/${x}/${y}.png", "http://c.tile.cloudmade.com/" + nonamekey + "/3/256/${z}/${x}/${y}.png" @@ -66,7 +66,7 @@ function createMap(divName, options) { }); map.addLayer(noname); - var maplint = new OpenLayers.Layer.OSM.Maplint(rails_i18n["javascripts.map.overlays.maplint"], { + var maplint = new OpenLayers.Layer.OSM.Maplint(i18n("javascripts.map.overlays.maplint"), { displayOutsideMaxExtent: true, wrapDateLine: true }); diff --git a/public/javascripts/site.js b/public/javascripts/site.js index 9dbb2a640..43cca261c 100644 --- a/public/javascripts/site.js +++ b/public/javascripts/site.js @@ -62,7 +62,7 @@ function updatelinks(lon,lat,zoom,layers,minlon,minlat,maxlon,maxlat,objtype,obj node.href = setArgs("/edit", args); node.style.fontStyle = 'normal'; } else { - node.href = 'javascript:alert(rails_i18n["javascripts.site.edit_zoom_alert"]);'; + node.href = 'javascript:alert(i18n("javascripts.site.edit_zoom_alert"));'; node.style.fontStyle = 'italic'; } } @@ -87,7 +87,7 @@ function updatelinks(lon,lat,zoom,layers,minlon,minlat,maxlon,maxlat,objtype,obj node.href = setArgs("/history", args); node.style.fontStyle = 'normal'; } else { - node.href = 'javascript:alert(rails_i18n["javascripts.site.history_zoom_alert"]);'; + node.href = 'javascript:alert(i18n("javascripts.site.history_zoom_alert"));'; node.style.fontStyle = 'italic'; } } @@ -202,6 +202,8 @@ function getStyle(el, property) { * rails and then later by javascript. */ function i18n(string, keys) { + string = i18n_strings[string] || string + for (var key in keys) { var re_key = '\\[\\[' + key + '\\]\\]'; var re = new RegExp(re_key, "g"); -- 2.39.5