我正在做一个 Spring Web 应用程序,但我觉得这个问题不是特定于框架的。
我有一个包含大约 30 个值的 HTML 选择列表。 Web 应用程序需要具有四种语言的界面。因此,对于每种语言,HTML 选择列表需要显示相同值列表的翻译文本。
我可以使用 JSP 页面对四种语言的列表进行硬编码,并使用条件来显示正确语言的列表。但我觉得这种方法不容易维护,而且扩展性不好,因为列表可能会不断变化。并且当列表更新时,网络应用程序无法停止。
我还可以使用 Spring 的消息机制和属性文件来显示列表,这似乎遇到了相同的可维护性和可扩展性问题。
我正在考虑的另一种方法是将所有列表存储在数据库中,并根据区域设置使用正确的语言提取列表。我不确定如何在类和表的设计方面继续采用这种方法。有谁知道有类似的作品吗?或者有什么想法吗?
感谢您的任何意见!
干杯。
最佳答案
如果您打算走数据库路线,那么我建议使用一个包含 4 列的表格:
locale: (stuff like "en_US", and "fr_CA")
group_name: (whatever they are grouped by: "random-select-widget")
value: (text value: "random selection")
order: (integer order that it should appear in the list: 0)
复合主键为 (locale,group_id,order)。如果您觉得需要,可以使用 (locale_id,locale_name) 和 (group_id,group_name) 表将它们转换为整数。
您的类可以是简单的 Hibernate 实体,使用 NamedQuery
接受 :locale
和 :group_name
参数来返回有序的 List
来自 EntityManager
。
关于Java网络应用程序: pulling data out of database according to locales,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16868993/