当前位置: 首页 > 面试题库 >

数据库支持的i18n(适用于Java Web应用)

谢华彩
2023-03-14
问题内容

我想使用数据库存储i18n键/值对,以便我们可以在运行时修改/重新加载i18n数据。有人做过吗?还是有人对如何实现这一点有想法?我已经阅读了几个相关的主题,但是还没有看到可行的解决方案。

我专门指的是可以与jstl标记一起使用的东西,例如

<fmt:setlocale>
<fmt:bundle>
<fmt:setBundle>
<fmt:message>

我认为这将涉及扩展ResourceBundle,但是当我尝试这样做时,我遇到了与jstl标记获取资源包的方式有关的问题。


问题答案:

您是否只是问如何在数据库中存储UTF-8 /
16字符?在mysql中,只需确保您使用UTF8支持进行构建并将其设置为默认值,或者在列或表级别进行指定即可。我以前在oracle和mysql中完成过此操作。创建一个表并将其剪切并粘贴一些i18n数据,然后看看会发生什么……您可能已经设置好了。

还是我完全想念你的意思?

编辑:

更明确地说…我通常实现一个三列表…语言,键,值…其中“值”包含潜在的外语单词或短语…“语言”包含一些语言键和“键”是英文密钥(即login.error.password.dup)…语言和密钥已编入索引…

然后,我在这样的结构上构建了接口,该接口显示了每个键及其所有的转换(值)…它可以很漂亮,并且包括审计跟踪和“脏”标记以及启用翻译器和数据所需的所有其他内容入门人员可以利用它。

编辑2:

现在,您已经添加了有关JSTL标记的信息,我了解了更多…我自己从来没有做过..但是我在服务器端找到了这个旧信息…

HttpSession session = .. [get hold of the session] 
ResourceBundle bundle = new PropertyResourceBundle(toInputStream(myOwnProperties)) [toInputStream just stores the properties into an inputstream] 
Locale locale = .. [get hold of the locale]
javax.servlet.jsp.jstl.core.Config.set(session, Config.FMT_LOCALIZATION_CONTEXT, new LocalizationContext(bundle ,locale));


 类似资料:
  • 问题内容: 我试图在我的Python编程中使用一些AOP,但是我对现有的各种库没有任何经验。 所以我的问题是: Python有哪些AOP支持?两者之间的差异库有什么优势? 编辑 我找到了一些,但我不知道它们的比较: Aspyct 适用于Python的轻量级AOP 编辑2 我将在哪种情况下使用这些? 我有两个用Python编写的应用程序,它们通常具有计算税金和其他金钱事物的方法。我希望能够编写功能的

  • 问题内容: 我正在进行的一个项目在不久的将来可能会跨越几百万行,所以我正在研究我使用的数据库,因为这肯定会证明是一个问题。据我所读,一旦涉及到表的2,000,000行问题,SQL的所有形式都会出现问题。对于这些大型项目,有没有推荐好的数据库? 我正在谈论的是一个网站,归档旧条目并不理想,但是如果证明这是我无法克服的问题,则可以这样做。 谢谢。 问题答案: 我已经在MS SQL Server中使用了

  • 我必须本地化用thymeleaf和spring 4编写的现有应用程序。对于静态内容,创建messages_FR。属性和消息_ ES。属性和传统的Spring i18n策略运行良好。 问题来自动态内容(存储在数据库记录中)。先前版本的内容显示在中。 现在,数据库内容已经通过复制带有lang后缀的字段进行了本地化,因此对于表product和行title,我有两个附加行title_ES和title_FR

  • Django试图尽可能多的支持所有数据库后端的特性。然而,并不是所有数据库都一样,所以我们必须在支持哪些特性和做出哪些安全的假定上做出设计决策。 本文描述了一些Django使用数据库的有关特性。当然,它并不想成为各服务器指定的文档或者参考手册的替代品。 综合说明 持续连接特性 持续连接的特性避免了每一次重新建立与数据库的连接的请求中所增加的压力。这些连接通过 CONN_MAX_AGE 参数(控制一

  • Angular的i18n很棒,像ng-packagr这样的工具使组件库打包变得极其容易,但是它们能结合起来吗? 如果我想打包和分发一个具有可翻译组件的组件库,该怎么办?有可能吗?我如何包装这样的库?翻译文件会随包一起出货吗,还是应该在主App中定义? 如果有人能给我指个医生就好了。谢谢

  • 1.16.1. 什么是 PyMySQL? PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。 PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQL 客户端库。 1.16.2. PyMySQL安装 PyMySQL下载地址:https://github.com/PyMy