피드로 돌아가기
How to Set Up i18n in NestJS — with Vietnamese Translations
Dev.toDev.to
Backend

HeaderResolver 기반 다국어 자동 감지 및 NestJS i18n 아키텍처 설계

How to Set Up i18n in NestJS — with Vietnamese Translations

fadow2026년 5월 15일3beginner

Context

글로벌 서비스 확장 시 언어별 톤앤매너 유지와 효율적인 번역 관리 체계 필요성 증대. 기존 수동 언어 설정 방식의 번거로움과 다국어 메시지 처리 로직의 파편화 해결 요구.

Technical Solution

  • nestjs-i18n 라이브러리를 통한 중앙 집중식 Translation Resource 관리 구조 설계
  • HeaderResolver를 활용한 Accept-Language 헤더 기반의 클라이언트 언어 자동 감지 체계 구축
  • I18nContext를 Exception Filter에 통합하여 API 에러 메시지의 실시간 동적 번역 처리
  • JSON UTF-8 인코딩을 통한 베트남어 특수 성조 및 문자열 원어 처리 보장
  • Interpolation 기능을 활용한 {min}, {max} 등 가변 데이터 포함 메시지 구조 설계
  • fallbackLanguage 설정을 통한 언어 감지 실패 시 기본 응답 일관성 유지

1. `Accept-Language` 헤더를 통한 자동 언어 감지 로직 적용 여부 검토

2. 전역 `Exception Filter` 단계에서 `I18nContext`를 통한 메시지 변환 처리 적용

3. 다국어 JSON 파일의 UTF-8 인코딩 설정 및 특수 문자 렌더링 테스트 수행

4. 하드코딩된 문자열을 Dot-notation 키 기반의 Resource 파일로 분리

원문 읽기