This page has been translated automatically.
视频教程
界面
要领
高级
实用建议
基础
专业(SIM)
UnigineEditor
界面概述
资源工作流程
Version Control
设置和首选项
项目开发
调整节点参数
Setting Up Materials
设置属性
照明
Sandworm
使用编辑器工具执行特定任务
如何擴展編輯器功能
嵌入式节点类型
Nodes
Objects
Effects
Decals
光源
Geodetics
World Nodes
Sound Objects
Pathfinding Objects
Players
编程
基本原理
搭建开发环境
使用范例
C++
C#
UnigineScript
统一的Unigine着色器语言 UUSL (Unified UNIGINE Shader Language)
Plugins
File Formats
材质和着色器
Rebuilding the Engine Tools
双精度坐标
应用程序接口
Animations-Related Classes
Containers
Common Functionality
Controls-Related Classes
Engine-Related Classes
Filesystem Functionality
GUI-Related Classes
Math Functionality
Node-Related Classes
Objects-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
IG Plugin
CIGIConnector Plugin
Rendering-Related Classes
VR-Related Classes
创建内容
内容优化
材质
Material Nodes Library
Miscellaneous
Input
Math
Matrix
Textures
Art Samples
Tutorials

Localization

The current article describes how to localize the GUI of your project.

See Also#

Fonts#

Fonts files are used to correctly display characters of local languages in the Unigine-based project. The font file has a True Type font format and contains all of the local language characters.

To avoid incorrect display of language characters, you should add all of the required font files to your project folder and use the engine.gui.setFontPath() function when it is necessary to change the font. For example, to translate into Chinese, you should load your English-Chinesedictionary and set the corresponding font as follows:

Source code (UnigineScript)
engine.gui.setFontPath("my_project/gui/font_ch.ttf");

If the project supports your local language only, you can simply replace 2 font files font.ttf (for GUI widgets) and console.ttf (for console) in the data/core/gui directory with the font files containing the local language characters. The names of Unigine files should be preserved.

Character Encoding#

All of the project files should be saved in UTF-8 encoding.

Notice
The encoding must be UTF-8 without BOM (Byte Order Mark).

Translation Dictionaries#

To support several languages in your project, you need to use dictionaries, which are stored in the XML format. They are used to translate the GUI from one language into another.

Notice
You can store a separate dictionary for each language or you can create a single dictionary for all supported languages.

File Formats#

Depending on the storage method of dictionaries, you should use the corresponding dictionary file format.

Dictionaries Stored in Separate Files#

Source code (XML)
<?xml version="1.0" encoding="utf-8"?>
<dictionary version="1.00">
	<msg>
		<src>Source string</src>
		<tr>Translated string</tr>
	</msg>
</dictionary>

The root tag dictionary contains the msg child tag, which is used to define a word or phrase to be translated and has the following children:

  • src - a source string to be translated.
    Notice
    The punctuation marks should be included to the string; otherwise the string won't be translated.
  • tr - a translation string.

Single Dictionary for All Languages#

Source code (XML)
<?xml version="1.0" encoding="utf-8"?>
<dictionary version="1.00">
	<msg>
		<src>Source string</src>
		<en>String translated to English</en>
		<ch>String translated to Chinese</ch>
		<ru>String translated to Russian</ru>
	</msg>
</dictionary>

The root tag dictionary contains the msg child tag, which is used to define a word or phrase to be translated and has the following children:

  • src - a source string to be translated.
    Notice
    The punctuation marks should be included to the string; otherwise the string won't be translated.
  • en, ch, ru or any other tag that contains a translation string.
    Notice
    You can use any tag to store the translation. You just have to specify the tag name as the second argument of the engine.gui.addDictionary() function to load the proper translation.

Managing Locale#

To add the dictionary, use the engine.gui.addDictionary() function. To save the last loaded dictionary, use the engine.gui.saveDictionary() function. This function also allows you to save the currently loaded dictionary into another file. If you want to modify the dictionary, you can edit the XML file manually or by using the Xml class functions and then load it.

Notice
Dictionaries cannot be changed in run-time.

If you use a separate dictionary for each language, you should get access to translation as follows:

Source code (UnigineScript)
engine.gui.addDictionary("my_project/locale/my_project.ch"); // load English-Chinese dictionary
ui.updateWidgets();
Otherwise, you should specify a tag that contains the required translation as the second argument of the engine.gui.addDictionary() function:
Source code (UnigineScript)
engine.gui.addDictionary("my_project/locale/my_project.locale","ch"); // load the Chinese translation
ui.updateWidgets();
The updateWidgets() function is called to change the language after the required dictionary is added.

Input Methods#

Unigine supports IMEs (Input Method Editors) that allow entering Chinese, Japanese and Korean characters by using the Latin keyboard.

Notice
Unigine doesn't support right-to-left and top-to-bottom languages.

To enter Chinese, Japanese or Korean characters, simply change your keyboard layout and start typing.

Last update: 2024-08-16
Build: ()