Iphone Can';t使用pathForResource自动加载本地化资源
我有一个需要本地化的iPhone应用程序。 字符串没有问题,但是,我在资源方面遇到了问题:我需要加载本地化的HTML页面。 这些文件类似于:presentation.htm 这些文件被添加到项目中,其中包含它们所在的文件夹(html/),并添加名为文件夹的组 我使用以下代码加载html页面:Iphone Can';t使用pathForResource自动加载本地化资源,iphone,html,objective-c,localization,Iphone,Html,Objective C,Localization,我有一个需要本地化的iPhone应用程序。 字符串没有问题,但是,我在资源方面遇到了问题:我需要加载本地化的HTML页面。 这些文件类似于:presentation.htm 这些文件被添加到项目中,其中包含它们所在的文件夹(html/),并添加名为文件夹的组 我使用以下代码加载html页面: NSString *pathPresentation = [[NSBundle mainBundle] pathForResource:@"presentation" ofType:@"htm"]; if
NSString *pathPresentation = [[NSBundle mainBundle] pathForResource:@"presentation" ofType:@"htm"];
if(!pathPresentation) {
NSLog(@"Could not find presentation.htm");
}
NSURL *url = [NSURL fileURLWithPath:pathPresentation];
NSLog(@"-> path presentation.htm : %@", pathPresentation);
UIWebView *webViewPresentation = [[UIWebView alloc] init];
NSData *htmlData = [NSData dataWithContentsOfFile:pathPresentation];
if (htmlData) {
[webViewPresentation loadData:htmlData MIMEType:@"text/html" textEncodingName:@"Latin-1" baseURL:url];
}
第一次尝试:
我一直遵循这个网站的指示,因为应用程序中还没有本地化的资源。
文件夹名为:en.lproj和fr.lproj
我在模拟器上试过,但没有成功:
- 日志指示路径为:(…)/myapp.app/presentation.htm
- 模拟器中加载的文件是法语,而模拟器是英语
第二次尝试: 然后,我删除这些资源并将它们重新添加到它们的组文件夹(Resource/html/)中。我按下信息按钮,选择“使文件可本地化”。 该文件已添加到English.lproj文件夹中。 然后我选择“添加本地化”和“法语” 我在模拟器上进行了尝试,但没有成功(我在测试之前清理了构建):
- 日志指示路径为:(…)/myapp.app/presentation.htm
- 模拟器中加载的文件是法语,而模拟器是英语李>
第三次尝试: 在阅读了有关在iPhone OS 4.0上加载本地化资源的内容后,我更改了本地化文件夹中的资源(删除资源,并重命名en_UK.lproj和fr_fr.lproj中的文件夹) 我在模拟器上进行了尝试,但没有成功(我在测试之前清理了构建):
- 日志指示路径为:(…)/myapp.app/presentation.htm
- 模拟器中加载的文件是法语,而模拟器是英语
帮助? 有什么想法吗? 我知道有这样的功能:
-(NSString*)路径资源:(NSString*)类型名称:(NSString*)扩展目录:(NSString*)本地化子路径:(NSString*)本地化名称
但我希望它尽可能自动,并且修复目录或本地化名称之类的东西可能会阻止我的应用程序自动运行。解决方案是:
从模拟器中删除应用程序后,它不起作用,但路径已更改。现在它是:(…)/myapp.app/fr_fr.lproj/presentation.html执行此操作!在尝试所有解决方案均无效后,硬重置当然起作用。我希望在花两个小时之前找到此帖子。对我来说,“删除应用程序”这就是诀窍。我猜它被搞糊涂了。模拟器重置和清洁安装在第二次尝试中起作用。只做一次是不够的:)什么f…!在Xcode 5和iOS 7中工作仍然需要这种愚蠢的解决方法。谢谢是的,实际上必须重置两次