Input System, display action binding, keyboard layouts and language

Hello

I know this has been discussed a few times, but I still can’t find the solution to my problem. (Among others: GetBindingDisplayString returns non English names when the player's keyboard is set to non English)

I’ve been using the input system for the first time during the past few weeks and it’s great. But there’s something I’m not sure how I should handle:

Let’s say on a qwerty keyboard, I map a “walk forward” action to W, a “select gun” on 2, and a “jump” on space bar.

When I’ll press these buttons on a qwerty, the actions will be triggered. Good.

When I’ll press the same physical key locations on an azerty keyboard (Z to walk, é to select gun, space to jump, the actions will also be triggered. Great.

Now If i want to display strings, or sprites, of each input to the player, I have these options:

inputAction.bindings contain the physical key information, ie qwerty information even if player has azerty layout, so W, 2 and space.
inputAction.GetBindingDisplayString extension method contains the “logical” key information, so if the player has qwerty: W, 2, space. if the player has azerty, Z, é, espace (NOT space).

So it seems the GetBindingDisplayString will depend on keyboard layout AND keyboard language. This makes it much more difficult to display sprites. I’m not sure how I should handle this, which seems to be a pretty common scenario, so I think I’m missing something.

Thing is, it’s not consistent. A GetBindingDisplayString on an action bound to left mouse button will always return LMB whatever your input layout and language. (I know a mouse doesn’t have words on it but still).

Is there a way to get a display string for the binding that is layout aware but not language aware?