- From: Thomas Gambet via cvs-syncmail <cvsmail@w3.org>
- Date: Fri, 09 Oct 2009 11:11:39 +0000
- To: www-validator-cvs@w3.org
Update of /sources/public/2006/unicorn/src/org/w3c/unicorn/action In directory hutz:/tmp/cvs-serv19839/src/org/w3c/unicorn/action Modified Files: LanguageAction.java Log Message: updated Index: LanguageAction.java =================================================================== RCS file: /sources/public/2006/unicorn/src/org/w3c/unicorn/action/LanguageAction.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- LanguageAction.java 9 Oct 2009 06:48:06 -0000 1.7 +++ LanguageAction.java 9 Oct 2009 11:11:37 -0000 1.8 @@ -1,20 +1,13 @@ +// $Id$ +// Author: Thomas Gambet +// (c) COPYRIGHT MIT, ERCIM and Keio, 2009. +// Please first read the full copyright statement in file COPYRIGHT.html package org.w3c.unicorn.action; -import java.io.CharArrayWriter; -import java.io.File; -import java.io.FileOutputStream; -import java.io.FileWriter; +import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; import java.io.PrintWriter; -import java.io.Writer; -import java.net.URLDecoder; -import java.nio.ByteBuffer; -import java.nio.CharBuffer; -import java.nio.charset.CharacterCodingException; -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; import java.util.ArrayList; import java.util.Hashtable; import java.util.List; @@ -27,11 +20,12 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import org.apache.commons.io.output.ByteArrayOutputStream; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.apache.velocity.VelocityContext; import org.w3c.unicorn.Framework; import org.w3c.unicorn.exceptions.UnicornException; -import org.w3c.unicorn.output.AttachmentOutputFormater; +import org.w3c.unicorn.output.FileOutputFormater; import org.w3c.unicorn.output.OutputFormater; import org.w3c.unicorn.output.SimpleOutputFormater; import org.w3c.unicorn.util.Language; @@ -48,6 +42,8 @@ private static final long serialVersionUID = 1L; + private static Log logger = LogFactory.getLog(LanguageAction.class); + private static TreeMap<String, Properties> languageProperties; private static TreeMap<String, String> defaultProperties = new TreeMap<String, String>(); @@ -95,7 +91,18 @@ Templates.write("language.vm", velocityContext, writer); else { if (Framework.getLanguageProperties().containsKey(langParameter)) { - messages.add(new Message(Message.INFO, "This translation lacks " + (defaultProperties.size() - languageProperties.get(langParameter).size()) + " properties. Help us to improve it.")); + if (langParameter.equals(Property.get("DEFAULT_LANGUAGE"))) { + messages.add(new Message(Message.INFO, "You cannot edit the default language")); + Templates.write("language.vm", velocityContext, writer); + writer.close(); return; + } else { + int missings = defaultProperties.size() - languageProperties.get(langParameter).size(); + + if (missings > 0) + messages.add(new Message(Message.INFO, "This translation lacks " + (defaultProperties.size() - languageProperties.get(langParameter).size()) + " properties. Help us to improve it.")); + else + messages.add(new Message(Message.INFO, "This translation is complete but you can help us to improve it if needed.")); + } velocityContext.put("prop", languageProperties.get(langParameter)); } else if (Language.isISOLanguageCode(langParameter)) { Locale locale = Language.getLocale(langParameter); @@ -134,15 +141,6 @@ req.setCharacterEncoding("UTF-8"); resp.setContentType("text/html; charset=UTF-8"); - - //resp.getWriter().println(new String(req.getParameter("ja_universal_checker").getBytes("UTF-8"), "UTF-8")); - - /*File file = new File(Property.get("UPLOADED_FILES_REPOSITORY") + "/test.txt"); - file.createNewFile(); - FileOutputStream fileStream = new FileOutputStream(file); - OutputStreamWriter os = new OutputStreamWriter(fileStream, "UTF-8"); - os.write(req.getParameter("ja_universal_checker")); - os.close();*/ String languageParameter = req.getParameter("translation_language"); Map<String, Object> contextObjects = new Hashtable<String, Object>(); @@ -151,17 +149,18 @@ doGet(req, resp); return; } else { - Properties langProps = languageProperties.get(languageParameter); - if (langProps == null) { + Properties langProps; + if (languageProperties.get(languageParameter) == null) { langProps = createProperties(languageParameter); + contextObjects.put("new_translation", true); if (langProps == null) { doGet(req, resp); return; } - } + } else + langProps = (Properties) languageProperties.get(languageParameter).clone(); StringBuilder changeLog = new StringBuilder(); - for (Object obj : req.getParameterMap().keySet()) { String paramKey = (String) obj; String key; @@ -171,27 +170,26 @@ key = paramKey.replace(languageParameter + "_", ""); if (!req.getParameter(paramKey).equals("") && !req.getParameter(paramKey).equals(langProps.getProperty(key))) { - changeLog.append(key + ":\n"); + changeLog.append("\n" + key + ":\n"); changeLog.append("\t + " + req.getParameter(paramKey) + "\n"); if (langProps.getProperty(key) != null) changeLog.append("\t - " + langProps.getProperty(key) + "\n"); langProps.put(key, req.getParameter(paramKey)); } - - } - - - //contextObjects.put("changeLog", changeLog); - - //Writer os = new CharArrayWriter(); - - - //langProps.store(new OutputStreamWriter(new ByteArrayOutputStream(), "UTF-8"), ""); - - //contextObjects.put("properties", os.toString()); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + OutputStreamWriter osw = new OutputStreamWriter(baos, "UTF-8"); + langProps.store(osw, "Submitted by " + req.getParameter("translator_name") + " (" + req.getParameter("translator_mail") +")"); + osw.close(); + baos.close(); + contextObjects.put("properties", baos.toString("UTF-8")); + contextObjects.put("changeLog", changeLog); + contextObjects.put("translator_name", req.getParameter("translator_name")); + contextObjects.put("translator_mail", req.getParameter("translator_mail")); + contextObjects.put("translator_comments", req.getParameter("translator_comments")); + contextObjects.put("language", Language.getLocale(languageParameter).getDisplayLanguage(Locale.ENGLISH)); MessageList messages = new MessageList(); messages.add(new Message(Message.INFO, "Thank you for your submission.")); @@ -201,24 +199,24 @@ doGet(req, resp); // From now on the response is committed, careful - String[] recipients = {"thomas.gambet@orange.fr"}; + String[] recipients = {Property.getProps("mail.properties").getProperty("unicorn.mail.language.to"), + req.getParameter("translator_mail")}; + String subject = "Unicorn - Translation in " + contextObjects.get("language") + " (submitted by " + req.getParameter("translator_name") + ")"; OutputFormater mainOutputFormater = new SimpleOutputFormater("language.mail", Property.get("DEFAULT_LANGUAGE"), "text/plain"); - OutputFormater attachmentOutputFormater = new AttachmentOutputFormater("language.properties", Property.get("DEFAULT_LANGUAGE"), "text/plain", "test.txt"); + OutputFormater fileOutputFormater = new FileOutputFormater("language.properties", Property.get("DEFAULT_LANGUAGE"), "text/plain", languageParameter + ".properties"); List<OutputFormater> outputFormaters = new ArrayList<OutputFormater>(); outputFormaters.add(mainOutputFormater); - //outputFormaters.add(attachmentOutputFormater); + outputFormaters.add(fileOutputFormater); Mail mailer = new Mail(); try { - mailer.sendMail(recipients, "test subject", outputFormaters, contextObjects); + mailer.sendMail(recipients, subject, outputFormaters, contextObjects); } catch (UnicornException e) { - // TODO Auto-generated catch block - e.printStackTrace(); + logger.error(e.getMessage(), e); } - //checkParameters(req); } }
Received on Friday, 9 October 2009 11:11:44 UTC