在推送通知的标题中更改提醒语言

当推进到来的时候,面临在横幅的警告的语言的问题。 其实我正在用两种语言工作的应用程序。 一个是英语,二是挪威语。 我收到从我的networking服务器端的推,以及它在alert键中的string是否显示在横幅中,当推到来,你在应用程序之外。 但作为一个要求,我们希望如果我把语言从英语变成挪威语,那么当推动到来的时候,旗帜的警戒string也会变成挪威语。 是否有可能在我的最后,或者我必须改变它从服务器,只要我改变语言。

任何build议都会有所帮助。

谢谢

在iOS中的推送通知中有两种显示本地化文本的方法:

在服务器中本地化消息

在这种情况下,您必须将设备语言发送到您的服务器。 您需要添加到您的iOS应用程序的代码将类似于以下内容:

 NSString *preferredLanguage = [[NSLocale preferredLanguages] objectAtIndex:0]; const char *langStr = [preferredLanguage UTF8String]; [self sendCurrentLanguage:langStr]; // Method that communicates with your server 

然后,可以使用通知JSON有效内容中的alert密钥,以适当的语言发送通知消息。

发送包含通知有效负载的本地化string

您可以发送有效负载中的本地化string。 alert密钥接受可用于发送本地化string的子loc-key密钥:

 "alert" : { "loc-key" : "My Localized String", ... } 

然后,在对应语言标识符的Localizable.strings文件中添加以下内容:

 "My Localized String" = "The localized string in the language you want."; 

如果您需要传递参数来构build最终的本地化string,则可以将其作为通知有效内容中的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$@.";