) => {
+ onValuesChange?.(values);
+ };
+
+ return (
+ }
+ >
+
+
+
+ );
+};
+
+export default NotifyNodeConfigFormSlackBotConfig;
diff --git a/ui/src/components/workflow/node/NotifyNodeConfigFormTelegramBotConfig.tsx b/ui/src/components/workflow/node/NotifyNodeConfigFormTelegramBotConfig.tsx
index a40142ee..29eaa807 100644
--- a/ui/src/components/workflow/node/NotifyNodeConfigFormTelegramBotConfig.tsx
+++ b/ui/src/components/workflow/node/NotifyNodeConfigFormTelegramBotConfig.tsx
@@ -38,7 +38,7 @@ const NotifyNodeConfigFormTelegramBotConfig = ({
.refine((v) => {
if (v == null || v + "" === "") return true;
return !Number.isNaN(+v!) && +v! !== 0;
- }, t("workflow_node.notify.form.telegram_bot_chat_id.placeholder"))
+ }, t("workflow_node.notify.form.telegrambot_chat_id.placeholder"))
)
.nullish(),
});
@@ -59,11 +59,11 @@ const NotifyNodeConfigFormTelegramBotConfig = ({
>
}
+ tooltip={}
>
-
+
);
diff --git a/ui/src/components/workflow/node/_SharedNode.tsx b/ui/src/components/workflow/node/_SharedNode.tsx
index 510a0154..44c894ef 100644
--- a/ui/src/components/workflow/node/_SharedNode.tsx
+++ b/ui/src/components/workflow/node/_SharedNode.tsx
@@ -1,4 +1,4 @@
-import { memo, useRef } from "react";
+import { memo, useMemo, useRef } from "react";
import { useTranslation } from "react-i18next";
import {
CloseCircleOutlined as CloseCircleOutlinedIcon,
@@ -7,7 +7,7 @@ import {
MoreOutlined as MoreOutlinedIcon,
} from "@ant-design/icons";
import { useControllableValue } from "ahooks";
-import { Button, Card, Drawer, Dropdown, Input, type InputRef, Modal, Popover, Space } from "antd";
+import { Button, Card, Drawer, Dropdown, Input, type InputRef, type MenuProps, Modal, Popover, Space } from "antd";
import { produce } from "immer";
import { isEqual } from "radash";
@@ -59,12 +59,13 @@ const SharedNodeTitle = ({ className, style, node, disabled }: SharedNodeTitlePr
type SharedNodeMenuProps = SharedNodeProps & {
branchId?: string;
branchIndex?: number;
+ menus?: Array<"rename" | "duplicate" | "remove">;
trigger: React.ReactNode;
afterUpdate?: () => void;
afterDelete?: () => void;
};
-const isBranchingNode = (node: WorkflowNode) => {
+const isNodeBranchLike = (node: WorkflowNode) => {
return (
node.type === WorkflowNodeType.Branch ||
node.type === WorkflowNodeType.Condition ||
@@ -74,7 +75,11 @@ const isBranchingNode = (node: WorkflowNode) => {
);
};
-const SharedNodeMenu = ({ trigger, node, disabled, branchId, branchIndex, afterUpdate, afterDelete }: SharedNodeMenuProps) => {
+const isNodeReadOnly = (node: WorkflowNode) => {
+ return node.type === WorkflowNodeType.Start || node.type === WorkflowNodeType.End;
+};
+
+const SharedNodeMenu = ({ menus, trigger, node, disabled, branchId, branchIndex, afterUpdate, afterDelete }: SharedNodeMenuProps) => {
const { t } = useTranslation();
const { updateNode, removeNode, removeBranch } = useWorkflowStore(useZustandShallowSelector(["updateNode", "removeNode", "removeBranch"]));
@@ -101,7 +106,7 @@ const SharedNodeMenu = ({ trigger, node, disabled, branchId, branchIndex, afterU
};
const handleDeleteClick = async () => {
- if (isBranchingNode(node)) {
+ if (isNodeBranchLike(node)) {
await removeBranch(branchId!, branchIndex!);
} else {
await removeNode(node.id);
@@ -110,56 +115,76 @@ const SharedNodeMenu = ({ trigger, node, disabled, branchId, branchIndex, afterU
afterDelete?.();
};
+ const menuItems = useMemo(() => {
+ let temp = [
+ {
+ key: "rename",
+ disabled: disabled,
+ label: isNodeBranchLike(node) ? t("workflow_node.action.rename_branch") : t("workflow_node.action.rename_node"),
+ icon: ,
+ onClick: () => {
+ nameRef.current = node.name;
+
+ const dialog = modalApi.confirm({
+ title: isNodeBranchLike(node) ? t("workflow_node.action.rename_branch") : t("workflow_node.action.rename_node"),
+ content: (
+
+ (nameRef.current = e.target.value)}
+ onPressEnter={async () => {
+ await handleRenameConfirm();
+ dialog.destroy();
+ }}
+ />
+
+ ),
+ icon: null,
+ okText: t("common.button.save"),
+ onOk: handleRenameConfirm,
+ });
+ setTimeout(() => nameInputRef.current?.focus(), 1);
+ },
+ },
+ {
+ type: "divider",
+ },
+ {
+ key: "remove",
+ disabled: disabled || isNodeReadOnly(node),
+ label: isNodeBranchLike(node) ? t("workflow_node.action.remove_branch") : t("workflow_node.action.remove_node"),
+ icon: ,
+ danger: true,
+ onClick: handleDeleteClick,
+ },
+ ] satisfies MenuProps["items"];
+
+ if (menus) {
+ temp = temp.filter((item) => item.type === "divider" || menus.includes(item.key as "rename" | "remove"));
+ temp = temp.filter((item, index, array) => {
+ if (item.type !== "divider") return true;
+ return index === 0 || array[index - 1].type !== "divider";
+ });
+ if (temp[0]?.type === "divider") {
+ temp.shift();
+ }
+ if (temp[temp.length - 1]?.type === "divider") {
+ temp.pop();
+ }
+ }
+
+ return temp;
+ }, [disabled, node]);
+
return (
<>
{ModelContextHolder}
,
- onClick: () => {
- nameRef.current = node.name;
-
- const dialog = modalApi.confirm({
- title: isBranchingNode(node) ? t("workflow_node.action.rename_branch") : t("workflow_node.action.rename_node"),
- content: (
-
- (nameRef.current = e.target.value)}
- onPressEnter={async () => {
- await handleRenameConfirm();
- dialog.destroy();
- }}
- />
-
- ),
- icon: null,
- okText: t("common.button.save"),
- onOk: handleRenameConfirm,
- });
- setTimeout(() => nameInputRef.current?.focus(), 1);
- },
- },
- {
- type: "divider",
- },
- {
- key: "remove",
- disabled: disabled || node.type === WorkflowNodeType.Start,
- label: isBranchingNode(node) ? t("workflow_node.action.remove_branch") : t("workflow_node.action.remove_node"),
- icon: ,
- danger: true,
- onClick: handleDeleteClick,
- },
- ],
+ items: menuItems,
}}
trigger={["click"]}
>
@@ -264,7 +289,6 @@ const SharedNodeConfigDrawer = ({
const { promise, resolve, reject } = Promise.withResolvers();
if (changed) {
- console.log(oldValues, newValues);
modalApi.confirm({
title: t("common.text.operation_confirm"),
content: t("workflow_node.unsaved_changes.confirm"),
@@ -288,6 +312,7 @@ const SharedNodeConfigDrawer = ({
destroyOnHidden
extra={
} type="text" />}
diff --git a/ui/src/domain/access.ts b/ui/src/domain/access.ts
index f60f39c8..3582b071 100644
--- a/ui/src/domain/access.ts
+++ b/ui/src/domain/access.ts
@@ -24,9 +24,12 @@ export interface AccessModel extends BaseModel {
| AccessConfigForClouDNS
| AccessConfigForCMCCCloud
| AccessConfigForDeSEC
+ | AccessConfigForDigitalOcean
| AccessConfigForDingTalkBot
+ | AccessConfigForDiscordBot
| AccessConfigForDNSLA
| AccessConfigForDogeCloud
+ | AccessConfigForDuckDNS
| AccessConfigForDynv6
| AccessConfigForEdgio
| AccessConfigForEmail
@@ -36,6 +39,7 @@ export interface AccessModel extends BaseModel {
| AccessConfigForGoDaddy
| AccessConfigForGoEdge
| AccessConfigForGoogleTrustServices
+ | AccessConfigForHetzner
| AccessConfigForHuaweiCloud
| AccessConfigForJDCloud
| AccessConfigForKubernetes
@@ -54,6 +58,7 @@ export interface AccessModel extends BaseModel {
| AccessConfigForRainYun
| AccessConfigForRatPanel
| AccessConfigForSafeLine
+ | AccessConfigForSlackBot
| AccessConfigForSSH
| AccessConfigForSSLCom
| AccessConfigForTelegramBot
@@ -73,7 +78,7 @@ export interface AccessModel extends BaseModel {
// #region AccessConfig
export type AccessConfigFor1Panel = {
- apiUrl: string;
+ serverUrl: string;
apiVersion: string;
apiKey: string;
allowInsecureConnections?: boolean;
@@ -119,13 +124,13 @@ export type AccessConfigForBaishan = {
};
export type AccessConfigForBaotaPanel = {
- apiUrl: string;
+ serverUrl: string;
apiKey: string;
allowInsecureConnections?: boolean;
};
export type AccessConfigForBaotaWAF = {
- apiUrl: string;
+ serverUrl: string;
apiKey: string;
allowInsecureConnections?: boolean;
};
@@ -144,7 +149,7 @@ export type AccessConfigForCacheFly = {
};
export type AccessConfigForCdnfly = {
- apiUrl: string;
+ serverUrl: string;
apiKey: string;
apiSecret: string;
allowInsecureConnections?: boolean;
@@ -169,11 +174,20 @@ export type AccessConfigForDeSEC = {
token: string;
};
+export type AccessConfigForDigitalOcean = {
+ accessToken: string;
+};
+
export type AccessConfigForDingTalkBot = {
webhookUrl: string;
secret?: string;
};
+export type AccessConfigForDiscordBot = {
+ botToken: string;
+ defaultChannelId?: string;
+};
+
export type AccessConfigForDNSLA = {
apiId: string;
apiSecret: string;
@@ -184,6 +198,10 @@ export type AccessConfigForDogeCloud = {
secretKey: string;
};
+export type AccessConfigForDuckDNS = {
+ token: string;
+};
+
export type AccessConfigForDynv6 = {
httpToken: string;
};
@@ -204,7 +222,7 @@ export type AccessConfigForEmail = {
};
export type AccessConfigForFlexCDN = {
- apiUrl: string;
+ serverUrl: string;
apiRole: string;
accessKeyId: string;
accessKey: string;
@@ -226,7 +244,7 @@ export type AccessConfigForGoDaddy = {
};
export type AccessConfigForGoEdge = {
- apiUrl: string;
+ serverUrl: string;
apiRole: string;
accessKeyId: string;
accessKey: string;
@@ -238,6 +256,10 @@ export type AccessConfigForGoogleTrustServices = {
eabHmacKey: string;
};
+export type AccessConfigForHetzner = {
+ apiToken: string;
+};
+
export type AccessConfigForHuaweiCloud = {
accessKeyId: string;
secretAccessKey: string;
@@ -257,7 +279,7 @@ export type AccessConfigForLarkBot = {
};
export type AccessConfigForLeCDN = {
- apiUrl: string;
+ serverUrl: string;
apiVersion: string;
apiRole: string;
username: string;
@@ -306,13 +328,13 @@ export type AccessConfigForPorkbun = {
};
export type AccessConfigForPowerDNS = {
- apiUrl: string;
+ serverUrl: string;
apiKey: string;
allowInsecureConnections?: boolean;
};
export type AccessConfigForProxmoxVE = {
- apiUrl: string;
+ serverUrl: string;
apiToken: string;
apiTokenSecret?: string;
allowInsecureConnections?: boolean;
@@ -328,18 +350,23 @@ export type AccessConfigForRainYun = {
};
export type AccessConfigForRatPanel = {
- apiUrl: string;
+ serverUrl: string;
accessTokenId: number;
accessToken: string;
allowInsecureConnections?: boolean;
};
export type AccessConfigForSafeLine = {
- apiUrl: string;
+ serverUrl: string;
apiToken: string;
allowInsecureConnections?: boolean;
};
+export type AccessConfigForSlackBot = {
+ botToken: string;
+ defaultChannelId?: string;
+};
+
export type AccessConfigForSSH = {
host: string;
port: number;
diff --git a/ui/src/domain/provider.ts b/ui/src/domain/provider.ts
index 15542455..2d288a3c 100644
--- a/ui/src/domain/provider.ts
+++ b/ui/src/domain/provider.ts
@@ -23,9 +23,12 @@ export const ACCESS_PROVIDERS = Object.freeze({
CLOUDNS: "cloudns",
CMCCCLOUD: "cmcccloud",
DESEC: "desec",
+ DIGITALOCEAN: "digitalocean",
DINGTALKBOT: "dingtalkbot",
+ DISCORDBOT: "discordbot",
DNSLA: "dnsla",
DOGECLOUD: "dogecloud",
+ DUCKDNS: "duckdns",
DYNV6: "dynv6",
EDGIO: "edgio",
EMAIL: "email",
@@ -35,6 +38,7 @@ export const ACCESS_PROVIDERS = Object.freeze({
GODADDY: "godaddy",
GOEDGE: "goedge",
GOOGLETRUSTSERVICES: "googletrustservices",
+ HETZNER: "hetzner",
HUAWEICLOUD: "huaweicloud",
JDCLOUD: "jdcloud",
KUBERNETES: "k8s",
@@ -57,6 +61,7 @@ export const ACCESS_PROVIDERS = Object.freeze({
RAINYUN: "rainyun",
RATPANEL: "ratpanel",
SAFELINE: "safeline",
+ SLACKBOT: "slackbot",
SSH: "ssh",
SSLCOM: "sslcom",
TELEGRAMBOT: "telegrambot",
@@ -138,10 +143,13 @@ export const accessProvidersMap: Map [
e[0] as string,
{
@@ -253,11 +263,14 @@ export const ACME_DNS01_PROVIDERS = Object.freeze({
CLOUDNS: `${ACCESS_PROVIDERS.CLOUDNS}`,
CMCCCLOUD: `${ACCESS_PROVIDERS.CMCCCLOUD}`,
DESEC: `${ACCESS_PROVIDERS.DESEC}`,
+ DIGITALOCEAN: `${ACCESS_PROVIDERS.DIGITALOCEAN}`,
DNSLA: `${ACCESS_PROVIDERS.DNSLA}`,
+ DUCKDNS: `${ACCESS_PROVIDERS.DUCKDNS}`,
DYNV6: `${ACCESS_PROVIDERS.DYNV6}`,
GCORE: `${ACCESS_PROVIDERS.GCORE}`,
GNAME: `${ACCESS_PROVIDERS.GNAME}`,
GODADDY: `${ACCESS_PROVIDERS.GODADDY}`,
+ HETZNER: `${ACCESS_PROVIDERS.HETZNER}`,
HUAWEICLOUD: `${ACCESS_PROVIDERS.HUAWEICLOUD}`, // 兼容旧值,等同于 `HUAWEICLOUD_DNS`
HUAWEICLOUD_DNS: `${ACCESS_PROVIDERS.HUAWEICLOUD}-dns`,
JDCLOUD: `${ACCESS_PROVIDERS.JDCLOUD}`, // 兼容旧值,等同于 `JDCLOUD_DNS`
@@ -309,11 +322,14 @@ export const acmeDns01ProvidersMap: Map [
type,
{
diff --git a/ui/src/i18n/locales/en/nls.access.json b/ui/src/i18n/locales/en/nls.access.json
index 41b81636..98717976 100644
--- a/ui/src/i18n/locales/en/nls.access.json
+++ b/ui/src/i18n/locales/en/nls.access.json
@@ -34,16 +34,16 @@
"access.form.certificate_authority.placeholder": "Please select a certificate authority",
"access.form.notification_channel.label": "Notification channel",
"access.form.notification_channel.placeholder": "Please select a notification channel",
- "access.form.1panel_api_url.label": "1Panel URL",
- "access.form.1panel_api_url.placeholder": "Please enter 1Panel URL",
+ "access.form.1panel_server_url.label": "1Panel server URL",
+ "access.form.1panel_server_url.placeholder": "Please enter 1Panel server URL",
"access.form.1panel_api_version.label": "1Panel version",
"access.form.1panel_api_version.placeholder": "Please select 1Panel version",
"access.form.1panel_api_key.label": "1Panel API key",
"access.form.1panel_api_key.placeholder": "Please enter 1Panel API key",
"access.form.1panel_api_key.tooltip": "For more information, see https://docs.1panel.pro/dev_manual/api_manual/",
- "access.form.1panel_allow_insecure_conns.label": "Insecure SSL/TLS connections",
- "access.form.1panel_allow_insecure_conns.switch.on": "Allow",
- "access.form.1panel_allow_insecure_conns.switch.off": "Disallow",
+ "access.form.common_allow_insecure_conns.label": "Insecure SSL/TLS connections",
+ "access.form.common_allow_insecure_conns.switch.on": "Allow",
+ "access.form.common_allow_insecure_conns.switch.off": "Disallow",
"access.form.acmeca_endpoint.label": "Endpoint",
"access.form.acmeca_endpoint.placeholder": "Please enter endpoint",
"access.form.acmeca_endpoint.tooltip": "For more information, see https://datatracker.ietf.org/doc/html/rfc8555#section-7.1.1",
@@ -104,22 +104,16 @@
"access.form.upyun_password.tooltip": "For more information, see https://console.upyun.com/account/subaccount/",
"access.form.baishan_api_token.label": "Baishan Cloud API token",
"access.form.baishan_api_token.placeholder": "Please enter Baishan Cloud API token",
- "access.form.baotapanel_api_url.label": "aaPanel URL",
- "access.form.baotapanel_api_url.placeholder": "Please enter aaPanel URL",
+ "access.form.baotapanel_server_url.label": "aaPanel server URL",
+ "access.form.baotapanel_server_url.placeholder": "Please enter aaPanel server URL",
"access.form.baotapanel_api_key.label": "aaPanel API key",
"access.form.baotapanel_api_key.placeholder": "Please enter aaPanel API key",
"access.form.baotapanel_api_key.tooltip": "For more information, see https://www.bt.cn/bbs/thread-20376-1-1.html",
- "access.form.baotapanel_allow_insecure_conns.label": "Insecure SSL/TLS connections",
- "access.form.baotapanel_allow_insecure_conns.switch.on": "Allow",
- "access.form.baotapanel_allow_insecure_conns.switch.off": "Disallow",
- "access.form.baotawaf_api_url.label": "aaWAF URL",
- "access.form.baotawaf_api_url.placeholder": "Please enter aaWAF URL",
+ "access.form.baotawaf_server_url.label": "aaWAF server URL",
+ "access.form.baotawaf_server_url.placeholder": "Please enter aaWAF server URL",
"access.form.baotawaf_api_key.label": "aaWAF API key",
"access.form.baotawaf_api_key.placeholder": "Please enter aaWAF API key",
"access.form.baotawaf_api_key.tooltip": "For more information, see https://github.com/aaPanel/aaWAF/blob/main/API.md",
- "access.form.baotawaf_allow_insecure_conns.label": "Insecure SSL/TLS connections",
- "access.form.baotawaf_allow_insecure_conns.switch.on": "Allow",
- "access.form.baotawaf_allow_insecure_conns.switch.off": "Disallow",
"access.form.byteplus_access_key.label": "BytePlus AccessKey",
"access.form.byteplus_access_key.placeholder": "Please enter BytePlus AccessKey",
"access.form.byteplus_access_key.tooltip": "For more information, see https://docs.byteplus.com/en/docs/byteplus-platform/docs-managing-keys",
@@ -129,17 +123,14 @@
"access.form.cachefly_api_token.label": "CacheFly API token",
"access.form.cachefly_api_token.placeholder": "Please enter CacheFly API token",
"access.form.cachefly_api_token.tooltip": "For more information, see https://kb.cachefly.com/kb/guide/en/generating-tokens-and-keys-Oll9Irt5TI/Steps/2460228",
- "access.form.cdnfly_api_url.label": "Cdnfly URL",
- "access.form.cdnfly_api_url.placeholder": "Please enter Cdnfly URL",
+ "access.form.cdnfly_server_url.label": "Cdnfly server URL",
+ "access.form.cdnfly_server_url.placeholder": "Please enter Cdnfly server URL",
"access.form.cdnfly_api_key.label": "Cdnfly user API key",
"access.form.cdnfly_api_key.placeholder": "Please enter Cdnfly user API key",
"access.form.cdnfly_api_key.tooltip": "For more information, see https://doc.cdnfly.cn/shiyongjieshao.html",
"access.form.cdnfly_api_secret.label": "Cdnfly user API secret",
"access.form.cdnfly_api_secret.placeholder": "Please enter Cdnfly user API secret",
"access.form.cdnfly_api_secret.tooltip": "For more information, see https://doc.cdnfly.cn/shiyongjieshao.html",
- "access.form.cdnfly_allow_insecure_conns.label": "Insecure SSL/TLS connections",
- "access.form.cdnfly_allow_insecure_conns.switch.on": "Allow",
- "access.form.cdnfly_allow_insecure_conns.switch.off": "Disallow",
"access.form.cloudflare_dns_api_token.label": "Cloudflare DNS API token",
"access.form.cloudflare_dns_api_token.placeholder": "Please enter Cloudflare DNS API token",
"access.form.cloudflare_dns_api_token.tooltip": "For more information, see https://developers.cloudflare.com/fundamentals/api/get-started/create-token/",
@@ -161,12 +152,21 @@
"access.form.desec_token.label": "deSEC token",
"access.form.desec_token.placeholder": "Please enter deSEC token",
"access.form.desec_token.tooltip": "For more information, see https://desec.readthedocs.io/en/latest/auth/tokens.html",
+ "access.form.digitalocean_access_token.label": "DigitalOcean access token",
+ "access.form.digitalocean_access_token.placeholder": "Please enter DigitalOcean access token",
+ "access.form.digitalocean_access_token.tooltip": "For more information, see https://docs.digitalocean.com/reference/api/create-personal-access-token/",
"access.form.dingtalkbot_webhook_url.label": "DingTalk bot Webhook URL",
"access.form.dingtalkbot_webhook_url.placeholder": "Please enter DingTalk bot Webhook URL",
"access.form.dingtalkbot_webhook_url.tooltip": "For more information, see https://open.dingtalk.com/document/orgapp/obtain-the-webhook-address-of-a-custom-robot",
"access.form.dingtalkbot_secret.label": "DingTalk bot secret",
"access.form.dingtalkbot_secret.placeholder": "Please enter DingTalk bot secret",
"access.form.dingtalkbot_secret.tooltip": "For more information, see https://open.dingtalk.com/document/orgapp/customize-robot-security-settings",
+ "access.form.discordbot_token.label": "Discord bot token",
+ "access.form.discordbot_token.placeholder": "Please enter Discord bot token",
+ "access.form.discordbot_token.tooltip": "For more information, see https://docs.discordbotstudio.org/setting-up-dbs/finding-your-bot-token",
+ "access.form.discordbot_default_channel_id.label": "Default Discord channel ID (Optional)",
+ "access.form.discordbot_default_channel_id.placeholder": "Please enter default Discord channel ID",
+ "access.form.discordbot_default_channel_id.tooltip": "For more information, see https://support.discord.com/hc/en-us/articles/206346498-Where-can-I-find-my-User-Server-Message-ID",
"access.form.dnsla_api_id.label": "DNS.LA API ID",
"access.form.dnsla_api_id.placeholder": "Please enter DNS.LA API ID",
"access.form.dnsla_api_id.tooltip": "For more information, see https://www.dns.la/docs/ApiDoc",
@@ -179,6 +179,9 @@
"access.form.dogecloud_secret_key.label": "Doge Cloud SecretKey",
"access.form.dogecloud_secret_key.placeholder": "Please enter Doge Cloud SecretKey",
"access.form.dogecloud_secret_key.tooltip": "For more information, see https://console.dogecloud.com/",
+ "access.form.duckdns_token.label": "DuckDNS token",
+ "access.form.duckdns_token.placeholder": "Please enter DuckDNS token",
+ "access.form.duckdns_token.tooltip": "For more information, see https://www.duckdns.org/spec.jsp",
"access.form.dynv6_http_token.label": "dynv6 HTTP token",
"access.form.dynv6_http_token.placeholder": "Please enter dynv6 HTTP token",
"access.form.dynv6_http_token.tooltip": "For more information, see https://dynv6.com/keys",
@@ -201,8 +204,8 @@
"access.form.email_default_sender_address.placeholder": "Please enter default sender email address",
"access.form.email_default_receiver_address.label": "Default receiver email address (Optional)",
"access.form.email_default_receiver_address.placeholder": "Please enter default receiver email address",
- "access.form.flexcdn_api_url.label": "FlexCDN URL",
- "access.form.flexcdn_api_url.placeholder": "Please enter FlexCDN URL",
+ "access.form.flexcdn_server_url.label": "FlexCDN server URL",
+ "access.form.flexcdn_server_url.placeholder": "Please enter FlexCDN server URL",
"access.form.flexcdn_api_role.label": "FlexCDN user role",
"access.form.flexcdn_api_role.placeholder": "Please select FlexCDN user role",
"access.form.flexcdn_api_role.option.user.label": "Platform user",
@@ -213,9 +216,6 @@
"access.form.flexcdn_access_key.label": "FlexCDN AccessKey",
"access.form.flexcdn_access_key.placeholder": "Please enter FlexCDN AccessKey",
"access.form.flexcdn_access_key.tooltip": "For more information, see https://flexcdn.cn/docs/api/auth",
- "access.form.flexcdn_allow_insecure_conns.label": "Insecure SSL/TLS connections",
- "access.form.flexcdn_allow_insecure_conns.switch.on": "Allow",
- "access.form.flexcdn_allow_insecure_conns.switch.off": "Disallow",
"access.form.gcore_api_token.label": "Gcore API token",
"access.form.gcore_api_token.placeholder": "Please enter Gcore API token",
"access.form.gcore_api_token.tooltip": "For more information, see https://api.gcore.com/docs/iam#section/Authentication",
@@ -231,8 +231,8 @@
"access.form.godaddy_api_secret.label": "GoDaddy API secret",
"access.form.godaddy_api_secret.placeholder": "Please enter GoDaddy API secret",
"access.form.godaddy_api_secret.tooltip": "For more information, see https://developer.godaddy.com/",
- "access.form.goedge_api_url.label": "GoEdge URL",
- "access.form.goedge_api_url.placeholder": "Please enter GoEdge URL",
+ "access.form.goedge_server_url.label": "GoEdge server URL",
+ "access.form.goedge_server_url.placeholder": "Please enter GoEdge server URL",
"access.form.goedge_api_role.label": "GoEdge user role",
"access.form.goedge_api_role.placeholder": "Please select GoEdge user role",
"access.form.goedge_api_role.option.user.label": "Platform user",
@@ -243,15 +243,15 @@
"access.form.goedge_access_key.label": "GoEdge AccessKey",
"access.form.goedge_access_key.placeholder": "Please enter GoEdge AccessKey",
"access.form.goedge_access_key.tooltip": "For more information, see https://goedge.cloud/docs/API/Auth.md",
- "access.form.goedge_allow_insecure_conns.label": "Insecure SSL/TLS connections",
- "access.form.goedge_allow_insecure_conns.switch.on": "Allow",
- "access.form.goedge_allow_insecure_conns.switch.off": "Disallow",
"access.form.googletrustservices_eab_kid.label": "ACME EAB KID",
"access.form.googletrustservices_eab_kid.placeholder": "Please enter ACME EAB KID",
"access.form.googletrustservices_eab_kid.tooltip": "For more information, see https://cloud.google.com/certificate-manager/docs/public-ca-tutorial",
"access.form.googletrustservices_eab_hmac_key.label": "ACME EAB HMAC key",
"access.form.googletrustservices_eab_hmac_key.placeholder": "Please enter ACME EAB HMAC key",
"access.form.googletrustservices_eab_hmac_key.tooltip": "For more information, see https://cloud.google.com/certificate-manager/docs/public-ca-tutorial",
+ "access.form.hetzner_api_token.label": "Hetzner API token",
+ "access.form.hetzner_api_token.placeholder": "Please enter Hetzner API token",
+ "access.form.hetzner_api_token.tooltip": "For more information, see https://docs.hetzner.com/cloud/api/getting-started/generating-api-token",
"access.form.huaweicloud_access_key_id.label": "Huawei Cloud AccessKeyId",
"access.form.huaweicloud_access_key_id.placeholder": "Please enter Huawei Cloud AccessKeyId",
"access.form.huaweicloud_access_key_id.tooltip": "For more information, see https://support.huaweicloud.com/intl/en-us/usermanual-ca/ca_01_0003.html",
@@ -270,8 +270,8 @@
"access.form.larkbot_webhook_url.label": "Lark bot Webhook URL",
"access.form.larkbot_webhook_url.placeholder": "Please enter Lark bot Webhook URL",
"access.form.larkbot_webhook_url.tooltip": "For more information, see https://www.feishu.cn/hc/en-US/articles/807992406756",
- "access.form.lecdn_api_url.label": "LeCDN URL",
- "access.form.lecdn_api_url.placeholder": "Please enter LeCDN URL",
+ "access.form.lecdn_server_url.label": "LeCDN server URL",
+ "access.form.lecdn_server_url.placeholder": "Please enter LeCDN server URL",
"access.form.lecdn_api_version.label": "LeCDN version",
"access.form.lecdn_api_version.placeholder": "Please select LeCDN version",
"access.form.lecdn_api_role.label": "LeCDN user role",
@@ -282,9 +282,6 @@
"access.form.lecdn_username.placeholder": "Please enter LeCDN username",
"access.form.lecdn_password.label": "LeCDN password",
"access.form.lecdn_password.placeholder": "Please enter GoEdge password",
- "access.form.lecdn_allow_insecure_conns.label": "Insecure SSL/TLS connections",
- "access.form.lecdn_allow_insecure_conns.switch.on": "Allow",
- "access.form.lecdn_allow_insecure_conns.switch.off": "Disallow",
"access.form.mattermost_server_url.label": "Mattermost server URL",
"access.form.mattermost_server_url.placeholder": "Please enter Mattermost server URL",
"access.form.mattermost_username.label": "Mattermost username",
@@ -293,7 +290,7 @@
"access.form.mattermost_password.placeholder": "Please enter Mattermost password",
"access.form.mattermost_default_channel_id.label": "Default Mattermost channel ID (Optional)",
"access.form.mattermost_default_channel_id.placeholder": "Please enter default Mattermost channel ID",
- "access.form.mattermost_default_channel_id.tooltip": "How to get the channel ID? Select the target channel from the left sidebar, click on the channel name at the top, and choose ”Channel Details.” You can directly see the channel ID on the pop-up page.",
+ "access.form.mattermost_default_channel_id.tooltip": "How to get it? Select the target channel from the left sidebar, click on the channel name at the top, and choose ”Channel Details.” You can directly see the channel ID on the pop-up page.",
"access.form.namecheap_username.label": "Namecheap username",
"access.form.namecheap_username.placeholder": "Please enter Namecheap username",
"access.form.namecheap_username.tooltip": "For more information, see https://www.namecheap.com/support/api/intro/",
@@ -330,25 +327,19 @@
"access.form.porkbun_secret_api_key.label": "Porkbun secret API key",
"access.form.porkbun_secret_api_key.placeholder": "Please enter Porkbun secret API key",
"access.form.porkbun_secret_api_key.tooltip": "For more information, see https://porkbun.com/api/json/v3/documentation",
- "access.form.powerdns_api_url.label": "PowerDNS URL",
- "access.form.powerdns_api_url.placeholder": "Please enter PowerDNS URL",
+ "access.form.powerdns_server_url.label": "PowerDNS server URL",
+ "access.form.powerdns_server_url.placeholder": "Please enter PowerDNS server URL",
"access.form.powerdns_api_key.label": "PowerDNS API key",
"access.form.powerdns_api_key.placeholder": "Please enter PowerDNS API key",
"access.form.powerdns_api_key.tooltip": "For more information, see https://doc.powerdns.com/authoritative/http-api/index.html#enabling-the-api",
- "access.form.powerdns_allow_insecure_conns.label": "Insecure SSL/TLS connections",
- "access.form.powerdns_allow_insecure_conns.switch.on": "Allow",
- "access.form.powerdns_allow_insecure_conns.switch.off": "Disallow",
- "access.form.proxmoxve_api_url.label": "Proxmox VE URL",
- "access.form.proxmoxve_api_url.placeholder": "Please enter Proxmox VE URL",
+ "access.form.proxmoxve_server_url.label": "Proxmox VE server URL",
+ "access.form.proxmoxve_server_url.placeholder": "Please enter Proxmox VE server URL",
"access.form.proxmoxve_api_token.label": "Proxmox VE API token",
"access.form.proxmoxve_api_token.placeholder": "Please enter Proxmox VE API token",
"access.form.proxmoxve_api_token.tooltip": "For more information, see https://pve.proxmox.com/pve-docs/pve-admin-guide.html#pveum_tokens",
"access.form.proxmoxve_api_token_secret.label": "Proxmox VE API token secret (Optional)",
"access.form.proxmoxve_api_token_secret.placeholder": "Please enter Proxmox VE API token secret",
"access.form.proxmoxve_api_token_secret.tooltip": "For more information, see https://pve.proxmox.com/pve-docs/pve-admin-guide.html#pveum_tokens",
- "access.form.proxmoxve_allow_insecure_conns.label": "Insecure SSL/TLS connections",
- "access.form.proxmoxve_allow_insecure_conns.switch.on": "Allow",
- "access.form.proxmoxve_allow_insecure_conns.switch.off": "Disallow",
"access.form.qiniu_access_key.label": "Qiniu AccessKey",
"access.form.qiniu_access_key.placeholder": "Please enter Qiniu AccessKey",
"access.form.qiniu_access_key.tooltip": "For more information, see https://portal.qiniu.com/",
@@ -358,25 +349,25 @@
"access.form.rainyun_api_key.label": "Rain Yun API key",
"access.form.rainyun_api_key.placeholder": "Please enter Rain Yun API key",
"access.form.rainyun_api_key.tooltip": "For more information, see https://app.rainyun.com/account/settings/api-key",
- "access.form.ratpanel_api_url.label": "RatPanel URL",
- "access.form.ratpanel_api_url.placeholder": "Please enter RatPanel URL",
+ "access.form.ratpanel_server_url.label": "RatPanel server URL",
+ "access.form.ratpanel_server_url.placeholder": "Please enter RatPanel server URL",
"access.form.ratpanel_access_token_id.label": "RatPanel access token ID",
"access.form.ratpanel_access_token_id.placeholder": "Please enter RatPanel access token ID",
"access.form.ratpanel_access_token_id.tooltip": "For more information, see https://ratpanel.github.io/advanced/api.html",
"access.form.ratpanel_access_token.label": "RatPanel access token",
"access.form.ratpanel_access_token.placeholder": "Please enter RatPanel access token",
"access.form.ratpanel_access_token.tooltip": "For more information, see https://ratpanel.github.io/advanced/api.html",
- "access.form.ratpanel_allow_insecure_conns.label": "Insecure SSL/TLS connections",
- "access.form.ratpanel_allow_insecure_conns.switch.on": "Allow",
- "access.form.ratpanel_allow_insecure_conns.switch.off": "Disallow",
- "access.form.safeline_api_url.label": "SafeLine URL",
- "access.form.safeline_api_url.placeholder": "Please enter SafeLine URL",
+ "access.form.safeline_server_url.label": "SafeLine server URL",
+ "access.form.safeline_server_url.placeholder": "Please enter SafeLine server URL",
"access.form.safeline_api_token.label": "SafeLine API token",
"access.form.safeline_api_token.placeholder": "Please enter SafeLine API token",
"access.form.safeline_api_token.tooltip": "For more information, see https://docs.waf.chaitin.com/en/reference/articles/openapi",
- "access.form.safeline_allow_insecure_conns.label": "Insecure SSL/TLS connections",
- "access.form.safeline_allow_insecure_conns.switch.on": "Allow",
- "access.form.safeline_allow_insecure_conns.switch.off": "Disallow",
+ "access.form.slackbot_token.label": "Slack bot token",
+ "access.form.slackbot_token.placeholder": "Please enter Slack bot token",
+ "access.form.slackbot_token.tooltip": "For more information, see https://docs.slack.dev/authentication/tokens#bot",
+ "access.form.slackbot_default_channel_id.label": "Default Slack channel ID (Optional)",
+ "access.form.slackbot_default_channel_id.placeholder": "Please enter default Slack channel ID",
+ "access.form.slackbot_default_channel_id.tooltip": "How to get it? Please refer to https://www.youtube.com/watch?v=Uz5Yi5C2pwQ",
"access.form.ssh_host.label": "Server host",
"access.form.ssh_host.placeholder": "Please enter server host",
"access.form.ssh_port.label": "Server port",
@@ -401,12 +392,12 @@
"access.form.sslcom_eab_hmac_key.label": "ACME EAB HMAC key",
"access.form.sslcom_eab_hmac_key.placeholder": "Please enter ACME EAB HMAC key",
"access.form.sslcom_eab_hmac_key.tooltip": "For more information, see https://www.ssl.com/how-to/generate-acme-credentials-for-reseller-customers/",
- "access.form.telegram_bot_token.label": "Telegram bot token",
- "access.form.telegram_bot_token.placeholder": "Please enter Telegram bot token",
- "access.form.telegram_bot_token.tooltip": "How to get the bot token? Please refer to https://gist.github.com/nafiesl/4ad622f344cd1dc3bb1ecbe468ff9f8a",
- "access.form.telegram_bot_default_chat_id.label": "Default Telegram chat ID (Optional)",
- "access.form.telegram_bot_default_chat_id.placeholder": "Please enter default Telegram chat ID",
- "access.form.telegram_bot_default_chat_id.tooltip": "How to get the chat ID? Please refer to https://gist.github.com/nafiesl/4ad622f344cd1dc3bb1ecbe468ff9f8a",
+ "access.form.telegrambot_token.label": "Telegram bot token",
+ "access.form.telegrambot_token.placeholder": "Please enter Telegram bot token",
+ "access.form.telegrambot_token.tooltip": "How to get it? Please refer to https://gist.github.com/nafiesl/4ad622f344cd1dc3bb1ecbe468ff9f8a",
+ "access.form.telegrambot_default_chat_id.label": "Default Telegram chat ID (Optional)",
+ "access.form.telegrambot_default_chat_id.placeholder": "Please enter default Telegram chat ID",
+ "access.form.telegrambot_default_chat_id.tooltip": "How to get it? Please refer to https://gist.github.com/nafiesl/4ad622f344cd1dc3bb1ecbe468ff9f8a",
"access.form.tencentcloud_secret_id.label": "Tencent Cloud SecretId",
"access.form.tencentcloud_secret_id.placeholder": "Please enter Tencent Cloud SecretId",
"access.form.tencentcloud_secret_id.tooltip": "For more information, see https://cloud.tencent.com/document/product/598/40488?lang=en",
@@ -466,9 +457,6 @@
"access.form.webhook_preset_data.option.pushplus.label": "PushPlus",
"access.form.webhook_preset_data.option.serverchan.label": "ServerChan",
"access.form.webhook_preset_data.option.common.label": "General template",
- "access.form.webhook_allow_insecure_conns.label": "Insecure SSL/TLS connections",
- "access.form.webhook_allow_insecure_conns.switch.on": "Allow",
- "access.form.webhook_allow_insecure_conns.switch.off": "Disallow",
"access.form.wecombot_webhook_url.label": "WeCom bot Webhook URL",
"access.form.wecombot_webhook_url.placeholder": "Please enter WeCom bot Webhook URL",
"access.form.wecombot_webhook_url.tooltip": "For more information, see https://open.work.weixin.qq.com/help2/pc/18401",
diff --git a/ui/src/i18n/locales/en/nls.provider.json b/ui/src/i18n/locales/en/nls.provider.json
index a3bbfecc..85966786 100644
--- a/ui/src/i18n/locales/en/nls.provider.json
+++ b/ui/src/i18n/locales/en/nls.provider.json
@@ -58,14 +58,17 @@
"provider.ctcccloud": "China Telecom Cloud (State Cloud)",
"provider.cucccloud": "China Unicom Cloud",
"provider.desec": "deSEC",
+ "provider.digitalocean": "DigitalOcean",
"provider.dingtalkbot": "DingTalk Bot",
+ "provider.discordbot": "Discord Bot",
"provider.dnsla": "DNS.LA",
"provider.dogecloud": "Doge Cloud",
"provider.dogecloud.cdn": "Doge Cloud - CDN (Content Delivery Network)",
+ "provider.duckdns": "Duck DNS",
"provider.dynv6": "dynv6",
"provider.edgio": "Edgio",
"provider.edgio.applications": "Edgio - Applications",
- "provider.email": "Email",
+ "provider.email": "Email (SMTP)",
"provider.fastly": "Fastly",
"provider.flexcdn": "FlexCDN",
"provider.gcore": "Gcore",
@@ -74,6 +77,7 @@
"provider.godaddy": "GoDaddy",
"provider.goedge": "GoEdge",
"provider.googletrustservices": "Google Trust Services",
+ "provider.hetzner": "Hetzner",
"provider.huaweicloud": "Huawei Cloud",
"provider.huaweicloud.cdn": "Huawei Cloud - CDN (Content Delivery Network)",
"provider.huaweicloud.dns": "Huawei Cloud - DNS (Domain Name Service)",
@@ -92,7 +96,7 @@
"provider.lecdn": "LeCDN",
"provider.letsencrypt": "Let's Encrypt",
"provider.letsencryptstaging": "Let's Encrypt Staging Environment",
- "provider.local": "Local deployment",
+ "provider.local": "Local host",
"provider.mattermost": "Mattermost",
"provider.namecheap": "Namecheap",
"provider.namedotcom": "Name.com",
@@ -114,7 +118,8 @@
"provider.ratpanel.console": "RatPanel - Console",
"provider.ratpanel.site": "RatPanel - Website",
"provider.safeline": "SafeLine",
- "provider.ssh": "SSH deployment",
+ "provider.slackbot": "Slack Bot",
+ "provider.ssh": "Remote host (SSH)",
"provider.sslcom": "SSL.com",
"provider.telegrambot": "Telegram Bot",
"provider.tencentcloud": "Tencent Cloud",
diff --git a/ui/src/i18n/locales/en/nls.workflow.nodes.json b/ui/src/i18n/locales/en/nls.workflow.nodes.json
index e0602370..92989ac2 100644
--- a/ui/src/i18n/locales/en/nls.workflow.nodes.json
+++ b/ui/src/i18n/locales/en/nls.workflow.nodes.json
@@ -815,6 +815,9 @@
"workflow_node.notify.form.provider_access.placeholder": "Please select an authorization of notification provider",
"workflow_node.notify.form.provider_access.button": "Create",
"workflow_node.notify.form.params_config.label": "Parameter settings",
+ "workflow_node.notify.form.discordbot_channel_id.label": "Discord channel ID (Optional)",
+ "workflow_node.notify.form.discordbot_channel_id.placeholder": "Please enter Discord channel ID to override the default value",
+ "workflow_node.notify.form.discordbot_channel_id.tooltip": "Leave it blank to use the default channel ID provided by the authorization.",
"workflow_node.notify.form.email_sender_address.label": "Sender email address (Optional)",
"workflow_node.notify.form.email_sender_address.placeholder": "Please enter sender email address to override the default value",
"workflow_node.notify.form.email_sender_address.tooltip": "Leave it blank to use the default sender email address provided by the authorization.",
@@ -822,11 +825,14 @@
"workflow_node.notify.form.email_receiver_address.placeholder": "Please enter receiver email address to override the default value",
"workflow_node.notify.form.email_receiver_address.tooltip": "Leave it blank to use the default receiver email address provided by the selected authorization.",
"workflow_node.notify.form.mattermost_channel_id.label": "Mattermost channel ID (Optional)",
- "workflow_node.notify.form.mattermost_channel_id.placeholder": "Please enter Mattermost channel ID to override the default value",
+ "workflow_node.notify.form.mattermost_channel_id.placeholder": "Please enter Mattermost channel ID to override the default value",
"workflow_node.notify.form.mattermost_channel_id.tooltip": "Leave it blank to use the default channel ID provided by the authorization.",
- "workflow_node.notify.form.telegram_bot_chat_id.label": "Telegram chat ID (Optional)",
- "workflow_node.notify.form.telegram_bot_chat_id.placeholder": "Please enter Telegram chat ID to override the default value",
- "workflow_node.notify.form.telegram_bot_chat_id.tooltip": "Leave it blank to use the default chat ID provided by the selected authorization.",
+ "workflow_node.notify.form.slackbot_channel_id.label": "Slack channel ID (Optional)",
+ "workflow_node.notify.form.slackbot_channel_id.placeholder": "Please enter Slack channel ID to override the default value",
+ "workflow_node.notify.form.slackbot_channel_id.tooltip": "Leave it blank to use the default channel ID provided by the authorization.",
+ "workflow_node.notify.form.telegrambot_chat_id.label": "Telegram chat ID (Optional)",
+ "workflow_node.notify.form.telegrambot_chat_id.placeholder": "Please enter Telegram chat ID to override the default value",
+ "workflow_node.notify.form.telegrambot_chat_id.tooltip": "Leave it blank to use the default chat ID provided by the selected authorization.",
"workflow_node.notify.form.webhook_data.label": "Webhook data (Optional)",
"workflow_node.notify.form.webhook_data.placeholder": "Please enter Webhook data to override the default value",
"workflow_node.notify.form.webhook_data.tooltip": "Leave it blank to use the default Webhook data provided by the authorization.",
diff --git a/ui/src/i18n/locales/zh/nls.access.json b/ui/src/i18n/locales/zh/nls.access.json
index a5e89438..7e184d55 100644
--- a/ui/src/i18n/locales/zh/nls.access.json
+++ b/ui/src/i18n/locales/zh/nls.access.json
@@ -34,16 +34,16 @@
"access.form.certificate_authority.placeholder": "请选择证书颁发机构",
"access.form.notification_channel.label": "通知渠道",
"access.form.notification_channel.placeholder": "请选择通知渠道",
- "access.form.1panel_api_url.label": "1Panel URL",
- "access.form.1panel_api_url.placeholder": "请输入 1Panel URL",
+ "access.form.common_allow_insecure_conns.label": "忽略 SSL/TLS 证书错误",
+ "access.form.common_allow_insecure_conns.switch.on": "允许",
+ "access.form.common_allow_insecure_conns.switch.off": "不允许",
+ "access.form.1panel_server_url.label": "1Panel 服务地址",
+ "access.form.1panel_server_url.placeholder": "请输入 1Panel 服务地址",
"access.form.1panel_api_version.label": "1Panel 版本",
"access.form.1panel_api_version.placeholder": "请选择 1Panel 版本",
"access.form.1panel_api_key.label": "1Panel 接口密钥",
"access.form.1panel_api_key.placeholder": "请输入 1Panel 接口密钥",
"access.form.1panel_api_key.tooltip": "这是什么?请参阅 https://1panel.cn/docs/dev_manual/api_manual/",
- "access.form.1panel_allow_insecure_conns.label": "忽略 SSL/TLS 证书错误",
- "access.form.1panel_allow_insecure_conns.switch.on": "允许",
- "access.form.1panel_allow_insecure_conns.switch.off": "不允许",
"access.form.acmeca_endpoint.label": "服务端点",
"access.form.acmeca_endpoint.placeholder": "请输入服务端点",
"access.form.acmeca_endpoint.tooltip": "这是什么?请参阅 https://datatracker.ietf.org/doc/html/rfc8555#section-7.1.1",
@@ -95,22 +95,16 @@
"access.form.baiducloud_secret_access_key.tooltip": "这是什么?请参阅 https://cloud.baidu.com/doc/Reference/s/jjwvz2e3p",
"access.form.baishan_api_token.label": "白山云 API Token",
"access.form.baishan_api_token.placeholder": "请输入白山云 API Token",
- "access.form.baotapanel_api_url.label": "宝塔面板 URL",
- "access.form.baotapanel_api_url.placeholder": "请输入宝塔面板 URL",
+ "access.form.baotapanel_server_url.label": "宝塔面板服务地址",
+ "access.form.baotapanel_server_url.placeholder": "请输入宝塔面板服务地址",
"access.form.baotapanel_api_key.label": "宝塔面板接口密钥",
"access.form.baotapanel_api_key.placeholder": "请输入宝塔面板接口密钥",
"access.form.baotapanel_api_key.tooltip": "这是什么?请参阅 https://www.bt.cn/bbs/thread-113890-1-1.html",
- "access.form.baotapanel_allow_insecure_conns.label": "忽略 SSL/TLS 证书错误",
- "access.form.baotapanel_allow_insecure_conns.switch.on": "允许",
- "access.form.baotapanel_allow_insecure_conns.switch.off": "不允许",
- "access.form.baotawaf_api_url.label": "堡塔云 WAF URL",
- "access.form.baotawaf_api_url.placeholder": "请输入堡塔云 WAF URL",
+ "access.form.baotawaf_server_url.label": "堡塔云 WAF 服务地址",
+ "access.form.baotawaf_server_url.placeholder": "请输入堡塔云 WAF 服务地址",
"access.form.baotawaf_api_key.label": "堡塔云 WAF 接口密钥",
"access.form.baotawaf_api_key.placeholder": "请输入 堡塔云 WAF 接口密钥",
"access.form.baotawaf_api_key.tooltip": "这是什么?请参阅 https://github.com/aaPanel/aaWAF/blob/main/API.md",
- "access.form.baotawaf_allow_insecure_conns.label": "忽略 SSL/TLS 证书错误",
- "access.form.baotawaf_allow_insecure_conns.switch.on": "允许",
- "access.form.baotawaf_allow_insecure_conns.switch.off": "不允许",
"access.form.bunny_api_key.label": "Bunny API Key",
"access.form.bunny_api_key.placeholder": "请输入 Bunny API Key",
"access.form.bunny_api_key.tooltip": "这是什么?请参阅 https://docs.bunny.net/reference/bunnynet-api-overview",
@@ -123,17 +117,14 @@
"access.form.cachefly_api_token.label": "CacheFly API Token",
"access.form.cachefly_api_token.placeholder": "请输入 CacheFly API Token",
"access.form.cachefly_api_token.tooltip": "这是什么?请参阅 https://kb.cachefly.com/kb/guide/en/generating-tokens-and-keys-Oll9Irt5TI/Steps/2460228",
- "access.form.cdnfly_api_url.label": "Cdnfly URL",
- "access.form.cdnfly_api_url.placeholder": "请输入 Cdnfly URL",
+ "access.form.cdnfly_server_url.label": "Cdnfly 服务地址",
+ "access.form.cdnfly_server_url.placeholder": "请输入 Cdnfly 服务地址",
"access.form.cdnfly_api_key.label": "Cdnfly 用户端 API Key",
"access.form.cdnfly_api_key.placeholder": "请输入 Cdnfly 用户端 API Key",
"access.form.cdnfly_api_key.tooltip": "这是什么?请参阅 https://doc.cdnfly.cn/shiyongjieshao.html",
"access.form.cdnfly_api_secret.label": "Cdnfly 用户端 API Secret",
"access.form.cdnfly_api_secret.placeholder": "请输入 Cdnfly 用户端 API Secret",
"access.form.cdnfly_api_secret.tooltip": "这是什么?请参阅 https://doc.cdnfly.cn/shiyongjieshao.html",
- "access.form.cdnfly_allow_insecure_conns.label": "忽略 SSL/TLS 证书错误",
- "access.form.cdnfly_allow_insecure_conns.switch.on": "允许",
- "access.form.cdnfly_allow_insecure_conns.switch.off": "不允许",
"access.form.cloudflare_dns_api_token.label": "Cloudflare DNS API 令牌",
"access.form.cloudflare_dns_api_token.placeholder": "请输入 Cloudflare DNS API 令牌",
"access.form.cloudflare_dns_api_token.tooltip": "这是什么?请参阅 https://developers.cloudflare.com/fundamentals/api/get-started/create-token/",
@@ -155,12 +146,21 @@
"access.form.desec_token.label": "deSEC Token",
"access.form.desec_token.placeholder": "请输入 deSEC Token",
"access.form.desec_token.tooltip": "这是什么?请参阅 https://desec.readthedocs.io/en/latest/auth/tokens.html",
+ "access.form.digitalocean_access_token.label": "DigitalOcean Access Token",
+ "access.form.digitalocean_access_token.placeholder": "请输入 DigitalOcean Access Token",
+ "access.form.digitalocean_access_token.tooltip": "这是什么?请参阅 https://docs.digitalocean.com/reference/api/create-personal-access-token/",
"access.form.dingtalkbot_webhook_url.label": "钉钉群机器人 Webhook 地址",
"access.form.dingtalkbot_webhook_url.placeholder": "请输入钉钉群机器人 Webhook 地址",
"access.form.dingtalkbot_webhook_url.tooltip": "这是什么?请参阅 https://open.dingtalk.com/document/orgapp/obtain-the-webhook-address-of-a-custom-robot",
"access.form.dingtalkbot_secret.label": "钉钉群机器人加签密钥",
"access.form.dingtalkbot_secret.placeholder": "请输入钉钉群机器人加签密钥",
"access.form.dingtalkbot_secret.tooltip": "这是什么?请参阅 https://open.dingtalk.com/document/orgapp/customize-robot-security-settings",
+ "access.form.discordbot_token.label": "Discord 机器人 API Token",
+ "access.form.discordbot_token.placeholder": "请输入 Discord 机器人 API Token",
+ "access.form.discordbot_token.tooltip": "这是什么?请参阅 https://docs.discordbotstudio.org/setting-up-dbs/finding-your-bot-token",
+ "access.form.discordbot_default_channel_id.label": "默认的 Discord 频道 ID(可选)",
+ "access.form.discordbot_default_channel_id.placeholder": "请输入默认的 Discord 频道 ID",
+ "access.form.discordbot_default_channel_id.tooltip": "这是什么?请参阅 https://support.discord.com/hc/en-us/articles/206346498-Where-can-I-find-my-User-Server-Message-ID",
"access.form.dnsla_api_id.label": "DNS.LA API ID",
"access.form.dnsla_api_id.placeholder": "请输入 DNS.LA API ID",
"access.form.dnsla_api_id.tooltip": "这是什么?请参阅 https://www.dns.la/docs/ApiDoc",
@@ -173,6 +173,9 @@
"access.form.dogecloud_secret_key.label": "多吉云 SecretKey",
"access.form.dogecloud_secret_key.placeholder": "请输入多吉云 SecretKey",
"access.form.dogecloud_secret_key.tooltip": "这是什么?请参阅 https://console.dogecloud.com/",
+ "access.form.duckdns_token.label": "DuckDNS Token",
+ "access.form.duckdns_token.placeholder": "请输入 DuckDNS Token",
+ "access.form.duckdns_token.tooltip": "这是什么?请参阅 https://www.duckdns.org/spec.jsp",
"access.form.dynv6_http_token.label": "dynv6 HTTP Token",
"access.form.dynv6_http_token.placeholder": "请输入 dynv6 HTTP Token",
"access.form.dynv6_http_token.tooltip": "这是什么?请参阅 https://dynv6.com/keys",
@@ -195,8 +198,8 @@
"access.form.email_default_sender_address.placeholder": "请输入默认的发送邮箱地址",
"access.form.email_default_receiver_address.label": "默认的接收邮箱地址(可选)",
"access.form.email_default_receiver_address.placeholder": "请输入默认的接收邮箱地址",
- "access.form.flexcdn_api_url.label": "FlexCDN URL",
- "access.form.flexcdn_api_url.placeholder": "请输入 FlexCDN URL",
+ "access.form.flexcdn_server_url.label": "FlexCDN 服务地址",
+ "access.form.flexcdn_server_url.placeholder": "请输入 FlexCDN 服务地址",
"access.form.flexcdn_api_role.label": "FlexCDN 用户角色",
"access.form.flexcdn_api_role.placeholder": "请选择 FlexCDN 用户角色",
"access.form.flexcdn_api_role.option.user.label": "平台用户",
@@ -207,9 +210,6 @@
"access.form.flexcdn_access_key.label": "FlexCDN AccessKey",
"access.form.flexcdn_access_key.placeholder": "请输入 FlexCDN AccessKey",
"access.form.flexcdn_access_key.tooltip": "这是什么?请参阅 https://flexcdn.cn/docs/api/auth",
- "access.form.flexcdn_allow_insecure_conns.label": "忽略 SSL/TLS 证书错误",
- "access.form.flexcdn_allow_insecure_conns.switch.on": "允许",
- "access.form.flexcdn_allow_insecure_conns.switch.off": "不允许",
"access.form.gcore_api_token.label": "Gcore API Token",
"access.form.gcore_api_token.placeholder": "请输入 Gcore API Token",
"access.form.gcore_api_token.tooltip": "这是什么?请参阅 https://api.gcore.com/docs/iam#section/Authentication",
@@ -225,8 +225,8 @@
"access.form.godaddy_api_secret.label": "GoDaddy API Secret",
"access.form.godaddy_api_secret.placeholder": "请输入 GoDaddy API Secret",
"access.form.godaddy_api_secret.tooltip": "这是什么?请参阅 https://developer.godaddy.com/",
- "access.form.goedge_api_url.label": "GoEdge URL",
- "access.form.goedge_api_url.placeholder": "请输入 GoEdge URL",
+ "access.form.goedge_server_url.label": "GoEdge 服务地址",
+ "access.form.goedge_server_url.placeholder": "请输入 GoEdge 服务地址",
"access.form.goedge_api_role.label": "GoEdge 用户角色",
"access.form.goedge_api_role.placeholder": "请选择 GoEdge 用户角色",
"access.form.goedge_api_role.option.user.label": "平台用户",
@@ -237,15 +237,15 @@
"access.form.goedge_access_key.label": "GoEdge AccessKey",
"access.form.goedge_access_key.placeholder": "请输入 GoEdge AccessKey",
"access.form.goedge_access_key.tooltip": "这是什么?请参阅 https://goedge.cloud/docs/API/Auth.md",
- "access.form.goedge_allow_insecure_conns.label": "忽略 SSL/TLS 证书错误",
- "access.form.goedge_allow_insecure_conns.switch.on": "允许",
- "access.form.goedge_allow_insecure_conns.switch.off": "不允许",
"access.form.googletrustservices_eab_kid.label": "ACME EAB KID",
"access.form.googletrustservices_eab_kid.placeholder": "请输入 ACME EAB KID",
"access.form.googletrustservices_eab_kid.tooltip": "这是什么?请参阅 https://cloud.google.com/certificate-manager/docs/public-ca-tutorial",
"access.form.googletrustservices_eab_hmac_key.label": "ACME EAB HMAC Key",
"access.form.googletrustservices_eab_hmac_key.placeholder": "请输入 ACME EAB HMAC Key",
"access.form.googletrustservices_eab_hmac_key.tooltip": "这是什么?请参阅 https://cloud.google.com/certificate-manager/docs/public-ca-tutorial",
+ "access.form.hetzner_api_token.label": "Hetzner API Token",
+ "access.form.hetzner_api_token.placeholder": "请输入 Hetzner API Token",
+ "access.form.hetzner_api_token.tooltip": "这是什么?请参阅 https://docs.hetzner.com/cloud/api/getting-started/generating-api-token",
"access.form.huaweicloud_access_key_id.label": "华为云 AccessKeyId",
"access.form.huaweicloud_access_key_id.placeholder": "请输入华为云 AccessKeyId",
"access.form.huaweicloud_access_key_id.tooltip": "这是什么?请参阅 https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html",
@@ -264,8 +264,8 @@
"access.form.larkbot_webhook_url.label": "飞书群机器人 Webhook 地址",
"access.form.larkbot_webhook_url.placeholder": "请输入飞书群机器人 Webhook 地址",
"access.form.larkbot_webhook_url.tooltip": "这是什么?请参阅 https://www.feishu.cn/hc/zh-CN/articles/807992406756",
- "access.form.lecdn_api_url.label": "LeCDN URL",
- "access.form.lecdn_api_url.placeholder": "请输入 LeCDN URL",
+ "access.form.lecdn_server_url.label": "LeCDN 服务地址",
+ "access.form.lecdn_server_url.placeholder": "请输入 LeCDN 服务地址",
"access.form.lecdn_api_version.label": "LeCDN 版本",
"access.form.lecdn_api_version.placeholder": "请选择 LeCDN 版本",
"access.form.lecdn_api_role.label": "LeCDN 用户角色",
@@ -276,9 +276,6 @@
"access.form.lecdn_username.placeholder": "请输入 LeCDN 用户名",
"access.form.lecdn_password.label": "LeCDN 用户密码",
"access.form.lecdn_password.placeholder": "请输入 LeCDN 用户密码",
- "access.form.lecdn_allow_insecure_conns.label": "忽略 SSL/TLS 证书错误",
- "access.form.lecdn_allow_insecure_conns.switch.on": "允许",
- "access.form.lecdn_allow_insecure_conns.switch.off": "不允许",
"access.form.mattermost_server_url.label": "Mattermost 服务地址",
"access.form.mattermost_server_url.placeholder": "请输入 Mattermost 服务地址",
"access.form.mattermost_username.label": "Mattermost 用户名",
@@ -287,7 +284,7 @@
"access.form.mattermost_password.placeholder": "请输入 Mattermost 密码",
"access.form.mattermost_default_channel_id.label": "默认的 Mattermost 频道 ID(可选)",
"access.form.mattermost_default_channel_id.placeholder": "请输入默认的 Mattermost 频道 ID",
- "access.form.mattermost_default_channel_id.tooltip": "如何获取频道 ID?从左侧边栏中选择目标频道,点击顶部的频道名称,选择“频道详情”,即可在弹出页面中直接看到频道 ID。",
+ "access.form.mattermost_default_channel_id.tooltip": "如何获取此参数?从左侧边栏中选择目标频道,点击顶部的频道名称,选择“频道详情”,即可在弹出页面中直接看到频道 ID。",
"access.form.namecheap_username.label": "Namecheap 用户名",
"access.form.namecheap_username.placeholder": "请输入 Namecheap 用户名",
"access.form.namecheap_username.tooltip": "这是什么?请参阅 https://www.namecheap.com/support/api/intro/",
@@ -324,25 +321,19 @@
"access.form.porkbun_secret_api_key.label": "Porkbun Secret API Key",
"access.form.porkbun_secret_api_key.placeholder": "请输入 Porkbun Secret API Key",
"access.form.porkbun_secret_api_key.tooltip": "这是什么?请参阅 https://porkbun.com/api/json/v3/documentation",
- "access.form.powerdns_api_url.label": "PowerDNS URL",
- "access.form.powerdns_api_url.placeholder": "请输入 PowerDNS URL",
+ "access.form.powerdns_server_url.label": "PowerDNS 服务地址",
+ "access.form.powerdns_server_url.placeholder": "请输入 PowerDNS 服务地址",
"access.form.powerdns_api_key.label": "PowerDNS API Key",
"access.form.powerdns_api_key.placeholder": "请输入 PowerDNS API Key",
"access.form.powerdns_api_key.tooltip": "这是什么?请参阅 https://doc.powerdns.com/authoritative/http-api/index.html#enabling-the-api",
- "access.form.powerdns_allow_insecure_conns.label": "忽略 SSL/TLS 证书错误",
- "access.form.powerdns_allow_insecure_conns.switch.on": "允许",
- "access.form.powerdns_allow_insecure_conns.switch.off": "不允许",
- "access.form.proxmoxve_api_url.label": "Proxmox VE URL",
- "access.form.proxmoxve_api_url.placeholder": "请输入 Proxmox VE URL",
+ "access.form.proxmoxve_server_url.label": "Proxmox VE 服务地址",
+ "access.form.proxmoxve_server_url.placeholder": "请输入 Proxmox VE 服务地址",
"access.form.proxmoxve_api_token.label": "Proxmox VE API Token",
"access.form.proxmoxve_api_token.placeholder": "请输入 Proxmox VE API Token",
"access.form.proxmoxve_api_token.tooltip": "这是什么?请参阅 https://pve.proxmox.com/pve-docs/pve-admin-guide.html#pveum_tokens",
"access.form.proxmoxve_api_token_secret.label": "Proxmox VE API Token Secret(可选)",
"access.form.proxmoxve_api_token_secret.placeholder": "请输入 Proxmox VE API Token Secret",
"access.form.proxmoxve_api_token_secret.tooltip": "这是什么?请参阅 https://pve.proxmox.com/pve-docs/pve-admin-guide.html#pveum_tokens",
- "access.form.proxmoxve_allow_insecure_conns.label": "忽略 SSL/TLS 证书错误",
- "access.form.proxmoxve_allow_insecure_conns.switch.on": "允许",
- "access.form.proxmoxve_allow_insecure_conns.switch.off": "不允许",
"access.form.qiniu_access_key.label": "七牛云 AccessKey",
"access.form.qiniu_access_key.placeholder": "请输入七牛云 AccessKey",
"access.form.qiniu_access_key.tooltip": "这是什么?请参阅 https://portal.qiniu.com/",
@@ -352,25 +343,25 @@
"access.form.rainyun_api_key.label": "雨云 API 密钥",
"access.form.rainyun_api_key.placeholder": "请输入雨云 API 密钥",
"access.form.rainyun_api_key.tooltip": "这是什么?请参阅 https://app.rainyun.com/account/settings/api-key",
- "access.form.ratpanel_api_url.label": "耗子面板 URL",
- "access.form.ratpanel_api_url.placeholder": "请输入耗子面板 URL",
+ "access.form.ratpanel_server_url.label": "耗子面板服务地址",
+ "access.form.ratpanel_server_url.placeholder": "请输入耗子面板服务地址",
"access.form.ratpanel_access_token_id.label": "耗子面板 AccessToken ID",
"access.form.ratpanel_access_token_id.placeholder": "请输入耗子面板 AccessToken ID",
"access.form.ratpanel_access_token_id.tooltip": "这是什么?请参阅 https://ratpanel.github.io/advanced/api.html",
"access.form.ratpanel_access_token.label": "耗子面板 AccessToken",
"access.form.ratpanel_access_token.placeholder": "请输入耗子面板 AccessToken",
"access.form.ratpanel_access_token.tooltip": "这是什么?请参阅 https://ratpanel.github.io/advanced/api.html",
- "access.form.ratpanel_allow_insecure_conns.label": "忽略 SSL/TLS 证书错误",
- "access.form.ratpanel_allow_insecure_conns.switch.on": "允许",
- "access.form.ratpanel_allow_insecure_conns.switch.off": "不允许",
- "access.form.safeline_api_url.label": "雷池 URL",
- "access.form.safeline_api_url.placeholder": "请输入雷池 URL",
+ "access.form.safeline_server_url.label": "雷池服务地址",
+ "access.form.safeline_server_url.placeholder": "请输入雷池服务地址",
"access.form.safeline_api_token.label": "雷池 API Token",
"access.form.safeline_api_token.placeholder": "请输入雷池 API Token",
"access.form.safeline_api_token.tooltip": "这是什么?请参阅 https://docs.waf-ce.chaitin.cn/zh/更多技术文档/OPENAPI",
- "access.form.safeline_allow_insecure_conns.label": "忽略 SSL/TLS 证书错误",
- "access.form.safeline_allow_insecure_conns.switch.on": "允许",
- "access.form.safeline_allow_insecure_conns.switch.off": "不允许",
+ "access.form.slackbot_token.label": "Slack 机器人 Token",
+ "access.form.slackbot_token.placeholder": "请输入 Slack 机器人 Token",
+ "access.form.slackbot_token.tooltip": "这是什么?请参阅 https://docs.slack.dev/authentication/tokens#bot",
+ "access.form.slackbot_default_channel_id.label": "默认的 Slack 频道 ID(可选)",
+ "access.form.slackbot_default_channel_id.placeholder": "请输入默认的 Slack 频道 ID",
+ "access.form.slackbot_default_channel_id.tooltip": "如何获取此参数?请参阅 https://www.youtube.com/watch?v=Uz5Yi5C2pwQ",
"access.form.ssh_host.label": "服务器地址",
"access.form.ssh_host.placeholder": "请输入服务器地址",
"access.form.ssh_port.label": "服务器端口",
@@ -395,12 +386,12 @@
"access.form.sslcom_eab_hmac_key.label": "ACME EAB HMAC key",
"access.form.sslcom_eab_hmac_key.placeholder": "请输入 ACME EAB HMAC key",
"access.form.sslcom_eab_hmac_key.tooltip": "这是什么?请参阅 https://www.ssl.com/how-to/generate-acme-credentials-for-reseller-customers/",
- "access.form.telegram_bot_token.label": "Telegram 群机器人 API Token",
- "access.form.telegram_bot_token.placeholder": "请输入 Telegram 群机器人 API Token",
- "access.form.telegram_bot_token.tooltip": "如何获取机器人 API Token?请参阅 https://gist.github.com/nafiesl/4ad622f344cd1dc3bb1ecbe468ff9f8a",
- "access.form.telegram_bot_default_chat_id.label": "默认的 Telegram 会话 ID(可选)",
- "access.form.telegram_bot_default_chat_id.placeholder": "请输入默认的 Telegram 会话 ID",
- "access.form.telegram_bot_default_chat_id.tooltip": "如何获取会话 ID?请参阅 https://gist.github.com/nafiesl/4ad622f344cd1dc3bb1ecbe468ff9f8a",
+ "access.form.telegrambot_token.label": "Telegram 机器人 API Token",
+ "access.form.telegrambot_token.placeholder": "请输入 Telegram 机器人 API Token",
+ "access.form.telegrambot_token.tooltip": "如何获取此参数?请参阅 https://gist.github.com/nafiesl/4ad622f344cd1dc3bb1ecbe468ff9f8a",
+ "access.form.telegrambot_default_chat_id.label": "默认的 Telegram 会话 ID(可选)",
+ "access.form.telegrambot_default_chat_id.placeholder": "请输入默认的 Telegram 会话 ID",
+ "access.form.telegrambot_default_chat_id.tooltip": "如何获取此参数?请参阅 https://gist.github.com/nafiesl/4ad622f344cd1dc3bb1ecbe468ff9f8a",
"access.form.tencentcloud_secret_id.label": "腾讯云 SecretId",
"access.form.tencentcloud_secret_id.placeholder": "请输入腾讯云 SecretId",
"access.form.tencentcloud_secret_id.tooltip": "这是什么?请参阅 https://cloud.tencent.com/document/product/598/40488",
@@ -466,9 +457,6 @@
"access.form.webhook_preset_data.option.pushplus.label": "PushPlus 推送加",
"access.form.webhook_preset_data.option.serverchan.label": "Server 酱",
"access.form.webhook_preset_data.option.common.label": "通用模板",
- "access.form.webhook_allow_insecure_conns.label": "忽略 SSL/TLS 证书错误",
- "access.form.webhook_allow_insecure_conns.switch.on": "允许",
- "access.form.webhook_allow_insecure_conns.switch.off": "不允许",
"access.form.wecombot_webhook_url.label": "企业微信群机器人 Webhook 地址",
"access.form.wecombot_webhook_url.placeholder": "请输入企业微信群机器人 Webhook 地址",
"access.form.wecombot_webhook_url.tooltip": "这是什么?请参阅 https://open.work.weixin.qq.com/help2/pc/18401",
diff --git a/ui/src/i18n/locales/zh/nls.provider.json b/ui/src/i18n/locales/zh/nls.provider.json
index b9fb8777..c4e126e0 100644
--- a/ui/src/i18n/locales/zh/nls.provider.json
+++ b/ui/src/i18n/locales/zh/nls.provider.json
@@ -58,14 +58,17 @@
"provider.ctcccloud": "联通云",
"provider.cucccloud": "天翼云",
"provider.desec": "deSEC",
+ "provider.digitalocean": "DigitalOcean",
"provider.dingtalkbot": "钉钉群机器人",
+ "provider.discordbot": "Discord 机器人",
"provider.dnsla": "DNS.LA",
"provider.dogecloud": "多吉云",
"provider.dogecloud.cdn": "多吉云 - 内容分发网络 CDN",
+ "provider.duckdns": "Duck DNS",
"provider.dynv6": "dynv6",
"provider.edgio": "Edgio",
"provider.edgio.applications": "Edgio - Applications",
- "provider.email": "邮件",
+ "provider.email": "邮件(SMTP)",
"provider.fastly": "Fastly",
"provider.flexcdn": "FlexCDN",
"provider.gcore": "Gcore",
@@ -74,6 +77,7 @@
"provider.godaddy": "GoDaddy",
"provider.goedge": "GoEdge",
"provider.googletrustservices": "Google Trust Services",
+ "provider.hetzner": "Hetzner",
"provider.huaweicloud": "华为云",
"provider.huaweicloud.cdn": "华为云 - 内容分发网络 CDN",
"provider.huaweicloud.dns": "华为云 - 云解析 DNS",
@@ -92,7 +96,7 @@
"provider.lecdn": "LeCDN",
"provider.letsencrypt": "Let's Encrypt",
"provider.letsencryptstaging": "Let's Encrypt 测试环境",
- "provider.local": "本地部署",
+ "provider.local": "本地主机",
"provider.mattermost": "Mattermost",
"provider.namecheap": "Namecheap",
"provider.namedotcom": "Name.com",
@@ -114,9 +118,10 @@
"provider.ratpanel.console": "耗子面板 - 控制台",
"provider.ratpanel.site": "耗子面板 - 网站",
"provider.safeline": "雷池",
- "provider.ssh": "SSH 部署",
+ "provider.slackbot": "Slack 机器人",
+ "provider.ssh": "远程主机(SSH)",
"provider.sslcom": "SSL.com",
- "provider.telegrambot": "Telegram 群机器人",
+ "provider.telegrambot": "Telegram 机器人",
"provider.tencentcloud": "腾讯云",
"provider.tencentcloud.cdn": "腾讯云 - 内容分发网络 CDN",
"provider.tencentcloud.clb": "腾讯云 - 负载均衡 CLB",
diff --git a/ui/src/i18n/locales/zh/nls.settings.json b/ui/src/i18n/locales/zh/nls.settings.json
index cde8ec0f..b3da01aa 100644
--- a/ui/src/i18n/locales/zh/nls.settings.json
+++ b/ui/src/i18n/locales/zh/nls.settings.json
@@ -28,8 +28,8 @@
"settings.notification.channel.switch.off": "停用",
"settings.notification.push_test.button": "推送测试消息",
"settings.notification.push_test.pushed": "已推送",
- "settings.notification.channel.form.bark_server_url.label": "服务器地址",
- "settings.notification.channel.form.bark_server_url.placeholder": "请输入服务器地址",
+ "settings.notification.channel.form.bark_server_url.label": "服务地址",
+ "settings.notification.channel.form.bark_server_url.placeholder": "请输入服务地址",
"settings.notification.channel.form.bark_server_url.tooltip": "这是什么?请参阅 https://bark.day.app/
为空时,将使用 Bark 默认服务器。",
"settings.notification.channel.form.bark_device_key.label": "设备密钥",
"settings.notification.channel.form.bark_device_key.placeholder": "请输入设备密钥",
diff --git a/ui/src/i18n/locales/zh/nls.workflow.nodes.json b/ui/src/i18n/locales/zh/nls.workflow.nodes.json
index 2dbcb3ca..87f0076b 100644
--- a/ui/src/i18n/locales/zh/nls.workflow.nodes.json
+++ b/ui/src/i18n/locales/zh/nls.workflow.nodes.json
@@ -814,6 +814,9 @@
"workflow_node.notify.form.provider_access.placeholder": "请选择通知渠道授权",
"workflow_node.notify.form.provider_access.button": "新建",
"workflow_node.notify.form.params_config.label": "参数设置",
+ "workflow_node.notify.form.discordbot_channel_id.label": "Discord 频道 ID(可选)",
+ "workflow_node.notify.form.discordbot_channel_id.placeholder": "请输入 Discord 频道 ID 以覆盖默认值",
+ "workflow_node.notify.form.discordbot_channel_id.tooltip": "不填写时,将使用所选通知渠道授权的默认频道 ID。",
"workflow_node.notify.form.email_sender_address.label": "发送邮箱地址(可选)",
"workflow_node.notify.form.email_sender_address.placeholder": "请输入发送邮箱地址以覆盖默认值",
"workflow_node.notify.form.email_sender_address.tooltip": "不填写时,将使用所选通知渠道授权的默认发送邮箱地址。",
@@ -823,9 +826,12 @@
"workflow_node.notify.form.mattermost_channel_id.label": "Mattermost 频道 ID(可选)",
"workflow_node.notify.form.mattermost_channel_id.placeholder": "请输入 Mattermost 频道 ID 以覆盖默认值",
"workflow_node.notify.form.mattermost_channel_id.tooltip": "不填写时,将使用所选通知渠道授权的默认频道 ID。",
- "workflow_node.notify.form.telegram_bot_chat_id.label": "Telegram 会话 ID(可选)",
- "workflow_node.notify.form.telegram_bot_chat_id.placeholder": "请输入 Telegram 会话 ID 以覆盖默认值",
- "workflow_node.notify.form.telegram_bot_chat_id.tooltip": "不填写时,将使用所选通知渠道授权的默认会话 ID。",
+ "workflow_node.notify.form.slackbot_channel_id.label": "Slack 频道 ID(可选)",
+ "workflow_node.notify.form.slackbot_channel_id.placeholder": "请输入 Slack 频道 ID 以覆盖默认值",
+ "workflow_node.notify.form.slackbot_channel_id.tooltip": "不填写时,将使用所选通知渠道授权的默认频道 ID。",
+ "workflow_node.notify.form.telegrambot_chat_id.label": "Telegram 会话 ID(可选)",
+ "workflow_node.notify.form.telegrambot_chat_id.placeholder": "请输入 Telegram 会话 ID 以覆盖默认值",
+ "workflow_node.notify.form.telegrambot_chat_id.tooltip": "不填写时,将使用所选通知渠道授权的默认会话 ID。",
"workflow_node.notify.form.webhook_data.label": "Webhook 回调数据(可选)",
"workflow_node.notify.form.webhook_data.placeholder": "请输入 Webhook 回调数据以覆盖默认值",
"workflow_node.notify.form.webhook_data.tooltip": "不填写时,将使用所选部署目标授权的默认 Webhook 回调数据。",