i18next-fluent-backend

i18next backend to load fluent formattd .ftl files via xhr

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
i18next-fluent-backend
0.0.38 months ago4 years agoMinified + gzip package size for i18next-fluent-backend in KB

Readme

Introduction
npm version David
This is a simple i18next backend to be used in the browser. It will load resource in fluent format (.ftl) from a backend server using xhr.
Getting started
Source can be loaded via npm, bower or downloaded from this repo.
# npm package
$ npm install i18next-fluent-backend

Wiring up:
import i18next from "i18next";
import FluentBackend from "i18next-fluent-backend";

i18next.use(FluentBackend).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.i18nextFluentBackend

Backend Options

{
  // path where resources get loaded from, or a function
  // returning a path:
  // function(lngs, namespaces) { return customPath; }
  // the returned path will interpolate lng, ns if provided like giving a static path
  loadPath: '/locales/{{lng}}/{{ns}}.ftl',

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

  // override fluent parser
  parse: function(data) { return data.replace(/a/g, ''); },

  // allow cross domain requests
  crossDomain: false,

  // allow credentials on cross domain requests
  withCredentials: false,

  // define a custom xhr function
  // can be used to support XDomainRequest in IE 8 and 9
  ajax: function (url, options, callback, data) {},

  // adds parameters to resource URL. 'example.com' -> 'example.com?v=1.3.5'
  queryStringParams: { v: '1.3.5' }
}

Options can be passed in:
preferred - by setting options.backend in i18next.init:
import i18next from "i18next";
import FluentBackend from "i18next-fluent-backend";

i18next.use(FluentBackend).init({
  backend: options
});

on construction:
import FluentBackend from "i18next-fluent-backend";
const fltBackend = new FluentBackend(null, options);

via calling init:
import FluentBackend from "i18next-fluent-backend";
const fltBackend = new FluentBackend();
fltBackend.init(options);

Gold Sponsors


<img src="https://raw.githubusercontent.com/i18next/i18next/master/assets/locize_sponsor_240.gif" width="240px">