【I2多语言】多语言快速上手

简介

  1. 官方API:http://www.inter-illusion.com/assets/I2LocalizationManual/I2LocalizationManual.html
  2. 意义:更改游戏语言(多语言支持)

快速上手

  1. 插件安装:

    1. 直接拖拽进Unity即可
  2. 创建语言源(Creating a Language Source):

    1. 方法一: 双击Assets \ Resources \ I2Languages.asset(全局起作用)
    2. 方法二:在场景中创建一个新的 GameObject 并添加一个 Language Source 组件(I2 \ Localization \ Source )(整个场景起作用)
  3. 添加语言(Adding Languages)

    1. 在 LanguageSource 编辑器中,选择**“语言(Languages)”选项卡**

    2. 点击底部**Abkhazian[ab]**选择语言—>点击Add;

      【I2多语言】多语言快速上手_第1张图片

  4. 添加术语(Adding Terms)

    方式一:本地添加

    1. 选择**术语(Terms )**选项卡

    2. 单机**“+”按钮,输入Terms **然后创建键

    3. 对应位置输入文本

    【I2多语言】多语言快速上手_第2张图片

    方式二:谷歌电子表格

    1. 官方教程:http://www.inter-illusion.com/assets/I2LocalizationManual/HowtolinkwithGoogleSpreadsheet.html

      1. 注意:需要使用个人谷歌账号,公司账号权限无法开放给所有人
  5. 本地化标签(Localizing a Label)

    1. 方法一:手动挂载

      1. 选择对应UI组件
      2. 添加组件:L2 Localize
      3. 选择适当的Tag
      4. 点击Term选择定义好的Term
    2. 代码动态挂载

      public class TestLanguage : MonoBehaviour
      {
          public string termKey="win"; // 术语关键字,用于定位多语言文本
          public Localize Localizes;
      
          private void Start()
          {
      
              Localizes=GetComponent<Localize>();
              
              // 动态设置多语言文本
              Localizes.SetTerm(termKey);
      
          }
      }
      
  6. 游戏中更改语言

    1. 方式一:制作脚本写入一下代码传入语言名字作为参数

      if ( LocalizationManager .HasLanguage( LanguageName ))
      
      {
      
      LocalizationManager .CurrentLanguage =语言名称;
      
      }
      
      1. 示例

            public void SetLanguage()
            {
                int count = LocalizationManager.GetAllLanguages().Count;  //获取语言个数
                int nowId = LocalizationManager.GetAllLanguages().IndexOf(LocalizationManager.CurrentLanguage);  //获取当前语言索引
        
                //索引递增
                if (nowId < count - 1)
                {
                    setLanguage._Language = LocalizationManager.GetAllLanguages()[nowId + 1].ToString();
                }
                else
                {
                    setLanguage._Language = "English";
                }
                setLanguage.ApplyLanguage();
            }
        
    2. 方式二:

      1. 创建Button
      2. 添加SetLanguage Button组件
        1. 设置语言(转换后的语言)
        2. 选择Language Source组件
      3. 为Button添加监听事件ApplyLanguage
  7. 动态修改游戏中的语言

    ​ 比如关节展示,我们配表只有“关节”2字,那么关节1、关节2的数字就需要动态展示。

    1. 需要动态展示的组件挂载新的组件LocalizationParamsManager

    2. 需要动态展示的内容配表:我是{[名字]}

    3. 代码逻辑:

      GetComponent<Localize>().SetTerm("keys");
      GetComponent<LocalizationParamsManager>().SetParameterValue("名字","小明");
      

你可能感兴趣的:(unity,游戏引擎,开源软件)