2010-08-18 82 views
5

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

我嘗試在模擬器上,但沒有成功:

  • 該日誌表明路徑是:(...)/ myapp.app/presentation.htm
  • 文件在模擬器中加載的是法語,而模擬器是英文的。

第二次嘗試:

然後,我刪除了資源,並在其組文件夾(資源/ HTML /)重新添加。我按下了信息按鈕,並選擇「使文件可本地化」。 該文件被添加到English.lproj文件夾中。 然後我選擇「添加本地化」和「法語」。

我嘗試在模擬器上,但沒有成功(我有乾淨的測試之前的版本):

  • 該日誌表明路徑是:(...)/ myapp.app /presentation.htm
  • 在模擬器中加載的文件是法語的,而模擬器是英文的。

第三次嘗試:

在iPhone OS 4.0閱讀this page有關加載本地化資源後,我在本地化文件夾(刪除資源,並在en_UK重命名文件夾改變了資源。 lprojfr_FR.lproj

我嘗試在模擬器上,但沒有成功(我有乾淨的測試之前的版本) :

  • 日誌指示該路徑是:(...)/ myapp.app/presentation.htm
  • 在模擬器加載的文件是用法語,而模擬器是英語。

幫助?

任何想法? 我知道有一個函數: - (NSString *)pathForResource:(NSString *)name ofType:(NSString *)extension inDirectory:(NSString *)subpath forLocalization:(NSString *)localizationName

但我希望它儘可能自動和修復之類目錄或localizationName可能會阻止我的應用程序是自動的。

+0

除去後應用程序從模擬器,它沒有工作,但路徑已經改變。現在是:(...)/ myapp.app/fr_FR.lproj/presentation.htm – AlexandreD 2010-08-18 13:16:35

回答

16

解決方法是:從模擬器(或設備)

  1. 刪除應用程序
  2. 使用簡單的局部文件夾,如:en.lproj
  3. 清理生成
+1

這樣做!在嘗試了所有解決方案後無效,當然硬重置工作。 – 2011-11-15 20:44:45

+0

我希望在花了兩個小時之前找到了這篇文章。對我來說,「刪除應用程序」是個訣竅。我想它會變得困惑。 – Walter 2012-02-13 01:48:49

+1

我重置我的模擬器,然後得到正確的結果! – sunkehappy 2013-02-21 10:19:52