在我让APNS向设备发送消息之前,我想要本地化的消息字符串。我希望我能看到json有效负载本身让我理解结构而不是解析它的设备。但无论如何,我如何使用loc_key和loc_args参数?从我发现的文档:
LOC-键 串 Localizable.strings文件中用于当前本地化的警报消息字符串的键(由用户的语言首选项设置)。可以使用%@和%n $ @说明符格式化键字符串,以获取loc-args数组中指定的变量。有关详细信息,请参阅本地化格式化字符串。
loc-args strings of strings变量字符串值代替 loc-key中的格式说明符。请参阅本地化格式化字符串 更多信息。
并且官方文档是here
我需要一个如何本地化字符串以及什么是loc_args的具体示例?
我只是在这里猜测,但如果我有一个像这样的本地化字符串: mystring =“很酷的本地化消息” 那么loc_key将是“mystring”,是吗?
答案 0 :(得分:3)
loc-key是一个字符串,需要匹配应用程序包内Localizable.strings文件中的键。例如,如果loc键是“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";
答案 1 :(得分:2)
e.g。如果loc_key=XYZ
,那么应用的可本地化文件中必须有一个条目"XYZ"="translated XYZ";
。
stringWithFormat:
例如loc_args=["DOMI", "ME"]
插入已翻译的XYZ,例如%@ is %@
会导致"DOMI is ME"