我有一个Angular 2应用程序,该应用当前使用NG2-Translate来管理GUI的多种语言。它正在与API进行通信,该API使用HTTP状态代码和自定义API代码的组合响应请求。
所以我可以在http呼叫的情况下重新获取此内容:
{
success = true,
code = 'A00001'
}
我有一个文档可以解释" A00001"的含义,因此我知道要加载的翻译。
现在,我想进行切换以使用Angular自己的I18N解决方案。主要是因为我想使用尽可能少的第三方库,但最重要的是,它为提供翻译的上下文提供了更好的支持。
查看Angular.io上I18N的文档,看起来很简单,但是唯一使我退缩的是我将如何处理API的响应。
由于在编译过程中替换/翻译所有字符串,我才能在API中检测到特定代码?
这基本上是我现在要做的:
switch(response.code) {
case 'A00001':
feedback = this._translateService.instant('translationKey');
break;
}
然后,我向GUI中的用户提供了反馈。
如何使用Angulars I18N解决方案解决此问题?
我一直在尝试自己弄清楚。
a)同事所做的只是翻译DOM上的所有字符串并获得服务获取这些元素的HTML内容,设置无需ofcourse。
b)作为替代方案,您可以在DOM上有一个开关案例,以解决所有可能的错误,并使用 *ngif。
相应地显示c)A和B的组合,您可以将其作为单独的组件 服务创建。您可以在需要动态错误消息传递的任何地方使用 - 这样您的编译视图将不一定包含不必要的翻译。