mirror of
https://github.com/mayswind/ezbookkeeping.git
synced 2026-05-19 09:14:27 +08:00
code refactor
This commit is contained in:
+63
-51
@@ -533,6 +533,60 @@ function getDisplayCurrency(value, currencyCode, notConvertValue, translateFn) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getLocalizedError(error) {
|
||||||
|
if (error.errorCode === apiNotFoundErrorCode && specifiedApiNotFoundErrors[error.path]) {
|
||||||
|
return {
|
||||||
|
message: `${specifiedApiNotFoundErrors[error.path].message}`
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
if (error.errorCode !== validatorErrorCode) {
|
||||||
|
return {
|
||||||
|
message: `error.${error.errorMessage}`
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
for (let i = 0; i < parameterizedErrors.length; i++) {
|
||||||
|
const errorInfo = parameterizedErrors[i];
|
||||||
|
const matches = error.errorMessage.match(errorInfo.regex);
|
||||||
|
|
||||||
|
if (matches && matches.length === errorInfo.parameters.length + 1) {
|
||||||
|
return {
|
||||||
|
message: `parameterizedError.${errorInfo.localeKey}`,
|
||||||
|
parameters: errorInfo.parameters.map((param, index) => {
|
||||||
|
return {
|
||||||
|
key: param.field,
|
||||||
|
localized: param.localized,
|
||||||
|
value: matches[index + 1]
|
||||||
|
}
|
||||||
|
})
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
message: `error.${error.errorMessage}`
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
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 setLanguage(i18nGlobal, locale, force) {
|
function setLanguage(i18nGlobal, locale, force) {
|
||||||
if (!locale) {
|
if (!locale) {
|
||||||
locale = getDefaultLanguage();
|
locale = getDefaultLanguage();
|
||||||
@@ -636,7 +690,7 @@ export function getI18nOptions() {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
export function transateIf(text, isTranslate, translateFn) {
|
export function translateIf(text, isTranslate, translateFn) {
|
||||||
if (isTranslate) {
|
if (isTranslate) {
|
||||||
return translateFn(text);
|
return translateFn(text);
|
||||||
}
|
}
|
||||||
@@ -644,58 +698,16 @@ export function transateIf(text, isTranslate, translateFn) {
|
|||||||
return text;
|
return text;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getLocalizedError(error) {
|
export function translateError(message, translateFn) {
|
||||||
if (error.errorCode === apiNotFoundErrorCode && specifiedApiNotFoundErrors[error.path]) {
|
let parameters = {};
|
||||||
return {
|
|
||||||
message: `${specifiedApiNotFoundErrors[error.path].message}`
|
if (message && message.error) {
|
||||||
};
|
const localizedError = getLocalizedError(message.error);
|
||||||
|
message = localizedError.message;
|
||||||
|
parameters = getLocalizedErrorParameters(localizedError.parameters, translateFn);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (error.errorCode !== validatorErrorCode) {
|
return translateFn(message, parameters);
|
||||||
return {
|
|
||||||
message: `error.${error.errorMessage}`
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
for (let i = 0; i < parameterizedErrors.length; i++) {
|
|
||||||
const errorInfo = parameterizedErrors[i];
|
|
||||||
const matches = error.errorMessage.match(errorInfo.regex);
|
|
||||||
|
|
||||||
if (matches && matches.length === errorInfo.parameters.length + 1) {
|
|
||||||
return {
|
|
||||||
message: `parameterizedError.${errorInfo.localeKey}`,
|
|
||||||
parameters: errorInfo.parameters.map((param, index) => {
|
|
||||||
return {
|
|
||||||
key: param.field,
|
|
||||||
localized: param.localized,
|
|
||||||
value: matches[index + 1]
|
|
||||||
}
|
|
||||||
})
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return {
|
|
||||||
message: `error.${error.errorMessage}`
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export function i18nFunctions(i18nGlobal) {
|
export function i18nFunctions(i18nGlobal) {
|
||||||
|
|||||||
+3
-22
@@ -2,24 +2,13 @@ import { f7, f7ready } from 'framework7-vue';
|
|||||||
|
|
||||||
import fontConstants from '@/consts/font.js';
|
import fontConstants from '@/consts/font.js';
|
||||||
import settings from './settings.js';
|
import settings from './settings.js';
|
||||||
import {
|
import { translateError } from './i18n.js';
|
||||||
getLocalizedError,
|
|
||||||
getLocalizedErrorParameters
|
|
||||||
} from './i18n.js';
|
|
||||||
|
|
||||||
export function showAlert(message, confirmCallback, translateFn) {
|
export function showAlert(message, confirmCallback, translateFn) {
|
||||||
let parameters = {};
|
|
||||||
|
|
||||||
if (message && message.error) {
|
|
||||||
const localizedError = getLocalizedError(message.error);
|
|
||||||
message = localizedError.message;
|
|
||||||
parameters = getLocalizedErrorParameters(localizedError.parameters, s => translateFn(s));
|
|
||||||
}
|
|
||||||
|
|
||||||
f7ready((f7) => {
|
f7ready((f7) => {
|
||||||
f7.dialog.create({
|
f7.dialog.create({
|
||||||
title: translateFn('global.app.title'),
|
title: translateFn('global.app.title'),
|
||||||
text: translateFn(message, parameters),
|
text: translateError(message, translateFn),
|
||||||
animate: settings.isEnableAnimate(),
|
animate: settings.isEnableAnimate(),
|
||||||
buttons: [
|
buttons: [
|
||||||
{
|
{
|
||||||
@@ -52,17 +41,9 @@ export function showConfirm(message, confirmCallback, cancelCallback, translateF
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function showToast(message, timeout, translateFn) {
|
export function showToast(message, timeout, translateFn) {
|
||||||
let parameters = {};
|
|
||||||
|
|
||||||
if (message && message.error) {
|
|
||||||
const localizedError = getLocalizedError(message.error);
|
|
||||||
message = localizedError.message;
|
|
||||||
parameters = getLocalizedErrorParameters(localizedError.parameters, s => translateFn(s));
|
|
||||||
}
|
|
||||||
|
|
||||||
f7ready((f7) => {
|
f7ready((f7) => {
|
||||||
f7.toast.create({
|
f7.toast.create({
|
||||||
text: translateFn(message, parameters),
|
text: translateError(message, translateFn),
|
||||||
position: 'center',
|
position: 'center',
|
||||||
closeTimeout: timeout || 1500
|
closeTimeout: timeout || 1500
|
||||||
}).open();
|
}).open();
|
||||||
|
|||||||
+2
-2
@@ -78,7 +78,7 @@ import settings from '@/lib/settings.js';
|
|||||||
import userstate from '@/lib/userstate.js';
|
import userstate from '@/lib/userstate.js';
|
||||||
import {
|
import {
|
||||||
getI18nOptions,
|
getI18nOptions,
|
||||||
transateIf,
|
translateIf,
|
||||||
i18nFunctions
|
i18nFunctions
|
||||||
} from '@/lib/i18n.js';
|
} from '@/lib/i18n.js';
|
||||||
import {
|
import {
|
||||||
@@ -188,7 +188,7 @@ app.config.globalProperties.$buildTime = version.getBuildTime();
|
|||||||
|
|
||||||
app.config.globalProperties.$settings = settings;
|
app.config.globalProperties.$settings = settings;
|
||||||
app.config.globalProperties.$locale = i18nFunctions(i18n.global);
|
app.config.globalProperties.$locale = i18nFunctions(i18n.global);
|
||||||
app.config.globalProperties.$tIf = (text, isTranslate) => transateIf(text, isTranslate, i18n.global.t);
|
app.config.globalProperties.$tIf = (text, isTranslate) => translateIf(text, isTranslate, i18n.global.t);
|
||||||
|
|
||||||
app.config.globalProperties.$alert = (message, confirmCallback) => showAlert(message, confirmCallback, i18n.global.t);
|
app.config.globalProperties.$alert = (message, confirmCallback) => showAlert(message, confirmCallback, i18n.global.t);
|
||||||
app.config.globalProperties.$confirm = (message, confirmCallback, cancelCallback) => showConfirm(message, confirmCallback, cancelCallback, i18n.global.t);
|
app.config.globalProperties.$confirm = (message, confirmCallback, cancelCallback) => showConfirm(message, confirmCallback, cancelCallback, i18n.global.t);
|
||||||
|
|||||||
Reference in New Issue
Block a user