我需要像Windows返回的区域设置ID
GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_ILANGUAGE, PChar(locale), 256)
适用于iOS和Android。我需要为Sql Server整理信息(LCID)。感谢。
答案 0 :(得分:4)
您可以使用TPlatformServices
和IFMXLocaleService
界面访问设备区域设置服务。
uses
FMX.Platform;
...
...
var
LService: IFMXLocaleService;
LangID : string;
begin
if TPlatformServices.Current.SupportsPlatformService(IFMXLocaleService, IInterface(LService)) then
LangID := LService.GetCurrentLangID;
end;
答案 1 :(得分:1)
您的功能GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_ILANGUAGE, PChar(locale), 256)
将返回Windows specific LCID code number。
例如,对于美国英语,它将返回0409
十六进制代码,其中09
标记主要语言ID(en),04
是排序顺序标识符。 Windows Locale Identifiers Format
问题是你无法在其他平台上获得这样的数字,你必须创建自定义了望表来映射平台区域设置(你可以使用@RRUZ答案找到平台区域设置)到Windows。
您可以获得的最佳功能是OS X,您可以使用以下代码获取主Windows区域设置ID:
uses
Macapi.Foundation;
var
WinID: integer;
WinID := TNSLocale.OCClass.windowsLocaleCodeFromLocaleIdentifier(TNSLocale.Wrap(TNSLocale.OCClass.currentLocale).localeIdentifier);
如果美国英语以上功能将返回0009
十六进制代码。