ios – 在推送通知的横幅中更改警报语言

当我来到时,我正面临着改变旗帜中警戒语言的问题.其实我正在使用两种语言的应用程序.一个是英语,一个是挪威语.我从我的网络服务器端收到的推送方式,当push发生时,警报键中的字符串显示在横幅中,而您在应用程序之外.但是作为一个要求,如果我将语言从英语语言改为挪威语,那么当推出语言时,它的标语字符串也会变成挪威语.是否可能在我的最后,或者我必须改变它从服务器,当我改变语言.

任何建议都是有帮助的.

谢谢

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

本地化您的服务器中的消息

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

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

然后,您可以使用通知JSON有效载荷中的警报键,以相应的语言发送通知消息.

发送具有通知有效载荷的本地化字符串

您可以在有效载荷中发送本地化的字符串.警报键接受可用于发送本地化字符串的子定位键:

"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/change-language-of-alert-in-banner-of-push-notification

转载注明原文:ios – 在推送通知的横幅中更改警报语言