Вопрос

У меня приложение хорошо работает, и он использует локальные уведомления.

Теперь я решил интернационализировать приложение сейчас и иметь все, что все работает просто, кроме уведомлений, которые были установлены на языке перед изменением языка на устройстве.

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

Как лучше всего решать эту проблему? Должен ли мой текст 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 Массив, который соответствует вашей локализованной строке.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top