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 <%s>'>Chusslove Illich <<code>%s</code>></a>.</p>", 0105 $mntemail, $mntemail); 0106 0107 // ======================================== 0108 include("footer.inc"); 0109 ?>