You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
61 lines
5.4 KiB
Plaintext
61 lines
5.4 KiB
Plaintext
INTSourceChangelist:2607767
|
|
Availability:Public
|
|
Title: 현지화 시스템 개요
|
|
Crumbs:%ROOT%, Gameplay, Gameplay/Localization
|
|
Description:프로젝트 현지화에 관련된 요소에 대한 개요입니다.
|
|
|
|
프로젝트 현지화에는 몇 가지 핵심 개념이 있습니다:
|
|
|
|
* [텍스트](#텍스트)
|
|
* [타겟](#타겟)
|
|
* [컬처](#컬처)
|
|
* [Manifest](#manifest)
|
|
* [Archive](#archive)
|
|
* [LocRes](#현지화리소스_locres_)
|
|
|
|
[REGION:raw]
|
|

|
|
[/REGION:raw]
|
|
|
|
|
|
|
|
## 텍스트
|
|
텍스트는 현지화의 기본 단위입니다. 텍스트는 네임스페이스, 키, 소스 스트링, 디스플레이 스트링으로 정의됩니다. 종합해서 네임스페이스와 키로 이루어진 고유 id 를 텍스트가 가리키는 방식입니다.
|
|
네임스페이스는 동형이의어(문자는 같지만 뜻이 다른 단어)에 다른 id 를 부여하여 다르게 번역할 수 있도록 하는 것입니다. 키는 텍스트에 관련된 특정 맥락을 제공합니다.
|
|
소스 스트링은 번역되지 않은 상태의 원본 형태 스트링입니다. 디스플레이 스트링은 표시되는 스트링으로, 보통 소스 스트링의 번역된 형태입니다.
|
|
|
|
예를 들어, 대화상자가 영어 또는 스페인어로 나타날 수 있습니다. 대화상자에 메시지, "Ok" 버튼, "Cancel" 버튼이 있을 수 있습니다. 세 텍스트 조각 모두 "MyProject" 네임스페이스를 사용할 수 있습니다. 메시지 텍스트는
|
|
"MyMessage" 라는 키, "Ok" 텍스트는 "DialogBox.AffirmativeButtonLabel" 라는 키, "Cancel" 텍스트는 "DialogBox.NegatoryButtonLabel" 라는 키를 사용할 수 있습니다. 네임스페이스와 키에 따라,
|
|
각 텍스트 조각은 고유 id 를 지녀 번역 가능합니다.
|
|
|
|
## 타겟
|
|
타겟은 자체적으로 별도의 이름으로 독립된 현지화 데이터 모듈입니다. 타겟은 지정된 소스 세트로부터 텍스트를 수집하여, manifest 파일에 저장한 다음, 특정 컬처에 해당하는 archive 파일로 번역되어,
|
|
특정 컬처에 해당하는 locres 파일로 컴파일되고, 이 locres 파일을 시스템에 로드하여 표시합니다.
|
|
|
|
단순한 경우 한 프로젝트는 타겟이 하나이거나, 프로젝트의 현지화 데이터를 분리가능한 섹션으로 나누기 위해 타겟을 여럿으로 할 수도 있습니다. 언리얼 에디터에는 언리얼 엔진 나머지와 타겟이 별도로 되어있어,
|
|
에디터는 현지화하되 그 현지화 데이터는 게임 배포시 포함되지 않도록 할 수 있습니다. 보통 한 게임은 게임의 제반 현지화 데이터에 대해 하나의 타겟으로 만들고,
|
|
확장팩용으로 타겟을 추가합니다.
|
|
|
|
## 컬처
|
|
컬처(culture)는 로케일(locale)이라고도 하는데, 언어, 문자, 지역과 같은 디테일을 정의합니다. 컬처는 필수 언어 코드 (ISO-639 표준), 옵션 문자 코드
|
|
(ISO-15924 표준), 옵션 지역 코드 (ISO-3166 표준) 각각이 빼기 또는 밑줄 부호로 구분되는 포맷 스트링으로 식별됩니다.
|
|
|
|
컬처 코드의 예라면 "en" (영어), "es-MX" (스페인어, 멕시코 지역), "zh-Hans-CN" (중국어, 간체, 중국 지역) 식입니다.
|
|
|
|
## Manifest
|
|
Manifest 는 수집한 텍스트를 네임스페이스와 키로 매핑시켜 사람이 읽을 수 있는 JSON 포맷의 소스 스트링으로 저장합니다. Manifest 는 특수한 텍스트 수집 커맨드렛으로 수집된 텍스트를 사용하여
|
|
생성됩니다. Manifests 는 매번 완전히 새로 잘라낸(truncate) 다음 생성되므로, 수동 업데이트해서는 안됩니다.
|
|
|
|
## Archive
|
|
Archive 는 소스 스트링과 그 번역을, 네임스페이스로 매핑시켜 인간이 읽을 수 있는 JSON 포맷으로 저장합니다. Archive 는 지정된 manifest 의 모든 항목에서 텍스트를 짜내는 커맨드렛으로 생성됩니다.
|
|
archive 의 항목에는 키가 없기 때문에, 한 네임스페이스에서 같은 소스를 공유하는 manifest 내 모든 항목은 하나의 archive 항목으로 압축되며, 텍스트가 키만 다르다면 추상적으로 동일한 것으로 간주하여 같은 번역을 사용합니다.
|
|
archive 는 이미 존재한다면 잘라내지 않고 업데이트됩니다. archive 는 그대로 또는 다른 포맷으로 변환하여 번역가에게 제공,
|
|
빈 곳에 번역을 채워 반환받으면 됩니다.
|
|
|
|
## 현지화 리소스 (LocRes)
|
|
LocRes 는 번역된 텍스트를 시스템에 로드할 바이너리 포맷으로 저장합니다. LocRes 는 지정된 하나의 manifest 와 하나 이상의 archive 를 컴파일하는 커맨드렛으로 생성됩니다.
|
|
|
|
시스템은 프로젝트 세팅과 현재 컬처에 따라 LocRes 파일을 로드합니다. 현재 컬처의 LocRes 에 있는 현지화 텍스트는, 현재 컬저의 모든 부모 컬처의 LocRes 에 있는 현지화 텍스트에 추가로 사용됩니다.
|
|
그 덕에 한 언어에 대한 일반적인 번역과 아울러 특정 지역에 대한 특정 번역을 추가하는 것이 가능합니다. 기본적인 예를 들면,
|
|
"Color" 라는 텍스트가 들어있고 "en" (영어) 및 "en-UK" (영국 영어) 컬처를 지원하는 타겟에 대해, "en" LocRes 에는 "Color" 가 "Color" 로 현지화되는 반면,
|
|
"en-UK" LocRes 에는 "Colour" 로 현지화될 것입니다. 사용자가 "en-CA" (캐나다 영어)로 전환했는데 "en-CA" LocRes 에는 "Color" 에 대한 현지화가 없다면, "en" LocRes 에서 "Color" 를 받습니다. |