Java字符串资源的管理

Java字符串资源的管理,java,Java,我正在与其他人一起开发一个JavaSE1.5+swing应用程序。我想知道管理字符串资源的最佳方法是什么。我理解资源包等背后的原理。我希望避免为每个需要字符串的类都有一个属性文件,因为这似乎有点过分。特别是当您有很多类可能只对字符串进行一次引用时(比如在错误处理程序中)。另一方面,它使与其他人协作变得更容易,因为您减少了合并冲突的风险 每次需要显示简单的用户反馈时,加载资源包似乎特别麻烦,当涉及到许多类时,错误处理程序也是如此 在一个有数百个类的相当大的应用程序中,管理字符串最有效的方法是什么?

我正在与其他人一起开发一个JavaSE1.5+swing应用程序。我想知道管理字符串资源的最佳方法是什么。我理解资源包等背后的原理。我希望避免为每个需要字符串的类都有一个属性文件,因为这似乎有点过分。特别是当您有很多类可能只对字符串进行一次引用时(比如在错误处理程序中)。另一方面,它使与其他人协作变得更容易,因为您减少了合并冲突的风险

每次需要显示简单的用户反馈时,加载资源包似乎特别麻烦,当涉及到许多类时,错误处理程序也是如此

在一个有数百个类的相当大的应用程序中,管理字符串最有效的方法是什么?其中许多类与GUI无关,但在出现异常时需要将信息性消息传递回GUI


我正在使用NetBeans,它通常为每个GUI类创建一个属性文件,用于与按钮、标签等相关的所有文本。

是什么让您认为必须为每个类创建一个单独的属性文件?通常,您只需要几个(或一个!)属性文件(当然是每种语言)

只需使用适当的参数调用即可——您可以使用来自多个类的同一个包


编辑:每个对话框等都有一组属性文件,这样可以更容易地查看任何特定字符串的来源,但更难重用相同的消息等。正确的平衡点取决于应用程序。

这可能很幼稚,但是将它们存储在数据库中,无论是嵌入的还是外部的呢?这可能会简化管理,并使更改的语言更具可配置性。

JSR 296 Swing应用程序框架支持资源管理(看起来将成为Java 7的一部分)。SAF的目标是在封装最佳实践的同时,预构建许多人经常需要的Swing应用程序的部分。你可能不想直接联系到它,但值得一看他们做了什么,看看它是否能给你一些想法。如果我记得的话,它们使用具有定义良好的命名约定的级联资源包。后者意味着您知道在哪里查找,前者意味着您可以跨包层次结构的某些部分重用属性


很多。

今年我将实现类似Launchpad翻译平台的功能:

简言之:

  • 并行翻译
  • 基于以前输入的短语的短语建议
  • 政策,例如部分受限和结构化:任何人都可以提出翻译建议,而受信任的社区成员可以审查和批准新作品
更新

当然,这是建立在ResourceBundle等之上的,但这是管理所有字符串的好方法;-)