使用react-native和expo为iOS应用程序设置不同的语言

时间:2017-08-30 13:38:01

标签: ios iphone react-native expo

所以我有一个用react-native编写的应用程序,它使用expo,我希望我的应用程序只支持一种语言 - 擦亮。问题是一些内置组件没有被翻译,例如当应用程序要求权限时,尽管电话语言很好,但它们仍然是英语。问题只发生在iOS上,android很好。

我认为我需要将主要语言设置为波兰语,但在以下方面没有这样的选项: iTunes Connect - >我的应用 - > App Store - >应用信息 - >可本地化的信息

我也读过这篇文章: https://developer.apple.com/library/content/documentation/LanguagesUtilities/Conceptual/iTunesConnect_Guide/Chapters/DisplayInMoreLanguages.html

他们说如果我不能选择我想要的语言: "没有为该语言输入元数据" 那么如何添加一个?

我没有任何iOS开发经验。

我有什么想法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

好的,您可以在app.json上。就这样(在示例中,我的应用的真实json是西班牙语)。

在expo.ios.infoPlist属性中,只需添加:

        "CFBundleLocalizations" : ["es"],
        "CFBundleDevelopmentRegion" : "es",

请注意CFBundleLocalizations是一个数组,因此您可以添加几种语言。

在expo属性中添加以下内容:

    "locales": {
      "es": "./locales/es.json"
    }

最后,使用一个空的json创建./locales/es.json(请记住,这是我的西班牙语案例,只需将“ es”改为“ fr”,“ de” ...)即可。

{
}

但是,如果您使用的是不止一种语言,请注意:

  1. 在语言环境中只有一个条目,每种语言都有一个json。
  2. 使用名称,描述和权限的语言环境信息填充语言环境json:
{
    "NSLocationWhenInUseUsageDescription": "Necesitamos saber tu ubicación para poder mostrarte los eventos más cercanos a ti. Nunca la compartiremos con nadie."
}