Перейти к содержанию
Fire Monkey от А до Я
  • 0

Как определить локаль, установленную на устройстве iOS?


Aptem

Вопрос

Здравствуйте.

 

Разработка на Delphi XE5.

 

Как программно определить локаль, установленную на устройстве под управлением iOS?

 

В Objective C это делается так:

NSString *currentLanguage = [[NSLocale preferredLanguages] objectAtIndex:0];

Есть что-то подобное в Delphi?

 

Спасибо.

Ссылка на комментарий

Рекомендуемые сообщения

  • 0
  • Администраторы

Добрый день,

 

Например так, если использовать кроссплатформенный сервис 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;
Ссылка на комментарий
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...