Skip to main content

@hodfords/nestjs-cls-translation

Hodfords Logo

nestjs-cls-translation provides context-aware translations in NestJS applications using Context-Local Storage (CLS), making it easier to manage and access locale-specific data across different parts of your application.

Installation πŸ€–β€‹

Install the nestjs-cls-translation package with:

npm install @hodfords/nestjs-cls-translation --save

You'll need to configure the translation module by adding it to your NestJS app's module setup. Here’s how you can configure it:

TranslationModule.forRoot({
fallbackLanguage: 'en',
parser: I18nJsonParser,
parserOptions: {
path: path.join(env.ROOT_PATH, 'i18n/'),
watch: true
},
resolvers: [new HeaderResolver(['language'])]
});

Usage πŸš€β€‹

Translation Functions​

To translate a specific key, use the trans function, passing the key for the translation string you wish to fetch:

const translatedText = trans('error.an_error_occurred')

This will return the translated string based on the user's current language, or the fallback language if no specific translation exists for the user's language.

Get Current Language​

To retrieve the language currently being used in the context of a request, use the currentLanguage() function:

const currentLang = currentLanguage()

Get Default Language​

If you need to access the application's default or fallback language (set in the module configuration), use the defaultLanguage() function:

const defaultLang = defaultLanguage()

Run with a Specific Language Context​

You may want to execute certain parts of your code in a specific language context. The runInLanguage() function allows you to run a block of code under a designated language context, overriding the current language:

await runInLanguage('en', () => {...});

License πŸ“β€‹

This project is licensed under the MIT License