首页 > 解决方案 > Angular i18n 拆分翻译文件

问题描述

我开始使用 i18n 方法翻译我的 Angular 应用程序,
因为翻译文件真的很长,而且不可读,我将来可能需要返回并更新它,我想拆分它,例如:

assets/
└── i18n/
   ├── users/
   │   ├── en.json
   │   └── fr.json
   └── products/
       ├── en.json
       └── fr.json 

拆分不是每个组件,而是每个应用程序的上下文。
我怎样才能实现这种分裂?

标签: xmlangularinternationalization

解决方案


在您的情况下,我假设它是模块,您所要做的就是创建与模块(上下文)一样多的文件夹,在巫婆中,您将存储语言 files.json,然后调整您的 app.modules如下:

TranslateModule.forChild({
              loader: {
                provide: TranslateLoader,
                useFactory: (createTranslateLoader),
                deps: [HttpClient]
            },
            isolate: true
        }),

ps:“隔离”对于能够重新实例化您的翻译模块很重要。

使用“createTranslateLoader”从正确的文件夹加载翻译文件的功能如下(例如用户):

export function createTranslateLoader(http: HttpClient) {
  return new TranslateHttpLoader(http, './assets/i18n/users/', '.json');
}

你去吧:)


推荐阅读