- From: Olivier Thereaux via cvs-syncmail <cvsmail@w3.org>
- Date: Tue, 27 Nov 2007 07:00:47 +0000
- To: www-validator-cvs@w3.org
Update of /sources/public/2002/css-validator/org/w3c/css/index
In directory hutz:/tmp/cvs-serv16116/org/w3c/css/index
Modified Files:
TranslationTableGenerator.java translations.vm
Log Message:
calculating coverage percentage.
adding thead for readability
Index: TranslationTableGenerator.java
===================================================================
RCS file: /sources/public/2002/css-validator/org/w3c/css/index/TranslationTableGenerator.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- TranslationTableGenerator.java 27 Nov 2007 01:44:28 -0000 1.2
+++ TranslationTableGenerator.java 27 Nov 2007 07:00:45 -0000 1.3
@@ -24,6 +24,7 @@
import java.util.Vector;
import java.util.Collections;
import java.util.Comparator;
+import java.lang.Integer;
import org.w3c.css.util.ApplContext;
import org.w3c.css.util.Messages;
import org.w3c.css.util.Utf8Properties;
@@ -65,7 +66,7 @@
*/
public static synchronized void generateTable() {
- String default_lang = "en", name, path, translations_table;
+ String default_lang = "en", name, path, translations_table, table_head;
File out_file;
path = TranslationTableGenerator.class.getResource("").getPath();
try {
@@ -83,7 +84,8 @@
// Getting the differents languages informations (for the lang choice)
HashMap[] languages = new HashMap[Messages.languages_name.size()];
HashMap translations = new HashMap();
- translations_table = "<table id=\"translation_summary\"><tr><th scope='col' id=\"properties\">Property</th>";
+ HashMap translation_completeness = new HashMap();
+ table_head ="<thead><tr><th scope='col' id=\"properties\">Property</th>";
for (int i = 0; i < Messages.languages_name.size(); ++i) {
name = String.valueOf(Messages.languages_name.get(i));
HashMap l = new HashMap();
@@ -91,20 +93,23 @@
l.put("real", ((Utf8Properties) Messages.languages.get(name)).getProperty("language_name"));
languages[i] = l;
ApplContext ac_translated = new ApplContext(name);
- translations.put(name,ac_translated);
if (!name.equals(default_lang)){
- translations_table = translations_table + "<th scope=\"col\">"+l.get("real")+"</th>";
+ table_head=table_head+"<th>"+l.get("real")+"</th>";
}
+ translations.put(name,ac_translated);
+ translation_completeness.put(name, 0);
+
}
- vc.put("languages", languages);
- vc.put("num_languages", Messages.languages_name.size());
+ table_head=table_head+"</thead>";
Vector sorted_properties_keys = new Vector(ac_default.getMsg().properties.keySet());
Collections.sort(sorted_properties_keys, new AlphaComparator());
Iterator properties_iterator = sorted_properties_keys.iterator();
- translations_table = translations_table + "</tr>";
+ translations_table = "<tbody>";
+ int num_properties = 0;
while (properties_iterator.hasNext()) {
+ ++num_properties;
String property_name = String.valueOf(properties_iterator.next());
- translations_table = translations_table + "<tr><th scope=\"row\">"+property_name;
+ translations_table = translations_table + "<tr><th scope=\"row\" class=\"property_name\">"+property_name;
translations_table = translations_table+"<p>"+StringEscapeUtils.escapeHtml(ac_default.getMsg().getString(property_name))+"</p></th>";
for (int i = 0; i < Messages.languages_name.size(); ++i) {
HashMap language = languages[i];
@@ -123,12 +128,30 @@
}
else {
translations_table = translations_table + "<td class=\"table_translation_ok\"><span title=\""+StringEscapeUtils.escapeHtml(property_translated)+"\">✔</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 = translations_table + "</tr>";
+ if(num_properties%12 == 0) {
+ translations_table = translations_table+"</tbody>"+table_head+"<tbody>";
+ }
+ }
+ translations_table = translations_table + "</tbody></table>";
+ for (int i = 0; i < Messages.languages_name.size(); ++i) {
+ name = String.valueOf(Messages.languages_name.get(i));
+ HashMap l = (HashMap) languages[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", completeness_percent);
+ languages[i] = l;
}
- translations_table = translations_table + "</table>";
+ 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);
vc.put("lang", "en");
OutputStreamWriter aFileWriter = new OutputStreamWriter(new FileOutputStream(out_file), "UTF-8");
Index: translations.vm
===================================================================
RCS file: /sources/public/2002/css-validator/org/w3c/css/index/translations.vm,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- translations.vm 27 Nov 2007 01:44:28 -0000 1.2
+++ translations.vm 27 Nov 2007 07:00:45 -0000 1.3
@@ -6,5 +6,23 @@
<p>Cells marked <span class='table_translation_ok'>✔</span> are translated and up-to-date. Hover above ✔ to read the current translation for each string.</p>
<p>You can help fill the blanks and complete the translation in <strong>your</strong> language!</p>
</div>
+<table id="translation_summary">
+<thead><tr>
+<th scope='col' class="property_name" id="properties">Property</th>
+#foreach ( $language in $languages )
+ #set ( $name = $language.get("name") )
+ #if ($name != "en")
+ #if ( $language.get("real") )
+ #set ( $real = $language.get("real") )
+ #else
+ #set ( $real = $language.get("name") )
+ #end
+ #set ($completeness = $language.get("completeness") )
+ <th scope='col'>$real <br /> $completeness%</th>
+ #end
+#end
+</tr></thead>
+
+
$translations_table
#parse("./footer.vm")
Received on Tuesday, 27 November 2007 07:01:03 UTC