Принудительное уведомление об изменении языка iOS

Мое приложение локализуется, и мы занимаемся диалектами. (т.е. разница между испанским и испанским в peurto rico) Я заметил, что простое изменение региона не приводит к отправке уведомления в приложение, которое вызовет локализацию... только изменение языка вызывает это уведомление.

В моем делегате приложения я хотел бы проверить, изменился ли регион в моем методе applicationDidBecomeActive, и если это так, я бы хотел отправить уведомление, которое iOS выдвинула бы, если бы язык изменился... это возможно?

2 ответа

Решение

Каждый раз, когда ваше приложение возвращается на передний план (а не когда оно становится активным), получите текущую локаль. Сравните последнюю локаль с предыдущей. Если новый и предыдущий язык достаточно различаются для вас, опубликуйте уведомление.

Пример - поездка из Испании в Мексику должна изменить локаль с es_ES в es_MX,

Редактировать:

Для размещения уведомления вы можете сделать:

[[NSNotificationCenter defaultCenter] postNotificationName:NSCurrentLocaleDidChangeNotification object:nil];

Чтобы программно опубликовать уведомление:

[[NSNotificationCenter defaultCenter] postNotificationName:NSCurrentLocaleDidChangeNotification object:self userInfo:nil];
Другие вопросы по тегам