我有一个需要本地化的iPhone应用程序。 字符串没有问题,但是,我遇到了资源问题:我需要加载本地化的HTML页面。 这些文件类似于:presentation.htm 将文件添加到项目中的文件夹所在的位置(html /),并添加称为文件夹的组。无法使用pathForResource自动加载本地化资源
我加载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。
我尝试在模拟器上,但没有成功:
- 该日志表明路径是:(...)/ myapp.app/presentation.htm
- 文件在模拟器中加载的是法语,而模拟器是英文的。
第二次尝试:
然后,我删除了资源,并在其组文件夹(资源/ HTML /)重新添加。我按下了信息按钮,并选择“使文件可本地化”。 该文件被添加到English.lproj文件夹中。 然后我选择“添加本地化”和“法语”。
我尝试在模拟器上,但没有成功(我有干净的测试之前的版本):
- 该日志表明路径是:(...)/ myapp.app /presentation.htm
- 在模拟器中加载的文件是法语的,而模拟器是英文的。
第三次尝试:
在iPhone OS 4.0阅读this page有关加载本地化资源后,我在本地化文件夹(删除资源,并在en_UK重命名文件夹改变了资源。 lproj和fr_FR.lproj
我尝试在模拟器上,但没有成功(我有干净的测试之前的版本) :
- 日志指示该路径是:(...)/ myapp.app/presentation.htm
- 在模拟器加载的文件是用法语,而模拟器是英语。
帮助?
任何想法? 我知道有一个函数: - (NSString *)pathForResource:(NSString *)name ofType:(NSString *)extension inDirectory:(NSString *)subpath forLocalization:(NSString *)localizationName
但我希望它尽可能自动和修复之类目录或localizationName可能会阻止我的应用程序是自动的。
除去后应用程序从模拟器,它没有工作,但路径已经改变。现在是:(...)/ myapp.app/fr_FR.lproj/presentation.htm – AlexandreD 2010-08-18 13:16:35