繁体 cc.sys.language里没有?

建议增加一下这个

1赞

1 年半之后, 我再来顶一下.

或者官方可以告诉一下我们操作的方法吗?

/**
 * Chinese language code
 * @property {String} LANGUAGE_CHINESE
 * @readOnly
 */
sys.LANGUAGE_CHINESE = "zh";

目前是这样定义的,所有语言都是一致的,不区分地区。如果加上繁体,就会破坏一致性了。不知道要怎么改比较好。加一个变量?cc.sys.language.isHant ? 还是加上 sys.LANGUAGE_CHINESE_TRANDITIONAL?还是 sys.LANGUAGE_CHINESE_HANT?

可以參考IANA(互联网号码分配局)的language subtag
https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry
簡單說簡體就是zh-Hans, 繁體就是zh-Hant.

主要是变量名…… 现在中文是 cc.sys.LANGUAGE_CHINESE

这值得再思考下.

以本地化的精神来看, 甚至不能光只区分语言, 连地区用语方式都要区分. 同样是繁体也有台湾用语或香港用语的差别, 或是我上面给的IANA的language subtag, 英语就有好几个subtag了, 实际市场也是有需求的(前面提的台湾用语版本或香港用语版本是实际上遇过的问题). 所以另外加个cc.sys.AREA系统变量(无法取得就是unknown), 整体上来看会不会比较好呢?

其实实际在做的时候应该是有workround可以用的, 只是引擎有支持就省点事, 少搞一个workround而已.

所以,cc.sys.language === ‘zh’, cc.sys.area === ‘hant’?

这是我目前的处理方案. value 分别从 browser 和 native 使用各自平台的方法获得.
没办法, 项目必须要知道繁体中文.

(贴代码总是有问题…)

你能提供一下你获得 value 的代码吗?

感觉加上 cc.sys.fullLanguage: string 比较直接。直接返回带 tag 的 language,用户可以自己判断。省得以后有同类方言的需求又要引擎来加枚举。

2.0.7 的下个最新版本,会添加一个 api 叫 cc.sys.languageCode, 返回带 tag 的完整 language,用户可以自行通过该 api 进行判断需要的系统语言

2赞

@Knox

2.0.9 cc.sys.languageCode 在 windows android 取不到地区码,只有 browser 可以正常获得

目前只做到区分繁体,具体到地区码不支持,需要用户自行处理

现在连繁体都没办法区分,
cc.sys.languageCode:browser 可以取到 ‘zh-tw’ ,windows android 只能取到 ‘zh’

browser

windows android

谢谢反馈,会进行验证,如果有问题会进行尽快修复

@Knox @jare 这个在2.0.9仍然存在问题

呃,我们调用的是操作系统的 API 喔,如果系统都拿不到,我们就没办法了

已经更新,2.1.3 将能获得更准确的地区码,代码可参考 https://github.com/cocos-creator/cocos2d-x-lite/pull/1784

这个不可以加繁体,这个cc.sys.language代表的是国家,中国官方是简体,台湾不是个国家,想取去这个cc.sys.languageCode里边

别紧张,就是这个帖子让我们添加了 languageCode 这个参数