A basic understanding of keyboards and how they work around the world can help avoid problems in application development.
Logical keyboard layout
The logical keyboard layout assigns meaning to the keys. This logical layout
is done within the operating system or windowing system. The layout is normally
associated with a locale (language and region/country). Users normally choose
a layout matching the engravings on the physical keytops. However, any layout
can be used on any keyboard, regardless of what is engraved on the keyboard
and the physical layout of the keyboard.
In Windows, the keyboard is defined by the Input Locale, and can be set using
Regional and Language Options. Multiple input locales can be installed, and
you can switch between them at any time. In Linux, the keyboard is defined in
the X configuration (XF86Config). In Java, the keyboard is defined as part of
the AWT and therefore uses the platform keyboard support. This means that to
change keyboards in Java you must use the operating system support. It also
means that the function varies based on platform.