Angular internationalisation (i18n) und * ngFor

9

Ich habe eine einfache generische Komponente in Angular , die eine Liste von Strings empfängt und eine Funkgruppe für diese Strings erstellt:

%Vor%

Ich brauche die Labels der Radiogruppe internationalisiert.
Die offizielle i18n Dokumentation von Angular spricht nur von statischem HTML.

Gibt es eine Möglichkeit, dynamische Komponenten (wie *ngFor entries) mit i18n template translation zu internationalisieren?

Ich kenne ngx-translate way, ich interessiere mich besonders für i18n way.

    
meltedspark 24.01.2017, 09:33
quelle

1 Antwort

3

Ich habe genau das gleiche gesucht und auch eine Option für dynamische Übersetzungen ohne ngx-translate. ocombe scheint derjenige responible für i18n bei Angular zu sein. In dieser GitHub-Ausgabe # 16477 hat er eine Art Roadmap für i18n in Angular veröffentlicht.

  

▢ Verwenden Sie Übersetzungszeichenfolgen außerhalb einer Vorlage - # 11405 [blockiert von Laufzeit i18n]

Wie Sie sehen, ist diese Funktion noch nicht in Angular implementiert, aber geplant. Das Problem, das dieses Feature zum Glück blockiert, ist in Arbeit:

  

▢ Runtime i18n (ein Bundle für alle Locales mit AOT) - [arbeitet daran]

Ich kann mich nicht erinnern, wo ich es gelesen, aber ich denke, ocombe schrieb, sie in Angular 5 diese Funktion noch implementieren will, so könnte es vor dem Frühjahr 2018 verfügbar sein (die Angularer Fahrplan sagt, dass Angular 6 im Frühjahr 2018 veröffentlicht wird)

  

Datum: März / April 2018; Stabile Version: 6.0.0

ocombe hat gerade dies heute gepostet:

  

Ich bin nicht derjenige, der an dieser Funktion arbeitet, und es ist die Ferienpause, ich werde es euch wissen lassen, sobald ich mehr weiß

Es bleibt also nichts anderes übrig, als ngx-translate zu verwenden, wenn Sie nicht warten können, oder Sie können diese GitHub-Probleme # 11405 abonnieren & amp; # 16477 und aktualisiert werden, bis sie diese Funktion zur Verfügung zu stellen. Hoffentlich Anfang 2018:)

PS: Soweit ich das verstanden habe, wollen sie auch dynamische Übersetzung implementieren, aber ich denke, dass sie nicht vor Angular 6 verfügbar sein wird.

UPDATE:

Jetzt ist es offiziell: Runtime i18n wird nicht vor Angular 6 sein (siehe: 11405 # issuecomment-358449205 )

BEARBEITEN:
Ich habe einen schmutzigen Hack dafür gefunden. Sie können versteckte div-Tags für Ihre Übersetzungen erstellen und diese über ViewChildren in einer Karte zur weiteren Verwendung speichern. Sie könnten sogar die Elemente abonnieren, um sie zu aktualisieren.

%Vor%     
Night Train 24.12.2017 00:31
quelle