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

Ale*_*reD 5 html iphone localization objective-c

我有一个需要本地化的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];  
}
Run Code Online (Sandbox Code Playgroud)

第一次尝试 :

我已经按照本网站的说明我可以本地化,因为应用程序中还有本地化的资源.文件夹名为: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之类的东西可能会阻止我的应用程序自动化.

Ale*_*reD 16

解决方案是:

  1. 从模拟器(或设备)中删除应用程序
  2. 使用简单的本地化文件夹,如:en.lproj
  3. 干净的身材