As the doc ( about the windows keyboard input says

Key strokes are converted into characters by the TranslateMessage function
My question is how doues the `TranslateMessage` function really works in the hood. How does it translate the key-down messages (`WM_KEYDOWN, WM_SYSKEYDOWN`) to character massage (`WM_CHAR, WM_SYSCHAR`)?

To clear up what i'm talking about here is the use case: when i set the keyboard layout to Polish when i press the `ALT key + a` i get the `ą` letter then when i change the layout to Turkey for e.g. a get the `` letter with different charcode then `ą` letter with Polish layout. How does the `TranslateMessage` utilize the current keyboard layout to produce differet charcodes for differet layouts? Does it use some kind of language tables/files/dlls to lookup the right charcode for selected layout?