Pology is a Python library and collection of command-line tools for in-depth processing of PO files, the translation file format of the GNU Gettext software translation system. Pology functionality ranges from precision operations on individual PO messages, to cross-file operations on large collections of PO files.
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.
Some of the prominent elements of Pology functionality include:
Examination and in-place modification of collections of PO files (the
posieve command). Through unified batch-processing interface, various tools ("sieves") can be applied to messages in PO files.
Format-aware diffing and patching of PO files (the
poepatch 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.
Handling two or more translation branches (the
posummit 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.
Fine-grained asynchronous review workflow (the
poascribe 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.
Custom translation validation. Users can write validation rules for particular languages and projects, which can then be applied in various contexts (e.g. through
posummit commands). Pology distribution contains internal validation rules for some languages and projects, and more can be contributed at any time.
Language- and project-specific support. 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.
Latest release can be downloaded from here:
Older releases can be found in the
Latest development code can be obtained from a Git repository:
git clone https://invent.kde.org/sdk/pology.git
or browsed through a web interface.
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.
Pology is distributed under the terms of GNU GPL, version 3.
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:
There are separate user manuals describing language-specific functionality in Pology (written in corresponding languages). They are available on-line as follows: Serbian by chapter/single page.
For programming with Pology, the API reference is included in the distribution. The online version for the latest Pology release is here:
At the moment, all communication should be directed to the Pology mailing list. 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.
Pology maintainer can also be reached directly at: Chusslove Illich <