refactor: update docs url (#9021)

This commit is contained in:
2025-06-11 21:36:38 +08:00 committed by GitHub
parent 5cab80d842
commit b9a80f15e6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
13 changed files with 110 additions and 30 deletions

View file

@ -1171,6 +1171,9 @@ const message = {
saveHelper: 'Are you sure you want to save the current terminal configuration?',
},
toolbox: {
common: {
toolboxHelper: 'For some installation and usage issues, please refer to',
},
swap: {
swap: 'Swap Partition',
swapHelper1:
@ -2793,8 +2796,8 @@ const message = {
tool: {
supervisor: {
loadStatusErr: 'Failed to retrieve process status, please check the status of the supervisor service.',
notSupport: `Supervisor isn't detected. Refer to the official document to install.`,
list: 'Daemon process | Daemon processes',
notSupport: 'Supervisor service not detected, please go to the script library page to install it manually',
list: 'Daemon process',
config: 'Supervisor configuration',
primaryConfig: 'Main configuration file location',
notSupportCrl: `The supervisorctl isn't detected. Refer to the official document to install.`,
@ -2808,7 +2811,7 @@ const message = {
uptime: 'Running time',
notStartWarn: `Supervisor isn't started. Start it first.`,
serviceName: 'Service name',
initHelper: `Supervisor service isn't initialized. Click "Initialize" to initialize.`,
initHelper: 'Supervisor service detected but not initialized, please refer to the configuration guide',
serviceNameHelper: 'Supervisor service name managed by systemctl, usually supervisor or supervisord',
restartHelper:
'This will restart the service after initialization, which causes all the existing daemon processes to stop.',

View file

@ -1119,6 +1119,9 @@ const message = {
emptyTerminal: '現在接続されている端子はありません',
},
toolbox: {
common: {
toolboxHelper: '一部のインストールおよび使用に関する問題については以下を参照してください',
},
swap: {
swap: 'パーティションを交換します',
swapHelper1: 'スワップのサイズは特定の要件に基づいて調整可能な物理メモリの12倍である必要があります',
@ -2670,7 +2673,8 @@ const message = {
supervisor: {
loadStatusErr:
'プロセスステータスの取得に失敗しましたスーパーバイザーサービスのステータスを確認してください',
notSupport: `監督者は検出されません。インストールする公式ドキュメントを参照してください。`,
notSupport:
'Supervisor サービスが検出されませんでしたスクリプトライブラリページに移動して手動でインストールしてください',
list: 'デーモンプロセス|デーモンプロセス',
config: 'スーパーバイザー構成',
primaryConfig: 'メイン構成ファイルの場所',
@ -2685,7 +2689,7 @@ const message = {
uptime: '実行時間',
notStartWarn: `スーパーバイザーは開始されません。最初に開始します。`,
serviceName: 'サービス名',
initHelper: `スーパーバイザーサービスは初期化されていません。[初期化]をクリックして初期化します。`,
initHelper: 'Supervisor サービスは検出されましたが初期化されていません設定ガイドを参照してください',
serviceNameHelper: 'Systemctlが管理するスーパーバイザーサービス名通常は監督者または監督者',
restartHelper: 'これにより初期化後にサービスが再起動され既存のすべてのデーモンプロセスが停止します',
RUNNING: 'ランニング',

View file

@ -1111,6 +1111,9 @@ const message = {
emptyTerminal: '현재 연결된 터미널이 없습니다.',
},
toolbox: {
common: {
toolboxHelper: '일부 설치 사용 문제는 다음을 참고하세요',
},
swap: {
swap: '스왑 파티션',
swapHelper1: '스왑 크기는 물리적 메모리의 1~2배로 설정해야 하며, 특정 요구 사항에 따라 조정 가능합니다.',
@ -2625,7 +2628,7 @@ const message = {
tool: {
supervisor: {
loadStatusErr: '프로세스 상태를 가져오지 못했습니다. supervisor 서비스의 상태를 확인하세요.',
notSupport: `Supervisor 가 감지되지 않았습니다. 설치하려면 공식 문서를 참조하세요.`,
notSupport: 'Supervisor 서비스를 감지하지 못했습니다. 스크립트 라이브러리 페이지에서 수동으로 설치하세요',
list: '데몬 프로세스 | 데몬 프로세스들',
config: 'Supervisor 설정',
primaryConfig: ' 설정 파일 위치',
@ -2640,7 +2643,7 @@ const message = {
uptime: '운영 시간',
notStartWarn: `Supervisor 가 시작되지 않았습니다. 먼저 시작하세요.`,
serviceName: '서비스 이름',
initHelper: `Supervisor 서비스가 초기화되지 않았습니다. "초기화"를 클릭하여 초기화하세요.`,
initHelper: 'Supervisor 서비스가 감지되었지만 초기화되지 않았습니다. 구성 가이드를 참고하세요',
serviceNameHelper: 'systemctl 관리되는 Supervisor 서비스 이름, 보통 supervisor 또는 supervisord입니다.',
restartHelper:
' 작업은 초기화 서비스를 재시작합니다. 이로 인해 기존의 모든 데몬 프로세스가 중지됩니다.',

View file

@ -1148,6 +1148,9 @@ const message = {
emptyTerminal: 'Tiada terminal yang sedang disambungkan.',
},
toolbox: {
common: {
toolboxHelper: 'Untuk beberapa isu pemasangan dan penggunaan, sila rujuk kepada',
},
swap: {
swap: 'Partition Swap',
swapHelper1:
@ -2729,7 +2732,7 @@ const message = {
tool: {
supervisor: {
loadStatusErr: 'Gagal mendapatkan status proses, sila semak status perkhidmatan supervisor.',
notSupport: 'Supervisor tidak dikesan. Rujuk dokumen rasmi untuk pemasangan.',
notSupport: 'Perkhidmatan Supervisor tidak dikesan. Sila pergi ke halaman pustaka skrip untuk pemasangan manual',
list: 'Proses Daemon | Proses Daemon',
config: 'Konfigurasi Supervisor',
primaryConfig: 'Lokasi fail konfigurasi utama',
@ -2744,7 +2747,7 @@ const message = {
uptime: 'Masa berjalan',
notStartWarn: 'Supervisor belum dimulakan. Mulakan dahulu.',
serviceName: 'Nama perkhidmatan',
initHelper: 'Perkhidmatan Supervisor belum diinisialisasi. Klik "Inisialisasi" untuk memulakan.',
initHelper: 'Perkhidmatan Supervisor dikesan tetapi belum dimulakan. Sila rujuk panduan konfigurasi',
serviceNameHelper:
'Nama perkhidmatan Supervisor yang diuruskan oleh systemctl, biasanya supervisor atau supervisord',
restartHelper:

View file

@ -1139,6 +1139,9 @@ const message = {
emptyTerminal: 'Nenhum terminal está conectado no momento.',
},
toolbox: {
common: {
toolboxHelper: 'Para alguns problemas de instalação e uso, consulte',
},
swap: {
swap: 'Partição Swap',
swapHelper1:
@ -2729,7 +2732,8 @@ const message = {
tool: {
supervisor: {
loadStatusErr: 'Falha ao recuperar o status do processo, verifique o status do serviço do supervisor.',
notSupport: `Supervisor não detectado. Consulte o documento oficial para instalação.`,
notSupport:
'Serviço Supervisor não detectado. para a página da biblioteca de scripts para instalar manualmente',
list: 'Processo daemon | Processos daemon',
config: 'Configuração do Supervisor',
primaryConfig: 'Localização do arquivo de configuração principal',
@ -2744,7 +2748,7 @@ const message = {
uptime: 'Tempo de execução',
notStartWarn: `O Supervisor não foi iniciado. Inicie-o primeiro.`,
serviceName: 'Nome do serviço',
initHelper: `O serviço do Supervisor não foi inicializado. Clique em "Inicializar" para configurar.`,
initHelper: 'Serviço Supervisor detectado, mas não inicializado. Consulte o guia de configuração',
serviceNameHelper:
'Nome do serviço do Supervisor gerenciado pelo systemctl, geralmente supervisor ou supervisord',
restartHelper:

View file

@ -1141,6 +1141,9 @@ const message = {
emptyTerminal: 'В настоящее время нет подключенных терминалов.',
},
toolbox: {
common: {
toolboxHelper: 'Некоторые проблемы с установкой и использованием описаны в',
},
swap: {
swap: 'Раздел Swap',
swapHelper1:
@ -2723,7 +2726,8 @@ const message = {
tool: {
supervisor: {
loadStatusErr: 'Не удалось получить статус процесса, пожалуйста, проверьте состояние службы supervisor.',
notSupport: 'Supervisor не обнаружен. Обратитесь к официальной документации для установки.',
notSupport:
'Служба Supervisor не обнаружена. Перейдите на страницу библиотеки скриптов для ручной установки',
list: 'Демон-процесс | Демон-процессы',
config: 'Конфигурация Supervisor',
primaryConfig: 'Расположение основного конфигурационного файла',
@ -2738,7 +2742,7 @@ const message = {
uptime: 'Время работы',
notStartWarn: 'Supervisor не запущен. Сначала запустите его.',
serviceName: 'Имя службы',
initHelper: 'Служба Supervisor не инициализирована. Нажмите "Инициализировать" для инициализации.',
initHelper: 'Служба Supervisor обнаружена, но не инициализирована. См. руководство по настройке',
serviceNameHelper: 'Имя службы Supervisor, управляемой systemctl, обычно supervisor или supervisord',
restartHelper:
'Это перезапустит службу после инициализации, что приведет к остановке всех существующих демон-процессов.',

View file

@ -1035,7 +1035,7 @@ const message = {
edit: '修改腳本',
groupHelper: '根據腳本特徵設置不同的分組可以更快地對腳本進行篩選操作',
handleHelper: '將在 {0} 上執行 {1} 腳本是否繼續',
noSuchApp: '未檢測到 {0} 服務先使用腳本庫快速安裝',
noSuchApp: '未檢測到 {0} 服務前往腳本庫頁面手動安裝',
syncHelper: '即將同步系統腳本庫該操作僅針對系統腳本是否繼續',
},
},
@ -1117,6 +1117,9 @@ const message = {
saveHelper: '是否確認保存當前終端配置',
},
toolbox: {
common: {
toolboxHelper: '部分安装和使用问题可参考',
},
swap: {
swap: 'Swap',
swapHelper1: 'Swap 的大小應該是物理內存的 1 2 可根據具體情況進行調整',
@ -1201,8 +1204,7 @@ const message = {
enableMsg: '啟用定時執行會讓該掃描任務定期自動執行是否繼續',
showFresh: '顯示病毒庫服務',
hideFresh: '隱藏病毒庫服務',
clamHelper:
'ClamAV 的最低建議配置為3 GiB 以上的 RAM2.0 GHz 以上的單核 CPU以及至少 5 GiB 的可用硬盤空間',
clamHelper: 'ClamAV 建議最低配置3 GiB 以上記憶體單核 2.0 GHz 以上 CPU以及至少 5 GiB 可用硬盤空間',
notStart: '當前未 ClamAV 服務請先開啟',
removeRecord: '刪除報告文件',
noRecords: '點擊執行按鈕開始掃描掃描結果將會記錄在這裏',
@ -2604,7 +2606,7 @@ const message = {
tool: {
supervisor: {
loadStatusErr: '獲取進程狀態失敗請檢查 supervisor 服務狀態',
notSupport: '未檢測到 Supervisor請參考官方文檔進行安裝',
notSupport: '未檢測到 Supervisor 服務請前往腳本庫頁面手動安裝',
list: '守護進程',
config: 'Supervisor 配置',
primaryConfig: '主配置文件位置',
@ -2619,7 +2621,7 @@ const message = {
uptime: '運行時長',
notStartWarn: 'Supervisor 未啟動請先啟動',
serviceName: '服務名稱',
initHelper: '尚未初始化 Supervisor 請先初始化',
initHelper: '檢測到 Supervisor 服務未初始化具體配寘參攷',
serviceNameHelper: 'systemctl 管理的 Supervisor 服務名稱一般為 supervisor supervisord',
restartHelper: '初始化會重啟服務導致原有的守護進程全部關閉',
RUNNING: '運行中',

View file

@ -1033,7 +1033,7 @@ const message = {
edit: '修改脚本',
groupHelper: '针对脚本特征设置不同的分组可以更加快速的对脚本进行筛选操作',
handleHelper: '将在 {0} 上执行 {1} 脚本是否继续',
noSuchApp: '未检测到 {0} 服务先使用脚本库安装脚本快速安装',
noSuchApp: '未检测到 {0} 服务前往脚本库页面手动安装',
syncHelper: '即将同步系统脚本库该操作仅针对系统脚本是否继续',
},
},
@ -1115,6 +1115,9 @@ const message = {
saveHelper: '是否确认保存当前终端配置',
},
toolbox: {
common: {
toolboxHelper: '部分安装和使用问题可参考',
},
swap: {
swap: 'Swap 分区',
swapHelper1: 'Swap 的大小应该是物理内存的 1 2 可根据具体情况进行调整',
@ -1199,8 +1202,7 @@ const message = {
enableMsg: '启用定时执行会让该扫描任务定期自动执行是否继续',
showFresh: '显示病毒库服务',
hideFresh: '隐藏病毒库服务',
clamHelper:
'ClamAV 的最低建议配置为3 GiB 以上的 RAM2.0 GHz 以上的单核 CPU以及至少 5 GiB 的可用硬盘空间',
clamHelper: 'ClamAV 建议最低配置3 GiB 以上内存单核 2.0 GHz 以上 CPU以及至少 5 GiB 可用硬盘空间',
notStart: '当前未开启 ClamAV 服务请先开启',
removeRecord: '删除报告文件',
noRecords: '点击执行按钮开始扫描扫描结果将会记录在这里',
@ -2593,7 +2595,7 @@ const message = {
tool: {
supervisor: {
loadStatusErr: '获取进程状态失败请检查 supervisor 服务状态',
notSupport: '未检测到 Supervisor请参考官方文档进行安装',
notSupport: '未检测到 Supervisor 服务请前往脚本库页面手动安装',
list: '守护进程',
config: 'Supervisor 配置',
primaryConfig: '主配置文件位置',
@ -2608,7 +2610,7 @@ const message = {
uptime: '运行时长',
notStartWarn: '当前未开启 Supervisor 请先启动',
serviceName: '服务名称',
initHelper: '尚未初始化 Supervisor 请先初始化',
initHelper: '检测到 Supervisor 服务未初始化具体配置参考',
serviceNameHelper: 'systemctl 管理的 Supervisor 服务名称一般为 supervisorsupervisord',
restartHelper: '初始化会重启服务导致原有的守护进程全部关闭',
RUNNING: '运行中',

View file

@ -199,7 +199,7 @@ html {
}
span:nth-child(2):hover {
color: #74a4f3;
color: var(--el-color-primary-light-7);
}
img {

View file

@ -242,7 +242,7 @@ const toFolder = (folder: string) => {
};
const toDoc = () => {
router.push({ name: 'Library' });
window.open(globalStore.docsUrl + '/user_manual/toolbox/clam/', '_blank', 'noopener,noreferrer');
};
const onChange = async (row: any) => {

View file

@ -38,6 +38,16 @@
<div v-if="form.isExist">
<LayoutContent title="Fail2ban" :divider="true">
<template #prompt>
<el-alert type="info" :closable="false">
<template #title>
{{ $t('toolbox.common.toolboxHelper') }}
<el-link class="ml-1 text-xs" @click="toDoc()" type="primary">
{{ $t('commons.button.helpDoc') }}
</el-link>
</template>
</el-alert>
</template>
<template #leftToolBar>
<el-button :disabled="!form.isActive" type="primary" plain @click="onLoadList('ignore')">
{{ $t('toolbox.fail2ban.ignoreIP') }}
@ -157,6 +167,9 @@ import { MsgSuccess } from '@/utils/message';
import { getFail2banConf, getFail2banBase, operateFail2ban, updateFail2banByFile } from '@/api/modules/toolbox';
import { ElMessageBox } from 'element-plus';
import { transTimeUnit } from '@/utils/util';
import { GlobalStore } from '@/store';
const globalStore = GlobalStore();
const loading = ref(false);
const formRef = ref();
@ -286,6 +299,10 @@ const search = async () => {
form.logPath = res.data.logPath;
};
const toDoc = () => {
window.open(globalStore.docsUrl + '/user_manual/toolbox/fail2ban/', '_blank', 'noopener,noreferrer');
};
onMounted(() => {
search();
});

View file

@ -24,6 +24,16 @@
</div>
<div v-if="form.isExist">
<LayoutContent v-loading="loading" :title="$t('toolbox.ftp.ftp', 2)" :class="{ mask: !form.isActive }">
<template #prompt>
<el-alert type="info" :closable="false">
<template #title>
{{ $t('toolbox.common.toolboxHelper') }}
<el-link class="ml-1 text-xs" @click="toDoc()" type="primary">
{{ $t('commons.button.helpDoc') }}
</el-link>
</template>
</el-alert>
</template>
<template #leftToolBar>
<el-button type="primary" @click="onOpenDialog('add')">
{{ $t('commons.button.add') }} {{ $t('toolbox.ftp.ftp') }}
@ -146,6 +156,9 @@ import OperateDialog from '@/views/toolbox/ftp/operate/index.vue';
import LogDialog from '@/views/toolbox/ftp/log/index.vue';
import { Toolbox } from '@/api/interface/toolbox';
import router from '@/routers';
import { GlobalStore } from '@/store';
const globalStore = GlobalStore();
const loading = ref();
const selects = ref<any>([]);
@ -339,6 +352,10 @@ const buttons = [
},
];
const toDoc = () => {
window.open(globalStore.docsUrl + '/user_manual/toolbox/ftp/', '_blank', 'noopener,noreferrer');
};
onMounted(() => {
search();
});

View file

@ -41,11 +41,25 @@
<template #main>
<div class="app-warn">
<div class="flex flex-col gap-2 items-center justify-center w-full sm:flex-row">
<span v-if="!data.isExist">{{ $t('tool.supervisor.notSupport') }}</span>
<span v-else-if="!data.ctlExist">{{ $t('tool.supervisor.notSupportCrl') }}</span>
<span v-else-if="data.init">{{ $t('tool.supervisor.initHelper') }}</span>
<template v-if="!data.isExist">
<span>{{ $t('tool.supervisor.notSupport') }}</span>
</template>
<template v-else-if="!data.ctlExist">
<span>{{ $t('tool.supervisor.notSupportCrl') }}</span>
<el-link class="ml-1 text-xs" @click="toDoc()" type="primary">
{{ $t('commons.button.helpDoc') }}
</el-link>
</template>
<template v-else-if="data.init">
<span>{{ $t('tool.supervisor.initHelper') }}</span>
<el-link class="ml-1 text-xs" @click="toDoc()" type="primary">
{{ $t('commons.button.helpDoc') }}
</el-link>
</template>
<span
@click="toDoc()"
@click="toLibrary()"
v-if="!data.isExist || !data.ctlExist"
class="flex items-center justify-center gap-0.5"
>
@ -72,6 +86,9 @@ import { MsgSuccess } from '@/utils/message';
import { HostTool } from '@/api/interface/host-tool';
import InitPage from './init/index.vue';
import router from '@/routers';
import { GlobalStore } from '@/store';
const globalStore = GlobalStore();
let operateReq = reactive({
installId: 0,
@ -95,8 +112,12 @@ const setting = () => {
em('setting', true);
};
const toLibrary = () => {
router.push({ name: 'Library', query: { uncached: 'true' } });
};
const toDoc = () => {
router.push({ name: 'Library' });
window.open(globalStore.docsUrl + '/user_manual/toolbox/supervisor/', '_blank', 'noopener,noreferrer');
};
const init = async () => {