如何处理消息包中存在的变量(本地化)

时间:2011-01-10 14:44:24

标签: java spring localization

这是我第一次开发一款需要本地化为20多种语言的应用。问题是有很多消息包含变量。它不能被硬编码,因为如果它发生了变化,管理员就必须在20多个属性文件中进行更改。

有没有已知的可能性如何处理它?我目前正在使用spring框架。

2 个答案:

答案 0 :(得分:1)

一种方法可能是用标记替换变量,并使用String.Format方法(http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html#format(java.lang.String,%20java.lang.Object ...))或其他类型的Formatter进行相应的替换。

虽然我自己刚刚进入Spring并怀疑它可以提供更优雅的解决方案,但目前我会使用字符串格式化程序在运行时用可变值替换占位符。

答案 1 :(得分:1)

看看org.springframework.context.MessageSource。有各种getMessage()方法采用Object [],可以使用{0}{1},语法来进行变量替换。

有关详细信息,请参阅Spring手册的Section 3.13.1