Unity多语言中系统语言编码获取判断,语言文化修改

unity判断当前系统是什么语言一般使用Application.systemLanguage,但里面只列举了使用多的语种,有很多其他语言识别不出来,比如长常见的波斯语。项目如果做的是有其他国家的版本,那么配置表就会遇到一个问题,比如法国地域会有逗号是小数点的情况,这个问题一般对于第一次上线没有经验,全球范围的项目比较受打击,因为根本不会想到这个问题是出现在地域符号不一样。解决办法很简单。

首先修改语言文化为统一的文化,才能保证后续配置表不会有问题。

using System.Globalization;
using System.Threading;
using UnityEngine;

public class temp
{
    /// <summary>
    /// 多国语言
    /// </summary>
    public static void MultiLingual()
    {
        string CultureInfoString = CultureInfo.CurrentCulture.ToString();//第一次得到的字符串,用来判断语言
        SetDefaultCulture();
        Debug.LogWarning("Before:" + CultureInfoString + ",Later:" + CultureInfo.CurrentCulture.ToString());
        Language_Coding(CultureInfoString);
    }
    /// <summary>
    /// 修改语言文化
    /// </summary>
    public static void SetDefaultCulture()
    {
        CultureInfo culture;
        try
        {
            culture = CultureInfo.CreateSpecificCulture("en-US");//设置为统一的地域
        }
        catch (Exception e)
        {
            UnityEngine.Debug.LogError("CreateSpecificCulture===修改语言文化错误====" + e.Message);
            throw;
        }
        try
        {
            if (culture != null)
            {
                CultureInfo.DefaultThreadCurrentCulture = culture;
                CultureInfo.DefaultThreadCurrentUICulture = culture;
            }
        }
        catch (Exception e)
        {
            UnityEngine.Debug.LogError("DefaultThreadCurrentCulture===修改语言文化错误====" + e.Message);
            throw;
        }
        try
        {
            if (culture != null)
            {
                Thread.CurrentThread.CurrentCulture = culture;//当前线程的语言文化
                Thread.CurrentThread.CurrentUICulture = culture;
            }
        }
        catch (Exception e)
        {
            UnityEngine.Debug.LogError("CurrentCulture===修改语言文化错误====" + e.Message);
        }
    }
}

之后拿着语言编码判断语种

/// <summary>
    /// 大多数语言的编码
    /// </summary>
    public static string Language_Coding(string CurrentCulture)
    {
        Debug.LogWarning("当前语言==========================================");
        string LowerStr = CurrentCulture.ToLower();
        //if (string.IsNullOrWhiteSpace(CurrentCulture))
        //{
        //    CurrentCulture = "en";//默认一个
        //}
        //string StartStr = CurrentCulture.Split("-")[0];//使用第一部分的来判断
        switch (LowerStr)
        {
            case "zh":
            case "zh-cn":
            case "zh-sg":
                Debug.LogWarning("中文(简体)");
                break;
            case "zh-tw":
            case "zh-hk":
            case "zh-mo":
            case "zh-hant":
                Debug.LogWarning("中文(繁体)");
                break;
            case "ko":
            case "ko-kr":
                Debug.LogWarning("朝鲜语");
                break;
            case "ja":
            case "ja-jp":
                Debug.LogWarning("日本语");
                break;
            case "en":
            case "en-gb":
            case "en-au":
            case "en-ca":
            case "en-nz":
            case "en-bz":
            case "en-cb":
            case "en-ie":
            case "en-jm":
            case "en-ph":
            case "en-tt":
            case "en-za":
            case "en-zw":
            case "en-us":
            case "en-029":
            case "en-my":
            case "en-sg":
            case "en-in":
                Debug.LogWarning("英语(美国)");
                break;
            case "af":
            case "af-za":
                Debug.LogWarning("南非荷兰语");
                break;
            case "yo":
            case "yo-ng":
                Debug.LogWarning("约鲁巴语");
                break;
            case "tg":
            case "tg-cyrl":
            case "tg-cyrl-tj":
                Debug.LogWarning("塔吉克语");
                break;
            case "tzm":
            case "tzm-latn":
            case "tzm-latn-dz":
                Debug.LogWarning("塔马塞特语");
                break;
            case "sma":
            case "sma-no":
            case "sma-se":
                Debug.LogWarning("南萨米语");
                break;
            case "as":
            case "as-in":
                Debug.LogWarning("阿萨姆语");
                break;
            case "ne":
            case "ne-np":
                Debug.LogWarning("尼泊尔语");
                break;
            case "am":
            case "am-et":
                Debug.LogWarning("阿姆哈拉语");
                break;
            case "ar":
            case "ar-dz":
            case "ar-ae":
            case "ar-bh":
            case "ar-eg":
            case "ar-iq":
            case "ar-jo":
            case "ar-kw":
            case "ar-lb":
            case "ar-ly":
            case "ar-ma":
            case "ar-om":
            case "ar-qa":
            case "ar-sa":
            case "ar-sy":
            case "ar-tn":
            case "ar-ye":
                Debug.LogWarning("阿拉伯语");
                break;
            case "az":
            case "az-latn":
            case "az-latn-az":
            case "az-cyrl":
            case "az-cyrl-az":
            case "az-az":
                Debug.LogWarning("阿塞拜疆语");
                break;
            case "be":
            case "be-by":
                Debug.LogWarning("比利时语");//白俄罗斯语
                break;
            case "lb":
            case "lb-lu":
                Debug.LogWarning("卢森堡语");
                break;
            case "ga":
            case "ga-ie":
                Debug.LogWarning("爱尔兰语");
                break;
            case "kn":
            case "kn-in":
                Debug.LogWarning("埃纳德语");//卡纳拉语
                break;
            case "rw":
            case "rw-rw":
                Debug.LogWarning("卢旺达语");
                break;
            case "bg":
            case "bg-bg":
                Debug.LogWarning("保加利亚语");
                break;
            case "bs":
            case "bs-latn":
            case "bs-cyrl":
            case "bs-ba":
                Debug.LogWarning("波斯尼亚语");
                break;
            case "ca":
            case "ca-es":
                Debug.LogWarning("加泰隆语");
                break;
            case "cs":
            case "cs-cz":
                Debug.LogWarning("捷克语");
                break;
            case "cy":
            case "cy-gb":
                Debug.LogWarning("威尔士语");
                break;
            case "da":
            case "da-dk":
                Debug.LogWarning("丹麦语");
                break;
            case "de":
            case "de-at":
            case "de-ch":
            case "de-de":
            case "de-li":
            case "de-lu":
                Debug.LogWarning("德语");
                break;
            case "dv":
            case "dv-mv":
                Debug.LogWarning("第维埃语");//迪维希语
                break;
            case "el":
            case "el-gr":
                Debug.LogWarning("希腊语");
                break;
            case "co":
            case "co-fr":
                Debug.LogWarning("科西嘉语");
                break;
            case "dsb":
            case "dsb-de":
                Debug.LogWarning("下索布语");
                break;
            case "eo":
                Debug.LogWarning("世界语");
                break;
            case "es":
            case "es-ar":
            case "es-bo":
            case "es-cl":
            case "es-co":
            case "es-cr":
            case "es-do":
            case "es-ec":
            case "es-es":
            case "es-gt":
            case "es-hn":
            case "es-mx":
            case "es-ni":
            case "es-pa":
            case "es-pe":
            case "es-pr":
            case "es-py":
            case "es-sv":
            case "es-uy":
            case "es-ve":
                Debug.LogWarning("西班牙语");
                break;
            case "et":
            case "et-ee":
                Debug.LogWarning("爱沙尼亚语");
                break;
            case "prs":
            case "prs-af":
                Debug.LogWarning("达里语");
                break;
            case "eu":
            case "eu-es":
                Debug.LogWarning("巴士克语");//巴斯克语
                break;
            case "oc":
            case "oc-fr":
                Debug.LogWarning("奥克西唐语");
                break;
            case "ba":
            case "ba-ru":
                Debug.LogWarning("巴什基尔语");
                break;
            case "or":
            case "or-in":
                Debug.LogWarning("奥里雅语");
                break;
            case "nso":
            case "nso-za":
                Debug.LogWarning("巴索托语");
                break;
            case "fa":
            case "fa-ir":
                Debug.LogWarning("波斯语");
                break;
            case "iu":
            case "iu-latn":
            case "iu-latn-ca":
            case "iu-cans":
            case "iu-cans-ca":
                Debug.LogWarning("因纽特语");
                break;
            case "fi":
            case "fi-fi":
                Debug.LogWarning("芬兰语");
                break;
            case "kl":
            case "kl-gl":
                Debug.LogWarning("格陵兰语");
                break;
            case "km":
            case "km-kh":
                Debug.LogWarning("高棉语");
                break;
            case "fy":
            case "fy-nl":
                Debug.LogWarning("弗里西亚语");
                break;
            case "fil":
            case "fil-ph":
                Debug.LogWarning("菲律宾语");
                break;
            case "fo":
            case "fo-fo":
                Debug.LogWarning("法罗语");
                break;
            case "fr":
            case "fr-be":
            case "fr-ca":
            case "fr-ch":
            case "fr-fr":
            case "fr-lu":
            case "fr-mc":
                Debug.LogWarning("法语");
                break;
            case "gl":
            case "gl-es":
                Debug.LogWarning("加里西亚语");
                break;
            case "gu":
            case "gi-in":
                Debug.LogWarning("古吉拉特语");
                break;
            case "he":
            case "he-il":
                Debug.LogWarning("希伯来语");
                break;
            case "hi":
            case "hi-in":
                Debug.LogWarning("印地语");
                break;
            case "hr":
            case "hr-ba":
            case "hr-hr":
                Debug.LogWarning("克罗地亚语");
                break;
            case "hu":
            case "hu-hu":
                Debug.LogWarning("匈牙利语");
                break;
            case "hy":
            case "hy-am":
                Debug.LogWarning("亚美尼亚语");
                break;
            case "id":
            case "id-id":
                Debug.LogWarning("印度尼西亚语");
                break;
            case "is":
            case "is-is":
                Debug.LogWarning("冰岛语");
                break;
            case "ig":
            case "ig-ng":
                Debug.LogWarning("伊博语");
                break;
            case "smn":
            case "smn-fi":
                Debug.LogWarning("伊纳里萨米语");
                break;
            case "ii":
            case "ii-cn":
                Debug.LogWarning("彝语");
                break;
            case "it":
            case "it-ch":
            case "it-it":
                Debug.LogWarning("意大利语");
                break;
            case "ka":
            case "ka-ge":
                Debug.LogWarning("格鲁吉亚语");
                break;
            case "kk":
            case "kk-kz":
                Debug.LogWarning("哈萨克语");
                break;
            case "ha":
            case "ha-latn":
            case "ha-latn-ng":
                Debug.LogWarning("豪撒语");
                break;
            case "kok":
            case "kok-in":
                Debug.LogWarning("孔卡尼语");
                break;
            case "ky":
            case "ky-kg":
                Debug.LogWarning("吉尔吉斯语");
                break;
            case "lo":
            case "lo-la":
                Debug.LogWarning("老挝语");
                break;
            case "lt":
            case "lt-lt":
                Debug.LogWarning("立陶宛语");
                break;
            case "lv":
            case "lv-lv":
                Debug.LogWarning("拉脱维亚语");
                break;
            case "mi":
            case "mi-nz":
                Debug.LogWarning("毛利语");
                break;
            case "mk":
            case "mk-mk":
                Debug.LogWarning("马其顿语");
                break;
            case "mn":
            case "mn-mong":
            case "mn-mong-cn":
            case "mn-cyrl":
            case "mn-mn":
                Debug.LogWarning("蒙古语");
                break;
            case "mr":
            case "mr-in":
                Debug.LogWarning("马拉地语");
                break;
            case "moh":
            case "moh-ca":
                Debug.LogWarning("莫霍克语");
                break;
            case "bn":
            case "bn-bd":
            case "bn-in":
                Debug.LogWarning("孟加拉语");
                break;
            case "ms":
            case "ms-bn":
            case "ms-my":
                Debug.LogWarning("马来语");
                break;
            case "ug":
            case "ug-cn":
                Debug.LogWarning("维吾尔语");
                break;
            case "wo":
            case "wo-sn":
                Debug.LogWarning("沃洛夫语");
                break;
            case "mt":
            case "mt-mt":
                Debug.LogWarning("马耳他语");
                break;
            case "arn":
            case "arn-cl":
                Debug.LogWarning("马普丹冈语");
                break;
            case "ml":
            case "ml-in":
                Debug.LogWarning("马拉雅拉姆语");
                break;
            case "nb":
            case "nb-no":
                Debug.LogWarning("书面挪威语");
                break;
            case "no":
            case "nn":
            case "nn-no":
                Debug.LogWarning("挪威语");
                break;
            case "nl":
            case "nl-be":
            case "nl-nl":
                Debug.LogWarning("荷兰语");
                break;
            case "ns":
            case "ns-za":
                Debug.LogWarning("北梭托语");
                break;
            case "sms":
            case "sms-fi":
                Debug.LogWarning("斯科特萨米语");
                break;
            case "pa":
            case "pa-in":
                Debug.LogWarning("旁遮普语");
                break;
            case "pl":
            case "pl-pl":
                Debug.LogWarning("波兰语");
                break;
            case "br":
            case "br-fr":
                Debug.LogWarning("布里多尼语");
                break;
            case "bo":
            case "bo-cn":
                Debug.LogWarning("藏语");
                break;
            case "qut":
            case "qut-gt":
                Debug.LogWarning("基切语");
                break;
            case "ps":
            case "ps-af":
                Debug.LogWarning("普什图语");
                break;
            case "pt":
            case "pt-br":
            case "pt-pt":
                Debug.LogWarning("葡萄牙语");
                break;
            case "quz":
            case "quz-bo":
            case "quz-ec":
            case "quz-pe":
                Debug.LogWarning("克丘亚语");
                break;
            case "qu":
            case "qu-bo":
            case "qu-ec":
            case "qu-pe":
                Debug.LogWarning("克丘亚语");
                break;
            case "ro":
            case "ro-ro":
                Debug.LogWarning("罗马尼亚语");
                break;
            case "rm":
            case "rm-ch":
                Debug.LogWarning("罗曼什语");
                break;
            case "smj":
            case "smj-no":
            case "smj-se":
                Debug.LogWarning("律勒萨米语");
                break;
            case "ru":
            case "ru-ru":
                Debug.LogWarning("俄语");
                break;
            case "sa":
            case "sa-in":
                Debug.LogWarning("梵文");
                break;
            case "se":
            case "se-no":
            case "se-se":
            case "se-fi":
                Debug.LogWarning("萨摩斯语");//北萨米语
                break;
            case "sk":
            case "sk-sk":
                Debug.LogWarning("斯洛伐克语");
                break;
            case "sl":
            case "sl-si":
                Debug.LogWarning("斯洛文尼亚语");
                break;
            case "si":
            case "si-lk":
                Debug.LogWarning("僧伽罗语");
                break;
            case "hsb":
            case "hsb-de":
                Debug.LogWarning("上索布语");
                break;
            case "sq":
            case "sq-al":
            case "gsw":
            case "gsw-fr":
                Debug.LogWarning("阿尔巴尼亚语");
                break;
            case "sr":
            case "sr-latn":
            case "sr-latn-me":
            case "sr-latn-rs":
            case "sr-cyrl":
            case "sr-cyrl-me":
            case "sr-ba":
                Debug.LogWarning("塞尔维亚");
                break;
            case "sv":
            case "sv-fi":
            case "sv-se":
                Debug.LogWarning("瑞典语");
                break;
            case "sw":
            case "sw-ke":
                Debug.LogWarning("斯瓦希里语");
                break;
            case "gd":
            case "gd-gb":
                Debug.LogWarning("苏格兰盖立语");
                break;
            case "sah":
            case "sah-ru":
                Debug.LogWarning("雅库特语");
                break;
            case "syr":
            case "syr-sy":
                Debug.LogWarning("叙利亚语");
                break;
            case "ta":
            case "ta-in":
                Debug.LogWarning("泰米尔语");
                break;
            case "te":
            case "te-in":
                Debug.LogWarning("泰卢固语");
                break;
            case "th":
            case "th-th":
                Debug.LogWarning("泰语");
                break;
            case "tl":
            case "tl-ph":
                Debug.LogWarning("塔加路语");
                break;
            case "tn":
            case "tn-za":
                Debug.LogWarning("茨瓦纳语");
                break;
            case "tr":
            case "tr-tr":
                Debug.LogWarning("土耳其语");
                break;
            case "ts":
                Debug.LogWarning("宗加语");
                break;
            case "tt":
            case "tt-ru":
                Debug.LogWarning("鞑靼语");
                break;
            case "uk":
            case "uk-ua":
                Debug.LogWarning("乌克兰语");
                break;
            case "ur":
            case "ur-pk":
                Debug.LogWarning("乌都语");//乌尔都语
                break;
            case "uz":
            case "uz-uz":
            case "uz-latn":
            case "uz-latn-uz":
            case "uz-cyrl":
            case "uz-cyrl-uz":
                Debug.LogWarning("乌兹别克语");
                break;
            case "vi":
            case "vi-vn":
                Debug.LogWarning("越南语");
                break;
            case "xh":
            case "xh-za":
                Debug.LogWarning("班图语");//索萨语
                break;
            case "zu":
            case "zu-za":
                Debug.LogWarning("祖鲁语");
                break;
            default:
                Debug.LogWarning("未找到语言:"+ CurrentCulture);
                break;
        }
        Debug.LogWarning("当前语言==========================================");
        return "";
    }

可以直接复制选择需要的语言就行了,包含了绝大多数的语种,一般只需要截取前一节就可以判断了,更详细的就需要自己去找相应的编码了,我没有写详细的地域太麻烦了,也用不上。自己留着用就好

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值