I18n Manager

The I18n manager class exposes the API to create locale-specific instances of the I18n class and also extend the default capabilities by adding custom formatters and loaders.

You can import the singleton instance of the I18nManager class as follows:

import I18n from '@ioc:Adonis/Addons/I18n'

Methods/Properties

Following is the list of methods/properties available on the I18n Manager class.

defaultLocale

A read-only reference to the defaultLocale defined inside the config file.

import I18n from '@ioc:Adonis/Addons/I18n'
console.log(I18n.defaultLocale)

locale

Returns an instance of the I18n class for a given locale.

import I18n from '@ioc:Adonis/Addons/I18n'
const en = I18n.locale('en')
const fr = I18n.locale('fr')

getSupportedLocale

Returns the best matching supported locale for the user language(s). The method uses the content negotiation to find the supported locale.

import I18n from '@ioc:Adonis/Addons/I18n'
const bestMatch = I18n.getSupportedLocale(['en', 'fr'])

getFallbackLocale

Returns the fallback locale for a given locale. The method looks up the fallbacks object defined within the config file. It returns the defaultLocale when no fallback is found.

import I18n from '@ioc:Adonis/Addons/I18n'
I18n.getFallbackLocale('ca')

supportedLocales

Returns an array of locales supported by the application. The config value is used when defined explicitly within the config file. Otherwise, we will infer the supported locales from the language directories.

import I18n from '@ioc:Adonis/Addons/I18n'
I18n.supportedLocales() // ['en', 'fr', 'it']

loadTranslations

Loads the translations using the configured loaders. The translations the further cached within the memory.

If you want to refresh the translations, use the reloadTranslations method.

This method is called automatically during the application boot.

import I18n from '@ioc:Adonis/Addons/I18n'
await I18n.loadTranslations()

reloadTranslations

Reload translations from all the configured loaders. Each call to this method will make the loaders fetch translations from the source.

import I18n from '@ioc:Adonis/Addons/I18n'
await I18n.reloadTranslations()

getTranslations

Returns an object of cached translations. The object is a merged copy of all the translations loaded from multiple configured loaders.

import I18n from '@ioc:Adonis/Addons/I18n'
I18n.getTranslations()

getTranslationsFor

Returns the translations for a given locale.

import I18n from '@ioc:Adonis/Addons/I18n'
I18n.getTranslationsFor('en')
I18n.getTranslationsFor('fr')

getFormatter

Returns an instance of the configured translations formatter.

import I18n from '@ioc:Adonis/Addons/I18n'
I18n.getFormatter()

prettyPrint

A helper method to pretty-print the payload of the i18n:missing:translation event.

import Event from '@ioc:Adonis/Core/Event'
import I18n from '@ioc:Adonis/Addons/I18n'
Event.on('i18n:missing:translation', I18n.prettyPrint)

extend

Extend the default capabilities by adding custom formatters and translations loaders.

Make sure to read the extensions guide for an in-depth explaination for adding custom formatters and loaders.

import I18n from '@ioc:Adonis/Addons/I18n'
I18n.extend('name', 'formatter', () => new Impl())
I18n.extend('name', 'loader', () => new Impl())