为 AOT 编译的 Angular 应用获取运行时 --locale 的值
Get the value of --locale on runtime for an AOT compiled Angular App
我有一个多语言应用程序,它在每种语言中都使用 --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/
我们需要在运行时获取语言环境的值,以便将其也处理到我们的后端。
如果看过
import { LOCALE_ID } from '@angular/core';
constructor(private modalService: BsModalService) {
console.log("LOCALE_ID", LOCALE_ID);
}
但是 LOCAL_ID 是空的我认为它只用于 JIT
有什么方法可以在运行时获取这个参数吗?
你应该 Angular 注入 LOCALE_ID
constructor(private modalService: BsModalService,
@Inject( LOCALE_ID ) protected localeId: string) {
console.log("LOCALE_ID", localeId);
}
作为新手,我发现 Simons 的回答有点不完整。事实证明,您需要同时导入 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() {}
我有一个多语言应用程序,它在每种语言中都使用 --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/
我们需要在运行时获取语言环境的值,以便将其也处理到我们的后端。
如果看过
import { LOCALE_ID } from '@angular/core';
constructor(private modalService: BsModalService) {
console.log("LOCALE_ID", LOCALE_ID);
}
但是 LOCAL_ID 是空的我认为它只用于 JIT
有什么方法可以在运行时获取这个参数吗?
你应该 Angular 注入 LOCALE_ID
constructor(private modalService: BsModalService,
@Inject( LOCALE_ID ) protected localeId: string) {
console.log("LOCALE_ID", localeId);
}
作为新手,我发现 Simons 的回答有点不完整。事实证明,您需要同时导入 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() {}