Table of contents
Masamune framework是Unity3D的扩展资产。
Localize - Masamune framework
「Localize - Masamune framework」是「Masamune framework」系列中的1个。
所谓Masamune framework
「Masamune framework」系列支持与Unity3D合作制作游戏。
它支持Unity的各个细节,包括UI创建,任务管理和数据管理,通过引入它,您可以显着提高游戏制作的速度。
该系列的每个阵容都是独立的,但它们是独立的,即使您引入了一个资产或引入了所有资产,它们也不会竞争或引起问题。通过仅引入您希望支持的插件,您可以获得更好的成本和性能。
您可以从以下页面查看当前阵容。
此外,「UIElements Expansions」系列也可以在「Masamune framework」中使用。
此「Localize - Masamune framework」主要支持以下功能。
- Unity运行时的翻译支持
- Unity编辑器中的翻译支持
- 使用Google电子表格管理
Unity运行时的翻译支持

「Localize - Masamune framework」支持Unity运行时,即在游戏期间进行翻译。
由于翻译成UnityUI(uGUI)的Text组件的文本会自动输入,因此很容易使用。
默认情况下,使用的语言可以处理以下语言。
- 英语
- 日语
- 中文(简体字)
- 中文(繁体字)
- 法语
- 西班牙语
- 意大利语
- 德语
- 葡萄牙语
- 俄语
- 韩语
- 泰语
- 印度尼西亚语
还可以通过向翻译文件添加语言来处理新语言。
Unity编辑器中的翻译支持

「Localize - Masamune framework」还支持使用UIElements在Unity编辑器上进行翻译。
我们提供了一些标签来显示翻译成UXML标签的文本,您可以通过编辑器窗口或检查器轻松使用翻译。
它也可以与「UIElements Expansions」系列一起使用。
使用Google电子表格管理

「Localize - Masamune framework」将特定格式的CSV文件视为翻译数据。
如果它是格式化的CSV文件,则可以使用任何工具创建它,但此资产建议使用「Google电子表格」创建它。
「Google电子表格」是在Web上运行的电子表格软件。与可以导出CSV文件的其他软件不同,您可以使用「GOOGLETRANSLATE」函数。
「GOOGLETRANSLATE」函数将自动翻译其他单元格的文本并显示结果。
通过成功使用它,即使是难以处理的语言也可以一键翻译,因此非常方便。
「Localize - Masamune framework」提供了支持Google电子表格管理的功能。
利用方法
导入

请从Unity Asset Store购买。
购买后可从「我的资产」导入。
Unity运行时的翻译支持
Unity运行时目前支持UnityUI(uGUI)的Text组件。
让我们首先将「Text」组件添加到要显示翻译文本的游戏对象中。
然后将名为「TextLocalizeApplicator」的组件放置在与之前添加的「文本」组件相同的游戏对象上。

通过在「TextLocalizeApplicator」的「Localize Text」项目中输入「翻译ID」,将显示与运行游戏的设备和Unity编辑器的语言相对应的翻译文本。
设定「Language」的项目的话,就会强制翻译成那个语言。(翻译数据中没有对应语言时,将直接显示)
使用脚本
「TextLocalizeApplicator」可以看到源代码(Assets/Masamune/Modules/unity.style.localize/Scripts/TextLocalizeApplicator.cs)
public class TextLocalizeApplicator : MonoBehaviour {
/// <summary>
/// The text
/// </summary>
[SerializeField]
public UnityEngine.UI.Text text;
/// <summary>
/// Gets or sets the icon.
/// </summary>
/// <value>The icon.</value>
public string localizeText {
get => this._localizeText;
set {
this._localizeText = value;
this.Repaint( );
}
}
[SerializeField]
private string _localizeText;
/// <summary>
/// Gets or sets the language.
/// </summary>
/// <value>The language.</value>
public SystemLanguage language {
get => this._language;
set {
this._language = value;
this.Repaint( );
}
}
[SerializeField]
private SystemLanguage _language = SystemLanguage.Unknown;
/// <summary>
/// Awakes this instance.
/// </summary>
private void Awake( ) {
if( this.text == null ) this.text = this.GetComponent<UnityEngine.UI.Text>( );
this.Repaint( );
}
/// <summary>
/// Called when [validate].
/// </summary>
private void OnValidate( ) {
this.Repaint( );
}
/// <summary>
/// Repaints this instance.
/// </summary>
public void Repaint( ) {
if( this.text == null || this.localizeText.IsNullOrEmpty( ) ) return;
SystemLanguage language = this.language == SystemLanguage.Unknown ? Localize.SystemLanguage : this.language;
Localize localize = Localize.Get( this.localizeText, language, this.localizeText );
if( localize == null ) return;
this.text.font = localize;
this.text.text = localize;
}
}
如果您参考此「Repaint」方法,它也可以用于其他组件等。
public void Repaint( ) {
if( this.text == null || this.localizeText.IsNullOrEmpty( ) ) return;
SystemLanguage language = this.language == SystemLanguage.Unknown ? Localize.SystemLanguage : this.language;
Localize localize = Localize.Get( this.localizeText, language, this.localizeText );
if( localize == null ) return;
this.text.font = localize;
this.text.text = localize;
}
「Localize.Get("Localization ID",Language,DefaultValue)」检索Localize类型的对象。(如果没有指定的语言和翻译ID,则返回null)
Localize类型包含用于显示翻译的字体数据和翻译的字符,可分别转换为Font和string类型。将这些数据放入组件的指定属性中。
对于处理日语和中文等特殊字符的语言,请注意除非设置了字体和字母,否则可能无法正常显示。
Unity编辑器中的翻译支持
在Unity编辑器中,可以使用UIElements显示图标。
您可以使用以下UXML标记。
タグ名 | 概要 | 利用例 |
---|---|---|
engine:LocalizeLabel | engine:Label的翻译版本 | <engine:LocalizeLabel text="Localization ID" /> |
engine:LocalizeButton | engine:Button的翻译版本 | <engine:LocalizeButton text="Localization ID" /> |
engine:LocalizeH1~H6 | engine:H1~H6(UIElements Expansion常见功能添加的标签)的翻译版 | <engine:LocalizeH1 text="Localization ID" /> |
editor:BindableLocalizeLabel | editor:BindableLabel(UIElements Expansion常见功能添加的标签)的翻译版 | <editor:BindableLocalizeLabel text="Localization ID" binding-path="path" /> |
editor:BindableLocalizeButton | editor:BindableButton(UIElements Expansion常见功能添加的标签)的翻译版 | <editor:BindableLocalizeButton text="Localization ID" binding-path="path" /> |
editor:BindableLocalizeH1~H6 | editor:BindableH1~H6(UIElements Expansion常见功能添加的标签)的翻译版 | <editor:BindableLocalizeH2 text="Localization ID" binding-path="path" /> |
请像使用其他UXML标签一样使用它。
使用Google电子表格管理
使用「LocalizeInfo」管理Google电子表格。
请在检查器中打开「Assets/Masamune/Modules/unity.style.localize/Resources/LocalizeInfo」。显示「Localization Information」。

我将解释创建新翻译数据的过程。
- 首先打开此「模板」文件。
- 复制打开的模板文件并将其保存到您自己的Google云端硬盘。
- 从浏览器等获取保存的电子表格URL并进行复制。
- 将3中复制的URL粘贴到Unity编辑器「定位信息」中的「Localization URL」中。
- 单击下面「下载URL」中的下载按钮。CSV文件在Unity项目自动地下载。
- 之后,您可以根据示例编辑保存在3中的电子表格文件,并在编辑后每次以5个步骤下载CSV文件。
如果您在步骤5中遇到错误,请打开下载按钮旁边的打开按钮并将其直接保存到Unity「Resources」文件夹中的「Localization.csv」。
总结
通过使用「Localize - Masamune framework」,您可以获得以下支持。
- Unity运行时的翻译支持
- Unity编辑器中的翻译支持
- 使用Google电子表格管理
上述支持将产生以下优点。
- 可以轻松使用翻译,使翻译管理变得容易。
请介绍「Masamune framework」并享受舒适的游戏制作生活!
如果您有兴趣,请务必考虑一下,因为它在资产商店出售!