changes necessary to send the charset through the HTTP header using the charset for...
authormh <mh>
Sat, 18 Jan 2003 08:32:07 +0000 (08:32 +0000)
committermh <mh>
Sat, 18 Jan 2003 08:32:07 +0000 (08:32 +0000)
source/Mir.java

index 263c4cd..1d4eeca 100755 (executable)
@@ -66,7 +66,7 @@ import mircoders.storage.DatabaseUsers;
  * Mir.java - main servlet, that dispatches to servletmodules\r
  *\r
  * @author $Author: mh $\r
- * @version $Id: Mir.java,v 1.25 2002/12/23 03:00:11 mh Exp $\r
+ * @version $Id: Mir.java,v 1.26 2003/01/18 08:32:07 mh Exp $\r
  *\r
  */\r
 \r
@@ -76,6 +76,8 @@ public class Mir extends AbstractServlet {
   private static ModuleMessage messageModule = null;\r
   private final static HashMap servletModuleInstanceHash = new HashMap();\r
 \r
+  //I don't know about making this static cause it removes the \r
+  //possibility to change the config on the fly.. -mh\r
   private static List loginLanguages = null;\r
 \r
   public HttpSession session;\r
@@ -124,6 +126,18 @@ public class Mir extends AbstractServlet {
     }\r
   }\r
 \r
+  // FIXME: this should probalby go into AbstractServlet so it can be used in \r
+  // OpenMir as well -mh\r
+  protected String getDefaultLanguage (HttpServletRequest req) {\r
+    String defaultlanguage = MirGlobal.getConfigPropertyWithDefault("Mir.Login.DefaultLanguage", "");\r
+    if (defaultlanguage.length() == 0) {\r
+      Locale locale = req.getLocale();\r
+      defaultlanguage = locale.getLanguage();\r
+    }\r
\r
+    return defaultlanguage; \r
+  }\r
+\r
   public void doPost(HttpServletRequest req, HttpServletResponse res) throws\r
       ServletException, IOException, UnavailableException {\r
 \r
@@ -153,7 +167,13 @@ public class Mir extends AbstractServlet {
     //make sure client browsers don't cache anything\r
     setNoCaching(res);\r
 \r
-    res.setContentType("text/html; charset=" + MirConfig.getProp("Mir.DefaultHTMLCharset"));\r
+    //FIXME: this seems kind of hackish and only here because we can have \r
+    // default other than the one that the browser is set to.\r
+    Locale locale = new Locale(getDefaultLanguage(req), "");\r
+    MessageResources messageResources = MessageResources.getMessageResources("bundles.admin");\r
+    String htmlcharset = messageResources.getMessage(locale, "htmlcharset");\r
+\r
+    res.setContentType("text/html; charset=" + htmlcharset);\r
 \r
     String moduleName = req.getParameter("module");\r
     checkLanguage(session, req);\r
@@ -384,10 +404,7 @@ public class Mir extends AbstractServlet {
 \r
       mergeData.put("session", sessionUrl);\r
 \r
-      String defaultlanguage = MirGlobal.getConfigPropertyWithDefault("Mir.Login.DefaultLanguage", "");\r
-      if (defaultlanguage.length() == 0)\r
-        defaultlanguage = req.getLocale().getLanguage();\r
-      mergeData.put("defaultlanguage",  defaultlanguage);\r
+      mergeData.put("defaultlanguage",  getDefaultLanguage(req));\r
       mergeData.put("languages", getLoginLanguages());\r
 \r
       HTMLTemplateProcessor.process(res, loginTemplate, mergeData, out, getLocale(req));\r