2008-12-27 33 views
5

Vậy về cơ bản, đầu vào phương Tây được xử lý như thế nào trong các trò chơi hoặc ứng dụng SDL hoặc OpenGL? Googling cho nó tiết lộ http://sdl-im.csie.net/ nhưng điều đó dường như không được duy trì hoặc có sẵn nữa. Chỉ để xem trang tôi đã phải sử dụng Google cache.Đầu vào quốc tế SDL hoặc PyGame

Để làm rõ, tôi không gặp bất kỳ vấn đề gì về ứng dụng hiển thị văn bản bằng ngôn ngữ không phải tiếng Tây cho người dùng. Đây là một vấn đề được giải quyết. Có rất nhiều phông chữ unicode có sẵn, và nhiều cách khác nhau để xử lý văn bản thành glyphs và sau đó vào các bề mặt hiển thị.

Tôi chạy một lỗi theo hướng ngược lại. Ngay cả khi chương trình của tôi có thể xử lý dữ liệu văn bản một cách an toàn trong bất kỳ mã hóa tùy ý nào, thì không có cách nào để người dùng thực sự gõ tên của họ nếu nó xảy ra bao gồm một ký tự yêu cầu nhiều phím bấm để tạo.

Trả lời

1

Thông thường mọi người chỉ cần sử dụng unicode cho văn bản để quốc tế hóa ứng dụng của họ.

Tôi không nhớ SDL hoặc OpenGL nào đã triển khai bất kỳ thứ gì ngăn cản bạn triển khai đầu vào/đầu ra quốc tế, trừ khi họ không giúp gì được.

Có các tiện ích trên OpenGL mà bạn có thể sử dụng để hiển thị với phông chữ .ttf.

3

Bạn quan tâm đến SDL_EnableUNICODE(). Khi bạn bật dịch unicode, bạn có thể sử dụng trường unicode của cấu trúc SDL_keysym để lấy ký tự unicode dựa trên người dùng chính được nhập.

Nói chung tôi nghĩ bất cứ khi nào bạn nhập văn bản (ví dụ: người dùng tập trung vào một hộp văn bản), bạn nên sử dụng trường unicode và không cố gắng tự dịch.

Here's điều chúng tôi đã làm trong YATC. Không thực sự là một ví dụ điển hình về cách mọi thứ nên được thực hiện, nhưng chứng tỏ việc sử dụng trường unicode.

Các vấn đề liên quan