angular - 在运行时为 AOT 编译的 Angular 应用程序获取 --locale 的值
问题描述
我有一个多语言应用程序,它用每种语言的 --aot 编译,例如德语:
ng build --aot --env=prod --prod --build-optimizer --i18nFile=src/locale/DARI_messages_de_DE.xlf --i18nFormat=xlf --locale=de --missingTranslation warning --output-path dist/de --base-href /de/
我们需要在运行时获取 locale 的值,以便将其也处理到我们的后端。
如果看起来试图从
import { LOCALE_ID } from '@angular/core';
constructor(private modalService: BsModalService) {
console.log("LOCALE_ID", LOCALE_ID);
}
但是 LOCAL_ID 是空的,我认为它仅用于 JIT
有什么方法可以在运行时获取此参数吗?
解决方案
作为一个新手,我发现西蒙斯的回答有点不完整。事实证明,您需要同时导入 LOCALE_ID 和 Inject:
import { Component, OnInit, LOCALE_ID, Inject } from '@angular/core';
@Component({
selector: '...',
templateUrl: '...',
styleUrls: ['...']
})
export class ShinyComponent implements OnInit {
constructor(@Inject(LOCALE_ID) protected localeId: string) { }
public someFunction {} {
console.log("Current locale is "+this.localeId);
}
}
ngOnInit() {}
推荐阅读
- arrays - 如何使用某些条件和分隔符拆分字符串
- kubernetes - 如何根据外部指标“或”匹配 HorizontalPodAutoscaler 中的 metricSelector
- javascript - useCallback 与简单函数
- regex - 在标题中提取回复
- javascript - 在事件处理程序中进行 setState 调用后,React 何时重新渲染
- scala - 如何将 Java api KStream 转换为 Scala api KStream?
- c++ - OpenGL - 纹理四边形裁剪和奇怪的拉伸
- powershell - WSL 输出到 Powershell 变量
- iphone - Xcode 10.3 无法在 iOS 13 iPhone 6s 上运行 - 此 iPhone 6s 运行的是 iOS 13.1,此版本的 Xcode 版本 10.3 可能不支持
- c++ - 指向相邻内存的指针的缓存性能