在Xcode中更改开发语言

100

我需要将西班牙语设置为iOS应用程序的开发语言。我已经在使用Xcode 6,并且我将应用程序的Info.plist(CFBundleDevelopmentRegion)中的“Localization native development region”条目从“en”更改为“es”。但是,在Project > Info > Localizations中,英语仍然设置为开发语言。

信息属性列表键参考中所述,“CFBundleDevelopmentRegion”指定默认语言。我需要将西班牙语设置为默认语言,我漏掉了什么?

谢谢

6个回答

126

以下是如何完成此操作的步骤:

  1. 首先添加想要作为基础语言的语言。请取消勾选 Xcode 提供的所有需要本地化的文件。
  2. Info.plist 中,将开发区域更改为您希望成为基础语言的语言代码。请注意,该属性的命名方式有点不准确,因为其值应该是语言代码(具有可选的国家代码),而不是区域或国家代码。
  3. 关闭 Xcode 中的项目。在另一个代码编辑器中,打开 projectname.xcodeproj/project.pbxproj 并搜索 developmentRegion。您应该会看到一行类似于 developmentRegion = English; 的代码。将其更改为与您在 Info.plist 文件中放置的同一语言相对应。
  4. 重新打开 Xcode 中的项目。检查所有可本地化的文件旁边的复选框以生成本地化资源。请注意,对于故事板和 xib,Xcode 可能会创建一个故事板而不是字符串文件。如果出现这种情况,请将文件类型更改为字符串文件。

以下是我使用 fr 作为基础语言的结果示例:

Project info

File info


3
你把这一行改成了 developmentRegion = francais 还是 developmentRegion = fr - Flimm
2
这里你想使用的是fr。 - lensovet
3
请注意,您可能还需要将您的语言代码添加到.pbxproj文件中的“knownRegions”列表中,以便该属性显示在项目设置下。 - Patrick Pijnappel
1
除了@PatrickPijnappel指出的之外,我可以说只需将您的语言代码添加到“knownRegions”列表中即可使其出现在本地化列表中,无需进行第一步,这至少在Xcode 8.3.2上是不可能的,而不检查至少一个文件,因此向您的项目添加可能不需要的本地化字符串文件。 - Cristina De Rito
3
仅澄清一下。developmentRegion 必须设置为 fr 而不是 francais。原因:project.pbxproj 的 developmentRegion 会作为 export DEVELOPMENT_LANGUAGE=fr 传递给目标,而这个值通常被用作 Info.plist 中的 <key>CFBundleDevelopmentRegion</key<string>$(DEVELOPMENT_LANGUAGE)</string>,而且 CFBundleDevelopmentRegion 文档中说它应该采用 ISO 639-1 或 ISO 639-2 格式 https://developer.apple.com/documentation/bundleresources/information_property_list/cfbundledevelopmentregion。因此,'fr' 是正确的,而 'francais' 不是。 - nacho4d
显示剩余9条评论

95

针对Xcode 9至13版本:

关闭Xcode。

  1. 在文本编辑器中打开您的project.pbxproj文件。
  2. 查找developmentRegion并设置其值(例如,西班牙语为es,法语为fr等)。
  3. 查找knownRegions并将新语言添加到列表中。

打开Xcode:您的项目信息现在应该显示语言名称并在旁边带有“Development Language”字样。


8
查找项目的 .pbxproj 文件:https://dev59.com/XHA75IYBdhLWcg3w4tR7#3054073 - Josselin
2
不需要关闭Xcode,至少在Xcode 11中是这样的。 - Snowy_1803
如何在App Store中添加多种语言作为应用程序语言?例如,我的已发布的应用程序只显示英语,但我想添加德语作为应用程序语言。 - David
@David,这是你可以在App Store Connect上完成的事情。 - ahbou
谢谢你的答案@ahbou。但我找不到任何地方可以这样做。你能指导我吗? - David
@David,你需要将这些语言添加到你的项目中。在文件导航器中选择该项目,在文档大纲中再次选择它,然后转到第一个选项卡以添加更多本地化内容。 - lensovet

41

在您的项目.xcodeproj文件中,搜索字符串developmentRegion。目前应该是“英语”。如果您将其更改为“西班牙语”,只要将“西班牙语”添加到列表中,Xcode 6就应该将西班牙语识别为项目的默认本地化语言,并显示在“Info”选项卡中。

您可以在http://eschatologist.net/blog/?p=224了解更多关于此主题的信息。


1
谢谢。我刚刚按照您的说明操作了一遍,现在在“信息”>“本地化”中将西班牙语设置为开发目标。然而,如果我将设备的语言更改为我未在本地化中定义的语言(比如说法语,因为我只定义了英语和西班牙语的本地化),那么我得到的应用程序仍然是英文本地化的,而不是我期望的西班牙语... - AppsDev
该设备可能设置了语言回退,优先使用英语而不是西班牙语。以下是有关应用程序包如何搜索本地化内容的一些见解:https://developer.apple.com/library/ios/documentation/CoreFoundation/Conceptual/CFBundles/AccessingaBundlesContents/AccessingaBundlesContents.html#//apple_ref/doc/uid/10000123i-CH104-SW7 - Elwisz
1
如果想要更改默认语言,并且您的应用程序已经在商店中,请不要忘记在iTunes Connect中也进行更改。 - Nat
在设备的“语言和地区”设置中,点击右上角的“编辑”按钮,重新排列语言列表,使得英语在西班牙语之下。 - lensovet

3

打开您的目标->信息->更改"本地化本机开发区域"为您的语言。


20
仅仅这样还不足够。 - lensovet

2

从Xcode 14.3开始,支持原生更改默认本地化设置。可以在项目编辑器的“信息”选项卡中的语言菜单中配置。


0
对于像我一样需要帮助的人,我有两个目标,一个是英文本地化,另一个是其他语言。 上面提到的选项:“更改projectname.xcodeproj/project.pbxproj并搜索developmentRegion并更改...”对于我的目标不起作用。
对我有效的是,在Xcode 11.5中,我只需要更改特定目标的“本地化本地开发区域”的语言代码即可,它就可以工作了,无需更改projectname.xcodeproj/project.pbxproj中的任何内容。 附言: 这里的“本地化本地开发区域”必须使用国家代码,如fr_Fr或在我的情况下hr表示克罗地亚。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接