2011-04-25 59 views
1

我得到與下面的代碼窗口安裝的語言列表:獲取短視窗語言名稱

var 
    AList : array [0..9] of LongWord; 
    AklName: array [0..255] of Char; 
    i: Longint; 
begin 
    for i:= 0 to GetKeyboardLayoutList(SizeOf(AList), AList)- 1 do 
    begin 
    GetLocaleInfo(LoWord(AList[i]), LOCALE_SLANGUAGE, AklName, SizeOf(AklName)); 
    Memo1.Lines.AddObject(AklName, Pointer(AList[i])); 
    end; 
end; 

它工作正常,但我希望得到安裝的語言像(英文縮寫名 - > EN;德文 - > de; Persian - > FA),任何人都可以幫助我更改此代碼?

回答

2

而不是LOCALE_SLANGUAGE,使用the LOCALE_SISO* constants之一,可能LOCALE_SISO639LANGNAME之一。

+0

所以LOCALE_SISO639LANGNAME將返回EN,這將是一個爲獲得「EN-US」? – 2011-04-25 20:58:43

+0

好問題,@Warren。我對這些東西一無所知。我只能回答這個問題,因爲我讀了GetLocaleInfo的文檔並且關注了所有的鏈接。嘗試詢問Stack Overflow。 – 2011-04-25 21:03:16

1

..或使用LOCALE_SABBREVLANGNAME,但它會顯示爲「ENG」,「RUS」等

相關問題