计算机发明那会儿,还只有英文。
然后全球化,本地化了,不同区域的人群策群力,就有了Locale这个东西,对于中文定义了zh_CN/zh_TW。这个东西相当原始,但是能用就行。
这么用了几十年,IT界发现这个东西不准确,于是有了languageTag(语言,文字,区域,方言)这样的四元组来精确表示语言的标准。
但是IT届最大的一个问题就是继承,前人的东西用的好好的能不动就不动。所以时至今日还是绝大部分的软件在用Locale而不是精确的languageTag
至于为什么这个问题为什么表现出楼主的问题,那是做languageTag标准的人顺便把语言/地区/问题名字标准化了,放在了ICU库里,这样一个软件就再也不用去考虑几百个语言标签在几百种语言里该怎么翻译的问题。
你看谷歌翻译,你用zh,zh-CN,zh-Hans,zh-Hans-CN它都懂,旧的得继承,但是新的得有勤快的人去帮忙改才行。大家有闲功夫,自己去git提交更改就行,不用过分敏感。不过Qt是一大家子,不知道单纯改个QtCreater时候还要考虑更多兼容问题,比如很多系统还在用那个旧的Locale。
于是用locale来表示语言又用icu获取显示文字就产生了这个问题。
最根本的原因还是历史遗留导致的不精确,没有人去动它。
发自「今日水木 on 钛星」
--
FROM 111.196.80.*