NGX翻译角7如何翻译动态数据来自不同的API

问题描述 投票:0回答:2

我面临着NGX-翻译的问题!这是我有2个sperate API与不同的语言,因此例如与此类似http://example.com/apihttp://example.com/fr/api/

现在NGX-翻译我必须使用en/fr.json文件翻译我的角应用!因为我从文档看到了!

但现在我需要使用来自这两个API的数据是!它已经被翻译在服务器上!

http://example.com/api

http://example.com/fr/api/

所以我的问题在这里,我该怎么办?以及继续使用json files在我的应用程序一样the application menu有一些静态的话

如果有其他替代产品,请不要犹豫,告诉!

angular ionic-framework ngx-translate
2个回答
1
投票

假设:

  • 只有2个可能的选项郎:["en","fr"]
  • 翻译文件不是从局部的API获取。相反,它们驻留在project's资产的文件夹。
  • 在语言的变化通过NGX-翻译,就没有必要重新获取数据

您可以创建构建正确的API端点如下服务:

@Injectable()
export class EnpointLocalizer {
  private readonly tokenMap = {'en': '/', '/fr/'}
  constructor(private readonly translate: TranslateService){}

  localizeJoin(sections: string[]){
   const {currentLang} = this.translate;
   return sections.join(this.tokenMap[currentLang] || '/'); 
  }
}

如下,其中要求,那么你可以把它注射和使用它:

@Injectable()
export class FooService {
 private endpoint = ["http://example.com","api"];

 constructor(private http: HttpClient, private localizer: EnpointLocalizer){}

 fetch(){
   return this.http.get(this.localizer.localizeJoin(this.endpoint),...);
 }
}

当然,也有,你可以实现一个“本地化”的逻辑(例如,正则表达式拍打+替换)不同的方式。但是,对于您的使用情况下,我认为这是一个简单而明确的开始。


0
投票

使用只有那些言词管(some statics words in my app like the application menu)

喜欢

{{ 'HOME.NAME' |翻译}}

和删除翻译从API数据过滤器

© www.soinside.com 2019 - 2024. All rights reserved.