2002/css-validator/org/w3c/css/index translations.vm,1.6,1.7 TranslationTableGenerator.java,1.10,1.11

Update of /sources/public/2002/css-validator/org/w3c/css/index
In directory hutz:/tmp/cvs-serv8408

Modified Files:
	translations.vm TranslationTableGenerator.java 
Log Message:
added US-english version of the language name in title attributes on language rows

Index: TranslationTableGenerator.java
===================================================================
RCS file: /sources/public/2002/css-validator/org/w3c/css/index/TranslationTableGenerator.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -d -r1.10 -r1.11
--- TranslationTableGenerator.java	24 Feb 2009 22:44:49 -0000	1.10
+++ TranslationTableGenerator.java	6 Sep 2011 14:40:30 -0000	1.11
@@ -6,6 +6,16 @@
  */
 package org.w3c.css.index;
 
+import org.apache.commons.lang.StringEscapeUtils;
+import org.apache.velocity.Template;
+import org.apache.velocity.VelocityContext;
+import org.apache.velocity.app.Velocity;
+import org.apache.velocity.exception.MethodInvocationException;
+import org.apache.velocity.exception.ParseErrorException;
+import org.apache.velocity.exception.ResourceNotFoundException;
+import org.w3c.css.util.ApplContext;
+import org.w3c.css.util.Messages;
+
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
@@ -13,36 +23,23 @@
 import java.net.URI;
 import java.net.URISyntaxException;
 import java.text.SimpleDateFormat;
-import java.util.Date;
-
-import org.apache.velocity.Template;
-import org.apache.velocity.VelocityContext;
-import org.apache.velocity.app.Velocity;
-import org.apache.velocity.exception.MethodInvocationException;
-import org.apache.velocity.exception.ParseErrorException;
-import org.apache.velocity.exception.ResourceNotFoundException;
-import org.apache.commons.lang.StringEscapeUtils;
 import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Vector;
 import java.util.Collections;
 import java.util.Comparator;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Locale;
 import java.util.Set;
-import java.lang.Integer;
-import org.w3c.css.util.ApplContext;
-import org.w3c.css.util.Messages;
-import org.w3c.css.util.Utf8Properties;
+import java.util.Vector;
 
 
 /**
  * @author olivier Thereaux <ot@w3.org> for W3C
- * 
- * 
  */
 class AlphaComparator implements Comparator<String> {
     public int compare(String s1, String s2) {
-	return s1.compareToIgnoreCase(s2);
+        return s1.compareToIgnoreCase(s2);
     }
 }
 
@@ -55,133 +52,148 @@
     private static String html_files_path = "../../../../";
     private static boolean done = false;
     private static String template_name = "translations.vm";
-    
+
 
     /**
      * @param args
      */
     public static void main(String[] args) {
-	TranslationTableGenerator.generateTable();
+        TranslationTableGenerator.generateTable();
     }
 
     /**
      * This method generates the index in every possible language we have the translation
+     *
      * @see org.w3c.css.util.Messages
      */
     public static synchronized void generateTable() {
-		
-	String default_lang = "en";
-	String name, path;
-	StringBuilder table_head = new StringBuilder();
-	StringBuilder translations_table = new StringBuilder();
-	File out_file;
-	path = TranslationTableGenerator.class.getResource("").getPath();
+
+        String default_lang = "en";
+        String name, path;
+        StringBuilder table_head = new StringBuilder();
+        StringBuilder translations_table = new StringBuilder();
+        File out_file;
+        path = TranslationTableGenerator.class.getResource("").getPath();
 
         try {
-	    path = new URI(path).getPath();
-	    Velocity.setProperty(Velocity.FILE_RESOURCE_LOADER_PATH, path);
-	    Velocity.addProperty(Velocity.FILE_RESOURCE_LOADER_PATH, path + "../css/");
-	    Velocity.setProperty(Velocity.RUNTIME_LOG,
-				 "velocity-" + new SimpleDateFormat("yyyy-MM-dd_HHmm").format(new Date()) + ".log");
-	    
-	    Velocity.setProperty(Velocity.RUNTIME_LOG_LOGSYSTEM_CLASS, "org.apache.velocity.runtime.log.AvalonLogChute");
-	    Velocity.init();
-		
-	    Template tpl = Velocity.getTemplate(template_name, "UTF-8");
-	    out_file = new File(path + html_files_path + "translations.html");
-		
-            ApplContext ac_default= new ApplContext(default_lang);
-	    // Getting the differents languages informations (for the lang choice)
-	    ArrayList<HashMap<String,String>> languages;
-	    languages = new ArrayList<HashMap<String,String>>(Messages.languages_name.size());
-	    HashMap<String,ApplContext> translations = new HashMap<String,ApplContext>();
-	    HashMap<String,Integer> translation_completeness = new HashMap<String,Integer>();
-	    table_head.append("<tr><th scope='col'>Property</th>");
-	    for (int i = 0; i < Messages.languages_name.size(); ++i) {
-		name = String.valueOf(Messages.languages_name.get(i));
-		HashMap<String,String> l = new HashMap<String,String>();
-		l.put("name", name);
-		l.put("real", ((Utf8Properties) Messages.languages.get(name)).getProperty("language_name"));
-		languages.add(i, l);
-		ApplContext ac_translated = new ApplContext(name);
-		if (!name.equals(default_lang)) {
-		    table_head.append("<th>").append(l.get("real")).append("</th>");
+            path = new URI(path).getPath();
+            Velocity.setProperty(Velocity.FILE_RESOURCE_LOADER_PATH, path);
+            Velocity.addProperty(Velocity.FILE_RESOURCE_LOADER_PATH, path + "../css/");
+            Velocity.setProperty(Velocity.RUNTIME_LOG,
+                    "velocity-" + new SimpleDateFormat("yyyy-MM-dd_HHmm").format(new Date()) + ".log");
+
+            Velocity.setProperty(Velocity.RUNTIME_LOG_LOGSYSTEM_CLASS, "org.apache.velocity.runtime.log.AvalonLogChute");
+            Velocity.init();
+
+            Template tpl = Velocity.getTemplate(template_name, "UTF-8");
+            out_file = new File(path + html_files_path + "translations.html");
+
+            ApplContext ac_default = new ApplContext(default_lang);
+            // Getting the differents languages informations (for the lang choice)
+            ArrayList<HashMap<String, String>> languages;
+            languages = new ArrayList<HashMap<String, String>>(Messages.languages_name.size());
+            HashMap<String, ApplContext> translations = new HashMap<String, ApplContext>();
+            HashMap<String, Integer> translation_completeness = new HashMap<String, Integer>();
+            table_head.append("<tr><th scope='col'>Property</th>");
+            for (int i = 0; i < Messages.languages_name.size(); ++i) {
+                name = String.valueOf(Messages.languages_name.get(i));
+                HashMap<String, String> l = new HashMap<String, String>();
+                l.put("name", name);
+                l.put("real", (Messages.languages.get(name)).getProperty("language_name"));
+                languages.add(i, l);
+                ApplContext ac_translated = new ApplContext(name);
+                if (!name.equals(default_lang)) {
+                    Locale locale;
+                    String engName;
+                    int hy = name.indexOf("-");
+                    if (hy > 0) {
+                        String m = name.substring(0, hy);
+                        String s = name.substring(hy + 1);
+                        locale = new Locale(m, s, "");
+                    } else {
+                        locale = new Locale(name);
+                    }
+                    engName = locale.getDisplayName(Locale.US);
+                    table_head.append("<th title=\"").append(engName);
+                    table_head.append("\">");
+                    table_head.append(l.get("real")).append("</th>");
+                    l.put("engname", engName);
                 }
-		translations.put(name,ac_translated);
-		translation_completeness.put(name, 0);
-		        
-	    }
-	    table_head.append("</tr>");
-	    Vector<String> sorted_properties_keys;
-	    Set properties_keyset = ac_default.getMsg().properties.keySet();
-	    sorted_properties_keys = new Vector<String>(properties_keyset);
-	    Collections.sort(sorted_properties_keys, new AlphaComparator());
+                translations.put(name, ac_translated);
+                translation_completeness.put(name, 0);
+
+            }
+            table_head.append("</tr>");
+            Vector<String> sorted_properties_keys;
+            Set properties_keyset = ac_default.getMsg().properties.keySet();
+            sorted_properties_keys = new Vector<String>(properties_keyset);
+            Collections.sort(sorted_properties_keys, new AlphaComparator());
             Iterator properties_iterator = sorted_properties_keys.iterator();
-	    translations_table.append("<tbody>");
-	    int num_properties = 0;
-	    while (properties_iterator.hasNext()) {
-		++num_properties;
-		String property_name = String.valueOf(properties_iterator.next());
-		translations_table.append("<tr><th scope=\"row\" class=\"property_name\">").append(property_name);
-		translations_table.append("<p>").append(StringEscapeUtils.escapeHtml(ac_default.getMsg().getString(property_name)));
-		translations_table.append("</p></th>");
-		for (int i = 0; i < Messages.languages_name.size(); ++i) {
-		    HashMap<String,String> language = languages.get(i);
-		    ApplContext translation = (ApplContext) translations.get(language.get("name"));
-		    String property_translated = translation.getMsg().getString(property_name);
-		    if (language.get("name").equals(default_lang)) {
-			vc.put(property_name, property_translated);
-		    } else {
-			URI mail_translation = new URI("mailto", "w3c-translators@w3.org?Subject=["+property_name+"] CSS Validator Translation&body=Property:\n  "+property_name+"\n\nText in English:\n  "+ac_default.getMsg().getString(property_name)+"\n\nLanguage:\n  "+language.get("name")+"\n\nTranslation:\n\n\n-- Help translate the CSS Validator:\nhttp://qa-dev.w3.org:8001/css-validator/translations.html", "");
-			if (property_translated == null) {
-			    translations_table.append("<td class=\"table_translation_missing\"><a title=\"submit a missing translation\" href=\"").append(StringEscapeUtils.escapeHtml(mail_translation.toASCIIString())).append("\">✘</a></td>\n");    			        
-			} else if ( property_translated.matches(".*translation unavailable.*")) {
-			    translations_table.append("<td class=\"table_translation_missing\"><a title=\"submit a missing translation\" href=\"").append(StringEscapeUtils.escapeHtml(mail_translation.toASCIIString())).append("\">✘</a></td>\n");
-			} else {
-			    translations_table.append("<td class=\"table_translation_ok\"><span title=\"").append(StringEscapeUtils.escapeHtml(property_translated)).append("\">✔</span></td>\n");
-			    int completed = Integer.parseInt(translation_completeness.get(language.get("name")).toString());
-			    completed++;
-			    translation_completeness.put(language.get("name"), completed);
-			    //System.out.println(language.get("name")+": "+completed);
-			}
-		    }
+            translations_table.append("<tbody>");
+            int num_properties = 0;
+            while (properties_iterator.hasNext()) {
+                ++num_properties;
+                String property_name = String.valueOf(properties_iterator.next());
+                translations_table.append("<tr><th scope=\"row\" class=\"property_name\">").append(property_name);
+                translations_table.append("<p>").append(StringEscapeUtils.escapeHtml(ac_default.getMsg().getString(property_name)));
+                translations_table.append("</p></th>");
+                for (int i = 0; i < Messages.languages_name.size(); ++i) {
+                    HashMap<String, String> language = languages.get(i);
+                    ApplContext translation = (ApplContext) translations.get(language.get("name"));
+                    String property_translated = translation.getMsg().getString(property_name);
+                    if (language.get("name").equals(default_lang)) {
+                        vc.put(property_name, property_translated);
+                    } else {
+                        URI mail_translation = new URI("mailto", "w3c-translators@w3.org?Subject=[" + property_name + "] CSS Validator Translation&body=Property:\n  " + property_name + "\n\nText in English:\n  " + ac_default.getMsg().getString(property_name) + "\n\nLanguage:\n  " + language.get("name") + "\n\nTranslation:\n\n\n-- Help translate the CSS Validator:\nhttp://qa-dev.w3.org:8001/css-validator/translations.html", "");
+                        if (property_translated == null) {
+                            translations_table.append("<td class=\"table_translation_missing\"><a title=\"submit a missing translation\" href=\"").append(StringEscapeUtils.escapeHtml(mail_translation.toASCIIString())).append("\">✘</a></td>\n");
+                        } else if (property_translated.matches(".*translation unavailable.*")) {
+                            translations_table.append("<td class=\"table_translation_missing\"><a title=\"submit a missing translation\" href=\"").append(StringEscapeUtils.escapeHtml(mail_translation.toASCIIString())).append("\">✘</a></td>\n");
+                        } else {
+                            translations_table.append("<td class=\"table_translation_ok\"><span title=\"").append(StringEscapeUtils.escapeHtml(property_translated)).append("\">✔</span></td>\n");
+                            int completed = Integer.parseInt(translation_completeness.get(language.get("name")).toString());
+                            completed++;
+                            translation_completeness.put(language.get("name"), completed);
+                            //System.out.println(language.get("name")+": "+completed);
+                        }
+                    }
                 }
                 translations_table.append("</tr>");
-                if ( num_properties % 12 == 0) {
+                if (num_properties % 12 == 0) {
                     translations_table.append("</tbody><tbody>").append(table_head);
                 }
             }
             translations_table.append("</tbody></table>");
             for (int i = 0; i < Messages.languages_name.size(); i++) {
-		name = String.valueOf(Messages.languages_name.get(i));
-		HashMap<String,String> l = languages.get(i);
-		int completeness_percent = 100*Integer.parseInt(translation_completeness.get(l.get("name")).toString());
-		completeness_percent = completeness_percent /ac_default.getMsg().properties.size();
-		l.put("completeness", Integer.toString(completeness_percent));
-		// FIXME not needed // languages[i] = l;
-	    }
-	    vc.put("languages", languages);
-	    vc.put("num_languages", Messages.languages_name.size());
-	    vc.put("total_properties", ac_default.getMsg().properties.size());
-    	    vc.put("translations_table", translations_table.toString());
-    	    vc.put("lang", "en");
-	    OutputStreamWriter aFileWriter = new OutputStreamWriter(new FileOutputStream(out_file), "UTF-8");
-	    tpl.merge(vc, aFileWriter);
-	    aFileWriter.close();
-    	} catch (URISyntaxException e) {
-	    e.printStackTrace();
-    	} catch (ResourceNotFoundException e) {
-	    e.printStackTrace();
-	} catch (ParseErrorException e) {
-	    e.printStackTrace();
-	} catch (MethodInvocationException e) {
-	    e.printStackTrace();
-	} catch (IOException e) {
-	    e.printStackTrace();
-	} catch (Exception e) {
-	    e.printStackTrace();
-	} finally {
-	    done = true;
-	}
+                name = String.valueOf(Messages.languages_name.get(i));
+                HashMap<String, String> l = languages.get(i);
+                int completeness_percent = 100 * Integer.parseInt(translation_completeness.get(l.get("name")).toString());
+                completeness_percent = completeness_percent / ac_default.getMsg().properties.size();
+                l.put("completeness", Integer.toString(completeness_percent));
+                // FIXME not needed // languages[i] = l;
+            }
+            vc.put("languages", languages);
+            vc.put("num_languages", Messages.languages_name.size());
+            vc.put("total_properties", ac_default.getMsg().properties.size());
+            vc.put("translations_table", translations_table.toString());
+            vc.put("lang", "en");
+            OutputStreamWriter aFileWriter = new OutputStreamWriter(new FileOutputStream(out_file), "UTF-8");
+            tpl.merge(vc, aFileWriter);
+            aFileWriter.close();
+        } catch (URISyntaxException e) {
+            e.printStackTrace();
+        } catch (ResourceNotFoundException e) {
+            e.printStackTrace();
+        } catch (ParseErrorException e) {
+            e.printStackTrace();
+        } catch (MethodInvocationException e) {
+            e.printStackTrace();
+        } catch (IOException e) {
+            e.printStackTrace();
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {
+            done = true;
+        }
     }
 }

Index: translations.vm
===================================================================
RCS file: /sources/public/2002/css-validator/org/w3c/css/index/translations.vm,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- translations.vm	6 Mar 2008 22:49:46 -0000	1.6
+++ translations.vm	6 Sep 2011 14:40:30 -0000	1.7
@@ -17,13 +17,13 @@
 
 <p>The table below lists all the text strings used to translate the CSS validator:</p>
 <ul class="translations_instructions">
-<li>Cells marked <span class='table_translation_missing'><a title="Cross Mark">✘</a></span> need a new or updated translation. Click on the relevant ✘ to submit a translation by mail.</li>
-<li>Cells marked <span class='table_translation_ok'>✔</span> are translated and up-to-date. Hover above  ✔ to read the current translation for each string.</li>
+<li>Cells marked <span class="table_translation_missing"><a title="Cross Mark">✘</a></span> need a new or updated translation. Click on the relevant ✘ to submit a translation by mail.</li>
+<li>Cells marked <span class="table_translation_ok">✔</span> are translated and up-to-date. Hover above  ✔ to read the current translation for each string.</li>
 </ul>
 <p>You can help fill the blanks and complete the translation in <strong>your</strong> language!</p>
 <table id="translation_summary">
 <thead><tr>
-<th scope='col' class="property_name" id="properties">Property</th>
+<th scope="col" class="property_name" id="properties">Property</th>
 #foreach ( $language in $languages )
     #set ( $name = $language.get("name") )
 	#if ($name != "en")
@@ -33,7 +33,8 @@
 	        #set ( $real = $language.get("name") )
 	    #end
 		#set ($completeness = $language.get("completeness") )
-		<th scope='col'>$real <br /> $completeness%</th>
+		#set ($engname = $language.get("engname") )
+		<th scope="col" title="$engname">$real <br /> $completeness%</th>
 	#end
 #end
 </tr></thead>

Received on Tuesday, 6 September 2011 14:40:40 UTC