Spring的ResourceBundleMessageSource
使用MessageFormat
替换消息中的占位符({0}
)。
MessageFormat
要求用两个单引号(''
)转义单引号('
)。(参见: MessageFormat Javadoc)。然而,默认情况下,不包含任何参数的消息将不会被MessageFormat
解析,因此消息中不带参数的单引号不需要转义。
因此,你的翻译者必须注意以下两个规则来编写和维护资源包:
- 如果带有单引号的消息中至少包含一个占位符(
{0}
),则写成 (''
); - 如果带有单引号的消息中不包含任何占位符,则写成 (
'
)。
在编写Spring Resource Bundle时,是否存在单一规则来处理单引号呢?
ValidationMessages.properties
,并且键必须与JSR 303实现中的默认资源包中存在的键完全相同。因此,如果程序员注意正确的键,则编写和维护资源包的翻译人员不应该有问题。 - taringamberini