通过官方i18n流程, 实现文档中的代码段的汉化, 效果如下(4. More Control Flow Tools):

2018-04-27-python代码翻译演示

步骤

基于python官方3.6版文档cpython/Doc生成pot文件. 参考The build configuration file, 需要在Doc/conf.py中添加配置:

gettext_compact = False
gettext_additional_targets = ['literal-block']

如下命令在_build文件夹中生成pot文件, 如果不设置gettext_compact就不能生成对应路径结构(所有tutorial中文档的可翻译字段都在一个pot文件)

$ sphinx-build -M gettext . _build

如下命令生成对应po文件(参考Internationalization - Sphinx 1.8.0+ documentation):

$ sphinx-intl update -p _build/gettext -l zh

修改构建脚本: 实现代码段翻译. use gettext_additional_targets to translate code samples in … · nobodxbodon/docsbuild-scripts@68e7578)

按照README运行后, 即在www文件夹中生成汉化后的文档

相关代码库

文档构建脚本库: nobodxbodon/docsbuild-scripts

po文件库: nobodxbodon/python-docs-zh

生成的HTML演示库: nobodxbodon/py36zh

其他参考

Getting Started: Overview & Introduction to Concepts