Desde Angular 9 podemos usar
$localize`Hello ${name}:name:`
Para i18n en código mecanografiado. Esto todavía tiene algunas limitaciones, ya que el ng xi18n
comando no detecta las cadenas, pero si estos textos se agregan manualmente al archivo de traducción, funciona.
La $localize
función está bastante bien documentada en el JSDoc en la fuente , sin embargo, no explica cómo trabajar con plurales. Lo que quiero decir es algo como esto (pseudocódigo):
$localize`Hello {${count}, plural, =1 {reader} other {readers}}`
¿Es esto posible con $localize
? En caso afirmativo: ¿cómo? En caso negativo: ¿cómo compila Angular tales expresiones de HTML a TypeScript?
angular
angular-i18n
yanqui
fuente
fuente
<span i18n>Updated {minutes, plural, =0 {just now} =1 {one minute ago} other {{{minutes}} minutes ago}}</span>
? Eso está en los documentos. Bastante similar a lo que quieresRespuestas:
Por ahora, no es posible usar UCI con
$localize
, como se discutió en este número de github . Según los últimos comentarios, parece que el equipo angular lo está considerando si sigue siendo liviano.Mientras tanto, la solución sugerida es crear su propio método auxiliar que devuelva la traducción correcta en función del parámetro de conteo.
fuente
Acabo de leer el problema https://github.com/angular/angular/issues/35912 y creo que eso
intl-messageformat
puede hacer lo que necesita.Ver https://github.com/formatjs/formatjs/tree/master/packages/intl-messageformat .
fuente