author | Eugene Ostroukhov <eugeneo@symbian.org> |
Wed, 19 May 2010 17:17:31 -0700 | |
changeset 337 | afe6a53c0ed4 |
parent 191 | 61c04b3eb3e7 |
permissions | -rw-r--r-- |
191
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
1 |
/** |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
2 |
* This class is used to generates the index pages |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
3 |
* of the CSS validator in all the availables languages |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
4 |
* it'll create the outputs validator.en.html, validator.fr.html, ... |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
5 |
* according to the template file validator.vm |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
6 |
*/ |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
7 |
package org.w3c.css.index; |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
8 |
|
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
9 |
import java.io.File; |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
10 |
import java.io.FileOutputStream; |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
11 |
import java.io.IOException; |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
12 |
import java.io.OutputStreamWriter; |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
13 |
import java.net.URI; |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
14 |
import java.net.URISyntaxException; |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
15 |
import java.text.SimpleDateFormat; |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
16 |
import java.util.Date; |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
17 |
|
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
18 |
import org.apache.velocity.Template; |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
19 |
import org.apache.velocity.VelocityContext; |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
20 |
import org.apache.velocity.app.Velocity; |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
21 |
import org.apache.velocity.exception.MethodInvocationException; |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
22 |
import org.apache.velocity.exception.ParseErrorException; |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
23 |
import org.apache.velocity.exception.ResourceNotFoundException; |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
24 |
import org.apache.commons.lang.StringEscapeUtils; |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
25 |
import java.util.ArrayList; |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
26 |
import java.util.HashMap; |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
27 |
import java.util.Iterator; |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
28 |
import java.util.Vector; |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
29 |
import java.util.Collections; |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
30 |
import java.util.Comparator; |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
31 |
import java.util.Set; |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
32 |
import java.lang.Integer; |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
33 |
import org.w3c.css.util.ApplContext; |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
34 |
import org.w3c.css.util.Messages; |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
35 |
import org.w3c.css.util.Utf8Properties; |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
36 |
|
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
37 |
|
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
38 |
/** |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
39 |
* @author olivier Thereaux <ot@w3.org> for W3C |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
40 |
* |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
41 |
* |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
42 |
*/ |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
43 |
class AlphaComparator implements Comparator<String> { |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
44 |
public int compare(String s1, String s2) { |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
45 |
return s1.compareToIgnoreCase(s2); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
46 |
} |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
47 |
} |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
48 |
|
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
49 |
public class TranslationTableGenerator { |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
50 |
|
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
51 |
// the velocity context used to generate the index |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
52 |
// (NB: the same context is used for each index page, changing every thing |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
53 |
// inside) |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
54 |
public static VelocityContext vc = new VelocityContext(); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
55 |
private static String html_files_path = "../../../../"; |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
56 |
private static boolean done = false; |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
57 |
private static String template_name = "translations.vm"; |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
58 |
|
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
59 |
|
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
60 |
/** |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
61 |
* @param args |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
62 |
*/ |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
63 |
public static void main(String[] args) { |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
64 |
TranslationTableGenerator.generateTable(); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
65 |
} |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
66 |
|
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
67 |
/** |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
68 |
* This method generates the index in every possible language we have the translation |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
69 |
* @see org.w3c.css.util.Messages |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
70 |
*/ |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
71 |
public static synchronized void generateTable() { |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
72 |
|
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
73 |
String default_lang = "en"; |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
74 |
String name, path; |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
75 |
StringBuilder table_head = new StringBuilder(); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
76 |
StringBuilder translations_table = new StringBuilder(); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
77 |
File out_file; |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
78 |
path = TranslationTableGenerator.class.getResource("").getPath(); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
79 |
|
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
80 |
try { |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
81 |
path = new URI(path).getPath(); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
82 |
Velocity.setProperty(Velocity.FILE_RESOURCE_LOADER_PATH, path); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
83 |
Velocity.addProperty(Velocity.FILE_RESOURCE_LOADER_PATH, path + "../css/"); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
84 |
Velocity.setProperty(Velocity.RUNTIME_LOG, |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
85 |
"velocity-" + new SimpleDateFormat("yyyy-MM-dd_HHmm").format(new Date()) + ".log"); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
86 |
|
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
87 |
Velocity.setProperty(Velocity.RUNTIME_LOG_LOGSYSTEM_CLASS, "org.apache.velocity.runtime.log.AvalonLogChute"); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
88 |
Velocity.init(); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
89 |
|
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
90 |
Template tpl = Velocity.getTemplate(template_name, "UTF-8"); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
91 |
out_file = new File(path + html_files_path + "translations.html"); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
92 |
|
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
93 |
ApplContext ac_default= new ApplContext(default_lang); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
94 |
// Getting the differents languages informations (for the lang choice) |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
95 |
ArrayList<HashMap<String,String>> languages; |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
96 |
languages = new ArrayList<HashMap<String,String>>(Messages.languages_name.size()); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
97 |
HashMap<String,ApplContext> translations = new HashMap<String,ApplContext>(); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
98 |
HashMap<String,Integer> translation_completeness = new HashMap<String,Integer>(); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
99 |
table_head.append("<tr><th scope='col'>Property</th>"); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
100 |
for (int i = 0; i < Messages.languages_name.size(); ++i) { |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
101 |
name = String.valueOf(Messages.languages_name.get(i)); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
102 |
HashMap<String,String> l = new HashMap<String,String>(); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
103 |
l.put("name", name); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
104 |
l.put("real", ((Utf8Properties) Messages.languages.get(name)).getProperty("language_name")); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
105 |
languages.add(i, l); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
106 |
ApplContext ac_translated = new ApplContext(name); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
107 |
if (!name.equals(default_lang)) { |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
108 |
table_head.append("<th>").append(l.get("real")).append("</th>"); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
109 |
} |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
110 |
translations.put(name,ac_translated); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
111 |
translation_completeness.put(name, 0); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
112 |
|
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
113 |
} |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
114 |
table_head.append("</tr>"); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
115 |
Vector<String> sorted_properties_keys; |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
116 |
Set properties_keyset = ac_default.getMsg().properties.keySet(); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
117 |
sorted_properties_keys = new Vector<String>(properties_keyset); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
118 |
Collections.sort(sorted_properties_keys, new AlphaComparator()); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
119 |
Iterator properties_iterator = sorted_properties_keys.iterator(); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
120 |
translations_table.append("<tbody>"); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
121 |
int num_properties = 0; |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
122 |
while (properties_iterator.hasNext()) { |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
123 |
++num_properties; |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
124 |
String property_name = String.valueOf(properties_iterator.next()); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
125 |
translations_table.append("<tr><th scope=\"row\" class=\"property_name\">").append(property_name); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
126 |
translations_table.append("<p>").append(StringEscapeUtils.escapeHtml(ac_default.getMsg().getString(property_name))); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
127 |
translations_table.append("</p></th>"); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
128 |
for (int i = 0; i < Messages.languages_name.size(); ++i) { |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
129 |
HashMap<String,String> language = languages.get(i); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
130 |
ApplContext translation = (ApplContext) translations.get(language.get("name")); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
131 |
String property_translated = translation.getMsg().getString(property_name); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
132 |
if (language.get("name").equals(default_lang)) { |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
133 |
vc.put(property_name, property_translated); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
134 |
} else { |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
135 |
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", ""); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
136 |
if (property_translated == null) { |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
137 |
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"); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
138 |
} else if ( property_translated.matches(".*translation unavailable.*")) { |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
139 |
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"); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
140 |
} else { |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
141 |
translations_table.append("<td class=\"table_translation_ok\"><span title=\"").append(StringEscapeUtils.escapeHtml(property_translated)).append("\">✔</span></td>\n"); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
142 |
int completed = Integer.parseInt(translation_completeness.get(language.get("name")).toString()); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
143 |
completed++; |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
144 |
translation_completeness.put(language.get("name"), completed); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
145 |
//System.out.println(language.get("name")+": "+completed); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
146 |
} |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
147 |
} |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
148 |
} |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
149 |
translations_table.append("</tr>"); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
150 |
if ( num_properties % 12 == 0) { |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
151 |
translations_table.append("</tbody><tbody>").append(table_head); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
152 |
} |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
153 |
} |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
154 |
translations_table.append("</tbody></table>"); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
155 |
for (int i = 0; i < Messages.languages_name.size(); i++) { |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
156 |
name = String.valueOf(Messages.languages_name.get(i)); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
157 |
HashMap<String,String> l = languages.get(i); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
158 |
int completeness_percent = 100*Integer.parseInt(translation_completeness.get(l.get("name")).toString()); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
159 |
completeness_percent = completeness_percent /ac_default.getMsg().properties.size(); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
160 |
l.put("completeness", Integer.toString(completeness_percent)); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
161 |
// FIXME not needed // languages[i] = l; |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
162 |
} |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
163 |
vc.put("languages", languages); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
164 |
vc.put("num_languages", Messages.languages_name.size()); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
165 |
vc.put("total_properties", ac_default.getMsg().properties.size()); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
166 |
vc.put("translations_table", translations_table.toString()); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
167 |
vc.put("lang", "en"); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
168 |
OutputStreamWriter aFileWriter = new OutputStreamWriter(new FileOutputStream(out_file), "UTF-8"); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
169 |
tpl.merge(vc, aFileWriter); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
170 |
aFileWriter.close(); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
171 |
} catch (URISyntaxException e) { |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
172 |
e.printStackTrace(); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
173 |
} catch (ResourceNotFoundException e) { |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
174 |
e.printStackTrace(); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
175 |
} catch (ParseErrorException e) { |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
176 |
e.printStackTrace(); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
177 |
} catch (MethodInvocationException e) { |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
178 |
e.printStackTrace(); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
179 |
} catch (IOException e) { |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
180 |
e.printStackTrace(); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
181 |
} catch (Exception e) { |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
182 |
e.printStackTrace(); |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
183 |
} finally { |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
184 |
done = true; |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
185 |
} |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
186 |
} |
61c04b3eb3e7
Bug 2001 - css validator to separate plug-in
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff
changeset
|
187 |
} |