2006/unicorn/src/org/w3c/unicorn/action LanguageAction.java,1.5,1.6

Update of /sources/public/2006/unicorn/src/org/w3c/unicorn/action
In directory hutz:/tmp/cvs-serv9180/src/org/w3c/unicorn/action

Modified Files:
	LanguageAction.java 
Log Message:
added doPost method

Index: LanguageAction.java
===================================================================
RCS file: /sources/public/2006/unicorn/src/org/w3c/unicorn/action/LanguageAction.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- LanguageAction.java	6 Oct 2009 16:33:00 -0000	1.5
+++ LanguageAction.java	7 Oct 2009 15:55:55 -0000	1.6
@@ -3,6 +3,7 @@
 import java.io.IOException;
 import java.io.PrintWriter;
 import java.util.Hashtable;
+import java.util.Locale;
 import java.util.Properties;
 import java.util.TreeMap;
 
@@ -12,10 +13,14 @@
 
 import org.apache.velocity.VelocityContext;
 import org.w3c.unicorn.Framework;
+import org.w3c.unicorn.exceptions.UnicornException;
+import org.w3c.unicorn.output.SimpleOutputFormater;
 import org.w3c.unicorn.util.Language;
+import org.w3c.unicorn.util.Message;
 import org.w3c.unicorn.util.MessageList;
 import org.w3c.unicorn.util.Property;
 import org.w3c.unicorn.util.Templates;
+import org.w3c.unicorn.util.Mail;
 
 /**
  * Servlet implementation class LanguageServlet
@@ -41,11 +46,16 @@
 			}
 		}
 		
-		String defaultLang = Property.get("DEFAULT_LANGUAGE");
+		req.setCharacterEncoding("UTF-8");
+		resp.setContentType("text/html; charset=UTF-8");
 		
-		MessageList messages = new MessageList(defaultLang);
+		String defaultLang = Property.get("DEFAULT_LANGUAGE");
+		MessageList messages;
 		
-		resp.setContentType("text/html; charset=UTF-8");
+		if (req.getAttribute("messages") != null && req.getAttribute("messages") instanceof MessageList)
+			messages = (MessageList) req.getAttribute("messages");
+		else
+			messages = new MessageList();
 		
 		VelocityContext velocityContext = new VelocityContext(Language.getContext(defaultLang));
 		velocityContext.put("queryString", "./");
@@ -65,17 +75,94 @@
 		if (langParameter == null)
 			Templates.write("language.vm", velocityContext, writer);
 		else {
-			velocityContext.put("prop", languageProperties.get(langParameter));
+			if (Framework.getLanguageProperties().containsKey(langParameter))
+				velocityContext.put("prop", languageProperties.get(langParameter));
+			else if (Language.isISOLanguageCode(langParameter)) {
+				messages.add(new Message(Message.INFO, "Thank you for translating Unicorn in " 
+						+ Language.getLocale(langParameter).getDisplayLanguage(Locale.ENGLISH) 
+						+ ". You can submit a full or a partial translation."));
+				velocityContext.put("prop", createProperties(langParameter));
+			} else {
+				messages.add(new Message(Message.ERROR, "$message_invalid_requested_language", null, langParameter));
+				Templates.write("language.vm", velocityContext, writer);
+				writer.close(); return;
+			}
 			Templates.write("language.form.vm", velocityContext, writer);
+			writer.close();
 		}
-		writer.close();
 	}
 
 	/**
 	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
 	 */
-	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
-		doGet(request, response);
+	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
+		
+		if (!Framework.isUcnInitialized) {
+			Framework.init();
+			if (!Framework.isUcnInitialized) {
+				resp.sendError(500, "Unicorn is not initialized properly. Check logs.");
+				return;
+			}
+		}
+		
+		req.setCharacterEncoding("UTF-8");
+		resp.setContentType("text/html; charset=UTF-8");
+		
+		if (req.getParameter("translation_language") == null) {
+			doGet(req, resp);
+			return;
+		} else {
+			MessageList messages = new MessageList();
+			messages.add(new Message(Message.INFO, "Thank you for your submition."));
+			req.setAttribute("messages", messages);
+			doGet(req, resp);
+			// From now on the response is committed, careful 
+			
+			String[] recipients = {"thomas.gambet@gmail.com"};
+			
+			Mail mailer = new Mail();
+			try {
+				mailer.sendMail(recipients, "test subject", new SimpleOutputFormater("text", Property.get("DEFAULT_LANGUAGE")), null);
+			} catch (UnicornException e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
+			}
+			
+			//checkParameters(req);
+		}
+		
+	}
+
+	private Properties createProperties(String langParameter) {
+		Properties props = new Properties();
+		Locale locale = Language.getLocale(langParameter);
+		props.put("lang", locale.getLanguage());
+		props.put("language", locale.getDisplayLanguage(Locale.ENGLISH));
+		return props;
+	}
+	
+	private void checkParameters(HttpServletRequest req) {
+		
+		/*String languageParameter = req.getParameter("translation_language");
+		
+		for (Object obj : req.getParameterMap().keySet()) {
+			
+			String paramKey = (String) obj;
+			String key;
+			
+			if (!paramKey.startsWith(languageParameter + "_"))
+				continue;
+			else
+				key = paramKey.replace(languageParameter + "_", "");
+			
+			Properties langProps = languageProperties.get(languageParameter);
+			
+			if (langProps.getProperty(key) == null || !req.getParameter(paramKey).equals(langProps.getProperty(key))) {
+				
+			}
+			
+		}*/
+		
 	}
 
 	public static void addLanguageProperties(Properties props) {

Received on Wednesday, 7 October 2009 15:55:59 UTC