/ / Winkelübersetzungsobjekt mit einigen gleichwertigen Übersetzungen - Javascript, Winkeljs, Winkelübersetzen

Winkel übersetzen Übersetzungsobjekt mit einigen gleich Übersetzungen - JavaScript, AngularJS, Winkel übersetzen

Ich benutze angular-translate um eine Webanwendung mehrsprachig zu machen. Alles funktioniert gut und mittlerweile habe ich meine Übersetzungen so strukturiert, dass ich Folgendes habe:

$translateProvider.translations("en", {
"LANGUAGE": {
"ENGLISH": "english",
"GERMAN": "german",
"ITALIAN": "italian",
"FRENCH": "french",
}
});

Angenommen, ich möchte hinzufügen BUTTONS.ENGLISH mit der gleichen Definition von LANGUAGE.ENGLISH. Ist es möglich, es irgendwie zu referenzieren? BUTTONS.ENGLISH = this.LANGUAGE.ENGLISH?

$translateProvider.translations("en", {
"LANGUAGE": {
"ENGLISH": "english",
"GERMAN": "german",
"ITALIAN": "italian",
"FRENCH": "french",
},
"BUTTONS": {
"ENGLISH": this["LANGUAGE"]["ENGLISH"] // ???
}
});

Antworten:

1 für die Antwort № 1

Die Art und Weise, wie Sie versuchen, ist aufgrund von Problemen des Javascript-Bereichs nicht möglich. Sie können jedoch immer Interpolation in einer Übersetzung verwenden, um eine andere Übersetzung wie im folgenden Beispiel aufzurufen.

 "ENGLISH": "{{ "LANGUAGE.ENGLISH" | translate }}"

Auf diese Weise können Sie garantieren, dass Ihr Schlüssel einem anderen Schlüsselwert entspricht, der möglicherweise einfacher zu verwalten ist.

Vollständiger Code:

$translateProvider.translations("en", {
"LANGUAGE": {
"ENGLISH": "english",
"GERMAN": "german",
"ITALIAN": "italian",
"FRENCH": "french",
},
"BUTTONS": {
"ENGLISH": "{{ "LANGUAGE.ENGLISH" | translate }}"
}
});

WEITERE HINWEISE ZU PERFORMANCE PROBLEMENIch denke, es wird keine große Leistung bringenProbleme trotz der Tatsache, dass es teurer ist als eine einfache Zeichenfolge, aber es wären die gleichen Kosten wie bei der Ersetzung von Variablen, jedoch teurer als eine einfache Zeichenfolge (ich habe es getestet und ist normalerweise 25% günstiger als interpolierte Zeichenfolgen) Vermeiden Sie daher die Verwendung im großen Maßstab.


1 für die Antwort № 2

In Javascript können Sie nicht auf andere Eigenschaften des Objekts zugreifen this (this hat den gleichen Wert während der Initialisierung des Literals als zuvor)