mmdzanata

Tools for working with translations of modulemd


License
MIT
Install
pip install mmdzanata==0.7

Documentation

mmdzanata

Prerequisites

To install on Fedora 28+, run:

dnf install libmodulemd koji zanata-client

Installation

With the prerequisites installed, the latest version can be installed with pip install mmdzanata or on Fedora 28+ with dnf install mmdzanata (recommended).

CLI Usage

Zanata Client Setup

Use of the upload feature for string extraction requires setting up the Zanata client appropriately. Follow the instructions from Zanata to set up your ~/.config/zanata.ini file appropriately. Note that you will want to do this against https://fedora.zanata.org and not https://translate.zanata.org

Extract Translatable Strings

To extract translatable strings from modules for a particular Fedora release (e.g. f29):

mmdzanata --branch f29 extract [--upload]

This will read all of the module metadata from the Koji build-system and convert the translatable strings to a Zanata-compatible gettext document. If --upload is passed, it will also attempt to use the zanata-cli tool to upload the strings to the Zanata server. See the "Zanata Client Setup" section above for information on how to configure this.

Produce modulemd-translations YAML

To read the translated strings from Zanata and convert them into modulemd-translations YAML documents that can be included in repodata:

mmdzanata --branch f29 generate_modulemd

This will produce a YAML file in the current directory with all known translated strings.

API

mmdzanata

The mmdzanata class has two primary methods:

  • get_module_catalog_from_tags()
  • generate_metadata()

mmdzanata.get_module_catalog_from_tags()

This returns a babel.message.Catalog object containing all of the translatable strings from any module tagged with one of the passed tags.

mmmdzanata.generate_metadata()

This returns an iterable of modulemd-translation objects from the supplied Zanata project and branch.

mmdzanata.fedora

This class provides helper routines for dealing with translations in Fedora Modules.