4

我目前正在编写一些代码来处理我的 Silverlight 4 应用程序中的键盘快捷键。我想创建一个管理窗口,如果用户不想使用默认键盘快捷键,他们可以在其中定义自定义键盘快捷键。但是,某些键在某些语言中具有不同的翻译(例如 Home、Del、...)。当然,我想翻译这些文本,以便每个用户都能正确理解键盘快捷键。

有没有类似这样的内置翻译?我正在考虑类似于 DateTime 的行为方式。如果我使用 DateTimes,则几天或几个月的文本是通过系统文化设置自动定义的。

string dateTimeTest = DateTime.Now.ToLongDateString();

在德国系统上,这会导致文本“Freitag, 20. Juli 2012”。

是否也有类似的东西可用于键?还是我必须手动翻译所有需要的键?

提前致谢!

4

1 回答 1

1

与大多数语言支持一样,您必须在 Silverlight 中自己执行此操作。当然,有一些方法可以让这更容易。

如果您的应用程序在浏览器外运行 (OOB),则在 Silverlight 4 中,您可以部署一个 COM 对象,该对象将本机调用包装到GetKeyNameText; 在 Silverlight 5、OOB 或提升的浏览器内应用程序中,您可以直接 P/Invoke 它。

但是,如果您在没有提升权限的情况下在浏览器中运行,您的选择就会大大减少。我不知道提供此功能的任何库(商业或其他),因此您将不得不创建自己的可本地化资源和相关方法来实现这一点。

您可能会发现关于 Silverlight中可访问性的 W3C 指南是一个有用的资源。

于 2012-08-10T13:52:01.897 回答