2.3.0 • Published 3 years ago
i18next-icu v2.3.0
Introduction
This changes i18n format from i18next json to ICU using yahoo/intl-messageformat
Advice
When using this module, only the ICU message format is respected, this means the i18next format interpolation will not work.
So for example instead of Hy {{name}}! it is Hy {name}!
Getting started
Source can be loaded via npm or downloaded from this repo.
# npm package
$ npm install i18next-icu
# peer dependencies
$ npm install intl-messageformatWiring 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) => {},
  // Transform the language code prior to ICU locale parsing, useful for supporting psuedo-locales like en-ZZ
  // If omitted, the default leaves the language code as is
  parseLngForICU: (lng) => lng,
}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.Migration guide
1.x.x -> 2.0.0
- updated 
intl-messageformatdependency. Adding locales-data is no longer needed. 
2.3.0
3 years ago
2.2.0
3 years ago
2.1.0
3 years ago
2.0.3
5 years ago
2.0.2
5 years ago
2.0.0
5 years ago
1.4.2
5 years ago
1.4.1
5 years ago
1.4.0
5 years ago
1.3.1
6 years ago
1.3.0
6 years ago
1.2.1
6 years ago
1.2.0
6 years ago
1.1.2
7 years ago
1.1.1
7 years ago
1.1.0
7 years ago
1.0.32
7 years ago
1.0.2
7 years ago
1.0.1
7 years ago
1.0.0
7 years ago
0.6.0
7 years ago
0.5.0
7 years ago
0.4.0
7 years ago
0.3.0
8 years ago
0.2.0
8 years ago
0.1.0
8 years ago
0.0.1
8 years ago