angularjs/gettext:如何翻译属性中的文本

Jea*_*eri 6 javascript gettext angularjs angular-gettext

我有一个像这样的HTML

<bar title="'My Title'"></bar>
Run Code Online (Sandbox Code Playgroud)

现在,当我想翻译它时,它看起来像这样

<bar title="'My Title'|translate"></bar>
Run Code Online (Sandbox Code Playgroud)

我没有{{和}}的原因是因为'bar'指令用'='将标题绑定到其范围

scope: {
    title: '=',
    ...
}
Run Code Online (Sandbox Code Playgroud)

问题是任务'nggettext_extract'不提取此文本,因为它正在大括号之间查找内容.我找到了解决这个问题的黑客:

<bar dummy="{{My Title'|translate}}" title="'My Title'|translate"></bar>
Run Code Online (Sandbox Code Playgroud)

但我希望有更好的解决方案来解决这个问题?

更新:我现在实现的解决方法是我更改了指令如下

scope: true,
link: function(scope, element, attrs) {
    scope.title = attrs.title;
}
Run Code Online (Sandbox Code Playgroud)

当然,如果有人知道更好的解决方案,请告诉我!

Elv*_*iev 0

你可以这样做:

// Inside your controller

$scope.lbl = gettextCatalog.getString('Some text');

// And inside your template you can use

<bar title={{lbl}} > </bar>
Run Code Online (Sandbox Code Playgroud)