You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular 14中ngx-translate嵌套翻译失效问题咨询

解决ngx-translate嵌套翻译键不生效的问题

针对你遇到的嵌套翻译键只显示键名而非翻译值的问题,可按以下步骤排查配置:

  • 确认TranslateModule的Loader配置正确
    确保使用TranslateHttpLoader正确加载JSON文件,且配置符合AOT编译要求。在app.module.ts中配置示例:

    import { HttpClientModule, HttpClient } from '@angular/common/http';
    import { TranslateModule, TranslateLoader } from '@ngx-translate/core';
    import { TranslateHttpLoader } from '@ngx-translate/http-loader';
    
    export function HttpLoaderFactory(http: HttpClient) {
      return new TranslateHttpLoader(http, './assets/i18n/', '.json');
    }
    
    @NgModule({
      imports: [
        HttpClientModule,
        TranslateModule.forRoot({
          loader: {
            provide: TranslateLoader,
            useFactory: HttpLoaderFactory,
            deps: [HttpClient]
          }
        })
      ]
    })
    export class AppModule { }
    
  • 检查翻译JSON文件的语法正确性
    确保嵌套结构的JSON没有语法错误,比如遗漏逗号、引号不匹配、多余的逗号等。示例正确结构:

    {
      "license_page": {
        "title": "License activation",
        "desc": "Please enter your license key"
      },
      "top_key": "Top level text"
    }
    
  • 确认TranslateService初始化正常
    在根组件(如app.component.ts)中设置默认语言和当前使用语言,确保翻译服务正确初始化:

    import { TranslateService } from '@ngx-translate/core';
    
    constructor(private translate: TranslateService) {
      translate.setDefaultLang('en');
      translate.use('en');
    }
    
  • 匹配ngx-translate与Angular版本
    Angular 14需对应兼容的ngx-translate版本:@ngx-translate/core@14.x、@ngx-translate/http-loader@7.x,版本不兼容可能导致嵌套键解析失败。

  • 自定义Loader需返回嵌套对象
    若使用自定义Loader而非TranslateHttpLoader,需确保Loader返回的是解析后的嵌套JavaScript对象,而非未解析的JSON字符串。

内容的提问来源于stack exchange,提问作者Master_T

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 19:42:45