Динамическая смена языка в яндекс картах

Мне нужно поменять язык в яндекс картах, но я не знаю как это сделать! Язык в яндекс картах можно поменять статично в теге script.

<script src="http://api-maps.yandex.ru/2.1/?lang=ru_RU&load=package.full"></script>

Но мне нужно изменить язык в запущенном приложении.

Например, на картах Google есть загрузчик:

HTML-код

<script type="text/javascript" src="https://www.google.com/jsapi"></script>

Код JavaScript

google.load('maps', '3.7', {
    'other_params' : 'sensor=true&language=' + langCode,
    'callback' : deviceReadyFunc
});

В яндекс картах не нашел.


person Yuri Haichuk    schedule 30.03.2015    source источник


Ответы (1)


Решите эту проблему с помощью localStorage и динамического добавления script-tag.

Код JavaScript

var script=document.createElement('script');
if (GLOBAL_LANGUAGE === 'en') {
    script.src = 'http://api-maps.yandex.ru/2.1/?lang=en-US&load=package.full';
} else {
    script.src = 'http://api-maps.yandex.ru/2.1/?lang=ru-RU&load=package.full';
}
document.getElementsByTagName('body')[0].appendChild(script);
script.onload = function() {
    ymaps.ready(init);
};

В работающем приложении после изменения переменной localStorage GLOBAL_LANGUAGE я вызываю метод reloadApp():

reloadApp: function() {
    location.href = '#home';
    location.reload();
}

После этого действия яндекс карты меняют язык в запущенном приложении.

person Yuri Haichuk    schedule 31.03.2015