Since I can't find any recent discussions on this with the forum search...
I don't think "named identifiers" can be part of a true solution to international keyboard handling, because any alphanumeric key we're familiar with may not exist on other keyboards, as shown back on page 1 by exploter's Armenian keyboard example:
So even if we wanted to let the programmer bind "missile" to the "m" key or "group 7" to the "7" key, we can't even guarantee there
is an m key or a 7 key at all, much less agonize over how to locate it.
To use Flash's terminology: "named keybinding" is simply not possible in general (not even for number keys!), so you need to use "location keybinding" and "named display" for everything.
The only good use for key names is to give developers an easy way of specifying key locations. In fact, sf::Keyboard already seems to be representing key locations (eg, it has 'A' but no 'a', 'Num1' but no '!').
So in my admittedly uneducated opinion, the best solution is to do the following:
1) add scancodes (which is already happening in 2.2, yay!)
2) add some means of getting a human-readable description of a scancode, ie "named display", since every game with a tutorial or a key bindings menu will need this (and I'm sure you could make something far better than what I've hacked together for my program). Perhaps a Keyboard::getDescription() method taking a sf::Keyevent or scancode and returning a string.
3) ideally, rename the "code" member of sf::KeyEvent to "location", because that's what it currently is (or at least what it should be going forward); obviously this would have to wait until SFML 3
Regarding the French keyboard number row issue: The value sf::Keyboard::Num1 should represent the physical location that the 1 key is at on a QWERTY keyboard, not the "1" character that may or may not be its default binding on some other keyboard, in which case simply doing if(e.location == sf::Keyboard::Num1) would work just fine. No extra hassle for the users, and no changes to the public API except renaming that one member someday.
P.S. I'd also like an sf::Joystick::getDescription() someday (the best I can give the user right now is "positive movement along axis 2") though I have no idea how feasible that might be.