adonisJS/i18n 적용 (i18next)

flobeeee·2022년 7월 14일
0

Today I Learned

목록 보기
25/35

0.소개

adonis에서 유효성검사 메시지를 언어별로 활용할 수 있는 기능이 추가되었다.

기존에는 i18next를 사용했는데,
adonis에서 새로 생겨서 적용해봤다.

공식문서 i18n


1.설치

npm i @adonisjs/i18n
node ace configure @adonisjs/i18n

명령어를 치면, borwser에서 보여줄건지, terminal에서 보여줄건지 고른다.
(borwser을 선택했다.)

아래처럼 설정하라고 예문이 나온다.

// start/kernel.ts

Server.middleware.register([
  // ... other middleware(s)
  () => import('App/Middleware/DetectUserLocale')
])

2.설정

아래 키를 활성화해주고 값을 입력한다.

//config/i18n.ts

supportedLocales: ['ko', 'en'],

3.메시지 설정

/resources/lang/ko 에

errors.json 파일을 만들고 아래 내용을 넣었다. (파일명은 임의대로 지으면 된다.)

{
  "UnAuthorized": "잘못된 접근입니다.",
  "NotFound": "찾을 수 없습니다."
}

4. 테스트

컨트롤러에서 아래처럼 코드를 작성하고 테스트하니, 에러가 잘 날아온다.

import I18n from '@ioc:Adonis/Addons/I18n'

console.log(I18n.locale('ko').formatMessage('error.UnAuthorized'))


// api 에러 결과 화면

{
	"error": {
		"code": 401,
		"message": "잘못된 접근입니다."
	}
}
profile
기록하는 백엔드 개발자

0개의 댓글