Coder Social home page Coder Social logo

mattwang44 / poglossary Goto Github PK

View Code? Open in Web Editor NEW
1.0 2.0 1.0 48 KB

A CLI tool that scans through .po files and searches for mistranslated terms based on user-defined glossary mapping

Home Page: https://pypi.org/project/poglossary

License: MIT License

Python 100.00%
python translation cli portable-object translator-tool typer-cli

poglossary's Introduction

poglossary

Python PyPI

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 key patterns or rst_tags as 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:

image

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.

poglossary's People

Contributors

mattwang44 avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Forkers

josix

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.