当前位置:  开发笔记 > 前端 > 正文

无法使用pathForResource自动加载本地化资源

如何解决《无法使用pathForResource自动加载本地化资源》经验,为你挑选了1个好方法。

我有一个需要本地化的iPhone应用程序.没有字符串问题,但是,我遇到资源问题:我需要加载本地化的HTML页面.这些文件类似于:presentation.htm文件在项目中添加了文件夹(html /),并添加了名为文件夹的组.

我用这段代码加载html页面:

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.lprojfr.lproj.

我在模拟器上尝试它,但它没有成功:

日志表明路径是:(...)/ myapp.app/presentation.htm

模拟器中加载的文件是法语,而模拟器是英文的.


第二次尝试:

然后,我删除资源并将其重新添加到其组文件夹(Resource/html /)中.我按下了"信息"按钮,然后选择"使文件可本地化".该文件已添加到English.lproj文件夹中.然后我选择"添加本地化"和"法语".

我在模拟器上尝试它,但它没有成功(我在测试前清理了构建):

日志表明路径是:(...)/ myapp.app/presentation.htm

模拟器中加载的文件是法语,而模拟器是英文的.


第三次尝试:

在阅读有关在iPhone OS 4.0上加载本地化资源的此页面后,我更改了本地化文件夹中的资源(删除资源,并重命名en_UK.lprojfr_FR.lproj中的文件夹)

我在模拟器上尝试它,但它没有成功(我在测试前清理了构建):

日志表明路径是:(...)/ myapp.app/presentation.htm

模拟器中加载的文件是法语,而模拟器是英文的.


救命 ?

任何的想法 ?我知道有这个功能: - (NSString *)pathForResource:(NSString *)name ofType:(NSString *)extension inDirectory:(NSString *)subpath forLocalization:(NSString *)localizationName

但我希望它尽可能自动化,修复目录或localizationName之类的东西可能会阻止我的应用程序自动化.



1> AlexandreD..:

解决方案是:

    从模拟器(或设备)中删除应用程序

    使用简单的本地化文件夹,如:en.lproj

    干净的身材

推荐阅读
罗文彬2502852027
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有