为ocd或bod等标准提供babel提取器和翻译方法。
ocds-babel的Python项目详细描述
这个python包为诸如开放承包数据标准(ocd)或实益所有权数据标准(bods)等标准提供了Babel extractors和转换方法。
示例
巴别塔提取器
可以在配置文件中指定babel提取器。
对于OCD,您可以指定:
[ocds_codelist: schema/*/codelists/*.csv] headers = Title,Description,Extension ignore = currency.csv
在babel_ocds_codelist.cfg,和:
[ocds_schema: schema/*/*-schema.json]
在babel_ocds_schema.cfg中。
对于BOD,可以指定:
[ocds_codelist: schema/codelists/*.csv] headers = title,description,technical note
在babel_bods_codelist.cfg,和:
[ocds_schema: schema/*.json]
在babel_bods_schema.cfg中。
翻译方法
在sphinx构建配置文件(conf.py)中,可以使用translate
来转换代码列表csv文件和json架构文件:
importosfromglobimportglobfrompathlibimportPathfromocds_babel.translateimporttranslatedefsetup(app):basedir=Path(os.path.realpath(__file__)).parents[1]localedir=basedir/'locale'language=app.config.overrides.get('language','en')headers=['Title','Description','Extension']translate([(glob(str(basedir/'schema'/'*-schema.json')),basedir/'build'/language,'schema'),(glob(str(basedir/'schema'/'codelists')),basedir/'build'/language,'codelists'),],localedir,language,headers)
translate
根据文件名自动确定要使用的转换方法。translate
的参数是:
- 元组列表。每个元组有三个值:
- 输入文件(要翻译的文件路径列表)
- 输出目录(要在其中写入翻译文件的目录的路径)
- gettext域(不带要使用的消息目录扩展名的文件名)
- 区域设置目录(包含消息目录文件的目录的路径)
- 目标语言(要翻译的语言的代码)
- 用值替换{{marker}}标记的可选关键字参数,例如
version='1.1'
方法还可用于将extension.json转换和将标记转换为标记。如果是后者,则必须安装Sphinx 1.5.1,其中之一是:
pip install ocds-babel[markdown]
或:
pip install 'Sphinx==1.5.1'