获取简短的Windows语言名称

时间:2011-04-25 03:36:56

标签: delphi

我在Windows上获得已安装语言的列表,代码如下:

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;波斯语 - > FA),任何人都可以帮我改变这段代码吗?

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

..或使用LOCALE_SABBREVLANGNAME,但会显示为“ENG”,“RUS”等。