Pregunta

Tengo mi aplicación funcionando muy bien y utiliza notificaciones locales.

he decidido internacionalizar la aplicación ahora y tener todo funcionando muy bien, excepto las notificaciones que se establecieron en un idioma antes de cambiar el idioma en el dispositivo.

Me pueblan los mensajes en la notificación de una matriz que contiene las cadenas localizadas, por lo que pensé que cuando el usuario cambia el idioma del dispositivo en la cadena de la notificación también cambia, pero estaba equivocado.

La mejor manera de abordar esta cuestión? En caso de que mi texto NSString también ser NSLocalizationString?

Mi código de notificación:

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];
¿Fue útil?

Solución

  

Debe mi texto NSString también ser NSLocalizationString?

Sí, lo haría.

Reemplazar [alertTimes objectAtIndex:i] con NSLocalizedString(@"alertTimes",[alertTimes objectAtIndex:i]). Estoy asumiendo que el almacenamiento de las cadenas de la matriz alertTimes correspondientes a su cadena localizada.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top