Skip to main content

Provides Babel extractors and translation methods for OCDS documentation

Project description

PyPI Version Build Status Coverage Status Python Version

This Python package provides Babel extractors and translation methods for OCDS documentation.

Examples

Babel extractors

Babel extractors can be specified in configuration files. For example:

[ocds_codelist: schema/*/codelists/*.csv]

in babel_ocds_codelist.cfg, or:

[ocds_schema: schema/*/*-schema.json]

in babel_ocds_schema.cfg.

Translation methods

In the Sphinx build configuration file (conf.py), you can use translate to translate codelist CSV files and JSON Schema files:

import os
from glob import glob
from pathlib import Path

from ocds_babel.translate import translate


def setup(app):
    basedir = Path(os.path.realpath(__file__)).parents[1]
    localedir = basedir / 'locale'
    language = app.config.overrides.get('language', 'en')

    translate([
        (glob(str(basedir / 'schema' / '*-schema.json')), basedir / 'build' / language, 'schema'),
        (glob(str(basedir / 'schema' / 'codelists')), basedir / 'build' / language, 'codelists'),
    ], localedir, language)

translate automatically determines the translation method to used based on filenames. The arguments to translate are:

  1. A list of tuples. Each tuple has three values:

    1. Input files (a list of paths of files to translate)

    2. Output directory (the path of the directory in which to write translated files)

    3. Gettext domain (the filename without extension of the message catalog to use)

  2. Locale directory (the path of the directory containing message catalog files)

  3. Target language (the code of the language to translate to)

  4. Optional keyword arguments to replace {{marker}} markers with values, e.g. version='1.1'

Methods are also available for translating extension.json and for translating Markdown-to-Markdown.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page