0

我正在尝试将 gettext 与 ngSwithc 结合使用,如下所示:

<ANY ng-switch="expression">
  <ANY ng-switch-when="matchValue1" translate>...</ANY>
  <ANY ng-switch-when="matchValue2" translate>...</ANY>
  <ANY ng-switch-default translate>...</ANY>
</ANY>

是一个演示该问题的jsfiddle。我得到的错误是

Error: [$compile:multidir] Multiple directives [ngSwitchWhen, translate] asking for transclusion on: <div ng-switch-when="opt0" translate="">

有什么建议我可以将 gettext 与 ngSwitch 结合使用吗?

4

2 回答 2

3

简单的修复是将translate属性移动到标签内的另一个switch标签

于 2013-11-11T13:31:54.120 回答
1

我使用翻译服务等以稍微不同的方式解决了这个问题。

<div>
    <select class="form-control" id="selectLocale" ng-model="selectedLocale"
        ng-options="locale as translate(locale.name) for locale in locales">
    </select>
</div>

这使我能够在 $scope 上添加一个函数,通过调用来获取翻译后的字符串

$scope.translate = function(str) {
    return LanguageService.getTranslatedString(str);
};

现在,每次 select 遍历数组时,它都会调用此函数为您翻译字符串。有关 select 标记的更多信息,请查看文档中的 AngularJS: API: select 指令

请访问我的博客条目Angular-GetText Snippets以获取更深入的信息。

于 2014-04-08T16:50:48.713 回答