mirror of
https://github.com/whyour/qinglong.git
synced 2026-07-17 09:34:31 +08:00
修复国际化文案
This commit is contained in:
@@ -594,5 +594,11 @@
|
||||
"黑名单": "Blacklist",
|
||||
"默认为 CPU 个数": "Default is the number of CPUs",
|
||||
",保存后不可恢复": ", it can't be recovered after saving.",
|
||||
",删除后不可恢复": ", it can't be recovered after deletion"
|
||||
",删除后不可恢复": ", it can't be recovered after deletion",
|
||||
"日志不存在": "Log does not exist",
|
||||
"日志设置为忽略": "Log set to ignore",
|
||||
"确认保存": "Confirm to save",
|
||||
"上传失败": "Upload failed",
|
||||
"成功上传": "Successfully uploaded",
|
||||
"个环境变量": " environment variables"
|
||||
}
|
||||
|
||||
@@ -594,5 +594,11 @@
|
||||
"黑名单": "黑名单",
|
||||
"默认为 CPU 个数": "默认为 CPU 个数",
|
||||
",保存后不可恢复": ",保存后不可恢复",
|
||||
",删除后不可恢复": ",删除后不可恢复"
|
||||
",删除后不可恢复": ",删除后不可恢复",
|
||||
"日志不存在": "日志不存在",
|
||||
"日志设置为忽略": "日志设置为忽略",
|
||||
"确认保存": "确认保存",
|
||||
"上传失败": "上传失败",
|
||||
"成功上传": "成功上传",
|
||||
"个环境变量": "个环境变量"
|
||||
}
|
||||
|
||||
@@ -298,7 +298,7 @@ const CronDetailModal = ({
|
||||
|
||||
const saveFile = () => {
|
||||
Modal.confirm({
|
||||
title: `确认保存`,
|
||||
title: intl.get('确认保存'),
|
||||
content: (
|
||||
<>
|
||||
{intl.get('确认保存文件')}
|
||||
@@ -323,7 +323,7 @@ const CronDetailModal = ({
|
||||
.then(({ code, data }) => {
|
||||
if (code === 200) {
|
||||
setValue(content);
|
||||
message.success(`保存成功`);
|
||||
message.success(intl.get('保存成功'));
|
||||
}
|
||||
resolve(null);
|
||||
})
|
||||
|
||||
@@ -46,17 +46,15 @@ const CronLogModal = ({
|
||||
}
|
||||
request
|
||||
.get(logUrl ? logUrl : `${config.apiPrefix}crons/${cron.id}/log`)
|
||||
.then(({ code, data }) => {
|
||||
.then(({ code, data, logStatus }) => {
|
||||
if (
|
||||
code === 200 &&
|
||||
localStorage.getItem("logCron") === uniqPath &&
|
||||
data !== value
|
||||
) {
|
||||
const log = data as string;
|
||||
setValue(log || intl.get("暂无日志"));
|
||||
const hasNext = Boolean(
|
||||
log && !logEnded(log) && !log.includes("日志不存在") && !log.includes("日志设置为忽略"),
|
||||
);
|
||||
const log = (data as string) || intl.get("暂无日志");
|
||||
setValue(log);
|
||||
const hasNext = logStatus === 'running';
|
||||
if (!hasNext && !logEnded(value) && value !== intl.get("启动中...")) {
|
||||
setTimeout(() => {
|
||||
autoScroll();
|
||||
|
||||
@@ -465,49 +465,33 @@ const Dependence = () => {
|
||||
}, [logDependence]);
|
||||
|
||||
const handleMessage = useCallback((payload: any) => {
|
||||
const { message, references } = payload;
|
||||
let status: number | undefined = undefined;
|
||||
if (message.includes('开始时间') && references.length > 0) {
|
||||
status = message.includes('安装') ? Status.安装中 : Status.删除中;
|
||||
}
|
||||
if (message.includes('结束时间') && references.length > 0) {
|
||||
if (message.includes('安装')) {
|
||||
status = message.includes('成功') ? Status.已安装 : Status.安装失败;
|
||||
} else {
|
||||
status = message.includes('成功') ? Status.已删除 : Status.删除失败;
|
||||
}
|
||||
const { references, status } = payload;
|
||||
if (typeof status !== 'number' || !references?.length) return;
|
||||
|
||||
if (status === Status.已删除) {
|
||||
setTimeout(() => {
|
||||
setValue((p) => {
|
||||
const _result = [...p];
|
||||
for (let i = 0; i < references.length; i++) {
|
||||
const index = p.findIndex((x) => x.id === references[i]);
|
||||
if (index !== -1) {
|
||||
_result.splice(index, 1);
|
||||
}
|
||||
}
|
||||
return _result;
|
||||
});
|
||||
}, 300);
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (typeof status === 'number') {
|
||||
setValue((p) => {
|
||||
const result = [...p];
|
||||
for (let i = 0; i < references.length; i++) {
|
||||
const index = p.findIndex((x) => x.id === references[i]);
|
||||
if (index !== -1) {
|
||||
result.splice(index, 1, {
|
||||
...p[index],
|
||||
status,
|
||||
});
|
||||
if (status === Status.已删除) {
|
||||
setTimeout(() => {
|
||||
setValue((p) => {
|
||||
const _result = [...p];
|
||||
for (const refId of references) {
|
||||
const index = p.findIndex((x) => x.id === refId);
|
||||
if (index !== -1) _result.splice(index, 1);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
});
|
||||
return _result;
|
||||
});
|
||||
}, 300);
|
||||
return;
|
||||
}
|
||||
|
||||
setValue((p) => {
|
||||
const result = [...p];
|
||||
for (const refId of references) {
|
||||
const index = p.findIndex((x) => x.id === refId);
|
||||
if (index !== -1) {
|
||||
result.splice(index, 1, { ...p[index], status });
|
||||
}
|
||||
}
|
||||
return result;
|
||||
});
|
||||
}, []);
|
||||
|
||||
useEffect(() => {
|
||||
|
||||
@@ -54,8 +54,11 @@ const DependenceLogModal = ({
|
||||
) {
|
||||
const log = (data?.log || []).join('') as string;
|
||||
setValue(log);
|
||||
setExecuting(!log.includes('结束时间'));
|
||||
setIsRemoveFailed(log.includes('删除失败'));
|
||||
const dbStatus = data?.status as number | undefined;
|
||||
setExecuting(
|
||||
dbStatus === Status.安装中 || dbStatus === Status.删除中,
|
||||
);
|
||||
setIsRemoveFailed(dbStatus === Status.删除失败);
|
||||
}
|
||||
})
|
||||
.finally(() => {
|
||||
@@ -94,16 +97,17 @@ const DependenceLogModal = ({
|
||||
}, [dependence]);
|
||||
|
||||
const handleMessage = (payload: any) => {
|
||||
const { message, references } = payload;
|
||||
const { message, references, status } = payload;
|
||||
if (
|
||||
references.length > 0 &&
|
||||
references.includes(dependence.id) &&
|
||||
[Status.删除中, Status.安装中].includes(dependence.status)
|
||||
) {
|
||||
if (message.includes('结束时间')) {
|
||||
setExecuting(false);
|
||||
setIsRemoveFailed(message.includes('删除失败'));
|
||||
}
|
||||
!references?.length ||
|
||||
!references.includes(dependence.id)
|
||||
) return;
|
||||
|
||||
if (typeof status === 'number') {
|
||||
setExecuting(status === Status.安装中 || status === Status.删除中);
|
||||
setIsRemoveFailed(status === Status.删除失败);
|
||||
}
|
||||
if (message) {
|
||||
setValue((p) => `${p}${message}`);
|
||||
}
|
||||
};
|
||||
|
||||
Vendored
+1
-1
@@ -603,7 +603,7 @@ const Env = () => {
|
||||
);
|
||||
|
||||
if (code === 200) {
|
||||
message.success(`成功上传${data.length}个环境变量`);
|
||||
message.success(`${intl.get('成功上传')}${data.length}${intl.get('个环境变量')}`);
|
||||
getEnvs();
|
||||
}
|
||||
setImportLoading(false);
|
||||
|
||||
@@ -131,7 +131,7 @@ const Log = () => {
|
||||
|
||||
const deleteFile = () => {
|
||||
Modal.confirm({
|
||||
title: `确认删除`,
|
||||
title: intl.get('确认删除'),
|
||||
content: (
|
||||
<>
|
||||
{intl.get('确认删除')}
|
||||
@@ -155,7 +155,7 @@ const Log = () => {
|
||||
})
|
||||
.then(({ code }) => {
|
||||
if (code === 200) {
|
||||
message.success(`删除成功`);
|
||||
message.success(intl.get('删除成功'));
|
||||
let newData = [...data];
|
||||
if (currentNode.parent) {
|
||||
newData = depthFirstSearch(
|
||||
|
||||
@@ -249,7 +249,7 @@ const Script = () => {
|
||||
|
||||
const saveFile = () => {
|
||||
Modal.confirm({
|
||||
title: `确认保存`,
|
||||
title: intl.get('确认保存'),
|
||||
content: (
|
||||
<>
|
||||
{intl.get('确认保存文件')}
|
||||
@@ -273,7 +273,7 @@ const Script = () => {
|
||||
})
|
||||
.then(({ code, data }) => {
|
||||
if (code === 200) {
|
||||
message.success(`保存成功`);
|
||||
message.success(intl.get('保存成功'));
|
||||
setValue(content);
|
||||
handleIsEditing(currentNode.title, false);
|
||||
}
|
||||
@@ -287,7 +287,7 @@ const Script = () => {
|
||||
|
||||
const deleteFile = () => {
|
||||
Modal.confirm({
|
||||
title: `确认删除`,
|
||||
title: intl.get('确认删除'),
|
||||
content: (
|
||||
<>
|
||||
{intl.get('确认删除')}
|
||||
@@ -311,7 +311,7 @@ const Script = () => {
|
||||
})
|
||||
.then(({ code }) => {
|
||||
if (code === 200) {
|
||||
message.success(`删除成功`);
|
||||
message.success(intl.get('删除成功'));
|
||||
let newData = [...data];
|
||||
if (currentNode.parent) {
|
||||
newData = depthFirstSearch(
|
||||
|
||||
@@ -13,6 +13,7 @@ const CheckUpdate = ({ systemInfo }: any) => {
|
||||
const [updateLoading, setUpdateLoading] = useState(false);
|
||||
const [value, setValue] = useState("");
|
||||
const modalRef = useRef<any>();
|
||||
const lastStatusRef = useRef<string | undefined>();
|
||||
|
||||
const checkUpgrade = () => {
|
||||
if (updateLoading) return;
|
||||
@@ -166,7 +167,7 @@ const CheckUpdate = ({ systemInfo }: any) => {
|
||||
|
||||
useEffect(() => {
|
||||
if (!value) return;
|
||||
const updateFailed = value.includes("失败,请检查");
|
||||
const updateFailed = lastStatusRef.current === 'failed';
|
||||
|
||||
modalRef.current.update({
|
||||
maskClosable: updateFailed,
|
||||
@@ -184,26 +185,29 @@ const CheckUpdate = ({ systemInfo }: any) => {
|
||||
}, [value]);
|
||||
|
||||
const handleMessage = useCallback((payload: any) => {
|
||||
let { message: _message } = payload;
|
||||
const updateFailed = _message.includes("失败,请检查");
|
||||
const { message: _message, status } = payload;
|
||||
|
||||
if (updateFailed) {
|
||||
if (status === 'failed') {
|
||||
lastStatusRef.current = 'failed';
|
||||
message.error(intl.get("更新失败,请检查网络及日志或稍后再试"));
|
||||
}
|
||||
|
||||
if (status === 'success') {
|
||||
lastStatusRef.current = 'success';
|
||||
setTimeout(() => {
|
||||
showReloadModal();
|
||||
}, 1000);
|
||||
}
|
||||
|
||||
setTimeout(() => {
|
||||
document
|
||||
.querySelector("#log-identifier")
|
||||
?.scrollIntoView({ behavior: "smooth" });
|
||||
}, 600);
|
||||
|
||||
if (_message.includes("更新包下载成功")) {
|
||||
setTimeout(() => {
|
||||
showReloadModal();
|
||||
}, 1000);
|
||||
if (_message) {
|
||||
setValue((p) => `${p}${_message}`);
|
||||
}
|
||||
|
||||
setValue((p) => `${p}${_message}`);
|
||||
}, []);
|
||||
|
||||
useEffect(() => {
|
||||
|
||||
@@ -75,12 +75,9 @@ const Dependence = () => {
|
||||
};
|
||||
|
||||
const handleMessage = (payload: any) => {
|
||||
const { message } = payload;
|
||||
setLog((p) => `${p}${message}`);
|
||||
if (
|
||||
message.includes('update node mirror end') ||
|
||||
message.includes('update linux mirror end')
|
||||
) {
|
||||
const { message, status } = payload;
|
||||
if (message) setLog((p) => `${p}${message}`);
|
||||
if (status === 'completed') {
|
||||
setLoading(false);
|
||||
}
|
||||
};
|
||||
@@ -109,7 +106,7 @@ const Dependence = () => {
|
||||
ws.subscribe('updateLinuxMirror', handleMessage);
|
||||
|
||||
return () => {
|
||||
ws.subscribe('updateNodeMirror', handleMessage);
|
||||
ws.unsubscribe('updateNodeMirror', handleMessage);
|
||||
ws.unsubscribe('updateLinuxMirror', handleMessage);
|
||||
};
|
||||
}, []);
|
||||
|
||||
@@ -379,7 +379,7 @@ const Other = ({
|
||||
showReloadModal();
|
||||
}
|
||||
if (file.status === 'error') {
|
||||
message.error('上传失败');
|
||||
message.error(intl.get('上传失败'));
|
||||
}
|
||||
}}
|
||||
name="data"
|
||||
|
||||
@@ -51,7 +51,7 @@ const SystemLog = ({ height, theme }: any) => {
|
||||
|
||||
const deleteLog = () => {
|
||||
request.delete(`${config.apiPrefix}system/log`).then((x) => {
|
||||
message.success('删除成功');
|
||||
message.success(intl.get('删除成功'));
|
||||
refresh();
|
||||
});
|
||||
};
|
||||
|
||||
@@ -205,21 +205,47 @@ const SubscriptionModal = ({
|
||||
);
|
||||
};
|
||||
|
||||
const parseArgs = (text: string): string[] => {
|
||||
const args: string[] = [];
|
||||
let current = '';
|
||||
let inDouble = false;
|
||||
let inSingle = false;
|
||||
let justClosed = false;
|
||||
for (const ch of text) {
|
||||
if (inDouble) {
|
||||
if (ch === '"') { inDouble = false; justClosed = true; continue; }
|
||||
current += ch;
|
||||
} else if (inSingle) {
|
||||
if (ch === "'") { inSingle = false; justClosed = true; continue; }
|
||||
current += ch;
|
||||
} else if (ch === '"') {
|
||||
inDouble = true;
|
||||
justClosed = false;
|
||||
} else if (ch === "'") {
|
||||
inSingle = true;
|
||||
justClosed = false;
|
||||
} else if (ch === ' ' || ch === '\t') {
|
||||
if (current || justClosed) { args.push(current); current = ''; justClosed = false; }
|
||||
} else {
|
||||
current += ch;
|
||||
justClosed = false;
|
||||
}
|
||||
}
|
||||
if (current || justClosed) args.push(current);
|
||||
return args;
|
||||
};
|
||||
|
||||
const onPaste = useCallback((e: any) => {
|
||||
const text = e.clipboardData.getData('text') as string;
|
||||
if (text.startsWith('ql ')) {
|
||||
const [
|
||||
,
|
||||
type,
|
||||
url,
|
||||
whitelist,
|
||||
blacklist,
|
||||
dependences,
|
||||
branch,
|
||||
extensions,
|
||||
] = text
|
||||
.split(' ')
|
||||
.map((x) => x.trim().replace(/\"/g, '').replace(/\'/, ''));
|
||||
const args = parseArgs(text);
|
||||
const type = args[1];
|
||||
const url = args[2] || '';
|
||||
const whitelist = args[3] || '';
|
||||
const blacklist = args[4] || '';
|
||||
const dependences = args[5] || '';
|
||||
const branch = args[6] || '';
|
||||
const extensions = args[7] || '';
|
||||
const _type =
|
||||
type === 'raw'
|
||||
? 'file'
|
||||
|
||||
Reference in New Issue
Block a user