Implementing Internationalization with i18n in Adobe CQ5
This post will explain how to implement Internationalization with i18n in Adobe CQ5
Configuring i18 keys:
Create a sling:folder i18n inside apps
or apps/<<application>> or inside the components folder
based on the scope. e.g. /apps/i18n or apps/myapp/i18n or
apps/myapp/global/components/mycomponent/i18n
Create a folder for each language
inside 118n folder
Assign mixin to the language folders
created in the previous step (e.g. en, ar etc) from crx console
mix:language
For the language nodes (e.g. en, ar
etc) add String property jcr: language, value = ISO language code
(en, es etc)
Create nodes of type sling:MessageEntry
for each field label
Add 2 properties sling:key = <keyname>
and sling:message = <message>
Save all the changes
Using the i18n keys in JSP:
<%@page session="false"%>
<%@ taglib
uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"
%>
<%@page
import="java.util.Locale,java.util.ResourceBundle,com.day.cq.i18n.I18n"%>
<%@include
file="/libs/foundation/global.jsp"%>
<cq:setContentBundle/>
<%
final Locale pageLocale =
currentPage.getLanguage(false);
final ResourceBundle resourceBundle
= slingRequest.getResourceBundle(pageLocale);
I18n i18n = new
I18n(resourceBundle);
%>
<%= i18n.get("cartItem")
%>