我有一個需要本地化的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