当推送到来时,我面临着更改横幅中提醒的语言的问题。实际上,我正在开发一个有两种语言的应用程序。一个是英语,第二个是挪威语。我从我的web服务器端收到的推送,以及它在alert键中有什么字符串,当推送到来时,你在应用程序之外时,它会显示在横幅中。但是作为一个要求,我们希望如果我将语言设置从英语更改为挪威语,那么当推送到来时,其横幅的警告字符串也将更改为挪威语。是否可以在我这一端,或者我必须改变它从服务器每当我改变语言?
发布于 2013-09-04 17:30:04
在iOS推送通知中显示本地化文本有两种方式:
本地化服务器中的邮件
在这种情况下,您必须将设备语言发送到服务器。需要添加到iOS应用程序中的代码如下所示:
NSString *preferredLanguage = [[NSLocale preferredLanguages] objectAtIndex:0];
const char *langStr = [preferredLanguage UTF8String];
[self sendCurrentLanguage:langStr]; // Method that communicates with your server然后,您可以使用通知JSON有效负载中的alert键,以适当的语言发送通知消息。
使用通知有效负载发送本地化字符串
您可以在有效负载中发送本地化字符串。alert密钥接受一个子loc-key密钥,您可以使用该密钥发送本地化字符串:
"alert" : {
"loc-key" : "My Localized String",
...
}然后,在对应的语言标识符内的Localizable.strings文件中,添加以下内容:
"My Localized String" = "The localized string in the language you want.";如果需要传递参数来构建最终的本地化字符串,也可以在通知有效负载中将其作为loc-args JSON数组传递:
"alert" : {
"loc-key" : "My Localized String",
"loc-args" : [ "First argument", "Second argument" ],
...
}而且,在你的Localizable.strings中
"My Localized String" = "The localized string with first argument %@, and second argument %@."或者,如果您需要更改位置:
"My Localized String" = "The localized string with second argument %2$@, and first argument %1$@.";https://stackoverflow.com/questions/18609923
复制相似问题