[英]Angular 2 i18n: Dynamic feedback
我有一个Angular 2应用程序,当前使用ng2-translate管理GUI的多种语言。 它正在与使用HTTP状态代码和自定义API代码的组合来响应请求的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内容,而没有设置显示内容。
B)或者,您可以为所有可能的错误在DOM上添加一个切换用例,并使用* ngIf进行相应显示。
C)A和B的组合,您可以将其创建为单独的组件+服务。 您可以在需要动态错误消息的任何地方使用它-这样,您的已编译视图将不会始终包含不必要的转换。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.