2015-11-04 55 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