2014-05-20 9 views
9

Ich versuche, ein Auswahl-Dropdown zu übersetzen, und ich mag es nicht, wie ich es mache, weil es umständlich ist und das ganze eckige-translate-Framework umgeht.angular-translate ad ng-optionen

Die Länderdaten sehen aus wie {"lang": {"label": "text", "select": {"k1": "var1", "k2": "var2"}}} und wenn ich plonk das "select" -Member im Controller-Bereich, kann ich etwas wie "k wie v für (k, v) in scopedvar" in den ng-Optionen der Auswahl schreiben.

Grundsätzlich möchte ich übersetzen, um die Sprachauflösung zu tun und dann aus dem Weg und die Karte der Lokalisierungen für meine Optionen zurückgeben. Wenn es Sinn ergibt, so etwas wie: "k wie v für (k, v) in 'select' | translate", aber natürlich nicht.

Hat jemand dieses Problem schon einmal (und gelöst)?

TIA, Edoardo

Antwort

23

ich nicht ganz habe bekommen, was Sie erreichen wollen, aber ich werde einige Code setzen, die zum Nachladen der Optionen Übersetzungen mit der Feinarbeiten | Übersetzungsfilter.

Angenommen, Sie haben diese json als Schlüssel/Werte für die Übersetzungen:

var english = {"lang": { 
       "label": "text", 
       "select": { 
        "k1": "var1", 
        "k2": "var2" 
       }} 
       }; 

Und Ihre Controller erstellt eine Liste der Optionen wie folgt aus:

$scope.optionsList = [ 
    {val: 'var1', translationKey: 'lang.select.k1'}, 
    {val: 'var2', translationKey: 'lang.select.k2'} 
]; 

Sie sollten gut sein, die gehen Einfügen Übersetzungsfilter nach der Optionsbezeichnung im ng-options-Ausdruck:

Ich hoffe es hilft!