From 9e833deb7de46712a2a962a10a2be71e7f4e27e2 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Fri, 16 May 2025 20:11:23 +0800 Subject: [PATCH 01/10] =?UTF-8?q?doc:=20=E9=87=8D=E6=9E=84=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Components/Samples/Toasts.razor.cs | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/BootstrapBlazor.Server/Components/Samples/Toasts.razor.cs b/src/BootstrapBlazor.Server/Components/Samples/Toasts.razor.cs index 58cf516cdaf..f673de10cc9 100644 --- a/src/BootstrapBlazor.Server/Components/Samples/Toasts.razor.cs +++ b/src/BootstrapBlazor.Server/Components/Samples/Toasts.razor.cs @@ -37,7 +37,7 @@ public sealed partial class Toasts [Inject, NotNull] private IOptions? Options { get; set; } - private int _delayTs => Options.Value.ToastDelay / 1000; + private int DelayTs => Options.Value.ToastDelay / 1000; /// /// OnInitialized @@ -46,10 +46,10 @@ protected override void OnInitialized() { base.OnInitialized(); - Options1 = new ToastOption { Title = "Save data", IsAutoHide = false, Content = $"Save data successfully, automatically close after {_delayTs} seconds" }; - Options2 = new ToastOption { Category = ToastCategory.Error, Title = "Save data", IsAutoHide = false, Content = $"Save data successfully, automatically close after {_delayTs} seconds" }; - Options3 = new ToastOption { Category = ToastCategory.Information, Title = "Prompt information", IsAutoHide = false, Content = $"Information prompt pop-up window, automatically closes after {_delayTs} seconds" }; - Options4 = new ToastOption { Category = ToastCategory.Warning, Title = "Warning message", IsAutoHide = false, Content = $"Information prompt pop-up window, automatically closes after {_delayTs} seconds" }; + Options1 = new ToastOption { Title = "Save data", IsAutoHide = false, Content = $"Save data successfully, automatically close after {DelayTs} seconds" }; + Options2 = new ToastOption { Category = ToastCategory.Error, Title = "Save data", IsAutoHide = false, Content = $"Save data successfully, automatically close after {DelayTs} seconds" }; + Options3 = new ToastOption { Category = ToastCategory.Information, Title = "Prompt information", IsAutoHide = false, Content = $"Information prompt pop-up window, automatically closes after {DelayTs} seconds" }; + Options4 = new ToastOption { Category = ToastCategory.Warning, Title = "Warning message", IsAutoHide = false, Content = $"Information prompt pop-up window, automatically closes after {DelayTs} seconds" }; ToastContainer = Root.ToastContainer; } @@ -73,7 +73,7 @@ await ToastService.Show(new ToastOption() { Category = ToastCategory.Success, Title = "Successfully saved", - Content = $"Save data successfully, automatically close after {_delayTs} seconds" + Content = $"Save data successfully, automatically close after {DelayTs} seconds" }); } @@ -84,7 +84,7 @@ await ToastService.Show(new ToastOption() { Category = ToastCategory.Error, Title = "Failed to save", - Content = $"Failed to save data, automatically closes after {_delayTs} seconds" + Content = $"Failed to save data, automatically closes after {DelayTs} seconds" }); } @@ -95,7 +95,7 @@ await ToastService.Show(new ToastOption() { Category = ToastCategory.Information, Title = "Notification", - Content = $"The system adds new components, it will automatically shut down after {_delayTs} seconds" + Content = $"The system adds new components, it will automatically shut down after {DelayTs} seconds" }); } @@ -106,7 +106,7 @@ await ToastService.Show(new ToastOption() { Category = ToastCategory.Warning, Title = "Warning", - Content = $"If the system finds abnormality, please deal with it in time, and it will automatically shut down after {_delayTs} seconds" + Content = $"If the system finds abnormality, please deal with it in time, and it will automatically shut down after {DelayTs} seconds" }); } @@ -135,7 +135,7 @@ await ToastService.Show(new ToastOption() { Category = ToastCategory.Warning, ShowHeader = false, - Content = $"The system adds new components, it will automatically shut down after {_delayTs} seconds" + Content = $"The system adds new components, it will automatically shut down after {DelayTs} seconds" }); } @@ -146,7 +146,7 @@ await ToastService.Show(new ToastOption() { Category = ToastCategory.Information, HeaderTemplate = RenderHeader, - Content = $"The system adds new components, it will automatically shut down after {_delayTs} seconds" + Content = $"The system adds new components, it will automatically shut down after {DelayTs} seconds" }); } @@ -157,7 +157,7 @@ await ToastService.Show(new ToastOption() { Category = ToastCategory.Information, Title = "Notification", - Content = $"Toast The component has changed position, it will automatically shut down after {_delayTs} seconds" + Content = $"Toast The component has changed position, it will automatically shut down after {DelayTs} seconds" }); } From 6345ef9b8759548b15dc0f641867af0b1de0a651 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Fri, 16 May 2025 20:12:27 +0800 Subject: [PATCH 02/10] =?UTF-8?q?doc:=20=E6=9B=B4=E6=96=B0=E5=8F=82?= =?UTF-8?q?=E6=95=B0=E8=AF=B4=E6=98=8E=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Components/Samples/Toasts.razor.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/BootstrapBlazor.Server/Components/Samples/Toasts.razor.cs b/src/BootstrapBlazor.Server/Components/Samples/Toasts.razor.cs index f673de10cc9..8004aae4c42 100644 --- a/src/BootstrapBlazor.Server/Components/Samples/Toasts.razor.cs +++ b/src/BootstrapBlazor.Server/Components/Samples/Toasts.razor.cs @@ -176,7 +176,7 @@ private AttributeItem[] GetAttributes() => Name = "Title", Description = Localizer["ToastsAttrTitle"], Type = "string", - ValueList = "—", + ValueList = " — ", DefaultValue = "" }, new() @@ -184,7 +184,7 @@ private AttributeItem[] GetAttributes() => Name = "Content", Description = Localizer["ToastsAttrContent"], Type = "string", - ValueList = "—", + ValueList = " — ", DefaultValue = "" }, new() @@ -192,7 +192,7 @@ private AttributeItem[] GetAttributes() => Name = "Delay", Description = Localizer["ToastsAttrDelay"], Type = "int", - ValueList = "—", + ValueList = " — ", DefaultValue = "4000" }, new() @@ -200,7 +200,7 @@ private AttributeItem[] GetAttributes() => Name = "IsAutoHide", Description = Localizer["ToastsAttrIsAutoHide"], Type = "boolean", - ValueList = "", + ValueList = " — ", DefaultValue = "true" }, new() From 2a3528f4e828c283e4a79c4107a22b059d903742 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Fri, 16 May 2025 20:21:52 +0800 Subject: [PATCH 03/10] =?UTF-8?q?refactor:=20=E7=A7=BB=E9=99=A4=E4=B8=8D?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E7=9A=84=E6=9C=8D=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/BootstrapBlazor.Server/Components/Samples/Toasts.razor | 1 - 1 file changed, 1 deletion(-) diff --git a/src/BootstrapBlazor.Server/Components/Samples/Toasts.razor b/src/BootstrapBlazor.Server/Components/Samples/Toasts.razor index 06a2d4f34a8..a42b61160a7 100644 --- a/src/BootstrapBlazor.Server/Components/Samples/Toasts.razor +++ b/src/BootstrapBlazor.Server/Components/Samples/Toasts.razor @@ -1,7 +1,6 @@ @page "/toast" @inject IStringLocalizer Localizer @inject ToastService ToastService -@inject IJSRuntime JSRuntime

@Localizer["ToastsTitle"]

From 0098044e5ee690a34f059ca2fdb5080e1ec0f5f6 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Fri, 16 May 2025 20:25:01 +0800 Subject: [PATCH 04/10] =?UTF-8?q?doc:=20=E5=A2=9E=E5=8A=A0=E7=BA=BF?= =?UTF-8?q?=E7=A8=8B=E9=98=BB=E5=A1=9E=E9=80=9A=E7=9F=A5=E7=A4=BA=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Components/Samples/Toasts.razor | 4 ++++ .../Components/Samples/Toasts.razor.cs | 23 +++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/src/BootstrapBlazor.Server/Components/Samples/Toasts.razor b/src/BootstrapBlazor.Server/Components/Samples/Toasts.razor index a42b61160a7..a8f4dc6ffcc 100644 --- a/src/BootstrapBlazor.Server/Components/Samples/Toasts.razor +++ b/src/BootstrapBlazor.Server/Components/Samples/Toasts.razor @@ -50,6 +50,10 @@ private ToastService? ToastService { get; set; } + + + + diff --git a/src/BootstrapBlazor.Server/Components/Samples/Toasts.razor.cs b/src/BootstrapBlazor.Server/Components/Samples/Toasts.razor.cs index 8004aae4c42..57f9a979ed7 100644 --- a/src/BootstrapBlazor.Server/Components/Samples/Toasts.razor.cs +++ b/src/BootstrapBlazor.Server/Components/Samples/Toasts.razor.cs @@ -39,6 +39,8 @@ public sealed partial class Toasts private int DelayTs => Options.Value.ToastDelay / 1000; + private readonly ToastOption _option = new(); + /// /// OnInitialized /// @@ -64,6 +66,27 @@ await ToastService.Show(new ToastOption() Title = "Successfully saved", Content = $"Save data successfully, automatically close after {_delayTs} seconds" }); + + private async Task OnAsyncClick() + { + _option.Title = "通知服务"; + _option.ForceDelay = true; + _option.IsAutoHide = false; + _option.Delay = 3000; + _option.Content = "正在打包文档,请稍等..."; + _option.Category = ToastCategory.Information; + await ToastService.Show(_option); + + await Task.Delay(3000); + _option.Content = "打包完成,正在下载..."; + _option.Category = ToastCategory.Information; + await ToastService.Show(_option); + + await Task.Delay(3000); + _option.Content = "下载成功"; + _option.Category = ToastCategory.Success; + _option.IsAutoHide = true; + await ToastService.Show(_option); } private async Task OnSuccessClick() From 364d8751f90494ee70df87cca854d3bb5f2bc36a Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Fri, 16 May 2025 20:25:23 +0800 Subject: [PATCH 05/10] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=20Toast=20?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Components/Toast/Toast.razor.js | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/BootstrapBlazor/Components/Toast/Toast.razor.js b/src/BootstrapBlazor/Components/Toast/Toast.razor.js index 3bbe14cf3e9..4640ff84110 100644 --- a/src/BootstrapBlazor/Components/Toast/Toast.razor.js +++ b/src/BootstrapBlazor/Components/Toast/Toast.razor.js @@ -12,7 +12,7 @@ export function init(id, invoke, callback) { return toast.toast._config.autohide } } - Data.set(id, toast) + Data.set(id, toast); if (toast.showProgress()) { toast.progressElement = toast.element.querySelector('.toast-progress') @@ -31,6 +31,25 @@ export function init(id, invoke, callback) { toast.toast.show() } +export function update(id) { + const t = Data.get(id); + const { element, toast } = t; + const autoHide = element.getAttribute('data-bs-autohide') !== 'false'; + if(autoHide) { + const delay = parseInt(element.getAttribute('data-bs-delay')); + const progressElement = element.querySelector('.toast-progress'); + + toast._config.autohide = autoHide; + toast._config.delay = delay; + + progressElement.style.width = '100%'; + progressElement.style.transition = `width linear ${delay / 1000}s`; + EventHandler.on(progressElement, 'transitionend', e => { + toast.hide(); + }); + } +} + export function dispose(id) { const toast = Data.get(id) Data.remove(id) From 616e7c43488f8782cae985332d1ae4cff0f9e2a6 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Fri, 16 May 2025 20:25:43 +0800 Subject: [PATCH 06/10] =?UTF-8?q?refactor:=20=E4=BB=A3=E7=A0=81=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/BootstrapBlazor/Components/Toast/Toast.razor.cs | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/BootstrapBlazor/Components/Toast/Toast.razor.cs b/src/BootstrapBlazor/Components/Toast/Toast.razor.cs index 353d02ca2d8..1ca0d3b5d36 100644 --- a/src/BootstrapBlazor/Components/Toast/Toast.razor.cs +++ b/src/BootstrapBlazor/Components/Toast/Toast.razor.cs @@ -49,21 +49,19 @@ public partial class Toast /// /// 获得/设置 弹出框自动关闭时长 /// - protected string? DelayString => Options.IsAutoHide ? Convert.ToString(Options.Delay) : null; + private string? DelayString => Options.IsAutoHide ? Options.Delay.ToString() : null; /// - /// 获得/设置 是否开启动画效果 + /// 获得/设置 是否开启动画效果 /// - protected string? AnimationString => Options.Animation ? null : "false"; + private string? AnimationString => Options.Animation ? null : "false"; /// /// 获得/设置 ToastOption 实例 /// [Parameter] [NotNull] -#if NET6_0_OR_GREATER [EditorRequired] -#endif public ToastOption? Options { get; set; } /// @@ -71,7 +69,7 @@ public partial class Toast /// /// [CascadingParameter] - protected ToastContainer? ToastContainer { get; set; } + private ToastContainer? ToastContainer { get; set; } [Inject] [NotNull] From ddf2d4c5bc31c8a62b2066d944d524790c489a72 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Fri, 16 May 2025 20:25:56 +0800 Subject: [PATCH 07/10] =?UTF-8?q?refactor:=20=E6=94=AF=E6=8C=81=E5=86=85?= =?UTF-8?q?=E5=AE=B9=E5=8A=A8=E6=80=81=E6=9B=B4=E6=96=B0=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/BootstrapBlazor/Components/Toast/Toast.razor.cs | 13 +++++++++++++ .../Components/Toast/ToastContainer.razor.cs | 7 ++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/BootstrapBlazor/Components/Toast/Toast.razor.cs b/src/BootstrapBlazor/Components/Toast/Toast.razor.cs index 1ca0d3b5d36..ff6f9fed31b 100644 --- a/src/BootstrapBlazor/Components/Toast/Toast.razor.cs +++ b/src/BootstrapBlazor/Components/Toast/Toast.razor.cs @@ -98,6 +98,19 @@ protected override void OnParametersSet() Options.ErrorIcon ??= IconTheme.GetIconByKey(ComponentIcons.ToastErrorIcon); } + /// + /// + /// + protected override async Task OnAfterRenderAsync(bool firstRender) + { + await base.OnAfterRenderAsync(firstRender); + + if (!firstRender) + { + await InvokeVoidAsync("update", Id); + } + } + /// /// /// diff --git a/src/BootstrapBlazor/Components/Toast/ToastContainer.razor.cs b/src/BootstrapBlazor/Components/Toast/ToastContainer.razor.cs index d8abd0d6c77..42a84d7042a 100644 --- a/src/BootstrapBlazor/Components/Toast/ToastContainer.razor.cs +++ b/src/BootstrapBlazor/Components/Toast/ToastContainer.razor.cs @@ -75,7 +75,12 @@ private async Task Show(ToastOption option) return; } } - Toasts.Add(option); + + // support update content + if (!Toasts.Contains(option)) + { + Toasts.Add(option); + } await InvokeAsync(StateHasChanged); } From 2c378a339f521871c443d727820995df8456eea0 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Fri, 16 May 2025 20:26:05 +0800 Subject: [PATCH 08/10] =?UTF-8?q?doc:=20=E5=A2=9E=E5=8A=A0=E5=A4=9A?= =?UTF-8?q?=E8=AF=AD=E8=A8=80=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/BootstrapBlazor.Server/Locales/zh-CN.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/BootstrapBlazor.Server/Locales/zh-CN.json b/src/BootstrapBlazor.Server/Locales/zh-CN.json index c5478c69f93..257ebc886b3 100644 --- a/src/BootstrapBlazor.Server/Locales/zh-CN.json +++ b/src/BootstrapBlazor.Server/Locales/zh-CN.json @@ -124,7 +124,10 @@ "ToastsPreventTitle": "阻止重复", "ToastsPreventIntro": "通过设置 PreventDuplicates=\"true\" 重复点击下方按钮时,仅弹窗一次", "ToastsPreventText": "阻止重复", + "ToastsAsyncTitle": "线程阻塞通知", + "ToastsAsyncIntro": "通过设置 IsAsync 弹窗显示后,线程阻塞,点击关闭按钮后,继续执行后续代码", "ToastsWarning": "警告通知", + "ToastsAsyncText": "线程阻塞通知示例", "ToastsCloseTitle": "Toast 手动关闭", "ToastsCloseIntro": "不会自动关闭,需要人工点击关闭按钮,可通过设置 OnCloseAsync 回调委托自定义关闭弹窗后事件", "ToastsCloseNotificationText": "成功通知", From 7d14803eb54f22c4017ce29a8b59f76514e7f602 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Fri, 16 May 2025 20:39:26 +0800 Subject: [PATCH 09/10] =?UTF-8?q?refactor:=20=E4=BF=AE=E5=A4=8D=E7=A4=BA?= =?UTF-8?q?=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Components/Samples/Toasts.razor.cs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/BootstrapBlazor.Server/Components/Samples/Toasts.razor.cs b/src/BootstrapBlazor.Server/Components/Samples/Toasts.razor.cs index 57f9a979ed7..5022203cbf9 100644 --- a/src/BootstrapBlazor.Server/Components/Samples/Toasts.razor.cs +++ b/src/BootstrapBlazor.Server/Components/Samples/Toasts.razor.cs @@ -64,8 +64,9 @@ await ToastService.Show(new ToastOption() PreventDuplicates = true, Category = ToastCategory.Success, Title = "Successfully saved", - Content = $"Save data successfully, automatically close after {_delayTs} seconds" + Content = $"Save data successfully, automatically close after {DelayTs} seconds" }); + } private async Task OnAsyncClick() { @@ -79,13 +80,14 @@ private async Task OnAsyncClick() await Task.Delay(3000); _option.Content = "打包完成,正在下载..."; + _option.IsAutoHide = true; _option.Category = ToastCategory.Information; await ToastService.Show(_option); - await Task.Delay(3000); + await Task.Delay(2500); _option.Content = "下载成功"; _option.Category = ToastCategory.Success; - _option.IsAutoHide = true; + await ToastService.Show(_option); } From 995128334ea23fce8db4f1eff91825eeaf5099b2 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Fri, 16 May 2025 21:19:15 +0800 Subject: [PATCH 10/10] =?UTF-8?q?doc:=20=E6=9B=B4=E6=96=B0=E7=A4=BA?= =?UTF-8?q?=E4=BE=8B=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Components/Samples/Toasts.razor.cs | 10 +++++----- src/BootstrapBlazor.Server/Locales/en-US.json | 7 +++++++ src/BootstrapBlazor.Server/Locales/zh-CN.json | 4 ++++ 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/BootstrapBlazor.Server/Components/Samples/Toasts.razor.cs b/src/BootstrapBlazor.Server/Components/Samples/Toasts.razor.cs index 5022203cbf9..73914f3e9fd 100644 --- a/src/BootstrapBlazor.Server/Components/Samples/Toasts.razor.cs +++ b/src/BootstrapBlazor.Server/Components/Samples/Toasts.razor.cs @@ -70,22 +70,22 @@ await ToastService.Show(new ToastOption() private async Task OnAsyncClick() { - _option.Title = "通知服务"; + _option.Title = Localizer["ToastsAsyncDemoTitle"]; _option.ForceDelay = true; _option.IsAutoHide = false; _option.Delay = 3000; - _option.Content = "正在打包文档,请稍等..."; + _option.Content = Localizer["ToastsAsyncDemoStep1Text"]; _option.Category = ToastCategory.Information; await ToastService.Show(_option); await Task.Delay(3000); - _option.Content = "打包完成,正在下载..."; + _option.Content = Localizer["ToastsAsyncDemoStep2Text"]; _option.IsAutoHide = true; _option.Category = ToastCategory.Information; await ToastService.Show(_option); - await Task.Delay(2500); - _option.Content = "下载成功"; + await Task.Delay(2000); + _option.Content = Localizer["ToastsAsyncDemoStep3Text"]; _option.Category = ToastCategory.Success; await ToastService.Show(_option); diff --git a/src/BootstrapBlazor.Server/Locales/en-US.json b/src/BootstrapBlazor.Server/Locales/en-US.json index 04a5dd1a7cc..e7556b4a69a 100644 --- a/src/BootstrapBlazor.Server/Locales/en-US.json +++ b/src/BootstrapBlazor.Server/Locales/en-US.json @@ -124,7 +124,14 @@ "ToastsPreventTitle": "Prevent Duplicates", "ToastsPreventIntro": "By setting PreventDuplicates=\"true\" to repeatedly click the button below, only one pop-up window will appear", "ToastsPreventText": "Prevent Duplicates", + "ToastsAsyncTitle": "Async notification", + "ToastsAsyncIntro": "By setting IsAsync, the pop-up window is displayed, the thread is blocked, and after clicking the close button, the subsequent code continues to execute", + "ToastsAsyncDemoTitle": "Async notification", + "ToastsAsyncDemoStep1Text": "Packing documents, please wait...", + "ToastsAsyncDemoStep2Text": "Packaging completed, downloading...", + "ToastsAsyncDemoStep3Text": "Download completed, close the window automatically", "ToastsWarning": "Warning notice", + "ToastsAsyncText": "AsyncNotify", "ToastsCloseTitle": "Toast is closed manually", "ToastsCloseIntro": "It will not close automatically, you need to manually click the close button. You can customize the event after closing the pop-up window by settingOnCloseAsynccallback delegate", "ToastsCloseNotificationText": "success notification", diff --git a/src/BootstrapBlazor.Server/Locales/zh-CN.json b/src/BootstrapBlazor.Server/Locales/zh-CN.json index 257ebc886b3..800e289d3c3 100644 --- a/src/BootstrapBlazor.Server/Locales/zh-CN.json +++ b/src/BootstrapBlazor.Server/Locales/zh-CN.json @@ -126,6 +126,10 @@ "ToastsPreventText": "阻止重复", "ToastsAsyncTitle": "线程阻塞通知", "ToastsAsyncIntro": "通过设置 IsAsync 弹窗显示后,线程阻塞,点击关闭按钮后,继续执行后续代码", + "ToastsAsyncDemoTitle": "异步通知", + "ToastsAsyncDemoStep1Text": "正在打包文档,请稍等...", + "ToastsAsyncDemoStep2Text": "打包完成,正在下载...", + "ToastsAsyncDemoStep3Text": "下载完成,自动关窗", "ToastsWarning": "警告通知", "ToastsAsyncText": "线程阻塞通知示例", "ToastsCloseTitle": "Toast 手动关闭",