Class: InternationalizationHandler
A generalized class for handling i18next JSON files and their discovery.
Since
1.0.0
Constructors
new InternationalizationHandler()
new InternationalizationHandler(
options?:InternationalizationOptions):InternationalizationHandler
Parameters
| Parameter | Type | Description |
|---|---|---|
options? | InternationalizationOptions | The options that i18next, @skyra/i18next-backend, and InternationalizationHandler should use. |
Returns
Since
1.0.0
Source
projects/plugins/packages/i18next/src/lib/InternationalizationHandler.ts:69
Properties
backendOptions
protectedreadonlybackendOptions:Options<object>
The backend options for @skyra/i18next-backend used by i18next.
Since
1.0.0
Source
projects/plugins/packages/i18next/src/lib/InternationalizationHandler.ts:62
fetchLanguage()
fetchLanguage: (
context:InternationalizationContext) =>Awaitable<null|string>
The method to be overridden by the developer.
Note
In the event that fetchLanguage is not defined or returns null / undefined, the defaulting from fetchLanguage will be used.
Since
2.0.0
See
Examples
// Always use the same language (no per-guild configuration):
container.i18n.fetchLanguage = () => 'en-US';
// Retrieving the language from an SQL database:
container.i18n.fetchLanguage = async (context) => {
const guild = await driver.getOne('SELECT language FROM public.guild WHERE id = $1', [context.guild.id]);
return guild?.language ?? 'en-US';
};
// Retrieving the language from an ORM:
container.i18n.fetchLanguage = async (context) => {
const guild = await driver.getRepository(GuildEntity).findOne({ id: context.guild.id });
return guild?.language ?? 'en-US';
};
// Retrieving the language on a per channel basis, e.g. per user or guild channel (ORM example but same principles apply):
container.i18n.fetchLanguage = async (context) => {
const channel = await driver.getRepository(ChannelEntity).findOne({ id: context.channel.id });
return channel?.language ?? 'en-US';
};
Parameters
| Parameter | Type |
|---|---|
context | InternationalizationContext |
Returns
Awaitable<null | string>
Source
projects/plugins/packages/i18next/src/lib/InternationalizationHandler.ts:131
languages
readonlylanguages:Map<string,TFunction<"translation",undefined>>
A Map of i18next language functions keyed by their language code.
Since
1.0.0
Source
projects/plugins/packages/i18next/src/lib/InternationalizationHandler.ts:43
languagesDirectory
readonlylanguagesDirectory:string
The director passed to @skyra/i18next-backend.
Also used in InternationalizationHandler.walkLanguageDirectory.
Since
1.2.0
Source
projects/plugins/packages/i18next/src/lib/InternationalizationHandler.ts:56
languagesLoaded
languagesLoaded:
boolean=false
Describes whether InternationalizationHandler.init has been run and languages are loaded in InternationalizationHandler.languages.
Since
1.0.0
Source
projects/plugins/packages/i18next/src/lib/InternationalizationHandler.ts:31
namespaces
namespaces:
Set<string>
A Set of initially loaded namespaces.
Since
1.2.0
Source
projects/plugins/packages/i18next/src/lib/InternationalizationHandler.ts:37
options
readonlyoptions:InternationalizationOptions
The options InternationalizationHandler was initialized with in the client.
Since
1.0.0
Source
projects/plugins/packages/i18next/src/lib/InternationalizationHandler.ts:49
Methods
format()
format(locale, key, options)
format<
Key,TOpt,Ns,Ret,ActualOptions>(locale:string,key:Key|Key[],options?:ActualOptions):TFunctionReturnOptionalDetails<Ret,TOpt>
Localizes a content given one or more keys and i18next options.
Type parameters
| Type parameter | Value |
|---|---|
Key extends string | - |
TOpt extends TOptions | TOptions |
Ns extends Namespace | "translation" |
Ret extends string | $SpecialObject | TOpt["returnObjects"] extends true ? $SpecialObject : string |
ActualOptions extends TOptionsBase & $Dictionary | TOpt & InterpolationMap<Ret> |
Parameters
| Parameter | Type | Description |
|---|---|---|
locale | string | The language to be used. |
key | Key | Key[] | The key or keys to retrieve the content from. |
options? | ActualOptions | The interpolation options. |
Returns
TFunctionReturnOptionalDetails<Ret, TOpt>
The localized content.
Since
2.0.0
See
https://www.i18next.com/overview/api#t
Source
projects/plugins/packages/i18next/src/lib/InternationalizationHandler.ts:197
format(locale, key, options)
format<
Key,TOpt,Ns,Ret,ActualOptions>(locale:string,key:string|string[],options:TOpt&$Dictionary&object):TFunctionReturnOptionalDetails<Ret,TOpt>
Localizes a content given one or more keys and i18next options.
Type parameters
| Type parameter | Value |
|---|---|
Key extends string | - |
TOpt extends TOptions | TOptions |
Ns extends Namespace | "translation" |
Ret extends string | $SpecialObject | TOpt["returnObjects"] extends true ? $SpecialObject : string |
ActualOptions extends TOptionsBase & $Dictionary | TOpt & InterpolationMap<Ret> |
Parameters
| Parameter | Type | Description |
|---|---|---|
locale | string | The language to be used. |
key | string | string[] | The key or keys to retrieve the content from. |
options | TOpt & $Dictionary & object | The interpolation options as well as a defaultValue for the key and any key/value pairs. |
Returns
TFunctionReturnOptionalDetails<Ret, TOpt>
The localized content.
Since
2.0.0
See
https://www.i18next.com/overview/api#t
Source
projects/plugins/packages/i18next/src/lib/InternationalizationHandler.ts:214
format(locale, key, defaultValue, options)
format<
Key,TOpt,Ns,Ret,ActualOptions>(locale:string,key:string|string[],defaultValue:undefined|string,options?:TOpt&$Dictionary):TFunctionReturnOptionalDetails<Ret,TOpt>
Localizes a content given one or more keys and i18next options.
Type parameters
| Type parameter | Value |
|---|---|
Key extends string | - |
TOpt extends TOptions | TOptions |
Ns extends Namespace | "translation" |
Ret extends string | $SpecialObject | TOpt["returnObjects"] extends true ? $SpecialObject : string |
ActualOptions extends TOptionsBase & $Dictionary | TOpt & InterpolationMap<Ret> |
Parameters
| Parameter | Type | Description |
|---|---|---|
locale | string | The language to be used. |
key | string | string[] | The key or keys to retrieve the content from. |
defaultValue | undefined | string | The default value to use if the key is not found. |
options? | TOpt & $Dictionary | The interpolation options. |
Returns
TFunctionReturnOptionalDetails<Ret, TOpt>
The localized content.
Since
2.0.0
See
https://www.i18next.com/overview/api#t
Source
projects/plugins/packages/i18next/src/lib/InternationalizationHandler.ts:232
getT()
getT(
locale:string):TFunction<"translation",undefined>
Retrieve a raw TFunction from the passed locale.
Parameters
| Parameter | Type | Description |
|---|---|---|
locale | string | The language to be used. |
Returns
TFunction<"translation", undefined>
Since
1.0.0
Source
projects/plugins/packages/i18next/src/lib/InternationalizationHandler.ts:180
init()
init():
Promise<void>
Initializes the handler by loading in the namespaces, passing the data to i18next, and filling in the InternationalizationHandler#languages.
Returns
Promise<void>
Since
1.0.0
Source
projects/plugins/packages/i18next/src/lib/InternationalizationHandler.ts:137
reloadResources()
reloadResources():
Promise<void>
Returns
Promise<void>
Source
projects/plugins/packages/i18next/src/lib/InternationalizationHandler.ts:309
walkLocaleDirectory()
privatewalkLocaleDirectory(directory:string,ns:string):AsyncGenerator<string,any,unknown>
Parameters
| Parameter | Type | Description |
|---|---|---|
directory | string | The directory that should be walked. |
ns | string | The current namespace. |
Returns
AsyncGenerator<string, any, unknown>
Description
Skips any files that don't end with .json.
Since
3.0.0
Source
projects/plugins/packages/i18next/src/lib/InternationalizationHandler.ts:332
walkRootDirectory()
walkRootDirectory(
directory:PathLike):Promise<object>
Parameters
| Parameter | Type | Description |
|---|---|---|
directory | PathLike | The directory that should be walked. |
Returns
Promise<object>
languages
languages:
string[]
namespaces
namespaces:
string[]
Since
3.0.0
Source
projects/plugins/packages/i18next/src/lib/InternationalizationHandler.ts:289