Ich versuche Gettext in Kombination mit ngSwithc wie folgt zu verwenden:
<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>
Hier ist ein Kinderspiel, das das Problem demonstriert. Der Fehler, den ich bekomme, ist
Error: [$compile:multidir] Multiple directives [ngSwitchWhen, translate] asking for transclusion on: <div ng-switch-when="opt0" translate="">
Irgendwelche Vorschläge, wie ich Gettext in Kombination mit ngSwitch nutzen kann?
Antworten:
3 für die Antwort № 1Einfache Lösung ist Bewegung translate
Attribut zu einem anderen Tag innerhalb des switch
Stichworte
1 für die Antwort № 2
Ich habe dies auf eine etwas andere Art und Weise gelöst, indem ich einen Übersetzungsdienst und dergleichen in Anspruch genommen habe.
<div>
<select class="form-control" id="selectLocale" ng-model="selectedLocale"
ng-options="locale as translate(locale.name) for locale in locales">
</select>
</div>
Dadurch konnte ich eine Funktion für den $ scope hinzufügen, um die übersetzte Zeichenfolge durch Aufruf zu erhalten
$scope.translate = function(str) {
return LanguageService.getTranslatedString(str);
};
Jedes Mal, wenn das select das Array durchläuft, ruft es diese Funktion auf, um die Zeichenfolge für Sie zu übersetzen. Weitere Informationen zum ausgewählten Tag finden Sie unter Auschecken a AngularJS: API: select Direktive in der Dokumentation.
Bitte besuchen Sie meinen Blogeintrag a Angular-GetText-Snippets für detailliertere Informationen.