好吧,我刚刚在我的项目上遇到了本地化问题,因此决定进行实验以揭示该问题:

实验:


创建通用的iOS应用程序;
将MainWindow_iPhone.xib和MainWindow_iPad.xib文件的主窗口上的文本都从“我的通用iPhone(iPad)应用程序”更改为“ Hello”;
在iPhone和iPad模拟器中构建并运行应用程序-都显示“ Hello”消息-一切都很好;
为MainWindow_iPhone.xib和MainWindow_iPad.xib添加西班牙文本地化(已经存在英语本地化)
将西班牙语版本的MainWindow_iPhone.xib和MainWindow_iPad.xib文件的主窗口上的文本都从“ Hello”更改为“ Hola”;
将模拟器中的语言更改为西班牙语;
在iPhone和iPad模拟器中构建并运行应用程序-两者仍显示“ Hello”消息-什么?!?!?!


固定:


打开项目属性并转到“构建阶段”选项卡;
在“复制捆绑包资源”中添加xib文件:在项目的es.lproj目录中找到MainWindow_iPhone.xib和MainWindow_iPad.xib文件并添加它们
在iPhone和iPad模拟器中构建并运行应用程序-均显示“ Hola”消息-确定


好吧,我能得出什么结论?将新的本地化添加到xib文件时,xcode忘记添加此文件以复制捆绑软件资源目标。因此,在以不同的本地化版本运行应用程序后(例如西班牙文),iOS无法找到西班牙语的本地化版本(当然,Xcode忘记了复制它!!)并加载英语版本的xib。

手动添加文件的本地化版本会在项目树中混乱-添加的文件将显示在项目层次结构中,但是当我们使用本地化扩展xib文件时,它们已经显示。 (在示例中,我们将在项目结构树中拥有MainWindow_iPhone.xib和MainWindow_iPad.xib,但同时,在扩展本地化的MainWindow_iPhone.xib或MainWindow_iPad.xib文件之后,它们可在iPhone和iPad文件组中使用)

还是我缺少一些重要的东西?

最佳答案

如果您手动向Xcode添加资源,则通常需要(K)精简项目以重建链接。 Command-K应该可以解决问题。

我不记得必须在Xcode 3中执行此操作,并且它可能已在更高版本的Xcode 4中修复。

关于iphone - iOS通用应用程序本地化xcode 4.错误?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6724438/

10-14 21:14