如何将消息从数据库加载到资源包并通过消息键将字符串绑定到视图

How to load messages to resource bundles from a database and bind strings via message keys to the view

目前我正在使用 JSF 2 和 Primefaces 6 开发 Java 8 / JavaEE 7 Web 应用程序。

作为这个项目的一部分,我必须 构建一个模块来从数据库中获取翻译(德语和英语的消息) 以获得动态翻译的应用程序,因为硬编码字符串根本不是一个选项。

在阅读了两天有关 ResourceBundles、ResourceBundle.Controls 和 ResourceBundleControlProvider 的资料后,我完全失去了对整个事情的理解。

我发现了很多大约两三年前的可能解决方案,它们总是完全不同,这就是为什么我来这里问我的问题。我知道这里有一些帖子描述了一些情况,但如果有人能帮助我理解这件事,我会很高兴。

谁能解释解决我的问题的常用工作流程或最先进的方法,并解释解决方案中使用的重要 类?

如果有人遇到过和我一样的问题,经过几天的搜索和修改,我发现了一个网站,它提供了一个非常简洁的教程,可以在 JSF 应用程序中使用数据库中的本地化字符串实现 i18n。

本指南逐一解释了所需的步骤,对我来说效果很好。 https://zenidas.wordpress.com/recipes/database-resource-bundle-in-a-jsf-application/

要完成的基本步骤如下:

  • 创建将委托数据库控件中的资源查找的资源包扩展
  • 为不同的语言环境创建必要的扩展
  • 创建数据库表和相应的 JPA 实体
  • 创建将从数据库获取内容的资源包控件
  • 在 faces-config 文件中定义资源包

在这些步骤之后,应该可以从数据库访问本地化数据,如果有一些困难,我建议独立于资源包测试数据库访问本身。

希望有一天这对某人有用。