작동 방식

Lingo.dev CLI는 복잡한 현지화 처리 워크플로우를 우아한 명령줄 인터페이스 뒤에 캡슐화합니다.

npx lingo.dev@latest i18n을 실행하면, CLI는 표준 i18n.json 구성 파일을 읽고 다음 5단계를 수행합니다:

1. 콘텐츠 검색

Lingo.dev CLI는 프로젝트를 진실의 원천으로 취급합니다. 버킷 구성에 따라 프로젝트를 재귀적으로 스캔하여 번역 소스 및 대상 파일을 찾아 처리를 위해 메모리에 로드합니다.

검색 단계는 다음을 준수합니다:

  • locales/[locale].json과 같은 포함 패턴
  • 건너뛰고 싶은 파일에 대한 제외 패턴
  • 다양한 파일 유형에 대한 다중 버킷 구성

2. 데이터 정리

모든 콘텐츠가 번역을 필요로 하는 것은 아닙니다. 프로덕션 애플리케이션에는 일반적으로 언어 간에 변경되지 않는 숫자, 불리언, 날짜, UUID 및 코드 스니펫이 포함되어 있습니다.

Lingo.dev CLI는 다음을 지능적으로 필터링합니다:

  • 42 또는 3.14와 같은 숫자 값
  • 불리언 값(true/false)
  • ISO 날짜 및 타임스탬프
  • UUID 및 유사한 식별자
  • 코드 블록 및 기술적 스니펫

이 필터링은 LLM 추론 비용을 줄이고 번역 가능한 콘텐츠에만 집중함으로써 처리 속도를 향상시킵니다.

3. 델타 계산

변경되지 않은 콘텐츠는 재번역되지 않아야 합니다. Lingo.dev CLI는 다음과 같은 정교한 버전 관리 시스템을 구현합니다:

  • SHA-256 해싱을 사용하여 콘텐츠 지문을 생성
  • 현재 콘텐츠를 i18n.lock에 저장된 이전 상태와 비교
  • 새로운, 수정된, 삭제된 번역 키를 식별
  • 번역 엔진에 델타만 전송

이러한 점진적 접근 방식은 매번 전체 콘텐츠 라이브러리가 아닌 새로운 또는 변경된 내용에 대해서만 비용을 지불한다는 것을 의미합니다.

자세히 알아보기: i18n.lock 락파일

4. 현지화

인터넷 연결이 불안정하거나 LLM 제공업체 서비스 중단 시에도 현지화는 신뢰할 수 있어야 합니다. 이 단계에서 Lingo.dev CLI는 변경 사항을 감지하여 구성된 번역 백엔드로 전송합니다.

CLI는 다음을 구현합니다:

  • 네트워크 오류에 대한 지수 백오프 재시도 전략
  • 자동 오류 복구 및 부분 진행 상태 저장
  • 원시 LLM API(OpenAI, Anthropic) 및 Lingo.dev 엔진 모두 지원
  • 다중 대상 언어에 대한 동시 처리

각 번역 요청에는 프로젝트 전체에서 일관성과 품질을 보장하기 위한 맥락 정보가 포함됩니다.

5. 콘텐츠 주입

깨끗하고 검토 가능한 변경 세트를 유지하기 위해 Lingo.dev CLI는 소스 콘텐츠가 존재하는 정확한 위치에 번역을 주입합니다. 이 접근 방식은:

  • 파일 구조 및 형식 보존
  • 불필요한 git 충돌 방지
  • 최소한의 집중된 차이점 생성
  • 존재하는 경우 기존 Prettier 구성 존중

결과적으로 수작업으로 제작된 것처럼 보이는 현지화된 파일이 코드 검토 및 배포 준비가 완료됩니다.

전체 워크플로우

이러한 다섯 단계는 일반적으로 두 가지 유형의 변경사항을 생성합니다:

  1. 로컬라이제이션 파일 — 새로운 번역과 수정된 번역으로 업데이트됨
  2. i18n.lock 파일 — 상태 추적을 위한 콘텐츠 지문으로 업데이트됨

두 가지 모두 수동으로 또는 CI/CD 통합을 통해 자동으로 저장소에 커밋되어야 합니다.

이 아키텍처는 Lingo.dev CLI가 몇 개의 문자열을 번역하는 단일 개발자부터 수십 개의 언어에 걸쳐 수백만 단어를 관리하는 팀까지 효율적으로 확장될 수 있도록 보장합니다.

다음 단계

이제 Lingo.dev CLI가 내부적으로 어떻게 작동하는지 이해했으므로 다음을 수행할 수 있습니다:

  • 커뮤니티 참여: Discord — Lingo.dev CLI를 사용하는 다른 개발자와 연결하고, 피드백을 공유하며, 현지화 과제에 대한 도움을 받으세요.
  • 프로젝트에 기여: 이슈 열기 — Lingo.dev CLI는 오픈 소스이며 기여를 환영합니다. 열린 이슈를 탐색하고, 기능을 제안하거나, 모든 사용자를 위해 도구를 개선하는 데 도움이 되는 풀 리퀘스트를 제출하세요.