【Unity游戏开发之十二】Application.systemLanguage无法区分简体中文和繁体中文
2015-12-12 19:26
525 查看
游戏发布,语言本地化需要繁体中文和简体中文
iOS8版本之前没问题,iOS9上无法正常识别这两种语言
原因是在iOS9上,Unity通过Application.systemLanguage返回的简体中文和繁体中文都是SystemLanguage.Chinese,真尼玛坑爹啊,摔手机砸电脑~
亲测Unity 5.2.1、Unity 5.3都有这个问题,Unity更新日志中都没有见这方面消息,不知是没人重视还是没人提~
原因分析:
可见苹果在iOS9上都做了什么鬼处理......
解决方法:
如果Application.systemLanguage返回的是chinese,直接通过C#调用ObjC函数获得当前iOS系统语言进行纠正
相关资料:
Unity的C#和ObjC数据交互 /article/3589231.html
iOS获得当前系统语言 /article/3589234.html
【Unity语言国际化】多语言缩写对应表 /article/3589214.html
iOS8版本之前没问题,iOS9上无法正常识别这两种语言
原因是在iOS9上,Unity通过Application.systemLanguage返回的简体中文和繁体中文都是SystemLanguage.Chinese,真尼玛坑爹啊,摔手机砸电脑~
亲测Unity 5.2.1、Unity 5.3都有这个问题,Unity更新日志中都没有见这方面消息,不知是没人重视还是没人提~
原因分析:
语言 iOS返回语言 Application.systemLanguage ios 7 简体中文 zh-Hans ChineseSimplified 繁体中文 zh-Hans ChineseSimplified ios 8.1 简体中文 zh-Hans ChineseSimplified 繁体中文(香港) zh-HK ChineseTraditional 繁体中文(台湾) zh-Hant ChineseTraditional ios 9.1 繁体中文 zh-Hant-CN Chinese 简体中文 zh-Hans-CN Chinese 繁体中文(香港) zh-HK ChineseTraditional 繁体中文(台湾) zh-TW Chinese
可见苹果在iOS9上都做了什么鬼处理......
解决方法:
如果Application.systemLanguage返回的是chinese,直接通过C#调用ObjC函数获得当前iOS系统语言进行纠正
using UnityEngine; using System.Collections; using System.Runtime.InteropServices; public class ComManager { [DllImport("__Internal")] // ios手机的当前语言 "en"、“zh"、“zh-Hans"、"zh-Hant" private static extern string CurIOSLang(); /** 获得校正后的系统语言 因为ios9调整了系统语言,简体中文和繁体中文在ios9上Application.systemLanguage获取的值都是Chinese 无法区分简体中文和繁体中文 ios 7 简体 zh-Hans 繁体 zh-Hant ios 8.1 简体中文 zh-Hans ChineseSimplified 繁体中文(香港) zh-HK ChineseTraditional 繁体中文(台湾) zh-Hant ChineseTraditional ios 9.1 简体中文 zh-Hans-CN Chinese 繁体中文(香港) zh-HK ChineseTraditional 繁体中文(台湾) zh-TW Chinese **/ public static SystemLanguage GetSystemLanguage() { SystemLanguage lang = Application.systemLanguage; if (Application.platform == RuntimePlatform.IPhonePlayer) { if (lang == SystemLanguage.Chinese) { string name = CurIOSLang(); if (name.StartsWith("zh-Hans")) { return SystemLanguage.ChineseSimplified; } return SystemLanguage.ChineseTraditional; } } return lang; } }
相关资料:
Unity的C#和ObjC数据交互 /article/3589231.html
iOS获得当前系统语言 /article/3589234.html
【Unity语言国际化】多语言缩写对应表 /article/3589214.html
相关文章推荐
- UnityEngine.Quaternion.LookRotation详解
- 检测prefab身上关联的shader
- Unity开发IOS游戏的优化建议
- 【Unity3d】【项目学习心得】从资源服务器下载资源(三)
- 【Unity3d】【项目学习心得】从资源服务器下载资源(二)
- 【Unity3d】【项目学习心得】从资源服务器下载资源(一)
- Unity3D在一建筑GL材料可以改变颜色和显示样本
- Unity Shader学习总结(基础篇)
- Unity Shader学习总结(资料篇)
- Unity3d获取在Asset中选中的目录、资源 的路径
- 3DS导出到Unity3D的注意事项
- Unity3D无缝场景切换解决方案 - 简单场景切换
- Unity 协程使用(嵌套)
- 王立平--Unity综上所述控制
- 怎么给Unity写一个原生的插件
- 怎么给Unity写一个原生的插件
- Unity3D研究院之Assetbundle的实战(六十三)
- Unity3D研究院之将场景导出XML或JSON或二进制并且解析还原场景(四十二)
- Unity学习笔记(4) --- Unity的界面排版:初识GUI
- 关于unity3d纹理贴图的学习总结