Angular-translate - 翻译要在另一个翻译中使用的变量

时间:2018-03-07 20:01:08

标签: angular-translate

来自https://angular-translate.github.io/docs/#/guide/06_variable-replacement

假设:

{
  "MESSAGE": "{{value}} is something.",
  "ANOTHER_KEY": "Anything"
}

我该怎么做:

$translate('MESSAGE', { value: 'ANOTHER_KEY' });

所以" ANOTHER_KEY"得到翻译,我最终得到了#34;任何东西都是"?

我试图在我的控制器中执行此操作,但它看起来并不正确。

   $translate('ANOTHER_KEY').then(function(translation) {
        $translate('MESSAGE', {value: translation}).then(function(final_translation) {
            $scope.final_translation = final_translation;
        }
    }, ...

这似乎太复杂了,在尝试处理语言变化时会变得更糟。

这是唯一的方法吗?

修改: 最终结果将用作输入的属性,因此我不相信我可以使用指令方法。

<input type="text" special-attribute="TRANSLATION RESULT HERE">

1 个答案:

答案 0 :(得分:1)

从代码本身来看,它看起来还不错。您是否忘记将$ translate服务注入您的控制器?

以下是您案例的工作示例。

angular.module('ngView').controller('TranslateCtrl',function($translate, $scope) {
  $translate('ANOTHER_KEY').then(function (translation) {
      return  $translate('MESSAGE', {value: translation});
    }).then(function(translation) {
      $scope.finalTranslation = translation;
    });
});

http://plnkr.co/edit/eFw1dVnfliAVleuwQOgX?p=preview