iPhone / iOS: Как узнать, какую локализацию использует телефон во время выполнения?

Мне трудно локализовать приложение. Он должен быть локализован на фарси (иранский персидский). Мало того, он должен использовать солнечный календарь, когда fa_IR выбран в качестве локализации.

ОС имеет персидский календарь. Для меня нет проблем использовать его, но мне нужно знать, что была выбрана локализация fa_IR. Чтобы добавить оскорбление к травме, я не могу проверить эту локаль в США, поскольку кажется, что AT&T не позволяет ее как локализацию. Я должен отправить его Иран, который является королевской питой.

У меня есть дьявол времени, выясняя локализацию во время выполнения. Есть куча вещей для доступа к флагам пакета, но я не могу найти ничего для получения информации о времени выполнения.

Я чертовски зеленый в программировании iOS, поэтому мне все еще нужно определить, какой M для RTFM. Я искал документы со многими ключевыми словами, но безрезультатно.

может ли кто-нибудь помочь с тем, что кажется абсурдно простым вопросом?

2 ответов


NSLocale будет иметь необходимую информацию о локали. Обратите внимание, что классы foundation поддерживают предлагаемые параметры, такие как 24-часовые часы и сведения о локали.

NSLog(@"%@", [[NSLocale currentLocale] localeIdentifier]);

NSArray *localizations = [[NSBundle mainBundle] preferredLocalizations];
for (NSString *string in localizations) {
    NSLog(@"Localization: %@", string);
}

приведенный выше код должен быть полезен при поиске текущей локализации.

NSLog(@"%@", [[NSLocale currentLocale] localeIdentifier]);

NSLocale возвращает en_US, а NSBundle возвращает sv, что правильно для моего телефона.