That is not just a foreign issue ccvi. Virtually every laptop has a custom keyboard attached to it. They are also a problem.
None of my laptops of different ages has very different layouts (that's true for laptops with US-international and German layouts). Single individual keys may have been moved slightly to fit the case, but the combination of labels on the keys is still the same as on normal keyboards.
It becomes and untenable situation, if game developers have to come up with different mapping for every different keyboard in the world. I am betting within Germany there is more than one keyboard layout available (rhetorical, I found 3 different German keyboard layouts in a quick search).
They're basically unchanged since the XT, except for introduction of the EURO symbol and except when microsoft decides for some strange keys to be added or removed. Same frequency of changes as with US keyboards. The one shown in wikipedia doesn't really exist in the wild, also the 3rd layer of characters is to communicate with the rest of Europe, not used in the German language.
Not saying it is not an issue, but there does not appear to be a good solution.
Our "Fix Key" option will, at least, address keys which are different and are not recognized.
I was completely wrong. My assumption was that the game uses characters codes as input, but when I just tried to switch the keyboard layout it turns out it uses keycodes. i.e., whatever is printend on the key cap has no meaning whatsoever. Bizman has part of a solution:
As for the keyboard layout, a printable keyboard chart might solve many issues for foreign players - and laptop users, too. The location is what matters, not what it says on the buttons. Then again, the said keyboard map should be offered annoyingly with the initial install and every patch to make people see it. And they still wouldn't know about it! 
The other half of the solution could be to internationalize the on-screen instructions. I'm quite sure that windows can be persuaded to deliver information on what character is emitted by a certain key-code. Then instead of displaying "press quote" it could display "press <whatever is printed on the button of the specific computer>". That information could also be used to generate a printable map (displayable - noone uses paper anymore), to avoid manual effort to create it for every new keyboard anywhere on the world (except the part where keys are moved - at least the function would then fit to the key cap label printed).