java - 如何组织国际化的 Java 属性条目?

标签 java internationalization properties

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

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

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

最佳答案

我认为没有通用的“更好的方法”。我尝试在谷歌上搜索“最佳实践”建议,但发现没有讨论如何最好地为 i18n 构建属性命名空间。

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

FWIW,我的一般建议是:

  • 在属性名称和属性文件结构方面保持系统和一致。
  • 如果有很多重复,不要害怕使用资源包继承,
  • 如果属性文件或资源包变得太大,将它们分区。

但我希望您已经了解并做到了所有这些。

最后,不要太执着于“恰到好处”。没有完美的解决方案,您目前所做的可能已经足够好了……根据付钱给您做这项工作的人的标准。

关于java - 如何组织国际化的 Java 属性条目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4414313/

相关文章:

JavaFX - 控件组的事件处理程序

java - 如果我使用单独的类,如何使用 DecimalFormat 格式化结果?

python - Django makemessages 将翻译后的字符串标记为模糊

c# - 重构具有内部静态属性的结构

java - Spring MVC 路由未找到 - 404

java - Mac 上的 JFileChooser 看不到中文字符命名的文件?

java - Struts2 中 Requestprocessor.processLocale 方法的等效项是什么?

java - Apache log4j 2.3 从另一个文件获取日志文件路径

objective-c - 没有显式声明的属性 ivars 会生成哪些名称?

java - 不支持从 varbinary 到 BLOB 的转换