Carlos Cifuentes
Referencia AngularJS → Angular

ng-pluralize en Angular moderno

ng-pluralize tiene dos sucesores: las expresiones ICU de plural en el template, que funcionan con el i18n de Angular, y el I18nPluralPipe para casos simples.

Antes · AngularJS
<ng-pluralize count="vm.messages.length"
  when="{'0': 'No messages',
         'one': '1 message',
         'other': '{} messages'}">
</ng-pluralize>
Después · Angular
<!-- ICU expression, extracted for translation by the i18n attribute -->
<span i18n>
  {count(), plural, =0 {No messages} =1 {1 message} other {{{ count() }} messages}}
</span>

<!-- or I18nPluralPipe, with the mapping in the component -->
<span>{{ count() | i18nPlural: messageMap }}</span>

messageMap = { '=0': 'No messages', '=1': '1 message', other: '# messages' };

Qué cambia

  • Las coincidencias exactas se escriben =0 y =1; las categorías como one, few, many y other siguen las reglas del locale activo.
  • El marcador {} pasa a ser # en el mapa del pipe, o una interpolación normal dentro de un caso ICU.
  • El atributo offset no tiene equivalente directo; calcula el número ajustado en el componente.

Consejo de migración. Si la app tiene más de un idioma, prefiere las expresiones ICU. Las reglas de plural cambian entre idiomas, y un mensaje ICU deja que cada traducción defina sus propios casos.

Relacionado

¿Planeas una migración o una plataforma de microfrontends?

En una llamada de 20 minutos me cuentas tu situación y te digo cómo la abordaría. Si todavía no vale la pena, también te lo digo.

Escríbeme por LinkedIn