2008-12-27 14 views
5

Donc, fondamentalement, comment les entrées non occidentales sont-elles traitées dans les jeux ou applications SDL ou OpenGL? Googling pour cela révèle http://sdl-im.csie.net/ mais cela ne semble pas être maintenu ou disponible plus. Juste pour voir la page, j'ai dû utiliser le Google cache.Entrée internationale SDL ou PyGame

Pour clarifier, je n'ai aucune sorte de problème en termes d'application affichant du texte dans des langues non occidentales aux utilisateurs. C'est un problème résolu. Il existe de nombreuses polices Unicode disponibles et de nombreuses façons de traiter le texte en glyphes, puis en surfaces d'affichage.

Je cours une faute dans la direction opposée. Même si mon programme peut gérer les données de texte en toute sécurité dans n'importe quel encodage arbitraire, les utilisateurs ne peuvent en aucun cas taper leur nom s'il inclut un caractère qui nécessite plus d'une frappe.

Répondre

1

Habituellement, tout le monde finit par utiliser unicode pour que le texte internationalise ses applications. Je ne me souviens pas de SDL, ou bien OpenGL n'a pas implémenté quoi que ce soit qui vous empêcherait d'implémenter des entrées/sorties internationales, sauf qu'elles n'y contribuent pas.

Il existe des utilitaires sur OpenGL que vous pouvez utiliser pour afficher des polices .ttf.

3

Vous êtes intéressé par SDL_EnableUNICODE(). Lorsque vous activez la traduction Unicode, vous pouvez utiliser le champ unicode de la structure SDL_keysym pour obtenir le caractère Unicode en fonction de l'utilisateur clé saisi.

Généralement je pense que chaque fois que vous faites une saisie de texte (par exemple, l'utilisateur se concentre sur une zone de texte), vous devez utiliser le champ Unicode et ne pas essayer de faire vous-même la traduction.

Here's quelque chose que nous avons fait dans YATC. Pas vraiment un exemple brillant de la façon dont les choses devraient être faites, mais démontre l'utilisation du champ unicode.