Aptem Опубликовано 16 июня, 2014 Опубликовано 16 июня, 2014 Здравствуйте. Разработка на Delphi XE5. Как программно определить локаль, установленную на устройстве под управлением iOS? В Objective C это делается так: NSString *currentLanguage = [[NSLocale preferredLanguages] objectAtIndex:0]; Есть что-то подобное в Delphi? Спасибо.
0 Администраторы Brovin Yaroslav Опубликовано 16 июня, 2014 Администраторы Опубликовано 16 июня, 2014 Добрый день, Например так, если использовать кроссплатформенный сервис FM: uses FMX.Platform; {$R *.fmx} procedure TForm2.Button1Click(Sender: TObject); var LocaleService: IFMXLocaleService; LangID: string; begin if TPlatformServices.Current.SupportsPlatformService(IFMXLocaleService, IInterface(LocaleService)) then LangID := LocaleService.GetCurrentLangID; end; Либо, как вы заметили, можно этого добиться используя на прямую iOS API: var CurrentLocale: NSLocale; LanguageISO: NSString; begin CurrentLocale := TNSLocale.Wrap(TNSLocale.OCClass.currentLocale); LanguageISO := TNSString.Wrap(CurrentLocale.objectForKey((NSLocaleLanguageCode as ILocalObject).GetObjectID)); // <-- Здесь берем то, что нужно от локали Result := UTF8ToString(LanguageISO.UTF8String); end; Aptem 1
0 Aptem Опубликовано 17 июня, 2014 Автор Опубликовано 17 июня, 2014 Большое спасибо, Ярослав! То, что нужно. Воспользовался кроссплатформенным сервисом FM, так как приложение тоже кроссплатформенное. Brovin Yaroslav 1
0 Администраторы Brovin Yaroslav Опубликовано 17 июня, 2014 Администраторы Опубликовано 17 июня, 2014 Не за что, обращайтесь.
Вопрос
Aptem
Здравствуйте.
Разработка на Delphi XE5.
Как программно определить локаль, установленную на устройстве под управлением iOS?
В Objective C это делается так:
Есть что-то подобное в Delphi?
Спасибо.
3 ответа на этот вопрос
Рекомендуемые сообщения