Java网络应用程序: pulling data out of database according to locales

标签 java database internationalization

我正在做一个 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/

相关文章:

java - 我可以使用代码来控制 Spring Boot 中 ApplicationContext 做出的依赖解析决策吗?

java - Android - 后退按钮导致问题

sql - Mysql中的异或约束

ios - objective-c : how to get the list of possible values returned by [[NSLocale currentLocale] objectForKey: NSLocaleLanguageCode]?

java - oracle 集合作为函数返回类型

java - weblogic 上的 EJB 远程 JNDI 绑定(bind)

java - Spring JDBC 给出错误 :"queryForObject(String, Object[], Class<String>) from the type JdbcTemplate refers to the missing type DataAccessException "

java - 我无法保存整数

Python:使用 %x(语言环境)格式化的日期与预期不符

xcode - 基础国际化和 "Could not find a storyboard named […]"