【问题标题】:Angular 2 i18n: Dynamic feedbackAngular 2 i18n:动态反馈
【发布时间】:2017-04-24 22:32:32
【问题描述】:

我有一个 Angular 2 应用程序,它当前使用 ng2-translate 来管理 GUI 的多种语言。它与使用 HTTP 状态代码和自定义 API 代码组合响应请求的 API 进行通信。

例如,我可以通过 HTTP 调用将其取回:

{
    success = true,
    code = 'A00001'
}

我有一个解释“A00001”含义的文档,所以我知道要加载什么翻译。

现在,我想改用 Angular 自己的 i18n 解决方案。主要是因为我想尽可能少地使用第三方库,但最重要的是因为它在为翻译提供上下文方面提供了更好的支持。

查看文档for i18n on angular.io,它看起来非常简单,但唯一让我退缩的是我将如何处理来自 API 的响应。

由于所有字符串在编译期间都被替换/翻译,我如何检索翻译后的字符串并仅在我从 API 中检测到特定代码时显示它?

这基本上就是我现在所做的:

switch(response.code) {
    case 'A00001':
        feedback = this._translateService.instant('translationKey');
    break;
}

然后我在 GUI 中为用户呈现反馈。

如何使用 Angulars i18n 解决方案来解决这个问题?

【问题讨论】:

    标签: angular internationalization


    【解决方案1】:

    我一直在尝试自己解决这个问题。

    A) 一位同事所做的只是翻译 DOM 上的所有字符串并让服务获取这些元素的 html 内容,当然设置不显示。

    B) 作为替代方案,您可以在 DOM 上为所有可能的错误设置一个 switch case,并使用 *ngIf 相应地显示。

    C) A 和 B 的组合,您可以将其创建为单独的组件 + 服务。您可以在需要动态错误消息的任何地方使用它 - 这样您的编译视图将不会总是包含不必要的翻译。

    【讨论】:

      猜你喜欢
      • 2017-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-05
      • 2013-09-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多