nestjs-i18n
v10.5.0
Published
The i18n module for Nest.
Downloads
609,265
Readme
Features
nestjs-i18n comes with a bunch of tools to help add multiple language support to your project.
- Type safety 🎉 (instructions)
- Variable formatting (instructions)
- Fallback languages (instructions)
- Live reloading 🎉
- Plurals support (instructions)
- GraphQL support (instructions)
- gRPC support (instructions)
- DTO validation (instructions)
- View engine support (hbs or pug or ejs)
- Custom resolvers
- Custom loaders
- Custom formatters
Getting started
To get started follow the quickstart, or take a look at the docs.
License
nestjs-i18n
is MIT licensed.
Breaking changes:
from V10.0.0 on we removed the
I18nRequestScopeService
. This because we now haveasync_hooks
support. This allows you to get the currentI18nContext
by doingI18nContext.current()
.from V9.0.0 on we renamed the
parser
property toloader
. Thetranslate
function no longer returns a promise 🎉. A lot of new features and new docs, see nestjs-i18n.com.from V8.0.0 on we changed the internal
I18n-middleware
for aninterceptor
this way we can provide theExecutionContext
so thatnestjs-i18n
works on different protocols as well, such as gRPC and WebSockets. This contains one breaking change. It only applies to your code if you've made a customresolver
. To resolve this breaking change take a look at this example. Instead of providing thereq
in theresolve
method, change this to take theExecutionContext
as argument.from V6.0.0 on we implemented the
I18nParser
, by using this we can easily support different formats other than JSON. To migrate to this change look at the quickstart. There are some changes in the declaration of theI18nModule
. Note: thetranslate
function returns aPromise<string>
. So you need to call it usingawait i18n.translate('HELLO')
;from V4.0.0 on we changed the signature of the
translate
function, thelanguage
is now optional, if nolanguage
is given it'll fallback to thefallbackLanguage
.from V3.0.0 on we load translations based on their directory name instead of file name. Change your translations files to the structure found in the quickstart.