node.js backend layer for i18next, resources is loaded synchronously from the filesystem
Clone or download
Pull request Compare This branch is 13 commits ahead, 25 commits behind i18next:master.
Latest commit 2d3c7cd May 4, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
lib Callback for `loadPath` Jan 15, 2018
src Callback for `loadPath` Jan 15, 2018
test Cleanup old code Jun 15, 2017
.babelrc update build Apr 30, 2017
.editorconfig initial version Nov 2, 2015
.eslintignore initial version Nov 2, 2015
.eslintrc initial version Nov 2, 2015
.gitignore initial version Nov 2, 2015
.npmignore initial version Nov 2, 2015
.travis.yml Add coverage report Jun 15, 2017
CHANGELOG.md update build Apr 30, 2017
LICENSE initial version Nov 2, 2015
README.md Update README Jun 18, 2017
index.js update build Apr 30, 2017
package-lock.json 1.1.0 May 4, 2018
package.json 1.1.0 May 4, 2018

README.md

i18next-sync-fs-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.

Thanks to @arve0 for transferring the Github repo to me. His old code is available in legacy branch.

Getting started

Source can be loaded via npm.

$ npm install i18next-sync-fs-backend

Wiring up:

import i18next from 'i18next';
import Backend from 'i18next-sync-fs-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-sync-fs-backend';

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

on construction:

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

by calling init:

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