translate yer docs¶
This repository translates yer docs into another language.
This uses the Google Cloud Translate API, pandoc, and the panflute library to create a translation filter for Markdown files.
See an example here: russian-rainbow-mind-machine (page contains documentation for the rainbow-mind-machine library translated into Russian).
Part 1: Google Cloud Translate API Setup¶
The Google Cloud Translate API is what makes this all possible.
It is easier to translate documentation into Russian than it is to figure out how to parse Markdown programmatically with panflute and pandocs.
Part 2: Pandoc¶
We want to parse and translate Markdown written in English, and turn it into Markdown written in Russian. We use pandoc to parse the Markdown file and identify the bits that can be translated, pass them to the Google Cloud Translate API, and convert the translated text back into Markdown.
Part 2A: Pandoc Parser: Markdown to JSON
Part 2B: Pandoc Parser: JSON to JSON
Part 3: Panflute¶
Panflute is a Python library for writing Pandoc filters. It is picky and tricky.
Part 3A: Panflute Filter: Translate
Part 3B: Panflute Filter: Dealing with Links and Headers
Part 4: Pandoc¶
The panflute filter will process JSON and return more JSON, so we have one last step, which is converting the final JSON document into Markdown.
Part 4: Pandoc Parser: JSON to Markdown
Part 5: Testing¶
You do want to write tests for all of this stuff, don't you?