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

luk*_*asx 5 iphone ios react-native expo

所以我有一个用react-native编写的应用程序,它使用expo,我希望我的应用程序只支持一种语言——波兰语。问题是一些内置组件未翻译,例如,当应用程序请求权限时,尽管手机的语言是波兰语,但它们是英语。仅iOS出现此问题,安卓没问题。

\n\n

我想我需要设置主要语言来完善,但在以下位置没有这样的选项:\niTunes Connect -> 我的应用程序 -> App Store -> 应用程序信息 -> 可本地化信息

\n\n

我还读过这篇文章:\n https://developer.apple.com/library/content/documentation/LanguagesUtilities/Conceptual/iTunesConnect_Guide/Capters/DisplayInMoreLanguages.html

\n\n

他们说,如果我无法选择我想要的语言:\n“那里\xe2\x80\x99s没有为该语言输入元数据”\n那么如何添加一个?

\n\n

我没有任何 iOS 开发经验。

\n\n

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

\n

小智 3

当然,您可以在 app.json 中进行。就这样(在示例中,我的应用程序的真实 json,西班牙语)。

\n

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

\n
        "CFBundleLocalizations" : ["es"],\n        "CFBundleDevelopmentRegion" : "es",\n
Run Code Online (Sandbox Code Playgroud)\n

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

\n

在世博会属性中添加以下内容:

\n
    "locales": {\n      "es": "./locales/es.json"\n    }\n
Run Code Online (Sandbox Code Playgroud)\n

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

\n
{\n}\n
Run Code Online (Sandbox Code Playgroud)\n

但如果您使用多种语言,请注意:

\n
    \n
  1. 语言环境中的一个条目和每种语言的一个 json。
  2. \n
  3. 使用名称、描述和权限的区域设置信息填充区域设置 json:
  4. \n
\n
{\n    "NSLocationWhenInUseUsageDescription": "Necesitamos saber tu ubicaci\xc3\xb3n para poder mostrarte los eventos m\xc3\xa1s cercanos a ti. Nunca la compartiremos con nadie."\n}\n
Run Code Online (Sandbox Code Playgroud)\n