# Keyboard Layouts

Below is a list of common keyboard layout codes that the `GetCurrentKeyboardLayout` function can return on Windows, along with their meanings. These codes represent the active input locale identifier (KLID) for the current thread.

| Layout Code | Language/Region          |
| ----------- | ------------------------ |
| 00000409    | English (United States)  |
| 00000809    | English (United Kingdom) |
| 0000040C    | French (France)          |
| 00000407    | German (Germany)         |
| 00000410    | Italian (Italy)          |
| 0000040A    | Spanish (Spain)          |
| 00000411    | Japanese                 |
| 00000412    | Korean                   |
| 00000404    | Chinese (Taiwan)         |
| 00000804    | Chinese (PRC)            |
| 00000405    | Czech                    |
| 00000406    | Danish                   |
| 00000413    | Dutch (Netherlands)      |
| 0000040B    | Finnish                  |
| 00000408    | Greek                    |
| 0000040E    | Hungarian                |
| 00000414    | Norwegian (Bokmål)       |
| 00000415    | Polish                   |
| 00000416    | Portuguese (Brazil)      |
| 00000816    | Portuguese (Portugal)    |
| 00000419    | Russian                  |
| 0000041D    | Swedish                  |
| 0000041F    | Turkish                  |

### Variant Keyboard Layouts

Some languages have variant layouts with non-zero variant identifiers. Here are a few examples:

| Layout Code | Language/Region             |
| ----------- | --------------------------- |
| 00010409    | United States-International |
| 00020409    | United States-Dvorak        |
| 0001040C    | French (Belgium)            |
| 00020408    | Greek Latin                 |
| 00010407    | German (IBM)                |
| 0001040A    | Spanish (Latin America)     |

### Notes

* **Standard Layouts**: Codes like "00000409" represent the default layout for a language.
* **Variant Layouts**: Codes like "00010409" indicate alternative layouts for the same language.
* **Dynamic Output**: The function returns the active layout code, which depends on the user’s current settings and can change (e.g., via Alt+Shift).
* For a complete list, refer to [Microsoft’s Keyboard Layout Documentation](https://learn.microsoft.com/en-us/windows-hardware/manufacture/desktop/windows-language-pack-default-values?view=windows-11).
