Angular国际化怎么动态切换语言?
我用 Angular 的 i18n 做了多语言,但只能在构建时指定 locale,用户运行时想切换语言根本做不到。官方文档好像说要用运行时编译,但又不推荐……有没有实际能用的方案?
我试过用 importLocaleData 加载不同语言包,也调了 registerLocaleData,但页面上的文本还是不会变。比如这个:
import { registerLocaleData } from '@angular/common';
import localeZh from '@angular/common/locales/zh';
import localeEn from '@angular/common/locales/en';
// 切换时调用
registerLocaleData(localeZh);
结果日期格式变了,但模板里写死的 i18n 标签内容完全不动。是不是必须用第三方库比如 ngx-translate 才行?
然后在组件里调
this.translate.use('en')就行了。省心又实用。