我目前参与了一个高度本地化的 WPF 应用程序,我们遇到了一个关于非英语语言菜单上的键盘快捷键的错误。该错误涉及未翻译的修饰键名称(Shift,Ctrl等),这很容易修复。
然而,这让我想到了快捷键本身,它们通常基于命令的第一个字母,除非由于冲突或约定不可行。当命令名称本地化时,命令和它们各自的快捷方式之间的链接通常会丢失:
- 这值得担心吗?
- 现有的主要应用程序如何应对这个问题?
- 在这种情况下还有其他问题需要考虑吗?
尽管这个问题的灵感来自 WPF 应用程序,但我对一般情况更感兴趣。
我目前参与了一个高度本地化的 WPF 应用程序,我们遇到了一个关于非英语语言菜单上的键盘快捷键的错误。该错误涉及未翻译的修饰键名称(Shift,Ctrl等),这很容易修复。
然而,这让我想到了快捷键本身,它们通常基于命令的第一个字母,除非由于冲突或约定不可行。当命令名称本地化时,命令和它们各自的快捷方式之间的链接通常会丢失:
尽管这个问题的灵感来自 WPF 应用程序,但我对一般情况更感兴趣。
您应该远离符号键(例如*和<),因为它们往往会在国际键盘上移动。参见维基百科:键盘布局
如果您计划根据本地化切换字母,您应该让用户选择他/她是否想要英文变体。如果我必须根据语言学习两组快捷方式,这会令人沮丧。(跨平台应用程序也是如此。)
最好是完全可定制的键盘快捷键,但对于高级用户来说可能更多。有关示例,请参阅Media Player Classic 。
在搜索更多信息时,我发现了一篇关于这个确切主题的优秀博客文章。
总结一下:
- 如果可能,不更改快捷方式
- 如果某个键在特定布局上不可用,我们应该尝试使用相同的物理位置
- 应用程序语言和键盘布局之间不应该有联系
- 认为应用程序语言将匹配键盘布局是错误的。我给你举个例子:在罗马尼亚,超过 95% 的计算机使用美式键盘布局,另外 5% 使用 4-5 种不同的罗马尼亚键盘布局中的一种。
- 有些人使用多种键盘布局 - 通常他们是高级用户,我们不能忽视他们键盘布局可以随时切换
- 只有拉丁字符才能安全使用
微软对此有指导方针,值得一试:http: //msdn.microsoft.com/en-us/library/windows/desktop/bb545460.aspx#choosing
并且来自顶级准则违规: