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

Sté*_*ret 20 iphone xcode localization ios uistoryboard

这个问题已经过去了2天让我疯了.

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

我已经使用"+"在本地化中添加了语言,我已经对故事板进行了本地化,但是当我检查模拟器或设备时,我仍然看到英文版.事实上,它甚至不是英文版,因为如果我更改Maintsoryboard(英文),我看不到设备的变化......我仍然看到初始文本.

我已经尝试重置模拟器,删除应用程序等.没有运气.

我已经恢复了备份尝试再次添加所有内容.没运气.

有人可以帮忙吗?我知道继续下去并不多,但我不知道该解释什么来帮助你.如果我遗漏了一些信息,请告诉我.

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

Jon*_*ess 15

看起来你已经想到了这一点,但我认为可能发生的事情是,最初你将"MainStoryboard.storyboard"作为一个未本地化的资源.这意味着当您构建应用程序时,您会将"MainStoryboard.storyboardc"作为未本地化的资源.当您将故事板更改为本地化时,您的捆绑资源中会出现"Base.lproj/MainStoryboard.storyboardc".

当您在Xcode中构建时,您的应用程序有几个副本.您的设备或模拟器中有副本,Xcode中的派生数据文件夹中也有一个副本.当您对应用程序进行增量构建时,Xcode中派生数据文件夹中的副本是新内容与旧内容的合并.因此,当您在Xcode中修改资源并重建时,您将获得最新的资源.但是,重命名或删除资源时,旧副本仍保留在构建目录中,直到执行清理操作.

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


Far*_*hid 10

绝对确保Main.strings文件中没有拼写错误,例如双引号和分号.如果您有任何拼写错误,设备只会忽略本地化字符串并应用基本国际化.


djr*_*ero 1

盲拍:检查字符串文件是否为 UTF-16(如果我没记错的话,是小端字节序)并且没有语法错误(缺少 ; 或引号)。在字符串文件更改后构建之前还要运行干净的项目。