推送通知显示本地化常量而不是消息

4

我有一个严重的问题,在网络上找不到任何相关的解答。当我发送一条本地化消息时,它只能在瑞典语中起作用,而英语则不行。我还发现另一个问题,即它只能在他们的瑞典版iPhone 4上显示常数。我也测试了iPhone 3g,发现和我的iPhone 4一样,只能用瑞典语,而不能使用英语。

在显示English版 iPhone 4 的弹出窗口时,我只能得到我从 Windows 服务器推送的通知中提供的本地化键。

以下是我从 Windows 服务器推送的 C# 通知字符串。我的 iPhone 应用程序的额外参数在任何语言下都正常工作,因此似乎与推送的服务器端部分无关。

int total = notification.AmountScheduledEvent + notification.AmountCourseResult + notification.AmountExam;
string locKey = (total > 1 ? "PushMessageMultiple" : "PushMessageSingle");
string msg = "{\"aps\":{"+
                  "\"alert\": {"+
                      "\"loc-key\":\"" + locKey + "\","+
                      "\"loc-args\":[\"" + total + "\"]},"+
                  "\"badge\":" + total + ","+
                  "\"sound\":\"default\"},"+
              "\"amountSchedule\":" + notification.AmountScheduledEvent + ","+
              "\"amountCourseResult\":" + notification.AmountCourseResult + ","+
              "\"amountExam\":" + notification.AmountExam + "}";

在我的 sv.lproj 的 Localizable.strings 文件中:
/* push stuff */
"PushMessageMultiple" = "%@ nya händelser";
"PushMessageSingle" = "1 ny händelse";

在我的en.lproj的Localizable.strings文件中:
/* push stuff */
"PushMessageMultiple" = "%@ new events";
"PushMessageSingle" = "1 new event";

这是一个带有工作通知的屏幕截图(瑞典语)。以下是链接:http://img267.imageshack.us/i/img0014b.png/ 这是一个无法工作的通知屏幕截图(英语)。以下是链接:http://img696.imageshack.us/i/img0015i.png/ 你有什么想法,为什么我只收到了一个常量而不是一条消息?

尝试使用 NSLocalizedString(@"PushMessageMultiple",@""); - Mats Stijlaart
它可以工作,我在瑞典语中得到了"%@ nya händelser",在英语中得到了"%@ new events"。 - Daverix
然后我会将其翻译成中文并作为答案发布。 - Mats Stijlaart
1
不,你误解了我的意思。NSLocalizedString确实可以工作,但当接收到IOS处理的远程推送通知时,它就无法工作。 - Daverix
这是一个好问题。你解决了吗?英语是你的基本本地化吗? - SimplGy
1个回答

0

尝试使用:

NSLocalizedString(@"PushMessageMultiple",@"");

这将动态获取正确的字符串。


是的,但现在问题是当您在IOS中收到通知时,它仍然无法工作。我从未在应用程序内部遇到任何问题。只是由于某种原因它无法从Localizable.strings文件中检索消息。 - Daverix
你从服务器获得一个字符串,想把这个消息转换成正确的本地化格式? - Mats Stijlaart
1
是的,loc-key和loc-args会在手机上转换为本地化字符串。有关远程推送通知工作原理的信息,请参见以下链接: http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/ApplePushService/ApplePushService.html - Daverix
我们是否可以在两种语言中提供本地化警报,并根据iPad的语言显示正确的文本通知? - Shajo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接