Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

SDL or PyGame international input

So basically, how is non-western input handled in SDL or OpenGL games or applications? Googling for it reveals http://sdl-im.csie.net/ but that doesn't seem to be maintained or available anymore. Just to view the page I had to use the Google cache.

To clarify, I'm not having any kind of issue in terms of the application displaying text in non-western languages to users. This is a solved problem. There are many unicode fonts available, and many different ways to process text into glyphs and then into display surfaces.

I run a-foul in the opposite direction. Even if my program could safely handle text data in any arbitrary encoding, there's no way for users to actually type their name if it happens to include a character that requires more than one keystroke to produce.

like image 681
TokenMacGuy Avatar asked Oct 14 '22 17:10

TokenMacGuy


1 Answers

You are interested in SDL_EnableUNICODE(). When you enable unicode translation, you can use the unicode field of SDL_keysym structure to get the unicode character based on the key user typed.

Generally I think whenever you do text input (e.g. user focuses on a textbox) you should use the unicode field and not attempt to do translation yourself.

Here's something we did in YATC. Not really a shining example of how things should be done, but demonstrates the use of the unicode field.

like image 157
Ivan Vučica Avatar answered Dec 09 '22 01:12

Ivan Vučica