Google Map Api. Динамичное изменение языка карты. Vue JS. Nuxt
Использую плагин. На сайте присутствует выпадающий список из языков. При выборе языка необходимо менять язык карты. В самом компоненте GMap я передаю язык таким образом :language="$i18n.locale". При перезагрузке стр язык верный. Но при переключении это не подтягивается в head https://maps.googleapis.com/maps/api/js?key={key}&libraries=places&language=en.
Клочь указываю в nuxt.config.js
modules: {
'nuxt-gmaps', configGmap
}
configGmap содержит:
key: key, // Billing Account
libraries: ['places']
Подскажите пожалуйста как можно реализовать при переключении смену языка у карты?
Ответы (1 шт):
Автор решения: EkaterinaRatatui
→ Ссылка
таким образом сделала
watch: {
'$i18n.locale': {
immediate: true,
handler (newLocale) {
this.updateMapLanguage(newLocale)
}
}}
methods: {
updateMapLanguage (newLocale) {
const scriptElement = document.getElementById('google-maps-script')
const scriptSrc = scriptElement.getAttribute('src')
const newScriptSrc = scriptSrc.replace(/language=[a-z]{2}/i, `language=${newLocale}`)
// Удаляем старый скрипт
scriptElement.remove()
// Создаем новый скрипт с обновленным языком
const newScriptElement = document.createElement('script')
newScriptElement.setAttribute('id', 'google-maps-script')
newScriptElement.setAttribute('src', newScriptSrc)
// Добавляем новый скрипт в head
document.head.appendChild(newScriptElement)
}}