2011-12-17 34 views
7

enter image description hereCách xác định ngôn ngữ Vị trí và Hiển thị từ Bảng điều khiển Windows

Delphi xe.

Đối Tab Administrative - Unicode lang
sử dụng GetSystemDefaultLangID

Đối Tab Formats-
sử dụng GetUserDefaultLangID

Nhưng tôi phải làm gì sử dụng cho Ví Tab Location?

Đối Tab "Bàn phím và Ngôn ngữ"
cho Vista trở lên: Getlocaleinfo với LOCALE_CUSTOM_UI_DEFAULT chính

Function GetLocaleInformation(flag: integer): string; 
var 
    pclca: array[0..20] of char; 
begin 
    if (GetLocaleInfo(
     //locale_system_default - Always identical values returns 
     LOCALE_CUSTOM_UI_DEFAULT // work only Vista-Win7, not Xp ** 
     ,flag,pclca,19) <= 0) then begin 
    pclca[0] := #0; 
    end; 
    Result := pclca; 
end; 
  1. Làm thế nào để xác định Vị trí trong Xp + Win7 và hiển thị ngôn ngữ trong Xp?
  2. Có thể là một khóa phổ quát cho định nghĩa "Ngôn ngữ hiển thị" cho cả Xp và cho Win7
  3. Làm cách nào để nhận danh sách ngôn ngữ được thiết lập của giao diện?

Trả lời

11

1.1 - Cách nhận vị trí địa lý đã chọn (ID địa lý)?

Sử dụng GetUserGeoID chức năng mà trả về geographical location hiện đang được chọn bởi người dùng.


1,2 - Làm thế nào để có được lựa chọn ngôn ngữ hiển thị cho Multilingual User Interface (MUI) trong Windows XP?

Sử dụng chức năng GetUserDefaultUILanguage trả về language identifier hiện được người dùng chọn.


2 - Có một cách phổ quát như thế nào để có được ngôn ngữ hiển thị được lựa chọn hỗ trợ từ Windows XP đến Windows 7?

Vâng, đúng vậy. Nó chỉ là chức năng GetUserDefaultUILanguage đã đề cập trước đây. Có một nhận xét:

Nếu ngôn ngữ sử dụng giao diện người dùng là một phần của một ngôn ngữ giao diện Pack (LIP) và tương ứng với một miền địa phương bổ sung, hàm này trả LOCALE_CUSTOM_UI_DEFAULT.

Nó được hỗ trợ từ Windows 2000 và nó sẽ trả về ngôn ngữ hiển thị đã chọn ngay cả đối với Windows Vista ở trên (LOCALE_CUSTOM_UI_DEFAULT).


3 - Làm thế nào để có được danh sách các ngôn ngữ có sẵn giao diện người dùng?

Sử dụng chức năng EnumUILanguages. Trong Windows XP, nó vượt qua language identifiers đến hàm gọi lại EnumUILanguagesProc. Vì Windows Vista, bạn thậm chí có thể chỉ định các cờ bổ sung cung cấp để chuyển các tên ngôn ngữ cho hàm gọi lại đó hoặc bạn có thể chỉ định lọc cho các ngôn ngữ được cấp phép hoặc cho các ngôn ngữ được chính sách nhóm cho phép.

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