Udostępnij przez


Filtrowanie języków w aplikacji konsoli MUI

Aplikacja konsolowa MUI może obsługiwać ustawienia systemowe lub ustawienia specyficzne dla aplikacji dla języków interfejsu użytkownika. W tym temacie omówiono filtrowanie języków dla tego typu aplikacji.

Ogranicz wyświetlanie języków

W przeciwieństwie do okna graficznego konsola systemu Windows nie może wyświetlać złożonych skryptów, takich jak arabski, hebrajski, perski, hindi, urdu, tajski i wiele innych. W związku z tym wiele języków interfejsu użytkownika nie może być wyświetlanych przez konsolę w żadnym wypadku.

Konsola może wyświetlać tylko znaki z pojedynczej strony kodowej OEM skojarzonej z bieżącym językiem dla aplikacji innych niż Unicode. Dla każdej strony kodowej producenta OEM konsola używa określonej czcionki i może nie zapewnić pełnego pokrycia tej strony kodowej.

Te ograniczenia związane z konsolą zmniejszają liczbę języków interfejsu użytkownika, które konsola może wyświetlać na określonym komputerze. Jeśli na przykład bieżący język dla aplikacji innych niż Unicode jest japoński, a użytkownik próbuje wyświetlić niemiecki tekst w konsoli, znaki z umlauts nie są wyświetlane poprawnie. Jeśli bieżący język dla aplikacji innych niż Unicode jest niemiecki i użytkownik chce wyświetlić japoński tekst w konsoli, wyniki są znacznie gorsze, co sprawia, że tekst jest prawie niezrozumiały.

Notatka

Podczas zapewniania obsługi konsoli aplikacji MUI należy pamiętać, że konsola zapewnia tylko ograniczoną obsługę edytorów metod wejściowych .

 

Ustawianie języka dla danych wyjściowych konsoli

W systemie Windows Vista i nowszych aplikacja konsolowa ustawia język do obsługi wyświetlania konsoli przez wywołanie SetThreadPreferredUILanguages. W tym wywołaniu aplikacja przekazuje MUI_CONSOLE_FILTER w parametrze dwFlags i NULL dla pwszLanguagesBuffer. Alternatywą jest wywołanie SetThreadUILanguage z identyfikatorem języka 0. To ustawienie powoduje, że funkcja wybiera język, który najlepiej obsługuje wyświetlanie konsoli.

W systemie Windows XP aplikacja może ustawić język tylko dla danych wyjściowych konsoli, wywołując SetThreadUILanguage z identyfikatorem języka 0.

ustawianie preferencji języka aplikacji