poglossary
A CLI tool that scans through translation project (.po files) searching for mistranslated terms based on the user-defined glossary mapping.
This project is specially tailored for Python Documentation Translation Project (zh_TW) but can be applied for all translation projects that adopt Portable Object files (.po).
Install
To install the current release:
pip3 install poglossary
To update it to the latest version, add --upgrade flag to the above commands.
Run poglossary --help and you should see the following output if it's installed sucessfully.
poglossary --help
# Usage: poglossary [OPTIONS] [PATH] [CONFIG_FILE]
# poglossary: check translated content in .po files based on given translation
# mapping
# Arguments:
# [PATH] the path of the directory storing .po files [default: .]
# [CONFIG_FILE] input mapping file [default: ./poglossary.yml]
# Options:
# --excludes PATH the directories that need to be omitted
# --install-completion Install completion for the current shell.
# --show-completion Show completion for the current shell, to copy it or
# customize the installation.
# --help Show this message and exit.
Usage
Config File
A config file in YAML format is required for poglossary, only the following two keys are recognized:
glossary(required): A mapping of untrnaslated term to translated term. The value can be a list if it has multiple translation choices.ignore(optional): If skipping the checking for specific regex patterns or rST syntax is wanted, add the keypatternsorrst_tagsas the example below.
# Sample config file (.yml)
glossary:
exception: 例外
function: 函式
instance: 實例
type: # can be a list of possible translated terms of "type"
- 型別
- 種類
ignore:
patterns:
- "type code(s)?" # "type code" or "type codes" will be skipped
rst_tags:
- source # :source:`*` will be skipped
- class
- c:
- func # :c:func:`*` will be skipped
- data
or you can checkout a more detailed configuration in poglossary.example.yml (, which is the config tend to be used in pydoc-zhtw).
Command
poglossary <source_path> <config_file>
poglossary takes in two optional arguments:
source_path: It can be the path of the target PO file or a directory that stores PO files. Defaults to..config_file: The path of the config file. Defaults to./poglossary.yml.
The sample output is shown below:
Todo
- Functionality
- More handy parameters/options
- CI/CD
- Unit tests
- Config files
- Handle missing fields.
- Commands for creating a basic config file.
Acknowledge
poglossary is primarily inspired by those fantastic translator tools collected in poutils and translate toolkit.
Metadata
Release files for poglossary 0.1.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| poglossary-0.1.4.tar.gz | 7.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| poglossary-0.1.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 15.2 kB
Release files / poglossary-0.1.4.tar.gz
| Download URL | poglossary-0.1.4.tar.gz |
|---|---|
| Size | 7.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ba2a4f9e9c5a365f2c19bd2ed91ea247d7213299f8aa7065327d9977b401f60f
|
|
BLAKE2b-256 checksum How to use checksums |
1c26d5fddcea1761d4536c968505000b5fef9c40c2328a6a08a92b65cf7d6767
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.1.12 CPython/3.10.0 Linux/5.11.0-1027-azure
|
Release files / poglossary-0.1.4-py3-none-any.whl
| Download URL | poglossary-0.1.4-py3-none-any.whl |
|---|---|
| Size | 8.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
50f8fba1def2e62852c5a7f9fa66d79e5efd0a058989a70d3455074fd4c35b8e
|
|
BLAKE2b-256 checksum How to use checksums |
d4f466e16f63a8ae20d2240e908a72b6763ecaf9468b80f6e89d7715ecd14fdb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.1.12 CPython/3.10.0 Linux/5.11.0-1027-azure
|