KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jahia > deprecated > taglibs > util > I18nTag


1 package org.jahia.deprecated.taglibs.util;
2
3 import java.util.Locale JavaDoc;
4
5 import javax.servlet.http.HttpServletRequest JavaDoc;
6 import javax.servlet.jsp.JspException JavaDoc;
7 import javax.servlet.jsp.tagext.TagSupport JavaDoc;
8
9 import org.jahia.data.JahiaData;
10 import org.jahia.utils.LanguageCodeConverters;
11
12
13 /**
14  * Class I18nTag : support for I18n within Jahia
15  * Do not use this tag in the same time with the JSP directive :
16  * <%@ page contentType= "text/html; charset = ... %>
17  *
18  * The charset attribute is only used when
19  * JData.params().settings().getCharSet().equals("") is true
20  *
21  * @author Khue Nguyen
22  */

23 public class I18nTag extends TagSupport JavaDoc {
24
25     private static org.apache.log4j.Logger logger =
26             org.apache.log4j.Logger.getLogger(I18nTag.class);
27
28     private static final String JavaDoc CLASS_NAME = I18nTag.class.getName();
29
30     protected String JavaDoc contentType = "text/html"; // default value
31
protected String JavaDoc charSet = "ISO-8859-1";
32
33     public void setContentType(String JavaDoc contentType) {
34         this.contentType = contentType;
35     }
36
37     public void setCharSet(String JavaDoc charSet) {
38         this.charSet = charSet;
39     }
40
41     public int doStartTag() {
42
43         HttpServletRequest JavaDoc request = (HttpServletRequest JavaDoc)pageContext.getRequest();
44         JahiaData jData = (JahiaData) request.getAttribute("org.jahia.data.JahiaData");
45
46         // Caution : UTF-8 is not realy a charset !!
47
String JavaDoc jahiaCharSet = "";
48         if (jData.params().settings().isUtf8Encoding()) {
49             jahiaCharSet = "UTF-8";
50         }
51         //System.out.println(CLASS_NAME+".doStartTag: Jahia Char Set is " + jahiaCharSet);
52

53         StringBuffer JavaDoc buff = new StringBuffer JavaDoc(contentType);
54         buff.append(";");
55         if (!jahiaCharSet.equals("")) {
56             buff.append("charset=");
57             buff.append(jahiaCharSet);
58         } else if (!charSet.equals("")) {
59             buff.append("charset=");
60             buff.append(charSet);
61         }
62
63         jData.params().getResponse().setContentType(buff.toString());
64         logger.debug("Content type : " + buff.toString());
65
66         Locale JavaDoc locale = jData.params().getLocale();
67         if ( locale != null ){
68             jData.params().getResponse().setHeader("Content-Language", LanguageCodeConverters.localeToLanguageTag(locale));
69             jData.params().getResponse().setHeader("Vary","Accept-Language");
70         }
71         return SKIP_BODY;
72     }
73
74     public int doEndTag() throws JspException JavaDoc {
75         // let's reinitialize the tag variables to allow tag object reuse in
76
// pooling.
77
contentType = "text/html"; // default value
78
charSet = "ISO-8859-1";
79         return EVAL_PAGE;
80     }
81 }
82
Popular Tags