adonis에서 유효성검사 메시지를 언어별로 활용할 수 있는 기능이 추가되었다.
기존에는 i18next를 사용했는데,
adonis에서 새로 생겨서 적용해봤다.
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')
])
아래 키를 활성화해주고 값을 입력한다.
//config/i18n.ts
supportedLocales: ['ko', 'en'],
/resources/lang/ko 에
errors.json 파일을 만들고 아래 내용을 넣었다. (파일명은 임의대로 지으면 된다.)
{
"UnAuthorized": "잘못된 접근입니다.",
"NotFound": "찾을 수 없습니다."
}
컨트롤러에서 아래처럼 코드를 작성하고 테스트하니, 에러가 잘 날아온다.
import I18n from '@ioc:Adonis/Addons/I18n'
console.log(I18n.locale('ko').formatMessage('error.UnAuthorized'))
// api 에러 결과 화면
{
"error": {
"code": 401,
"message": "잘못된 접근입니다."
}
}