<html>
<head>
<link rel=stylesheet type="text/css" href="style.css" title="style">
<title>
man-pages translations
</title>
</head>

<body>

<!--BEGIN-LINKS-->
<form method="get" action="http://www.google.com/search">
<table border=0 cellpadding=0 cellspacing=0 width="100%">
<tr>
<td align="left">
<font size="-1">

Linux <em>man-pages</em>: &nbsp;
<a href="./index.html">home</a> | 
<a href="./contributing.html">contributing</a> | 
<a href="./reporting_bugs.html">bugs</a> | 
<a href="./patches.html">patches</a> | 
<a href="./download.html">download</a> &nbsp; || &nbsp; 
<a href="http://man7.org/linux/man-pages/index.html">online pages</a></font>
</td>
<td align="right">
<input type="text" name="q" size=10 maxlength=255 value="">
<input type="hidden" name="sitesearch" value="man7.org/linux/man-pages">
<input type="submit" name="sa" value="Search online pages">
</td>
</tr>
</table>
</form>
<!--END-LINKS-->


<h1><em>man-pages</em> translations</h1>

<p>
    If you are thinking about translating <em>man-pages</em>,
    you might want to take a look at
    <a href="http://linux-man-pages.blogspot.com/2008/08/translating-man-pages.html">some of my quick thoughts on the subject</a>.
</p>

<p>
    Andries Brouwer has a
    <a href="http://www.win.tue.nl/~aeb/linux/man/index.html">page</a>
    that lists various translation projects for <em>man-pages</em>.
    However, by now many of the links on that page are broken,
    and many of the remaining links point to projects that seem to provide
    translations of just a portion of the pages in <em>man-pages</em>,
    or which are updated only sporadically, or not at all.
</p>

<p>
    The table below lists translation projects that
    I have some details about.
    I'll add to it if/when I get details from other projects.
</p>
<br>
<br>

<table border=1 cellpadding=3 cellspacing=0>
    <tr>
        <td align="center">
            <strong>Language</strong>
        </td>
        <td align="center">
            <strong>Description</strong>
        </td>
        <td align="center">
            <strong>Status</strong>
        </td>
    </tr>

    <tr>
        <td>
            French
        </td>
        <td>
            The currently active French translation is maintained
	    within the perkamon project.
            It is based on extraordinary earlier translation work
	    performed by two individuals,
            <a href="http://www.blaess.fr/christophe/">Christophe Blaess</a>
            and
            <a href="http://manpagesfr.free.fr/">Alain Portal</a>.
            Information (French only) and downloads are available at
            <a href="http://traduc.org/perkamon/">http://traduc.org/perkamon/</a>.
            The workflow used by the French translation team
	    can easily be adapted to
            other languages, see information (in English) at
            <a href="http://perkamon.alioth.debian.org/">http://perkamon.alioth.debian.org/</a>.
        </td>
        <td>
            Active as at Jan 2014.
        </td>
    </tr>
    <tr>
        <td>
            German
        </td>
        <td>
            The Debian project is using
	    <a href="http://po4a.alioth.debian.org/">po4a</a>
            to update the German translation of <em>man-pages</em>.
            Information and downloads are available at
            <a href="http://alioth.debian.org/projects/manpages-de/">http://alioth.debian.org/projects/manpages-de/</a>.
        </td>
        <td>
            Active as at Jan 2014.
        </td>
    </tr>

    <tr>
        <td>
            Italian
        </td>
        <td>
            L'Italian Linux Documentation Project (ILDP) si occupa
            della traduzione in italiano delle pagine di manuale
            contenute nel pacchetto man-pages mantenuto da Michael Kerrisk,
            ma anche di tutte le altre pagine di manuale solitamente
            distribuite insieme ai relativi software.

            Attualmente le pagine tradotte sono solo una piccola parte del
            totale. Per dare una mano potete fare riferimento al sito
            <a href="http://www.pluto.it">http://www.pluto.it</a>,
            in particolare alle pagine:
            <a href="http://www.pluto.it/ildp">http://www.pluto.it/ildp</a>
            e
            <a href="http://www.pluto.it/ildp/collaborare/">http://www.pluto.it/ildp/collaborare/</a>.

            La versione piu' aggiornata di queste pagine e' scaricabile
            all'indirizzo
            <a href="ftp://ftp.pluto.it/pub/pluto/ildp/man">ftp://ftp.pluto.it/pub/pluto/ildp/man</a>.

            Per correzioni, aggiunte e problemi potete scrivere a Elisa,
	    all'indirizzo lab-AT-kkk.it:
            per i complimenti invece scrivete alla lista,
	    all'indirizzo pluto-ildp-AT-lists.pluto.it :-)
        <br>
        <br>

            The Italian Linux Documentation Project (ILDP) takes care
            of the translation into Italian of both the man pages contained
            in the <em>man-pages</em> package, maintained by Michael Kerrisk,
            and of the man pages not included in this package,
            that are usually distributed together with the program
            they belong to.

            Until now we have a small number of pages translated.
            If you want to participate in the ILDP, you can refer to
            <a href="http://www.pluto.it">http://www.pluto.it</a>,
            in particular to the following web pages: 
            <a href="http://www.pluto.it/ildp">http://www.pluto.it/ildp</a>
            and
            <a href="http://www.pluto.it/ildp/collaborare/">http://www.pluto.it/ildp/collaborare/</a>.

            You can download the latest version of the Italian man pages from
            <a href="ftp://ftp.pluto.it/pub/pluto/ildp/man">ftp://ftp.pluto.it/pub/pluto/ildp/man</a>.

            Please send corrections, additions and communicate problems with
            the translated man pages to Elisa, lab-AT-kkk.it.
            If you want to congratulate for the well done job, you can write to
            our mailing list, at the address pluto-ildp-AT-lists.pluto.it :-)
        </td>
        <td>
            Active as at Jun 2008
        </td>
    </tr>

    <tr>
        <td>
            Russian
        </td>
        <td>
            <a href="http://man-pages-ru.sourceforge.net/index-en.html">http://man-pages-ru.sourceforge.net/index-en.html</a>
            <br>
            <a href="http://man-pages-ru.sourceforge.net/">http://man-pages-ru.sourceforge.net/</a>
        </td>
        <td>
            Active as at 2011
        </td>
    </tr>
</table>


<!--BEGIN-STATCOUNTER-->
<!-- SITETRACKING.linux_man-pages -->
<!-- Start of StatCounter Code -->
<script type="text/javascript">
var sc_project=5618989;
var sc_invisible=1;
var sc_partition=60;
var sc_click_stat=1;
var sc_security="4f8507d7";
</script>

<script type="text/javascript"
src="http://www.statcounter.com/counter/counter.js"></script><noscript><div
class="statcounter"><a title="customisable counter"
href="http://www.statcounter.com/free_hit_counter.html"
target="_blank"><img class="statcounter"
src="http://c.statcounter.com/5618989/0/4f8507d7/1/" alt="customisable
counter" ></a></div></noscript>
<!-- End of StatCounter Code -->
<!--END-STATCOUNTER-->
</body>
</html>
