I18n in angularjs

时间:2015-07-20 07:03:17

标签: angularjs internationalization angular-translate

I18n key:

"step1.download":"{{n0}} Download {{n1}} Some text."

在我的HTML中:

<span translate=step1.download translate-values="{ n0: '{{info0}}', n1: '{{info1}}'}"></span>

在我的控制器中:

$scope.download = function(){
        alert("fun executed");
        };
$scope.info0="<button ng-click=download()>";
$scope.info1="</button>";

我收到一个错误,没有定义下载功能,我认为因为在角度编译之前解析了html,所以有什么办法可以解决这个问题。备选方案也很受欢迎。

2 个答案:

答案 0 :(得分:1)

两件事:

  • 您在translate指令中添加了一个指令。您的代码无法工作,因为在角度解析之后,ng-click将被放入DOM中。
  • 将HTML作为值放在translate指令中并不是一个好主意。该模块用于处理文本值而不是HTML语法。

对于你的问题,你必须做这样的事情:

{
    "step1.download":"Download",
    "step1.someText":"some text."
}
你的HTML中的

<span>
    <button ng-click="download()">
        {{'step1.download'|translate}}
    </button> 
    {{'step1.someText'|translate}}
</span>

答案 1 :(得分:0)

在html中使用“translate-compile”,如下所示:

<span translate="step1.download" translate-compile translate-values="{ n0: '{{info0}}', n1: '{{info1}}'}"></span>

使用我的案例,可能取决于你使用的是什么翻译。如果你使用“angular-translate.js”,它会有效。