Add first i18n features

This is a continuation of @clochix's pull request #520, with improvements to the initial code and all view content using translated strings from the dictionary. This allows all content to be set from the outside, as well as the central maintenance of the default content in `i18n.js`.