vue-i18n is the most robust and most used solution. It adds ~30KB to the minified js file size. Quite a lot, but all other solutions I saw look very weak in comparison to vue-i18n.
[ ] store user language in database, we need it if we wanted to localize e.g. mail messages we send to the user
[ ] localization of theme-specific menu and faq items
[ ] move hardcoded UI strings into localization files