#nuxt.js
Вопрос:
Проект, над которым я работаю, требует переключения языков, поэтому я использую для этого i18n to. И я использую API карт Google, но есть одна проблема.
Каждый раз, когда пользователь переключает язык, API google maps также должен менять язык. Вот как я это делаю:
Я использую вычисляемое свойство (this.locale), которое содержит текущий язык, выбранный пользователем.
Если выбран английский язык , то this.locale
это en
так, а если язык португальский, this.locale
то pt
Каждый раз, когда меняется язык, скрипт Google загружается на другом языке.
Но есть одна проблема: скрипт загружается более одного раза, из-за чего скрипт выдает ошибку (вы несколько раз включали API JavaScript Google Maps на этой странице. Это может привести к неожиданным ошибкам.) и перестает работать.
При первой загрузке пользователем веб-сайта ошибки не возникает, и ошибку можно исправить, перезагрузив сайт после того, как пользователь выберет другой язык, но это было бы неприемлемо.
Поэтому я думаю о том, чтобы удалить тег скрипта перед загрузкой его на другом языке.
Кто-нибудь может сказать мне, как удалить скрипт в nuxt?
Мой текущий код:
head() {
return {
script: [
{
hid: 'maps-googleapis',
defer: true,
src:
`https://maps.googleapis.com/maps/api/js?key=MY_KEYamp;libraries=placesamp;language=`
this.localeCode,
},
],
}
},
Комментарии:
1. Вероятно, есть способ сказать эскрипту гула, что вы меняете его язык, так как здесь похоже, что он не осознает этого изменения.
2. Я ничего не нашел в документах. это.автозаполнение = новые google.карты.места. Автозаполнение( это.$ссылки.mapsInput), вот как я называю google maps api, но теперь он позволяет передавать ему языковой параметр (это было бы здорово), все, что я смог найти, это то, что URL-адрес должен управлять языком. Я предполагаю, что загрузка всех доступных языков, которые у них есть, не будет приветствоваться разработчиками