【问题标题】:ngx-translate load translations from multiple sourcesngx-translate 从多个来源加载翻译
【发布时间】:2020-07-15 17:00:52
【问题描述】:

我的应用程序有作为库加载的模块,我们正在使用 ngx-translate,我想要的是一个模块,翻译从 API 加载,语言环境作为参数发送。其他模块翻译的其余部分来自 /assets 文件夹。

我看到默认路径可以被

覆盖
export function HttpLoaderFactory(http: HttpClient) {
    return new TranslateHttpLoader(http, "/public/lang-files/", "-lang.json");
} 

但这需要翻译文件名 en-us.json、fr-ca.json 格式,但我想要的是 lang.json,无论语言区域设置如何,都将作为参数发送给请求。有没有办法加载这个

【问题讨论】:

  • 你试过实现your ownTranslationLoader吗?
  • 好吧,如果这是我唯一的选择,我正在寻找是否有任何现有的选择。

标签: angular angular-cli ngx-translate


【解决方案1】:

我想出了办法

加载器

export class dyamicTranslateLoader implements TranslateLoader {
  constructor(private http: HttpClient, private prefix: string = 'en') {}
  public getTranslation(lang: string): any {
    return this.http.get('/assets/data/' + lang + '.json');
  }
}

export function dynamicTransLoaderFactory(http: HttpClient) {
  return new dyamicTranslateLoader(http, 'en-us');
}

TranslateModule.forRoot({
      loader: {
        provide: TranslateLoader,
        useFactory: dynamicTransLoaderFactory,
        deps: [HttpClient]
      }
    })

以及每当您想更改语言时

this.translateSvc.use('fr-ca'); 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-15
    • 1970-01-01
    • 2021-04-22
    • 1970-01-01
    • 1970-01-01
    • 2023-02-04
    • 1970-01-01
    • 2018-05-05
    相关资源
    最近更新 更多