i18next-intervalplural-postprocessor
v3.0.0
Published
postProcessor that allows interval based plurals
Downloads
178,478
Readme
i18next-intervalPlural-postProcessor
Introduction
This is a i18next postProcessor enabling interval based plurals.
Getting started
Source can be loaded via npm, bower or downloaded from this repo.
# npm package
$ npm install i18next-intervalplural-postprocessor
# bower
$ bower install i18next-intervalplural-postprocessor
- If you don't use a module loader it will be added to
window.i18nextIntervalPluralPostProcessor
Wiring up:
import i18next from 'i18next';
import intervalPlural from 'i18next-intervalplural-postprocessor';
i18next
.use(intervalPlural)
.init(i18nextOptions);
Usage sample
// given loaded resources
// translation: {
// key1: '{{count}} item',
// key1_plural: '{{count}} items',
// key1_interval: '(1)[one item];(2-7)[a few items];(7-inf)[a lot of items];',
// key2: '{{count}} item',
// key2_plural: '{{count}} items',
// key2_interval: '(1)[one item];(2-7)[a few items];'
// }
i18next.t('key1_interval', { postProcess: 'interval', count: 1 }); // -> one item
i18next.t('key1_interval', { postProcess: 'interval', count: 4 }); // -> a few items
i18next.t('key1_interval', { postProcess: 'interval', count: 100 }); // -> a lot of items
// if a interval is not specified i18next fallbacks to classic plural
i18next.t('key2_interval', { postProcess: 'interval', count: 1 }); // -> one item
i18next.t('key2_interval', { postProcess: 'interval', count: 4 }); // -> a few items
i18next.t('key2_interval', { postProcess: 'interval', count: 100 }); // -> 100 items
Setting own options
import i18next from 'i18next';
import intervalPlural from 'i18next-intervalplural-postprocessor';
intervalPlural.setOptions({
// these are the defaults
intervalSeparator: ';',
intervalRegex: /\((\S*)\).*?\[((.|\n)*)\]/, // pre 3.0 /\((\S*)\).*{((.|\n)*)}/,
intervalSuffix: '_interval'
});
i18next
.use(intervalPlural)
.init(i18nextOptions);