summaryrefslogtreecommitdiffstats
path: root/chrome/browser/ui/android/infobars/translate_infobar.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/ui/android/infobars/translate_infobar.cc')
-rw-r--r--chrome/browser/ui/android/infobars/translate_infobar.cc16
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);