删除或本地化默认服务对话框的消息
Remove or localize default service dialogs' message
我正在使用 this method 来本地化我的 WPF 项目。
我还使用 Catel 作为我的 MVVM 框架。 Catel 附带了一些显示对话框的服务;问题是我不知道如何本地化它们。
首先,我想从 IPleaseWaitService 显示的 PleaseWaitWindow 中删除 "Please wait" 消息。如何实现?您可以使用
显示对话框
pleaseWaitService.Show(() => doStuff(), "status")
但是 如果你输入一个 null 或空字符串而不是 "status",它只会显示默认的 "Please wait" 消息(这显然是一种预期的行为).
如果无法实现,我必须用什么方式来翻译消息?我查了一下 ILanguageService,但没能做任何有效的事情。
有几种选择:
- 使用Catel localization
- 在服务定位器中注册您自己的类型
请注意,PleaseWaitService 是一个棘手的服务(因为它 运行 在单独的线程中,等等)。在我们从事的大多数项目中,我们所做的就是用这个替换它:
我使用的是 Catel 4.4.0,在这个版本中我可以在 pleaseWaitService.Show()
中设置消息
例如:
iPleaseWait.Show("message");
// do some stuff
iPleaseWait.Hide();
"message" 你可以用从资源中获取字符串的变量替换。
我正在使用 this method 来本地化我的 WPF 项目。
我还使用 Catel 作为我的 MVVM 框架。 Catel 附带了一些显示对话框的服务;问题是我不知道如何本地化它们。
首先,我想从 IPleaseWaitService 显示的 PleaseWaitWindow 中删除 "Please wait" 消息。如何实现?您可以使用
显示对话框pleaseWaitService.Show(() => doStuff(), "status")
但是 如果你输入一个 null 或空字符串而不是 "status",它只会显示默认的 "Please wait" 消息(这显然是一种预期的行为).
如果无法实现,我必须用什么方式来翻译消息?我查了一下 ILanguageService,但没能做任何有效的事情。
有几种选择:
- 使用Catel localization
- 在服务定位器中注册您自己的类型
请注意,PleaseWaitService 是一个棘手的服务(因为它 运行 在单独的线程中,等等)。在我们从事的大多数项目中,我们所做的就是用这个替换它:
我使用的是 Catel 4.4.0,在这个版本中我可以在 pleaseWaitService.Show()
例如:
iPleaseWait.Show("message");
// do some stuff
iPleaseWait.Hide();
"message" 你可以用从资源中获取字符串的变量替换。