문자열 현지화

게임을 여러 언어로 번역하려는 경우 가장 중요한 요구사항은 일반적으로 UI에서 표시되는 각 대상 언어에 대한 문자열 세트입니다.

Stingray는 .strings 리소스 사용을 통해 런타임 시 현지화된 문자열로 교환하고 이에 액세스하기 위한 내장 메커니즘을 제공합니다.

.strings 리소스 정보

.strings 리소스는 문자열 식별자 세트와 함께 다양한 언어에 대한 해당 문자열 값을 포함하는 SJSON 파일입니다. 다른 언어가 지정되어 있지 않으면 영어 문자열("en" 키로 식별)이 기본적으로 사용됩니다.

예를 들어, 메뉴를 현지화하기 위한 menu.strings 리소스의 모습은 다음과 비슷합니다.

menu_option_back = {
    en = "Back"
    fr = "Retour"
}
menu_option_forward = {
    en = "Forward"
    fr = "Suivant"
}
menu_option_start = {
    en = "Start"
    fr = "Commencer"
}
menu_option_quit = {
    en = "Quit"
    fr = "Quitter"
}

런타임 시 현지화된 문자열 가져오기

런타임 시 .strings 리소스에서 문자열을 가져오려면 stingray.Localizer 오브젝트를 사용합니다.

  1. stingray.Localizer() 함수를 호출하여 새 Localizer 오브젝트를 생성합니다. 관리를 원하는 .strings 리소스의 이름을 전달합니다.

  2. stingray.Localizer.lookup() 함수를 호출합니다. Localizer 오브젝트와 파일에서 검색하려는 문자열의 식별자를 전달합니다.

예:

local myLocalizer = stingray.Localizer("menu")
local fwd_string = stingray.Localizer.lookup(myLocalizer, "menu_option_forward")

언어를 변경하려면 stingray.Localizer.set_language() 함수를 사용하여 언어를 .strings 파일에 사용된 언어 식별자 중 하나로 설정합니다. 언어를 변경하고 나면 이후에 stingray.Localizer.lookup()을 호출하면 새 언어로 문자열이 반환됩니다. 영어로 다시 돌아가려면 언어를 en으로 설정합니다.

stingray.Localizer.set_language("fr")

.strings 리소스 작성

원하는 텍스트 편집기에서 참조 .strings 리소스를 작성할 수 있습니다.

이러한 리소스 파일은 근본적으로 키-값 쌍의 목록일 뿐이기 때문에 사용자와 작업하는 외부 번역 제공자는 이러한 파일을 처리하여 현지화된 버전을 생성할 수 있게 됩니다.

또는 Stingray가 제공하는 Localizer 도구를 사용할 수도 있습니다. 이 도구는 Stingray 설치 디렉토리 내 tools₩Localizer.exe에서 찾아볼 수 있습니다. 이 도구를 사용하여 동시에 여러 언어의 현지화를 관리할 수 있습니다.