当语言发生变化时,是否有可能动态地改变地图语言?或者至少在我下次访问它时(在语言被更改之后)更改语言映射。
我可以使用以下代码在地图加载时设置默认语言(在mymap.module.ts中):
@NgModule({ imports: [
AgmCoreModule.forRoot({ apiKey: 'MY_KEY',
language: 'es', }),
]
})
我可以使用this.translate.currentLang (在mymap.component.ts中)获得当前的语言。
但我不知道怎么把两者结合起来。
发布于 2018-03-24 14:06:29
为了改变map的语言,需要重新获取一堆本地化的JS脚本。因此,您可以尝试刷新整个页面(JS不是角),通过本地存储提供想要的语言,例如:
@NgModule({
imports: [
AgmCoreModule.forRoot({
apiKey: 'MY_KEY',
language: localStorage && localStorage.gml || 'en'
}),
]
})
若要重新加载页面,请使用window.location.reload()
方法
StackBLITZ:https://stackblitz.com/edit/angular-google-maps-demo-f3xzhn?file=app%2Fapp.module.ts
发布于 2020-04-21 23:47:16
在app.component中添加以下内容,确保在语言更改时更新本地存储中的"lang“,并使用window.location.reload()重新加载页面
export class AppComponent implements OnInit {
constructor() { }
ngOnInit() {
var script = document.createElement('script');
script.src = `https://maps.googleapis.com/maps/api/js?v=quarterly&key=${KEY}&libraries=places&language=${localStorage && localStorage.lang || 'en'}`;
document.head.appendChild(script);
}
}
在您的相关模块中添加:
@NgModule({
imports: [
AgmCoreModule.forRoot(),
]
})
发布于 2021-03-24 01:40:28
我知道这个问题在很久以前就已经提出了,但是我会发送一个链接给任何对这个解决方案感兴趣的人。它有点复杂,但是它可以很好地应用于AOT AgmCoreModule -从角服务动态加载Google密钥
https://stackoverflow.com/questions/49463248
复制相似问题