【发布时间】:2009-11-29 01:13:41
【问题描述】:
我正在创建一个具有 3 种不同语言的应用程序:英语、西班牙语和法语。我已经用这 3 种语言创建了应用内购买,并在 iTunes 沙盒上为这 3 个商店创建了用户:法国、美国和西班牙。
在用户点击购买按钮之前,甚至在用户使用他的 iTunes 用户名和密码登录之前,我必须检索每个产品的价格。此检索是在应用程序开始时使用以下行完成的:
SKProductsRequest *request= [[SKProductsRequest alloc] initWithProductIdentifiers:IDobjects];
request.delegate = self;
[request start];
理论上,此代码应该检索所有对象的本地货币价格等。本地货币是指基于用户调整 iPhone 的语言,但实际上此代码总是检索美元价格?
我错过了什么?
另一点是:如果用户没有登录 iTunes,他/她将始终看到英文消息和美元价格。登录后,他将看到以他的语言显示的应用内对象的名称和以他的货币显示的价格,但窗口的其余部分将是英文。看下一张图片:
感谢您的帮助。
Caixa 是西班牙文的对象名称,0,79€ 是当地货币的正确价格,但窗口的其余部分是英文!?这个窗口应该完全是用户的语言!!!!!!
【问题讨论】:
-
我很困惑——你认为你怎么可能只找到一种“基于语言的货币”?!英语是指美元、加元、英镑、澳元还是...?法语是否暗示加元(在魁北克)、欧元(在法国)、瑞士法郎或...?西班牙语是否暗示比塞塔、美元(超过 4000 万拉丁裔居住在这里)、欧元(在西班牙)、智利比索或...?看来您要求的是不可能的事情:货币肯定是基于 country,而 not 是基于 language!
-
假设用户来自西班牙。他不会说英语。他的 iPhone 已针对西班牙进行了调整,他的语言已针对西班牙语进行了调整。他运行我的应用程序并看到消息:此应用程序内对象成本 0.99 美元。他看到这条消息是英文的。因为他不会说英语,所以他不知道信息在告诉你什么。他也不知道价格,因为他处理的是欧元。如果该地区是西班牙并且语言是西班牙语,则它必须是一种以欧元而非美元检索对象价格并以西班牙语而非英语显示来自商店的消息的方法。
标签: iphone iphone-sdk-3.0