Spring的ResourceBundleMessageSource
使用MessageFormat
替换邮件中的占位符({0}
)。
MessageFormat
要求使用两个单引号('
)对单引号(''
)进行转义(请参阅:MessageFormat Javadoc)。但是,默认情况下,MessageFormat
不会解析不包含任何参数的消息,因此不需要对没有参数的消息中的单引号进行转义。
因此,您的翻译人员必须了解编写和维护资源包时的两个规则:
''
),则写入({0}
); '
)。在编写Spring Resource Boundle时是否有单一规则来处理单引号?
答案 0 :(得分:10)
ResourceBundleMessageSource
提供了一个名为alwaysUseMessageFormat
的标记,如果MessageFormat
应该应用于所有邮件,则可以使用该标记。
使用以下命令为您的所有资源边界配置一次:
<bean
id="messageSource"
class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="alwaysUseMessageFormat" value="true" />
...
</bean>
并且您的翻译人员必须了解编写和维护资源包时的单一规则:
''
)另见Why Spring MessageSource arguments are not filled correctly in some locales。