I18n angularjs

I18n in angularjs

I18n 键:

"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 在 angular 编译之前解析了,所以有什么办法可以解决这个问题。替代解决方案也很受欢迎。

两件事:

  • 您在翻译指令中放置了一个指令。您的代码无法正常工作,因为 ng-click 将在 angular 解析后放入 DOM。
  • 将 HTML 作为翻译指令中的值不是一个好主意。该模块用于处理文本值而不是 HTML 语法。

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

{
    "step1.download":"Download",
    "step1.someText":"some text."
}

在你的 html 中:

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

在 html 中使用 "translate-compile" 像这样:

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

处理过我的情况,这可能取决于你是什么翻译器 using.It 如果你使用 "angular-translate.js" 就可以。