i18n과 l10n이란
국제화(Internationalization, i18n)는 여러 언어/지역을 지원할 수 있게 소프트웨어를 설계하는 것입니다. 40년간 글로벌 소프트웨어를 개발해온 저로서는 처음부터 i18n을 고려하는 것이 나중에 추가하는 것보다 훨씬 쉽다고 강조합니다. 지역화(Localization, l10n)는 특정 지역에 맞게 적용하는 것입니다.
텍스트 처리
하드코딩된 문자열을 사용하지 않습니다. 리소스 파일로 분리합니다. 키-값 쌍으로 번역을 관리합니다. 복수형, 성별 처리에 주의합니다. 언어마다 규칙이 다릅니다. 문자열 연결 대신 포맷 문자열을 사용합니다. 어순이 다른 언어도 있습니다.
날짜, 숫자, 통화
날짜 형식은 지역마다 다릅니다. MM/DD/YYYY vs DD/MM/YYYY. 숫자 구분자도 다릅니다. 1,234.56 vs 1.234,56. 통화 기호와 위치가 다릅니다. 타임존을 고려합니다. 서버는 UTC로, 표시는 사용자 타임존으로. Intl API, moment.js, date-fns를 활용합니다.
UI 고려사항
텍스트 길이 변화에 대응합니다. 번역되면 길어지거나 짧아집니다. RTL(오른쪽에서 왼쪽) 언어를 지원합니다. 아랍어, 히브리어. 아이콘, 이미지에 문화적 차이가 없는지 확인합니다. 색상의 의미도 문화마다 다를 수 있습니다.
번역 프로세스
번역 관리 시스템(TMS)을 사용합니다. Crowdin, Lokalise, Phrase. 번역가에게 컨텍스트를 제공합니다. 기계 번역은 검토 후 사용합니다. 지속적 통합에 번역 검증을 포함합니다. 번역 테스트(유니코드, 긴 문자열)를 수행합니다.
댓글
0