salix/print/core/mixins/user-locale.js

29 lines
748 B
JavaScript

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);