fix error message wrong in toast

This commit is contained in:
MaysWind
2020-11-12 23:41:41 +08:00
parent cc239f0405
commit 677a595e35
2 changed files with 29 additions and 14 deletions
+18
View File
@@ -183,6 +183,24 @@ export function getLocalizedError(error) {
};
}
export function getLocalizedErrorParameters(parameters, i18nFunc) {
let localizedParameters = {};
if (parameters) {
for (let i = 0; i < parameters.length; i++) {
const parameter = parameters[i];
if (parameter.localized) {
localizedParameters[parameter.key] = i18nFunc(`parameter.${parameter.value}`);
} else {
localizedParameters[parameter.key] = parameter.value;
}
}
}
return localizedParameters;
}
function getLocaleFromLanguageAlias(alias) {
for (let locale in allLanguages) {
if (!Object.prototype.hasOwnProperty.call(allLanguages, locale)) {
+11 -14
View File
@@ -12,7 +12,7 @@ import 'moment/min/locales';
import 'framework7/css/framework7.bundle.css';
import 'framework7-icons';
import { getAllLanguages, getLanguage, getDefaultLanguage, getI18nOptions, getLocalizedError } from './lib/i18n.js';
import { getAllLanguages, getLanguage, getDefaultLanguage, getI18nOptions, getLocalizedError, getLocalizedErrorParameters } from './lib/i18n.js';
import currency from './consts/currency.js';
import account from './consts/account.js';
import version from './lib/version.js';
@@ -78,18 +78,7 @@ Vue.prototype.$alert = function (message, confirmCallback) {
if (message && message.error) {
const localizedError = getLocalizedError(message.error);
message = localizedError.message;
if (localizedError.parameters) {
for (let i = 0; i < localizedError.parameters.length; i++) {
const parameter = localizedError.parameters[i];
if (parameter.localized) {
parameters[parameter.key] = i18n.t(`parameter.${parameter.value}`);
} else {
parameters[parameter.key] = parameter.value;
}
}
}
parameters = getLocalizedErrorParameters(localizedError.parameters, i18n.t);
}
this.$f7.dialog.create({
@@ -120,8 +109,16 @@ Vue.prototype.$confirm = function (message, confirmCallback, cancelCallback) {
}).open();
};
Vue.prototype.$toast = function (message, timeout) {
let parameters = {};
if (message && message.error) {
const localizedError = getLocalizedError(message.error);
message = localizedError.message;
parameters = getLocalizedErrorParameters(localizedError.parameters, i18n.t);
}
this.$f7.toast.create({
text: i18n.t(message),
text: i18n.t(message, parameters),
position: 'center',
closeTimeout: timeout || 1500
}).open();