如何从react-native-iap获取本地化IAP商品名称?
React Native IAP 11.0.4 本地化商品标题/描述无法获取的解决方法
已在Google Play和App Store完成IAP商品的本地化配置,但调用getProducts时仅价格显示本地化格式,标题、描述仍为英文。以下是针对性的解决技巧:
问题重现
使用代码:
import { getProducts } from 'react-native-iap' ... const productIds = ['productid12345'] const products = await getProducts({skus: productIds}) console.log(products)
返回结果(仅价格本地化,标题/描述为英文):
{ "description": "Some description in english :(", "name": "English name :(", "oneTimePurchaseOfferDetails": { "formattedPrice": "100,00 Kč", "priceAmountMicros": "100000000", "priceCurrencyCode": "CZK" }, "productId": "my.product.id.12345", "productType": "inapp", "title": "title only in English :(" }
商店配置情况:
Google Play本地化配置截图:已设置对应语言的商品标题和描述
App Store本地化配置截图:已完成商品的多语言内容配置
解决技巧
1. 验证设备系统语言/地区设置
IAP商品的本地化内容是根据设备当前的系统Locale返回的,需确保设备语言和地区切换到你配置的目标区域(比如示例中的捷克语+CZK地区),而非默认的英文环境。
2. 商店端内容发布状态检查
- Google Play:确保商品的本地化内容已发布到正式版或测试版渠道,草稿状态的本地化信息不会被返回;测试时使用已加入测试名单的账号,且Play Store切换到对应地区。
- iOS:确认App Store Connect中的本地化内容已提交并通过审核,未发布的内容无法生效;使用TestFlight构建包进行测试,而非本地调试包。
3. 应用端配置补充
- iOS:在项目
Info.plist中添加目标语言到CFBundleLocalizations数组,比如添加cs(捷克语),确保应用支持对应语言的本地化。 - Android:检查项目
res目录是否包含对应语言的资源文件夹(如values-cs),避免应用强制固定语言。
4. react-native-iap调用优化
- 尝试显式传递
language参数(11.x版本支持),指定目标语言代码:const products = await getProducts({ skus: productIds, language: 'cs' // 替换为你的目标语言代码 }); - 若仍无效果,可尝试重新初始化IAP模块后再调用
getProducts,确保模块正确读取系统Locale:import { initConnection, getProducts } from 'react-native-iap' // 先初始化连接 await initConnection() const products = await getProducts({skus: productIds})
5. 缓存清理
- 卸载重装应用,清除IAP商品信息的本地缓存;
- Android端清除Google Play Store缓存,iOS端退出App Store账号后重新登录测试。
注意事项
价格本地化正常说明IAP渠道连接正常,问题集中在语言Locale传递或商店端内容发布环节;商店端发布本地化内容后可能存在1-2小时的生效延迟,需耐心等待。
内容的提问来源于stack exchange,提问作者Babu
相关产品推荐
相关产品推荐

