Локализация для автозаполнения Google API - PullRequest
0 голосов
/ 29 июня 2018

У меня есть следующий JavaScript для автозаполнения:

     function initialize(test) {

     var input = document.getElementById('searchTextField');
     var options = {
         types: ['(cities)'],
         componentRestrictions: { country: test },
     };

     var autocomplete = new google.maps.places.Autocomplete(input, options);

Это хорошо работает, возвращая список городов с ограниченной страной, отправленной в качестве параметра. Теперь я хочу, чтобы автозаполнение было на языке, который будет отправлен в функцию инициализации в качестве параметра.

Есть идеи, как это сделать?

1 Ответ

0 голосов
/ 29 июня 2018

AFAIK, единственный способ установить локализацию - передать параметр строки языкового запроса при загрузке API:

<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&language=ar&region=EG"></script>

https://developers.google.com/maps/documentation/javascript/localization

Я не думаю, что есть способ изменить язык после загрузки скрипта. Вы можете поэкспериментировать с перезагрузкой скрипта несколько раз, но это звучит грязно.

Если метод инициализации запускается только один раз, тогда, конечно, вы можете загрузить API там, выполнив что-то вроде этого:

function initialize(test, language) {
  var tag = document.createElement('script');
  tag.src = 'https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&language=' + language;

  tag.onload = function() {
    var input = document.getElementById('searchTextField');
    var options = {
      types: ['(cities)'],
      componentRestrictions: { country: test },
    };
    var autocomplete = new google.maps.places.Autocomplete(input, options);
  };

  document.getElementsByTagName('head')[0].appendChild(tag);
}
...