iOS - APNS 如何在 payload 中使用 loc_key

iOS - APNS how to use loc_key in payload

在让 APNS 向设备发送消息之前,我有一个要本地化的消息字符串。我希望我能看到 json 有效载荷本身,让我理解结构,而不是设备为我解析它。但无论如何,我如何使用 loc_key 和 loc_args 参数?从我发现的文档中:

loc-key string A key to an alert-message string in a Localizable.strings file for the current localization (which is set by the user’s language preference). The key string can be formatted with %@ and %n$@ specifiers to take the variables specified in the loc-args array. See Localized Formatted Strings for more information.

loc-args array of strings Variable string values to appear in place of the format specifiers in loc-key. See Localized Formatted Strings for more information.

官方文档是here

我需要一个关于如何本地化字符串以及什么是 loc_args 的具体示例?

我只是在猜测,但如果我有一个像这样本地化的字符串: 我的字符串="cool localized message" 那么 loc_key 将是 "mystring",对吗?

如果有 loc 键,loc_key 指的是可本地化文件中的键...

例如如果 loc_key=XYZ,则应用程序的可本地化文件中必须有条目 "XYZ"="translated XYZ";

loc_args 是一个字符串数组,将被插入到翻译后的字符串中,就好像您使用了 stringWithFormat:

例如 loc_args=["DOMI", "ME"] 插入翻译后的 XYZ,如 %@ is %@ 结果 "DOMI is ME"

loc-key 是一个字符串,需要与应用程序包内的 Localizable.strings 文件中的键匹配。例如,如果 loc-key 是 "my-push.hello-world" 并且您的 Localizable.strings 文件中有以下行:

"my-push.hello-world" = "Hello, World!";

显示给用户的推送消息将显示为 "Hello, World"。

log-args 是将在消息中替换的字符串,就像您在 [NSString stringWithFormat:@"blabla %@"];

中那样

苹果的例子是这样的:

推送通知负载:

"alert" : { 
    "loc-key" : "GAME_PLAY_REQUEST_FORMAT",
    "loc-args" : [ "Jenna", "Frank"]
}

Localizable.strings内容:

"GAME_PLAY_REQUEST_FORMAT" = "%@ and %@ have invited you to play Monopoly";