见上

解决方案 »

  1.   

    不少方法
    比如var 
       uACP: UINT;
    uACP = GetACP(); // api call
    case uACP of
             begin
    936:
    iResult = CHINESE_GB; // 
    break;
    950:
    iResult = CHINESE_BIG5;
    break;
    else:
    iResult = ENGLISH;
    break;
            end;
      

  2.   

    type
      TLocalInfoRecord = record
        Title: string;
        Value: string;
      end;  TLocalInfoArray= Array[0..24] of TLocalInfoRecord;procedure GetLocalInfo(out ALocalInfo: TLocalInfoArray);implementation{获取本地一般软件信息}
    procedure GetLocalInfo(out ALocalInfo: TLocalInfoArray);
    var
     BufLen:DWORD;
     Buffer:PChar;
    begin
     // Get Locales
     BufLen:=255;
     GetMem(Buffer, BufLen);
     try
      GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_SLANGUAGE, Buffer, BufLen);
      ALocalInfo[0].Value := Buffer;  ALocalInfo[0].Title := '本地语言';  GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_SENGLANGUAGE, Buffer, BufLen);
      ALocalInfo[1].Value := Buffer;  ALocalInfo[1].Title := '本地语言的英语名字 (Iso 639)';  GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_SABBREVLANGNAME, Buffer, BufLen);
      ALocalInfo[2].Value := Buffer;  ALocalInfo[2].Title := '本地语言的缩写名字 (Iso 639)';  GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_ICOUNTRY, Buffer, BufLen);
      ALocalInfo[3].Value := Buffer;  ALocalInfo[3].Title := '国家代码 (IBM code)';  GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_SCOUNTRY, Buffer, BufLen);
      ALocalInfo[4].Value := Buffer;  ALocalInfo[4].Title := '国家全代码';  GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_SABBREVCTRYNAME, Buffer, BufLen);
      ALocalInfo[5].Value := Buffer;  ALocalInfo[5].Title := '国家缩略代码 (Iso 3166)';  GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_SINTLSYMBOL, Buffer, BufLen);
      ALocalInfo[6].Value := Buffer;  ALocalInfo[6].Title := '国际货币符号 (Iso 4217)';  GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_SLIST, Buffer, BufLen);
      ALocalInfo[7].Value := Buffer;  ALocalInfo[7].Title := '列表分隔符';  GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_IMEASURE, Buffer, BufLen);
      ALocalInfo[8].Value := Buffer;  ALocalInfo[8].Title := '计量系统';
      case ALocalInfo[8].Value[1] of
      '0' : ALocalInfo[8].Value := '公制';
      '1' : ALocalInfo[8].Value := '英制';
      end;  GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_SDECIMAL, Buffer, BufLen);
      ALocalInfo[9].Value := Buffer;  ALocalInfo[9].Title := '小数点';  GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_IDIGITS, Buffer, BufLen);
      ALocalInfo[10].Value := Buffer;  ALocalInfo[10].Title := '小数位数';  GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_SCURRENCY, Buffer, BufLen);
      ALocalInfo[11].Value := Buffer;  ALocalInfo[11].Title := '本地货币符号';  GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_SMONDECIMALSEP, Buffer, BufLen);
      ALocalInfo[12].Value := Buffer;  ALocalInfo[12].Title := '货币小数点';  GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_SMONTHOUSANDSEP, Buffer, BufLen);
      ALocalInfo[13].Value := Buffer;  ALocalInfo[13].Title := '货币千位分隔符';  GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_ICURRDIGITS, Buffer, BufLen);
      ALocalInfo[14].Value := Buffer;  ALocalInfo[14].Title := '货币小数位数';  GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_ICURRENCY, Buffer, BufLen);
      ALocalInfo[15].Value := Buffer;  ALocalInfo[15].Title := '正货币模式';
      case ALocalInfo[15].Value[1] of
      '0': ALocalInfo[15].Value := '前缀, 无分隔符';
      '1': ALocalInfo[15].Value := '后缀, 无分隔符';
      '2': ALocalInfo[15].Value := '前缀, 1字符的. 作为分隔符';
      '3': ALocalInfo[15].Value := '后缀, 1字符的. 作为分隔符';
      end;  GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_INEGCURR, Buffer, BufLen);
      ALocalInfo[16].Value := Buffer;  ALocalInfo[16].Title := '负货币模式';
      case ALocalInfo[16].Value[1] of
      '0': ALocalInfo[16].Value := '$1.1)';
      '1': ALocalInfo[16].Value := '-$1.1';
      '2': ALocalInfo[16].Value := '$-1.1';
      '3': ALocalInfo[16].Value := '$1.1-';
      '4': ALocalInfo[16].Value := '(1.1$)';
      '5': ALocalInfo[16].Value := '-1.1$';
      '6': ALocalInfo[16].Value := '1.1-$';
      '7': ALocalInfo[16].Value := '1.1$-';
      '8': ALocalInfo[16].Value := '-1.1 $ ($前有空格)';
      '9': ALocalInfo[16].Value := '-$ 1.1 ($后有空格)';
      end;  GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_SDATE, Buffer, BufLen);
      ALocalInfo[17].Value := Buffer;  ALocalInfo[17].Title := '日期分隔符';  GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_STIME, Buffer, BufLen);
      ALocalInfo[18].Value := Buffer;  ALocalInfo[18].Title := '时间分隔符';  GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_STIMEFORMAT, Buffer, BufLen);
      ALocalInfo[19].Value := Buffer;  ALocalInfo[19].Title := '时间格式';  GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_SSHORTDATE, Buffer, BufLen);
      ALocalInfo[20].Value := Buffer;  ALocalInfo[20].Title := '短日期格式';  GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_IDATE, Buffer, BufLen);
      ALocalInfo[21].Value := Buffer;  ALocalInfo[21].Title := '短日期顺序';
      case ALocalInfo[21].Value[1] of
      '0': ALocalInfo[21].Value := '月-日-年';
      '1': ALocalInfo[21].Value := '日-月-年';
      '2': ALocalInfo[21].Value := '年-月-日';
      end;  GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_ILDATE, Buffer, BufLen);
      ALocalInfo[22].Value := Buffer;  ALocalInfo[22].Title := '长日期顺序';
      case ALocalInfo[22].Value[1] of
      '0': ALocalInfo[22].Value := '月-日-年';
      '1': ALocalInfo[22].Value := '日-月-年';
      '2': ALocalInfo[22].Value := '年-月-日';
      end;  GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_ITIME, Buffer, BufLen);
      ALocalInfo[23].Value := Buffer;  ALocalInfo[23].Title := '时间显示格式';
      case ALocalInfo[23].Value[1] of
      '0': ALocalInfo[23].Value := '上/下午 12小时格式';
      '1': ALocalInfo[23].Value := '24小时格式';
      end;  GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_ICENTURY, Buffer, BufLen);
      ALocalInfo[24].Value := Buffer;  ALocalInfo[24].Title := '年份格式';
      case ALocalInfo[24].Value[1] of
      '0': ALocalInfo[24].Value := '缩略的2位年份';
      '1': ALocalInfo[24].Value := '完整的4位年份';
      end; finally
      FreeMem(Buffer);
     end; //try
    end;
      

  3.   

    Const
         ENGLISH = (SUBLANG_ENGLISH_US shl 10) or LANG_ENGLISH;
         CHINESE = (SUBLANG_CHINESE_SIMPLIFIED shl 10) or LANG_CHINESE;
         TCHINESE =(SUBLANG_CHINESE_TRADITIONAL SHL 10) OR LANG_CHINESE;
      Begin 
       If SysLocale.DefaultLCID=CHINESE then
         ShowMessage('中文简体')
      Else
       If SysLocale.DefaultLCID=TCHINESE then
         ShowMessage('中文繁体')
      Else
       If SysLocale.DefaultLCID=English then
        ShowMessage('英文版');
     End;