删除或本地化默认服务对话框的消息

本文关键字:对话框 消息 服务 默认 本地化 删除 | 更新日期: 2023-09-27 18:37:16

我正在使用此方法本地化我的WPF项目。

我也使用 Catel 作为我的 MVVM 框架。Catel附带一些显示对话框的服务;问题是我不知道如何本地化它们。


首先,我想从IPleaseWaitService显示的PleaseWaitWindow中删除"请稍候"消息。如何实现?您可以使用以下方式显示对话框

pleaseWaitService.Show(() => doStuff(), "status")

但是,如果您输入 null 或空字符串而不是"status",它只会显示默认的"请稍候"消息(这显然是预期行为)。

如果无法做到这一点,我必须通过什么方式翻译消息?我在 ILanguageService 周围戳了戳,但我没有设法做任何有效的事情。

删除或本地化默认服务对话框的消息

有几个选项:

  1. 使用卡特本地化
  2. 在服务定位器中注册您自己的类型

请注意,PleaseWaitService是一个棘手的服务(因为它在单独的线程中运行,等等)。我们在大多数项目中所做的是用这个替换它:

https://github.com/Orcomp/Orchestra/blob/develop/src%2FOrchestra.Core%2FOrchestra.Core%2FServices%2FPleaseWaitService.cs

我使用了 Catel 4.4.0,在这个版本中我可以在pleaseWaitService.Show()中设置消息

例如:

iPleaseWait.Show("message");
// do some stuff
iPleaseWait.Hide();

"消息"您可以替换为从资源中获取字符串的变量。