From 785fe6cd9e7c9116b801aafc443b4f090cce870c Mon Sep 17 00:00:00 2001 From: =?utf8?q?Felix=20D=C3=B6rre?= Date: Sun, 31 Aug 2014 15:20:55 +0200 Subject: [PATCH] ADD: Enable Language selection. --- src/org/cacert/gigi/Gigi.java | 11 ++++ src/org/cacert/gigi/Gigi.templ | 29 --------- src/org/cacert/gigi/Launcher.java | 2 + src/org/cacert/gigi/User.java | 24 +++++-- .../cacert/gigi/localisation/Language.java | 63 ++++++++++++++++--- src/org/cacert/gigi/pages/LoginPage.java | 19 +++--- src/org/cacert/gigi/pages/Page.java | 23 ++++++- src/org/cacert/gigi/pages/main/Signup.java | 5 +- src/org/cacert/gigi/ping/EmailPinger.java | 4 +- tests/org/cacert/gigi/TestUser.java | 6 +- .../pages/account/TestMailManagement.java | 3 +- .../cacert/gigi/testUtils/ManagedTest.java | 3 +- 12 files changed, 134 insertions(+), 58 deletions(-) diff --git a/src/org/cacert/gigi/Gigi.java b/src/org/cacert/gigi/Gigi.java index 148556e8..9b3023b2 100644 --- a/src/org/cacert/gigi/Gigi.java +++ b/src/org/cacert/gigi/Gigi.java @@ -6,6 +6,7 @@ import java.security.KeyStore; import java.util.Calendar; import java.util.HashMap; import java.util.LinkedList; +import java.util.Locale; import java.util.Map; import java.util.Properties; @@ -116,6 +117,11 @@ public class Gigi extends HttpServlet { about.addItem(new SimpleMenuItem("//lists.cacert.org/wws", "Mailing Lists")); about.addItem(new SimpleMenuItem("//blog.CAcert.org/feed", "RSS News Feed")); + Menu languages = new Menu("Translations"); + for (Locale l : Language.getSupportedLocales()) { + languages.addItem(new SimpleMenuItem("?lang=" + l.toString(), l.getDisplayName(l))); + } + categories.add(languages); for (Menu menu : categories) { menu.prepare(); rootMenu.addItem(menu); @@ -175,6 +181,11 @@ public class Gigi extends HttpServlet { // return; // } HttpSession hs = req.getSession(); + if (req.getParameter("lang") != null) { + Locale l = Language.getLocaleFromString(req.getParameter("lang")); + Language lu = Language.getInstance(l); + req.getSession().setAttribute(Language.SESSION_ATTRIB_NAME, lu.getLocale()); + } final Page p = getPage(req.getPathInfo()); if (p != null) { diff --git a/src/org/cacert/gigi/Gigi.templ b/src/org/cacert/gigi/Gigi.templ index 2cb3d90f..f755b2c5 100644 --- a/src/org/cacert/gigi/Gigi.templ +++ b/src/org/cacert/gigi/Gigi.templ @@ -21,35 +21,6 @@