refactor(ui): improve i18n

main
Fu Diwei 2024-12-10 16:37:24 +08:00
parent a4eff0b408
commit 8fe0d342aa
76 changed files with 214 additions and 266 deletions

View File

@ -39,11 +39,11 @@ const CertificateDetail = ({ data }: CertificateDetailProps) => {
<Form.Item>
<div className="flex items-center justify-between w-full mb-2">
<label className="font-medium">{t("certificate.props.certificate_chain")}</label>
<Tooltip title={t("common.copy")}>
<Tooltip title={t("common.button.copy")}>
<CopyToClipboard
text={data.certificate}
onCopy={() => {
messageApi.success(t("common.copy.done"));
messageApi.success(t("common.text.copied"));
}}
>
<Button type="text" icon={<ClipboardIcon size={14} />}></Button>
@ -56,11 +56,11 @@ const CertificateDetail = ({ data }: CertificateDetailProps) => {
<Form.Item>
<div className="flex items-center justify-between w-full mb-2">
<label className="font-medium">{t("certificate.props.private_key")}</label>
<Tooltip title={t("common.copy")}>
<Tooltip title={t("common.button.copy")}>
<CopyToClipboard
text={data.privateKey}
onCopy={() => {
messageApi.success(t("common.copy.done"));
messageApi.success(t("common.text.copied"));
}}
>
<Button type="text" icon={<ClipboardIcon size={14} />}></Button>

View File

@ -184,7 +184,7 @@ const AccessAliyunForm = ({ data, op, onAfterReq }: AccessAliyunFormProps) => {
<FormMessage />
<div className="flex justify-end">
<Button type="submit">{t("common.save")}</Button>
<Button type="submit">{t("common.button.save")}</Button>
</div>
</form>
</Form>

View File

@ -227,7 +227,7 @@ const AccessAwsForm = ({ data, op, onAfterReq }: AccessAwsFormProps) => {
<FormMessage />
<div className="flex justify-end">
<Button type="submit">{t("common.save")}</Button>
<Button type="submit">{t("common.button.save")}</Button>
</div>
</form>
</Form>

View File

@ -183,7 +183,7 @@ const AccessBaiduCloudForm = ({ data, op, onAfterReq }: AccessBaiduCloudFormProp
<FormMessage />
<div className="flex justify-end">
<Button type="submit">{t("common.save")}</Button>
<Button type="submit">{t("common.button.save")}</Button>
</div>
</form>
</Form>

View File

@ -183,7 +183,7 @@ const AccessByteplusForm = ({ data, op, onAfterReq }: AccessByteplusFormProps) =
<FormMessage />
<div className="flex justify-end">
<Button type="submit">{t("common.save")}</Button>
<Button type="submit">{t("common.button.save")}</Button>
</div>
</form>
</Form>

View File

@ -157,7 +157,7 @@ const AccessCloudflareForm = ({ data, op, onAfterReq }: AccessCloudflareFormProp
/>
<div className="flex justify-end">
<Button type="submit">{t("common.save")}</Button>
<Button type="submit">{t("common.button.save")}</Button>
</div>
</form>
</Form>

View File

@ -177,7 +177,7 @@ const AccessDogeCloudForm = ({ data, op, onAfterReq }: AccessDogeCloudFormProps)
<FormMessage />
<div className="flex justify-end">
<Button type="submit">{t("common.save")}</Button>
<Button type="submit">{t("common.button.save")}</Button>
</div>
</form>
</Form>

View File

@ -179,7 +179,7 @@ const AccessGodaddyForm = ({ data, op, onAfterReq }: AccessGodaddyFormProps) =>
/>
<div className="flex justify-end">
<Button type="submit">{t("common.save")}</Button>
<Button type="submit">{t("common.button.save")}</Button>
</div>
</form>
</Form>

View File

@ -222,7 +222,7 @@ const AccessHttpreqForm = ({ data, op, onAfterReq }: AccessHttpreqFormProps) =>
<FormMessage />
<div className="flex justify-end">
<Button type="submit">{t("common.save")}</Button>
<Button type="submit">{t("common.button.save")}</Button>
</div>
</form>
</Form>

View File

@ -205,7 +205,7 @@ const AccessHuaweiCloudForm = ({ data, op, onAfterReq }: AccessHuaweiCloudFormPr
<FormMessage />
<div className="flex justify-end">
<Button type="submit">{t("common.save")}</Button>
<Button type="submit">{t("common.button.save")}</Button>
</div>
</form>
</Form>

View File

@ -182,7 +182,7 @@ const AccessKubernetesForm = ({ data, op, onAfterReq }: AccessKubernetesFormProp
<FormMessage />
<div className="flex justify-end">
<Button type="submit">{t("common.save")}</Button>
<Button type="submit">{t("common.button.save")}</Button>
</div>
</form>
</Form>

View File

@ -136,7 +136,7 @@ const AccessLocalForm = ({ data, op, onAfterReq }: AccessLocalFormProps) => {
<FormMessage />
<div className="flex justify-end">
<Button type="submit">{t("common.save")}</Button>
<Button type="submit">{t("common.button.save")}</Button>
</div>
</form>
</Form>

View File

@ -157,7 +157,7 @@ const AccessNamesiloForm = ({ data, op, onAfterReq }: AccessNamesiloFormProps) =
/>
<div className="flex justify-end">
<Button type="submit">{t("common.save")}</Button>
<Button type="submit">{t("common.button.save")}</Button>
</div>
</form>
</Form>

View File

@ -181,7 +181,7 @@ const AccessPdnsForm = ({ data, op, onAfterReq }: AccessPdnsFormProps) => {
<FormMessage />
<div className="flex justify-end">
<Button type="submit">{t("common.save")}</Button>
<Button type="submit">{t("common.button.save")}</Button>
</div>
</form>
</Form>

View File

@ -177,7 +177,7 @@ const AccessQiniuForm = ({ data, op, onAfterReq }: AccessQiniuFormProps) => {
<FormMessage />
<div className="flex justify-end">
<Button type="submit">{t("common.save")}</Button>
<Button type="submit">{t("common.button.save")}</Button>
</div>
</form>
</Form>

View File

@ -337,7 +337,7 @@ const AccessSSHForm = ({ data, op, onAfterReq }: AccessSSHFormProps) => {
<FormMessage />
<div className="flex justify-end">
<Button type="submit">{t("common.save")}</Button>
<Button type="submit">{t("common.button.save")}</Button>
</div>
</form>
</Form>

View File

@ -179,7 +179,7 @@ const AccessTencentForm = ({ data, op, onAfterReq }: AccessTencentFormProps) =>
/>
<div className="flex justify-end">
<Button type="submit">{t("common.save")}</Button>
<Button type="submit">{t("common.button.save")}</Button>
</div>
</form>
</Form>

View File

@ -183,7 +183,7 @@ const AccessVolcengineForm = ({ data, op, onAfterReq }: AccessVolcengineFormProp
<FormMessage />
<div className="flex justify-end">
<Button type="submit">{t("common.save")}</Button>
<Button type="submit">{t("common.button.save")}</Button>
</div>
</form>
</Form>

View File

@ -154,7 +154,7 @@ const AccessWebhookForm = ({ data, op, onAfterReq }: AccessWebhookFormProps) =>
/>
<div className="flex justify-end">
<Button type="submit">{t("common.save")}</Button>
<Button type="submit">{t("common.button.save")}</Button>
</div>
</form>
</Form>

View File

@ -115,7 +115,7 @@ const EmailsEdit = ({ className, trigger }: EmailsEditProps) => {
/>
<div className="flex justify-end">
<Button type="submit">{t("common.save")}</Button>
<Button type="submit">{t("common.button.save")}</Button>
</div>
</form>
</Form>

View File

@ -75,7 +75,7 @@ const KVList = ({ variables, onValueChange }: KVListProps) => {
<div className="flex items-center text-primary">
<Plus size={16} className="cursor-pointer " />
<div className="text-sm ">{t("common.add")}</div>
<div className="text-sm ">{t("common.button.add")}</div>
</div>
}
onSave={(variable) => {
@ -96,7 +96,7 @@ const KVList = ({ variables, onValueChange }: KVListProps) => {
<div className="flex items-center text-primary">
<Plus size={16} className="cursor-pointer " />
<div className="text-sm ">{t("common.add")}</div>
<div className="text-sm ">{t("common.button.add")}</div>
</div>
}
variable={{
@ -231,7 +231,7 @@ const KVEdit = ({ variable, trigger, onSave }: KVEditProps) => {
handleSaveClick();
}}
>
{t("common.save")}
{t("common.button.save")}
</Button>
</div>
</DialogFooter>

View File

@ -79,7 +79,7 @@ const StringList = ({ value, className, onValueChange, valueType = "domain" }: S
<div className="flex items-center text-primary">
<Plus size={16} className="cursor-pointer " />
<div className="text-sm ">{t("common.add")}</div>
<div className="text-sm ">{t("common.button.add")}</div>
</div>
}
/>
@ -92,7 +92,7 @@ const StringList = ({ value, className, onValueChange, valueType = "domain" }: S
<div className="border rounded-md p-3 text-sm flex flex-col items-center">
<div className="text-muted-foreground">{t("common.text." + valueType + ".empty")}</div>
<StringEdit value={""} trigger={t("common.add")} onValueChange={addVal} valueType={valueType} />
<StringEdit value={""} trigger={t("common.button.add")} onValueChange={addVal} valueType={valueType} />
</div>
}
>
@ -208,7 +208,7 @@ const StringEdit = ({ trigger, value, onValueChange, op = "add", valueType }: St
onSaveClick();
}}
>
{op === "add" ? t("common.add") : t("common.confirm")}
{op === "add" ? t("common.button.add") : t("common.button.ok")}
</Button>
</DialogFooter>
</DialogContent>

View File

@ -109,14 +109,14 @@ const Bark = () => {
setChannels(resp);
toast({
title: t("common.save.succeeded.message"),
title: t("common.text.operation_succeeded"),
description: t("settings.notification.config.saved.message"),
});
} catch (e) {
const msg = getErrMsg(e);
toast({
title: t("common.save.failed.message"),
title: t("common.text.operation_failed"),
description: `${t("settings.notification.config.failed.message")}: ${msg}`,
variant: "destructive",
});
@ -176,7 +176,7 @@ const Bark = () => {
const msg = getErrMsg(e);
toast({
title: t("common.save.failed.message"),
title: t("common.text.operation_failed"),
description: `${t("settings.notification.config.failed.message")}: ${msg}`,
variant: "destructive",
});
@ -238,7 +238,7 @@ const Bark = () => {
handleSaveClick();
}}
>
{t("common.save")}
{t("common.button.save")}
</Button>
</Show>

View File

@ -109,14 +109,14 @@ const DingTalk = () => {
setChannels(resp);
toast({
title: t("common.save.succeeded.message"),
title: t("common.text.operation_succeeded"),
description: t("settings.notification.config.saved.message"),
});
} catch (e) {
const msg = getErrMsg(e);
toast({
title: t("common.save.failed.message"),
title: t("common.text.operation_failed"),
description: `${t("settings.notification.config.failed.message")}: ${msg}`,
variant: "destructive",
});
@ -176,7 +176,7 @@ const DingTalk = () => {
const msg = getErrMsg(e);
toast({
title: t("common.save.failed.message"),
title: t("common.text.operation_failed"),
description: `${t("settings.notification.config.failed.message")}: ${msg}`,
variant: "destructive",
});
@ -236,7 +236,7 @@ const DingTalk = () => {
handleSaveClick();
}}
>
{t("common.save")}
{t("common.button.save")}
</Button>
</Show>

View File

@ -132,14 +132,14 @@ const Mail = () => {
setChannels(resp);
toast({
title: t("common.save.succeeded.message"),
title: t("common.text.operation_succeeded"),
description: t("settings.notification.config.saved.message"),
});
} catch (e) {
const msg = getErrMsg(e);
toast({
title: t("common.save.failed.message"),
title: t("common.text.operation_failed"),
description: `${t("settings.notification.config.failed.message")}: ${msg}`,
variant: "destructive",
});
@ -199,7 +199,7 @@ const Mail = () => {
const msg = getErrMsg(e);
toast({
title: t("common.save.failed.message"),
title: t("common.text.operation_failed"),
description: `${t("settings.notification.config.failed.message")}: ${msg}`,
variant: "destructive",
});
@ -360,7 +360,7 @@ const Mail = () => {
handleSaveClick();
}}
>
{t("common.save")}
{t("common.button.save")}
</Button>
</Show>

View File

@ -105,14 +105,14 @@ const Lark = () => {
setChannels(resp);
toast({
title: t("common.save.succeeded.message"),
title: t("common.text.operation_succeeded"),
description: t("settings.notification.config.saved.message"),
});
} catch (e) {
const msg = getErrMsg(e);
toast({
title: t("common.save.failed.message"),
title: t("common.text.operation_failed"),
description: `${t("settings.notification.config.failed.message")}: ${msg}`,
variant: "destructive",
});
@ -172,7 +172,7 @@ const Lark = () => {
const msg = getErrMsg(e);
toast({
title: t("common.save.failed.message"),
title: t("common.text.operation_failed"),
description: `${t("settings.notification.config.failed.message")}: ${msg}`,
variant: "destructive",
});
@ -214,7 +214,7 @@ const Lark = () => {
handleSaveClick();
}}
>
{t("common.save")}
{t("common.button.save")}
</Button>
</Show>

View File

@ -63,7 +63,7 @@ const NotifyTemplate = () => {
}
toast({
title: t("common.save.succeeded.message"),
title: t("common.text.operation_succeeded"),
description: t("settings.notification.template.saved.message"),
});
};
@ -88,7 +88,7 @@ const NotifyTemplate = () => {
></Textarea>
<div className="text-muted-foreground text-sm mt-1">{t("settings.notification.template.variables.tips.content")}</div>
<div className="flex justify-end mt-2">
<Button onClick={handleSaveClick}>{t("common.save")}</Button>
<Button onClick={handleSaveClick}>{t("common.button.save")}</Button>
</div>
</div>
);

View File

@ -96,7 +96,7 @@ const ServerChan = () => {
serverchan.data.url = serverchan.data.url.trim();
if (!isValidURL(serverchan.data.url)) {
toast({
title: t("common.save.failed.message"),
title: t("common.text.operation_failed"),
description: t("common.errmsg.url_invalid"),
variant: "destructive",
});
@ -116,14 +116,14 @@ const ServerChan = () => {
setChannels(resp);
toast({
title: t("common.save.succeeded.message"),
title: t("common.text.operation_succeeded"),
description: t("settings.notification.config.saved.message"),
});
} catch (e) {
const msg = getErrMsg(e);
toast({
title: t("common.save.failed.message"),
title: t("common.text.operation_failed"),
description: `${t("settings.notification.config.failed.message")}: ${msg}`,
variant: "destructive",
});
@ -183,7 +183,7 @@ const ServerChan = () => {
const msg = getErrMsg(e);
toast({
title: t("common.save.failed.message"),
title: t("common.text.operation_failed"),
description: `${t("settings.notification.config.failed.message")}: ${msg}`,
variant: "destructive",
});
@ -225,7 +225,7 @@ const ServerChan = () => {
handleSaveClick();
}}
>
{t("common.save")}
{t("common.button.save")}
</Button>
</Show>

View File

@ -109,14 +109,14 @@ const Telegram = () => {
setChannels(resp);
toast({
title: t("common.save.succeeded.message"),
title: t("common.text.operation_succeeded"),
description: t("settings.notification.config.saved.message"),
});
} catch (e) {
const msg = getErrMsg(e);
toast({
title: t("common.save.failed.message"),
title: t("common.text.operation_failed"),
description: `${t("settings.notification.config.failed.message")}: ${msg}`,
variant: "destructive",
});
@ -176,7 +176,7 @@ const Telegram = () => {
const msg = getErrMsg(e);
toast({
title: t("common.save.failed.message"),
title: t("common.text.operation_failed"),
description: `${t("settings.notification.config.failed.message")}: ${msg}`,
variant: "destructive",
});
@ -238,7 +238,7 @@ const Telegram = () => {
handleSaveClick();
}}
>
{t("common.save")}
{t("common.button.save")}
</Button>
</Show>

View File

@ -96,7 +96,7 @@ const Webhook = () => {
webhook.data.url = webhook.data.url.trim();
if (!isValidURL(webhook.data.url)) {
toast({
title: t("common.save.failed.message"),
title: t("common.text.operation_failed"),
description: t("common.errmsg.url_invalid"),
variant: "destructive",
});
@ -116,14 +116,14 @@ const Webhook = () => {
setChannels(resp);
toast({
title: t("common.save.succeeded.message"),
title: t("common.text.operation_succeeded"),
description: t("settings.notification.config.saved.message"),
});
} catch (e) {
const msg = getErrMsg(e);
toast({
title: t("common.save.failed.message"),
title: t("common.text.operation_failed"),
description: `${t("settings.notification.config.failed.message")}: ${msg}`,
variant: "destructive",
});
@ -183,7 +183,7 @@ const Webhook = () => {
const msg = getErrMsg(e);
toast({
title: t("common.save.failed.message"),
title: t("common.text.operation_failed"),
description: `${t("settings.notification.config.failed.message")}: ${msg}`,
variant: "destructive",
});
@ -225,7 +225,7 @@ const Webhook = () => {
handleSaveClick();
}}
>
{t("common.save")}
{t("common.button.save")}
</Button>
</Show>

View File

@ -122,7 +122,7 @@ const ApplyForm = ({ data }: ApplyFormProps) => {
trigger={
<div className="flex items-center font-normal cursor-pointer text-primary hover:underline">
<Plus size={14} />
{t("common.add")}
{t("common.button.add")}
</div>
}
/>
@ -168,7 +168,7 @@ const ApplyForm = ({ data }: ApplyFormProps) => {
trigger={
<div className="flex items-center font-normal cursor-pointer text-primary hover:underline">
<Plus size={14} />
{t("common.add")}
{t("common.button.add")}
</div>
}
op="add"
@ -342,7 +342,7 @@ const ApplyForm = ({ data }: ApplyFormProps) => {
</div>
<div className="flex justify-end">
<Button type="submit">{t("common.save")}</Button>
<Button type="submit">{t("common.button.save")}</Button>
</div>
</form>
</Form>

View File

@ -110,7 +110,7 @@ const DeployToAliyunALB = ({ data }: DeployFormProps) => {
trigger={
<div className="font-normal text-primary hover:underline cursor-pointer flex items-center">
<Plus size={14} />
{t("common.add")}
{t("common.button.add")}
</div>
}
op="add"
@ -251,7 +251,7 @@ const DeployToAliyunALB = ({ data }: DeployFormProps) => {
)}
<div className="flex justify-end">
<Button type="submit">{t("common.save")}</Button>
<Button type="submit">{t("common.button.save")}</Button>
</div>
</form>
</Form>

View File

@ -90,7 +90,7 @@ const DeployToAliyunCDN = ({ data }: DeployFormProps) => {
trigger={
<div className="font-normal text-primary hover:underline cursor-pointer flex items-center">
<Plus size={14} />
{t("common.add")}
{t("common.button.add")}
</div>
}
op="add"
@ -170,7 +170,7 @@ const DeployToAliyunCDN = ({ data }: DeployFormProps) => {
/>
<div className="flex justify-end">
<Button type="submit">{t("common.save")}</Button>
<Button type="submit">{t("common.button.save")}</Button>
</div>
</form>
</Form>

View File

@ -110,7 +110,7 @@ const DeployToAliyunCLB = ({ data }: DeployFormProps) => {
trigger={
<div className="font-normal text-primary hover:underline cursor-pointer flex items-center">
<Plus size={14} />
{t("common.add")}
{t("common.button.add")}
</div>
}
op="add"
@ -251,7 +251,7 @@ const DeployToAliyunCLB = ({ data }: DeployFormProps) => {
)}
<div className="flex justify-end">
<Button type="submit">{t("common.save")}</Button>
<Button type="submit">{t("common.button.save")}</Button>
</div>
</form>
</Form>

View File

@ -213,7 +213,7 @@ const DeployToAliyunNLB = ({ data }: DeployFormProps) => {
)}
<div className="flex justify-end">
<Button type="submit">{t("common.save")}</Button>
<Button type="submit">{t("common.button.save")}</Button>
</div>
</form>
</Form>

View File

@ -101,7 +101,7 @@ const DeployToAliyunOSS = ({ data }: DeployFormProps) => {
trigger={
<div className="font-normal text-primary hover:underline cursor-pointer flex items-center">
<Plus size={14} />
{t("common.add")}
{t("common.button.add")}
</div>
}
op="add"
@ -209,7 +209,7 @@ const DeployToAliyunOSS = ({ data }: DeployFormProps) => {
/>
<div className="flex justify-end">
<Button type="submit">{t("common.save")}</Button>
<Button type="submit">{t("common.button.save")}</Button>
</div>
</form>
</Form>

View File

@ -90,7 +90,7 @@ const DeployToBaiduCloudCDN = ({ data }: DeployFormProps) => {
trigger={
<div className="font-normal text-primary hover:underline cursor-pointer flex items-center">
<Plus size={14} />
{t("common.add")}
{t("common.button.add")}
</div>
}
op="add"
@ -170,7 +170,7 @@ const DeployToBaiduCloudCDN = ({ data }: DeployFormProps) => {
/>
<div className="flex justify-end">
<Button type="submit">{t("common.save")}</Button>
<Button type="submit">{t("common.button.save")}</Button>
</div>
</form>
</Form>

View File

@ -90,7 +90,7 @@ const DeployToByteplusCDN = ({ data }: DeployFormProps) => {
trigger={
<div className="font-normal text-primary hover:underline cursor-pointer flex items-center">
<Plus size={14} />
{t("common.add")}
{t("common.button.add")}
</div>
}
op="add"
@ -170,7 +170,7 @@ const DeployToByteplusCDN = ({ data }: DeployFormProps) => {
/>
<div className="flex justify-end">
<Button type="submit">{t("common.save")}</Button>
<Button type="submit">{t("common.button.save")}</Button>
</div>
</form>
</Form>

View File

@ -91,7 +91,7 @@ const DeployToDogeCloudCDN = ({ data }: DeployFormProps) => {
trigger={
<div className="font-normal text-primary hover:underline cursor-pointer flex items-center">
<Plus size={14} />
{t("common.add")}
{t("common.button.add")}
</div>
}
op="add"
@ -170,7 +170,7 @@ const DeployToDogeCloudCDN = ({ data }: DeployFormProps) => {
/>
<div className="flex justify-end">
<Button type="submit">{t("common.save")}</Button>
<Button type="submit">{t("common.button.save")}</Button>
</div>
</form>
</Form>

View File

@ -96,7 +96,7 @@ const DeployToHuaweiCloudCDN = ({ data }: DeployFormProps) => {
trigger={
<div className="font-normal text-primary hover:underline cursor-pointer flex items-center">
<Plus size={14} />
{t("common.add")}
{t("common.button.add")}
</div>
}
op="add"
@ -191,7 +191,7 @@ const DeployToHuaweiCloudCDN = ({ data }: DeployFormProps) => {
/>
<div className="flex justify-end">
<Button type="submit">{t("common.save")}</Button>
<Button type="submit">{t("common.button.save")}</Button>
</div>
</form>
</Form>

View File

@ -118,7 +118,7 @@ const DeployToHuaweiCloudELB = ({ data }: DeployFormProps) => {
trigger={
<div className="font-normal text-primary hover:underline cursor-pointer flex items-center">
<Plus size={14} />
{t("common.add")}
{t("common.button.add")}
</div>
}
op="add"
@ -282,7 +282,7 @@ const DeployToHuaweiCloudELB = ({ data }: DeployFormProps) => {
)}
<div className="flex justify-end">
<Button type="submit">{t("common.save")}</Button>
<Button type="submit">{t("common.button.save")}</Button>
</div>
</form>
</Form>

View File

@ -105,7 +105,7 @@ const DeployToKubernetesSecret = ({ data }: DeployFormProps) => {
trigger={
<div className="font-normal text-primary hover:underline cursor-pointer flex items-center">
<Plus size={14} />
{t("common.add")}
{t("common.button.add")}
</div>
}
op="add"
@ -226,7 +226,7 @@ const DeployToKubernetesSecret = ({ data }: DeployFormProps) => {
/>
<div className="flex justify-end">
<Button type="submit">{t("common.save")}</Button>
<Button type="submit">{t("common.button.save")}</Button>
</div>
</form>
</Form>

View File

@ -215,7 +215,7 @@ Remove-Item -Path "$pfxPath" -Force
trigger={
<div className="font-normal text-primary hover:underline cursor-pointer flex items-center">
<Plus size={14} />
{t("common.add")}
{t("common.button.add")}
</div>
}
op="add"
@ -462,7 +462,7 @@ Remove-Item -Path "$pfxPath" -Force
/>
<div className="flex justify-end">
<Button type="submit">{t("common.save")}</Button>
<Button type="submit">{t("common.button.save")}</Button>
</div>
</form>
</Form>

View File

@ -91,7 +91,7 @@ const DeployToQiniuCDN = ({ data }: DeployFormProps) => {
trigger={
<div className="font-normal text-primary hover:underline cursor-pointer flex items-center">
<Plus size={14} />
{t("common.add")}
{t("common.button.add")}
</div>
}
op="add"
@ -171,7 +171,7 @@ const DeployToQiniuCDN = ({ data }: DeployFormProps) => {
/>
<div className="flex justify-end">
<Button type="submit">{t("common.save")}</Button>
<Button type="submit">{t("common.button.save")}</Button>
</div>
</form>
</Form>

View File

@ -133,7 +133,7 @@ const DeployToSSH = ({ data }: DeployFormProps) => {
trigger={
<div className="font-normal text-primary hover:underline cursor-pointer flex items-center">
<Plus size={14} />
{t("common.add")}
{t("common.button.add")}
</div>
}
op="add"
@ -339,7 +339,7 @@ const DeployToSSH = ({ data }: DeployFormProps) => {
/>
<div className="flex justify-end">
<Button type="submit">{t("common.save")}</Button>
<Button type="submit">{t("common.button.save")}</Button>
</div>
</form>
</Form>

View File

@ -90,7 +90,7 @@ const DeployToTencentCDN = ({ data }: DeployFormProps) => {
trigger={
<div className="font-normal text-primary hover:underline cursor-pointer flex items-center">
<Plus size={14} />
{t("common.add")}
{t("common.button.add")}
</div>
}
op="add"
@ -170,7 +170,7 @@ const DeployToTencentCDN = ({ data }: DeployFormProps) => {
/>
<div className="flex justify-end">
<Button type="submit">{t("common.save")}</Button>
<Button type="submit">{t("common.button.save")}</Button>
</div>
</form>
</Form>

View File

@ -130,7 +130,7 @@ const DeployToTencentCLB = ({ data }: DeployFormProps) => {
trigger={
<div className="font-normal text-primary hover:underline cursor-pointer flex items-center">
<Plus size={14} />
{t("common.add")}
{t("common.button.add")}
</div>
}
op="add"
@ -310,7 +310,7 @@ const DeployToTencentCLB = ({ data }: DeployFormProps) => {
)}
<div className="flex justify-end">
<Button type="submit">{t("common.save")}</Button>
<Button type="submit">{t("common.button.save")}</Button>
</div>
</form>
</Form>

View File

@ -96,7 +96,7 @@ const DeployToTencentCOS = ({ data }: DeployFormProps) => {
trigger={
<div className="font-normal text-primary hover:underline cursor-pointer flex items-center">
<Plus size={14} />
{t("common.add")}
{t("common.button.add")}
</div>
}
op="add"
@ -206,7 +206,7 @@ const DeployToTencentCOS = ({ data }: DeployFormProps) => {
/>
<div className="flex justify-end">
<Button type="submit">{t("common.save")}</Button>
<Button type="submit">{t("common.button.save")}</Button>
</div>
</form>
</Form>

View File

@ -93,7 +93,7 @@ const DeployToTencentTEO = ({ data }: DeployFormProps) => {
trigger={
<div className="font-normal text-primary hover:underline cursor-pointer flex items-center">
<Plus size={14} />
{t("common.add")}
{t("common.button.add")}
</div>
}
op="add"
@ -188,7 +188,7 @@ const DeployToTencentTEO = ({ data }: DeployFormProps) => {
/>
<div className="flex justify-end">
<Button type="submit">{t("common.save")}</Button>
<Button type="submit">{t("common.button.save")}</Button>
</div>
</form>
</Form>

View File

@ -90,7 +90,7 @@ const DeployToVolcengineCDN = ({ data }: DeployFormProps) => {
trigger={
<div className="font-normal text-primary hover:underline cursor-pointer flex items-center">
<Plus size={14} />
{t("common.add")}
{t("common.button.add")}
</div>
}
op="add"
@ -170,7 +170,7 @@ const DeployToVolcengineCDN = ({ data }: DeployFormProps) => {
/>
<div className="flex justify-end">
<Button type="submit">{t("common.save")}</Button>
<Button type="submit">{t("common.button.save")}</Button>
</div>
</form>
</Form>

View File

@ -90,7 +90,7 @@ const DeployToVolcengineLive = ({ data }: DeployFormProps) => {
trigger={
<div className="font-normal text-primary hover:underline cursor-pointer flex items-center">
<Plus size={14} />
{t("common.add")}
{t("common.button.add")}
</div>
}
op="add"
@ -170,7 +170,7 @@ const DeployToVolcengineLive = ({ data }: DeployFormProps) => {
/>
<div className="flex justify-end">
<Button type="submit">{t("common.save")}</Button>
<Button type="submit">{t("common.button.save")}</Button>
</div>
</form>
</Form>

View File

@ -94,7 +94,7 @@ const DeployToWebhook = ({ data }: DeployFormProps) => {
trigger={
<div className="font-normal text-primary hover:underline cursor-pointer flex items-center">
<Plus size={14} />
{t("common.add")}
{t("common.button.add")}
</div>
}
op="add"
@ -174,7 +174,7 @@ const DeployToWebhook = ({ data }: DeployFormProps) => {
/>
<div className="flex justify-end">
<Button type="submit">{t("common.save")}</Button>
<Button type="submit">{t("common.button.save")}</Button>
</div>
</form>
</Form>

View File

@ -171,7 +171,7 @@ const NotifyForm = ({ data }: NotifyFormProps) => {
/>
<div className="flex justify-end">
<Button type="submit">{t("common.save")}</Button>
<Button type="submit">{t("common.button.save")}</Button>
</div>
</form>
</Form>

View File

@ -135,7 +135,7 @@ const StartForm = ({ data }: StartFormProps) => {
/>
<div className="flex justify-end">
<Button type="submit">{t("common.save")}</Button>
<Button type="submit">{t("common.button.save")}</Button>
</div>
</form>
</Form>

View File

@ -115,7 +115,7 @@ const WorkflowNameBaseInfoDialog = ({ trigger }: WorkflowNameEditDialogProps) =>
/>
<div className="flex justify-end">
<Button type="submit">{t("common.save")}</Button>
<Button type="submit">{t("common.button.save")}</Button>
</div>
</form>
</Form>

View File

@ -4,7 +4,6 @@ import nlsDashboard from "./nls.dashboard.json";
import nlsSettings from "./nls.settings.json";
import nlsDomain from "./nls.domain.json";
import nlsAccess from "./nls.access.json";
import nlsHistory from "./nls.history.json";
import nlsWorkflow from "./nls.workflow.json";
import nlsCertificate from "./nls.certificate.json";
@ -15,7 +14,6 @@ export default Object.freeze({
...nlsSettings,
...nlsDomain,
...nlsAccess,
...nlsHistory,
...nlsWorkflow,
...nlsCertificate,
});

View File

@ -7,7 +7,12 @@
"access.action.edit": "Edit Authorization",
"access.action.copy": "Copy Authorization",
"access.action.delete": "Delete Authorization",
"access.action.delete.confirm": "Are you sure you want to delete the deployment authorization?",
"access.action.delete.confirm": "Are you sure to delete this authorization?",
"access.props.name": "Name",
"access.props.provider": "Provider",
"access.props.created_at": "Created At",
"access.props.updated_at": "Updated At",
"access.authorization.form.type.label": "Provider",
"access.authorization.form.type.placeholder": "Please select a provider",

View File

@ -15,6 +15,9 @@
"certificate.props.expiry.filter.expired": "Expired",
"certificate.props.workflow": "Workflow",
"certificate.props.source": "Source",
"certificate.props.source.workflow": "Workflow",
"certificate.props.certificate_chain": "Certificate Chain",
"certificate.props.private_key": "Private Key"
"certificate.props.private_key": "Private Key",
"certificate.props.created_at": "Created At",
"certificate.props.updated_at": "Updated At"
}

View File

@ -1,24 +1,12 @@
{
"common.add": "Add",
"common.save": "Save",
"common.save.succeeded.message": "Save Successful",
"common.save.failed.message": "Save Failed",
"common.view": "View",
"common.edit": "Edit",
"common.copy": "Copy",
"common.copy.done": "Copied",
"common.download": "Download",
"common.delete": "Delete",
"common.delete.succeeded.message": "Delete Successful",
"common.delete.failed.message": "Delete Failed",
"common.next": "Next",
"common.reset": "Reset",
"common.confirm": "Confirm",
"common.cancel": "Cancel",
"common.submit": "Submit",
"common.update": "Update",
"common.update.succeeded.message": "Update Successful",
"common.update.failed.message": "Update Failed",
"common.button.add": "Add",
"common.button.cancel": "Cancel",
"common.button.copy": "Copy",
"common.button.delete": "Delete",
"common.button.ok": "Ok",
"common.button.reset": "Reset",
"common.button.save": "Save",
"common.button.submit": "Submit",
"common.text.domain": "Domain",
"common.text.domain.empty": "No Domain",
@ -27,13 +15,10 @@
"common.text.dns": "Domain Name Server",
"common.text.dns.empty": "No DNS",
"common.text.ca": "Certificate Authority",
"common.text.name": "Name",
"common.text.provider": "Provider",
"common.text.workflow": "Workflow",
"common.text.created_at": "Created At",
"common.text.updated_at": "Updated At",
"common.text.operations": "Operations",
"common.text.copied": "Copied",
"common.text.nodata": "No data available",
"common.text.operation_succeeded": "Operation succeeded",
"common.text.operation_failed": "Operation failed",
"common.text.request_error": "Request error",
"common.menu.theme": "Change Theme",

View File

@ -8,5 +8,5 @@
"dashboard.statistics.enabled_workflows": "Enabled Workflows",
"dashboard.statistics.unit": "",
"dashboard.certificate": "Latest Certificate"
"dashboard.latest_workflow_run": "Latest Workflow Run"
}

View File

@ -1,15 +0,0 @@
{
"history.page.title": "Deployment History",
"history.nodata": "You have not created any deployments yet, please add a domain to start deployment!",
"history.props.domain": "Domain",
"history.props.status": "Status",
"history.props.stage": "Stage",
"history.props.stage.progress.check": "Check",
"history.props.stage.progress.apply": "Apply",
"history.props.stage.progress.deploy": "Deploy",
"history.props.last_execution_time": "Last Execution Time",
"history.log": "Log"
}

View File

@ -3,6 +3,23 @@
"workflow.nodata": "No workflows. Please create a workflow to generate certificates! 😀",
"workflow.action.create": "Create Workflow",
"workflow.action.edit": "Edit Workflow",
"workflow.action.delete": "Delete Workflow",
"workflow.action.delete.confirm": "Are you sure to delete this workflow?",
"workflow.props.name": "Name",
"workflow.props.name.placeholder": "Please enter name",
"workflow.props.name.default": "Unnamed",
"workflow.props.description": "Description",
"workflow.props.description.placeholder": "Please enter description",
"workflow.props.execution_method": "Execution Method",
"workflow.props.state": "State",
"workflow.props.state.filter.enabled": "Enabled",
"workflow.props.state.filter.disabled": "Disabled",
"workflow.props.created_at": "Created At",
"workflow.props.updated_at": "Updated At",
"workflow.detail.title": "Workflow",
"workflow.detail.history": "History",
"workflow.detail.action.save": "Save updates",
@ -15,25 +32,6 @@
"workflow.baseinfo.title": "Basic Information",
"workflow.props.name": "Name",
"workflow.props.name.placeholder": "Please enter name",
"workflow.props.name.default": "Unnamed",
"workflow.props.description": "Description",
"workflow.props.description.placeholder": "Please enter description",
"workflow.props.executionMethod": "Execution Method",
"workflow.props.state": "State",
"workflow.props.state.filter.enabled": "Enabled",
"workflow.props.state.filter.disabled": "Disabled",
"workflow.props.createdAt": "Created",
"workflow.props.updatedAt": "Updated",
"workflow.action": "Action",
"workflow.action.edit": "Edit",
"workflow.action.create": "Create Workflow",
"workflow.action.delete.alert.title": "Delete Workflow",
"workflow.action.delete.alert.content": "Are you sure you want to delete this workflow?",
"workflow.history.page.title": "Logs",
"workflow.history.props.state": "State",
"workflow.history.props.state.success": "Success",

View File

@ -4,7 +4,6 @@ import nlsDashboard from "./nls.dashboard.json";
import nlsSettings from "./nls.settings.json";
import nlsDomain from "./nls.domain.json";
import nlsAccess from "./nls.access.json";
import nlsHistory from "./nls.history.json";
import nlsWorkflow from "./nls.workflow.json";
import nlsCertificate from "./nls.certificate.json";
@ -15,7 +14,6 @@ export default Object.freeze({
...nlsSettings,
...nlsDomain,
...nlsAccess,
...nlsHistory,
...nlsWorkflow,
...nlsCertificate,
});

View File

@ -9,6 +9,11 @@
"access.action.delete": "删除授权",
"access.action.delete.confirm": "确定要删除此授权吗?",
"access.props.name": "名称",
"access.props.provider": "服务商",
"access.props.created_at": "创建时间",
"access.props.updated_at": "更新时间",
"access.authorization.form.type.label": "服务商",
"access.authorization.form.type.placeholder": "请选择服务商",
"access.authorization.form.type.search.placeholder": "搜索服务商",

View File

@ -15,6 +15,9 @@
"certificate.props.expiry.filter.expired": "已到期",
"certificate.props.workflow": "所属工作流",
"certificate.props.source": "来源",
"certificate.props.source.workflow": "工作流",
"certificate.props.certificate_chain": "证书内容",
"certificate.props.private_key": "私钥内容"
"certificate.props.private_key": "私钥内容",
"certificate.props.created_at": "创建时间",
"certificate.props.updated_at": "更新时间"
}

View File

@ -1,24 +1,12 @@
{
"common.add": "新增",
"common.save": "保存",
"common.save.succeeded.message": "保存成功",
"common.save.failed.message": "保存失败",
"common.view": "查看",
"common.edit": "编辑",
"common.copy": "复制",
"common.copy.done": "已复制",
"common.download": "下载",
"common.delete": "刪除",
"common.delete.succeeded.message": "删除成功",
"common.delete.failed.message": "删除失败",
"common.next": "下一步",
"common.reset": "重置",
"common.confirm": "确认",
"common.cancel": "取消",
"common.submit": "提交",
"common.update": "更新",
"common.update.succeeded.message": "修改成功",
"common.update.failed.message": "修改失败",
"common.button.add": "新增",
"common.button.cancel": "取消",
"common.button.copy": "复制",
"common.button.delete": "刪除",
"common.button.ok": "确定",
"common.button.reset": "重置",
"common.button.save": "保存",
"common.button.submit": "提交",
"common.text.domain": "域名",
"common.text.domain.empty": "无域名",
@ -27,13 +15,10 @@
"common.text.dns": "DNS域名服务器",
"common.text.dns.empty": "无 DNS 地址",
"common.text.ca": "CA证书颁发机构",
"common.text.name": "名称",
"common.text.provider": "服务商",
"common.text.workflow": "工作流",
"common.text.created_at": "创建时间",
"common.text.updated_at": "更新时间",
"common.text.operations": "操作",
"common.text.copied": "已复制",
"common.text.nodata": "暂无数据",
"common.text.operation_succeeded": "操作成功",
"common.text.operation_failed": "操作失败",
"common.text.request_error": "请求错误",
"common.menu.theme": "切换主题",

View File

@ -8,5 +8,5 @@
"dashboard.statistics.enabled_workflows": "已启用工作流",
"dashboard.statistics.unit": "个",
"dashboard.certificate": "最新证书"
"dashboard.latest_workflow_run": "最近执行的工作流"
}

View File

@ -1,15 +0,0 @@
{
"history.page.title": "部署历史",
"history.nodata": "你暂未创建任何部署,请先添加域名进行部署吧!",
"history.props.domain": "域名",
"history.props.status": "状态",
"history.props.stage": "阶段",
"history.props.stage.progress.check": "检查",
"history.props.stage.progress.apply": "获取",
"history.props.stage.progress.deploy": "部署",
"history.props.last_execution_time": "最近执行时间",
"history.log": "日志"
}

View File

@ -3,6 +3,23 @@
"workflow.nodata": "暂无工作流,请先新建",
"workflow.action.create": "新建工作流",
"workflow.action.edit": "编辑工作流",
"workflow.action.delete": "删除工作流",
"workflow.action.delete.confirm": "确定要删除此工作流吗?",
"workflow.props.name": "名称",
"workflow.props.name.placeholder": "请输入名称",
"workflow.props.name.default": "未命名工作流",
"workflow.props.description": "描述",
"workflow.props.description.placeholder": "请输入描述",
"workflow.props.execution_method": "执行方式",
"workflow.props.state": "启用状态",
"workflow.props.state.filter.enabled": "启用",
"workflow.props.state.filter.disabled": "未启用",
"workflow.props.created_at": "创建时间",
"workflow.props.updated_at": "更新时间",
"workflow.detail.title": "流程",
"workflow.detail.history": "历史",
"workflow.detail.action.save": "保存变更",
@ -15,25 +32,6 @@
"workflow.baseinfo.title": "基本信息",
"workflow.props.name": "名称",
"workflow.props.name.placeholder": "请输入名称",
"workflow.props.name.default": "未命名工作流",
"workflow.props.description": "描述",
"workflow.props.description.placeholder": "请输入描述",
"workflow.props.executionMethod": "执行方式",
"workflow.props.state": "启用状态",
"workflow.props.state.filter.enabled": "启用",
"workflow.props.state.filter.disabled": "未启用",
"workflow.props.createdAt": "创建时间",
"workflow.props.updatedAt": "更新时间",
"workflow.action": "操作",
"workflow.action.edit": "编辑",
"workflow.action.create": "新建工作流",
"workflow.action.delete.alert.title": "删除工作流",
"workflow.action.delete.alert.content": "确定要删除此工作流吗?",
"workflow.history.page.title": "日志",
"workflow.history.props.state": "状态",
"workflow.history.props.state.success": "通过",

View File

@ -29,13 +29,13 @@ const AccessList = () => {
},
{
key: "name",
title: t("common.text.name"),
title: t("access.props.name"),
ellipsis: true,
render: (_, record) => <>{record.name}</>,
},
{
key: "provider",
title: t("common.text.provider"),
title: t("access.props.provider"),
ellipsis: true,
render: (_, record) => {
return (
@ -48,7 +48,7 @@ const AccessList = () => {
},
{
key: "createdAt",
title: t("common.text.created_at"),
title: t("access.props.created_at"),
ellipsis: true,
render: (_, record) => {
return dayjs(record.created!).format("YYYY-MM-DD HH:mm:ss");
@ -56,7 +56,7 @@ const AccessList = () => {
},
{
key: "updatedAt",
title: t("common.text.updated_at"),
title: t("access.props.updated_at"),
ellipsis: true,
render: (_, record) => {
return dayjs(record.updated!).format("YYYY-MM-DD HH:mm:ss");

View File

@ -77,10 +77,10 @@ const CertificateList = () => {
<Divider style={{ margin: 0 }} />
<Space className="justify-end w-full" style={{ padding: themeToken.paddingSM }}>
<Button size="small" disabled={!filters.state} onClick={handleResetClick}>
{t("common.reset")}
{t("common.button.reset")}
</Button>
<Button type="primary" size="small" onClick={handleConfirmClick}>
{t("common.confirm")}
{t("common.button.ok")}
</Button>
</Space>
</div>
@ -113,7 +113,7 @@ const CertificateList = () => {
const workflowId = record.workflow;
return workflowId ? (
<Space className="max-w-full" direction="vertical" size={4}>
<Typography.Text>{t("common.text.workflow")}</Typography.Text>
<Typography.Text>{t("certificate.props.source.workflow")}</Typography.Text>
<Typography.Link
type="secondary"
ellipsis
@ -131,7 +131,7 @@ const CertificateList = () => {
},
{
key: "createdAt",
title: t("common.text.created_at"),
title: t("certificate.props.created_at"),
ellipsis: true,
render: (_, record) => {
return dayjs(record.created!).format("YYYY-MM-DD HH:mm:ss");
@ -139,7 +139,7 @@ const CertificateList = () => {
},
{
key: "updatedAt",
title: t("common.text.updated_at"),
title: t("certificate.props.updated_at"),
ellipsis: true,
render: (_, record) => {
return dayjs(record.updated!).format("YYYY-MM-DD HH:mm:ss");

View File

@ -115,7 +115,7 @@ const Dashboard = () => {
<Divider />
<div>TODO: LatestWorkflowRun</div>
<div>TODO: {t("dashboard.latest_workflow_run")}</div>
</>
);
};

View File

@ -84,10 +84,10 @@ const Account = () => {
<div className="flex justify-end">
{changed ? (
<Button type="submit">{t("common.update")}</Button>
<Button type="submit">{t("common.button.save")}</Button>
) : (
<Button type="submit" disabled variant={"secondary"}>
{t("common.update")}
{t("common.button.save")}
</Button>
)}
</div>

View File

@ -124,7 +124,7 @@ const Password = () => {
)}
/>
<div className="flex justify-end">
<Button type="submit">{t("common.update")}</Button>
<Button type="submit">{t("common.button.save")}</Button>
</div>
</form>
</Form>

View File

@ -80,13 +80,13 @@ const SSLProvider = () => {
const resp = await update({ ...data });
setConfig(resp);
toast({
title: t("common.update.succeeded.message"),
description: t("common.update.succeeded.message"),
title: t("common.text.operation_succeeded"),
description: t("common.text.operation_succeeded"),
});
} catch (e) {
const message = getErrMsg(e);
toast({
title: t("common.update.failed.message"),
title: t("common.text.operation_failed"),
description: message,
variant: "destructive",
});
@ -222,7 +222,7 @@ const SSLProviderLetsEncryptForm = () => {
<FormMessage />
<div className="flex justify-end">
<Button type="submit">{t("common.update")}</Button>
<Button type="submit">{t("common.button.save")}</Button>
</div>
</form>
</Form>
@ -328,7 +328,7 @@ const SSLProviderZeroSSLForm = () => {
<FormMessage />
<div className="flex justify-end">
<Button type="submit">{t("common.update")}</Button>
<Button type="submit">{t("common.button.save")}</Button>
</div>
</form>
</Form>
@ -435,7 +435,7 @@ const SSLProviderGtsForm = () => {
<FormMessage />
<div className="flex justify-end">
<Button type="submit">{t("common.update")}</Button>
<Button type="submit">{t("common.button.save")}</Button>
</div>
</form>
</Form>

View File

@ -49,7 +49,7 @@ const WorkflowList = () => {
},
{
key: "name",
title: t("common.text.name"),
title: t("workflow.props.name"),
ellipsis: true,
render: (_, record) => (
<Space className="max-w-full" direction="vertical" size={4}>
@ -62,7 +62,7 @@ const WorkflowList = () => {
},
{
key: "type",
title: t("workflow.props.executionMethod"),
title: t("workflow.props.execution_method"),
ellipsis: true,
render: (_, record) => {
const method = record.type;
@ -120,10 +120,10 @@ const WorkflowList = () => {
<Divider style={{ margin: 0 }} />
<Space className="justify-end w-full" style={{ padding: themeToken.paddingSM }}>
<Button size="small" disabled={!filters.state} onClick={handleResetClick}>
{t("common.reset")}
{t("common.button.reset")}
</Button>
<Button type="primary" size="small" onClick={handleConfirmClick}>
{t("common.confirm")}
{t("common.button.ok")}
</Button>
</Space>
</div>
@ -152,7 +152,7 @@ const WorkflowList = () => {
},
{
key: "createdAt",
title: t("common.text.created_at"),
title: t("workflow.props.created_at"),
ellipsis: true,
render: (_, record) => {
return dayjs(record.created!).format("YYYY-MM-DD HH:mm:ss");
@ -160,7 +160,7 @@ const WorkflowList = () => {
},
{
key: "updatedAt",
title: t("common.text.updated_at"),
title: t("workflow.props.updated_at"),
ellipsis: true,
render: (_, record) => {
return dayjs(record.updated!).format("YYYY-MM-DD HH:mm:ss");
@ -173,7 +173,7 @@ const WorkflowList = () => {
width: 120,
render: (_, record) => (
<Space size={0}>
<Tooltip title={t("common.edit")}>
<Tooltip title={t("workflow.action.edit")}>
<Button
type="link"
icon={<PencilIcon size={16} />}
@ -182,7 +182,7 @@ const WorkflowList = () => {
}}
/>
</Tooltip>
<Tooltip title={t("common.delete")}>
<Tooltip title={t("workflow.action.delete")}>
<Button
type="link"
danger={true}
@ -261,8 +261,8 @@ const WorkflowList = () => {
const handleDeleteClick = (workflow: WorkflowType) => {
modalApi.confirm({
title: t("workflow.action.delete.alert.title"),
content: t("workflow.action.delete.alert.content"),
title: t("workflow.action.delete"),
content: t("workflow.action.delete.confirm"),
onOk: async () => {
try {
const resp = await removeWorkflow(workflow);