• Delphi 获取系统的语言环境参数GetSystemDefaultLangID、VerLanguageName、GetLocaleInfo


    1

    核心的两个API函数:GetSystemDefaultLangIDVerLanguageName

    GetSystemDefaultLangID:获得系统默认语言的ID

    VerLanguageName: 通过语言的ID转换为语言的名称 , 根据16位语言代码获取一种语言的名称

    uses Windows;
    function GetSystemLanguageName: string;
    var
      ID: LangID;
      LanguageName: array[0..255] of Char;
    begin
      // 获取当前系统 Locale
      // 对于简体中文,ID = 2052
      ID := GetSystemDefaultLangID;
      // 将 ID 转换为文字
      // 对于简体中文,LanguageName =“中文(中国)”
      VerLanguageName(ID, LanguageName, SizeOf(LanguageName));
      Result := LanguageName;
    end;
    

    2

    还可以通过获得系统本地信息来获取语言环境参数 GetLocaleInfo

    Windows API函数GetLocaleInfo 用来获得系统信息,比如系统语言, 货币符号等代码如下:

    function TForm1.GetLocaleInformation(Flag: Integer): String;
    var
      pcLCA: Array[0..20] of Char;
    begin
      if( GetLocaleInfo(LOCALE_SYSTEM_DEFAULT,Flag,pcLCA,19) <= 0 ) then 
      begin    
        pcLCA[0] := #0; 
      end; 
      Result := pcLCA;  
    end;
    procedure TForm1.Button1Click(Sender: TObject); begin ShowMessage(GetLocaleInformation(LOCALE_SENGLANGUAGE)); end;

    参数"Flag"可以取下列值:

    LOCALE_NOUSEROVERRIDE { do not use user overrides } 

    LOCALE_USE_CP_ACP { use the system ACP } 

    LOCALE_ILANGUAGE { 语言代号 } 

    LOCALE_SLANGUAGE { 本地语言名称 } 

    LOCALE_SENGLANGUAGE { 语言的英语名 } 

    LOCALE_SABBREVLANGNAME { 语言名称缩写 } 简体:CHS 繁体: CHT

    LOCALE_SNATIVELANGNAME { 本地语言名称 } 

    LOCALE_ICOUNTRY { 国家代号 } 

    LOCALE_SCOUNTRY { 国家名 } 

    LOCALE_SENGCOUNTRY { 国家的英语名称 } 

    LOCALE_SABBREVCTRYNAME { 国家名缩写 } 

    LOCALE_SNATIVECTRYNAME { 国家名 } 

    LOCALE_IDEFAULTLANGUAGE { 缺省语言代号 } 

    LOCALE_IDEFAULTCOUNTRY { 缺省国家代码 } 

    LOCALE_IDEFAULTCODEPAGE { 缺省oem代码页 } 

    LOCALE_IDEFAULTANSICODEPAGE { 缺省ansi代码页 } 

    LOCALE_IDEFAULTMACCODEPAGE { 缺省mac页 } 

    LOCALE_SLIST { 列表项分割符 } 

    LOCALE_IMEASURE { 测量单位0 = 米制, 1 = 英制 } 

    LOCALE_SDECIMAL { 小数点符号 } 

    LOCALE_STHOUSAND { 千位分割符 } 

    LOCALE_SGROUPING { digit grouping } 

    LOCALE_IDIGITS { number of fractional digits } 

    LOCALE_ILZERO { leading zeros for decimal } 

    LOCALE_INEGNUMBER { 负数模式 } 

    LOCALE_SNATIVEDIGITS { native ascii 0-9 } 

    LOCALE_SCURRENCY { 本地货币符号 } 

    LOCALE_SINTLSYMBOL { 国际货币符号 } 

    LOCALE_SMONDECIMALSEP { 货币小数点分割符 } 

    LOCALE_SMONTHOUSANDSEP { 货币千位分割符 } 

    LOCALE_SMONGROUPING { monetary grouping } 

    LOCALE_ICURRDIGITS { # local monetary digits } 

    LOCALE_IINTLCURRDIGITS { # intl monetary digits } 

    LOCALE_ICURRENCY { positive currency mode } 

    LOCALE_INEGCURR { negative currency mode } 

    LOCALE_SDATE { 日期分割符 } 

    LOCALE_STIME { 时间分割符 } 

    LOCALE_SSHORTDATE { 短日期字符串 } 

    LOCALE_SLONGDATE { 长日期字符串 } 

    LOCALE_STIMEFORMAT { time format string } 

    LOCALE_IDATE { short date format ordering } 

    LOCALE_ILDATE { long date format ordering } 

    LOCALE_ITIME { time format specifier } 

    LOCALE_ITIMEMARKPOSN { time marker position } 

    LOCALE_ICENTURY { century format specifier (short date) } 

    LOCALE_ITLZERO { leading zeros in time field } 

    LOCALE_IDAYLZERO { leading zeros in day field (short date) } 

    LOCALE_IMONLZERO { leading zeros in month field (short date) } 

    LOCALE_S1159 { AM designator } 

    LOCALE_S2359 { PM designator } 

    LOCALE_ICALENDARTYPE { type of calendar specifier } 

    LOCALE_IOPTIONALCALENDAR { additional calendar types specifier } 

    LOCALE_IFIRSTDAYOFWEEK { first day of week specifier } 

    LOCALE_IFIRSTWEEKOFYEAR { first week of year specifier } 

    LOCALE_SDAYNAME1 { long name for Monday } 

    LOCALE_SDAYNAME2 { long name for Tuesday } 

    LOCALE_SDAYNAME3 { long name for Wednesday } 

    LOCALE_SDAYNAME4 { long name for Thursday } 

    LOCALE_SDAYNAME5 { long name for Friday } 

    LOCALE_SDAYNAME6 { long name for Saturday } 

    LOCALE_SDAYNAME7 { long name for Sunday } 

    LOCALE_SABBREVDAYNAME1 { 星期一的缩写 } 

    LOCALE_SABBREVDAYNAME2 { 星期二的缩写 } 

    LOCALE_SABBREVDAYNAME3 { 星期三的缩写 } 

    LOCALE_SABBREVDAYNAME4 { 星期四的缩写 } 

    LOCALE_SABBREVDAYNAME5 { 星期五的缩写 } 

    LOCALE_SABBREVDAYNAME6 { 星期六的缩写 } 

    LOCALE_SABBREVDAYNAME7 { 星期天的缩写 } 

    LOCALE_SMONTHNAME1 { long name for January } 

    LOCALE_SMONTHNAME2 { long name for February } 

    LOCALE_SMONTHNAME3 { long name for March } 

    LOCALE_SMONTHNAME4 { long name for April } 

    LOCALE_SMONTHNAME5 { long name for May } 

    LOCALE_SMONTHNAME6 { long name for June } 

    LOCALE_SMONTHNAME7 { long name for July } 

    LOCALE_SMONTHNAME8 { long name for August } 

    LOCALE_SMONTHNAME9 { long name for September } 

    LOCALE_SMONTHNAME10 { long name for October } 

    LOCALE_SMONTHNAME11 { long name for November } 

    LOCALE_SMONTHNAME12 { long name for December } 

    LOCALE_SMONTHNAME13 { long name for 13th month (if exists) } 

    LOCALE_SABBREVMONTHNAME1 { 一月的缩写 } 

    LOCALE_SABBREVMONTHNAME2 { 二月的缩写 } 

    LOCALE_SABBREVMONTHNAME3 { 三月的缩写 } 

    LOCALE_SABBREVMONTHNAME4 { 四月的缩写 } 

    LOCALE_SABBREVMONTHNAME5 { 五月的缩写 } 

    LOCALE_SABBREVMONTHNAME6 { 六月的缩写 } 

    LOCALE_SABBREVMONTHNAME7 { 七月的缩写 } 

    LOCALE_SABBREVMONTHNAME8 { 八月的缩写 } 

    LOCALE_SABBREVMONTHNAME9 { 九月的缩写 } 

    LOCALE_SABBREVMONTHNAME10 { 十月的缩写 } 

    LOCALE_SABBREVMONTHNAME11 { 十一月的缩写 } 

    LOCALE_SABBREVMONTHNAME12 { 十二月的缩写 } 

    LOCALE_SABBREVMONTHNAME13 { 十三月的缩写(如果有的话) } 

    LOCALE_SPOSITIVESIGN { 正号 } 

    LOCALE_SNEGATIVESIGN { 负号 } 

    LOCALE_IPOSSIGNPOSN { 正号位置 } 

    LOCALE_INEGSIGNPOSN { 负号位置 } 

    LOCALE_IPOSSYMPRECEDES { mon sym precedes pos amt } 

    LOCALE_IPOSSEPBYSPACE { mon sym sep by space from pos amt } 

    LOCALE_INEGSYMPRECEDES { mon sym precedes neg amt } 

    LOCALE_INEGSEPBYSPACE { mon sym sep by space from neg amt } 

    LOCALE_FONTSIGNATURE { font signature } 

    LOCALE_SISO639LANGNAME { ISO 缩写语言名称 } 

    LOCALE_SISO3166CTRYNAME { ISO 缩写国家名称 }

    来源:https://www.cnblogs.com/guorongtao/p/11969774.html

    最新修改时间于 2019.12.02

  • 相关阅读:
    作为一名程序员应该具备哪些素质
    从100万个整数里找出100个最大的数
    数据库 SQL语句优化
    服务器上文件打包下载
    ThreadPoolExcutor
    几种序列化与get、set方法的关系
    idea没有错误出现红色波浪线怎么去掉?
    两个对象的属性赋值
    RandomStringUtils的使用
    IDEA中类似eclipse的workSpace的实现
  • 原文地址:https://www.cnblogs.com/guorongtao/p/11969774.html
Copyright © 2020-2023  润新知