Nearly Perpendicular Macaroons

    i18next-icu

    2.0.3 • Public • Published

    Introduction

    Travis Coveralls npm version David

    This changes i18n format from i18next json to ICU using yahoo/intl-messageformat

    Getting started

    Source can be loaded via npm or downloaded from this repo.

    # npm package
    $ npm install i18next-icu
    # peer dependencies
    $ npm install intl-messageformat
    

    Wiring up:

    import i18next from "i18next";
    import ICU from "i18next-icu";
    
    i18next.use(ICU).init(i18nextOptions);
    • As with all modules you can either pass the constructor function (class) to the i18next.use or a concrete instance.
    • If you don't use a module loader it will be added to window.i18nextICU

    Backend Options

    {
      // per default icu functions are parsed once and cached for subsequent calls
      memoize: true,
    
      // memoize if not having a lookup and just using the key fallback as value
      memoizeFallback: false,
    
      // which events should clear the cache, can be set to false or string of events separated by " "
      bindI18n: '',
    
      // which events on resourceSource should clear the cache, can be set to false or string of events separated by " "
      bindI18nStore: '',
    
      // Will be run when parser throws an error. Can return any string, which can be used as a fallback, in case of broken translation.
      // If omitted, the default swallows the error and returns the unsubstituted string (res)
      parseErrorHandler: (err, key, res, options) => {}
    }

    Options can be passed in by setting options.i18nFormat in i18next.init:

    import i18next from "i18next";
    import ICU from "i18next-icu";
    
    i18next.use(ICU).init({
      i18nFormat: options
    });

    more complete sample

    import i18next from "i18next";
    import ICU from "i18next-icu";
    
    i18next.use(ICU).init({
      lng: "en",
      resources: {
        en: {
          translation: {
            key:
              "You have {numPhotos, plural, " +
              "=0 {no photos.}" +
              "=1 {one photo.}" +
              "other {# photos.}}"
          }
        }
      }
    });
    
    i18next.t("key", { numPhotos: 1000 }); // -> You have 1,000 photos.

    Gold Sponsors

    Install

    npm i i18next-icu

    DownloadsWeekly Downloads

    23,960

    Version

    2.0.3

    License

    MIT

    Unpacked Size

    837 kB

    Total Files

    22

    Last publish

    Collaborators

    • avatar