繁体   English   中英

Angular 2 i18n:动态反馈

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM