use*_*538 5 c locale localization internationalization units-of-measurement
我想以与语言环境相关的方式显示长度,即:以当前语言环境的正确测量单位显示长度。我知道这LC_MEASUREMENT是我需要使用的,但是我该如何使用呢?
GNU gettext 没有给我任何可用的LC_MEASUREMENT. 我查看了一些天气小程序的来源,它们都要求您在首选项窗口中手动输入单位(开尔文、华氏或摄氏)。
在我看来,该环境变量从未被任何人使用过,但我真的很想用它来提供更好的用户体验。也许,是否有一个免费(如自由)数据库可以将区域设置名称映射到相应的测量单位?
仅供参考:我的应用程序是用 C 编写的。
据我所知,C 标准和 GNU gettext 没有提供任何方法来了解一个国家使用的测量单位,没有第三方库可以完成这项工作,也没有现成的数据库(免费或专有) 。
然而,根据中央情报局 - 世界概况:
目前,只有缅甸、利比里亚和美国这三个国家尚未采用国际单位制(SI,或公制)作为其官方度量衡制度。
因此,即使没有数据库或第三方库,编写自己的代码也相当容易。您只需对三个LC_MEASUREMENT值进行特殊处理(或者更好的是,三个模式,因为其中一些国家/地区不仅有一种语言):
更新:所有这些国家都处于(缓慢)转换为公制(SI)的过程中。这可能是没有人费心编写一些库、代码片段或数据库的另一个原因。