국제화 시작하기¶
프로젝트가 있고 여러 언어로 번역하고 싶으신가요? 이 가이드가 도움이 됩니다. 여러 가지 전형적인 상황이 소개되지만 대부분의 예시는 일반적이며 다른 시나리오에도 적용할 수 있습니다.
소프트웨어를 번역하기 전에 전 세계 언어가 매우 다르며 경험에 기반한 가정을 해서는 안 된다는 것을 인식해야 합니다. 대부분의 언어에서 번역된 세그먼트를 문장으로 연결하려고 하면 이상하게 보일 수 있습니다. 또한 복수형을 적절하게 처리해야 합니다. 많은 언어에 복잡한 규칙이 있으며 사용하게 될 국제화 프레임워크가 이를 지원해야 합니다.
마지막으로, 때때로 번역된 문자열에 일부 컨텍스트를 추가해야 할 수 있습니다. 번역자가 Sun 이라는 문자열을 번역한다고 상상해 보세요. 컨텍스트 없이 대부분의 사람들은 가장 가까운 별로 번역하겠지만, 실제로는 일요일의 약어로 사용될 수 있습니다.
국제화 프레임워크 선택¶
플랫폼에서 표준인 것을 선택하고, 현지화를 처리하기 위해 자체 프레임워크를 만드는 것을 피하세요. Weblate는 대부분의 널리 사용되는 프레임워크를 지원합니다. 자세한 정보는 현지화 파일 형식 (특히 번역 유형 기능)를 참조하세요.
일부 플랫폼에 대한 저희의 개인적인 권장 사항은 다음 표에 있습니다. 이는 경험에 기반한 것이지만 모든 사용 사례를 다룰 수 없으므로 선택할 때 항상 환경을 고려하세요.
플랫폼 |
권장 형식 |
|---|---|
안드로이드 |
|
iOS |
|
Qt |
|
Python |
|
PHP |
|
C/C++ |
|
C# |
|
Perl |
|
루비(Ruby) |
|
웹 확장 |
|
자바(Java) |
|
JavaScript |
일부 형식에 대한 더 자세한 워크플로는 다음 장에서 설명함:
더 보기
올바른 국제화를 위한 개발자 교육¶
소프트웨어 국제화는 문자열을 번역할 수 있는 것뿐만 아니라 다른 국가의 사용자에게 전체 소프트웨어가 네이티브처럼 보이게 하는 것입니다. 여기에는 날짜 또는 숫자 형식, 통화 표시 또는 올바른 방향으로 텍스트 입력하는 것 등도 포함됩니다. 대부분의 소프트웨어 프레임워크는 이에 대한良好的 지원을 제공하므로 이러한 모든 영역에 대해 해당 프레임워크의 지침을 따르세요.
문자열 번역도 간단한 작업이 아닐 수 있습니다. 캡션이나 버튼 레이블 같은 짧은 문자열의 경우 특히 그렇습니다. 다른 언어에는 다른 규칙이 있으며 동일한 문자열이 항상 똑같이 번역될 것이라고 기대하는 것은不合理합니다. 많은 상황에서 어떻게 번역해야 할지도 명확하지 않을 수 있으며 단어가 동사인지 명사인지를 구별하는 것도 어렵습니다.
모든 개발자는 이를 이해하고 다른 범위에서 사용되는 문자열을 고유하게 식별해야 합니다. 예를 들어, “사용자 없음”을 의미하는 None 은 “항목 없음”을 의미하는 None 과 다르게 번역될 수 있습니다. 번역자를 위해 이러한 용어를 구별하기 위해 다른 키 또는 컨텍스트를 사용하세요. Weblate에서 스크린샷 및 시각적 컨텍스트 또는 설명 과 같은 추가 컨텍스트를 제공할 수 있습니다.
기술적인 부분은 작업의 일부일 뿐입니다. 번역자는 문자열, 릴리스 및 커뮤니케이션을 둘러싼 프로젝트 워크플로도 확인합니다. 몇 가지 관행이 협업을 훨씬 쉽게 만듭니다:
번역자의 질문과 의견에 답변하고, 공지된 연락 채널이 실제로 모니터링되는지 확인하세요.
원문 문자열의 불필요한 변경을 피하세요. 사용자에게 보이는 이유 없이 기존 문자열을 다시 작성하거나 바꾸면 불필요한 번역 작업이 발생합니다.
번역자가 짧거나 모호한 문자열을 이해할 수 있도록 충분한 컨텍스트를 추가하세요. 조각에서 문장을 연결하지 말고, 재정렬 가능한 플레이스홀더를 사용하고, 내장된 복수형 처리에 의존하세요.
완료된 작업이 Weblate에 오랫동안 사용되지 않은 채로 남지 않도록 정기적으로 번역을 배포하세요.
워크플로 또는 정책 변경 사항을 전달하고, 소규모 언어 팀에 대해 기여 요구 사항을 현실적으로 유지하세요.
프로젝트가 더 이상 유지 관리되지 않는 경우 구성요소를 무기한으로 열어두지 말고 번역 워크플로에 이를 반영하세요.
Weblate는 이러한 문제 중 일부를 해결하는 데 도움이 될 수 있습니다. 특히 Weblate의 정기적인 자동 커밋은 소스 코드 히스토리에서 번역 진행 상황을 가시화하고 완료된 작업이 릴리스 전에 잊히는 위험을 줄입니다. 자동화 옵션은 지속적 현지화 을 참조하세요.
더 보기