You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何根据Windows区域设置自动更改Unity项目的语言?

如何根据Windows区域设置自动更改Unity项目语言

可以通过C#获取Windows系统的区域设置信息,再结合Unity的本地化方案实现自动切换语言,具体步骤如下:

1. 获取Windows区域设置

利用.NET的System.Globalization.CultureInfo类,可获取两种常用的区域标识:

  • CurrentCulture.Name:对应当前用户设置的区域格式(如控制面板里的日期/数字格式区域)
  • InstalledUICulture.Name:对应Windows系统的UI语言区域

示例代码:

using System.Globalization;

// 获取用户设置的区域格式代码(如zh-CN、en-US)
string systemFormatCulture = CultureInfo.CurrentCulture.Name;
// 获取系统UI语言的区域代码
string systemUICulture = CultureInfo.InstalledUICulture.Name;

2. 映射区域代码到项目语言

项目中的语言标识可能和系统区域代码不完全匹配,需要建立映射关系:

Dictionary<string, string> cultureLanguageMap = new Dictionary<string, string>()
{
    {"zh-CN", "Chinese"},
    {"en-US", "English"},
    {"ja-JP", "Japanese"}
    // 按需添加项目支持的语言映射
};

3. 切换Unity项目语言

用Unity官方Localization包的情况

如果项目使用Unity官方的Localization包,可通过异步API切换语言:

using UnityEngine.Localization.Settings;
using System.Threading.Tasks;

async Task SwitchProjectLanguage(string cultureCode)
{
    if (cultureLanguageMap.TryGetValue(cultureCode, out string targetLanguage))
    {
        var targetLocale = LocalizationSettings.AvailableLocales.GetLocale(targetLanguage);
        if (targetLocale != null)
        {
            await LocalizationSettings.SelectedLocaleAsync.SetValue(targetLocale);
        }
    }
    else
    {
        // 无匹配时切换到默认语言
        var defaultLocale = LocalizationSettings.AvailableLocales.GetLocale("English");
        await LocalizationSettings.SelectedLocaleAsync.SetValue(defaultLocale);
    }
}

自定义多语言系统的情况

如果是自己实现的多语言框架,直接调用自定义的语言切换方法即可,比如:

void SwitchCustomLanguage(string languageName)
{
    // 自定义逻辑:加载对应语言的文本资源、更新UI显示等
    LanguageManager.Instance.SetCurrentLanguage(languageName);
}

4. 启动时自动执行

将语言切换逻辑放在游戏初始化脚本中,启动时自动执行:

void Start()
{
    // 这里选择跟随用户的区域格式设置,也可以换成systemUICulture
    SwitchProjectLanguage(CultureInfo.CurrentCulture.Name).ConfigureAwait(false);
}

注意事项

  • 确保项目已正确配置多语言资源(无论是官方包还是自定义实现)
  • 测试时可在Windows控制面板的「区域」设置中切换格式/UI语言,重启项目验证效果
  • 若需支持更多区域代码,只需在映射字典中补充对应关系即可

内容的提问来源于stack exchange,提问作者gojim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 07:45:30