1
有沒有一種方式來獲得使用Windows API的語言ISO代碼的主要語言ID?我想爲我的GetDateFormatInt函數使用它,我很好奇,如果沒有使用常量的方式。雖然該函數不使用英語的默認sublang,但我只對主要語言ID感興趣。如何ISO 639-1代碼轉換爲語言ID
function GetDateFormatInt(const aLanguageISOCode: string): string;
const
C_ISO_CODES: array[0..3] of string = (
'nl', 'en', 'de', 'fr'
);
C_LCIDS: array[0..3] of Cardinal = (
((SUBLANG_DUTCH shl 10) or LANG_DUTCH) or (SORT_DEFAULT shl 16),
((SUBLANG_ENGLISH_UK shl 10) or LANG_ENGLISH) or (SORT_DEFAULT shl 16),
((SUBLANG_GERMAN shl 10) or LANG_GERMAN) or (SORT_DEFAULT shl 16),
((SUBLANG_FRENCH shl 10) or LANG_FRENCH) or (SORT_DEFAULT shl 16)
);
var
i: Integer;
lLCID: Cardinal;
lBuffer: array[0..512] of Char;
begin
i := AnsiIndexText(aLanguageISOCode, C_ISO_CODES);
if i > -1 then
lLCID := C_LCIDS[i]
else
lLCID := LOCALE_USER_DEFAULT;
i := GetDateFormat(lLCID, DATE_LONGDATE, nil, nil, lBuffer, 512);
SetString(Result, lBuffer, i - 1);
end;
我冒昧地添加警告德爾福7個用戶喜歡我。我希望你不介意。 – 2011-06-07 13:06:01
@The_Fox謝謝!我不知道這個問題。 – 2011-06-07 13:07:51
我也不知道,直到客戶端失敗。即使使用錯誤報告,我也無法找到它發生錯誤的地方,但測試人員可能會在服務器上重現問題。然後我發現了一些額外的日誌記錄的錯誤。 – 2011-06-08 06:48:04