LocalizationService

텍스트 번역 관련 기능을 제공합니다.

# Properties

[{"index":"string CurrentLocaleId (ReadOnly)","0":"클라이언트의 현재 언어 코드입니다. 출시 월드에서는 '월드 언어' 메뉴에서 선택한 언어이며, 메이커에서는 '테스트 플레이 언어' 옵션에서 설정한 언어입니다."}]

[{"index":"Translator LocalTranslator (ReadOnly)","0":"CurrentLocaleId에 해당하는 Translator 객체입니다."}]

# Methods

[{"index":"string GetText(string key) (ClientOnly)","0":"번역 테이블에서 key행 CurrentLocaleId열 텍스트를 찾아 반환합니다."}]

[{"index":"string GetTextFormat(string key, any... args) (ClientOnly)","0":"번역 테이블에서 key행 CurrentLocaleId열 텍스트를 찾아 args로 전달한 값들을 형식에 맞게 채워넣은 결과를 반환합니다."}]

[{"index":"Translator GetTranslatorForLocale(string localeId) (ClientOnly)","0":"localeId에 해당하는 Translator 객체를 반환합니다."}]

[{"index":"string SmartFormat(string format, any... args) (ClientOnly)","0":"CurrentLocaleId에 기반하여 format 텍스트에 args로 전달한 값들을 형식에 맞게 채워넣은 결과를 반환합니다."}]

##### inherited from Service:

[{"index":"EventHandlerBase ConnectEvent(string key, IScriptFunction eventHandler)","0":"이벤트를 연결합니다. 이 서비스에서 타입의 이름이 key인 이벤트가 발생하면, 핸들러로 통지받습니다. 핸들러는 event 매개 변수를 전달받습니다."}]

[{"index":"EventHandlerBase ConnectEvent(Type eventType, IScriptFunction eventHandler)","0":"이벤트를 연결합니다. 이 서비스에서 타입이 eventType인 이벤트가 발생하면, 핸들러로 통지받습니다. 핸들러는 event 매개 변수를 전달받습니다."}]

[{"index":"boolean DisconnectEvent(string key, EventHandlerBase eventHandler)","0":"타입의 이름이 key인 이벤트와 핸들러와의 이벤트 연결을 끊습니다."}]

[{"index":"boolean DisconnectEvent(Type eventType, EventHandlerBase eventHandler)","0":"타입이 eventType인 이벤트와 핸들러와의 연결을 끊습니다."}]

[{"index":"void SendEvent(EventType sendEvent)","0":"이벤트를 발생시킵니다."}]

# Examples

LocaleDataSet에서 텍스트를 조회하고 포맷에 맞게 변환하는 예제입니다. LocaleDataSet에 아래와 같이 내용을 작성해 예제를 사용할 수 있습니다.

[{"Key":"TEXT_TEST1","Source":"Default Text","Note":"일반 텍스트 예제","ko":"안녕","en":"Hello"},{"Key":"TEXT_TEST2","Source":"Default Text","Note":"간단한 포맷 예제","ko":"안녕, {0}!","en":"Hello, {0}!"},{"Key":"TEXT_TEST3","Source":"Default Text","Note":"스마트 포맷 예제(한국어)","ko":"안녕, {0}{0:hpp:아|야}!","en":"Hello, {0}!"},{"Key":"TEXT_TEST4","Source":"Default Text","Note":"스마트 포맷 예제(영어)","ko":"나는 사과 {0}개를 갖고 있다.","en":"I have {0:p:an apple|{} apples}."}]
    
    
    @Component
    script LocalizationDemo extends Component
        method void OnBeginPlay()
        -- 현재 언어 설정에 해당하는 컬럼의 텍스트를 가져옵니다.
        local plainText = _LocalizationService:GetText("TEXT_TEST1")
    
        -- 영어(en) 컬럼을 조회하는 Translator.
        local enTranslator = _LocalizationService:GetTranslatorForLocale("en")
    
        -- 현재 언어 설정(ko)에 해당하는 컬럼을 조회하는 Translator.
        local koTranslator = _LocalizationService.LocalTranslator
    
        local formatTextEn = enTranslator:GetTextFormat("TEXT_TEST2", "world")
        local formatTextKo = koTranslator:GetTextFormat("TEXT_TEST2", "세상")
        local formatTextHpp1 = koTranslator:GetTextFormat("TEXT_TEST3", "세상")
        local formatTextHpp2 = koTranslator:GetTextFormat("TEXT_TEST3", "세계")
        local formatTextPlural1 = enTranslator:GetTextFormat("TEXT_TEST4", 1)
        local formatTextPlural2 = enTranslator:GetTextFormat("TEXT_TEST4", 2)
    
        log("plainText: ", plainText)
        log("formatText: ", formatTextEn, "/", formatTextKo)
        log("Hpp format: ", formatTextHpp1, "/", formatTextHpp2)
        log("Plural format: ", formatTextPlural1, "/", formatTextPlural2)
    
        -- 현재 언어 설정(ko)을 따라 문자열에 값을 채워 넣습니다.
        log(_LocalizationService:SmartFormat("안녕, {0:hpp:{}아|{}야}!", "친구"))
        log(_LocalizationService:SmartFormat("안녕, {0}{0:hpp:아|야}!", "세상"))
    
        -- Result --
        -- plainText:   Hello
        -- formatText:  Hello, world!   /   안녕, 세상!
        -- Hpp format:  안녕, 세상아!    /   안녕, 세계야!
        -- Plural format:   I have an apple.    /   I have 2 apples.
    
        -- 안녕, 친구야!
        -- 안녕, 세상아!
        end
    end
    

# SeeAlso

  * [로컬라이징의 이해](/docs?postId=951)
  * [포맷에 맞게 로컬라이징하기](/docs?postId=968)
  * [LocaleDataSet](/docs?postId=1120)