From ebe472a9dbf4dde521e01c3d08fca0e304cf0526 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=B4=BA?= Date: Tue, 24 Feb 2026 13:42:10 +0800 Subject: [PATCH] feat(i18n): refine translations (#11931) --- agent/i18n/lang/en.yaml | 2 +- agent/i18n/lang/ja.yaml | 2 +- agent/i18n/lang/ko.yaml | 2 +- agent/i18n/lang/ms.yaml | 2 +- agent/i18n/lang/pt-BR.yaml | 2 +- agent/i18n/lang/ru.yaml | 2 +- agent/i18n/lang/tr.yaml | 2 +- agent/i18n/lang/zh-Hant.yaml | 20 +-- agent/i18n/lang/zh.yaml | 24 +-- core/i18n/lang/en.yaml | 2 +- core/i18n/lang/es-ES.yaml | 2 +- core/i18n/lang/ja.yaml | 2 +- core/i18n/lang/ko.yaml | 2 +- core/i18n/lang/ms.yaml | 4 +- core/i18n/lang/pt-BR.yaml | 2 +- core/i18n/lang/ru.yaml | 2 +- core/i18n/lang/tr.yaml | 2 +- core/i18n/lang/zh-Hant.yaml | 12 +- core/i18n/lang/zh.yaml | 2 +- frontend/src/lang/modules/en.ts | 8 +- frontend/src/lang/modules/es-es.ts | 4 +- frontend/src/lang/modules/ja.ts | 6 +- frontend/src/lang/modules/ko.ts | 4 +- frontend/src/lang/modules/ms.ts | 4 +- frontend/src/lang/modules/pt-br.ts | 4 +- frontend/src/lang/modules/ru.ts | 6 +- frontend/src/lang/modules/tr.ts | 2 +- frontend/src/lang/modules/zh-Hant.ts | 238 +++++++++++++-------------- frontend/src/lang/modules/zh.ts | 52 +++--- 29 files changed, 209 insertions(+), 209 deletions(-) diff --git a/agent/i18n/lang/en.yaml b/agent/i18n/lang/en.yaml index d33022b18..b34470af4 100644 --- a/agent/i18n/lang/en.yaml +++ b/agent/i18n/lang/en.yaml @@ -186,7 +186,7 @@ dnsAccount: 'DNS Auto' dnsManual: 'DNS Manual' http: 'HTTP' ApplySSLFailed: 'Application for [{{ .domain }}] certificate failed, {{ .detail }} ' -ApplySSLSuccess: 'Apply for [{{ .domain }}] certificate successfully! !' +ApplySSLSuccess: 'Apply for [{{ .domain }}] certificate successfully!' DNSAccountName: 'DNS account [{{ .name }}] vendor [{{ .type }}]' PushDirLog: 'Certificate pushed to directory [{{ .path }}] {{ .status }}' ErrDeleteCAWithSSL: 'The current organization has a certificate that has been issued and cannot be deleted.' diff --git a/agent/i18n/lang/ja.yaml b/agent/i18n/lang/ja.yaml index 63b7d001b..743606021 100644 --- a/agent/i18n/lang/ja.yaml +++ b/agent/i18n/lang/ja.yaml @@ -185,7 +185,7 @@ dnsAccount: 'DNS 自動' dnsManual: 'DNS マニュアル' http: "HTTP" ApplySSLFailed: '[{{ .domain }}] 証明書の申請に失敗しました、{{ .detail }}' -ApplySSLSuccess: '[{{ .domain }}] 証明書の申請に成功しました! ' +ApplySSLSuccess: '[{{ .domain }}] 証明書の申請に成功しました。' DNSAccountName: 'DNS アカウント [{{ .name }}] ベンダー [{{ .type }}]' PushDirLog: '証明書がディレクトリ [{{ .path }}] {{ .status }} にプッシュされました' ErrDeleteCAWithSSL: '現在の組織には発行済みの証明書があり、削除できません。' diff --git a/agent/i18n/lang/ko.yaml b/agent/i18n/lang/ko.yaml index d8aa7382e..1ec6c1035 100644 --- a/agent/i18n/lang/ko.yaml +++ b/agent/i18n/lang/ko.yaml @@ -186,7 +186,7 @@ dnsAccount: 'DNS 자동' dnsManual: 'DNS 매뉴얼' http: 'HTTP' ApplySSLFailed: '[{{ .domain }}] 인증서 신청이 실패했습니다. {{ .detail }} ' -ApplySSLSuccess: '[{{ .domain }}] 인증서 신청이 성공적으로 완료되었습니다! ! ' +ApplySSLSuccess: '[{{ .domain }}] 인증서 신청이 성공적으로 완료되었습니다!' DNSAccountName: 'DNS 계정 [{{ .name }}] 공급업체 [{{ .type }}]' PushDirLog: '인증서가 [{{ .path }}] {{ .status }} 디렉토리로 푸시되었습니다.' ErrDeleteCAWithSSL: '현재 조직에는 발급된 인증서가 있어 삭제할 수 없습니다.' diff --git a/agent/i18n/lang/ms.yaml b/agent/i18n/lang/ms.yaml index 01586354a..fabfd94eb 100644 --- a/agent/i18n/lang/ms.yaml +++ b/agent/i18n/lang/ms.yaml @@ -189,7 +189,7 @@ dnsAccount: 'DNS Auto' dnsManual: 'Manual DNS' http: 'HTTP' ApplySSLFailed: 'Permohonan untuk sijil [{{ .domain }}] gagal, {{ .detail }} ' -ApplySSLSuccess: 'Berjaya memohon sijil [{{ .domain }}]! ! ' +ApplySSLSuccess: 'Berjaya memohon sijil [{{ .domain }}]!' DNSAccountName: 'Akaun DNS [{{ .name }}] vendor [{{ .type }}]' PushDirLog: 'Sijil ditolak ke direktori [{{ .path }}] {{ .status }}' ErrDeleteCAWithSSL: 'Organisasi semasa mempunyai sijil yang telah dikeluarkan dan tidak boleh dipadamkan.' diff --git a/agent/i18n/lang/pt-BR.yaml b/agent/i18n/lang/pt-BR.yaml index aaa5a1265..34f1403b2 100644 --- a/agent/i18n/lang/pt-BR.yaml +++ b/agent/i18n/lang/pt-BR.yaml @@ -189,7 +189,7 @@ dnsAccount: 'DNS Automático' dnsManual: 'Manual DNS' http: 'HTTP' ApplySSLFailed: 'Falha na solicitação de certificado [{{ .domain }}], {{ .detail }} ' -ApplySSLSuccess: 'Solicitação de certificado [{{ .domain }}] realizada com sucesso! ! ' +ApplySSLSuccess: 'Solicitação de certificado [{{ .domain }}] realizada com sucesso!' DNSAccountName: 'Conta DNS [{{ .name }}] fornecedor [{{ .type }}]' PushDirLog: 'Certificado enviado para o diretório [{{ .path }}] {{ .status }}' ErrDeleteCAWithSSL: 'A organização atual tem um certificado que foi emitido e não pode ser excluído.' diff --git a/agent/i18n/lang/ru.yaml b/agent/i18n/lang/ru.yaml index 75d49a1a3..8facc88e2 100644 --- a/agent/i18n/lang/ru.yaml +++ b/agent/i18n/lang/ru.yaml @@ -189,7 +189,7 @@ dnsAccount: 'DNS Авто' dnsManual: 'Руководство по DNS' http: 'HTTP' ApplySSLFailed: 'Заявка на сертификат [{{ .domain }}] не выполнена, {{ .detail }}' -ApplySSLSuccess: 'Заявка на сертификат [{{ .domain }}] успешно подана! ' +ApplySSLSuccess: 'Заявка на сертификат [{{ .domain }}] успешно подана!' DNSAccountName: 'DNS-аккаунт [{{ .name }}] поставщик [{{ .type }}]' PushDirLog: 'Сертификат перемещен в каталог [{{ .path }}] {{ .status }}' ErrDeleteCAWithSSL: 'Текущая организация имеет сертификат, который был выдан и не может быть удален.' diff --git a/agent/i18n/lang/tr.yaml b/agent/i18n/lang/tr.yaml index a4b11b825..c5c2bb267 100644 --- a/agent/i18n/lang/tr.yaml +++ b/agent/i18n/lang/tr.yaml @@ -190,7 +190,7 @@ dnsAccount: 'DNS Otomatik' dnsManual: 'DNS Manuel' http: 'HTTP' ApplySSLFailed: '[{{ .domain }}] sertifika başvurusu başarısız, {{ .detail }} ' -ApplySSLSuccess: '[{{ .domain }}] sertifika başvurusu başarılı! !' +ApplySSLSuccess: '[{{ .domain }}] sertifika başvurusu başarılı!' DNSAccountName: 'DNS hesabı [{{ .name }}] sağlayıcı [{{ .type }}]' PushDirLog: 'Sertifika [{{ .path }}] dizinine gönderildi {{ .status }}' ErrDeleteCAWithSSL: 'Mevcut kuruluşun verilmiş bir sertifikası var ve silinemez.' diff --git a/agent/i18n/lang/zh-Hant.yaml b/agent/i18n/lang/zh-Hant.yaml index b36d9a522..3f31d7783 100644 --- a/agent/i18n/lang/zh-Hant.yaml +++ b/agent/i18n/lang/zh-Hant.yaml @@ -133,7 +133,7 @@ ErrSourcePathNotFound: '來源目錄不存在' ErrFavoriteExist: '已收藏此路徑' ErrInvalidChar: '禁止使用無效字元' ErrPathNotDelete: '所選目錄不可刪除' -ErrLogFileToLarge: "日誌檔案超過 500M,無法打開" +ErrLogFileToLarge: "日誌檔案超過 500M,無法開啟" FileDropFailed: "清理文件 {{ .name }} 失敗: {{ .err }}" FileDropSuccess: "清理文件 {{ .name }} 成功,清理 {{ .count }} 個文件,釋放 {{ .size }} 磁碟空間" FileDropSum: "文件清理完成,共清理 {{ .count }} 個文件,共釋放 {{ .size }} 磁碟空間" @@ -154,7 +154,7 @@ ErrImageNotExist: '執行環境{{ .name }} 映像不存在,請重新編輯執 ErrProxyIsUsed: "負載均衡已被反向代理使用,無法刪除" ErrSSLValid: '證書文件異常,請檢查證書狀態!' ErrWebsiteDir: "請選擇網站目錄下的目錄" -ErrComposerFileNotFound: "composer.json 文件不存在" +ErrComposerFileNotFound: "composer.json 檔案不存在" ErrRuntimeNoPort: "執行環境未設定埠,請先編輯執行環境" Status: '狀態' start: '開啟' @@ -165,7 +165,7 @@ pause: '暫停' unpause: '恢復' remove: '刪除' delete: '刪除' -ErrDefaultWebsite: '已經設置默認網站,請取消後再設置!' +ErrDefaultWebsite: '已經設置預設網站,請取消後再設置!' SSL: '憑證' Set: '設定' @@ -185,7 +185,7 @@ dnsAccount: 'DNS 自動' dnsManual: 'DNS 手排' http: 'HTTP' ApplySSLFailed: '申請[{{ .domain }}] 憑證失敗, {{ .detail }} ' -ApplySSLSuccess: '申請[{{ .domain }}] 憑證成功! ! ' +ApplySSLSuccess: '申請[{{ .domain }}] 憑證成功!' DNSAccountName: 'DNS 帳號[{{ .name }}] 廠商[{{ .type }}]' PushDirLog: '憑證推送到目錄[{{ .path }}] {{ .status }}' ErrDeleteCAWithSSL: '目前機構下存在已簽發證書,無法刪除' @@ -212,7 +212,7 @@ ErrExecTimeOut: 'SQL 執行逾時,請檢查資料庫' ErrRemoteExist: '遠端資料庫已存在該名稱,請修改後重試' ErrLocalExist: '本機資料庫已存在該名稱,請修改後重試' RemoteBackup: "備份遠端資料庫需要先使用映像 {{ .name }} 啟動本機容器資料庫服務,請稍候..." -RemoteRecover: "恢復遠端資料庫需要先使用映像 {{ .name }} 啟動本機容器資料庫服務,請稍候..." +RemoteRecover: "復原遠端資料庫需要先使用映像 {{ .name }} 啟動本機容器資料庫服務,請稍候..." Arg: "參數" #redis @@ -262,7 +262,7 @@ HandleSystemClean: '系統快取清理' SystemLog: '系統日誌' CutWebsiteLog: '切割網站日誌' FileOrDir: '目錄 / 檔案' -UploadFile: '上傳備份文件 {{ .file }} 到 {{ .backup }}' +UploadFile: '上傳備份檔案 {{ .file }} 到 {{ .backup }}' Upload: "上傳" IgnoreBackupErr: "備份失敗,錯誤:{{ .detail }},忽略本次錯誤..." IgnoreUploadErr: "上傳失敗,錯誤:{{ .detail }},忽略本次錯誤..." @@ -287,7 +287,7 @@ EnableSwap: "啟用 Swap" CleanTamperSetting: "清理歷史防護設定" SetTamperWithRules: "根據規則啟動目錄防護" ProtectDir: "防護目錄 {{ .name }}" -IgnoreFile: "保護文件 {{ .name }}" +IgnoreFile: "保護檔案 {{ .name }}" TamperSetSuccessful: "防護設定完成,開始監聽以下目錄:" #waf @@ -371,8 +371,8 @@ TaskBuild: '建置' TaskPush: '推送' TaskClean: "清理" TaskHandle: '執行' -TaskImport: "導入" -TaskExport: "導出" +TaskImport: "匯入" +TaskExport: "匯出" Website: '網站' App: '應用程式' Runtime: '運作環境' @@ -539,4 +539,4 @@ PartitionDiskErr: "分區失敗,{{ .err }}" FormatDiskErr: "格式化磁碟失敗,{{ .err }}" MountDiskErr: "掛載磁碟失敗,{{ .err }}" UnMountDiskErr: "移除磁碟失敗,{{ .err }}" -XfsNotFound: "未檢測到 xfs 文件系統,請先安裝 xfsprogs" +XfsNotFound: "未檢測到 xfs 檔案系統,請先安裝 xfsprogs" diff --git a/agent/i18n/lang/zh.yaml b/agent/i18n/lang/zh.yaml index 7a13336e2..e90db5fb1 100644 --- a/agent/i18n/lang/zh.yaml +++ b/agent/i18n/lang/zh.yaml @@ -91,7 +91,7 @@ ErrGetCompose: "docker-compose.yml 文件获取失败!{{ .detail }}" ErrAppWarn: "状态异常,请查看日志" ErrAppParamKey: "参数 {{ .name }} 字段异常" ErrAppUpgrade: "应用 {{ .name }} 升级失败 {{ .err }}" -AppRecover: "应用 {{ .name }} 回滚 " +AppRecover: "应用 {{ .name }} 回滚" PullImageStart: "开始拉取镜像 [{{ .name }}]" PullImageSuccess: "镜像拉取成功" AppStoreSyncSuccess: "应用商店同步成功" @@ -101,11 +101,11 @@ MoveSiteDir: "检测到网站目录变更 需要迁移 OpenResty 网站目录到 MoveSiteDirSuccess: "迁移网站目录成功" DeleteRuntimePHP: "删除 PHP 运行环境" CustomAppStoreFileValid: "应用商店包需要 .tar.gz 格式" -PullImageTimeout: "拉取镜像超时,请尝试增加镜像加速或者更换其他镜像加速" +PullImageTimeout: "拉取镜像超时,请尝试增加镜像加速或更换其他镜像加速" ErrAppIsDown: "{{ .name }} 应用状态异常,请检查" ErrCustomApps: "存在已经安装的应用,请先卸载" ErrCustomRuntimes: "存在已经安装的运行环境,请先删除" -ErrAppVersionDeprecated: " {{ .name }} 应用不适配当前 1Panel 版本,跳过" +ErrAppVersionDeprecated: "{{ .name }} 应用不适配当前 1Panel 版本,跳过" ErrDockerFailed: "Docker 状态异常,请检查服务状态" ErrDockerComposeCmdNotFound: "Docker Compose 命令不存在,请先在宿主机安装此命令" UseExistImage: "拉取镜像失败,使用存量镜像" @@ -122,7 +122,7 @@ ExportDate: "时间" #file ErrFileCanNotRead: "此文件不支持预览" -ErrFileToLarge: "文件超过10M,无法打开" +ErrFileToLarge: "文件超过10M,无法开启" ErrPathNotFound: "目录不存在" ErrMovePathFailed: "目标路径不能包含原路径!" ErrLinkPathNotFound: "目标路径不存在!" @@ -185,7 +185,7 @@ ApplySSLStart: '开始申请证书,域名 [{{ .domain }}] 申请方式 [{{ .ty dnsAccount: "DNS 自动" dnsManual: "DNS 手动" http: "HTTP" -ApplySSLFailed: '申请 [{{ .domain }}] 证书失败, {{ .detail }} ' +ApplySSLFailed: '申请 [{{ .domain }}] 证书失败,{{ .detail }}' ApplySSLSuccess: '申请 [{{ .domain }}] 证书成功!!' DNSAccountName: 'DNS 账号 [{{ .name }}] 厂商 [{{ .type }}]' PushDirLog: '证书推送到目录 [{{ .path }}] {{ .status }}' @@ -241,7 +241,7 @@ ErrRuntimeStart: "启动失败" ErrPackageJsonNotFound: "package.json 文件不存在" ErrScriptsNotFound: "没有在 package.json 中找到 scripts 配置项" ErrContainerNameNotFound: "无法获取容器名称,请检查 .env 文件" -ErrNodeModulesNotFound: "node_modules 文件夹不存在!请编辑运行环境或者等待运行环境启动成功" +ErrNodeModulesNotFound: "node_modules 文件夹不存在!请编辑运行环境或等待运行环境启动成功" ErrContainerNameIsNull: "容器名称不存在" ErrPHPPortIsDefault: "9000 端口为默认端口,请修改后重试" ErrPHPRuntimePortFailed: "{{ .name }} 端口已被当前运行环境使用,请修改后重试" @@ -414,14 +414,14 @@ Clamscan: "扫描 {{ .name }}" TaskScan: "扫描" # task - ai -OllamaModelPull: "拉取 Ollama 模型 {{ .name }} " -OllamaModelSize: "获取 Ollama 模型 {{ .name }} 大小 " +OllamaModelPull: "拉取 Ollama 模型 {{ .name }}" +OllamaModelSize: "获取 Ollama 模型 {{ .name }} 大小" # task - snapshot Snapshot: "快照" SnapDBInfo: "写入 1Panel 数据库信息" -SnapCopy: "复制文件&目录 {{ .name }} " -SnapNewDB: "初始化数据库 {{ .name }} 连接 " +SnapCopy: "复制文件&目录 {{ .name }}" +SnapNewDB: "初始化数据库 {{ .name }} 连接" SnapDeleteOperationLog: "删除操作日志" SnapDeleteLoginLog: "删除访问日志" SnapDeleteMonitor: "删除监控数据" @@ -503,8 +503,8 @@ ErrCheckValid: "校验备份文件失败,{{ .name }}" Rollback: "回滚" websiteDir: "网站目录" RecoverFailedStartRollBack: "恢复失败,开始回滚" -AppBackupFileIncomplete: "备份文件不完整 缺少 app.json 或者 app.tar.gz 文件" -AppAttributesNotMatch: "应用类型或者名称不一致" +AppBackupFileIncomplete: "备份文件不完整,缺少 app.json 或 app.tar.gz 文件" +AppAttributesNotMatch: "应用类型或名称不一致" #alert ErrAlert: "告警信息格式错误,请检查后重试!!" diff --git a/core/i18n/lang/en.yaml b/core/i18n/lang/en.yaml index e24fbe27c..b5296918a 100644 --- a/core/i18n/lang/en.yaml +++ b/core/i18n/lang/en.yaml @@ -221,7 +221,7 @@ UpdateUserResult: "Panel user: {{ .name }}" UpdatePasswordRead: "Error: Failed to read panel password information, {{ .err }}" UpdatePasswordNull: "Error: Panel password is empty!" UpdateUPasswordBlank: "Error: Panel password contains spaces!" -UpdatePasswordFormat: "Error: Panel password only supports letters, numbers, special characters !@#$%*_,.?, length 8-30!" +UpdatePasswordFormat: "Error: Panel password supports only letters, numbers, and special characters (!@#$%*_,.?) with a length of 8-30." UpdatePasswordLen: "Error: Please enter a password longer than 6 characters!" UpdatePasswordRe: "Confirm password:" UpdatePasswordErr: "Error: Failed to update panel password, {{ .err }}" diff --git a/core/i18n/lang/es-ES.yaml b/core/i18n/lang/es-ES.yaml index d6ebc03b4..f6abf343e 100644 --- a/core/i18n/lang/es-ES.yaml +++ b/core/i18n/lang/es-ES.yaml @@ -215,7 +215,7 @@ UpdateUserResult: "Usuario del panel: {{ .name }}" UpdatePasswordRead: "Error: Fallo al leer información de la contraseña del panel, {{ .err }}" UpdatePasswordNull: "Error: ¡la contraseña del panel está vacía!" UpdateUPasswordBlank: "Error: ¡la contraseña del panel contiene espacios!" -UpdatePasswordFormat: "Error: ¡La contraseña solo admite letras, números y los caracteres especiales !@#$%*_,.?, longitud 8-30!" +UpdatePasswordFormat: "Error: La contraseña del panel solo admite letras, números y caracteres especiales (!@#$%*_,.?), con una longitud de 8-30." UpdatePasswordLen: "Error: ¡Ingrese una contraseña mayor a 6 caracteres!" UpdatePasswordRe: "Confirmar contraseña:" UpdatePasswordErr: "Error: Fallo al actualizar la contraseña del panel, {{ .err }}" diff --git a/core/i18n/lang/ja.yaml b/core/i18n/lang/ja.yaml index ef2556da8..4a4b101e6 100644 --- a/core/i18n/lang/ja.yaml +++ b/core/i18n/lang/ja.yaml @@ -216,7 +216,7 @@ UpdateUserResult: "パネルユーザー: {{ .name }}" UpdatePasswordRead: "エラー: パネルパスワード情報の読み取りに失敗しました、{{ .err }}" UpdatePasswordNull: "エラー: パネルパスワードは空です!" UpdateUPasswordBlank: "エラー: パスワードにはスペースが含まれています!" -UpdatePasswordFormat: "エラー: パネルパスワードは、文字、数字、特殊文字のみをサポートします!@#$%*_、。、、長さ8-30!" +UpdatePasswordFormat: "エラー: パネルパスワードは英字、数字、特殊文字(!@#$%*_,.?)のみ使用でき、長さは8〜30文字です。" UpdatePasswordLen: "エラー: 6文字より長くパスワードを入力してください!" UpdatePasswordRe: "パスワードを認証する: " UpdatePasswordErr: "エラー: {{ .err }}のパスワードの更新に失敗しました" diff --git a/core/i18n/lang/ko.yaml b/core/i18n/lang/ko.yaml index b951e2675..100562236 100644 --- a/core/i18n/lang/ko.yaml +++ b/core/i18n/lang/ko.yaml @@ -215,7 +215,7 @@ UpdateUserResult: "패널 사용자: {{ .name }}" UpdatePasswordRead: "오류: 패널 비밀번호 정보 읽기 실패 {{ .err }}" UpdatePasswordNull: "오류: 패널 비밀번호가 비어 있습니다!" UpdateUPasswordBlank: "오류: 패널 비밀번호에 공백이 포함되어 있습니다!" -UpdatePasswordFormat: "오류: 패널 비밀번호는 문자, 숫자, 특수 문자 !@#$%*_,.?만 지원하며 길이는 8~30자입니다!" +UpdatePasswordFormat: "오류: 패널 비밀번호는 문자, 숫자, 특수문자(!@#$%*_,.?)만 지원하며 길이는 8~30자입니다." UpdatePasswordLen: "오류: 6자 이상의 비밀번호를 입력하세요!" UpdatePasswordRe: "비밀번호 확인:" UpdatePasswordErr: "오류: 패널 비밀번호 업데이트 실패 {{ .err }}" diff --git a/core/i18n/lang/ms.yaml b/core/i18n/lang/ms.yaml index c0e7f5a34..dfe67ddd7 100644 --- a/core/i18n/lang/ms.yaml +++ b/core/i18n/lang/ms.yaml @@ -203,14 +203,14 @@ UpdatePassword: "Kemas kini kata laluan panel" UpdatePort: "Kemas kini port panel" UpdateUserNull: "Ralat: Pengguna panel kosong!" UpdateUserBlank: "Ralat: Pengguna panel mengandungi ruang kosong!" -UpdateUserFormat: "Ralat: Format pengguna panel tidak sah! Hanya menyokong huruf Inggeris, Cina, nombor, dan , dengan panjang 3-30 aksara" +UpdateUserFormat: "Ralat: Format pengguna panel tidak sah! Hanya menyokong huruf Inggeris, Cina, nombor, dan _, dengan panjang 3-30 aksara" UpdateUserErr: "Ralat: Gagal mengemas kini pengguna panel, {{ .err }}" UpdateSuccessful: "Kemas kini berjaya!" UpdateUserResult: "Pengguna panel: {{ .name }}" UpdatePasswordRead: "Ralat: Gagal membaca maklumat kata laluan panel, {{ .err }}" UpdatePasswordNull: "Ralat: Kata laluan panel kosong!" UpdateUPasswordBlank: "Ralat: Kata laluan panel mengandungi ruang kosong!" -UpdatePasswordFormat: "Ralat: Kata laluan panel hanya menyokong huruf, nombor, dan aksara khas !@#$%*,.?, dengan panjang 8-30 aksara!" +UpdatePasswordFormat: "Ralat: Kata laluan panel hanya menyokong huruf, nombor, dan aksara khas (!@#$%*_,.?), dengan panjang 8-30 aksara." UpdatePasswordLen: "Ralat: Sila masukkan kata laluan lebih panjang daripada 6 aksara!" UpdatePasswordRe: "Sahkan kata laluan:" UpdatePasswordErr: "Ralat: Gagal mengemas kini kata laluan panel, {{ .err }}" diff --git a/core/i18n/lang/pt-BR.yaml b/core/i18n/lang/pt-BR.yaml index 8df0e673e..c93a314c0 100644 --- a/core/i18n/lang/pt-BR.yaml +++ b/core/i18n/lang/pt-BR.yaml @@ -215,7 +215,7 @@ UpdateUserResult: "Usuário do painel: {{ .name }}" UpdatePasswordRead: "Erro: Falha ao ler as informações da senha do painel, {{ .err }}" UpdatePasswordNull: "Erro: A senha do painel está vazia!" UpdateUPasswordBlank: "Erro: A senha do painel contém espaços!" -UpdatePasswordFormat: "Erro: A senha do painel suporta apenas letras, números, caracteres especiais !@#$%*_,.?, comprimento de 8-30!" +UpdatePasswordFormat: "Erro: A senha do painel suporta apenas letras, números e caracteres especiais (!@#$%*_,.?), com comprimento de 8-30." UpdatePasswordLen: "Erro: Por favor, insira uma senha com mais de 6 caracteres!" UpdatePasswordRe: "Confirmar senha:" UpdatePasswordErr: "Erro: Falha ao atualizar a senha do painel, {{ .err }}" diff --git a/core/i18n/lang/ru.yaml b/core/i18n/lang/ru.yaml index 2ae2051eb..a50b42165 100644 --- a/core/i18n/lang/ru.yaml +++ b/core/i18n/lang/ru.yaml @@ -214,7 +214,7 @@ UpdateUserResult: "Пользователь панели: {{ .name }}" UpdatePasswordRead: "Ошибка: не удалось прочитать информацию о пароле панели, {{ .err }}" UpdatePasswordNull: "Ошибка: введён пароль пуст!" UpdateUPasswordBlank: "Ошибка: введён пароль с пробелами!" -UpdatePasswordFormat: "Ошибка: пароль должен содержать только буквы, цифры, специальные символы (!@#$%*_,.?), длина 8-30 символов!" +UpdatePasswordFormat: "Ошибка: пароль панели должен содержать только буквы, цифры и специальные символы (!@#$%*_,.?) и иметь длину 8-30 символов." UpdatePasswordLen: "Ошибка: пароль должен быть длиной не менее 6 символов!" UpdatePasswordRe: "Подтверждение пароля:" UpdatePasswordErr: "Ошибка: не удалось изменить пароль панели, {{ .err }}" diff --git a/core/i18n/lang/tr.yaml b/core/i18n/lang/tr.yaml index 544d34738..10c78f145 100644 --- a/core/i18n/lang/tr.yaml +++ b/core/i18n/lang/tr.yaml @@ -214,7 +214,7 @@ UpdateUserResult: "Panel kullanıcısı: {{ .name }}" UpdatePasswordRead: "Hata: Panel şifre bilgilerini okuma başarısız, {{ .err }}" UpdatePasswordNull: "Hata: Panel şifresi boş!" UpdateUPasswordBlank: "Hata: Panel şifresi boşluk içeriyor!" -UpdatePasswordFormat: "Hata: Panel şifresi sadece harfler, sayılar, özel karakterler !@#$%*_,.? destekler, uzunluk 8-30!" +UpdatePasswordFormat: "Hata: Panel şifresi yalnızca harf, sayı ve özel karakter (!@#$%*_,.?) içerebilir ve uzunluğu 8-30 olmalıdır." UpdatePasswordLen: "Hata: Lütfen 6 karakterden uzun bir şifre girin!" UpdatePasswordRe: "Şifreyi onayla:" UpdatePasswordErr: "Hata: Panel şifresi güncelleme başarısız, {{ .err }}" diff --git a/core/i18n/lang/zh-Hant.yaml b/core/i18n/lang/zh-Hant.yaml index e255dd93f..f338a5eec 100644 --- a/core/i18n/lang/zh-Hant.yaml +++ b/core/i18n/lang/zh-Hant.yaml @@ -41,7 +41,7 @@ MasterNode: "主節點" CustomAppStoreFileValid: "應用商店包需要 .tar.gz 格式" ErrFileNotFound: "{{ .name }} 檔案不存在" AppBackup: '應用備份' -AppBackupPush: '傳輸應用備份文件 {{.file}} 到節點 {{ .name }}' +AppBackupPush: '傳輸應用備份檔案 {{.file}} 到節點 {{ .name }}' ErrSourceTargetSame: '源節點和目標節點不能相同!' AppInstall: '在 {{ .targetNode }} 節點安裝應用 {{ .name }}' AppInstallCheck: '檢查應用安裝環境' @@ -106,7 +106,7 @@ SubTaskFailed: "{{ .name }} 失敗: {{ .err }}" TaskInstall: "安裝" TaskUpgrade: "升級" TaskSync: "同步" -TaskSyncForNode: "同步節點數據" +TaskSyncForNode: "同步節點資料" TaskBackup: "備份" SuccessStatus: "{{ .name }} 成功" FailedStatus: "{{ .name }} 失敗 {{ .err }}" @@ -159,7 +159,7 @@ MasterData: "主節點資料" LoadSftpClient: "取得上傳用戶端" PackageMasterData: "生成主節點備份壓縮檔" UploadBackup: "上傳備份資料" -MvBackup: "行動數據到備份目錄" +MvBackup: "行動資料到備份目錄" TaskAddNode: "新增節點" LoadNodeArch: "取得節點架構資訊" LoadNodeArchDetail: "檢測到主節點架構: {{ .local }},子節點架構: {{ .node }}" @@ -184,7 +184,7 @@ AppMissVersion: "應用版本缺失,使用 -v 指定" AppVersionExist: "版本已存在!" AppCreateSuccessful: "建立成功!" AppWriteErr: "文件 {{ .name }} 寫入失敗 {{ .err }}" -SudoHelper: "請使用 {{ .cmd }} 或者切換到 root 使用者" +SudoHelper: "請使用 {{ .cmd }} 或切換到 root 使用者" ListenIPCommands: "切換監聽 IP" ListenIPv4: "監聽 IPv4" ListenIPv6: "監聽 IPv6" @@ -194,7 +194,7 @@ ResetMFA: "取消 1Panel 兩步驗證" ResetHttps: "取消 1Panel https 方式登入" ResetEntrance: "取消 1Panel 安全入口" ResetIPs: "取消 1Panel 授權 IP 限制" -ResetDomain: "取消 1Panel 存取域名綁定" +ResetDomain: "取消 1Panel 存取網域綁定" ResetPasskey: "清空 1Panel 通行密鑰" RestoreCommands: "回滾 1Panel 服務及資料" RestoreNoSuchFile: "暫無可回滾文件" @@ -231,7 +231,7 @@ UpdatePortFirewallAdd: "新增防火牆埠規則失敗,{{ .err }},請您手 UpdatePortFirewallDel: "錯誤: 防火牆埠刪除失敗,{{ .err }}" UpdatePortFirewallReload: "防火牆重載失敗,{{ .err }},請您手動重載防火牆。" UserInfo: "取得面板資訊" -UserInfoAddr: "面板地址: " +UserInfoAddr: "面板位址: " UserInfoPassHelp: "提示: 修改密碼可執行指令: " DBConnErr: "錯誤: 初始化資料庫連線失敗,{{ .err }}" SystemVersion: "版本: " diff --git a/core/i18n/lang/zh.yaml b/core/i18n/lang/zh.yaml index d555c779d..f48431e17 100644 --- a/core/i18n/lang/zh.yaml +++ b/core/i18n/lang/zh.yaml @@ -189,7 +189,7 @@ AppMissVersion: "应用版本缺失,使用 -v 指定" AppVersionExist: "版本已存在!" AppCreateSuccessful: "创建成功!" AppWriteErr: "文件 {{ .name }} 写入失败 {{ .err }}" -SudoHelper: "请使用 {{ .cmd }} 或者切换到 root 用户" +SudoHelper: "请使用 {{ .cmd }} 或切换到 root 用户" ListenIPCommands: "切换监听 IP" ListenIPv4: "监听 IPv4" ListenIPv6: "监听 IPv6" diff --git a/frontend/src/lang/modules/en.ts b/frontend/src/lang/modules/en.ts index 85a92e97b..895cc43e3 100644 --- a/frontend/src/lang/modules/en.ts +++ b/frontend/src/lang/modules/en.ts @@ -165,7 +165,7 @@ const message = { createSuccess: 'Created successfully', updateSuccess: 'Updated successfully', uploadSuccess: 'Uploaded successfully', - operateConfirm: 'If you are sure about the operation, please input it manually : ', + operateConfirm: 'If you are sure about the operation, please input it manually: ', inputOrSelect: 'Please select or enter', copyFailed: 'Failed to copy', operatorHelper: `The operation "{1}" will be performed on "{0}" and can't be undone. Do you want to continue?`, @@ -1628,9 +1628,9 @@ const message = { ownerHelper: 'The default user of the PHP operating environment: the user group is 1000:1000, it is normal that the users inside and outside the container show inconsistencies', searchHelper: 'Support wildcards such as *', - uploadFailed: '[{0}] File upload file', - fileUploadStart: 'Uploading [{0}]....', - currentSelect: 'Current select: ', + uploadFailed: '[{0}] File upload failed', + fileUploadStart: 'Uploading [{0}]...', + currentSelect: 'Current selection: ', unsupportedType: 'Unsupported file type', deleteHelper: 'Are you sure you want to delete the following files? By default, it will enter the recycle bin after deletion', diff --git a/frontend/src/lang/modules/es-es.ts b/frontend/src/lang/modules/es-es.ts index 098768ad6..ecb20003d 100644 --- a/frontend/src/lang/modules/es-es.ts +++ b/frontend/src/lang/modules/es-es.ts @@ -1635,8 +1635,8 @@ const message = { 'El usuario predeterminado del entorno PHP: el grupo es 1000:1000, es normal que haya diferencias entre usuario dentro y fuera del contenedor', searchHelper: 'Soporta comodines como *', uploadFailed: '[{0}] Fallo en la carga del archivo', - fileUploadStart: 'Cargando [{0}]....', - currentSelect: 'Seleccionado: ', + fileUploadStart: 'Cargando [{0}]...', + currentSelect: 'Selección actual: ', unsupportedType: 'Tipo de archivo no soportado', deleteHelper: '¿Está seguro de eliminar los siguientes archivos? Por defecto irán a la papelera de reciclaje.', fileHelper: diff --git a/frontend/src/lang/modules/ja.ts b/frontend/src/lang/modules/ja.ts index 5ba7a9c8a..b30aaa5f5 100644 --- a/frontend/src/lang/modules/ja.ts +++ b/frontend/src/lang/modules/ja.ts @@ -1591,8 +1591,8 @@ const message = { ownerHelper: 'PHP運用環境のデフォルトユーザー:ユーザーグループは1000:1000です。コンテナの内側と外側のユーザーが矛盾を示すのは普通です', searchHelper: '*などのワイルドカードをサポート', - uploadFailed: '[{0}]ファイルアップロードファイル', - fileUploadStart: 'アップロード[{0}] ....', + uploadFailed: '[{0}] ファイルのアップロードに失敗しました', + fileUploadStart: 'アップロード[{0}]...', currentSelect: '現在の選択:', unsupportedType: 'サポートされていないファイルタイプ', deleteHelper: '次のファイルを削除したいですか?デフォルトでは、削除後にリサイクルビンに入ります', @@ -2483,7 +2483,7 @@ const message = { deleteDatabaseHelper: 'ウェブサイトに関連付けられたデータベースも削除します', deleteConfirmHelper: '削除操作を元に戻すことはできません。 "{0}" を入力して、削除を確認します。', - staticPath: '対応するメインディレクトリはです', + staticPath: '対応するメインディレクトリは ', limit: 'スキーム', blog: 'フォーラム/ブログ', imageSite: '写真サイト', diff --git a/frontend/src/lang/modules/ko.ts b/frontend/src/lang/modules/ko.ts index 32507bb0a..95fffa435 100644 --- a/frontend/src/lang/modules/ko.ts +++ b/frontend/src/lang/modules/ko.ts @@ -1572,7 +1572,7 @@ const message = { 'PHP 운영 환경의 기본 사용자: 사용자 그룹은 1000:1000 입니다. 컨테이너 내부 및 외부에서 표시되는 불일치는 정상입니다.', searchHelper: '* 등의 와일드카드를 지원합니다', uploadFailed: '[{0}] 파일 업로드 실패', - fileUploadStart: '[{0}] 업로드 중....', + fileUploadStart: '[{0}] 업로드 중...', currentSelect: '현재 선택: ', unsupportedType: '지원되지 않는 파일 유형', deleteHelper: '다음 파일을 삭제하시겠습니까? 기본적으로 삭제 후 휴지통으로 이동합니다.', @@ -2442,7 +2442,7 @@ const message = { deleteDatabaseHelper: '웹사이트와 연결된 데이터베이스도 삭제합니다', deleteConfirmHelper: '삭제 작업은 되돌릴 수 없습니다. 확인하려면 "{0}"을(를) 입력하세요.', - staticPath: '해당 주요 디렉터리는', + staticPath: '해당 주요 디렉터리는 ', limit: '제한', blog: '포럼/블로그', imageSite: '이미지 사이트', diff --git a/frontend/src/lang/modules/ms.ts b/frontend/src/lang/modules/ms.ts index ec21af037..338ba12eb 100644 --- a/frontend/src/lang/modules/ms.ts +++ b/frontend/src/lang/modules/ms.ts @@ -1629,10 +1629,10 @@ const message = { changeOwner: 'Ubah suai pengguna dan kumpulan pengguna', containSub: 'Guna perubahan kebenaran secara rekursif', ownerHelper: - 'Pengguna lalai persekitaran operasi PHP: kumpulan pengguna adalah 1000:1000, adalah normal jika pengguna di dalam dan di luar kontena menunjukkan ketidakkonsistenan', + 'Pengguna lalai persekitaran operasi PHP: kumpulan pengguna adalah 1000:1000, dan adalah normal jika pengguna di dalam dan di luar kontena menunjukkan ketidakkonsistenan', searchHelper: 'Sokong wildcard seperti *', uploadFailed: '[{0}] Gagal memuat naik fail', - fileUploadStart: 'Memuat naik [{0}]....', + fileUploadStart: 'Memuat naik [{0}]...', currentSelect: 'Pilihan semasa: ', unsupportedType: 'Jenis fail tidak disokong', deleteHelper: diff --git a/frontend/src/lang/modules/pt-br.ts b/frontend/src/lang/modules/pt-br.ts index 6b2d55fe0..21b410f76 100644 --- a/frontend/src/lang/modules/pt-br.ts +++ b/frontend/src/lang/modules/pt-br.ts @@ -1620,8 +1620,8 @@ const message = { 'O usuário padrão do ambiente PHP: o grupo de usuários é 1000:1000, é normal que os usuários dentro e fora do container mostrem inconsistências', searchHelper: 'Suporte a curingas como *', uploadFailed: '[{0}] Falha no upload do arquivo', - fileUploadStart: 'Carregando [{0}]....', - currentSelect: 'Selecionado atualmente: ', + fileUploadStart: 'Carregando [{0}]...', + currentSelect: 'Seleção atual: ', unsupportedType: 'Tipo de arquivo não suportado', deleteHelper: 'Tem certeza de que deseja excluir os seguintes arquivos? Por padrão, eles irão para a lixeira após a exclusão', diff --git a/frontend/src/lang/modules/ru.ts b/frontend/src/lang/modules/ru.ts index ee2024c89..6d433b26e 100644 --- a/frontend/src/lang/modules/ru.ts +++ b/frontend/src/lang/modules/ru.ts @@ -1621,10 +1621,10 @@ const message = { changeOwner: 'Изменить пользователя и группу', containSub: 'Применить изменение прав рекурсивно', ownerHelper: - 'Пользователь по умолчанию для среды PHP: группа пользователей 1000:1000, нормально что пользователи внутри и снаружи контейнера показывают несоответствия', + 'Пользователь по умолчанию для среды PHP: группа пользователей 1000:1000, нормально, что пользователи внутри и снаружи контейнера показывают несоответствия', searchHelper: 'Поддерживает подстановочные знаки, такие как *', uploadFailed: '[{0}] Ошибка загрузки файла', - fileUploadStart: 'Загрузка [{0}]....', + fileUploadStart: 'Загрузка [{0}]...', currentSelect: 'Текущий выбор: ', unsupportedType: 'Неподдерживаемый тип файла', deleteHelper: 'Вы уверены, что хотите удалить следующие файлы? По умолчанию они будут помещены в корзину', @@ -2537,7 +2537,7 @@ const message = { deleteDatabaseHelper: 'Также удалить базу данных, связанную с веб-сайтом', deleteConfirmHelper: 'Операцию удаления нельзя отменить. Введите "{0}" для подтверждения удаления.', - staticPath: 'Соответствующая основная директория - ', + staticPath: 'Соответствующая основная директория: ', limit: 'Схема', blog: 'Форум/Блог', imageSite: 'Сайт изображений', diff --git a/frontend/src/lang/modules/tr.ts b/frontend/src/lang/modules/tr.ts index cb60fc049..97b50a186 100644 --- a/frontend/src/lang/modules/tr.ts +++ b/frontend/src/lang/modules/tr.ts @@ -165,7 +165,7 @@ const message = { createSuccess: 'Başarıyla oluşturuldu', updateSuccess: 'Başarıyla güncellendi', uploadSuccess: 'Başarıyla yüklendi', - operateConfirm: 'İşlemden eminseniz, lütfen manuel olarak girin : ', + operateConfirm: 'İşlemden eminseniz, lütfen manuel olarak girin: ', inputOrSelect: 'Lütfen seçin veya girin', copyFailed: 'Kopyalama başarısız', operatorHelper: diff --git a/frontend/src/lang/modules/zh-Hant.ts b/frontend/src/lang/modules/zh-Hant.ts index 92f4569b4..5759b8380 100644 --- a/frontend/src/lang/modules/zh-Hant.ts +++ b/frontend/src/lang/modules/zh-Hant.ts @@ -70,7 +70,7 @@ const message = { agree: '同意', notAgree: '不同意', preview: '預覽', - open: '打開', + open: '開啟', notSave: '不儲存', createNewFolder: '建立資料夾', createNewFile: '建立檔案', @@ -155,10 +155,10 @@ const message = { operationSuccess: '操作成功', copySuccess: '複製成功', notSupportOperation: '不支援的目前操作', - requestTimeout: '請求超時,請稍後重試', + requestTimeout: '請求超時,請稍後重試', infoTitle: '提示', notRecords: '目前任務未產生執行記錄', - sureLogOut: '您是否確認退出登入?', + sureLogOut: '您是否確認登出?', createSuccess: '建立成功', updateSuccess: '更新成功', uploadSuccess: '上傳成功', @@ -169,10 +169,10 @@ const message = { backupSuccess: '備份成功', restoreSuccess: '備份成功', notFound: '抱歉,您訪問的頁面不存在', - unSupportType: '不支援目前文件類型!', - unSupportSize: '上傳文件超過 {0}M,請確認!', + unSupportType: '不支援目前檔案類型!', + unSupportSize: '上傳檔案超過 {0}M,請確認!', fileExist: '目前資料夾已存在該文件,不支援重複上傳!', - fileNameErr: '僅支援上傳名稱包含英文、中文、數字或者 .-_ ,長度 1-256 位的文件', + fileNameErr: '僅支援上傳名稱包含英文、中文、數字或 .-_ ,長度 1-256 位的文件', confirmNoNull: '請確認 {0} 值不為空', errPort: '錯誤的埠資訊,請確認!', remove: '移出', @@ -185,9 +185,9 @@ const message = { installSuccess: '安裝成功', uninstallSuccess: '移除成功', offlineTips: '離線版本不支援此操作', - errImportFormat: '導入數據或格式異常,請檢查後重試!', - importHelper: '導入衝突或重複數據時,將以導入內容為標準,更新原數據庫數據。', - errImport: '文件內容異常:', + errImportFormat: '匯入資料或格式異常,請檢查後重試!', + importHelper: '匯入衝突或重複資料時,將以匯入內容為標準,更新原資料庫資料。', + errImport: '檔案內容異常:', }, login: { username: '使用者名稱', @@ -202,7 +202,7 @@ const message = { safeEntrance1: '目前環境已經開啟了安全入口登入', safeEntrance2: '在 SSH 終端輸入以下指令來查看面板入口: 1pctl user-info', errIP1: '目前環境已經開啟了授權 IP 訪問', - errDomain1: '目前環境已經開啟了訪問域名綁定', + errDomain1: '目前環境已經開啟了存取網域綁定', errHelper: '可在 SSH 終端輸入以下指令來重設綁定資訊: ', codeInput: '請輸入 MFA 驗證器的 6 位驗證碼', mfaTitle: 'MFA 認證', @@ -213,7 +213,7 @@ const message = { agreeTitle: '服務協議及隱私保護', agreeContent: '為了更好的保障您的合法權益,請您閱讀並同意以下協議 « 飛致雲社區軟體許可協議 »', - logout: '退出登入', + logout: '登出', passkeyFailed: '通行密鑰登入失敗,請重試', passkeyNotSupported: '目前瀏覽器或環境不支援通行密鑰', passkeyToPassword: '無法使用通行密鑰? 使用帳號密碼登入', @@ -242,10 +242,10 @@ const message = { number: '請輸入正確的數字', integer: '請輸入正確的正整數', ip: '請輸入正確的 IP 位址', - host: '請輸入正確的 IP 或者域名', - hostHelper: '支援輸入 ip 或者域名', + host: '請輸入正確的 IP 或域名', + hostHelper: '支援輸入 ip 或域名', port: '請輸入正確的埠,1-65535', - domain: '域名格式錯誤', + domain: '網域格式錯誤', databaseName: '支援英文、數字、_,長度1-30', numberRange: '數字範圍: {0} - {1}', paramName: '支援英文、數字、.-和_,長度2-64', @@ -410,7 +410,7 @@ const message = { kernelArch: '系統類型', network: '流量', io: '磁碟 IO', - ip: '主機地址', + ip: '主機位址', proxy: '系統代理', baseInfo: '基本資訊', totalSend: '總發送', @@ -443,7 +443,7 @@ const message = { loadAverage: '最近 {0} 分鐘平均負載', load: '負載', mount: '掛載點', - fileSystem: '文件系統', + fileSystem: '檔案系統', total: '總計', used: '已用', cache: '快取', @@ -470,7 +470,7 @@ const message = { closeAll: '關閉所有', }, header: { - logout: '退出登入', + logout: '登出', }, database: { manage: '管理', @@ -498,7 +498,7 @@ const message = { loadBackup: '匯入備份', localUpload: '本機上傳', hostSelect: '伺服器選擇', - selectHelper: '是否確認匯入備份文件 {0}?', + selectHelper: '是否確認匯入備份檔案 {0}?', remoteAccess: '遠端存取', remoteHelper: '多個 ip 以逗號分隔,例:172.16.10.111,172.16.10.112', remoteConnHelper: 'root 帳號遠端連接 MySQL 有安全風險,開啟需謹慎!', @@ -527,9 +527,9 @@ const message = { unBindRemoteHelper: '解綁遠端資料庫只會刪除綁定關係,不會直接刪除遠端資料庫', editRemoteDB: '編輯遠端伺服器', localDB: '本機資料庫', - address: '資料庫地址', + address: '資料庫位址', version: '資料庫版本', - userHelper: 'root 使用者或者擁有 root 權限的資料庫使用者', + userHelper: 'root 使用者或擁有 root 權限的資料庫使用者', pgUserHelper: '具有超級管理員權限的資料庫使用者', ssl: '使用 SSL', clientKey: '用戶端私鑰', @@ -540,10 +540,10 @@ const message = { initialDB: '初始資料庫', formatHelper: '目前資料庫字元集為 {0},字元集不一致可能導致復原失敗', - dropHelper: '將上傳文件拖曳到此處,或者', + dropHelper: '將上傳檔案拖曳到此處,或', clickHelper: '點擊上傳', supportUpType: - '僅支援 sql、sql.gz、tar.gz、.zip 檔案格式,匯入的壓縮文件必須保證只有一個 .sql 文件或者包含 test.sql', + '僅支援 sql、sql.gz、tar.gz、.zip 檔案格式,匯入的壓縮文件必須保證只有一個 .sql 文件或包含 test.sql', currentStatus: '目前狀態', baseParam: '基礎參數', @@ -566,7 +566,7 @@ const message = { cacheHitHelper: '若過低,增加 query_cache_size', tmpTableToDB: '建立臨時表到磁碟', tmpTableToDBHelper: '若過大,嘗試增加 tmp_table_size', - openTables: '已打開的表', + openTables: '已開啟的表', openTablesHelper: 'table_open_cache 配置值應大於等於此值', selectFullJoin: '沒有使用索引的量', selectFullJoinHelper: '若不為0,請檢查資料表的索引是否合理', @@ -708,7 +708,7 @@ const message = { }, gpu: { gpu: 'GPU 監控', - gpuHelper: '目前系統未偵測到 NVIDIA-SMI 或者 XPU-SMI 指令,請檢查後重試!', + gpuHelper: '目前系統未偵測到 NVIDIA-SMI 或 XPU-SMI 指令,請檢查後重試!', process: '行程資訊', type: '類型', typeG: '圖形', @@ -774,7 +774,7 @@ const message = { externalUrl: '外部連接地址', operatorHelper: '將對 {0} 進行 {1} 操作,是否繼續?', domain: '預設訪問地址', - domainHelper: '例如:192.168.1.1 或者 example.com', + domainHelper: '例如:192.168.1.1 或 example.com', bindDomain: '綁定網站', commandPlaceHolder: '目前僅支援 npx 和 二進制啟動的指令', importMcpJson: '匯入 MCP Server 配置', @@ -783,7 +783,7 @@ const message = { outputTransport: '輸出類型', streamableHttpPath: '流式傳輸路徑', streamableHttpPathHelper: '例如:/mcp, 注意不要與其他 Server 重複', - npxHelper: '適合 npx 或者 二進制啟動的 mcp', + npxHelper: '適合 npx 或 二進制啟動的 mcp', uvxHelper: '適合 uvx 啟動的 mcp', }, tensorRT: { @@ -905,8 +905,8 @@ const message = { forcePull: '強制拉取鏡像', forcePullHelper: '忽略伺服器已存在的鏡像,重新拉取一次', server: '伺服器', - serverExample: '80, 80-88, ip:80 或者 ip:80-88', - containerExample: '80 或者 80-88', + serverExample: '80, 80-88, ip:80 或 ip:80-88', + containerExample: '80 或 80-88', exposePort: '暴露埠', exposeAll: '暴露所有', cmdHelper: '例: nginx -g "daemon off;"', @@ -1018,8 +1018,8 @@ const message = { composeFile: '編排檔案', fromChangeHelper: '切換來源將清空檔前已編輯內容,是否繼續?', composePathHelper: '設定檔儲存路徑: {0}', - composeHelper: '通過 1Panel 編輯或者模版建立的編排,將儲存在 {0}/docker/compose 路徑下', - deleteFile: '刪除文件', + composeHelper: '通過 1Panel 編輯或模版建立的編排,將儲存在 {0}/docker/compose 路徑下', + deleteFile: '刪除檔案', deleteComposeHelper: '刪除容器編排的所有檔案,包括設定檔和持久化文件,請謹慎操作!', deleteCompose: '" 刪除此編排', createCompose: '建立編排', @@ -1070,7 +1070,7 @@ const message = { sockPathHelper: 'Docker 守護行程(Docker Daemon)與用戶端之間的通信通道', sockPathHelper1: '預設路徑:/var/run/docker.sock', sockPathMsg: '儲存設定 Socket 路徑可能導致 Docker 服務不可用,是否繼續?', - sockPathErr: '請選擇或輸入正確的 Docker sock 文件路徑', + sockPathErr: '請選擇或輸入正確的 Docker sock 檔案路徑', related: '相關資源', includeAppstore: '顯示應用商店容器', excludeAppstore: '隱藏應用商店容器', @@ -1119,8 +1119,8 @@ const message = { database: '備份資料庫', backupArgs: '備份參數', backupArgsHelper: '未列出的備份參數可手動輸入並選擇,例如:輸入 --no-data 後選擇下拉列表中的第一個選項', - singleTransaction: '使用單一事務備份 InnoDB 表,適用於大數據量的備份', - quick: '逐行讀取數據,而不是將整個表加載到內存中,適用於大數據量和低內存機器的備份', + singleTransaction: '使用單一事務備份 InnoDB 表,適用於大資料量的備份', + quick: '逐行讀取資料,而不是將整個表加載到內存中,適用於大資料量和低內存機器的備份', skipLockTables: '不鎖定所有表進行備份,適用於高併發的資料庫', missBackupAccount: '未能找到備份帳號', syncDate: '同步時間 ', @@ -1130,7 +1130,7 @@ const message = { cronSpec: '執行週期', cronSpecDoc: '自訂執行週期僅支援【分 時 日 月 週】格式,例如 0 0 * * *,具體可參考官方文件。', cronSpecHelper: '請輸入正確的執行週期', - cleanHelper: '該操作將所有任務執行記錄、備份文件和日誌檔案,是否繼續?', + cleanHelper: '該操作將清理所有任務執行記錄、備份檔案和日誌檔案,是否繼續?', backupContent: '備份內容', directory: '備份目錄 / 檔案', sourceDir: '備份目錄', @@ -1140,8 +1140,8 @@ const message = { exclusionRulesHelper: '選擇或輸入排除規則,輸入完一組後Enter繼續,排除規則將對此次備份的所有壓縮操作生效', default_download_path: '預設下載網址', saveLocal: '同時保留本機備份(和雲端儲存保留份數一致)', - url: 'URL 地址', - urlHelper: '請輸入正確的 URL 地址', + url: 'URL 位址', + urlHelper: '請輸入正確的 URL 位址', targetHelper: '備份帳號可在面板設定中維護', ignoreApp: '排除應用', withImage: '備份應用映像', @@ -1152,7 +1152,7 @@ const message = { ignoreErrHelper: '忽略備份過程中出現的錯誤,保證所有備份任務執行', retryTimesHelper: '為 0 表示失敗後不重試', retainCopiesHelper: '執行記錄及日誌保留份數', - retainCopiesHelper1: '備份文件保留份數', + retainCopiesHelper1: '備份檔案保留份數', retainCopiesUnit: ' 份 (查看)', cronSpecRule: '第 {0} 行中執行週期格式錯誤,請檢查後重試!', cronSpecRule2: '執行週期格式錯誤,請檢查後重試!', @@ -1185,9 +1185,9 @@ const message = { errRecord: '錯誤的日誌記錄', errHandle: '任務執行失敗', noRecord: '目前計劃任務暫未產生記錄', - cleanData: '刪除備份文件', + cleanData: '刪除備份檔案', cleanRemoteData: '刪除遠端備份檔案', - cleanDataHelper: '刪除該任務執行過程中產生的備份文件', + cleanDataHelper: '刪除該任務執行過程中產生的備份檔案', noLogs: '暫無任務輸出...', errPath: '備份路徑 [{0}] 錯誤,無法下載!', cutWebsiteLog: '切割網站日誌', @@ -1277,7 +1277,7 @@ const message = { command: '指令', addHost: '新增主機', localhost: '本機伺服器', - ip: '主機地址', + ip: '主機位址', authMode: '認證方式', passwordMode: '密碼認證', rememberPassword: '記住認證資訊', @@ -1311,7 +1311,7 @@ const message = { swapHelper1: 'Swap 的大小應該是物理記憶體的 1 到 2 倍,可根據具體情況進行調整;', swapHelper2: '在建立 Swap 文件之前,請確保系統硬碟有足夠的可用空間,Swap 文件的大小將佔用相應的磁碟空間;', swapHelper3: - 'Swap 可以幫助紓解記憶體壓力,但僅是一個備選項,過多依賴可能導致系統效能下降,建議優先考慮增加記憶體或者最佳化應用程式記憶體使用;', + 'Swap 可以幫助紓解記憶體壓力,但僅是一個備選項,過多依賴可能導致系統效能下降,建議優先考慮增加記憶體或最佳化應用程式記憶體使用;', swapHelper4: '建議定期監控 Swap 的使用情況,以確保系統正常執行。', swapDeleteHelper: '此操作將移除 Swap 分區 {0},出於系統安全考慮,不會自動刪除該文件,如需刪除請手動操作!', saveHelper: '請先儲存目前設定!', @@ -1370,7 +1370,7 @@ const message = { ignoreIP: 'IP 白名單', bannedIP: 'IP 黑名單', logPath: '日誌路徑', - logPathHelper: '預設為 /var/log/secure 或者 /var/log/auth.log', + logPathHelper: '預設為 /var/log/secure 或 /var/log/auth.log', }, ftp: { ftp: 'FTP 帳戶', @@ -1397,29 +1397,29 @@ const message = { notStart: '目前未開啟 ClamAV 服務,請先開啟!', removeRecord: '刪除報告文件', noRecords: '點擊「執行」按鈕開始掃描,掃描結果將會記錄在這裡。', - removeInfected: '刪除病毒文件', - removeInfectedHelper: '刪除任務檢測到的病毒文件,以確保伺服器的安全和正常執行。', + removeInfected: '刪除病毒檔案', + removeInfectedHelper: '刪除任務檢測到的病毒檔案,以確保伺服器的安全和正常執行。', clamCreate: '建立掃描規則', - infectedStrategy: '感染文件策略', - removeHelper: '刪除病毒文件,請謹慎選擇!', + infectedStrategy: '感染檔案策略', + removeHelper: '刪除病毒檔案,請謹慎選擇!', move: '移動', - moveHelper: '將病毒文件移動到指定目錄下', - copyHelper: '將病毒文件複製到指定目錄下', + moveHelper: '將病毒檔案移動到指定目錄下', + copyHelper: '將病毒檔案複製到指定目錄下', none: '不操作', - noneHelper: '不對病毒文件採取任何操作', + noneHelper: '不對病毒檔案採取任何操作', scanDir: '掃描目錄', infectedDir: '隔離目錄', scanDate: '掃描時間', scanResult: '掃描報告條數', tail: '日誌顯示行數', - infectedFiles: '感染文件數', + infectedFiles: '感染檔案數', log: '詳情', clamConf: '掃描配置', clamLog: '掃描日誌', freshClam: '病毒庫重新整理配置', freshClamLog: '病毒庫重新整理日誌', alertHelper: '專業版支援定時掃描和簡訊告警功能', - alertTitle: '病毒掃描「{0}」任務檢測到感染文件告警', + alertTitle: '病毒掃描「{0}」任務檢測到感染檔案告警', }, }, logs: { @@ -1443,7 +1443,7 @@ const message = { apps: '應用', websites: '網站', containers: '容器', - files: '文件管理', + files: '檔案管理', runtimes: '執行環境', process: '行程管理', toolbox: '工具箱', @@ -1530,9 +1530,9 @@ const message = { uploadSuccess: '上傳成功!', downloadProcess: '下載進度', downloading: '正在下載...', - infoDetail: '文件屬性', + infoDetail: '檔案屬性', root: '根目錄', - list: '文件列表', + list: '檔案列表', sub: '子目錄', theme: '主題', language: '語言', @@ -1540,13 +1540,13 @@ const message = { copyDir: '複製路徑', paste: '貼上', changeOwner: '修改使用者和使用者群組', - containSub: '同時修改子文件屬性', + containSub: '同時修改子檔案屬性', ownerHelper: 'PHP 執行環境預設使用者:使用者群組為 1000:1000, 容器內外使用者顯示不一致為正常現象', searchHelper: '支援 * 等萬用字元', - uploadFailed: '【{0}】 文件上傳失敗', - fileUploadStart: '正在上傳【{0}】....', + uploadFailed: '【{0}】 檔案上傳失敗', + fileUploadStart: '正在上傳【{0}】...', currentSelect: '目前選中: ', - unsupportedType: '不支援的文件類型', + unsupportedType: '不支援的檔案類型', deleteHelper: '確定刪除所選檔案? 預設刪除之後將進入回收站?', fileHelper: '注意:1. 搜尋結果不支援排序功能 2. 資料夾無法依大小排序。', forceDeleteHelper: '永久刪除檔案(不進入回收站,直接刪除)', @@ -1581,10 +1581,10 @@ const message = { back: '後退', top: '返回上一層', up: '上一層', - openWithVscode: 'VS Code 打開', + openWithVscode: 'VS Code 開啟', vscodeHelper: '請確保本機已安裝 VS Code 並配置了 SSH Remote 外掛程式', saveContentAndClose: '檔案已被修改,是否儲存並關閉?', - saveAndOpenNewFile: '檔案已被修改,是否儲存並打開新檔案?', + saveAndOpenNewFile: '檔案已被修改,是否儲存並開啟新檔案?', noEdit: '檔案未修改,無需此操作!', noNameFolder: '未命名資料夾', noNameFile: '未命名檔案', @@ -1655,7 +1655,7 @@ const message = { unSyncPass: '金鑰密碼無法同步', syncHelper: '同步操作將清理失效金鑰並同步新增的完整金鑰對,是否繼續?', input: '手動輸入', - import: '文件上傳', + import: '檔案上傳', authKeys: '授權金鑰', authKeysHelper: '是否儲存目前公鑰資訊?', pubkey: '金鑰資訊', @@ -1686,7 +1686,7 @@ const message = { panel: '面板', user: '面板使用者', userChange: '修改面板使用者', - userChangeHelper: '修改面板使用者將退出登入,是否繼續?', + userChangeHelper: '修改面板使用者將登出,是否繼續?', passwd: '面板密碼', emailHelper: '用於密碼找回', watermark: '浮水印設定', @@ -1717,7 +1717,7 @@ const message = { languageHelper: '預設跟隨瀏覽器語言,設定後只對目前瀏覽器生效,更換瀏覽器後需要重新設定', sessionTimeout: '超時時間', sessionTimeoutError: '最小超時時間為 300 秒', - sessionTimeoutHelper: '如果使用者超過 {0} 秒未操作面板,面板將自動退出登入', + sessionTimeoutHelper: '如果使用者超過 {0} 秒未操作面板,面板將自動登出', systemIP: '預設存取地址', systemIPHelper: '應用跳轉、容器存取等功能將使用此地址進行路由。每個節點可設定不同地址。', proxy: '代理伺服器', @@ -1888,7 +1888,7 @@ const message = { runtimeLabel: '執行環境', appLabel: '應用', databaseLabel: '資料庫', - snapshotLabel: '快照文件', + snapshotLabel: '快照檔案', websiteLabel: '網站', directoryLabel: '目錄', appStoreLabel: '應用商店', @@ -1897,7 +1897,7 @@ const message = { sslLabel: '證書目錄', reCreate: '建立快照失敗', reRollback: '回滾快照失敗', - deleteHelper: '將刪除該快照的所有備份文件,包括第三方備份帳號中的文件。', + deleteHelper: '將刪除該快照的所有備份檔案,包括第三方備份帳號中的文件。', ignoreRule: '排除規則', editIgnoreRule: '@:commons.button.edit@:setting.ignoreRule', ignoreHelper: '快照時將使用該規則對 1Panel 資料目錄進行壓縮備份,請謹慎修改。', @@ -1909,16 +1909,16 @@ const message = { appData: '備份 1Panel 已安裝應用', panelData: '備份 1Panel 資料目錄', backupData: '備份 1Panel 本機備份目錄', - compress: '製作快照文件', - upload: '上傳快照文件', + compress: '製作快照檔案', + upload: '上傳快照檔案', recoverDetail: '復原詳情', recoverFailed: '快照復原失敗', createSnapshot: '建立快照', importSnapshot: '同步快照', - importHelper: '快照文件目錄:', + importHelper: '快照檔案目錄:', lastRecoverAt: '上次復原時間', lastRollbackAt: '上次回滾時間', - reDownload: '重新下載備份文件', + reDownload: '重新下載備份檔案', recoverErrArch: '不支援在不同伺服器架構之間進行快照復原操作!', recoverErrSize: '檢測到目前磁碟空間不足,請檢查或清理後重試!', recoverHelper: '即將從快照 {0} 開始復原,復原前請確認以下資訊:', @@ -1977,14 +1977,14 @@ const message = { timeoutHelper: '【 {0} 天後 】面板密碼即將過期,過期後需要重新設定密碼', complexity: '密碼複雜度驗證', complexityHelper: '開啟後密碼必須滿足長度為 8-30 位,並包含字母、數字、至少兩種特殊字元', - bindDomain: '域名綁定', + bindDomain: '網域綁定', unBindDomain: '域名解綁', panelSSL: '面板 SSL', panelSSLHelper: '面板 SSL 自動續期後需要手動重啟 1Panel 服務才可生效', - unBindDomainHelper: '解除域名綁定可能造成系統不安全,是否繼續?', - bindDomainHelper: '設定域名綁定後,僅能透過設定中域名訪問 1Panel 服務', - bindDomainHelper1: '綁定域名為空時,則取消域名綁定', - bindDomainWarning: '設定域名綁定後,將退出目前登入,且僅能透過設定中域名訪問 1Panel 服務,是否繼續?', + unBindDomainHelper: '解除網域綁定可能造成系統不安全,是否繼續?', + bindDomainHelper: '設定網域綁定後,僅能透過設定中域名訪問 1Panel 服務', + bindDomainHelper1: '綁定域名為空時,則取消網域綁定', + bindDomainWarning: '設定網域綁定後,將退出目前登入,且僅能透過設定中域名訪問 1Panel 服務,是否繼續?', allowIPs: '授權 IP', unAllowIPs: '取消授權', unAllowIPsWarning: '授權 IP 為空將允許所有 IP 訪問系統,可能造成系統不安全,是否繼續?', @@ -2087,7 +2087,7 @@ const message = { power: '授權', unbindHelper: '解除綁定後將清除該節點所有專業版相關設定,是否繼續?', importLicense: '匯入許可證', - importHelper: '請點擊或拖動許可文件到此處', + importHelper: '請點擊或拖動許可檔案到此處', levelUpPro: '升級專業版', licenseSync: '許可證同步', knowMorePro: '了解更多', @@ -2108,7 +2108,7 @@ const message = { }, clean: { scan: '開始掃描', - scanHelper: '輕鬆梳理 1Panel 執行期間積累的垃圾文件', + scanHelper: '輕鬆梳理 1Panel 執行期間積累的垃圾檔案', clean: '立即清理', reScan: '重新掃描', cleanHelper: '已勾選文件及目錄清理後無法回滾,是否繼續?', @@ -2121,8 +2121,8 @@ const message = { cleanSuccessful: '清理成功!', currentCleanHelper: '本次清理文件及目錄:{0} 個, 總計清理:{1}', suggest: '( 建議清理 )', - totalScan: '待清理垃圾文件共計: ', - selectScan: '已選中垃圾文件共計: ', + totalScan: '待清理垃圾檔案共計: ', + selectScan: '已選中垃圾檔案共計: ', system: '系統垃圾', systemHelper: '快照、升級等過程中產生的臨時檔案', @@ -2142,9 +2142,9 @@ const message = { unknownWebsite: '未關聯網站備份', unknownSnapshot: '未關聯快照備份', - upload: '臨時上傳文件', + upload: '臨時上傳檔案', uploadHelper: '系統上傳備份列表中上傳的暫存檔', - download: '臨時下載文件', + download: '臨時下載檔案', downloadHelper: '系統從第三方備份帳號下載的暫存檔', directory: '資料夾', @@ -2179,7 +2179,7 @@ const message = { syncSuccess: '同步成功', canUpgrade: '可升級', backupName: '檔案名稱', - backupPath: '文件路徑', + backupPath: '檔案路徑', backupdate: '備份時間', versionSelect: '請選擇版本', operatorHelper: '將對選中應用進行 {0} 操作,是否繼續?', @@ -2219,8 +2219,8 @@ const message = { appInstallWarn: '應用埠預設不允許外部訪問,可以在下方進階設定中選擇放開', upgradeStart: '開始升級!請稍後重新整理頁面', toFolder: '進入安裝目錄', - editCompose: '編輯 compose 文件', - editComposeHelper: '編輯 compose 文件可能導致軟體安裝失敗', + editCompose: '編輯 compose 檔案', + editComposeHelper: '編輯 compose 檔案可能導致軟體安裝失敗', composeNullErr: 'compose 不能為空', takeDown: '已廢棄', allReadyInstalled: '已安裝', @@ -2239,10 +2239,10 @@ const message = { hostModeHelper: '目前應用網路模式為 host 模式,如需放開埠,請在防火牆頁面手動放開', showLocal: '顯示本機應用程式', reload: '重載', - upgradeWarn: '升級應用程式會取代 docker-compose.yml 文件,如有更改,可以點擊查看文件對比', + upgradeWarn: '升級應用程式會取代 docker-compose.yml 文件,如有更改,可以點擊查看檔案對比', newVersion: '新版本', oldVersion: '目前版本', - composeDiff: '文件對比', + composeDiff: '檔案對比', showDiff: '看對比', useNew: '使用自訂版本', useDefault: '使用預設版本', @@ -2265,7 +2265,7 @@ const message = { webUIPlaceholder: '例如:example.com:8080/login', defaultWebDomain: '預設訪問地址', defaultWebDomainHepler: '預設訪問用於應用埠跳轉,例如應用埠為 8080 則跳轉地址為 http(s)://預設訪問地址:8080', - webUIConfig: '目前節點尚未配置預設存取地址,請在應用參數或者前往面板設定進行設定!', + webUIConfig: '目前節點尚未配置預設存取地址,請在應用參數或前往面板設定進行設定!', toLink: '連結', customAppHelper: '在安裝自訂應用商店包之前,請確保沒有任何已安裝的應用。', forceUninstall: '強制移除', @@ -2273,7 +2273,7 @@ const message = { ignoreAll: '忽略後續所有版本', ignoreVersion: '忽略指定版本', specifyIP: '綁定主機 IP', - specifyIPHelper: '設定埠綁定的主機地址/網卡(如果你不清楚這個的作用,請不要填寫)', + specifyIPHelper: '設定埠綁定的主機位址/網卡(如果你不清楚這個的作用,請不要填寫)', uninstallDeleteBackup: '移除應用-刪除備份', uninstallDeleteImage: '移除應用-刪除鏡像', upgradeBackup: '應用升級前備份應用', @@ -2362,8 +2362,8 @@ const message = { frequency: '頻率', ccHelper: '{0} 秒內累計請求同一URL超過 {1} 次,觸發CC防禦,封鎖此IP', mustSave: '修改之後需要儲存才能生效', - fileExt: '文件副檔名', - fileExtBlock: '文件副檔名黑名單', + fileExt: '檔案副檔名', + fileExtBlock: '檔案副檔名黑名單', value: '值', enable: '開啟', proxyAddress: '代理地址', @@ -2416,7 +2416,7 @@ const message = { encryptHelper: "Let's Encrypt 簽發證書有頻率限制,但足以滿足正常需求,過於頻繁操作會導致簽發失敗。具體限制請看 官方文件 ", ipValue: '值', - ext: '文件副檔名', + ext: '檔案副檔名', wafInputHelper: '按行輸入資料,一行一個', data: '資料', ever: '永久', @@ -2551,7 +2551,7 @@ const message = { batchAdd: '批次新增域名', batchInput: '批次輸入', domainNotFQDN: '此域名可能無法在公網訪問', - domainInvalid: '域名格式不正確', + domainInvalid: '網域格式不正確', domainBatchHelper: '一行一個域名,格式:域名:端口@ssl\n範例:example.com:443@ssl 或 example.com', generateDomain: '生成', global: '全域', @@ -2579,7 +2579,7 @@ const message = { ipHashBackupErr: 'IP 雜湊不支援備用節點', failTimeout: '故障超時', failTimeoutHelper: - '服務器健康檢查的時間窗口長度。在該時間段內累計失敗次數達到閾值時,服務器將被暫時移除,並在經過相同時長後重新嘗試。默認 10 秒', + '服務器健康檢查的時間窗口長度。在該時間段內累計失敗次數達到閾值時,服務器將被暫時移除,並在經過相同時長後重新嘗試。預設 10 秒', staticChangePHPHelper: '目前為靜態網站,可切換為 PHP 網站', proxyCache: '反向代理快取', @@ -2655,9 +2655,9 @@ const message = { max_input_time: '最大輸入時間', memory_limit: ' 腳本記憶體限制', post_max_size: 'POST資料最大尺寸', - file_uploads: '是否允許上傳文件', - upload_max_filesize: '允許上傳文件的最大尺寸', - max_file_uploads: '允許同時上傳文件的最大數量', + file_uploads: '是否允許上傳檔案', + upload_max_filesize: '允許上傳檔案的最大尺寸', + max_file_uploads: '允許同時上傳檔案的最大數量', default_socket_timeout: 'Socket超時時間', error_reporting: '錯誤級別', display_errors: '是否輸出詳細錯誤資訊', @@ -2678,7 +2678,7 @@ const message = { nginx: { serverNamesHashBucketSizeHelper: '伺服器名字的hash表大小', clientHeaderBufferSizeHelper: '用戶端請求的頭buffer大小', - clientMaxBodySizeHelper: '最大上傳文件', + clientMaxBodySizeHelper: '最大上傳檔案', keepaliveTimeoutHelper: '連接超時時間', gzipMinLengthHelper: '最小壓縮文件', gzipCompLevelHelper: '壓縮率', @@ -2710,8 +2710,8 @@ const message = { buildHelper: '新增/修改模組後點擊構建,構建成功後會自動重啟 OpenResty', defaultHttps: 'HTTPS 防竄站', defaultHttpsHelper1: '開啟後可以解決 HTTPS 竄站問題', - sslRejectHandshake: '拒絕默認 SSL 握手', - sslRejectHandshakeHelper: '開啟之後可以避免證書洩露,設置默認網站會讓此設置失效', + sslRejectHandshake: '拒絕預設 SSL 握手', + sslRejectHandshakeHelper: '開啟之後可以避免證書洩露,設置預設網站會讓此設置失效', }, ssl: { create: '申請證書', @@ -2793,7 +2793,7 @@ const message = { ccDeny: 'CC 防護', ipWhiteList: 'IP 白名單', ipBlockList: 'IP 黑名單', - fileExtBlockList: '文件副檔名黑名單', + fileExtBlockList: '檔案副檔名黑名單', urlWhiteList: 'URL 白名單', urlBlockList: 'URL 黑名單', argsCheck: 'GET 參數校驗', @@ -2852,7 +2852,7 @@ const message = { forwardHelper2: '如果目標 IP 不填寫,預設為本機埠轉發', forwardPortHelper: '支援端口範圍,如:8080-8089', forwardInboundInterface: '轉發入站網路介面', - exportHelper: '即將導出 {0} 條防火牆規則,是否繼續?', + exportHelper: '即將匯出 {0} 條防火牆規則,是否繼續?', importSuccess: '成功匯入 {0} 條規則', importPartialSuccess: '匯入完成:成功 {0} 條,失敗 {1} 條', @@ -2928,7 +2928,7 @@ const message = { javaScriptHelper: '請填寫完整啟動指令,例如:java -jar halo.jar -Xmx1024M -Xms256M', javaDirHelper: '目錄中要包含 jar 包,子目錄中包含也可', goHelper: '請填寫完整啟動指令,例如:go run main.go 或 ./main', - goDirHelper: '目錄中要包含 go 文件或者二進制文件,子目錄中包含也可', + goDirHelper: '目錄中要包含 go 文件或二進制文件,子目錄中包含也可', extension: '擴充', installExtension: '是否確認安裝擴充功能 {0}', loadedExtension: '已載入擴充功能', @@ -2979,7 +2979,7 @@ const message = { cmdLine: '啟動指令', basic: '基本資訊', mem: '記憶體資訊', - openFiles: '文件打開', + openFiles: '文件開啟', env: '環境變數', noenv: '無', net: '網路連接', @@ -3041,7 +3041,7 @@ const message = { systemDisk: '系統磁碟', unpartitionedDisk: '未分區磁碟', handlePartition: '立即分區', - filesystem: '文件系統', + filesystem: '檔案系統', unmounted: '未掛載', cannotOperate: '無法操作', systemDiskHelper: '提示:目前磁碟為系統盤,無法進行操作', @@ -3226,7 +3226,7 @@ const message = { notFoundCount: '404 頻率限制', matchValue: '匹配值', headerName: '支援非特殊字元開頭、英文、數字、-,長度3-30', - cdnHelper: '使用 CDN 的網站可以打開此處來取得正確來源 IP', + cdnHelper: '使用 CDN 的網站可以開啟此處來取得正確來源 IP', clearLogWarn: '清空日誌將無法復原,是否繼續?', commonRuleHelper: '規則為模糊匹配', blockIPHelper: '封鎖 IP 暫時儲存在 OpenResty 中,重啟 OpenResty 會解封,可以透過封鎖功能永久封鎖', @@ -3395,22 +3395,22 @@ const message = { websites: '網站列表', trend: '趨勢統計', reqCount: '請求數', - uriHelper: '可以使用 /test/* 或者 /*/index.php 來排除 Uri', + uriHelper: '可以使用 /test/* 或 /*/index.php 來排除 Uri', }, tamper: { tamper: '網站防篡改', ignoreTemplate: '排除模版', protectTemplate: '保護模版', ignoreTemplateHelper: - '請輸入排除內容,Enter或空格分隔。(具體目錄 ./log 或目錄名 tmp,排除文件需要輸入具體檔案 ./data/test.html)', + '請輸入排除內容,Enter或空格分隔。(具體目錄 ./log 或目錄名 tmp,排除檔案需要輸入具體檔案 ./data/test.html)', protectTemplateHelper: - '請輸入保護內容,Enter或空格分隔。(具體檔案 ./index.html、文件後綴 .html、文件類型 js,保護目錄需要輸入具體目錄 ./log)', + '請輸入保護內容,Enter或空格分隔。(具體檔案 ./index.html、文件後綴 .html、檔案類型 js,保護目錄需要輸入具體目錄 ./log)', templateContent: '模版內容', template: '模版', saveTemplate: '儲存為模版', tamperHelper1: '一鍵部署類型的網站,建議啟用應用目錄防篡改功能;如出現網站無法正常使用或備份、復原失敗的情況,請先關閉防篡改功能;', - tamperHelper2: '將限制非排除目錄下受保護文件的讀寫、刪除、權限和所有者修改操作', + tamperHelper2: '將限制非排除目錄下受保護檔案的讀寫、刪除、權限和所有者修改操作', tamperPath: '防護目錄', tamperPathEdit: '修改路徑', log: '攔截日誌', @@ -3419,21 +3419,21 @@ const message = { templateRule: '長度1-512,名稱不能含有{0}等符號', ignore: '排除', ignoreHelper: - '請選擇或輸入排除內容,Enter或空格分隔。(具體目錄 ./log 或目錄名 tmp,排除文件需要輸入或選擇具體檔案 ./data/test.html)', + '請選擇或輸入排除內容,Enter或空格分隔。(具體目錄 ./log 或目錄名 tmp,排除檔案需要輸入或選擇具體檔案 ./data/test.html)', protect: '保護', protectHelper: - '請選擇或輸入保護內容,Enter或空格分隔。(具體檔案 ./index.html、文件後綴 .html、文件類型 js,保護目錄需要輸入或選擇具體目錄 ./log)', + '請選擇或輸入保護內容,Enter或空格分隔。(具體檔案 ./index.html、文件後綴 .html、檔案類型 js,保護目錄需要輸入或選擇具體目錄 ./log)', tamperHelper00: '排除和保護僅支援輸入相對路徑;', - tamperHelper01: '開啟防篡改後,系統將限制非排除目錄下保護文件的建立、編輯和刪除操作等操作;', + tamperHelper01: '開啟防篡改後,系統將限制非排除目錄下保護檔案的建立、編輯和刪除操作等操作;', tamperHelper02: '優先度:具體路徑保護 > 具體路徑排除 > 保護 > 排除', - tamperHelper03: '監聽操作只針對於非排除目錄,監聽該目錄下非保護文件的建立操作。', + tamperHelper03: '監聽操作只針對於非排除目錄,監聽該目錄下非保護檔案的建立操作。', disableHelper: '即將關閉下列網站的防篡改功能,是否繼續?', appendOnly: '僅追加', - appendOnlyHelper: '將限制該目錄下文件的刪除操作,僅允許新增排除目錄或非保護文件', + appendOnlyHelper: '將限制該目錄下文件的刪除操作,僅允許新增排除目錄或非保護檔案', immutable: '不可變', immutableHelper: '將限制該文件的編輯、刪除、權限和所有者修改操作', onWatch: '監聽', - onWatchHelper: '監聽該目錄下保護文件或非排除目錄的建立攔截', + onWatchHelper: '監聽該目錄下保護檔案或非排除目錄的建立攔截', forceStop: '強制關閉', forceStopHelper: '即將強制停用該網站目錄的防篡改功能,是否繼續?', }, @@ -3662,9 +3662,9 @@ const message = { selectNode: '選擇節點', selectNodeError: '請選擇節點', licenseHelper: '專業版支援自訂應用倉庫功能', - databaseHelper: '應用關聯數據庫,請選擇目標節點數據庫', + databaseHelper: '應用關聯資料庫,請選擇目標節點資料庫', nodeHelper: '不能選擇當前節點', - migrateHelper: '目前僅支持遷移單體應用和只關聯 MySQL、MariaDB、PostgreSQL 數據庫的應用', + migrateHelper: '目前僅支援遷移單體應用和只關聯 MySQL、MariaDB、PostgreSQL 資料庫的應用', opensslHelper: '如果使用加密備份,兩個節點之間的 OpenSSL 版本必須保持一致,否則可能導致遷移失敗。', installApp: '批量安裝', installAppHelper: '批量安裝應用到選擇的節點中', @@ -3780,7 +3780,7 @@ const message = { snapshot: '系統快照', clamsRulesHelper: '需要開啟告警的病毒掃描任務', cronJobRulesHelper: '需要配寘此類型的計劃任務', - clamsTitle: '病毒掃描「{0}」任務檢測到感染文件告警', + clamsTitle: '病毒掃描「{0}」任務檢測到感染檔案告警', cronJobAppTitle: '計劃任務-備份應用「{0}」任務失敗告警', cronJobWebsiteTitle: '計劃任務-備份網站「{0}」任務失敗告警', cronJobDatabaseTitle: '計劃任務-備份資料庫「{0}」任務失敗告警', @@ -3792,7 +3792,7 @@ const message = { cronJobCutWebsiteLogTitle: '計劃任務-切割網站日誌「 {0} 」任務失敗告警', cronJobCleanTitle: '計劃任務-快取清理「 {0} 」任務失敗告警', cronJobNtpTitle: '計劃任務-同步伺服器時間「 {0} 」任務失敗告警', - clamsRule: '病毒掃描任務檢測到感染文件告警,每天發送{0}次', + clamsRule: '病毒掃描任務檢測到感染檔案告警,每天發送{0}次', cronJobAppRule: '備份應用任務失敗告警,每天發送{0}次', cronJobWebsiteRule: '備份網站任務失敗告警,每天發送{0}次', cronJobDatabaseRule: '備份資料庫任務失敗告警,每天發送{0}次', @@ -3800,7 +3800,7 @@ const message = { cronJobLogRule: '備份日誌任務失敗告警,每天發送{0}次', cronJobSnapshotRule: '系統快照任務失敗告警,每天發送{0}次', cronJobShellRule: 'Shell 腳本任務失敗告警,每天發送{0}次', - cronJobCurlRule: '瀏覽 URL任務失敗告警,每天發送{0}次', + cronJobCurlRule: '瀏覽 URL 任務失敗告警,每天發送{0}次', cronJobCutWebsiteLogRule: '切割網站日誌任務失敗告警,每天發送{0}次', cronJobCleanRule: '快取清理任務失敗告警,每天發送{0}次', cronJobNtpRule: '同步伺服器時間任務失敗告警,每天發送{0}次', diff --git a/frontend/src/lang/modules/zh.ts b/frontend/src/lang/modules/zh.ts index 410fa0f0d..42e95a95b 100644 --- a/frontend/src/lang/modules/zh.ts +++ b/frontend/src/lang/modules/zh.ts @@ -155,7 +155,7 @@ const message = { operationSuccess: '操作成功', copySuccess: '复制成功', notSupportOperation: '不支持的当前操作', - requestTimeout: '请求超时,请稍后重试', + requestTimeout: '请求超时,请稍后重试', infoTitle: '提示', notRecords: '当前任务未产生执行记录', sureLogOut: '您是否确认退出登录?', @@ -172,7 +172,7 @@ const message = { unSupportType: '不支持当前文件类型!', unSupportSize: '上传文件超过 {0}M,请确认!', fileExist: '当前文件夹已存在该文件,不支持重复上传!', - fileNameErr: '仅支持上传名称包含英文、中文、数字或者 .-_ ,长度 1-256 位的文件', + fileNameErr: '仅支持上传名称包含英文、中文、数字或 .-_ ,长度 1-256 位的文件', confirmNoNull: '请确认 {0} 值不为空', errPort: '错误的端口信息,请确认!', remove: '移出', @@ -242,8 +242,8 @@ const message = { number: '请输入正确的数字', integer: '请输入正确的正整数', ip: '请输入正确的 IP 地址', - host: '请输入正确的 IP 或者域名', - hostHelper: '支持输入 ip 或者域名', + host: '请输入正确的 IP 或域名', + hostHelper: '支持输入 ip 或域名', port: '请输入正确的端口,1-65535', domain: '域名格式错误', databaseName: '支持英文、数字、_,长度1-30', @@ -531,7 +531,7 @@ const message = { localDB: '本地数据库', address: '数据库地址', version: '数据库版本', - userHelper: 'root 用户或者拥有 root 权限的数据库用户', + userHelper: 'root 用户或拥有 root 权限的数据库用户', pgUserHelper: '拥有超级管理员权限的数据库用户', ssl: '使用 SSL', clientKey: '客户端私钥', @@ -542,10 +542,10 @@ const message = { initialDB: '初始数据库', formatHelper: '当前数据库字符集为 {0},字符集不一致可能导致恢复失败', - dropHelper: '将上传文件拖拽到此处,或者', + dropHelper: '将上传文件拖拽到此处,或', clickHelper: '点击上传', supportUpType: - '仅支持 sql、sql.gz、tar.gz、.zip 文件格式,导入的压缩文件必须保证只有一个 .sql 文件或者包含 test.sql', + '仅支持 sql、sql.gz、tar.gz、.zip 文件格式,导入的压缩文件必须保证只有一个 .sql 文件或包含 test.sql', currentStatus: '当前状态', baseParam: '基础参数', @@ -658,7 +658,7 @@ const message = { createAgent: '创建智能体', createModelAccount: '创建模型账号', account: '模型账号', - noAccountHint: '选择已有模型账号,或者直接创建', + noAccountHint: '选择已有模型账号,或直接创建', accountCount: '模型账号 {0} 个', syncAgents: '同步关联智能体', syncAgentsHelper: '更新使用该模型账号的智能体 openclaw.json', @@ -710,7 +710,7 @@ const message = { }, gpu: { gpu: 'GPU 监控', - gpuHelper: '当前系统未检测到 NVIDIA-SMI 或者 XPU-SMI 指令,请检查后重试!', + gpuHelper: '当前系统未检测到 NVIDIA-SMI 或 XPU-SMI 指令,请检查后重试!', process: '进程信息', processCount: '进程数', type: '类型', @@ -777,7 +777,7 @@ const message = { externalUrl: '外部连接地址', operatorHelper: '将对 {0} 进行 {1} 操作,是否继续?', domain: '默认访问地址', - domainHelper: '例如:192.168.1.1 或者 example.com', + domainHelper: '例如:192.168.1.1 或 example.com', bindDomain: '绑定网站', commandPlaceHolder: '当前仅支持 npx 和 二进制启动的命令', importMcpJson: '导入 MCP Server 配置', @@ -786,7 +786,7 @@ const message = { outputTransport: '输出类型', streamableHttpPath: '流式传输路径', streamableHttpPathHelper: '例如:/mcp, 注意不要与其他 Server 重复', - npxHelper: '适合 npx 或者 二进制启动的 mcp', + npxHelper: '适合 npx 或 二进制启动的 mcp', uvxHelper: '适合 uvx 启动的 mcp', }, tensorRT: { @@ -908,8 +908,8 @@ const message = { forcePull: '强制拉取镜像', forcePullHelper: '忽略服务器已存在的镜像,重新拉取一次', server: '服务器', - serverExample: '80, 80-88, ip:80 或者 ip:80-88', - containerExample: '80 或者 80-88', + serverExample: '80, 80-88, ip:80 或 ip:80-88', + containerExample: '80 或 80-88', exposePort: '暴露端口', exposeAll: '暴露所有', cmdHelper: '例: nginx -g "daemon off;"', @@ -1021,7 +1021,7 @@ const message = { composeFile: '编排文件', fromChangeHelper: '切换来源将清空当前已编辑内容,是否继续?', composePathHelper: '配置文件保存路径: {0}', - composeHelper: '通过 1Panel 编辑或者模版创建的编排,将保存在 {0}/docker/compose 路径下', + composeHelper: '通过 1Panel 编辑或模版创建的编排,将保存在 {0}/docker/compose 路径下', deleteFile: '删除文件', deleteComposeHelper: '删除容器编排的所有文件,包括配置文件和持久化文件,请谨慎操作!', deleteCompose: '" 删除此编排', @@ -1134,7 +1134,7 @@ const message = { cronSpec: '执行周期', cronSpecDoc: '自定义执行周期仅支持【分时日月周】格式,如 0 0 * * * ,具体可参考官方文档', cronSpecHelper: '请输入正确的执行周期', - cleanHelper: '该操作将所有任务执行记录、备份文件和日志文件,是否继续?', + cleanHelper: '该操作将清理所有任务执行记录、备份文件和日志文件,是否继续?', backupContent: '备份内容', directory: '备份目录 / 文件', sourceDir: '备份目录', @@ -1319,7 +1319,7 @@ const message = { swapHelper1: 'Swap 的大小应该是物理内存的 1 到 2 倍,可根据具体情况进行调整;', swapHelper2: '在创建 Swap 文件之前,请确保系统硬盘有足够的可用空间,Swap 文件的大小将占用相应的磁盘空间;', swapHelper3: - 'Swap 可以帮助缓解内存压力,但仅是一个备选项,过多依赖可能导致系统性能下降,建议优先考虑增加内存或者优化应用程序内存使用;', + 'Swap 可以帮助缓解内存压力,但仅是一个备选项,过多依赖可能导致系统性能下降,建议优先考虑增加内存或优化应用程序内存使用;', swapHelper4: '建议定期监控 Swap 的使用情况,以确保系统正常运行。', swapDeleteHelper: '此操作将移除 Swap 分区 {0},出于系统安全考虑,不会自动删除该文件,如需删除请手动操作!', saveHelper: '请先保存当前设置!', @@ -1369,7 +1369,7 @@ const message = { maxRetry: '最大重试次数', banTime: '禁用时间', banTimeHelper: '默认禁用时间为 10 分钟,禁用时间为 -1 则表示永久禁用', - banTimeRule: '请输入正确的禁用时间或者 -1', + banTimeRule: '请输入正确的禁用时间或 -1', banAllTime: '永久禁用', findTime: '发现周期', banAction: '禁用方式', @@ -1378,7 +1378,7 @@ const message = { ignoreIP: 'IP 白名单', bannedIP: 'IP 黑名单', logPath: '日志路径', - logPathHelper: '默认 /var/log/secure 或者 /var/log/auth.log', + logPathHelper: '默认 /var/log/secure 或 /var/log/auth.log', }, ftp: { ftp: 'FTP 账户', @@ -1548,7 +1548,7 @@ const message = { ownerHelper: 'PHP 运行环境默认用户:用户组为 1000:1000, 容器内外用户显示不一致为正常现象', searchHelper: '支持 * 等通配符', uploadFailed: '【{0}】 文件上传失败', - fileUploadStart: '正在上传【{0}】....', + fileUploadStart: '正在上传【{0}】...', currentSelect: '当前选中: ', unsupportedType: '不支持的文件类型', deleteHelper: '确定删除所选文件? 默认删除之后将进入回收站', @@ -2263,7 +2263,7 @@ const message = { webUIPlaceholder: '例如:example.com:8080/login', defaultWebDomain: '默认访问地址', defaultWebDomainHepler: '如果应用端口为 8080,则跳转地址为 http(s)://默认访问地址:8080', - webUIConfig: '当前应用尚未配置访问地址,请在应用参数或者前往面板设置进行设置!', + webUIConfig: '当前应用尚未配置访问地址,请在应用参数或前往面板设置进行设置!', toLink: '跳转', customAppHelper: '在使用自定义应用商店仓库之前,请确保没有任何已安装的应用。', forceUninstall: '强制卸载', @@ -2929,7 +2929,7 @@ const message = { javaScriptHelper: '请填写完整启动命令,例如:java -jar halo.jar -Xmx1024M -Xms256M', javaDirHelper: '目录中要包含 jar 包,子目录中包含也可', goHelper: '请填写完整启动命令,例如:go run main.go 或 ./main', - goDirHelper: '目录中要包含 go 文件或者二进制文件,子目录中包含也可', + goDirHelper: '目录中要包含 go 文件或二进制文件,子目录中包含也可', extension: '扩展', installExtension: '是否确认安装扩展 {0}', loadedExtension: '已加载扩展', @@ -2940,7 +2940,7 @@ const message = { dynamic: '动态', static: '静态', ondemand: '按需', - dynamicHelper: '动态调整进程数,灵活性高,适合流量波动较大或者低内存的网站', + dynamicHelper: '动态调整进程数,灵活性高,适合流量波动较大或低内存的网站', staticHelper: '固定进程数,适合高并发和稳定流量的网站,资源消耗较高', ondemandHelper: '进程按需启动和销毁,资源利用最优,但初始响应可能较慢', max_children: '允许创建的最大进程数', @@ -3186,7 +3186,7 @@ const message = { websiteHelper: '此处为创建网站的默认设置,修改之后需要应用到网站才能生效', websiteHelper2: '此处为创建网站的默认设置,具体配置请在网站处修改', ipGroup: 'IP 组', - ipGroupHelper: '一行一个 IP 或者 IP 段,支持 IPv4 和 IPv6, 例如:192.168.1.1 或 192.168.1.0/24', + ipGroupHelper: '一行一个 IP 或 IP 段,支持 IPv4 和 IPv6, 例如:192.168.1.1 或 192.168.1.0/24', ipBlack: 'IP 黑名单', openRestyAlert: 'OpenResty 版本需要高于 {0}', initAlert: '首次使用需要初始化,会修改网站配置文件,原有的 WAF 配置会丢失,请一定提前备份 OpenResty', @@ -3390,7 +3390,7 @@ const message = { websites: '网站列表', trend: '趋势统计', reqCount: '请求数', - uriHelper: '可以使用 /test/* 或者 /*/index.php 来排除 Uri', + uriHelper: '可以使用 /test/* 或 /*/index.php 来排除 Uri', }, tamper: { tamper: '网站防篡改', @@ -3793,7 +3793,7 @@ const message = { cronJobLogRule: '备份日志任务失败告警,每天发送 {0} 次', cronJobSnapshotRule: '系统快照任务失败告警,每天发送 {0} 次', cronJobShellRule: 'Shell 脚本任务失败告警,每天发送 {0} 次', - cronJobCurlRule: '访问 URL任务失败告警,每天发送 {0} 次', + cronJobCurlRule: '访问 URL 任务失败告警,每天发送 {0} 次', cronJobCutWebsiteLogRule: '切割网站日志任务失败告警,每天发送 {0} 次', cronJobCleanRule: '缓存清理任务失败告警,每天发送 {0} 次', cronJobNtpRule: '同步服务器时间任务失败告警,每天发送 {0} 次', @@ -3856,7 +3856,7 @@ const message = { nodeExceptionRule: '节点异常告警,每天发送 {0} 次', licenseExceptionRule: '许可证异常告警,每天发送 {0} 次', panelLoginRule: '面板登录告警,每天发送 {0} 次', - sshLoginRule: 'SSH 登录告警告警,每天发送 {0} 次', + sshLoginRule: 'SSH 登录告警,每天发送 {0} 次', userNameHelper: '用户名为空会默认使用发件箱地址', alertConfigHelper: '配置告警通知通道,用于接收面板消息推送', weComConfigHelper: '企业微信告警通知配置',