我有一个需要本地化的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
但我希望它尽可能自动,并且修复Directory或localizationName之类的内容可能会阻止我的应用程序自动运行。
最佳答案
解决方案是:
关于iphone - 无法使用pathForResource自动加载本地化资源,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3512213/