从 i18n 格式化字符串

3

Rust的字符串格式化宏(例如“println!”和“format!”)要求它们的格式化字符串参数是字符串字面量(如此处所述)。鉴于此,如果需要从外部源(例如消息翻译数据库,例如.po文件或类似文件)中获取文本(其中将需要嵌入其他数据),则应使用什么方法来格式化消息?


1
这是 Rust 中绝对不成熟的领域。 - Chris Morgan
我一直在进行实验,并有一些早期版本 https://github.com/pzol/r18n - Piotr Zolnierek
如果我正确理解了你的问题,你可能希望重新措辞一下。我认为人们在你的问题的国际化部分上卡住了,错过了你基本上是在问“如何拥有一个动态格式字符串?”包括你想要进行i18n是有用的上下文。 - Shepmaster
1个回答

1

目前,Rust明确选择不试图解决这个问题。

国际化和本地化的问题很棘手;自然语言中有很多怪癖:

  • 在英语中,你使用th后缀来形成文字字面量,除了当它是st(在1或21之后但不在11之后)或ndrd
  • 在波兰语中,你有相对复杂的复数形式规则

据我所知,今天没有任何库能够完全解决任何语言的国际化的全部复杂性。可以在此处跟踪 Rust 的研究。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接