I would suggest taking a look at a couple of different things: Sphinx and Pandoc that between them will give you a good workflow.
Sphinx Documentation Generator
Your documentation would normally be stored as ReStructured Text, (good news rst works well with version control systems) and the documentation for a given output format generated from that with the appropriate language set. Sphinx can produce output documents in any of HTML (including Windows HTML Help), LaTeX (for printable PDF versions), ePub, Texinfo, manual pages or plain text.
As the section on internationalisation explains Sphinx can be used to generate from both your code and your source documents a set of .pot
gettext files these can be used to generate a set of .po
files to give to the translators for the differing languages.
The diagram from that section makes things clearer:
The .po
files are then compiled into locale specific .mo
files which are then picked up by another run of Sphinx to generate your final document in the selected language(s). Any text fragments that do not have translations will appear in the original language.
(N.B. These same .mo files can be used by your programs to use gettext internationalisation of your programs with the translations coming "free" from the documentation project.)
Some of the text will be output directly from Sphinx but as you can see here Sphinx internally generated text can be set to any of:
- bn – Bengali
- ca – Catalan
- cs – Czech
- da – Danish
- de – German
- en – English
- es – Spanish
- et – Estonian
- eu – Basque
- fa – Iranian
- fi – Finnish
- fr – French
- he – Hebrew
- hr – Croatian
- hu – Hungarian
- id – Indonesian
- it – Italian
- ja – Japanese
- ko – Korean
- lt – Lithuanian
- lv – Latvian
- mk – Macedonian
- nb_NO – Norwegian Bokmal
- ne – Nepali
- nl – Dutch
- pl – Polish
- pt_BR – Brazilian Portuguese
- pt_PT – European Portuguese
- ru – Russian
- si – Sinhala
- sk – Slovak
- sl – Slovenian
- sv – Swedish
- tr – Turkish
- uk_UA – Ukrainian
- vi – Vietnamese
- zh_CN – Simplified Chinese
- zh_TW – Traditional Chinese
- the list is growing all of the time.
Also, Sphinx will try to substitute individual paragraphs from your documents with the translation sets obtained from locale_dirs. In the LaTeX builder, a suitable language will be selected as an option for the Babel package.
Pandoc - Document Conversion.
You may need a way to translate your original documents to ReStructured Text to prepare them as your inputs and you may also need additional output formats for this I would suggest Pandoc.
Pandoc can convert documents in markdown, reStructuredText, textile, HTML, DocBook, LaTeX, MediaWiki markup, OPML, Emacs Org-Mode, Txt2Tags, Microsoft Word docx, EPUB, or Haddock markup to:
- HTML formats: XHTML, HTML5, and HTML slide shows using Slidy, reveal.js, Slideous, S5, or DZSlides.
- Word processor formats: Microsoft Word docx, OpenOffice/LibreOffice ODT, OpenDocument XML
- Ebooks: EPUB version 2 or 3, FictionBook2
- Documentation formats: DocBook, GNU TexInfo, Groff man pages, Haddock markup
- Page layout formats: InDesign ICML
- Outline formats: OPML
- TeX formats: LaTeX, ConTeXt, LaTeX Beamer slides
- PDF via LaTeX
- Lightweight markup formats: Markdown, reStructuredText, AsciiDoc, MediaWiki markup, DokuWiki markup, Emacs Org-Mode, Textile.
Costs
Both the above packages rely on python but it and both the above package are Free, Open Source packages that are released under the Python Licence/GPL/BSD so should be fine if you are using them in a commercial environment but not selling them.