综合---制作本地化脚本

1.制作一个本地文件,我们通过键值对的形式存取,所有文件的键必须是相同的键

例如:start=开始          start=start

quit=退出 quit=quit

2.创建一个本地化文件管理类LocalizationManager,用来加载某种语言的脚本

public class LocalizationManager
{
    //我觉得是可以对这个管理器做一下扩展,达到更换按钮,那么所有文本文件都更换为那个语言
    //第一:提供一个更换语言的方法,然后运行_load那个方法
    //第二,将所有的文本文件都监听这一个按钮的选择方法,然后调用更换文字的方法.
    private static LocalizationManager _instance;
    public static LocalizationManager Instance
    {
        get
        {
            if (_instance == null)
            {
                _instance = new LocalizationManager();
            }
            return _instance;
        }
    }
    private Dictionary<string, string> m_langDic;
    private LocalizationManager()
    {
        m_langDic = new Dictionary<string, string>();
        _LoadLocalizationManager();
    }
    public void _Init() { }
    //各种语言的路径
    private const string chinesePath = "Localization/Chinese";
    private const string englishPath = "Localization/English";
    public static string languagePath = chinesePath;
    //根据语言的不同来加载不同的脚本
    private void _LoadLocalizationManager()
    {
        //LocalizationManager.languagePath = languagePath;
        m_langDic.Clear();
        TextAsset ta = Resources.Load<TextAsset>(languagePath);


        string[] lines = ta.text.Split('\n');
        foreach (var item in lines)
        {
            if (string.IsNullOrEmpty(item) == false)
            {
                string[] keyvalues = item.Split('=');
                foreach (var i2 in keyvalues)
                {
                    Debug.Log(i2);
                }
                m_langDic.Add(keyvalues[0], keyvalues[1]);
            }
        }
    }
    //根据相同的Key得到不同的value
    public string _GetTextValue(string key)
    {
        string value;
        m_langDic.TryGetValue(key, out value);
        return value;
    }
}

3.制作一个通用的脚本读取文件,挂载在所有Text身上

public class LocalizationText : MonoBehaviour {
    public string key;
    void Start()
    {
        this.GetComponent<Text>().text = LocalizationManager.Instance._GetTextValue(key);
    }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值