我有一个需要本地化的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];
}
首先尝试:
我已按照此网站I Can Localize的说明进行操作,因为应用中还有本地化资源。 文件夹名为: en.lproj 和 fr.lproj 。
我在模拟器上尝试,但没有成功:
第二次尝试:
然后,我删除资源并将其重新添加到其组文件夹(Resource / html /)中。我按下了“信息”按钮,然后选择“使文件可本地化”。 该文件已添加到 English.lproj 文件夹中。 然后我选择“添加本地化”和“法语”。
我在模拟器上尝试它,但它没有成功(我在测试前清理了构建):
第三次尝试:
在阅读有关在iPhone OS 4.0上加载本地化资源的this page后,我更改了本地化文件夹中的资源(删除资源,并重命名 en_UK.lproj 和中的文件夹fr_FR.lproj
我在模拟器上尝试它,但它没有成功(我在测试前清理了构建):
帮助?
有什么想法吗?
我知道有这个功能:
- (NSString *)pathForResource:(NSString *)name ofType:(NSString *)extension inDirectory:(NSString *)subpath forLocalization:(NSString *)localizationName
但我希望它尽可能自动化,修复目录或localizationName之类的东西可能会阻止我的应用程序自动化。
答案 0 :(得分:16)
解决方案是: