Skip to content

i18next/i18next-intervalPlural-postProcessor

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

i18next-intervalPlural-postProcessor

Introduction

Travis Coveralls npm version Bower David

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_one: '{{count}} item',
//    key1_other: '{{count}} items',
//    key1_interval: '(1)[one item];(2-7)[a few items];(7-inf)[a lot of items];',
//    key2_one: '{{count}} item',
//    key2_other: '{{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);

Gold Sponsors

About

post processor for i18next enabling interval plurals

Resources

License

Stars

Watchers

Forks

Packages

No packages published