feat: multi-language support

This commit is contained in:
vben
2020-11-26 21:10:21 +08:00
parent 4f8ad976cc
commit 19011296ed
76 changed files with 764 additions and 307 deletions

View File

@@ -1,7 +1,10 @@
import { useMessage } from '/@/hooks/web/useMessage';
import { userStore } from '/@/store/modules/user';
import { useI18n } from '/@/hooks/web/useI18n';
const { createMessage } = useMessage();
const { t } = useI18n('sys.api');
const error = createMessage.error!;
export function checkStatus(status: number, msg: string): void {
switch (status) {
@@ -12,39 +15,39 @@ export function checkStatus(status: number, msg: string): void {
// 未登录则跳转登录页面,并携带当前页面的路径
// 在登录成功后返回当前页面,这一步需要在登录页操作。
case 401:
error('用户没有权限(令牌、用户名、密码错误)!');
error(t('errMsg401'));
userStore.loginOut(true);
break;
case 403:
error('用户得到授权,但是访问是被禁止的。!');
error(t('errMsg403'));
break;
// 404请求不存在
case 404:
error('网络请求错误,未找到该资源!');
error(t('errMsg404'));
break;
case 405:
error('网络请求错误,请求方法未允许!');
error(t('errMsg405'));
break;
case 408:
error('网络请求超时!');
error(t('errMsg408'));
break;
case 500:
error('服务器错误,请联系管理员!');
error(t('errMsg500'));
break;
case 501:
error('网络未实现!');
error(t('errMsg501'));
break;
case 502:
error('网络错误!');
error(t('errMsg502'));
break;
case 503:
error('服务不可用,服务器暂时过载或维护!');
error(t('errMsg503'));
break;
case 504:
error('网络超时!');
error(t('errMsg504'));
break;
case 505:
error('http版本不支持该请求!');
error(t('errMsg505'));
break;
default:
}

View File

@@ -20,7 +20,9 @@ import { formatRequestDate } from '/@/utils/dateUtil';
import { setObjToUrlParams, deepMerge } from '/@/utils';
import { errorStore } from '/@/store/modules/error';
import { errorResult } from './const';
import { useI18n } from '/@/hooks/web/useI18n';
const { t } = useI18n('sys.api');
const globSetting = useGlobSetting();
const prefix = globSetting.urlPrefix;
const { createMessage, createErrorModal } = useMessage();
@@ -55,7 +57,7 @@ const transform: AxiosTransform = {
if (message) {
// errorMessageMode=modal的时候会显示modal错误弹窗而不是消息提示用于一些比较重要的错误
if (options.errorMessageMode === 'modal') {
createErrorModal({ title: '错误提示', content: message });
createErrorModal({ title: t('errorTip'), content: message });
} else {
createMessage.error(message);
}
@@ -74,7 +76,7 @@ const transform: AxiosTransform = {
createMessage.error(data.message);
Promise.reject(new Error(message));
} else {
const msg = '操作失败,系统异常!';
const msg = t('errorMessage');
createMessage.error(msg);
Promise.reject(new Error(msg));
}
@@ -82,9 +84,9 @@ const transform: AxiosTransform = {
}
// 登录超时
if (code === ResultEnum.TIMEOUT) {
const timeoutMsg = '登录超时,请重新登录!';
const timeoutMsg = t('timeoutMessage');
createErrorModal({
title: '操作失败',
title: t('operationFailed'),
content: timeoutMsg,
});
Promise.reject(new Error(timeoutMsg));
@@ -159,12 +161,12 @@ const transform: AxiosTransform = {
const err: string = error.toString();
try {
if (code === 'ECONNABORTED' && message.indexOf('timeout') !== -1) {
createMessage.error('接口请求超时,请刷新页面重试!');
createMessage.error(t('apiTimeoutMessage'));
}
if (err && err.includes('Network Error')) {
createErrorModal({
title: '网络异常',
content: '请检查您的网络连接是否正常!',
title: t('networkException'),
content: t('networkExceptionMsg'),
});
}
} catch (error) {