Django 앱을 7개 언어로 현지화하기 — RTL, JS 게임, 그리고 솔직한 부분들
저자는 도달 범위를 확장하기 위해 대규모 Django 앱을 솔로 개발자로서 7개 언어로 현지화했습니다. 이 결정은 무료 학습 콘텐츠를 전 세계 사용자가 이용할 수 있도록 하고 사이트의 검색 엔진 색인화 가능성을 높이고자 하는 열망에 의해 주도되었습니다. 주요 아키텍처 결정은 UI "크롬"(버튼, 레이블)을 긴 형식의 콘텐츠와 분리하는 것이었습니다. UI 요소는 Django의 gettext 시스템을 활용했으며, 콘텐츠 레슨은 영어로 된 폴백(fallback)과 함께 언어별 Markdown 파일로 저장되었습니다. 핵심 도메인 용어는 일관성과 전문 표준과의 정렬을 유지하기 위해 의도적으로 영어로 유지되었습니다.주요 기술적 과제에는 오른쪽에서 왼쪽으로(RTL) 레이아웃 처리가 포함되었으며, 이는 원활한 미러링을 위해 CSS 논리 속성을 구현해야 했습니다. 또 다른 문제는 Django의 언어 태그(예: zh-hans)와 콘텐츠 디렉토리 명명 규칙(예: zh) 간의 불일치였습니다. JavaScript 번역 통합에는 동적 UI 문자열을 위해 Django의 djangojs 카탈로그를 사용하는 것이 포함되었습니다. 부분적으로 번역된 언어가 404 오류를 발생시키는 대신 영어 콘텐츠로 자연스럽게 폴백되도록 하려면 강력한 콘텐츠 로더가 중요했습니다. 번역된 파일이 영어 원본과 동일한 구조적 무결성을 유지하도록 보장하기 위해 자동 패리티 테스트가 구현되었습니다. 마지막으로, 시스템은 IP 국가 또는 사용자 설정을 기반으로 방문자의 언어 선호도를 결정하며, 명시적인 전환기가 기본값을 재정의합니다. 저자는 비영어 번역이 검토 중인 AI 지원 초안임을 공개적으로 인정했습니다. 이러한 체계적인 접근 방식은 단일 개발자가 여러 언어로 성공적인 현지화를 가능하게 했습니다.