撇号在资源包中时无法正确翻译

2022-08-31 10:32:48

撇号在资源包中放置时无法正确翻译。

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

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

撇号会丢失,如果我从一个格式化上面的键 这里可能是什么问题?java.util.ResourceBundle


答案 1

您应该将单引号转义为

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

答案 2

我坚信问题不在于资源包,而在于您用于打印消息的 MessageFormater

From MessageFormater java doc

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

所以你需要写:

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

推荐