我正在做一个Spring Web应用程序,但我觉得这个问题不是特定于框架的。
我有一个HTML选择列表,其中包含大约30个值。 Web应用程序需要具有四种语言的接口。因此,对于每种语言,HTML选择列表需要显示相同值列表的翻译文本。
我可以使用JSP页面对四种语言的列表进行硬编码,并使用条件来显示具有正确语言的列表。但我觉得这种方法不容易维护,并且不能很好地扩展,因为列表可能会不断变化。当列表更新时,无法停止Web应用程序。
我还可以使用Spring的消息机制和属性文件来显示列表,该列表出现了相同的可维护性和可伸缩性问题。
我正在考虑的另一种方法是将所有列表存储在数据库中,并根据区域设置使用正确的语言提取列表。我不确定如何在类和表的设计方面继续这种方法。有谁知道任何类似的工作?或任何想法?
感谢您的任何意见!
干杯。
答案 0 :(得分:1)
如果你要去数据库路线,那么我建议一个包含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
s :locale
和:group_name
参数从List
返回有序EntityManager
。