2014-03-07 3 views
7

Meine Winkelsteuerung kann die Nachrichten erzeugen, die ich mit eckigen Übersetzungen übersetzen möchte.Angular-Translations: Anzeige Übersetzung für dynamisch gefundenen Übersetzungsschlüssel

In Controller ich zur Zeit eine Variable Übersetzungsschlüssel wie zuweisen:

$scope.info = "core.projectconfig.created"; 

wo die Schlüssel seiner Übersetzung als

angegeben hat
core.projectconfig.created <=> 'Project {{projectName}} created successfully' 

Wie Sie sehen können, ich brauche auch ProjectName in der Übersetzung zu substitute.

habe ich versucht, so etwas in meiner Ansicht

<P translate="{{info}}", translate-values="{projectName : projectData.ProjectName}"></p> 

aber es funktioniert nicht. Wie kann ich dynamisch gefundenen Übersetzungsschlüssel übersetzen und auch eine Bereichsvariable in die übersetzte Zeile einfügen?

+0

Ist 'projectData' definiert auf deinem Umfang? Haben Sie Fehler? – PascalPrecht

+0

@PascalPrecht, froh, Autor hier zu haben. :) Könnten Sie bitte bestätigen, dass meine Syntax korrekt ist und funktionieren sollte? Dann bedeutet es, dass ein anderer Teil der Übersetzung, den jemand anders kodiert hat, nicht so verwendet wird, wie er sollte. –

+2

Ja Syntax sieht gut aus. – PascalPrecht

Antwort

3

Sie können $ translate Richtlinie injizieren, die von https://github.com/angular-translate/angular-translate in Ihrem Controller zur Verfügung gestellt wird.

Später verwenden $ wie folgt übersetzen für dynamische Schlüssel:

$translate(translation_key) 

Scope Variablen in Ihrer Nachricht kann wie unten verwendet werden:

$translate(translation_key, { scope_variable_key: $scope_value }) 

zB: $translate("core.projectconfig.created", { projectName: $scope.projectData. ProjectName })

+0

Hallo Monika, bitte helfen Sie mir mein unten ionen Folie Etikett wird nicht übersetzen, wenn ich die Sprache wechseln, aber es wird gut funktionieren, wenn ich Schließen und erneut öffnen Anwendung wird es übersetzt, aber nicht zu einem Zeitpunkt