Index: chrome/browser/web_resource/web_resource_service.cc |
=================================================================== |
--- chrome/browser/web_resource/web_resource_service.cc (revision 28157) |
+++ chrome/browser/web_resource/web_resource_service.cc (working copy) |
@@ -205,19 +205,19 @@ |
resource_dispatcher_host_ = g_browser_process->resource_dispatcher_host(); |
web_resource_fetcher_ = new WebResourceFetcher(this); |
prefs_->RegisterStringPref(prefs::kNTPTipsCacheUpdate, L"0"); |
- std::wstring locale = ASCIIToWide(g_browser_process->GetApplicationLocale()); |
+ std::wstring language = WebResourceService::GetWebResourceLanguage(prefs_); |
if (prefs_->HasPrefPath(prefs::kNTPTipsServer)) { |
web_resource_server_ = prefs_->GetString(prefs::kNTPTipsServer); |
// If we are in the correct locale, initialization is done. |
- if (EndsWith(web_resource_server_, locale, false)) |
+ if (EndsWith(web_resource_server_, language, false)) |
return; |
} |
// If we have not yet set a server, or if the tips server is set to the wrong |
// locale, reset the server and force an immediate update of tips. |
web_resource_server_ = kDefaultResourceServer; |
- web_resource_server_.append(locale); |
+ web_resource_server_.append(language); |
prefs_->SetString(prefs::kNTPTipsCacheUpdate, L""); |
} |
@@ -296,3 +296,18 @@ |
DoubleToWString(base::Time::Now().ToDoubleT())); |
prefs_->SetString(prefs::kNTPTipsServer, web_resource_server_); |
} |
+ |
+// static |
+std::wstring WebResourceService::GetWebResourceLanguage(PrefService* prefs) { |
+#if defined OS_MACOSX |
Nico
2009/10/07 14:56:21
On second thought, shouldn't the os x version of t
Miranda Callahan
2009/10/07 16:22:00
Well, the tips need to always be in the same langu
|
+ // OS X derives the language for the Chrome UI from the list of accepted |
+ // languages, which can be different from the locale. |
+ std::wstring languageList = prefs->GetString(prefs::kAcceptLanguages); |
+ int pos = languageList.find(L","); |
+ pos = pos >= 0 ? pos : languageList.length(); |
+ return languageList.substr(0, pos); |
+#else |
+ return ASCIIToWide(g_browser_process->GetApplicationLocale()); |
+#endif |
TVL
2009/10/07 12:02:48
drive by: since we're forking what is done here, I
Miranda Callahan
2009/10/07 16:22:00
Good point. I think a source of confusion is that
|
+} |
+ |