2010-08-05 27 views
0

我有一個Eclipse插件,它利用幾個按鍵組合(按Alt-G X,Alt鍵-G Y,等等)的。對於大多數鍵盤佈局,這些特定鍵綁定沒有問題。然而,對於瑞士德語,事實證明'Alt-G'會創建'@',這使瑞士德國人很難使用我創建的插件。我不想更改當前的鍵綁定,因爲這會混淆現有的用戶。如何取消設置鍵綁定爲一個特定的地區

我的問題是:

如何以編程檢測用戶是瑞士德語鍵盤和編程方式禁用(或改變)這些鍵綁定?

(這是什麼事情我可以在plugin.xml指定?)

+0

我應該看着/一點點/困難之前,我問的問題。看起來好像org.eclipse.ui.bindings擴展點確實提供了'locale'屬性。使用這個,我可以指定鍵綁定只適用於特定的語言環境,但我仍然不知道如何使鍵綁定適用於除*之外的* all *語言環境。 – 2010-08-06 03:41:26

回答

0

要回答我的問題,你可以使用org.eclipse.ui.bindings擴展點來徹底解決問題。

首先,您設置一個鍵綁定像往常一樣,然後你就可以取消設置在單一語言環境特定的鍵綁定。僅對於該語言環境,您可以將綁定重新設置爲不同的內容。

這工作,但不幸的是非常詳細的,如果你有很多鍵綁定,解除綁定,然後再重新綁定。

下面是一個例子:

 <!-- set binding globally --> 
     <key 
     commandId="com.foo.myCommandId" 
     contextId="org.eclipse.ui.contexts.window" 
     schemeId="org.eclipse.ui.defaultAcceleratorConfiguration" 
     sequence="M3+G T"/> 
     <!-- un-set binding for Swiss German --> 
     <key 
     commandId="com.foo.myCommandId" 
     contextId="org.eclipse.ui.contexts.window" 
     locale="de_CH" 
     schemeId="org.eclipse.ui.defaultAcceleratorConfiguration" 
     sequence="M3+G C"/> 
     <!-- re-set binding for Swiss German with a new key combo --> 
     <key 
     commandId="com.foo.myCommandId" 
     contextId="org.eclipse.ui.contexts.window" 
     locale="de_CH" 
     schemeId="org.eclipse.ui.defaultAcceleratorConfiguration" 
     sequence="M1+M3+G C"/> 
相關問題