LoadLangFromStrings

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

http://blog.csdn.net/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()).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, );
buffer := StrAlloc(BufLen);
if GetLocaleInfo(UserLCID, LOCALE_SISO639LANGNAME, buffer, BufLen) <> then
Result := buffer
else
Result := 'en';
StrDispose(buffer); {$ENDIF} end;

delphi多语言的更多相关文章

  1. Delphi,C语言互通脚本引擎研究

    基于大神akuma的脚本引擎. 下面是demo

  2. 执行效率做比较,Go、python、java、c#、delphi、易语言等

    比较环境,在win7   64位,比较各种语言的整数型运算,下面的比较只作为单项比较.具体方式,40000*40000遍历相加.为了防止编译器优化,生成一个随机数. 1:c#,在NET2.0框架下作为 ...

  3. delphi 反射(原理)

    关于反射的用途是『降低模块间的耦合度』这个倒未必尽然 单就delphi来说,从实现上看,它的所谓反射是基于RTTI,而RTTI的出现按照官方的说法是为了实现RAD中窗体文件DFM的持久化而产生的,其实 ...

  4. Delphi OO

    深入Delphi编程(OOP) 日期:2007年11月9日 作者:左轻侯 人气: 2595 查看:[大字体 中字体 小字体] 刚刚接触的Delphi的朋友,可能最感兴趣的就是它丰富.强大的VCL(可视 ...

  5. Thrift是一款由Fackbook开发的可伸缩、跨语言的服务开发框架

    这段时间,一直在整理公司的内部 rpc 服务接口,面临的一个问题就是:由于公司内部的系统由几个不同的语言编写的.C# ,java,node.js 等,如何实现这些内部系统之间的接口统一调用,确实是比较 ...

  6. 高性能 TCP & UDP 通信框架 HP-Socket v3.3.1

    HP-Socket 是一套通用的高性能 TCP/UDP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++.C#.Del ...

  7. 高性能 TCP & UDP 通信框架 HP-Socket v3.2.3

    HP-Socket 是一套通用的高性能 TCP/UDP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++.C#.Del ...

  8. 高性能 TCP & UDP 通信框架 HP-Socket v3.2.2 正式发布

    HP-Socket 是一套通用的高性能 TCP/UDP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++.C#.Del ...

  9. 高性能 Socket 组件 HP-Socket v3.2.1 正式发布

    HP-Socket 是一套通用的高性能 TCP/UDP Socket 组件,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++.C ...

随机推荐

  1. NIO框架之MINA源码解析(五):NIO超级陷阱和使用同步IO与MINA通信

    1.NIO超级陷阱 之所以说NIO超级陷阱,就是因为我在本系列开头的那句话,因为使用缺陷导致客户业务系统瘫痪.当然,我对这个问题进行了很深的追踪,包括对MINA源码的深入了解,但其实之所以会出现这个问 ...

  2. NIO框架之MINA源码解析(四):粘包与断包处理及编码与解码

    1.粘包与段包 粘包:指TCP协议中,发送方发送的若干包数据到接收方接收时粘成一包,从接收缓冲区看,后一包数据的头紧接着前一包数据的尾.造成的可能原因: 发送端需要等缓冲区满才发送出去,造成粘包 接收 ...

  3. 指定分隔符连接数组元素join()

    join()方法用于把数组中的所有元素放入一个字符串.元素是通过指定的分隔符进行分隔的. 语法: arrayObject.join(分隔符) 参数说明: 注意:返回一个字符串,该字符串把数组中的各个元 ...

  4. js多次触发事件,在一定延迟内只执行一次 (事件累加)

    js多次触发事件,在一定延迟内只执行一次的案例: <!DOCTYPE html> <html> <head> <meta charset="UTF- ...

  5. [UE4]Transform镜面翻转

  6. C# 公共类

    https://github.com/Jimmey-Jiang/Common.Utility/tree/master/Utility%E5%9F%BA%E7%A1%80%E7%B1%BB%E5%A4% ...

  7. crm SDK 设置用户的上级

    /// <summary> /// 设置用户的上级 /// </summary> /// <param name="service">服务< ...

  8. SqlServer存储过程输出参数

    if exists(select 1 from sysobjects where name='P_PreOrderInfo') drop Procedure P_PreOrderInfo go Cre ...

  9. RocketMQ源码分析:(一)安装与案例演示

    环境: Windows 暂时理解的功能图,不定时改动: 1. 克隆rocketmq代码 git clone git@github.com:apache/rocketmq.git 2. 进入rocket ...

  10. Microsoft Visual Studio正在等待操作完成

    在编译项目的时候,有时会遇到 Microsoft Visual Studio正忙,结果就是半天没反应,要等待很长时间才能编译完成,在网上查了一下资料,微软官方是这样解释的: 阻止某些 devenv.e ...