python - 国际化单位系统

标签 python localization internationalization gettext

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

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

感谢任何帮助。


当然,值(value)计算也很棒。

最佳答案

要证明是否定的是非常困难的。但我怀疑你运气不好。

据我所知,最全面的文化特定名称、偏好和单位集合是 Unicode Common Locale Data Repository (CLDR)项目。看着 summary of its most recent, v23.1, release ,我可以看到货币条目、时区城市、时间间隔名称、“{0} 个月内”和“{0} 秒前”短语……但看不到质量和体积单位的文化惯例。

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

你需要的是:

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

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

关于python - 国际化单位系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17127302/

相关文章:

Python字符串格式化太慢

python - 模拟补丁以错误的顺序出现?

javascript - jQuery 日期选择器本地化

Flutter:API 调用的本地化

c# - 如何在 C# 中编写代码来比较日文字符串?

python - 使用 lxml 将输出格式化为 XML

Python 日志记录与性能

wpf - 如何动态切换不同语言的资源文件?

ios - 在应用程序中更改语言

qt - l更新错误: Qualifying with unknown namespace/class