我如何知道与给定区域相对应的测量单位?

时间:2012-12-26 09:26:46

标签: c localization internationalization locale units-of-measurement

我希望以与语言环境相关的方式显示长度,即:显示当前语言环境的正确度量单位的长度。我知道LC_MEASUREMENT是我需要使用的,但我该如何使用呢?

GNU gettext没有给我任何与LC_MEASUREMENT一起使用的东西。我查看了一些天气小程序的来源,它们都要求您在首选项窗口中手动输入您的单位(Kelvin,Fahrenheit或Celsius)。

在我看来,任何人都不会使用该环境变量,但我真的很想用它来提供更好的用户体验。也许,是否有一个免费(如在自由中)数据库将区域设置名称映射到相应的度量单位?

仅供参考:我的申请是用C语言编写的。

1 个答案:

答案 0 :(得分:2)

据我所知,C标准和GNU gettext没有提供任何方式来了解一个国家使用的测量单位,没有第三方图书馆可以完成这项工作,也没有现成的数据库(免费)或专有)。

然而,根据CIA - The World Factbook

  

目前,只有三个国家 - 缅甸,利比里亚和美国 - 没有采用国际单位制(SI或公制)作为其官方权重系统。

即使没有数据库或第三方库,编写自己的代码也相当容易。您只需要特殊情况三个LC_MEASUREMENT值(或者更好,三种模式,因为其中一些国家/地区只有一种语言):

更新:所有这些国家/地区都处于转换为公制系统(SI)的()过程中。这可能是为什么没有人打扰写一些库,代码片段或数据库的另一个原因。