3

我将使用 GTK+ 将 Python 编写的应用程序国际化。需要将单位系统国际化,主要是从“fl. oz”到“litres”,从盎司到克等的体积。我正在寻找一个可以提供帮助的工具和库。Python 默认有 gettext 模块,但我不确定它是否有用。

在最好的情况下,我想要一个工具,读取单位,自动获取语言环境并返回本地化单位。

任何帮助表示赞赏。


当然,价值计算也很棒。

4

2 回答 2

1

很难证明是否定的。但我怀疑你运气不好。

我所知道的最全面的特定文化名称、偏好和单位集合是 Unicode通用语言环境数据存储库 (CLDR)项目。查看其最新 v23.1 版本的摘要,我可以看到货币条目、时区城市、时间间隔名称、“{0} 个月内”和“{0} 秒前”的短语。 . 但不是质量和体积单位的文化惯例。

如果 CLDR 没有它,如果有任何现成的集合确实有它,我会感到惊讶。

你需要的是:

  • 关于不同地区偏爱哪些单位的数据,用于各种测量(质量、体积等)。祝您好运,获得此类问题的单一答案;在加拿大西部,我看到人们在日常生活中使用磅和公斤、米和英尺、°F 和°C 的混合物。这是可能无法在任何地方收集的数据。
  • 用于各种语言环境中的各种单位的名称。无论我们在加拿大的这个地区使用米还是英尺,您都希望在您的用户使用的所有语言(英语、法语、简体中文、乌尔都语......)中为这两个单位提供单词。任何本地化程序都可以为您提供这些单词列表。
  • 一种按区域设置管理和检索各个单元名称的机制。Gettext可以为您做到这一点。
  • 一种按区域设置管理和检索各种单元的标识符的机制。我还没有听说过任何直接执行此操作的机制,但是您可以自己编写一个,或者重新调整 Gettext 的用途。
  • 应用程序逻辑采用区域设置和一种单元,检索该区域设置中的单元的标识符,并在目标区域设置中查找该单元的区域设置名称。
  • 将数量从一个单位转换为另一个单位的应用程序逻辑。我怀疑这很容易自己写。找到转换系数应该不难。
  • 有关各种语言环境如何格式化数字的数据,以及管理和检索该数据的机制。CLDR 会为您做到这一点。在 Python 中使用 CLDR 的 JSON 绑定已经有一些工作。

作为一个结束的想法:你的问题预设了“需要国际化单位系统”。您是否研究过您的用户和您的产品,了解他们如何使用单位以及产品如何使用单位,从而确定自动更改单位是合适的?我生活在一个官方公制的国家,但被一个强调不是公制的国家所掩盖。我宁愿让应用程序显示克、磅或内容作者决定的任何单位。如果我想转换,有时精确转换很好,有时近似转换更有用(“2 磅”有时可以更好地呈现“1 公斤”而不是“2 磅 3.2 盎司”)。在你在你寻求的这个工具上投入太多工作之前,我建议你在你的需求上投入一些时间。

于 2013-09-06T08:31:36.627 回答
0

实际上有几个 Python 的 Unit 库,一些值得注意的例子:

于 2015-07-02T07:56:16.323 回答