← 개념

Langsys 작동 방식

Langsys는 UI에 이미 있는 문장을 그대로 번역 시스템으로 만들어 줍니다. 관리해야 할 키 파일도, 빌드 시점의 추출 단계도 없습니다. 코드 속 문구가 조회 키이자 기본 언어의 기본값입니다.

시청 · 0:30 워크플로

문구가 곧 키입니다

기존 i18n에서는 문자열마다 식별자를 만들고, 실제 텍스트는 로캘 파일에 저장한 뒤, 둘을 계속 일치시켜야 합니다. Langsys는 이런 간접 단계를 없앴습니다. 실제 문장을 그대로 작성하면, 그 문장이 곧 키가 됩니다.

기존 방식
// Traditional i18n — indirection + a keys file to maintain
t('greetings.hello');            // what does this say? open en.json to find out

// en.json
{ "greetings": { "hello": "Hello, {name}!" } }
Langsys
// Langsys — the phrase IS the key and the base-language default
t('Hello, {name}!', 'Greetings', { name });

원본 텍스트 자체가 키이기 때문에, 앱 어디에 쓰든 같은 문구는 번역 가능한 하나의 항목으로 처리됩니다. 중복 제거는 자동으로 이루어지며, 아직 번역되지 않은 로케일은 원본 텍스트로 대체됩니다. 키가 누락되어 표시되는 자리표시자는 존재하지 않습니다.

실시간 및 지속적 처리

추출 명령을 직접 실행할 필요가 없습니다. 앱이 렌더링되는 동안 SDK가 사용 중인 문구를 자동으로 찾아냅니다. 새 문구는 백그라운드에서 프로젝트의 대상 로케일로 기계 번역되고, 앱은 완성된 카탈로그를 가져옵니다. 오늘 새 문장을 배포해도 곧바로 번역되며, 로케일 번들을 다시 배포할 필요가 없습니다.

라이프사이클

  1. UI는 t(), <Translate> 등으로 문구를 렌더링합니다.
  2. 개발 환경에서는 쓰기 키를 통해 SDK가 새 문구를 탐색하고 등록할 수 있습니다.
  3. Langsys가 프로젝트의 모든 대상 로케일로 기계 번역합니다.
  4. 프로덕션에서는 읽기 전용 키가 사용자 로캘에 맞는 완성된 카탈로그를 가져옵니다.
  5. 로케일을 바꾸면 전체 UI가 번역된 상태로 즉시 다시 렌더링됩니다. 새로고침은 필요 없습니다.

기존 i18n과의 차이. 직접 수정해야 하는 en.json도, t('some.nested.key') 같은 간접 참조도, 빌드 중 추출 단계도, 누락된 키에 대한 대체 처리도 없습니다. 원문 문장이 항상 대체 문구가 되기 때문입니다.

문서 및 학습 센터 검색