title: Keyboard keys localization
body: <p>I am working on menu for shortcut settings of my application. Application does support two languages (English and German), so I need to be able to show culture depended string. E.g. Ctrl+Ins for "en-US" and Strg+Einfg for "de-DE".</p>
  
  <p>Considering that amount of possible keys is not very big i could define resources for each key, but i assume that this problem isn't uncommon and there should be built-in functionality or well know library for this purpose.</p>
  
  <p>I have tried ConvertToString() from System.Windows.Forms.KeysConverter :</p>
  
  <pre><code>var kc = new System.Windows.Forms.KeysConverter();
  var de = kc.ConvertToString(null, new CultureInfo("de-DE"), Keys.Insert);
  Console.WriteLine(de);
  </code></pre>
  
  <p>And GetDisplayStringForCulture() from System.Windows.Input.KeyGesture :</p>
  
  <pre><code>System.Windows.Input.KeyGesture kg = new KeyGesture(Key.Insert);
  var de = kg.GetDisplayStringForCulture(new CultureInfo("de-AT"));
  Console.WriteLine(de);
  </code></pre>
  
  <p>But both of them return english "Ins" and "Insert" respectively.</p>
  
  <p>So basically I am looking for method that will accept some kind of standard key class and culture and return respective localized string.</p>