是否有满足这些要求的用于 i18n 目的的格式字符串语法?
- 实现可用于多种编程语言(内置或库绑定)。至少 C/C++,python。
- 开源并移植到多个平台
- 支持位置参数的排列(如 posix printf with $)
- 和/或者,更好的是,支持命名参数
- 可以针对应用程序定义的数据类型进行扩展
是否有满足这些要求的用于 i18n 目的的格式字符串语法?
我认为国际 Unicode 组件(ICU)的格式化和解析功能可能会为您解决问题。
ICU 有 C/C++ 和 Java 实现,其他提供ICU 绑定 12 种语言,从 Python 到 Cobol。ICU 许可证允许“任何人……不受限制地交易软件……”。该类应该为您提供所需的命名参数MessageFormat
。我没有尝试扩展 ICU Formatting 类,但它们确实有一些您可以从它们开始的抽象基类。