A basic understanding of keyboards and how they work around the world can help avoid problems in application development.
ISO9995 standard
Keyboards are defined by the ISO9995 standard. This standard defines a keyboard as having three groups of key assignments:
Group 1 is the basic layer with a base and shift (lower and upper case)
Group 2 is the national layer with a base and shift. There is a locking shift to access this.
Group 3 allows for supplemental characters to be entered. This is a single plane and uses a non-locking shift.
Many national keyboard standards define layouts according to ISO9995, although some layouts fall outside of the ISO9995 standard. Examples of this are de facto standards such as the Polish Programmer's keyboard or the Microsoft U. S. International keyboard.