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
Defined in
projects/plugins/packages/i18next/src/lib/InternationalizationHandler.ts:70
Properties
backendOptions
protected
readonly
backendOptions:Options
<object
>
The backend options for @skyra/i18next-backend
used by i18next
.
Since
1.0.0
Defined in
projects/plugins/packages/i18next/src/lib/InternationalizationHandler.ts:63
fetchLanguage()
fetchLanguage: (
context
:InternationalizationContext
) =>Awaitable
<null
|string
>
The method to be overridden by the developer.
Parameters
Parameter | Type |
---|---|
context | InternationalizationContext |
Returns
Awaitable
<null
| string
>
A string for the desired language or null for no match.
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';
};
Defined in
projects/plugins/packages/i18next/src/lib/InternationalizationHandler.ts:132
languages
readonly
languages:Map
<string
,TFunctionNonStrict
<"translation"
,undefined
>>
A Map
of i18next
language functions keyed by their language code.
Since
1.0.0
Defined in
projects/plugins/packages/i18next/src/lib/InternationalizationHandler.ts:44
languagesDirectory
readonly
languagesDirectory:string
The director passed to @skyra/i18next-backend
.
Also used in InternationalizationHandler.walkLanguageDirectory.
Since
1.2.0
Defined in
projects/plugins/packages/i18next/src/lib/InternationalizationHandler.ts:57
languagesLoaded
languagesLoaded:
boolean
=false
Describes whether InternationalizationHandler.init has been run and languages are loaded in InternationalizationHandler.languages.
Since
1.0.0
Defined in
projects/plugins/packages/i18next/src/lib/InternationalizationHandler.ts:32
namespaces
namespaces:
Set
<string
>
A Set
of initially loaded namespaces.
Since
1.2.0
Defined in
projects/plugins/packages/i18next/src/lib/InternationalizationHandler.ts:38
options
readonly
options:InternationalizationOptions
The options InternationalizationHandler was initialized with in the client.
Since
1.0.0
Defined in
projects/plugins/packages/i18next/src/lib/InternationalizationHandler.ts:50
Methods
format()
Localizes a content given one or more keys and i18next options.
Since
2.0.0
Param
The language to be used.
Remark
This function also has additional parameters for key
, defaultValue
, and options
, however
TSDoc does not let us document those while matching proper implementation. See the overloads for this method
for the documentation on those parameters.
See
https://www.i18next.com/overview/api#t
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 | Default type |
---|---|
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.
The localized content.
Since
2.0.0
Param
The language to be used.
Remark
This function also has additional parameters for key
, defaultValue
, and options
, however
TSDoc does not let us document those while matching proper implementation. See the overloads for this method
for the documentation on those parameters.
See
https://www.i18next.com/overview/api#t
Since
2.0.0
See
https://www.i18next.com/overview/api#t
Defined in
projects/plugins/packages/i18next/src/lib/InternationalizationHandler.ts:199
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 | Default type |
---|---|
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.
The localized content.
Since
2.0.0
Param
The language to be used.
Remark
This function also has additional parameters for key
, defaultValue
, and options
, however
TSDoc does not let us document those while matching proper implementation. See the overloads for this method
for the documentation on those parameters.
See
https://www.i18next.com/overview/api#t
Since
2.0.0
See
https://www.i18next.com/overview/api#t
Defined in
projects/plugins/packages/i18next/src/lib/InternationalizationHandler.ts:216
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 | Default type |
---|---|
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.
The localized content.
Since
2.0.0
Param
The language to be used.
Remark
This function also has additional parameters for key
, defaultValue
, and options
, however
TSDoc does not let us document those while matching proper implementation. See the overloads for this method
for the documentation on those parameters.
See
https://www.i18next.com/overview/api#t
Since
2.0.0
See
https://www.i18next.com/overview/api#t
Defined in
projects/plugins/packages/i18next/src/lib/InternationalizationHandler.ts:234
getT()
getT(
locale
:string
):TFunctionNonStrict
<"translation"
,undefined
>
Retrieve a raw TFunction from the passed locale.
Parameters
Parameter | Type | Description |
---|---|---|
locale | string | The language to be used. |
Returns
TFunctionNonStrict
<"translation"
, undefined
>
Since
1.0.0
Defined in
projects/plugins/packages/i18next/src/lib/InternationalizationHandler.ts:182
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
Defined in
projects/plugins/packages/i18next/src/lib/InternationalizationHandler.ts:138
reloadResources()
reloadResources():
Promise
<void
>
Returns
Promise
<void
>
Defined in
projects/plugins/packages/i18next/src/lib/InternationalizationHandler.ts:315
walkLocaleDirectory()
private
walkLocaleDirectory(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
Defined in
projects/plugins/packages/i18next/src/lib/InternationalizationHandler.ts:338
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
Defined in
projects/plugins/packages/i18next/src/lib/InternationalizationHandler.ts:295