我已将ContactView.xib文件本地化为英语和法语,通常必须自动加载。我使用UIViewController的initWithNibName: bundle:
方法来初始化对象,但结果总是一样的:加载的文件是英文版!
我已经清理了项目,重新安装了应用程序等等,但没有任何效果,我的xib文件的法语版本被忽略了!
我知道有一个相关的帖子(here),但问题并不完全相同,尽管我付出了努力,但它仍然存在。
以下是我编写的代码示例:
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil contact:(Contact *)aContact
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self != nil)
{
self.contact = aContact;
}
return self;
}
在适当的区域设置中加载文件还有什么其他事吗? 我已经检查了设备(或模拟器)上的首选项以及模块中加载的首选项,并且每次将语言环境设置为法语。
提前谢谢你,
弗鲁瓦。
答案 0 :(得分:4)
我今天遇到了一个非常类似的问题,浪费了大约2个小时。
最后我删除了本地化的xib 通过本地化中的“ - ” 菜单。然后我不得不删除.XIB 文件在项目中
(在删除任何内容之前一定要在某处保存一份副本 - 你无法取回它!)。
然后我将.XIB文件拖回 该项目。最后它起作用了
所有我可以正确本地化并且有效。但是,让我告诉你,在应用程序没有准备就绪之前,我永远不会开始本地化。 xCode4中似乎存在严重的错误。 (它甚至在我身上撞了几次 - 我猜是因为它保留了一些在硬盘上无法找到的xib的链接。
此错误仅在所述过程后消失。即使从项目中删除.XIB文件并将其从HDD中删除仍然没有帮助。 XCode很高兴地开始使用这个.XIB(无论它从何处获得)。
祝你好运! (今天我浪费了太多时间!)答案 1 :(得分:0)
作为参考,我想我找出了导致这个问题的原因:
您是否将法语版本本地化为“字符串”文件?如果是这样,试试这个:
选择.xib(根条目,而不是本地化版本)
在检查器中,检查:Interface Builder Document→文档编辑→构建
在我的情况下,它说“OS X 10.7及更高版本”,我遇到了同样的问题。我把它设置为“OS X 10.10”,经过另一次干净的构建后,一切正常。
我怀疑你的法语本地化没有被加载,因为.xib文件格式还没有与.strings本地化兼容(我不记得引入它的时候)。