3.2.2 • Published 6 years ago

i18next-xhr-backend v3.2.2

Weekly downloads
186,681
License
MIT
Repository
github
Last release
6 years ago

Introduction

Travis Coveralls npm version Bower David

This is a simple i18next backend to be used in the browser. It will load resources from a backend server using the xhr API.

Getting started

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

# npm package
$ npm install i18next-xhr-backend

# bower
$ bower install i18next-xhr-backend

Wiring up:

import i18next from 'i18next';
import XHR from 'i18next-xhr-backend';

i18next.use(XHR).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.i18nextXHRBackend

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}}.json',

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

  // your backend server supports multiloading
  // /locales/resources.json?lng=de+en&ns=ns1+ns2
  // Adapter is needed to enable MultiLoading https://github.com/i18next/i18next-multiload-backend-adapter
  // Returned JSON structure in this case is
  // {
  //  lang : {
  //   namespaceA: {},
  //   namespaceB: {},
  //   ...etc
  //  }
  // }
  allowMultiLoading: false, // set loadPath: '/locales/resources.json?lng={{lng}}&ns={{ns}}' to adapt to multiLoading

  // parse data after it has been fetched
  // in example use https://www.npmjs.com/package/json5
  // here it removes the letter a from the json (bad idea)
  parse: function(data) { return data.replace(/a/g, ''); },

  //parse data before it has been sent by addPath
  parsePayload: function(namespace, key, fallbackValue) { return { key } },

  // allow cross domain requests
  crossDomain: false,

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

  // overrideMimeType sets request.overrideMimeType("application/json")
  overrideMimeType: false,

  // custom request headers sets request.setRequestHeader(key, value)
  customHeaders: {
    authorization: 'foo',
    // ...
  },

  // define a custom xhr function
  // can be used to support XDomainRequest in IE 8 and 9
  //
  // 'url' will be passed the value of 'loadPath'
  // 'options' will be this entire options object
  // 'callback' is a function that takes two parameters, 'data' and 'xhr'.
  //            'data' should be the key:value translation pairs for the
  //            requested language and namespace, or null in case of an error.
  //            'xhr' should be a status object, e.g. { status: 200 }
  // 'data' will be a key:value object used when saving missing translations
  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 XHR from 'i18next-xhr-backend';

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

on construction:

import XHR from 'i18next-xhr-backend';
const xhr = new XHR(null, options);

via calling init:

import XHR from 'i18next-xhr-backend';
const xhr = new XHR();
xhr.init(null, options);

Misc

TypeScript definitions

  • Install from @types (for TypeScript v2 and later):

      npm install --save-dev @types/i18next-xhr-backend
  • Install from typings:

      typings install --save --global dt~i18next-xhr-backend

@ljmarquezge2y/worldpay-spartacus@borderfreefinancial/revo-consumer@borderfreefinancial/revo-core@borderfreefinancial/revo-core-api@borderfreefinancial/revo-web-video-test@borderfreefinancial/test-chat-sdk@borderfreefinancial/elements-react@borderfreefinancial/local-chat-sdk@borderfreefinancial/prod-chat-sdk@borderfreefinancial/qa-chat-sdk@borderfreefinancial/dev-chat-sdkrn-aht-jitsi-meetreactjs-99unowebapp-uservlk-mob-appdvlsc-t1moco2_appmoco-forms-ymoco-forms-z@aliasliao/pat-commonviam-dynamic-payers-fieldviam-payers-dynamic-fields@dhi-solutions/internationalizer@dhi-solutions/intlviacheck-notification-centermesstischviacheck-temporal-account-creditbyevolutionsales-insights-ui@openmrs/esm-initial-scriptdelivered4all99uno-react-js299uno-reactjs@teipublisher/pb-components7assessment-renderer-saasci-common-ui@deity/falcon-clientchatpool-webwidgetcra-template-teemsly-starter@kichiyaki/next-i18nextdynamic-form-node-module-test2rete-two-editortwintwoo-editordbyzero-testditus-uibusiness-models-2helium10-x-rayjitsi-meet-rnreact-native-jitsi-meet-libcra-template-react-frameworki18next-helper@infinitebrahmanuniverse/nolb-i1@oerlikon/i18nsupport-worksuitejitsi-meet-react-native-rocket@everything-registry/sub-chunk-1887fe-maincb-dash-pkgcb-dash-pkg1cb-dash-pkg10cb-dash-pkg2cb-dash-pkg3cb-dash-pkg4cb-dash-pkg5cb-dash-pkg6cb-dash-pkg8cb-dash-pkg89cb-dash-pkg9cb-dash-pkg7cb-dash-pkg-final-div2cb-dash-pkg-final-div3cb-dash-pkg-final-div5cb-dash-pkg-final-div6cb-dash-pkg-final-div8cb-dash-pkg-final-div9cb-dash-pkg-final1cb-dash-pkg-final10cb-dash-pkg-final11cb-dash-pkg-final2cb-dash-pkg-final3cb-dash-pkg-final4cb-dash-pkg-final5cb-dash-pkg-final6cb-dash-pkg-final7cb-dash-pkg-final8cb-dash-pkg-final9cb-dash-pkg-final-div7cb-dash-pkg-fincb-dash-pkg-fin1cb-dash-pkg-fin2cb-dash-pkg-fin3cb-dash-pkg-fin4cb-dash-pkg-finacb-dash-pkg-finalcb-dash-pkg-final-div1tcp-core-utilitiesswaptokentest-lib-dijowixstores-dashboard-abandoned-cartswollanupjs
3.2.2

6 years ago

3.2.1

6 years ago

3.2.0

6 years ago

3.1.2

6 years ago

3.1.1

6 years ago

3.1.0

6 years ago

3.0.1

6 years ago

3.0.0

6 years ago

2.0.1

7 years ago

2.0.0

7 years ago

1.5.1

8 years ago

1.5.0

8 years ago

1.4.3

8 years ago

1.4.2

8 years ago

1.4.1

8 years ago

1.4.0

8 years ago

1.3.0

9 years ago

1.2.1

9 years ago

1.2.0

9 years ago

1.1.0

9 years ago

1.0.1

9 years ago

1.0.0

9 years ago

0.6.0

9 years ago

0.5.5

9 years ago

0.5.4

9 years ago

0.5.3

9 years ago

0.5.2

9 years ago

0.5.1

9 years ago

0.5.0

9 years ago

0.4.0

10 years ago

0.3.0

10 years ago

0.2.0

10 years ago

0.1.0

10 years ago

0.0.5

10 years ago

0.0.4

10 years ago

0.0.3

10 years ago

0.0.1

10 years ago