放置在资源包中时,撇号不会被正确转换

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (17)

撇号放在资源包中时不能正确翻译。

key = {0}'s brush is {1} centimeters tall

(e.g. Sam's brush is 4 centimeters tall)

如果我从java.util.ResourceBundle这里有什么问题?

提问于
用户回答回答于

你应该将单引号转义为

key = {0}''s brush is {1} centimeters tall
用户回答回答于

我坚信问题不是资源包,而是用来显示消息的MessageFormater

从MessageFormater java文档

在一个字符串中,''(两个单引号)代表一个单引号。QuotedString可以包含除单引号之外的任意字符; 周围的单引号将被删除。UnquotedString可以包含除单引号和左大括号之外的任意字符。因此,应该导致格式化消息“{0}”的字符串可以写为'''{'0}''或'''{0}'''。

所以你需要写:

{0}''s brush is {1} centimeters tall

扫码关注云+社区