Kord/Docs/Rules/i18n_guidelines.md

1.7 KiB

i18n (다국어 지원) 개발 가이드라인

Kord 봇의 모든 유저 노출 기능은 글로벌 시장 대응을 위해 다국어 지원(Internationalization)을 필수로 합니다.

기본 원칙

  1. 상시 검토: 사용자의 명시적인 요청이 없더라도, 유저에게 노출되는 모든 텍스트(메시지, 임베드, 버튼 라벨, 상태 메시지 등)는 i18n 적용 대상입니다.
  2. 하드코딩 금지: 소스 코드 내에 유저 노출 문자열을 직접 작성하지 마십시오. 반드시 src/i18n/ 시스템을 사용해야 합니다.
  3. 로케일 우선순위: resolveLocale()을 사용하여 유저 설정 -> 서버 설정 -> 클라이언트 언어 -> 기본 언어(English) 순으로 언어를 결정합니다.

구현 단계

1. 키 정의

  • src/i18n/types.tsTranslationSchema 인터페이스에 새로운 구조를 추가합니다.

2. 번역 데이터 작성

  • src/i18n/locales/en.ts (기본 언어, 필수 작성)
  • src/i18n/locales/ko.ts (한국어 지원 시 작성)

3. 코드 연동

  • t(locale, 'key', { vars }) 함수를 사용하여 번역된 문자열을 가져옵니다.

테스트 코드 준수 사항

테스트 코드에서도 번역된 문자열을 비교할 때는 하드코딩 대신 i18n 시스템을 참조해야 합니다.

  • 검사 방법: npm run check-i18n 명령어를 실행하여 하드코딩된 i18n 값이 있는지 확인합니다.
  • 예외 처리: 의도적으로 하드코딩이 필요한 경우(예: i18n 자체 테스트), 해당 줄 끝에 // i18n-ignore 주석을 추가합니다.

변경 이력

  • 2026-03-27: i18n 필수 적용 원칙 수립 및 가이드라인 생성