File indexing completed on 2024-12-22 05:24:06

0001 <?php
0002 include("i18n.inc");
0003 $page_title = vpt_("page title", "Pology — The Study of PO");
0004 include("header.inc");
0005 
0006 $rooturl = sprintf("http://%s%s",
0007                    $_SERVER["SERVER_NAME"],
0008                    dirname($_SERVER["PHP_SELF"]));
0009 
0010 // ========================================
0011 t_("<h1>Pology — The Study of PO</h1>");
0012 
0013 t_("<p class='first'>Pology is a Python library and collection of command-line tools for in-depth processing of PO files, the translation file format of the <a href='%s'>GNU Gettext</a> software translation system. Pology functionality ranges from precision operations on individual PO messages, to cross-file operations on large collections of PO files.</p>",
0014    "http://www.gnu.org/s/gettext/");
0015 
0016 t_("<p>A distinguishing aspect of Pology is that no attempt is made to handle arbitrary translation file formats, as is typical of many translation tools. Pology can thus take advantage not only of all technical aspects of the PO format, but also of the established conventions and workflows revolving around it and Gettext in general. This focus is present on all levels, from the end-user commands to the library file format abstractions.</p>");
0017 
0018 // ========================================
0019 t_("<h2>Elements</h2>");
0020 
0021 t_("<p class='first'>Some of the prominent elements of Pology functionality include:</p>".
0022    "<ul>%s</ul>", "\n".
0023    vt_("<li><p><em>Examination and in-place modification of collections of PO files</em> (the <code>posieve</code> command). Through unified batch-processing interface, various tools (\"sieves\") can be applied to messages in PO files.</p></li>")."\n".
0024    vt_("<li><p><em>Format-aware diffing and patching of PO files</em> (the <code>poediff</code> and <code>poepatch</code> commands). Line-oriented diffs/patches are rather inadequate for PO files, so Pology provides diffing and patching which specifically takes into account elements of the PO format.</p></li>")."\n".
0025    vt_("<li><p><em>Handling two or more translation branches</em> (the <code>posummit</code> command). When the software project has parallel or semi-parallel stable and development branches (or even more branches), \"summiting\" makes it possible for translators to always work on a single set of PO files, with modifications being automatically propagated to required branches.</p></li>")."\n".
0026    vt_("<li><p><em>Fine-grained asynchronous review workflow</em> (the <code>poascribe</code> command). Typical translation review workflow is split into stages (e.g. submit, review, approve, commit), which are handled by designated team members, and sometimes requires whole files to be reviewed at once. Pology instead provides fully asynchronous review process, where anyone can commit and review at any time, and reviews are recorded per PO message.</p></li>")."\n".
0027    vt_("<li><p><em>Custom translation validation</em>. Users can write validation rules for particular languages and projects, which can then be applied in various contexts (e.g. through <code>posieve</code> or <code>posummit</code> commands). Pology distribution contains internal validation rules for some languages and projects, and more can be contributed at any time.</p></li>")."\n".
0028    vt_("<li><p><em>Language- and project-specific support</em>. Many elements of Pology are ready to accept specific support for different languages, and different translation projects (\"environments\") within one language. This includes, for example, spelling dictionaries, translation validation rules, and library modules.</p></li>")."\n");
0029 
0030 // ========================================
0031 t_("<h2>Availability</h2>");
0032 
0033 $relfile = "pology-0.13.tar.bz2";
0034 
0035 $reldir = "release";
0036 t_("<p class='first'>Latest release can be downloaded from here:</p>".
0037    "<div class='inset'><p><a href='%s'><code>%s</code></a></p></div>".
0038    "<p class='cont'>Older releases can be found in the <a href='%s'><code>%s</code></a> directory.</p>",
0039    sprintf("%s/%s/%s", $rooturl, $reldir, $relfile), $relfile,
0040    sprintf("%s/%s/", $rooturl, $reldir), sprintf("%s/", $reldir));
0041 
0042 $repourl_dvl = "https://invent.kde.org/sdk/pology.git";
0043 $webrepourl_dvl = "https://invent.kde.org/sdk/pology";
0044 t_("<p>Latest development code can be obtained from a Git repository:</p>".
0045    "<div class='inset'><p><code>git clone %s</code></p></div>".
0046    "<p class='cont'>or browsed through a <a href='%s'>web interface</a>.</p>",
0047    $repourl_dvl, $webrepourl_dvl);
0048 
0049 t_("<p>Pology has been mostly tested on GNU/Linux-based operating systems. The software which Pology depends on, as well as most of the optional software for additional functionality, is already packaged on these platforms. Pology has been reported to run on contemporary Windows systems, albeit from the source tree only and likely with some reduction in functionality.</p>");
0050 
0051 $lcurl = "http://www.gnu.org/copyleft/gpl.html";
0052 t_("<p>Pology is distributed under the terms of <a href='%s'>GNU GPL, version 3</a>.</p>",
0053     $lcurl);
0054 
0055 // ========================================
0056 t_("<h2>Documentation</h2>");
0057 
0058 $lang = "en_US"; # FIXME: Detect from user.
0059 
0060 $manurl_chunk = path_for_lang(sprintf("%s/doc/user/%%s/index.html", $rooturl),
0061                               $lang);
0062 $manurl_mono = path_for_lang(sprintf("%s/doc/user/%%s/index-mono.html", $rooturl),
0063                              $lang);
0064 t_("<p class='first'>The user manual is contained in the Pology distribution, and it will be built from the source if all documentation-generation dependencies are satisfied. The user manual for latest Pology release is available on-line:</p>".
0065    "<div class='inset'>".
0066    "<p><a href='%s'>HTML — one page per chapter</a></p>".
0067    "<p><a href='%s'>HTML — everything on single page</a></p>".
0068    "</div>",
0069    $manurl_chunk, $manurl_mono);
0070 
0071 $langmans = array(
0072     "sr" => vpt_("language", "Serbian"),
0073 );
0074 $langmansfmt = array();
0075 foreach ($langmans as $lc => $ln) {
0076     $langmanurl_chunk = sprintf("%s/doc/lang/%s/%s/index.html",
0077                                 $rooturl, $lc, $lc);
0078     $langmanurl_mono = sprintf("%s/doc/lang/%s/%s/index-mono.html",
0079                                $rooturl, $lc, $lc);
0080     $langmansfmt[] = vpt_("language manual, one chapter by page ".
0081                           "or all on single page",
0082                           "%s <a href='%s'>by chapter</a>/".
0083                           "<a href='%s'>single page</a>",
0084                           $ln, $langmanurl_chunk, $langmanurl_mono);
0085 }
0086 $langmanfmt = implode($listsep, $langmansfmt);
0087 t_("<p>There are separate user manuals describing language-specific functionality in Pology (written in corresponding languages). They are available on-line as follows: %s.</p>",
0088    $langmanfmt);
0089 
0090 $apiurl_curr = path_for_lang(sprintf("%s/doc/api/%%s/index.html", $rooturl),
0091                              $lang);
0092 t_("<p>For programming with Pology, the API reference is included in the distribution. The online version for the latest Pology release is here:</p>".
0093    "<div class='inset'><p><a href='%s'>HTML — one page per node</a></p></div>",
0094    $apiurl_curr);
0095 
0096 // ========================================
0097 t_("<h2>Contact</h2>");
0098 
0099 $mlurl = "http://lists.nedohodnik.net/listinfo.cgi/pology-nedohodnik.net";
0100 t_("<p class='first'>At the moment, all communication should be directed to the <a href='%s'>Pology mailing list</a>. This includes questions about usage, development discussion, and bug reports. You do not need to be subscribed to post to the list, but expect some moderation delay in that case.</p>",
0101    $mlurl);
0102 
0103 $mntemail = "caslav.ilic@gmx.net";
0104 t_("<p>Pology maintainer can also be reached directly at: <a href='mailto:Chusslove Illich &lt;%s&gt;'>Chusslove Illich &lt;<code>%s</code>&gt;</a>.</p>",
0105    $mntemail, $mntemail);
0106 
0107 // ========================================
0108 include("footer.inc");
0109 ?>