Essentials

Accessing keys

resources with 2 keys:

{
    "key": "value of key",
    "look": {
        "deep": "value of look deep"
    }
}

sample

i18next.t('key');
// -> "value of key"

i18next.t('look.deep');
// -> "value of look deep"

Passing a default value

You can pass in a default value for cases the key could not be found in translations like:

i18next.t('key', 'default value to show');

In case you're using the saveMissing functionality, it will also pass the defaultValue to your chosen backend, like shown in this React.js example.

Accessing keys in different namespaces

Namespaces are a feature in i18next internationalization framework which allows you to separate translations that get loaded into multiple files.

init

i18next.init({
  ns: ['common', 'moduleA'],
  defaultNS: 'moduleA'
});

moduleA.json

{
    "name": "Module A"
}

common.json

{
    "button": {
        "save": "save"
    }
}

sample

i18next.t('name');
// -> "Module A"

// from different namespace (not recommended with namespace prefix when used in combination with natural language keys)
i18next.t('common:button.save') // -> "save"
// better use the ns option:
i18next.t('button.save', { ns: 'common' }) // -> "save"

Multiple fallback keys

Calling the t function with an array of keys enables you to translate dynamic keys providing a non specific fallback value.

As a sample think of an error code you get and you like to show a specific warning in some cases:

keys

{
  "error": {
    "unspecific": "Something went wrong.",
    "404": "The page was not found."
  }
}

sample

// const error = '404';
i18next.t([`error.${error}`, 'error.unspecific']); // -> "The page was not found"

// const error = '502';
i18next.t([`error.${error}`, 'error.unspecific']); // -> "Something went wrong"

Overview options

i18next.t(key, options)

option

description

defaultValue

defaultValue to return if a translation was not found, you also can define defaults for plurals by adding defaultValue_other -> _suffix depends on same pluralrules.

count

count value used for plurals

context

used for contexts (eg. male / female)

replace

object with vars for interpolation - or put them directly in options

lng

override language to use

lngs

override languages to use

fallbackLng

override language to lookup key if not found see fallbacks for details

ns

override namespaces (string or array)

keySeparator

override char to separate keys

nsSeparator

override char to split namespace from key

returnObjects

accessing an object not a translation string (can be set globally too)

returnDetails

returns an object that includes information about the used language, namespace, key and value

joinArrays

char, eg. '\n' that arrays will be joined by (can be set globally too)

postProcess

string or array of postProcessors to apply see interval plurals as a sample

interpolation

skipInterpolation

skip interpolation and nesting for this call to t function

ignoreJSONStructure

if a key is not found as nested key, it will try to lookup as flat key

Last updated