Unity获取系统语言

  大家好,我是阿赵。

  在使用Unity引擎做多语言的游戏时,很有可能需要根据用户的手机或者电脑的当前语言来设置游戏的默认语言。

  Unity的API里面默认就有可以获取系统语言的方法:

bash 复制代码
Application.systemLanguage

Unity的API例子:

bash 复制代码
using UnityEngine;

public class Example : MonoBehaviour
{
    void Start()
    {
        //This outputs what language your system is in
        Debug.Log("This system is in " + Application.systemLanguage);
    }
}

这个API返回的值类型是SystemLanguage,包含了很多语言,我对返回值做一个翻译,方便查看:

Afrikaans 南非荷兰语

Arabic 阿拉伯语

Basque 巴斯克语

Belarusian 白俄罗斯语

Bulgarian 保加利亚人

Catalan 加泰罗尼亚语

Chinese 中文

Czech 捷克语

Danish 丹麦语

Dutch 荷兰语

English 英语

Estonian 爱沙尼亚语

Faroese 法罗语

Finnish 芬兰语

French 法语

German 德语

Greek 希腊语

Hebrew 希伯来语

Icelandic 冰岛语

Indonesian 印度尼西亚语

Italian 意大利语

Japanese 日语

Korean 韩语

Latvian 拉脱维亚语

Lithuanian 立陶宛语

Norwegian 挪威语

Polish 波兰语

Portuguese 葡萄牙语

Romanian 罗马尼亚语

Russian 俄语

SerboCroatian 塞尔维亚克罗地亚语

Slovak 斯洛伐克语

Slovenian 斯洛文尼亚语

Spanish 西班牙语

Swedish 瑞典语

Thai 泰语

Turkish 土耳其语

Ukrainian 乌克兰语

Vietnamese 越南语

ChineseSimplified 简体中文

ChineseTraditional 繁体中文

Unknown 未知的

Hungarian 匈牙利语

  我使用安卓模拟器测试了一下,有一个值得注意的地方:

  在手机的语言设置里面,中文有很多种,不仅分为繁体和简体,还有各个地区。

其中:
中文(中国)
简体中文(中国)
简体中文(新加坡)

这三个获取到的是ChineseSimplified

简体中文(澳门)
繁体中文(澳门)
简体中文(香港)
繁体中文(香港)
繁体中文(台湾)

这几个获取到的是ChineseTraditional

  另外一个需要注意的地方是,这个API获得的语言似乎是应用启动时的语言,比如我的手机一开始是简体中文,进到游戏之后获取一次,是ChineseSimplified。我退游戏到桌面,然后去设置里面改系统语言,再直接回到游戏(没有重启游戏),这个情况下,获取的结果不会变,还是ChineseSimplified。

相关推荐
xiaogai_gai7 小时前
BOM 物料清单同步实战:金蝶云星空 → 四化智造 MES 修改场景深度拆解
unity·游戏引擎
淡海水10 小时前
03-03-架构篇-SGen GC架构解析
unity·架构·c#·gc·sgen
/**书香门第*/11 小时前
Cocos Creator 打螺丝游戏的实现
游戏引擎·cocos2d·螺丝·打螺丝
萌萌的提莫队长1 天前
Unity相机捕捉,图像识别,抠像+合成
opencv·unity
mxwin2 天前
Unity Shader 光线追踪原理与实战案例
unity·游戏引擎
地狱为王2 天前
Unity使用DPDFNet实现实时语音增强(降噪)
unity·语音增强·降噪·dpdfnet
平行云PVT2 天前
国产信创实时云渲染解决方案:如何实现数字孪生与三维应用云化部署?
unity·webrtc·unreal engine·实时云渲染·国产信创·摩尔线程·砺算科技
夏炎黄2 天前
Terrain地形剪裁
unity
小贺儿开发2 天前
DeepSeek + Codex + MCP:Unity 游戏开发实测
科技·游戏·unity·ai·程序员·编程·deepseek
新的瑞拉公主2 天前
Cocos plist 粒子一键导入 Unity:Editor 工具实现与参数映射
unity·游戏开发·cocos2d-x·粒子系统·editor工具