【发布时间】:2012-02-23 20:31:17
【问题描述】:
我必须在 JSP/Servlet 中建立一个多语言网站。
我正在考虑为 i18n 使用 JSTL,我有一些一般性问题:
1) 是否可以使用 jstl 处理手动语言选择(例如通过下拉菜单或链接)和自动语言识别?
2) 如果字符串的大部分是动态的(从数据库中检索),那么更好的方法是什么?
【问题讨论】:
我必须在 JSP/Servlet 中建立一个多语言网站。
我正在考虑为 i18n 使用 JSTL,我有一些一般性问题:
1) 是否可以使用 jstl 处理手动语言选择(例如通过下拉菜单或链接)和自动语言识别?
2) 如果字符串的大部分是动态的(从数据库中检索),那么更好的方法是什么?
【问题讨论】:
是否可以使用 jstl 处理手动语言选择(例如通过下拉菜单或链接)和自动语言识别?
是的。另见How to internationalize a Java web application?。
如果大部分字符串都是动态的(从数据库中检索),那么更好的方法是什么?
您需要创建一个自定义ResourceBundle.Control,通过Filter 将其注入到请求范围内。这个过滤器基本上应该接管<fmt:setLocale> 和<fmt:setBundle> 的工作。
request.setAttribute("bundleName", yourCustomResourceBundle);
另请参见internationalization in JSF with ResourceBundle entries which are loaded from database(尽管针对 JSF,但对于纯 JSP 的想法是相同的;如前所述,您只需要 Filter 来设置它)。
【讨论】: