加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

数据库支持i18n for java web-app

发布时间:2020-12-12 07:44:21 所属栏目:MsSql教程 来源:网络整理
导读:我想使用数据库来存储i18n键/值对,这样我们就可以在运行时修改/重新加载i18n数据.有没有人这样做过?或者有没有人知道如何实现这个?我已经阅读了几个线程,但我还没有看到一个可行的解决方案. 我特别指的是可以使用jstl标签的东西,例如 fmt:setlocalefmt:bund
我想使用数据库来存储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标签的信息,我理解了一点……我自己从未这样做过……但是我在theserverside上找到了这个旧信息……

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));

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读