game/godot

Godot3 API - Internationalizing games

C/H 2018. 11. 9. 08:30

Internationalizing games

Introduction Sería excelente que el mundo hablara solo un idioma. Unfortunately for us developers, that is not the case. While not generally a big requirement when developing indie or niche games, it is also common that games going into a more massive market require localization.
세르비아는 유엔 독점권을 보유하고 있습니다. 불행히도 우리 개발자에게는 그렇지 않습니다. 인디 또는 틈새 시장 게임을 개발할 때 일반적으로 큰 요구 사항은 아니지만 보다 거대한 시장으로 진출한 게임의 경우 현지화가 필요하다는 것이 일반적입니다.

Godot offers many tools to make this process more straightforward, so this tutorial is more like a collection of tips and tricks.
Godot은이 과정을 보다 수월하게 만들어주는 많은 도구를 제공하므로 이 자습서는 더 많은 팁과 트릭의 모음과 같습니다.

Localization is usually done by specific studios hired for the job and, despite the huge amount of software and file formats available for this, the most common way to do localization to this day is still with spreadsheets. The process of creating the spreadsheets and importing them is already covered in the Importing translations tutorial, so this one could be seen more like a follow up to that one.
로컬라이제이션은 일반적으로 해당 직종에 고용 된 특정 스튜디오에서 이루어지며, 이를 위해 사용할 수 있는 막대한 양의 소프트웨어 및 파일 형식에도 불구하고 현재까지 현지화를 수행하는 가장 일반적인 방법은 여전히 스프레드 시트입니다. 스프레드 시트를 만들고 가져 오는 과정은 이미 가져 오기 번역 자습서에서 이미 다뤄 졌으므로이 내용은 후속 작업과 비슷하게 보일 수 있습니다.

Note

We would be using the offical demo as an example, you can download it in the AssetLib: https://godotengine.org/asset-library/asset/134 or find it in the demo_projects/gui/translation
공식 데모를 예로 들면, AssetLib : https://godotengine.org/asset-library/asset/134에서 다운로드하거나 demo_projects/gui/translation에서 찾을 수 있습니다.

Configuring the imported translation

The translations can get updated and re-imported when they change, but they still have to be added to the project. This is done in Project > Project Settings > Localization:
번역은 변경 될 때 업데이트되고 다시 가져올 수 있지만 여전히 프로젝트에 추가되어야합니다. 프로젝트> 프로젝트 설정> 로컬 리 제이션 :

This dialog allows to add or remove translations project-wide.
이 대화 상자는 프로젝트 전체에 번역을 추가하거나 제거 할 수 있습니다.

Localizing resources

It is also possible to instruct Godot to open alternative versions of assets (resources) depending on the current language. For this the “Remaps” tab exists:
또한 Godot에게 현재 언어에 따라 대체 버전의 자산(자원)을 열도록 지시 할 수도 있습니다. 이를 위해 "Remaps"탭이 있습니다:

Select the resource to be remapped, and the alternatives for each locale.
재 맵핑 할 자원과 각 로케일에 대한 대안을 선택하십시오.

Converting keys to text

Some controls such as Button, Label, etc. will automatically fetch a translation each time they are set a key instead of a text. For example, if a label is assigned “MAIN_SCREEN_GREETING1” and a key to different languages exists in the translations, this will be automatically converted.
Button, Label 등과 같은 일부 컨트롤은 텍스트 대신 키가 설정 될 때마다 자동으로 번역을 가져옵니다. 예를 들어 레이블에 "MAIN_SCREEN_GREETING1"이 할당되고 다른 언어의 키가 번역본에 존재하면 자동으로 변환됩니다.

For code, the Object.tr() function can be used. This will just look-up the text into the translations and convert it if found:
코드의 경우 Object.tr() 함수를 사용할 수 있습니다. 이렇게하면 텍스트를 번역본으로 검색하고 찾으면 변환합니다.

level.set_text(tr("LEVEL_5_NAME"))
status.set_text(tr("GAME_STATUS_" + str(status_index)))

Making controls resizable

The same text in different languages can vary greatly in length. For this, make sure to read the tutorial on Size and anchors, as having dynamically adjusted control sizes may help. Container can be useful, as well as the multiple options in Label for text wrapping.
다른 언어로 된 동일한 텍스트는 길이가 크게 다를 수 있습니다. 이를 위해 크기 및 앵커에 대한 자습서를 읽으십시오. 동적으로 조정 된 컨트롤 크기를 사용하면 도움이 될 수 있습니다. 컨테이너는 텍스트 래핑을위한 Label의 여러 옵션뿐만 아니라 유용 할 수 있습니다.

TranslationServer

Godot has a server for handling the low level translation management called the TranslationServer. Translations can be added or removed during run-time, and the current language be changed too.
Godot은 TranslationServer라는 저수준 번역 관리를 처리하기위한 서버를 가지고 있습니다. 런타임 중에 번역을 추가하거나 제거 할 수 있으며 현재 언어도 변경됩니다.

Command line

Language can be tested when running Godot from command line. For example, to test a game in french, the following arguments can be supplied:
명령 줄에서 Godot을 실행할 때 언어를 테스트 할 수 있습니다. 예를 들어, 프랑스어로 게임을 테스트하려면 다음 인수를 제공 할 수 있습니다.

c:\MyGame> godot -l fr

Translating the project name

The project name becomes the app name when exporting to different operating systems and platforms. To specify the project name in more than one language, create a new setting application/name in the project settings dialog and append the locale identifier to it. For example:
다른 운영 체제 및 플랫폼으로 내보낼 때 프로젝트 이름이 응용 프로그램 이름이됩니다. 둘 이상의 언어로 프로젝트 이름을 지정하려면 프로젝트 설정 대화 상자에서 새 설정 application/name을 작성하고 로케일 식별자를 추가하십시오. 예 :

As always, If you don’t know the code of a language or zone, check the list.
언제나 그렇듯이 언어 나 구역의 코드를 모르는 경우 목록을 확인하십시오.


Godot3에서 Category:application/config, Property:name_ko 를 입력해도 제대로 동작하지 않는다.
"Name Ko"로 프로퍼티가 대체된 뒤 윈도우 창 상단에 적용되지 않는다.

다만 KEY_TITLE로 키맵핑을 했을 경우 윈도우 창 상단에 한글이 표현된다.
KEY_TITLE 을 게임내에서 로케일 변경하면 제대로 변경이 되지만 윈도우 상단 제목 표시줄은 로케일(윈도우)에 맞는 언어로만 고정 표시된다.

문제는 프로젝트 매니저에서 KEY_TITLE로 모두 표시된다는 단점이 있다.


반응형

'game > godot' 카테고리의 다른 글

Godot3 API - Exporting for Android  (0) 2018.11.12
Godot3 API - Internationalization  (0) 2018.11.09
Godot3 API - Physics  (0) 2018.11.08
Godot3 API - Kinematic Character (2D)  (0) 2018.11.08
Godot3 API - Physics introduction  (0) 2018.11.07