UDN
Search public documentation:

LocalizedTextFilesKR
English Translation
日本語訳
中国翻译

Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

UE3 홈 > 언리얼스크립트 > 언리얼 엔진의 텍스트 로컬라이징

언리얼 엔진의 텍스트 로컬라이징


문서 변경내역: Josh Adams 작성. Richard Nalezynski 업데이트.

개요


Unreal Engine은 주로 현지화된 텍스트 파일에 의존하여 지정된 언어로 텍스트를 표시합니다.

구성은 키-값의 쌍에 의해 결정되어 섹션에 배열됩니다. 주어진 키에 하나 이상의 값이 결합될 수 있습니다.

게임 프로젝트의 엔진 구성 파일 에서 Language 변수를 설정하면 특정 언어로 변경할 수 있으며, 이는 Localization 디렉토리와 상호연관됩니다.

다음 예는 언어를 일본어로 설정하는 방법입니다:

[Engine.Engine]
...
Language=jpn
...

UnrealLoc


UnrealLocKR 도구는 엔진에서 현지화된 텍스트를 관리하기 위해 작성된 것입니다; 이는 보다 일상적인 작업들을 처리합니다.

현지화된 텍스트 파일을 사용하여 작업하기


UE3에서 현지화는 \Localization 디렉토리 및 서브 디렉토리에 있는 일련의 현지화된 텍스트 파일을 사용하여 처리됩니다. 각 언어는 해당 언어 파일이 속한 서브 디렉토리에 해당하는 고유의 세자리 코드 (JPN=일본어, KOR=한국어, CHT=중국어, DEU=독일어 등)를 갖습니다. 명확하게 알기 어려운 코드들(라틴 아메리칸과 유로피안 스페인어를 뜻하는 ESM, ESN 등)도 있습니다. 심지어, 기본 언어인 영어 빌드에도 문자 코드 INT(국제어)를 사용하는 현지화 파일이 사용되어야 합니다. (영어에 대해서는 ENG를 사용할 수도 있음)

파일 포맷

현지화된 텍스트 파일 자체는, 비록 유니코드(UTF-16 little-endian)로서 저장되어야 하지만, 그저 간단한 INI-스타일의 구성 파일 이며, 엔진 카운터파트로부터 상속받지 않습니다. 파일명은 현지화된 데이터가 속한 패키지와 동일하며, 확장자는 Localization 디렉토리에서 해당 파일이 상주하는 디렉토리와 동일합니다.

섹션 및 키-값 쌍

일반적인 구성 파일은 키-값 쌍의 섹션으로 이루어지며 다음과 같이 배열됩니다.

[Section]
Key=Value

예를 들어, MyGame.u라는 스크립트 패키지가 있다면 MyGame.u에는 스크립트 클래스에 대해 현지화된 기본 문자열이 모두 들어있는 MyGame.int가 있어야 합니다. 따라서, 현지화된 문자열 속성 CheckpointReachedStringLoadingString 이 있는 스크립트 클래스 MyHUD.uc 가 있다면 MyGame.int의 섹션 중 하나는 다음과 같을 것입니다:

[MyHUD]
CheckpointReachedString=Checkpoint Reached
LoadingString=Loading

이 섹션에 대해 명심할 사항 중 하나는 수작업으로 작성해야 한다는 것입니다. UnrealScript는 UnrealScript 클래스의 defaultproperties 섹션에서 현지화 가능한 속성에 대해 기본 문자열을 지정할 수 있게 하지 않습니다. 여러분이 시도해봐도 스크립트가 컴파일되지 않을 것입니다. 이는 사실 좋은 일입니다. 왜냐하면 번역되어야 할 문자열을 여러분이 인식하여 그것을 가능한 한 신속하게 현지화된 텍스트 파일에 넣도록 하기 때문입니다.

문자열 데이터

데이터나 맵 패키지의 일부인 현지화된 문자열도 유사한 방식으로 작용하지만 몇 가지 중요한 차이가 있습니다. 이러한 패키지에 대해 현지화된 텍스트를 여러분이 손수 작성할 수도 있지만, 패키지 상에서 Generic 브라우저 내의 package tree view(패키지 트리 보기)의 컨텍스트 메뉴에서 Full Loc Export... 명령을 실행하는 것이 더 나은 방법입니다. 이 명령은 필요한 텍스트를 가진 현지화된 텍스트 파일을 각 패키지별로 자동 생성합니다.

주의: 속성 창에서 입력한 내용은 다음 번에 패키지나 맵을 로드할 때 INT 콘텐츠에 의해 겹쳐쓰기됩니다. 에디터 세션을 종료하기 전에 loc 파일을 re-xport(다시 내보내기) 해야 합니다.

객체별 문자열 데이터

위의 MyHUD 예는 클래스의 인스턴스가 다수 존재하더라도 CheckpointReachedStringLoadingString 속성에는 단 하나의 문자열만 사용된다고 가정한 것입니다. 만일 여러분이 각 인스턴스에 대해 디자이너가 각기 다르게 현지화할 수 있는 텍스트가 있어야 하는 클래스를 작성한다면 어떤 일이 생길까요? 예를 들어, 무기를 빌드하는 시스템으로서 아키타입을 사용 하는 경우, 각 무기에는 현지화된 이름과 설명이 필요할 것입니다. 이 경우, 현지화 가능한 문자열 속성을 가진 클래스는 그 정의에 perobjectconfig 로 표시되어야 합니다. 이렇게 함으로써, 해당 클래스의 객체가 포함된 패키지 상에서 Full Loc Export... 를 실행하면 클래스의 각 인스턴스에 대해 개별적인 문자열이 출력될 것입니다. 예를 들어 세 개의 WAV 파일(WAV1, WAV2, WAV3)이 들어 있는VO.upk 라는 패키지가 있고, 각 파일에 데이터가 채워진 SpokenText 필드가 있는 경우, 패키지에서 Full Loc Export... 를 실행하면 다음과 같은 섹션이 들어 있는 VO.int라는 현지화된 텍스트 파일이 생성됩니다:

[WAV1 SoundNodeWave]
SpokenText="<WAV1 Text, whatever that may be>"

[WAV2 SoundNodeWave]
SpokenText="<WAV2 Text, whatever that may be>"

[WAV3 SoundNodeWave]
SpokenText="<WAV3 Text, whatever that may be>"

섹션 이름에 리소스 이름과 해당 클래스가 모두 포함되어 있는 것을 눈여겨 보십시오. 이는 파일 이름 VO.int와 결합되어 VO.upk 내의 모든 현지화된 문자열을 구체적으로 어드레스 해야 합니다.

UIStrings에서의 래핑과 줄 바꾸기

현지화된 텍스트 파일을 수동으로 편집할 때, UI Strings의 래핑과 줄 바꾸기 문제에 부딪칠 수 있습니다.

예를 들어, 아래의 코드는,

[GenericStrings]
Output="Line 1/nLine2/nLine 3"

다음과 같은 결과를 출력합니다.

Line 1ine2ine3

이 문자열을 UI Editor DataStore 브라우저 에서 미리보기해도 같은 결과가 나옵니다.

그러나 하나의 현지화된 문자열을 수정하여 변경사항을 UI Editor DataStore 브라우저 내에서 적용하면 영향을 받는 INT 파일 전체에서 문자열을 둘러싼 인용부호가 모두 자동으로 제거됩니다. 이는 탈출문자(escape character)가 예상대로 작용하도록 하는 것입니다.

해결책: 텍스트 에디터에서 INT 파일에 현지화된 문자열을 수동으로 입력하는 경우, 인용부호를 사용하지 말 것!

다음은 올바른 선언입니다.

[GenericStrings]

Output=Line 1/nLine2/nLine 3

다음과 같은 결과가 출력됩니다.

Line 1
Line 2
Line 3

이진 데이터

이진 데이터의 경우 현지화란 단지 목표 언어의 세자리 코드를 사용하는 추가 확장자를 가진 각기 다른 패키지를 갖는 것입니다. 따라서, 예를 들어 현지화되어야 하는 텍스처가 들어있는 Art.upk 라는 패키지가 있고 현재 실행 중인 언어가 일본어(Engine.ini에 지정된 대로)라면, 엔진은 텍스처를 찾기 위해 Art.upk를 검색하기 전에 자동으로 Art_jpn.upk라는 패키지를 먼저 검색합니다. 이는 콘솔의 쿠킹 과정과 연관되는데, seek-free(무탐색) 패키지를 올바른 현지화된 데이터로 채우기 위해 각 언어에 대해 한 번의 쿡 처리를 할 필요가 있을 수 있기 때문입니다.

별도의 텍스트 파일에 현지화 데이터를 갖는 이점은 콘텐츠를 재저장할 필요없이 게임 내에서 데이터를 신속하게 반복처리하고 미리볼 수 있다는 것입니다. 이러한 이점은, 콘텐츠 변경 시 쿠킹 처리가 필요한 콘솔에서 특히 유리합니다.

현지화된 텍스트 파일 데이터 선언하기

클래스 선언은 현지화된 텍스트 파일의 새 섹션 이름을 설명합니다. localized 키워드가 포함된 문자열은 모두 내보내기 할 수 있으며, 따라서 관련 현지화된 텍스트 파일 내에 있게 됩니다.

예를 들어, 다음 클래스에서는 문자열이 현지화된 텍스트 파일 MyGame.int 로 내보내기될 것임을 선언합니다:

class MyHUD extends HUD
   var localized string CheckpointReachedString;
   var localized string LoadingString;

현지화된 문자열에 대한 추가 정보는 [[UnrealScriptReferenceKR]KR[UnrealScript 참조]] 를 참고하십시오.

사용할 수 있는 현지화된 텍스트 파일들


현지화된 텍스트 파일은 지정된 프로젝트의 Localization 디렉토리에서 특정 언어의 서브디렉토리 내에 위치합니다.

다음은 Unreal Engine을 사용하는 지정된 프로젝트에서 사용가능한 현지화된 텍스트 파일의 목록입니다.

  • .int (프로젝트 이름)
  • Editor.int (프로젝트에서 에디터 변경사항이 있는 경우)
  • UI.int (UI용)
  • Content.int (이진 콘텐츠용)
  • Credits.int (크레디트용)
  • Subtitles.int (서브타이틀용)