Skip to main content

Nested

nestjs-i18n supports nested translations.

You can make nested translations by using this function.

$t(auth.PAGE_HOME.TITLE)

To pass along arguments use

{
"WELCOME": "$t(auth.WELCOME, {{ \"username\": \"{username}\" }})"
}

Here is an example of how this looks in your translation files

src/i18n/en/test.json
{
"HELLO": "World",
"WELCOME": "Hello {username}",
"PAGE_HOME": {
"TITLE": "Home to this $t(auth.HELLO)",
"SUBTITLE": "$t(auth.WELCOME, {{ \"username\": \"{username}\" }}) this is the home page"
}
}
i18n.t('test.PAGE_HOME.SUBTITLE', {args: { username: 'Toon' } })
// => Hello Toon, this is the home page
tip

The formatter is applied before doing nested translations. This way you can pass on arguments to your nested translations! 🎉