I finally have rewritten DigiKeyboardDevice.h to use a different Keyboard Layout, but found a far better solution in the end.
The problem with "DigiKeyboardDevice.h" is that it uses a ASCII translation table to make DigiKeyboard.println() and DigiKeyboard.print() work.
The translation table could be found in scancode-ascii-table.h and has a major problem. The most significant bit is used to encode the SHIFT modifier key (for example to send an 'A' instead of an 'a' via USB).
Now the problem is that other keyboard layouts use additional modifier keys (like ALT GR in German keyboard layout) to change the scancodes.
Implementing the capability of using different modifier keys ended up in rewriting the whole DigiKeyboarDevice.h file for a single layout, which I had done for German layout (Teensy Keyboard implementation is a good starting point).
Another issue is, that println() / print() seems to send UTF-8 key codes to the "void write(uint8_t)", but due to ASCII conversations all characters outside printable ASCII keyspace are ignored.
Thus I have thrown away my attempts to "hack" DigiKeyboardDevice.h and came up with a much simpler solution, based on DuckEncoder, which already handles the keyboard language layout for us:
https://github.com/mame82/duck2sparkThe solution comes with the free benefit of dealing with string size limitation due to low amount of avaiulable RAM on DigiSpark