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