Java Web应用程序:根据区域设置从数据库中提取数据

时间:2013-06-01 04:19:21

标签: java database internationalization

我正在做一个Spring Web应用程序,但我觉得这个问题不是特定于框架的。

我有一个HTML选择列表,其中包含大约30个值。 Web应用程序需要具有四种语言的接口。因此,对于每种语言,HTML选择列表需要显示相同值列表的翻译文本。

我可以使用JSP页面对四种语言的列表进行硬编码,并使用条件来显示具有正确语言的列表。但我觉得这种方法不容易维护,并且不能很好地扩展,因为列表可能会不断变化。当列表更新时,无法停止Web应用程序。

我还可以使用Spring的消息机制和属性文件来显示列表,该列表出现了相同的可维护性和可伸缩性问题。

我正在考虑的另一种方法是将所有列表存储在数据库中,并根据区域设置使用正确的语言提取列表。我不确定如何在类和表的设计方面继续这种方法。有谁知道任何类似的工作?或任何想法?

感谢您的任何意见!

干杯。

1 个答案:

答案 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