IPHONE(应用内购买):我需要做什么才能获得当地货币的价格

IPHONE(应用内购买):我需要做什么才能获得当地货币的价格,iphone,iphone-sdk-3.0,Iphone,Iphone Sdk 3.0,我正在用3种不同的语言创建一个应用程序:英语、西班牙语和法语。我用这3种语言创建了应用内购买,并在itunes沙盒上为这3家商店创建了用户:法国、美国和西班牙 在用户可以点击购买按钮之前,甚至在用户使用itunes用户名和密码登录之前,我必须检索每个产品的价格。此检索在应用程序开始时使用以下行完成: SKProductsRequest *request= [[SKProductsRequest alloc] initWithProductIdentifiers:IDobjects]; reque

我正在用3种不同的语言创建一个应用程序:英语、西班牙语和法语。我用这3种语言创建了应用内购买,并在itunes沙盒上为这3家商店创建了用户:法国、美国和西班牙

在用户可以点击购买按钮之前,甚至在用户使用itunes用户名和密码登录之前,我必须检索每个产品的价格。此检索在应用程序开始时使用以下行完成:

SKProductsRequest *request= [[SKProductsRequest alloc] initWithProductIdentifiers:IDobjects];
request.delegate = self;
[request start];
理论上,此代码应该检索所有对象的本地货币价格。我所说的本地货币是指根据用户调整iPhone的语言,但实际上,这段代码总是以美元为单位检索价格

我错过了什么

另一点是:如果用户没有登录iTunes,他/她将始终看到英文信息和美元价格。登录后,他将看到应用程序内对象的名称(使用他的语言)和价格(使用他的货币),但窗口的其余部分将使用英语。请参见下图:

谢谢你的帮助


Caixa是对象的西班牙语名称,0,79欧元是当地货币的正确价格,但窗口的其余部分是英语!?此窗口应完全使用用户语言

使用本地化字符串怎么样?因此,与@you want buy…”不同的是,您可以使用类似于:kPurchasePromptMessage的内容,它将根据iphone上使用的语言返回不同的字符串。

问题几天前就消失了。看来这是苹果内部的东西。

因此:

  • 您在“管理应用内购买管理”中为每个bundleid添加了语言
  • 为该国家/地区创建测试用户
  • 在应用程序中测试您的应用程序内购买
  • 输入该国家/地区的新测试用户

  • 以下是苹果文档中的代码:

    NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
    [numberFormatter setFormatterBehavior:NSNumberFormatterBehavior10_4];
    [numberFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
    [numberFormatter setLocale:product.priceLocale];
    NSString *formattedString = [numberFormatter stringFromNumber:product.price];
    

    我很困惑——你认为你怎么可能只找到一种“基于语言的货币”?!英语是指美元、疯子、英镑、澳元还是。。。?法语是指疯子(魁北克)、欧元(法国)、瑞士法郎还是。。。?西班牙语是指比塞塔、美元(超过4000万拉丁美洲人居住在这里)、欧元(在西班牙)、智利比索还是。。。?看来你是在要求一个不可能的结果:货币当然是基于国家,而不是语言!假设用户来自西班牙。他不会说英语。他的iPhone已针对西班牙进行了调整,并将其语言改为西班牙语。他运行我的应用程序并看到消息:此应用程序内对象的成本为0.99美元。他用英语看到了这条信息。因为他不会说英语,所以他不知道信息在告诉你什么。他也不知道价格,因为他经营的是欧元。如果地区是西班牙,语言是西班牙语,那么这一定是一种以欧元(而不是美元)获取物品价格的方法,并且可以用西班牙语(而不是英语)显示商店的信息。这就是我在这里提到的。虽然我想知道你是否不只是指定一个美元的价格,然后苹果以某种方式处理转换?他现在想要这样做的方式似乎是他必须去指定每种货币的价格,这似乎太乏味了。