Delivery Tier I18N support
I18N support in the Hippo's delivery tier (HST) is very simple. Take the following steps:
To the web.xml add:
<!-- I18N --> <context-param> <param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name> <param-value>messages</param-value> </context-param>
To your src/main/resources add the I18N bundles, for example:
messages_en_US.properties
home.title=Home
messages_nl_NL.properties
home.title=Thuis
To the ' hst:hosts' add the default locale, for example:
<sv:property sv:name="hst:locale" sv:type="String"> <sv:value>en_US</sv:value> </sv:property>
and to the Mounts that should have a different locale add the hst:locale as well, For example:
<sv:node sv:name="nl"> <sv:property sv:name="jcr:primaryType" sv:type="Name"> <sv:value>hst:mount</sv:value> </sv:property> <sv:property sv:name="hst:locale" sv:type="String"> <sv:value>nl_NL</sv:value> </sv:property> </sv:node>
Now, in your templates you can use fmt:message tag without first setting the locale. This is done by the HST already. For example:
JSP
<fmt:message key="home.title"/>
Freemarker
<@fmt.message key="home.title"/>
Note that you thus should not use <fmt:setLocale value="some_locale" scope="page | request | session | application"/>. An exception is for rss feeds, as these always need the locale 'en-US' : <fmt:setLocale value="en-US"/>