在 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$@.";