如何组织Java属性条目进行国际化?

在我们的应用程序中,我们有一个messages.properties文件,其中包含将显示给UI的所有字符串。 我们有一个带有几个屏幕的小应用程序,它已经变得笨重,整个字符串值重复。

现在我们将它组织成特定于页面的字符串,用空格和注释分隔出来,每个jsp的一个部分的属性名称都带有页面名称的前缀。 我们还有实体部分,例如,在我们显示用户电子邮件地址的任何地方,我们将引用属性user.email作为该输入或输出字段的标签。 我们有另一个部分用于错误和状态消息,最后一个部分包含全局消息,如“提交”和“取消”

必须有一个更好的方法,我想知道你是否知道它是什么。

我不认为有一种普遍的“更好的方式”。 我尝试使用谷歌搜索“最佳实践”的建议,并没有发现任何谈论如何最好地构建i18n的属性命名空间。

(我发现这有点令人惊讶。通常有人会准备在这样的事情上提出他们考虑不周的意见作为“最佳实践”。或许,我太愤世嫉俗了。)

FWIW,我的一般建议是:

  • 关于属性名称和属性文件结构的系统性和一致性。
  • 如果有很多重复,不要害怕使用资源包inheritance,
  • 如果属性文件或资源包太大,请对它们进行分区。

但我希望你已经知道并做了所有这些。

最后,不要太担心这个“恰到好处”。 没有完美的解决方案,你目前正在做的事情可能已经足够……根据支付你做这项工作的人的标准。