view po/l10n.xsl @ 18088:c138916a49b3

I think it's reasonable to search through a haystack that is the empty string. This gets rid of the following assertion failure for me: #0 0x00002b7f5ebdccab in raise () from /lib/libc.so.6 #1 0x00002b7f5ebde660 in abort () from /lib/libc.so.6 #2 0x00002b7f5e046b1b in g_logv () from /usr/lib/libglib-2.0.so.0 #3 0x00002b7f5e046bb3 in g_log () from /usr/lib/libglib-2.0.so.0 #4 0x00002b7f5e326746 in purple_markup_find_tag (needle=0x2b7f5e33fb89 "img", haystack=0x11fcf6c "", start=0x7fff51043070, end=0x7fff51043068, attributes=0x7fff51043060) at util.c:1016 #5 0x00002b7f5e2fa9f4 in convert_image_tags (log=0x931a80, msg=0x11fcf60 "<IMG ID=\"1\">") at log.c:709 #6 0x00002b7f5e2fba15 in html_logger_write (log=0x931a80, type=4097, from=0x778e00 "lk80z", time=1181547027, message=0x11fcf60 "<IMG ID=\"1\">") at log.c:1339 #7 0x00002b7f5e2f8fee in purple_log_write (log=0x931a80, type=4097, from=0x778e00 "lk80z", time=1181547027, message=0x11fcf60 "<IMG ID=\"1\">") at log.c:155 #8 0x00002b7f5e2eca6c in purple_conversation_write (conv=0x1041500, who=0xf50ba0 "giantpucepanda", message=0x11ec670 "<IMG ID=\"1\">", flags=4097, mtime=1181547027) at conversation.c:883 #9 0x0000000000452ca5 in pidgin_conv_write_im (conv=0x1041500, who=0x0, message=0x11ec670 "<IMG ID=\"1\">", flags=4097, mtime=1181547027) at gtkconv.c:4827 #10 0x00002b7f5e2ed21e in purple_conv_im_write (im=0x111b170, who=0x0, message=0x11ec670 "<IMG ID=\"1\">", flags=4097, mtime=1181547027)
author Mark Doliner <mark@kingant.net>
date Mon, 11 Jun 2007 07:45:19 +0000
parents c586c2ffaaab
children 161d9bdcca3c
line wrap: on
line source

<?xml version='1.0' ?>
<xsl:stylesheet version='2.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
	<xsl:template match='/project'>
		<html>
			<head>
				<title><xsl:value-of select='@name'/> translation statistics</title>
				<!-- <link rel="Stylesheet" href="/gaim.css" type="text/css" media="screen" /> -->
				<style>
					.bargraph {
						width: 200px;
						height: 20px;
						background: black;
						border-collapse: collapse;
						border-spacing: 0px;
						margin: 0px;
						border: 0px;
						padding: 0px;
					}

				</style>
			</head>
			<body>
				<!-- <div id="content"> -->
				<h1><xsl:value-of select='@name' /> translation statistics</h1>
				<table>
					<tr><th>Language</th><th colspan='2'>Translated</th><th colspan='2'>Fuzzy</th><th colspan='2'>Untranslated</th></tr>
					<xsl:for-each select="lang">
						<xsl:sort select='@code' />
						<tr>
							<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>
							<td><xsl:value-of select='@translated'/></td><td><xsl:value-of select="format-number(@translated div ../@strings * 100,'#.##')"/> %</td>
							<td><xsl:value-of select='@fuzzy'/></td><td><xsl:value-of select="format-number(@fuzzy div ../@strings * 100,'#.##')"/> %</td>
							<td><xsl:value-of select='../@strings - (@translated + @fuzzy)'/></td><td><xsl:value-of select="format-number((../@strings - (@translated + @fuzzy)) div ../@strings * 100,'#.##')"/> %</td>
						<td>
							<table class='bargraph'><tr>
									<td bgcolor='green'><xsl:attribute name='width'><xsl:value-of select='round(@translated div ../@strings * 200)'/>px;</xsl:attribute></td>
									<td bgcolor='blue'><xsl:attribute name='width'><xsl:value-of select='round(@fuzzy div ../@strings * 200)'/>px;</xsl:attribute></td>
									<!-- <td bgcolor='red'><xsl:attribute name='width'><xsl:value-of select='200 - round((@translated + @fuzzy) div ../@strings * 200)'/>px;</xsl:attribute></td> -->
									<td bgcolor='red'></td>
							</tr></table>
						</td>
						</tr>
					</xsl:for-each>
				</table>
				<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'/>
				<!-- </div> -->
			</body>
		</html>
	</xsl:template>
</xsl:stylesheet>