| Index: chrome/browser/translate/translate_manager.cc
|
| diff --git a/chrome/browser/translate/translate_manager.cc b/chrome/browser/translate/translate_manager.cc
|
| index 1046922ec62af6e459ac1b4fa785e94b5041e1be..5bb5699fd0d83ff9e3d6254238eb9af1cecdf245 100644
|
| --- a/chrome/browser/translate/translate_manager.cc
|
| +++ b/chrome/browser/translate/translate_manager.cc
|
| @@ -57,6 +57,7 @@
|
| #include "net/http/http_status_code.h"
|
| #include "net/url_request/url_fetcher.h"
|
| #include "net/url_request/url_request_status.h"
|
| +#include "ui/base/l10n/l10n_util.h"
|
| #include "ui/base/resource/resource_bundle.h"
|
|
|
| #ifdef FILE_MANAGER_EXTENSION
|
| @@ -317,6 +318,12 @@ bool TranslateManager::IsSupportedLanguage(const std::string& page_language) {
|
| return supported_languages_.Pointer()->count(page_language) != 0;
|
| }
|
|
|
| +// static
|
| +bool TranslateManager::IsAvailableLanguage(const std::string& language) {
|
| + const std::string& locale = g_browser_process->GetApplicationLocale();
|
| + return l10n_util::IsLocaleNameTranslated(language, locale);;
|
| +}
|
| +
|
| void TranslateManager::Observe(int type,
|
| const content::NotificationSource& source,
|
| const content::NotificationDetails& details) {
|
| @@ -593,6 +600,9 @@ void TranslateManager::InitiateTranslation(WebContents* web_contents,
|
| if (target_lang.empty() || !IsSupportedLanguage(language_code)) {
|
| TranslateManagerMetrics::ReportInitiationStatus(
|
| TranslateManagerMetrics::INITIATION_STATUS_LANGUAGE_IS_NOT_SUPPORTED);
|
| + TranslateManagerMetrics::ReportUnsupportedLanguageAtInitiation(
|
| + language_code);
|
| +
|
| return;
|
| }
|
|
|
| @@ -791,14 +801,12 @@ void TranslateManager::DoTranslatePage(WebContents* web_contents,
|
|
|
| void TranslateManager::PageTranslated(WebContents* web_contents,
|
| PageTranslatedDetails* details) {
|
| - if ((details->error_type == TranslateErrors::NONE) &&
|
| - details->source_language != chrome::kUnknownLanguageCode &&
|
| - !IsSupportedLanguage(details->source_language)) {
|
| - // TODO(toyoshim): http://crbug.com/242142 We should check if
|
| - // l10n_util::GetDisplayNameForLocale() support |source_language| here.
|
| - // Also, following metrics should be modified to have language code.
|
| - TranslateManagerMetrics::ReportUnsupportedLanguage();
|
| - details->error_type = TranslateErrors::UNSUPPORTED_LANGUAGE;
|
| + if (details->error_type == TranslateErrors::NONE) {
|
| + const std::string& language = details->source_language;
|
| + if (!IsAvailableLanguage(language)) {
|
| + TranslateManagerMetrics::ReportUnavailableLanguage(language);
|
| + details->error_type = TranslateErrors::UNSUPPORTED_LANGUAGE;
|
| + }
|
| }
|
|
|
| Profile* profile =
|
|
|