在推送通知的标题中更改提醒语言
当推进到来的时候,面临在横幅的警告的语言的问题。 其实我正在用两种语言工作的应用程序。 一个是英语,二是挪威语。 我收到从我的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$@.";