diff options
Diffstat (limited to 'chrome/browser/ui/android/infobars/translate_infobar.cc')
-rw-r--r-- | chrome/browser/ui/android/infobars/translate_infobar.cc | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/chrome/browser/ui/android/infobars/translate_infobar.cc b/chrome/browser/ui/android/infobars/translate_infobar.cc index 4e31605..f4404fa 100644 --- a/chrome/browser/ui/android/infobars/translate_infobar.cc +++ b/chrome/browser/ui/android/infobars/translate_infobar.cc @@ -7,7 +7,9 @@ #include "base/android/jni_android.h" #include "base/android/jni_array.h" #include "base/android/jni_helper.h" +#include "base/strings/utf_string_conversions.h" #include "chrome/browser/translate/translate_infobar_delegate.h" +#include "components/translate/core/browser/translate_download_manager.h" #include "grit/generated_resources.h" #include "jni/TranslateInfoBarDelegate_jni.h" #include "ui/base/l10n/l10n_util.h" @@ -38,8 +40,18 @@ ScopedJavaLocalRef<jobject> TranslateInfoBar::CreateRenderInfoBar(JNIEnv* env) { TranslateInfoBarDelegate* delegate = GetDelegate(); std::vector<base::string16> languages; languages.reserve(delegate->num_languages()); - for (size_t i = 0; i < delegate->num_languages(); ++i) - languages.push_back(delegate->language_name_at(i)); + + const std::string& locale = + TranslateDownloadManager::GetInstance()->application_locale(); + + for (size_t i = 0; i < delegate->num_languages(); ++i) { + std::string lang = delegate->language_code_at(i); + if (!l10n_util::IsLocaleNameTranslated(lang.c_str(), locale)) { + languages.push_back(base::UTF8ToUTF16("")); + } else { + languages.push_back(delegate->language_name_at(i)); + } + } base::android::ScopedJavaLocalRef<jobjectArray> java_languages = base::android::ToJavaArrayOfStrings(env, languages); |