我有一个多语言应用程序,每种语言都使用--aot编译,例如德语:
$xmlNode = $xmlDoc.DefaultAssociations.SelectSingleNode("Association[@ProgId='Acrobat.Document.2017']")
$xmlDoc.DefaultAssociations.RemoveChild($xmlNode)
我们需要在运行时获取语言环境的值,以便将其处理到我们的后端。
如果看起来试图从
获得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/
但是LOCAL_ID是空的我认为它只适用于JIT
是否有任何方法可以在运行时获取此参数?
答案 0 :(得分:11)
作为一个新手,我发现西蒙斯的回答有点不完整。原来,您需要同时导入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() {}
答案 1 :(得分:4)
您应该让Angular注入LOCALE_ID
constructor(private modalService: BsModalService,
@Inject( LOCALE_ID ) protected localeId: string) {
console.log("LOCALE_ID", localeId);
}