Локализация в уведомлениях IOS?
-
25-09-2019 - |
Вопрос
У меня приложение хорошо работает, и он использует локальные уведомления.
Теперь я решил интернационализировать приложение сейчас и иметь все, что все работает просто, кроме уведомлений, которые были установлены на языке перед изменением языка на устройстве.
Я заполняю сообщения в уведомлении из массива, который содержит локализованные строки, поэтому я подумал, что, когда пользователь изменяет язык устройства, строка в уведомлении также изменится, но я ошибался.
Как лучше всего решать эту проблему? Должен ли мой текст NSString также быть NSLOCalizationStringString?
Мой код уведомления:
UILocalNotification *localNotif = [[UILocalNotification alloc] init];
if (localNotif == nil)
return;
localNotif.fireDate = [alertTimes objectAtIndex:i];
localNotif.timeZone = [NSTimeZone defaultTimeZone];
NSString *text = [alertText objectAtIndex:i];
// Notification details
localNotif.alertBody = text;
// Set the action button
localNotif.alertAction = @"View";
localNotif.soundName = UILocalNotificationDefaultSoundName;
localNotif.applicationIconBadgeNumber = 1;
// Specify custom data for the notification
NSDictionary *infoDict = [NSDictionary dictionaryWithObject:@"someValue" forKey:@"someKey"];
localNotif.userInfo = infoDict;
// Schedule the notification
[[UIApplication sharedApplication] scheduleLocalNotification:localNotif];
[localNotif release];
Решение
Должен ли мой текст NSString также быть NSLOCalizationStringString?
Да, я бы это сделал.
Заменять [alertTimes objectAtIndex:i]
с участием NSLocalizedString(@"alertTimes",[alertTimes objectAtIndex:i])
. Отказ Я предполагаю, что вы храните строки в alertTimes
Массив, который соответствует вашей локализованной строке.