我目前正在处理一些处理Silverlight 4应用程序中键盘快捷键的代码。我想创建一个管理窗口,用户可以在其中定义自定义键盘快捷键,如果他们不想使用默认键盘快捷键。但是,某些键在某些语言中具有不同的翻译(例如Home,Del,...)。当然,我想翻译这些文本,以便每个用户都能正确理解键盘快捷键。
是否有像这样的内置翻译?我在想类似于DateTime的行为方式。如果我使用DateTimes,则会通过系统文化设置自动定义数天或数月的文本。
string dateTimeTest = DateTime.Now.ToLongDateString();
在德国系统上,这会产生文本“Freitag,20。Juli 2012”。
还有类似的东西可用于钥匙吗?或者我是否必须手动翻译所有需要的密钥?
提前致谢!
答案 0 :(得分:1)
与大多数语言支持一样,您必须自己在Silverlight中执行此操作。当然,有办法让这更容易。
如果您的应用程序正在运行浏览器外(OOB),则在Silverlight 4中,您可以部署一个COM对象,该对象将本机调用包装到GetKeyNameText
;在Silverlight 5,OOB或提升的浏览器内应用程序中,您可以直接进行P / Invoke。
但是,如果您在没有提升权限的情况下在浏览器中运行,那么您的选项将大大减少。我不知道任何提供此功能的库(商业或其他),因此您将不得不创建自己的可本地化资源和相关方法来实现此目的。
您可能会发现W3C guidance on accessibility in Silverlight是一个有用的资源。