First stab at #770 locales

I've just spent 7 hours working on this boring job, more are coming soon. This is just a first stab at adding locales for everything in the app.
We should use the `truncate` helper here instead of something custom like this.