현지화 파일은 메모장이나 TextEdit 또는 프로그래머가 사용하는 수많은 향상된 텍스트 편집 도구와 같은 텍스트 편집자에서 열고 편집할 수 있는 텍스트 파일입니다. 이 파일들은 일반적으로 키-값 원칙을 따릅니다. 즉, 이 파일들은 고유한 ID(키)와 연결된 텍스트 조각(Strings) 목록을 포함합니다. 따라서 각 String은 키의 값입니다(이 간단한 예는 Java 프로그래밍에서 사용되는 현지화 파일의 형식입니다.):
-
key1 = value1
-
key2 = value2
-
...
-
keyN = valueN
현지화 파일 생성
현지화 파일은 간단한 구조를 가진 일반 텍스트 파일입니다. 이 파일들은 수동으로 생성할 수 있지만, 일반적으로 다양한 개발 환경에서 사용할 수 있는 국제화 유틸리티나 스크립트에 의해 자동으로 생성됩니다. 현지화 파일의 자동 생성은 파일 구조가 유효함을 보장합니다.
현지화 파일을 생성하려면 코드 파일 내의 모든 표시 가능한 텍스트 조각을 고유한 키로 대체해야 합니다. 그런 다음 텍스트 Strings를 해당 키와 함께 현지화 파일에 추가합니다.
현지화 파일 사용
실제 텍스트 Strings 대신 코드에는 이제 키만 포함됩니다. 소프트웨어가 사용자를 위한 뷰를 생성할 때, 이 키들을 사용하여 현지화 파일에서 관련 Strings를 조회합니다.
애플리케이션이 영어와 스페인어로 사용되도록 설정된 경우, 모든 영어 텍스트는 English.txt라는 파일에 보관될 수 있으며 이것이 기본 텍스트 위치입니다. 사용자가 언어를 선택하지 않으면, 모든 텍스트가 이 파일에서 추출되어 화면을 생성합니다. 사용자가 스페인어를 선택하면 소프트웨어는 Spanish.txt(으)로 리디렉션됩니다. 이와 같은 시스템에서는 많은 언어를 사용할 수 있습니다.
장점은 디스플레이용 언어 선택이 코드에 영향을 주지 않는다는 것입니다. 소프트웨어가 로그인 버튼을 표시해야 하는 경우, 키 login_button와 관련된 문자열이 필요할 수 있으며 주어진 언어에 적합한 문자열을 검색하기 위해 어떤 파일을 찾아야 하는지만 알면 됩니다.
문자열 관리
키 기반 번역 플랫폼인 Phrase는 다양한 리소스 파일 형식을 지원합니다. 파일이 업로드되면 키와 그와 관련된 문자열 값이 추출됩니다. 그런 다음 키와 문자열이 표준화된 형식으로 번역가에게 제공됩니다. 번역가는 현지화 파일의 정확한 형식에 대해 걱정할 필요 없이 자신의 과업에 집중합니다. 키 자체가 중요한 맥락을 제공하고 올바른 단어 선택으로 안내할 수 있으므로 키를 검사할 수 있습니다.
모든 문자열이 번역되면 파일이 다운로드됩니다. 이 과정에서 원래 소스 파일과 일치 항목을 이루는 필요한 현지화 파일 형식이 생성됩니다.
리소스 형식
네 가지 광범위한 유형의 리소스가 지원되며, 모두 기본적으로 텍스트 기반이므로 텍스트 편집자에서 열고 검사할 수 있습니다.
스프레드시트
.XLSX 및 .CSV 파일이 지원됩니다. 이러한 형식은 현지화 목적상 동일하며 키-값 쌍의 행을 포함합니다. 키는 한 행에 있고, 해당 값은 인접한 행에 있습니다. 어떤 열이 어떤 목적으로 사용되는지는 애플리케이션에 따라 다르며, 현지화 담당자는 열을 올바르게 해석하도록 Phrase를 구성해야 합니다. Zendesk .CSV 파일은 고정된 구조를 가지므로 이 파일 유형은 추가 조정이 필요하지 않습니다:
"Title","Default 언어","Default text","English text","Variant 상태" "simple_key","German","Einfacher Schlüssel.","Simple key.","Current"
XML
XML은 <태그> 형식으로 메타 정보를 제공하는 형식입니다. 태그 구조는 Android XML 파일에서 볼 수 있듯이 키와 해당 값이 어디에 있는지 확인하는 데 사용됩니다:
<string name="simple_key">메시지가 있는 키입니다.</string>
두 가지 표준 XML 번역 형식은 .TMX 및 .XLIFF입니다. 이러한 파일은 한 언어의 키와 값만 보관하는 것이 아니라 소스 언어의 값 쌍을 대상 언어의 해당 값과 연결합니다. Symfony Xliff 파일의 이 번역 단위에서 볼 수 있듯이 이러한 파일은 일반적으로 이중 언어입니다:
<trans-unit id="simple_key" resname="simple_key"> <source xml:lang="de-DE">Nur ein einfacher Schlüssel mit einer einfachen Nachricht.</source <target xml:lang="en-GB">Just a simple key with a simple message.</target> </trans-unit>
QT 프로그램은 이러한 표준화된 형식과 매우 유사한 구조의 리소스 파일을 사용하지만, 역사적인 이유로 레이아웃이 다릅니다.
단순 키-값 목록
Ruby on Rails YAML의 이 코드 조각에서 볼 수 있듯이 키와 값의 단순 목록만 포함하는 리소스 파일이 있습니다:
simple_key: Just a simple key with a simple message.
많은 다양한 프로그래밍 언어나 플랫폼에서 사소한 레이아웃 차이가 있는 이러한 형식을 사용합니다.
이러한 파일은 단일 언어 파일이므로, 현지화 프로그램은 소스 언어용 파일 하나와 대상 언어용 파일 등 이러한 파일의 병렬 버전을 유지 관리해야 합니다.
Gettext는 설명 주석이나 복수형 변형과 같은 추가 정보가 포함된 키-값 파일을 생성합니다:
# 이 키에 대한 놀라운 설명입니다! msgid "key_with_description" msgid_plural "" msgstr[0] "확인해 보세요!" 이 키에는 설명이 있습니다! (최소 일부 형식으로)" msgstr[1] "확인해 보세요!" 이 키에는 %s개의 설명이 있습니다! (최소 일부 형식으로)"
비교적 사소한 방식으로 레이아웃이 다른 유사한 기능을 가진 경쟁 형식이 있습니다.
연관 배열
다른 형식은 읽기 위해 사용자 지정 코드(파서)가 필요하지만, 일부 형식은 개발자와 현지화 담당자에게 더 쉽습니다. .JSON(JavaScript) 및 .PHP 배열 기반 형식은 읽을 수 있으며 조작하기 쉬운 일반적인 코드 구조(배열)로 직접 매핑될 수 있습니다. 배열은 복잡할 수 있으며 서로 다른 애플리케이션이 사용자 지정 배열 구조를 생성합니다.
예를 들어, go-i18n JSON은 키를 ID(으)로 지칭합니다:
{
"id": "simple_key",
"번역": "간단한 키, 간단한 메시지, 아주 간단합니다."
},
Angular는 배열에서 키 자체를 키로 사용합니다:
"simple_key": "I am a simple key with a simple message.".
이러한 사소한 문제이지만 중요한 차이점이 있기 때문에 널리 사용되는 .JSON 및 .PHP 배열 구조가 지원됩니다.