DEV Community

ILshat Khamitov
ILshat Khamitov

Posted on • Edited on

NestJS module for adding translations to the application, with a pipe for translating validation errors

Installation

npm i --save nestjs-translates class-validator-multi-lang class-transformer 
Enter fullscreen mode Exit fullscreen mode

Links

https://github.com/EndyKaufman/nestjs-translates - Source code

https://nestjs-translates.site15.ru/api - Demo application with nestjs-translates.

https://github.com/EndyKaufman/nestjs-translates-example - Example generated with nest cli

https://dev.to/endykaufman/nestjs-module-for-adding-translations-to-the-application-with-a-pipe-for-translating-validation-errors-2mf3 - Post in dev.to

https://twitter.com/KaufmanEndy/status/1498730314339954695?s=20&t=FwCcltTG-Vxut6M3JVPsCA - Twitter post

Usage

Update file in app.module.ts

import { HttpException, HttpStatus, Module } from '@nestjs/common'; import { ValidationError } from 'class-validator-multi-lang'; import { getDefaultTranslatesModuleOptions, TranslatesModule, } from 'nestjs-translates'; import { join } from 'path'; import { AppController } from './app.controller'; @Module({ imports: [ TranslatesModule.forRoot( getDefaultTranslatesModuleOptions({ localePaths: [ join(__dirname, 'assets', 'i18n'), join(__dirname, 'assets', 'i18n', 'class-validator-messages'), ], locales: ['en', 'ru'], validationPipeOptions: { transform: true, validationError: { target: false, value: false, }, transformOptions: { strategy: 'excludeAll', }, exceptionFactory: (errors: ValidationError[]) => new HttpException(errors, HttpStatus.BAD_REQUEST), }, }) ), ], controllers: [AppController], }) export class AppModule {} 
Enter fullscreen mode Exit fullscreen mode

Create dictionaries ../assets/i18n/ru.json

{ "word": "слово" } 
Enter fullscreen mode Exit fullscreen mode

example

Top comments (0)