这是我第一次开发一款需要本地化为20多种语言的应用。问题是有很多消息包含变量。它不能被硬编码,因为如果它发生了变化,管理员就必须在20多个属性文件中进行更改。
有没有已知的可能性如何处理它?我目前正在使用spring框架。
答案 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。