From 892111b2ecf385bd28bbe93ff6113cbc1e04409e Mon Sep 17 00:00:00 2001 From: Jean-Philippe Orsini Date: Sun, 29 Oct 2017 21:25:30 +0100 Subject: [PATCH] multi languages support --- war/src/main/java/pnews/servlet/Config.java | 5 +++++ war/src/main/java/pnews/servlet/HTML.java | 4 +++- war/src/main/java/pnews/servlet/Pnews.java | 13 ++++++++++++- war/src/main/resources/feeds.json | 1 + 4 files changed, 21 insertions(+), 2 deletions(-) diff --git a/war/src/main/java/pnews/servlet/Config.java b/war/src/main/java/pnews/servlet/Config.java index 7e2b642..5bce897 100644 --- a/war/src/main/java/pnews/servlet/Config.java +++ b/war/src/main/java/pnews/servlet/Config.java @@ -21,6 +21,7 @@ import pnews.Feed; public class Config { private Feed[] feeds; private Category[] categories; + private final String[] languages = { "fr", "en" }; private static final Logger LOG = Logger.getLogger(Config.class.getName()); private void loadCategories(JsonArray jcats) { @@ -127,6 +128,10 @@ public class Config { return categories[0]; } + public String[] getLanguages() { + return languages; + } + public static void main(String[] args) throws UnsupportedEncodingException { Config cfg; Feed[] feeds; diff --git a/war/src/main/java/pnews/servlet/HTML.java b/war/src/main/java/pnews/servlet/HTML.java index ad0c24a..321c5a7 100644 --- a/war/src/main/java/pnews/servlet/HTML.java +++ b/war/src/main/java/pnews/servlet/HTML.java @@ -88,8 +88,10 @@ public class HTML { appendA(buf, cat.getLabel(), cat.getURL(), cl); buf.append(""); } - + buf.append("
  • EN
  • "); + buf.append("
  • FR
  • "); buf.append("\n"); + buf.append("\n"); } diff --git a/war/src/main/java/pnews/servlet/Pnews.java b/war/src/main/java/pnews/servlet/Pnews.java index 63040c8..fc08d13 100644 --- a/war/src/main/java/pnews/servlet/Pnews.java +++ b/war/src/main/java/pnews/servlet/Pnews.java @@ -90,6 +90,11 @@ public class Pnews extends HttpServlet { LOG.exiting(Pnews.class.getName(), "redirect"); } + + private static void doTemporaryRedirect(String newURL, HttpServletResponse rp) { + rp.setHeader("Location", newURL); + rp.setStatus(HttpServletResponse.SC_TEMPORARY_REDIRECT); + } private void writeStats(HttpServletResponse rp) throws IOException { rp.setContentType("application/json;charset=utf-8"); @@ -173,7 +178,6 @@ public class Pnews extends HttpServlet { } try { - if (path.equals("/stats")) { writeStats(resp); return ; @@ -185,6 +189,13 @@ public class Pnews extends HttpServlet { return ; } } + + for (String l: config.getLanguages()) { + if (path.equals("/" + l) || path.equals("/" + l + "/")) { + doTemporaryRedirect(config.getDefaultCategory().getURL(), resp); + return ; + } + } resp.getWriter().write("Not found " + req.getPathInfo()); resp.setStatus(HttpServletResponse.SC_NOT_FOUND); diff --git a/war/src/main/resources/feeds.json b/war/src/main/resources/feeds.json index a0aa0f0..34631f2 100644 --- a/war/src/main/resources/feeds.json +++ b/war/src/main/resources/feeds.json @@ -75,6 +75,7 @@ "http://www.purepeople.com/rss/news_t0.xml": { "categories": ["people"] }, "http://www.generation-nt.com/export/rss.xml": { "categories": ["technologie"] }, "http://www.europe1.fr/var/export/rss/europe1/sciences.xml": { "categories": ["technologie"] }, + "http://www.europe1.fr/var/export/rss/europe1/technologies.xml": { "categories": ["technologie"]}, "http://feeds.feedburner.com/lesnumeriques/news": { "categories": ["technologie"] }, "http://www.zdnet.fr/feeds/rss/actualites/": { "categories": ["technologie"] }, "http://www.frandroid.com/feed": { "categories": ["technologie"] }, -- 2.7.4