Skip to content

refactor(i18n): lib 레이어 에러 메시지 i18n 처리 검토 #286

Description

@amondnet

배경

PR #284 (feat(auth)) 리뷰에서 CodeRabbit이 lib 레이어(src/lib/github-app.ts, src/lib/app-auth.ts)에서 던지는 사용자 노출 에러 메시지가 영어 하드코딩이라 ko 로케일에서도 영어로 출력된다는 점을 지적했습니다 (스레드: login.ts:50, github-app.ts:107, i18n.ts:425).

현재 상태 (decline 사유)

이 저장소의 기존 컨벤션은 다음과 같습니다:

  • lib 레이어(github-api.ts, github-graphql.ts 등)는 진단용 Error 메시지를 영어로 던진다.
  • 명령 레이어(src/commands/**)가 errorPrefix와 진행/성공 메시지를 i18n으로 처리한다.

auth 모듈도 동일 컨벤션을 따랐으며(명령 레이어 진행/성공 메시지는 ko/en 모두 처리), auth만 lib 에러를 i18n으로 바꾸면 오히려 저장소 내 일관성이 깨집니다. 따라서 PR #284에서는 적용하지 않고 별도 이슈로 분리합니다.

제안 (별도 검토)

저장소 전반에 걸쳐 lib 레이어 에러 처리 전략을 통일:

  • 옵션 A: lib에서 구조화된 에러 코드/키를 반환하고 명령 레이어에서 getXxxMessages()로 매핑
  • 옵션 B: 현행 유지(영어 진단 메시지 + 명령 레이어 i18n prefix)를 공식 컨벤션으로 문서화

auth 모듈만이 아니라 github-api.ts / github-graphql.ts 등 전체에 일괄 적용해야 일관성이 유지됩니다.

참고

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions