2015-11-04 108 views
3

在我的應用程序中,我在菜單中有一個鏈接,讓用戶訪問我們的常見問題頁面。我使用的是一個webview加載頁面,並且非常好。UIWebview未加載正確的本地化版本的網站

但問題是,我的在線頁面會自動檢測用戶語言並加載正確的本地化版本的頁面。

如果我在模擬器上打開safari並加載我的url,它將被重定向到正確的本地化版本,但在應用程序上使用UIWebview時會加載英語(默認)語言。

我在網上做了一些研究,但是找不到任何與此有關的事情。

有什麼我可以/需要傳遞給正確的本地化版本加載?

感謝

編輯:
我目前得到的手機語言並通過在URL,但我正在尋找的是在一個UIWebView表現得像野生動物園那樣,通過調用主網址並讓網站根據您的語言選擇版本。

+0

您是否找到過相同的解決方案? –

+0

@Dev_Tandel很不幸我從來沒有找到解決方案 – gmogames

+0

我一直在嘗試一個星期,仍然是空手。 –

回答

1

就可以得到應用支持的語言爲字符串數組[[NSBundle mainBundle] localizations];,並將它與系統的語言這樣的比較:

+ (NSString *)preferredLanguage { 
    NSString *res = @"en"; 

    NSArray *appSupportedLanguages = [[NSBundle mainBundle] localizations]; 
    NSArray *appleLanguages = [NSLocale preferredLanguages]; 

    if (appleLanguages && appleLanguages.count > 0) { 
     NSString *shortLangId = [appleLanguages.firstObject substringToIndex:2]; 

     if ([appSupportedLanguages containsObject:shortLangId]) { 
      res = shortLangId; 
     } 
    } 

    return res; 
} 

的原因,我使用縮短的版本這裏是iOS版9改變一些語言的ID和它打破了我的應用程序 - 你應該在這裏做一些小的改變。儘管如此,這種方法允許您獲取可用於打開適當FAQ頁面的語言ID,如https://.../faq_fr.htm或某些服務器端處理,如https://...?lang=fr

+0

這就是我目前正在做的事情,但我實際上正在尋找的是向我的頁面發出請求,並以正確的版本加載頁面,而不是將URL與語言一起傳遞,以同樣的方式safari如果你在模擬器中打開它,它會執行它。 我假設uiwebview會像safari一樣工作,但它似乎並不是這樣 – gmogames