improved language support: geocoding uses language settings, geocoding

results & locations are also translated if possible
This commit is contained in:
DennisSchiefer 2012-04-10 21:47:30 +02:00
parent 893c09f6fc
commit ea207cef6e
4 changed files with 23 additions and 11 deletions

View File

@ -30,6 +30,10 @@ init: function() {
OSRM.GUI.visible = true;
OSRM.GUI.width = document.getElementById("main-wrapper").clientWidth;
// init starting source/target
document.getElementById('gui-input-source').value = OSRM.DEFAULTS.ONLOAD_SOURCE;
document.getElementById('gui-input-target').value = OSRM.DEFAULTS.ONLOAD_TARGET;
// init events
// [TODO: switch to new event model]
document.getElementById("gui-toggle-in").onclick = OSRM.GUI.toggleMain;
@ -77,9 +81,6 @@ setLanguage: function() {
document.getElementById("gui-input-source").title = OSRM.loc("GUI_START_TOOLTIP");
document.getElementById("gui-input-target").title = OSRM.loc("GUI_END_TOOLTIP");
document.getElementById("legal-notice").innerHTML = OSRM.loc("GUI_LEGAL_NOTICE");
document.getElementById('gui-input-source').value = OSRM.DEFAULTS.ONLOAD_SOURCE;
document.getElementById('gui-input-target').value = OSRM.DEFAULTS.ONLOAD_TARGET;
},
// show/hide main-gui

View File

@ -43,7 +43,7 @@ call: function(marker_id, query) {
}
//build request for geocoder
var call = OSRM.DEFAULTS.HOST_GEOCODER_URL + "?format=json" + OSRM.DEFAULTS.GEOCODER_BOUNDS + "&q=" + query;
var call = OSRM.DEFAULTS.HOST_GEOCODER_URL + "?format=json" + OSRM.DEFAULTS.GEOCODER_BOUNDS + "&accept-language="+OSRM.DEFAULTS.LANGUAGE+"&q=" + query;
OSRM.JSONP.call( call, OSRM.Geocoder._showResults, OSRM.Geocoder._showResults_Timeout, OSRM.DEFAULTS.JSONP_TIMEOUT, "geocoder_"+marker_id, {marker_id:marker_id,query:query} );
},
@ -154,7 +154,7 @@ updateAddress: function(marker_id, do_fallback_to_lat_lng) {
} else
return;
var call = OSRM.DEFAULTS.HOST_REVERSE_GEOCODER_URL + "?format=json" + "&lat=" + lat + "&lon=" + lng;
var call = OSRM.DEFAULTS.HOST_REVERSE_GEOCODER_URL + "?format=json" + "&accept-language="+OSRM.DEFAULTS.LANGUAGE + "&lat=" + lat + "&lon=" + lng;
OSRM.JSONP.call( call, OSRM.Geocoder._showReverseResults, OSRM.Geocoder._showReverseResults_Timeout, OSRM.DEFAULTS.JSONP_TIMEOUT, "reverse_geocoder_"+marker_id, {marker_id:marker_id, do_fallback: do_fallback_to_lat_lng} );
},

View File

@ -21,7 +21,9 @@ or see http://www.gnu.org/licenses/agpl.txt.
OSRM.Localization = {
supported_languages: ["en", "de"],
supported_languages: [ {display_name:"en", encoding:"en"},
{display_name:"de", encoding:"de"}
],
// initialize localization
init: function() {
@ -33,8 +35,8 @@ init: function() {
// fill dropdown menu
for(var i=0, size=OSRM.Localization.supported_languages.length; i<size; i++) {
var option=document.createElement("option");
option.innerHTML = OSRM.Localization.supported_languages[i];
option.value = OSRM.Localization.supported_languages[i];
option.innerHTML = OSRM.Localization.supported_languages[i].display_name;
option.value = OSRM.Localization.supported_languages[i].encoding;
select.appendChild(option);
}
@ -51,8 +53,17 @@ change: function(language) {
OSRM.DEFAULTS.LANGUAGE = language;
if( OSRM.Localization[language]) {
OSRM.GUI.setLanguage();
if( document.getElementById('information-box').innerHTML != "" )
OSRM.RoutingDescription.show( OSRM.G.response );
if( OSRM.G.markers.route.length > 1)
OSRM.Routing.getRoute();
else if(OSRM.G.markers.route.length > 0 && document.getElementById('information-box').innerHTML != "" ) {
OSRM.Geocoder.call( OSRM.C.SOURCE_LABEL, document.getElementById("gui-input-source").value );
OSRM.Geocoder.call( OSRM.C.TARGET_LABEL, document.getElementById("gui-input-target").value );
} else {
OSRM.Geocoder.updateAddress(OSRM.C.SOURCE_LABEL, false);
OSRM.Geocoder.updateAddress(OSRM.C.TARGET_LABEL, false);
document.getElementById('information-box').innerHTML = "";
document.getElementById('information-box-header').innerHTML = "";
}
} else {
var script = document.createElement('script');
script.type = 'text/javascript';

View File

@ -71,7 +71,7 @@ or see http://www.gnu.org/licenses/agpl.txt.
<!-- body -->
<body class="base-font">
<body class="base-font not-selectable">
<!--map-->
<div id="map"></div>