Angular 2中ngx-translate语言名称翻译方法咨询
解决ngx-translate中语言名称的翻译问题
我来帮你搞定这个问题!你遇到的{{lang | translate}}无效的情况,本质是因为ngx-translate的翻译管道需要在你的语言配置文件里,存在对应语言代码的本地化名称键值对。具体解决步骤如下:
第一步:更新语言翻译文件
你需要在每个语言的JSON翻译文件中,添加语言代码对应的本地化名称。比如:- 在
en.json(英文翻译文件)中补充:{ // 保留你原本的其他翻译内容... "en": "English", "fa": "Persian" } - 在
fa.json(波斯语翻译文件)中补充:{ // 保留你原本的其他翻译内容... "en": "انگلیسی", "fa": "فارسی" }
这样做的目的是,让不同语言环境下,每个语言代码都能映射到对应的本地化名称。
- 在
第二步:修改模板代码
现在你可以直接把模板里的{{lang}}替换成{{lang | translate}},修改后的完整代码如下:<md-select [(ngModel)]="currentLang" #langSelect="ngModel" (ngModelChange)="translate.use(currentLang);rtl(currentLang)"> <md-option *ngFor="let lang of translate.getLangs()" [value]="lang" class="data_font"> <span class="data_font">{{lang | translate}}</span> </md-option> </md-select>额外小提示
如果还是不生效,可以检查这两点:- 确认
app.module.ts里的TranslateModule.forRoot()配置已经正确加载了你的语言文件路径; - 确保组件初始化时,
translate.use(currentLang)已经被调用,或者通过translate.onLangChange事件监听语言切换,保证翻译内容能实时更新。
- 确认
内容的提问来源于stack exchange,提问作者fariba.j
相关产品推荐
相关产品推荐

