Интернационализация сайтаМеш - PullRequest
0 голосов
/ 19 сентября 2008

Я использую freemarker, SiteMesh и Spring Framework. Для страниц я использую $ {requestContext.getMessage ()}, чтобы получить сообщение из message.properties. Но для декораторов это не работает. Как мне сделать, чтобы интернационализация работала для sitemesh?

Ответы [ 2 ]

2 голосов
/ 20 сентября 2008

Вы должны использовать тег * fmt .

Сначала добавьте taglib для sitemesh и fmt в первой строке декоратора.

<%@ taglib prefix="decorator" uri="http://www.opensymphony.com/sitemesh/decorator"%>
<%@ taglib prefix="page" uri="http://www.opensymphony.com/sitemesh/page"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt"%>
<fmt:setBundle basename="messages" />

В моем примере файл i18n - это messages.properties. Затем вам нужно использовать тег fmt, чтобы использовать сообщения.

<fmt:message key="key_of_message" />
0 голосов
/ 08 октября 2008

Если вы предпочитаете шаблоны и сервлет freemarker, вы можете ввести в свои шаблоны следующее:

<#assign fmt=JspTaglibs["http://java.sun.com/jstl/fmt"]>
<@fmt.message key="webapp.name" />

и в вашем web.xml:

<context-param>
    <param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
    <param-value>messages</param-value>
</context-param>
...