【Unity】Localize - Masamune framework

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:LocalizeLabelengine:Label的翻译版本<engine:LocalizeLabel text="Localization ID" />
engine:LocalizeButtonengine:Button的翻译版本<engine:LocalizeButton text="Localization ID" />
engine:LocalizeH1~H6engine:H1~H6(UIElements Expansion常见功能添加的标签)的翻译版<engine:LocalizeH1 text="Localization ID" />
editor:BindableLocalizeLabeleditor:BindableLabel(UIElements Expansion常见功能添加的标签)的翻译版<editor:BindableLocalizeLabel text="Localization ID" binding-path="path" />
editor:BindableLocalizeButtoneditor:BindableButton(UIElements Expansion常见功能添加的标签)的翻译版<editor:BindableLocalizeButton text="Localization ID" binding-path="path" />
editor:BindableLocalizeH1~H6editor: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」并享受舒适的游戏制作生活!

如果您有兴趣,请务必考虑一下,因为它在资产商店出售!

发表评论

电子邮件地址不会被公开。