[Yanel-commits] rev 47735 - public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet

michi at wyona.com michi at wyona.com
Tue Feb 23 15:30:28 CET 2010


Author: michi
Date: 2010-02-23 15:30:27 +0100 (Tue, 23 Feb 2010)
New Revision: 47735

Modified:
   public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelHTMLUI.java
Log:
user language fixed

Modified: public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelHTMLUI.java
===================================================================
--- public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelHTMLUI.java	2010-02-23 14:21:22 UTC (rev 47734)
+++ public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelHTMLUI.java	2010-02-23 14:30:27 UTC (rev 47735)
@@ -294,7 +294,7 @@
      * Get information such as realm name, user name, etc.
      */
     private String getInfo(Resource resource, HttpServletRequest request) throws Exception {
-        String language = resource.getRequestedLanguage();
+        String userLanguage = getUserLanguage(resource);
         StringBuilder buf = new StringBuilder();
         buf.append("<span id=\"yaneltoolbar_info\">");
         //buf.append("Version: " + yanel.getVersion() + "-r" + yanel.getRevision() + "&#160;&#160;");
@@ -302,15 +302,15 @@
         if (ResourceAttributeHelper.hasAttributeImplemented(resource, "Versionable", "2")) {
             VersionableV2 versionableRes = (VersionableV2)resource;
             if (versionableRes.isCheckedOut()) {
-                buf.append(getLabel("page", language) + ": <b>Locked by " + versionableRes.getCheckoutUserID() + "</b> (<a href=\"?" + YanelServlet.YANEL_RESOURCE_USECASE + "=" + YanelServlet.RELEASE_LOCK + "\">unlock</a>)&#160;&#160;");
+                buf.append(getLabel("page", userLanguage) + ": <b>Locked by " + versionableRes.getCheckoutUserID() + "</b> (<a href=\"?" + YanelServlet.YANEL_RESOURCE_USECASE + "=" + YanelServlet.RELEASE_LOCK + "\">unlock</a>)&#160;&#160;");
             }
         }
 
         Identity identity = YanelServlet.getIdentity(request, map);
         if (identity != null && !identity.isWorld()) {
-            buf.append(getLabel("user", language) + ": <b>" + identity.getUsername() + "</b>");
+            buf.append(getLabel("user", userLanguage) + ": <b>" + identity.getUsername() + "</b>");
         } else {
-            buf.append(getLabel("user", language) + ": <b>Not signed in!</b>");
+            buf.append(getLabel("user", userLanguage) + ": <b>Not signed in!</b>");
         }
         buf.append("</span>");
         return buf.toString();
@@ -346,4 +346,23 @@
             return getLabel(key, "en");
         }
     }
+
+    /**
+     * Get user language (order: profile, browser, ...) (Also see org/wyona/yanel/servlet/menu/Menu.java)
+     */
+    private String getUserLanguage(Resource resource) throws Exception {
+        Identity identity = resource.getEnvironment().getIdentity();
+        String language = resource.getRequestedLanguage();
+        String userID = identity.getUsername();
+        if (userID != null) {
+            String userLanguage = resource.getRealm().getIdentityManager().getUserManager().getUser(userID).getLanguage();
+            if(userLanguage != null) {
+                language = userLanguage;
+                log.debug("Use user profile language: " + language);
+            } else {
+                log.debug("Use requested language: " + language);
+            }
+        }
+        return language;
+    }
 }



More information about the Yanel-commits mailing list