You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
395 lines
17 KiB
395 lines
17 KiB
<?xml version="1.0"?>
|
|
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
|
|
<xsl:output method="html"/>
|
|
|
|
<xsl:template match="language_entries">
|
|
<html>
|
|
<head>
|
|
<title>Debian-Installer languages support, statistics and translators</title>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
|
</head>
|
|
<body>
|
|
<p align="center"><strong>World population coverage</strong></p>
|
|
<table border="1" align="center">
|
|
<tr>
|
|
<th>
|
|
Debian releases
|
|
</th>
|
|
<th>
|
|
Potato
|
|
</th>
|
|
<th>
|
|
Woody
|
|
</th>
|
|
<th>
|
|
Sarge
|
|
</th>
|
|
<th>
|
|
Etch
|
|
</th>
|
|
<th>
|
|
Lenny
|
|
</th>
|
|
<th>
|
|
Squeeze
|
|
</th>
|
|
<th>
|
|
Wheezy
|
|
</th>
|
|
<th>
|
|
Work in progress
|
|
</th>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
Number of supported languages
|
|
</td>
|
|
<td align="center">
|
|
<xsl:value-of select="count(//language_entry[@supported = 'potato'])"/>
|
|
</td>
|
|
<td align="center">
|
|
<xsl:value-of select="count(//language_entry[@supported = 'woody'] | //language_entry[@supported = 'potato'])"/>
|
|
</td>
|
|
<td align="center">
|
|
<xsl:value-of select="count(//language_entry[@supported = 'sarge'] | //language_entry[@supported = 'woody'] | //language_entry[@supported = 'potato'])"/>
|
|
</td>
|
|
<td align="center">
|
|
<xsl:value-of select="count(//language_entry[@supported = 'etch'] | //language_entry[@supported = 'sarge'] | //language_entry[@supported = 'woody'] | //language_entry[@supported = 'potato'])"/>
|
|
</td>
|
|
<td align="center">
|
|
<xsl:value-of select="count(//language_entry[@supported = 'lenny'] | //language_entry[@supported = 'etch'] | //language_entry[@supported = 'sarge'] | //language_entry[@supported = 'woody'] | //language_entry[@supported = 'potato'])"/>
|
|
</td>
|
|
<td align="center">
|
|
<xsl:value-of select="count(//language_entry[@supported = 'squeeze'] | //language_entry[@supported = 'lenny'] | //language_entry[@supported = 'etch'] | //language_entry[@supported = 'sarge'] | //language_entry[@supported = 'woody'] | //language_entry[@supported = 'potato'])"/>
|
|
</td>
|
|
<td align="center">
|
|
<xsl:value-of select="count(//language_entry[@supported = 'wheezy'] | //language_entry[@supported = 'squeeze'] | //language_entry[@supported = 'lenny'] | //language_entry[@supported = 'etch'] | //language_entry[@supported = 'sarge'] | //language_entry[@supported = 'woody'] | //language_entry[@supported = 'potato'])"/>
|
|
</td>
|
|
<td align="center">
|
|
<xsl:value-of select="count(//language_entry)"/>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
Percent world population
|
|
</td>
|
|
<td align="center">
|
|
<xsl:value-of select="round(sum(//@speakers[../@supported = 'potato']) div 6892758426 * 100)"/> to <xsl:value-of select="round(sum(//@speakers_corr[../@supported = 'potato']) div 6892758426 * 100)"/>%.
|
|
</td>
|
|
<td align="center">
|
|
<xsl:value-of select="round(sum(//@speakers[../@supported = 'woody'] | //@speakers[../@supported = 'potato']) div 6892758426 * 100)"/> to <xsl:value-of select="round(sum(//@speakers_corr[../@supported = 'woody'] | //@speakers_corr[../@supported = 'potato']) div 6892758426 * 100)"/>%
|
|
</td>
|
|
<td align="center">
|
|
<xsl:value-of select="round(sum(//@speakers[../@supported = 'sarge'] | //@speakers[../@supported = 'woody'] | //@speakers[../@supported = 'potato']) div 6892758426 * 100)"/> to <xsl:value-of select="round(sum(//@speakers_corr[../@supported = 'sarge'] | //@speakers_corr[../@supported = 'woody'] | //@speakers_corr[../@supported = 'potato']) div 6892758426 * 100)"/>%
|
|
</td>
|
|
<td align="center">
|
|
<xsl:value-of select="round(sum(//@speakers[../@supported = 'etch'] | //@speakers[../@supported = 'sarge'] | //@speakers[../@supported = 'woody'] | //@speakers[../@supported = 'potato']) div 6892758426 * 100)"/> to <xsl:value-of select="round(sum(//@speakers_corr[../@supported = 'etch'] | //@speakers_corr[../@supported = 'sarge'] | //@speakers_corr[../@supported = 'woody'] | //@speakers_corr[../@supported = 'potato']) div 6892758426 * 100)"/>%
|
|
</td>
|
|
<td align="center">
|
|
<xsl:value-of select="round(sum(//@speakers[../@supported = 'lenny'] | //@speakers[../@supported = 'etch'] | //@speakers[../@supported = 'sarge'] | //@speakers[../@supported = 'woody'] | //@speakers[../@supported = 'potato']) div 6892758426 * 100)"/> to <xsl:value-of select="round(sum(//@speakers_corr[../@supported = 'etch'] | //@speakers_corr[../@supported = 'sarge'] | //@speakers_corr[../@supported = 'woody'] | //@speakers_corr[../@supported = 'potato']) div 6892758426 * 100)"/>%
|
|
</td>
|
|
<td align="center">
|
|
<xsl:value-of select="round(sum(//@speakers[../@supported = 'squeeze'] | //@speakers[../@supported = 'lenny'] | //@speakers[../@supported = 'etch'] | //@speakers[../@supported = 'sarge'] | //@speakers[../@supported = 'woody'] | //@speakers[../@supported = 'potato']) div 6892758426 * 100)"/> to <xsl:value-of select="round(sum(//@speakers_corr[../@supported = 'etch'] | //@speakers_corr[../@supported = 'sarge'] | //@speakers_corr[../@supported = 'woody'] | //@speakers_corr[../@supported = 'potato']) div 6892758426 * 100)"/>%
|
|
</td>
|
|
<td align="center">
|
|
<xsl:value-of select="round(sum(//@speakers[../@supported = 'wheezy'] | //@speakers[../@supported = 'squeeze'] | //@speakers[../@supported = 'lenny'] | //@speakers[../@supported = 'etch'] | //@speakers[../@supported = 'sarge'] | //@speakers[../@supported = 'woody'] | //@speakers[../@supported = 'potato']) div 6892758426 * 100)"/> to <xsl:value-of select="round(sum(//@speakers_corr[../@supported = 'etch'] | //@speakers_corr[../@supported = 'sarge'] | //@speakers_corr[../@supported = 'woody'] | //@speakers_corr[../@supported = 'potato']) div 6892758426 * 100)"/>%
|
|
</td>
|
|
<td align="center">
|
|
<xsl:value-of select="round(sum(//@speakers) div 6892758426 * 100)"/> to <xsl:value-of select="round(sum(//@speakers_corr) div 6892758426 * 100)"/>%
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<p align="center"><strong>World geographical coverage</strong></p>
|
|
<table border="1" align="center">
|
|
<tr>
|
|
<th>
|
|
Releases
|
|
</th>
|
|
<th>
|
|
Official
|
|
</th>
|
|
<th>
|
|
Most widely spoken
|
|
</th>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="3">
|
|
<em>Official</em>: countries where one of the official languages is supported:
|
|
<br></br>
|
|
<em>Most widely spoken</em>: countries where the most widely spoken language is supported:
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="center">
|
|
Potato
|
|
</td>
|
|
<td align="center">
|
|
<xsl:variable name="codes">
|
|
<xsl:for-each select="//@countries_official[../@supported = 'potato']">
|
|
<xsl:value-of select="string()"/>
|
|
</xsl:for-each>
|
|
</xsl:variable>
|
|
<img src="http://www.world66.com/community/mymaps/worldmap?visited={$codes}" width="200" height="100"/>
|
|
</td>
|
|
<td align="center">
|
|
<xsl:variable name="codes">
|
|
<xsl:for-each select="//@countries_most_spoken[../@supported = 'potato']">
|
|
<xsl:value-of select="string()"/>
|
|
</xsl:for-each>
|
|
</xsl:variable>
|
|
<img src="http://www.world66.com/community/mymaps/worldmap?visited={$codes}" width="200" height="100"/>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="center">
|
|
Woody
|
|
</td>
|
|
<td align="center">
|
|
<xsl:variable name="codes">
|
|
<xsl:for-each select="//@countries_official[../@supported = 'woody'] | //@countries_official[../@supported = 'potato']">
|
|
<xsl:value-of select="string()"/>
|
|
</xsl:for-each>
|
|
</xsl:variable>
|
|
<img src="http://www.world66.com/community/mymaps/worldmap?visited={$codes}" width="200" height="100"/>
|
|
</td>
|
|
<td align="center">
|
|
<xsl:variable name="codes">
|
|
<xsl:for-each select="//@countries_most_spoken[../@supported = 'woody'] | //@countries_most_spoken[../@supported = 'potato']">
|
|
<xsl:value-of select="string()"/>
|
|
</xsl:for-each>
|
|
</xsl:variable>
|
|
<img src="http://www.world66.com/community/mymaps/worldmap?visited={$codes}" width="200" height="100"/>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="center">
|
|
Sarge
|
|
</td>
|
|
<td align="center">
|
|
<xsl:variable name="codes">
|
|
<xsl:for-each select="//@countries_official[../@supported = 'sarge'] | //@countries_official[../@supported = 'woody'] | //@countries_official[../@supported = 'potato']">
|
|
<xsl:value-of select="string()"/>
|
|
</xsl:for-each>
|
|
</xsl:variable>
|
|
<img src="http://www.world66.com/community/mymaps/worldmap?visited={$codes}" width="200" height="100"/>
|
|
</td>
|
|
<td align="center">
|
|
<xsl:variable name="codes">
|
|
<xsl:for-each select="//@countries_most_spoken[../@supported = 'sarge'] | //@countries_most_spoken[../@supported = 'woody'] | //@countries_most_spoken[../@supported = 'potato']">
|
|
<xsl:value-of select="string()"/>
|
|
</xsl:for-each>
|
|
</xsl:variable>
|
|
<img src="http://www.world66.com/community/mymaps/worldmap?visited={$codes}" width="200" height="100"/>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center">
|
|
Etch
|
|
</td>
|
|
<td align="center">
|
|
<xsl:variable name="codes">
|
|
<xsl:for-each select="//@countries_official[../@supported = 'etch'] | //@countries_official[../@supported = 'sarge'] | //@countries_official[../@supported = 'woody'] | //@countries_official[../@supported = 'potato']">
|
|
<xsl:value-of select="string()"/>
|
|
</xsl:for-each>
|
|
</xsl:variable>
|
|
<img src="http://www.world66.com/community/mymaps/worldmap?visited={$codes}" width="200" height="100"/>
|
|
</td>
|
|
<td align="center">
|
|
<xsl:variable name="codes">
|
|
<xsl:for-each select="//@countries_most_spoken[../@supported = 'etch'] | //@countries_most_spoken[../@supported = 'sarge'] | //@countries_most_spoken[../@supported = 'woody'] | //@countries_most_spoken[../@supported = 'potato']">
|
|
<xsl:value-of select="string()"/>
|
|
</xsl:for-each>
|
|
</xsl:variable>
|
|
<img src="http://www.world66.com/community/mymaps/worldmap?visited={$codes}" width="200" height="100"/>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="center">
|
|
Lenny
|
|
</td>
|
|
<td align="center">
|
|
<xsl:variable name="codes">
|
|
<xsl:for-each select="//@countries_official[../@supported = 'lenny'] | //@countries_official[../@supported = 'etch'] | //@countries_official[../@supported = 'sarge'] | //@countries_official[../@supported = 'woody'] | //@countries_official[../@supported = 'potato']">
|
|
<xsl:value-of select="string()"/>
|
|
</xsl:for-each>
|
|
</xsl:variable>
|
|
<img src="http://www.world66.com/community/mymaps/worldmap?visited={$codes}" width="200" height="100"/>
|
|
</td>
|
|
<td align="center">
|
|
<xsl:variable name="codes">
|
|
<xsl:for-each select="//@countries_most_spoken[../@supported = 'lenny'] | //@countries_most_spoken[../@supported = 'etch'] | //@countries_most_spoken[../@supported = 'sarge'] | //@countries_most_spoken[../@supported = 'woody'] | //@countries_most_spoken[../@supported = 'potato']">
|
|
<xsl:value-of select="string()"/>
|
|
</xsl:for-each>
|
|
</xsl:variable>
|
|
<img src="http://www.world66.com/community/mymaps/worldmap?visited={$codes}" width="200" height="100"/>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="center">
|
|
Squeeze
|
|
</td>
|
|
<td align="center">
|
|
<xsl:variable name="codes">
|
|
<xsl:for-each select="//@countries_official[../@supported = 'squeeze'] | //@countries_official[../@supported = 'lenny'] | //@countries_official[../@supported = 'etch'] | //@countries_official[../@supported = 'sarge'] | //@countries_official[../@supported = 'woody'] | //@countries_official[../@supported = 'potato']">
|
|
<xsl:value-of select="string()"/>
|
|
</xsl:for-each>
|
|
</xsl:variable>
|
|
<img src="http://www.world66.com/community/mymaps/worldmap?visited={$codes}" width="200" height="100"/>
|
|
</td>
|
|
<td align="center">
|
|
<xsl:variable name="codes">
|
|
<xsl:for-each select="//@countries_most_spoken[../@supported = 'squeeze'] | //@countries_most_spoken[../@supported = 'lenny'] | //@countries_most_spoken[../@supported = 'etch'] | //@countries_most_spoken[../@supported = 'sarge'] | //@countries_most_spoken[../@supported = 'woody'] | //@countries_most_spoken[../@supported = 'potato']">
|
|
<xsl:value-of select="string()"/>
|
|
</xsl:for-each>
|
|
</xsl:variable>
|
|
<img src="http://www.world66.com/community/mymaps/worldmap?visited={$codes}" width="200" height="100"/>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="center">
|
|
Wheezy
|
|
</td>
|
|
<td align="center">
|
|
<xsl:variable name="codes">
|
|
<xsl:for-each select="/@countries_official[../@supported = 'wheezy'] | //@countries_official[../@supported = 'squeeze'] | //@countries_official[../@supported = 'lenny'] | //@countries_official[../@supported = 'etch'] | //@countries_official[../@supported = 'sarge'] | //@countries_official[../@supported = 'woody'] | //@countries_official[../@supported = 'potato']">
|
|
<xsl:value-of select="string()"/>
|
|
</xsl:for-each>
|
|
</xsl:variable>
|
|
<img src="http://www.world66.com/community/mymaps/worldmap?visited={$codes}" width="200" height="100"/>
|
|
</td>
|
|
<td align="center">
|
|
<xsl:variable name="codes">
|
|
<xsl:for-each select="/@countries_most_spoken[../@supported = 'wheezy'] | //@countries_most_spoken[../@supported = 'squeeze'] | //@countries_most_spoken[../@supported = 'lenny'] | //@countries_most_spoken[../@supported = 'etch'] | //@countries_most_spoken[../@supported = 'sarge'] | //@countries_most_spoken[../@supported = 'woody'] | //@countries_most_spoken[../@supported = 'potato']">
|
|
<xsl:value-of select="string()"/>
|
|
</xsl:for-each>
|
|
</xsl:variable>
|
|
<img src="http://www.world66.com/community/mymaps/worldmap?visited={$codes}" width="200" height="100"/>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="center">
|
|
Future
|
|
</td>
|
|
<td align="center">
|
|
<xsl:variable name="codes">
|
|
<xsl:for-each select="//@countries_official">
|
|
<xsl:value-of select="string()"/>
|
|
</xsl:for-each>
|
|
</xsl:variable>
|
|
<img src="http://www.world66.com/community/mymaps/worldmap?visited={$codes}" width="200" height="100"/>
|
|
</td>
|
|
<td align="center">
|
|
<xsl:variable name="codes">
|
|
<xsl:for-each select="//@countries_most_spoken">
|
|
<xsl:value-of select="string()"/>
|
|
</xsl:for-each>
|
|
</xsl:variable>
|
|
<img src="http://www.world66.com/community/mymaps/worldmap?visited={$codes}" width="200" height="100"/>
|
|
</td>
|
|
</tr>
|
|
|
|
</table>
|
|
|
|
<p align="center"><strong><a href="http://www.debian.org/devel/debian-installer">Debian Installer</a> translators and translation teams</strong></p>
|
|
<p></p>
|
|
|
|
<table border="1">
|
|
<tr>
|
|
<th>Code</th>
|
|
<th>Language</th>
|
|
<th>Supported</th>
|
|
<th>Coordinator</th>
|
|
<th>Backup Coordinator</th>
|
|
<th>Number of Speakers (Ethnologue)</th>
|
|
<th>Number of Speakers (Ethnologue <em>corrected</em>)</th>
|
|
<th>Repository</th>
|
|
</tr>
|
|
<xsl:apply-templates/>
|
|
</table>
|
|
|
|
|
|
|
|
<p><strong>References:</strong></p>
|
|
<ul>
|
|
<li>
|
|
Number of speakers per language: <strong>Gordon,
|
|
Raymond G., Jr. (ed.), 2005.</strong> <em>Ethnologue: Languages of the World, Fifteenth
|
|
edition.</em> Dallas, Tex.: SIL International. Online version:
|
|
<a href="http://www.ethnologue.com/">http://www.ethnologue.com/</a>.
|
|
<br></br>
|
|
Please note that Ethnologue refers to a number of
|
|
<strong>native</strong> speakers of a given language. This
|
|
explains some very low numbers and also explains why, while we
|
|
are currently covering all major languages of the world, we
|
|
"only" cover less than 60% of the world population. Having
|
|
numbers for people who are completely literate in a given
|
|
language is far less easier and estimations often vary
|
|
considerably. For instance, English has an estimate of 300M up
|
|
to 500M "speakers" (310M for Ethnologue), depending on sources,
|
|
while French has 80M to 135M (Ethnologue gives a very low
|
|
number or 64M which is roughly the population of France
|
|
alone).
|
|
</li>
|
|
<li>
|
|
<em>Corrected</em> number of speakers: above data <em>corrected</em>
|
|
by Debian Installer developers when they feel it to be
|
|
badly representing reality.
|
|
</li>
|
|
<li>
|
|
World population: <a href="http://www.geohive.com">www.geohive.com</a> as of 2011-04-21
|
|
</li>
|
|
<li>
|
|
Maps: <a href="http://www.world66.com/myworld66/visitedCountries">Visited countries</a>
|
|
</li>
|
|
<li>
|
|
XSL Transform wizardry courtesy of Eugeniy Meshcheryakov
|
|
</li>
|
|
<li>
|
|
Data collected by Christian Perrier
|
|
</li>
|
|
</ul>
|
|
</body>
|
|
</html>
|
|
</xsl:template>
|
|
|
|
<xsl:template match="language_entry">
|
|
<tr>
|
|
<td><xsl:value-of select="@code"/></td>
|
|
<xsl:choose>
|
|
<xsl:when test="string-length(@team_email)">
|
|
<td><a href="mailto:{@team_email}"><xsl:value-of select="@english_name"/></a></td>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<td><xsl:value-of select="@english_name"/></td>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
<td>
|
|
<xsl:choose>
|
|
<xsl:when test="@supported = 'true'">
|
|
SUPPORTED
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:value-of select="@nlp_step"/> 
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</td>
|
|
<td>
|
|
<xsl:if test="string-length(@coord_name)">
|
|
<xsl:value-of select="@coord_name"/>
|
|
</xsl:if>
|
|
 
|
|
</td>
|
|
<td>
|
|
<xsl:if test="string-length(@bkp_coord_name)">
|
|
<xsl:value-of select="@bkp_coord_name"/>
|
|
</xsl:if>
|
|
 
|
|
</td>
|
|
<td><xsl:value-of select="@speakers"/> </td>
|
|
<td><xsl:value-of select="@speakers_corr"/> </td>
|
|
<td><xsl:value-of select="@team_repository"/> </td>
|
|
</tr>
|
|
</xsl:template>
|
|
</xsl:transform>
|
|
|