const Vue = require('vue'); const db = require('../database'); const config = require('../config'); const fallbackLocale = config.i18n.fallbackLocale; const userLocale = { async serverPrefetch() { if (this.clientId) this.locale = await this.getLocale(this.clientId); if (this.locale) this.$i18n.locale = this.locale; }, methods: { getLocale(clientId) { return db.findOne(` SELECT lang FROM account.user WHERE id = ?`, [clientId]).then(rows => { if (rows) return rows.lang; else return fallbackLocale; }); } }, props: ['clientId'] }; Vue.mixin(userLocale);