delphi多语言

LoadLangFromStrings

http://docwiki.embarcadero.com/Libraries/Berlin/en/FMX.Types.TLang

http://blog.youkuaiyun.com/pcplayer/article/details/78152471

procedure TForm7.Button1Click(Sender: TObject);
var
  list: TStringList;
begin
  list := TStringList.Create;
  list.LoadFromFile('cn.txt');
  LoadLangFromStrings(list);
  list.Free;
end;

procedure TForm7.Button2Click(Sender: TObject);
var
  list: TStringList;
begin
  list := TStringList.Create;
  list.LoadFromFile('en.txt');
  LoadLangFromStrings(list);
  list.Free;
end;

cn.txt

Button1=开始
Button2=结束
RadioButton1=性别

 

en.txt

Button1=start
Button2=end
RadioButton1=option

 

 

//没找到下文的出处和原作者。暂时记录.

  // uses FMX.Platform{$IFDEF MSWINDOWS}, WinAPi.Windows{$ENDIF}; {$R *.fmx}
  // 以下这个函数,获取当前操作系统的语言设置。  比如 Windows 底下,语言为中文,返回 Zh
  // 这个函数支持各种操作系统。

end;

function GetOSLangID: String; {$IFDEF MACOS}var
  Languages: NSArray;
begin
  Languages := TNSLocale.OCClass.preferredLanguages;
  Result := TNSString.Wrap(Languages.objectAtIndex(0)).UTF8String; {$ENDIF}{$IFDEF ANDROID}var
    LocServ: IFMXLocaleService;
  begin
    if TPlatformServices.Current.SupportsPlatformService(IFMXLocaleService, IInterface(LocServ)) then
      Result := LocServ.GetCurrentLangID; {$ENDIF}{$IFDEF MSWINDOWS}var
      buffer: MarshaledString;
      UserLCID: LCID;
      BufLen: Integer;
    begin
      // defaults
      UserLCID := GetUserDefaultLCID;
      BufLen := GetLocaleInfo(UserLCID, LOCALE_SISO639LANGNAME, nil, 0);
      buffer := StrAlloc(BufLen);
      if GetLocaleInfo(UserLCID, LOCALE_SISO639LANGNAME, buffer, BufLen) <> 0 then
        Result := buffer
      else
        Result := 'en';
      StrDispose(buffer); {$ENDIF} end;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值