i18next-node-fs-sync-backend

node.js backend layer for i18next using fs module to load resources synchronously from filesystem

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
i18next-node-fs-sync-backend
1.1.06 years ago6 years agoMinified + gzip package size for i18next-node-fs-sync-backend in KB

Readme

i18next-node-fs-sync-backend
Travis CodeCov npm version
This is a fork of the official i18next fs backend to be used node.js. It will load resources synchronously from filesystem. Right now it supports following filetypes:
  • .json
  • .json5
  • .yml

⚠️ This is a fork of the official fs backend and works syncronously.
Getting started
Source can be loaded via npm.
$ npm install i18next-node-fs-sync-backend

Wiring up:
import i18next from 'i18next';
import Backend from 'i18next-node-fs-sync-backend';

i18next
  .use(Backend)
  .init({
    // This is necessary for this sync version
    // of the backend to work:
    initImmediate: false,
    // ...i18next options
  });

// i18next is immediately ready:
console.log(i18next.t('someKey'));

As with all modules you can either pass the constructor function (class) to the i18next.use or a concrete instance.

Backend Options

{
  // path where resources get loaded from
  loadPath: '/locales/{{lng}}/{{ns}}.json',

  // path to post missing resources
  addPath: '/locales/{{lng}}/{{ns}}.missing.json',

  // jsonIndent to use when storing json files
  jsonIndent: 2
}

hint {{lng}}, {{ns}} use the same prefix, suffix you define in interpolation for translations!!!
Options can be passed in:
preferred - by setting options.backend in i18next.init:
import i18next from 'i18next';
import Backend from 'i18next-node-fs-sync-backend';

i18next
  .use(Backend)
  .init({
    initImmediate: false,
    backend: {
      // Backend options here...
    }
  });

on construction:
import Backend from 'i18next-node-fs-sync-backend';
const backend = new Backend(null, options);

by calling init:
import Backend from 'i18next-node-fs-sync-backend';
const backend = new Backend();
backend.init(options);