widget map direction translate - multilanguage sites - tip
Hi,
I have try this solution (maybe not corectly, but function
(look at this and change language: www.optiger.rubstudio.cz
- Navigate to: media/widgetkit/widgets/map/js/map.js
Set to:
Find in the code: maps.google.com/maps/api/js?sensor=false
Add thereto: &language=xx (where xx is your language) - (for me first - english - en)
So it will read: maps.google.com/maps/api/js?sensor=false&language=en
Duplicate this file (map.js), change name to map_xx.js (where xx is your language) (for me second - deutsch - de)
So it will read: media/widgetkit/widgets/map/js/map_de.js
Find in the code in this new file: maps.google.com/maps/api/js?sensor=false&language=en
Add change to: &language=de - (for me second - deutsch - de)
So it will read: maps.google.com/maps/api/js?sensor=false&language=de
Save this file as map_de.js
If You need another language - repeat again (new file and change code with another xx
Navigate to: media/widgetkit/widgets/map/js/lazyloader.js
Set to:
Find in the code: WIDGETKIT_URL+"/widgets/map/js/map.js"
Change to: WIDGETKIT_URL+"/widgets/map/js/map_xx.js" (where xx is your language) - (for me - deutsch - de)
Save this file as lazyloader_de.js
If You need another language - repeat again (new file and change code with another xx ![]()
- Navigate to: media/widgetkit/widgets/map/map.php
Set to:
Find in the code (about line 85):
// add translations
foreach (array('FROM_ADDRESS', 'GET_DIRECTIONS', 'FILL_IN_ADDRESS', 'ADDRESS_NOT_FOUND', 'LOCATION_NOT_FOUND') as $key) {
$translations[$key] = $this['system']->__($key);
}
// add javascripts
$this['asset']->addFile('js', 'map:js/lazyloader.js');
And change to:
// add translations
foreach (array('FROM_ADDRESS', 'GET_DIRECTIONS', 'FILL_IN_ADDRESS', 'ADDRESS_NOT_FOUND', 'LOCATION_NOT_FOUND') as $key) {
$translations[$key] = $this['system']->__($key);
}
$lang =& JFactory::getLanguage();
$language = $lang->getTag();
switch ($language) {
case "cs-CZ" :
$this['asset']->addFile('js', 'map:js/lazyloader_cs.js');
break;
case "de-DE" :
$this['asset']->addFile('js', 'map:js/lazyloader_de.js');
break;
case "en-GB" :
$this['asset']->addFile('js', 'map:js/lazyloader_en.js');
break;
default :
$this['asset']->addFile('js', 'map:js/lazyloader.js');
break;
}
// add javascripts
// $this['asset']->addFile('js', 'map:js/lazyloader.js');
That is all ![]()
Rudolf
P.S.
Folder structure:
media/widgetkit/widgets/map/js/dashboard.js
media/widgetkit/widgets/map/js/edit.js
media/widgetkit/widgets/map/js/lazyloader_cs.js - new for cs language
media/widgetkit/widgets/map/js/lazyloader_de.js - new for de language
media/widgetkit/widgets/map/js/lazyloader.js - old for en language
media/widgetkit/widgets/map/js/map_cs.js - new for cs language
media/widgetkit/widgets/map/js/map_de.js - new for de language
media/widgetkit/widgets/map/js/map.js - old for en language
media/widgetkit/widgets/map/layouts
media/widgetkit/widgets/map/map.php - changed code files
media/widgetkit/widgets/map/map.xml
media/widgetkit/widgets/map/styles
media/widgetkit/widgets/map/js/lazyloader.js:
(function(){$widgetkit.lazyloaders.googlemaps=function(a,b){$widgetkit.load(WIDGETKIT_URL+"/widgets/map/js/map.js").done(function(){a.googlemaps(b)})}})(jQuery);
media/widgetkit/widgets/map/js/lazyloader_cs.js:
(function(){$widgetkit.lazyloaders.googlemaps=function(a,b){$widgetkit.load(WIDGETKIT_URL+"/widgets/map/js/map_cs.js").done(function(){a.googlemaps(b)})}})(jQuery);
media/widgetkit/widgets/map/js/lazyloader_de.js:
(function(){$widgetkit.lazyloaders.googlemaps=function(a,b){$widgetkit.load(WIDGETKIT_URL+"/widgets/map/js/map_de.js").done(function(){a.googlemaps(b)})}})(jQuery);
media/widgetkit/widgets/map/js/map_cs.js:
b.type="text/javascript";b.async=1;b.src=location.protocol+"//maps.google.com/maps/api/js?sensor=false&language=cs&callback=jQuery.fn.googlemaps.ready";
media/widgetkit/widgets/map/js/map_de.js:
b.type="text/javascript";b.async=1;b.src=location.protocol+"//maps.google.com/maps/api/js?sensor=false&language=de&callback=jQuery.fn.googlemaps.ready";
media/widgetkit/widgets/map/js/map.js:
b.type="text/javascript";b.async=1;b.src=location.protocol+"//maps.google.com/maps/api/js?sensor=false&language=en&callback=jQuery.fn.googlemaps.ready";
media/widgetkit/widgets/map/map.php:
// add translations
foreach (array('FROM_ADDRESS', 'GET_DIRECTIONS', 'FILL_IN_ADDRESS', 'ADDRESS_NOT_FOUND', 'LOCATION_NOT_FOUND') as $key) {
$translations[$key] = $this['system']->__($key);
}
// add javascripts
$lang =& JFactory::getLanguage();
$language = $lang->getTag();
switch ($language) {
case "cs-CZ" :
$this['asset']->addFile('js', 'map:js/lazyloader_cs.js');
break;
case "de-DE" :
$this['asset']->addFile('js', 'map:js/lazyloader_de.js');
break;
case "en-GB" :
$this['asset']->addFile('js', 'map:js/lazyloader.js');
break;
default :
$this['asset']->addFile('js', 'map:js/lazyloader.js');
break;
}
// $this['asset']->addFile('js', 'map:js/lazyloader.js');
$this['asset']->addString('js', sprintf('$widgetkit.trans.addDic(%s);', json_encode($translations)));
