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
- ngTouch (ng-swipe-left / ng-swipe-right)
- $resource .$promise and $resolved
- $http cache / $cacheFactory
- $interpolateProvider / $interpolate
¿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