Given that we are alright with using a build process for the style guide (T164246), we should consider using a static site generator. It will:
* Reduce repetition of markup - header, footer, parts of the sidebar
* Improve i18n support
* Remove the need to keep built files in the repo (we currently have just one btw)
|Name|Language|i18n support|File format|
|--|--|--|--|
|[[ https://middlemanapp.com/ | Middleman ]]|Ruby|Yes (falls back to the default language if there are no strings for the language it is looking for)|YAML or [[ https://middlemanapp.com/basics/template-engine-options/ | many others ]] ...even wiki markup (o_0) |
|[[ https://hexo.io/ | Hexo ]]|Node.js|Only for `layout`, not for `source`, which is not helpful to us (not sure about this, could someone test and update the task?). Couldn't get it to work though.|JSON or YAML|
|[[ https://webpack.js.org/ | Webpack ]] build ([[ https://webpack.js.org/loaders/html-loader/ | html-loader ]], [[ https://github.com/webpack-contrib/i18n-webpack-plugin | i18n-webpack-plugin]])|Node.js|Yes (no fallbacks, I am guessing this does a simple replace)|JSON|
|[[https://blog.getpelican.com/|Pelican]]|Python| [[http://docs.getpelican.com/en/3.6.3/content.html#translations|i18n for source (page content)]]; may be able to translate UI via Jinja-templates+passed parameter |YAML/Markdown/reStructuredText|
|[[ http://gohugo.io/documentation/ | Hugo ]]|Go|[[ https://gohugo.io/content-management/multilingual/#translation-of-strings | Yes ]] (uses [[https://github.com/nicksnyder/go-i18n | go-18n]])| [[https://gohugo.io/content-management/formats/ | Markdown and Org-mode]]|
|[[ https://jekyllrb.com/ | Jekyll ]]|Ruby| With plugins: [[ http://polyglot.untra.io/ | polyglot ]] or [[ https://github.com/Anthony-Gaudino/jekyll-multiple-languages-plugin | jekyll-multiple-languages-plugin ]] - note: not with gh-pages | Markdown |
|[[ https://www.gatsbyjs.org/ | Gatsby ]]|JavaScript| Yes. Content: with GraphQL query or with [[ https://www.gatsbyjs.org/packages/?=i18n | plugin ]]. UI: jQuery.i18 [[ https://github.com/wikimedia/InteractionTimeline/tree/master/client/src/components/i18n | bindings ]] for React or any other React i18n plugin | Plugins for: [[ https://www.gatsbyjs.org/packages/gatsby-transformer-remark/ | Markdown ]], [[ https://www.gatsbyjs.org/packages/gatsby-transformer-yaml/ | YAML ]], [[ https://www.gatsbyjs.org/packages/gatsby-transformer-json/ | JSON ]], [[ https://www.gatsbyjs.org/packages/gatsby-transformer-csv/ | CSV ]], etc. |
It shouldn't be too hard to get these to work with http://translatewiki.net/.