Xcode本地化让我疯狂! 不加载Storyboard

这个问题已经过去了2天,这让我很吃惊。

我试图本地化我的iOS应用程序,但对于我的生活,我无法得到它的工作。 当我尝试一个空白的项目,但不是我当前的项目时,它的工作很容易。

我已经使用“+”在本地化中添加了语言,我已经本地化故事板,但是当我在模拟器或设备上查看时,我仍然可以看到英文版本。 事实上,它甚至不是英文的,因为如果我改变Maintoryboard(英文),我没有看到设备的变化…我仍然看到最初的文本。

我试过重新设置模拟器,删除了应用程序等,没有运气。

我已经恢复到备份尝试再次添加一切。 没有运气。

有人可以帮忙吗? 我知道这还不算什么,但我不知道该怎么解释才能帮助你。 所以请让我知道如果我错过了一些信息。

仅供参考,当我查看应用程序在开发人员的文件夹,我最初没有一个en.lproj时,似乎我应该有一个默认?

看起来你已经知道了这一点,但我想可能发生的是最初你有“MainStoryboard.storyboard”作为一个非本地化的资源。 这意味着,当你build立你的应用程序,你会得到一个“MainStoryboard.storyboardc”作为一个未本地化的资源。 当您更改故事板以进行本地化时,您的捆绑资源中会出现“Base.lproj / MainStoryboard.storyboardc”。

在Xcode中构build应用程序时有几个副本。 在你的设备上或在模拟器中有副本,Xcode中的派生数据文件夹中也有一个副本。 在增量构build应用程序时,Xcode中派生数据文件夹中的副本是新内容和旧内容的合并。 所以,当你修改Xcode中的资源,并重build,你会得到最新的资源。 但是,当您重命名或删除资源时,旧副本仍留在构build目录中,直到执行清理操作。

这意味着您的构build产品可能同时具有“MainStoryboard.storyboardc”和“Base.lproj / MainStoryboard.storyboardc”。 当NSBundle加载资源时,它更喜欢未本地化的内容,并加载旧的“MainStoryboard.storyboardc”。

请确保您在Main.strings文件中没有错别字,例如双引号和分号。 如果您有任何拼写错误,设备会忽略本地化的string并应用基本国际化。

盲注:检查string文件是否是UTF-16(如果我没有记错,则是小尾数),并且没有语法错误(缺less;或引用)。 在修改string文件之后,也可以在构build之前运行一个项目。

尝试select所有正在本地化的.strings.storyboard.storyboard文件。

在文件检查器中,确保为每个文件检查所有需要的本地化。

在添加本地化之后, English在多个文件中未被选中。 一些意见因此被本地化为意想不到的语言。 检查English解决了这个问题。

英文本地化未经检查