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.
This commit is contained in:
parent
596ab82461
commit
f4dba81b64
3 changed files with 11 additions and 9 deletions
|
@ -15,7 +15,7 @@ module ApplicationHelper
|
|||
js = ""
|
||||
|
||||
js << "<script type='text/javascript'>\n"
|
||||
js << "rails_i18n = new Array();\n"
|
||||
js << "i18n_strings = new Array();\n"
|
||||
js << javascript_strings_for_key("javascripts")
|
||||
js << "</script>\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}")
|
||||
|
|
|
@ -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
|
||||
});
|
||||
|
|
|
@ -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");
|
||||
|
|
Loading…
Add table
Reference in a new issue