- From: Thomas Gambet via cvs-syncmail <cvsmail@w3.org>
- Date: Fri, 05 Mar 2010 13:48:44 +0000
- To: www-validator-cvs@w3.org
Update of /sources/public/2006/unicorn/src/org/w3c/unicorn/action In directory hutz:/tmp/cvs-serv16521/src/org/w3c/unicorn/action Modified Files: LanguageAction.java Log Message: added tasklist metadata properties to the translation form Index: LanguageAction.java =================================================================== RCS file: /sources/public/2006/unicorn/src/org/w3c/unicorn/action/LanguageAction.java,v retrieving revision 1.19 retrieving revision 1.20 diff -u -d -r1.19 -r1.20 --- LanguageAction.java 13 Oct 2009 15:10:41 -0000 1.19 +++ LanguageAction.java 5 Mar 2010 13:48:42 -0000 1.20 @@ -50,8 +50,12 @@ private static TreeMap<String, Properties> languageProperties; + private static TreeMap<String, Properties> metadataProperties; + private static TreeMap<String, String> defaultProperties = new TreeMap<String, String>(); + private static TreeMap<String, String> defaultMetadatas = new TreeMap<String, String>(); + private static TreeMap<String, String> availableLocales; /** @@ -95,6 +99,9 @@ velocityContext.put("languageProps", languageProperties); velocityContext.put("defaultProps", defaultProperties); + velocityContext.put("metadataProps", metadataProperties); + velocityContext.put("defaultMetadata", defaultMetadatas); + PrintWriter writer = resp.getWriter(); String langParameter = req.getParameter(Property.get("UNICORN_PARAMETER_PREFIX") + "lang"); if (langParameter == null || req.getAttribute("submitted") != null) @@ -118,6 +125,7 @@ velocityContext.put("prop", submittedProps); } else { velocityContext.put("prop", languageProperties.get(langParameter)); + velocityContext.put("metadatas", metadataProperties.get(langParameter)); } } else if (Language.isISOLanguageCode(langParameter)) { Locale locale = Language.getLocale(langParameter); @@ -130,6 +138,7 @@ + Language.getLocale(langParameter).getDisplayLanguage(Locale.ENGLISH) + ". You can submit a full or a partial translation.")); velocityContext.put("prop", createProperties(langParameter)); + velocityContext.put("metadatas", createProperties(langParameter)); } } else { messages.add(new Message(Message.ERROR, "$message_invalid_requested_language", null, langParameter)); @@ -165,18 +174,30 @@ return; } else { UCNProperties langProps; - if (languageProperties.get(languageParameter) == null) { - langProps = createProperties(languageParameter); - contextObjects.put("new_translation", true); - if (langProps == null) { + UCNProperties metaProps; + if (languageProperties.get(languageParameter) == null || metadataProperties.get(languageParameter) == null) { + if (languageProperties.get(languageParameter) == null) { + langProps = createProperties(languageParameter); + contextObjects.put("new_interface_translation", true); + } else + langProps = (UCNProperties) languageProperties.get(languageParameter).clone(); + if (metadataProperties.get(languageParameter) == null) { + metaProps = createProperties(languageParameter); + contextObjects.put("new_tasklist_translation", true); + } else + metaProps = (UCNProperties) metadataProperties.get(languageParameter).clone(); + + if (langProps == null || metaProps == null) { doGet(req, resp); return; } - } else + } else { langProps = (UCNProperties) languageProperties.get(languageParameter).clone(); + metaProps = (UCNProperties) metadataProperties.get(languageParameter).clone(); + } - StringBuilder changeLog = new StringBuilder(); - boolean changed = false; + StringBuilder interfaceChangeLog = new StringBuilder(); + boolean interfaceChanged = false; for (Object obj : req.getParameterMap().keySet()) { String paramKey = (String) obj; String key; @@ -186,18 +207,40 @@ key = paramKey.replace(languageParameter + "_", ""); if (!req.getParameter(paramKey).equals("") && !req.getParameter(paramKey).equals(langProps.getProperty(key))) { - changed = true; + interfaceChanged = true; - changeLog.append("\n" + key + ":\n"); - changeLog.append("\t + " + req.getParameter(paramKey) + "\n"); + interfaceChangeLog.append("\n" + key + ":\n"); + interfaceChangeLog.append("\t + " + req.getParameter(paramKey) + "\n"); if (langProps.getProperty(key) != null) - changeLog.append("\t - " + langProps.getProperty(key) + "\n"); + interfaceChangeLog.append("\t - " + langProps.getProperty(key) + "\n"); langProps.put(key, req.getParameter(paramKey)); } } - if (!changed) { + StringBuilder tasklistChangeLog = new StringBuilder(); + boolean tasklistChanged = false; + for (Object obj : req.getParameterMap().keySet()) { + String paramKey = (String) obj; + String key; + if (!paramKey.startsWith("metadata_" + languageParameter + "_")) + continue; + else + key = paramKey.replace("metadata_" + languageParameter + "_", ""); + + if (!req.getParameter(paramKey).equals("") && !req.getParameter(paramKey).equals(metaProps.getProperty(key))) { + tasklistChanged = true; + + tasklistChangeLog.append("\n" + key + ":\n"); + tasklistChangeLog.append("\t + " + req.getParameter(paramKey) + "\n"); + if (metaProps.getProperty(key) != null) + tasklistChangeLog.append("\t - " + metaProps.getProperty(key) + "\n"); + + metaProps.put(key, req.getParameter(paramKey)); + } + } + + if (!interfaceChanged || !tasklistChanged) { MessageList messages = new MessageList(); messages.add(new Message(Message.WARNING, "You haven't made any changes.")); req.setAttribute("messages", messages); @@ -239,17 +282,31 @@ 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)); - contextObjects.put("changeLog", changeLog); + contextObjects.put("interfaceChangeLog", interfaceChangeLog); + contextObjects.put("tasklistChangeLog", tasklistChangeLog); langProps.remove("lang"); langProps.remove("language"); + metaProps.remove("lang"); + metaProps.remove("language"); - 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")); + if (interfaceChanged) { + 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("interfaceProperties", baos.toString("UTF-8")); + } + + if (tasklistChanged) { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + OutputStreamWriter osw = new OutputStreamWriter(baos, "UTF-8"); + metaProps.store(osw, "Submitted by " + req.getParameter("translator_name") + " <" + req.getParameter("translator_mail") + ">"); + osw.close(); + baos.close(); + contextObjects.put("tasklistProperties", baos.toString("UTF-8")); + } MessageList messages = new MessageList(); messages.add(new Message(Message.INFO, "Thank you for your submission.")); @@ -260,12 +317,22 @@ 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 fileOutputFormater = new FileOutputFormater("language.properties", Property.get("DEFAULT_LANGUAGE"), "text/plain", languageParameter + ".properties"); - List<OutputFormater> outputFormaters = new ArrayList<OutputFormater>(); + + OutputFormater mainOutputFormater = new SimpleOutputFormater("language.mail", Property.get("DEFAULT_LANGUAGE"), "text/plain"); outputFormaters.add(mainOutputFormater); - outputFormaters.add(fileOutputFormater); + + OutputFormater fileOutputFormater; + if (interfaceChanged) { + fileOutputFormater = new FileOutputFormater("language.properties", Property.get("DEFAULT_LANGUAGE"), "text/plain", languageParameter + ".properties"); + outputFormaters.add(fileOutputFormater); + } + + OutputFormater fileOutputFormater2; + if (tasklistChanged) { + fileOutputFormater2 = new FileOutputFormater("tasklist.properties", Property.get("DEFAULT_LANGUAGE"), "text/plain", languageParameter + ".tasklist.properties"); + outputFormaters.add(fileOutputFormater2); + } Mail mailer = new Mail(); try { @@ -322,4 +389,31 @@ LanguageAction.availableLocales = availableLocales; } + public static TreeMap<String, Properties> getMetadataProperties() { + return metadataProperties; + } + + public static void setMetadataProperties( + TreeMap<String, Properties> metadataProperties) { + LanguageAction.metadataProperties = metadataProperties; + } + + public static TreeMap<String, String> getDefaultMetadatas() { + return defaultMetadatas; + } + + public static void setDefaultMetadatas(TreeMap<String, String> defaultMetadatas) { + LanguageAction.defaultMetadatas = defaultMetadatas; + } + + public static void setDefaultMetadatas(Properties defaultProperties) { + for (Object obj : defaultProperties.keySet()) { + String key = (String) obj; + LanguageAction.defaultMetadatas.put(key, defaultProperties.getProperty(key)); + } + } + + public static void addMetadatasProperties(String lang, Properties props) { + metadataProperties.put(lang, (Properties) props.clone()); + } }
Received on Friday, 5 March 2010 13:48:46 UTC