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