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
, что правильно для моего телефона.