https://github.com/mattwang44/poglossary
A CLI tool that scans through .po files and searches for mistranslated terms based on user-defined glossary mapping
https://github.com/mattwang44/poglossary
cli portable-object python translation translator-tool typer-cli
Last synced: 3 months ago
JSON representation
A CLI tool that scans through .po files and searches for mistranslated terms based on user-defined glossary mapping
- Host: GitHub
- URL: https://github.com/mattwang44/poglossary
- Owner: mattwang44
- License: mit
- Created: 2022-01-10T05:58:00.000Z (over 3 years ago)
- Default Branch: dev
- Last Pushed: 2024-04-25T06:13:40.000Z (about 1 year ago)
- Last Synced: 2025-01-27T14:55:26.472Z (5 months ago)
- Topics: cli, portable-object, python, translation, translator-tool, typer-cli
- Language: Python
- Homepage: https://pypi.org/project/poglossary
- Size: 57.6 KB
- Stars: 1
- Watchers: 2
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# poglossary
[](https://badge.fury.io/py/poglossary)
[](https://badge.fury.io/py/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)](https://github.com/python/python-docs-zh-tw) but can be applied for all translation projects that adopt Portable Object files (`.po`).
## Install
To install the current release:
```sh
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.
```sh
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 key `patterns` or `rst_tags` as the example below.```yml
# 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](./poglossary.example.yml) (, which is the config tend to be used in [pydoc-zhtw](https://github.com/python/python-docs-zh-tw)).
### Command
```shell
poglossary
````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](https://github.com/afpy/poutils) and [translate toolkit](https://github.com/translate/translate).