Seit Angular 9 können wir verwenden
$localize`Hello ${name}:name:`
Für i18n im Typoskript-Code. Dies hat immer noch einige Einschränkungen, da der ng xi18n
Befehl die Zeichenfolgen nicht erkennt. Wenn diese Texte jedoch manuell zur Übersetzungsdatei hinzugefügt werden, funktioniert dies.
Die $localize
Funktion ist im JSDoc in der Quelle recht gut dokumentiert , erklärt jedoch nicht, wie mit Pluralformen gearbeitet wird. Was ich meine ist so etwas (Pseudocode):
$localize`Hello {${count}, plural, =1 {reader} other {readers}}`
Ist das möglich mit $localize
? Wenn ja: wie? Wenn nein: Wie kompiliert Angular solche Ausdrücke von HTML nach TypeScript?
angular
angular-i18n
Yankee
quelle
quelle
<span i18n>Updated {minutes, plural, =0 {just now} =1 {one minute ago} other {{{minutes}} minutes ago}}</span>
? Das steht in den Dokumenten. Ziemlich ähnlich zu dem, was Sie wollenAntworten:
Derzeit ist es nicht möglich, Intensivstationen mit zu verwenden
$localize
, wie in dieser Github-Ausgabe erläutert . Aus den letzten Kommentaren geht hervor, dass das eckige Team darüber nachdenkt, ob es leicht bleibt.In der Zwischenzeit wird empfohlen, eine eigene Hilfsmethode zu erstellen, die die korrekte Übersetzung basierend auf dem Parameter count zurückgibt.
quelle
Ich habe gerade die Ausgabe https://github.com/angular/angular/issues/35912 gelesen und denke, das
intl-messageformat
kann das, was Sie brauchen.Siehe https://github.com/formatjs/formatjs/tree/master/packages/intl-messageformat .
quelle