Принудительное уведомление об изменении языка iOS
Мое приложение локализуется, и мы занимаемся диалектами. (т.е. разница между испанским и испанским в peurto rico) Я заметил, что простое изменение региона не приводит к отправке уведомления в приложение, которое вызовет локализацию... только изменение языка вызывает это уведомление.
В моем делегате приложения я хотел бы проверить, изменился ли регион в моем методе applicationDidBecomeActive, и если это так, я бы хотел отправить уведомление, которое iOS выдвинула бы, если бы язык изменился... это возможно?
2 ответа
Каждый раз, когда ваше приложение возвращается на передний план (а не когда оно становится активным), получите текущую локаль. Сравните последнюю локаль с предыдущей. Если новый и предыдущий язык достаточно различаются для вас, опубликуйте уведомление.
Пример - поездка из Испании в Мексику должна изменить локаль с es_ES
в es_MX
,
Редактировать:
Для размещения уведомления вы можете сделать:
[[NSNotificationCenter defaultCenter] postNotificationName:NSCurrentLocaleDidChangeNotification object:nil];
Чтобы программно опубликовать уведомление:
[[NSNotificationCenter defaultCenter] postNotificationName:NSCurrentLocaleDidChangeNotification object:self userInfo:nil];