comparison po/l10n.xsl @ 25342:161d9bdcca3c

Updates to the translation statistics styleshoot from Hans Nordhaug to improve the output (and make it valid XHTML). Fixes #8071
author Daniel Atallah <daniel.atallah@gmail.com>
date Tue, 20 Jan 2009 03:30:36 +0000
parents c586c2ffaaab
children 7a5c2db0803d
comparison
equal deleted inserted replaced
25340:0e50e4e7aef7 25342:161d9bdcca3c
1 <?xml version='1.0' ?> 1 <?xml version='1.0' ?>
2 <xsl:stylesheet version='2.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'> 2 <xsl:stylesheet version='2.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
3 <xsl:output
4 method="html"
5 omit-xml-declaration="yes"
6 doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
7 doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
8 indent="yes"
9 />
3 <xsl:template match='/project'> 10 <xsl:template match='/project'>
4 <html> 11 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5 <head> 12 <head>
6 <title><xsl:value-of select='@name'/> translation statistics</title> 13 <title><xsl:value-of select='@name'/> translation statistics</title>
14 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
7 <!-- <link rel="Stylesheet" href="/gaim.css" type="text/css" media="screen" /> --> 15 <!-- <link rel="Stylesheet" href="/gaim.css" type="text/css" media="screen" /> -->
8 <style> 16 <style type="text/css">
9 .bargraph { 17 .bargraph {
10 width: 200px; 18 width: 200px;
11 height: 20px; 19 height: 20px;
12 background: black; 20 background-color: red;
13 border-collapse: collapse; 21 border-collapse: collapse;
14 border-spacing: 0px; 22 border-spacing: 0px;
15 margin: 0px; 23 margin: 0px;
16 border: 0px; 24 border: 0px;
17 padding: 0px; 25 padding: 0px;
18 } 26 }
19 27 .translated {
28 background-color: green;
29 padding: 0px;
30 }
31 .fuzzy {
32 background-color: blue;
33 padding: 0px;
34 }
35 .untranslated {
36 background-color: red;
37 padding: 0px;
38 }
39 td.sep {
40 padding-right: 10px;
41 }
42 th {
43 text-align: left;
44 }
20 </style> 45 </style>
21 </head> 46 </head>
22 <body> 47 <body>
23 <!-- <div id="content"> --> 48 <!-- <div id="content"> -->
24 <h1><xsl:value-of select='@name' /> translation statistics</h1> 49 <h1><xsl:value-of select='@name' /> translation statistics</h1>
26 <tr><th>Language</th><th colspan='2'>Translated</th><th colspan='2'>Fuzzy</th><th colspan='2'>Untranslated</th></tr> 51 <tr><th>Language</th><th colspan='2'>Translated</th><th colspan='2'>Fuzzy</th><th colspan='2'>Untranslated</th></tr>
27 <xsl:for-each select="lang"> 52 <xsl:for-each select="lang">
28 <xsl:sort select='@code' /> 53 <xsl:sort select='@code' />
29 <tr> 54 <tr>
30 <td><a><xsl:attribute name='href'><xsl:value-of select='@code'/>.po</xsl:attribute><xsl:value-of select='@name'/> (<xsl:value-of select='@code'/>)</a></td> 55 <td><a><xsl:attribute name='href'><xsl:value-of select='@code'/>.po</xsl:attribute><xsl:value-of select='@name'/> (<xsl:value-of select='@code'/>)</a></td>
31 <td><xsl:value-of select='@translated'/></td><td><xsl:value-of select="format-number(@translated div ../@strings * 100,'#.##')"/> %</td> 56 <td><xsl:value-of select='@translated'/></td>
32 <td><xsl:value-of select='@fuzzy'/></td><td><xsl:value-of select="format-number(@fuzzy div ../@strings * 100,'#.##')"/> %</td> 57 <td class='sep'><xsl:value-of select="format-number(@translated div ../@strings * 100,'#.##')"/> %</td>
33 <td><xsl:value-of select='../@strings - (@translated + @fuzzy)'/></td><td><xsl:value-of select="format-number((../@strings - (@translated + @fuzzy)) div ../@strings * 100,'#.##')"/> %</td> 58 <td><xsl:value-of select='@fuzzy'/></td>
59 <td class='sep'><xsl:value-of select="format-number(@fuzzy div ../@strings * 100,'#.##')"/> %</td>
60 <td><xsl:value-of select='../@strings - (@translated + @fuzzy)'/></td>
61 <td><xsl:value-of select="format-number((../@strings - (@translated + @fuzzy)) div ../@strings * 100,'#.##')"/> %</td>
34 <td> 62 <td>
35 <table class='bargraph'><tr> 63 <table class='bargraph'><tr>
36 <td bgcolor='green'><xsl:attribute name='width'><xsl:value-of select='round(@translated div ../@strings * 200)'/>px;</xsl:attribute></td> 64 <td class="translated"><xsl:attribute name='style'>width:<xsl:value-of select='round(@translated div ../@strings * 200)'/>px;</xsl:attribute></td>
37 <td bgcolor='blue'><xsl:attribute name='width'><xsl:value-of select='round(@fuzzy div ../@strings * 200)'/>px;</xsl:attribute></td> 65 <td class="fuzzy"><xsl:attribute name='style'>width:<xsl:value-of select='round(@fuzzy div ../@strings * 200)'/>px;</xsl:attribute></td>
38 <!-- <td bgcolor='red'><xsl:attribute name='width'><xsl:value-of select='200 - round((@translated + @fuzzy) div ../@strings * 200)'/>px;</xsl:attribute></td> --> 66 <td class="untranslated"><xsl:attribute name='style'>width:<xsl:value-of select='round((../@strings - @translated - @fuzzy) div ../@strings * 200)'/>px;</xsl:attribute></td>
39 <td bgcolor='red'></td>
40 </tr></table> 67 </tr></table>
41 </td> 68 </td>
42 </tr> 69 </tr>
43 </xsl:for-each> 70 </xsl:for-each>
44 </table> 71 </table>
45 <a><xsl:attribute name='href'><xsl:value-of select='@pofile'/></xsl:attribute><xsl:value-of select='@pofile'/></a> generated on <xsl:value-of select='@generated'/> 72 <p><a><xsl:attribute name='href'><xsl:value-of select='@pofile'/></xsl:attribute><xsl:value-of select='@pofile'/></a> generated on <xsl:value-of select='@generated'/></p>
46 <!-- </div> --> 73 <!-- </div> -->
47 </body> 74 </body>
48 </html> 75 </html>
49 </xsl:template> 76 </xsl:template>
50 </xsl:stylesheet> 77 </xsl:stylesheet>