Inserting German characters in Windows (Umlauts and eszett)

I’m learning German at the moment, and so I sometimes type things in German. I don’t have a German keyboard, so it can be awkward to insert character which aren’t using in English, like the eszett (ß) or umlauts (ä, ö and ü). On a Mac it is actually very easily – press Command+U and then dots appear in the edit box, and the next button you pretty will have the desired diaeresis.

In fact, it isn’t true that the diaeresis is not used in English. Some people will use them on the second vowel when there are two vowels together, to indicate they are said as two separate sounds. For instance, one might write ‘coöperate’, to show that it is said ‘co-operate’, rather than ‘coop-erate’. ‘Naïve’ is another example.

So, I solved this problem by writing a program called Umalut. It sits in your system tray and when you either click the icon, or press a shortcut (hard coded to Windows Key + S at the moment), it will insert an umlauted character if a vowel or ‘y’ is pressed, or an eszett if ‘s’ is pressed.

It can generate the character in two ways – either by generated a WM_CHAR message directly to the window that it stole the keypress from, or by simulating input and typing out the Alt-code for the character. It is written in C++ and consists of two projects – a GUI and the hook DLL.

The problem is, I’ve broken it at the moment somehow, and I’ve just realised that when you are using Microsoft Word, it is massively easy to insert characters. The default shortcut to insert an umlaut is to press Control+Shift+; and then press the required vowel. For the eszett, it is Control+&, and then ‘s’ (on my keyboard, this is the same as Control+Shift+7 and then ‘s’).

By going into the Symbol shortcut dialog (Insert tab, Symbol, More symbols…, select the eszett and then click ‘Shortcut’) you can change this shortcut. I’ve set it to Control+Shift+; and then ‘s’, so it is the same to access any of the characters I am interested in.

What is more, you can set up auto-correct text. I’ve configured it so that (for instance) ‘..a’ is translated into ‘ä’, which is very convenient. I recommend these to everybody else, too!

For now, I’m not going to bother with releasing the Umlaut program. However I might in the future if there is any demand for it.