X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=source%2Fmircoders%2Fservlet%2FServletModuleOpenIndy.java;h=9358ffb3c4f8c4c3cdb3dd700f0b01eece50c4e8;hb=099e20cb48fc7b05ba7bceeed3b735326366d4b5;hp=b3de6971f0d775e2fbf09814428f47a1a2499b2c;hpb=db290d843a8e0744bfe49ceff2cbc098368e0efd;p=mir.git diff --git a/source/mircoders/servlet/ServletModuleOpenIndy.java b/source/mircoders/servlet/ServletModuleOpenIndy.java index b3de6971..9358ffb3 100755 --- a/source/mircoders/servlet/ServletModuleOpenIndy.java +++ b/source/mircoders/servlet/ServletModuleOpenIndy.java @@ -120,7 +120,7 @@ import mircoders.storage.DatabaseTopics; * open-postings to the newswire * * @author mir-coders group - * @version $Id: ServletModuleOpenIndy.java,v 1.89.2.2 2003/06/03 20:58:30 john Exp $ + * @version $Id: ServletModuleOpenIndy.java,v 1.89.2.3 2003/06/13 03:54:08 zapata Exp $ * */ @@ -524,6 +524,35 @@ public class ServletModuleOpenIndy extends ServletModule private static final String SESSION_REQUEST_KEY="sessionid"; /** + * Selects the language for the response. + * + * @param session + * @param aRequest + */ + + protected Locale getResponseLocale(HttpSession aSession, HttpServletRequest aRequest) { + String requestLanguage = aRequest.getParameter("language"); + String sessionLanguage = (String) aSession.getAttribute("language"); + String acceptLanguage = aRequest.getLocale().getLanguage(); + String defaultLanguage = configuration.getString("Mir.Login.DefaultLanguage", "en"); + + String language = requestLanguage; + + if (language==null) + language = sessionLanguage; + + if (language==null) + language = acceptLanguage; + + if (language==null) + language = defaultLanguage; + + aSession.setAttribute("language", language); + + return new Locale(language, ""); + } + + /** * Dispatch method for open sessions: a flexible extensible and customizable way * for open access. Can be used for postings, but also for lots of other stuff. * @@ -551,7 +580,7 @@ public class ServletModuleOpenIndy extends ServletModule Session session = new HTTPAdapters.HTTPSessionAdapter(aRequest.getSession()); SimpleResponse response = new SimpleResponse( - ServletHelper.makeGenerationData(aResponse, new Locale[] {getLocale(aRequest), getFallbackLocale(aRequest)}, + ServletHelper.makeGenerationData(aResponse, new Locale[] { getResponseLocale(aRequest.getSession(), aRequest), getFallbackLocale(aRequest)}, "bundles.open")); response.setResponseValue("actionURL", aResponse.encodeURL(HttpUtils.getRequestURL(aRequest).toString())+"?"+SESSION_REQUEST_KEY+"="+aRequest.getSession().getId());