blob: 5795374680c530c5bef80ce2248d81300a9dc9c6 [file]
// Copyright 2025 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "components/on_device_translation/translation_manager_util.h"
#include <algorithm>
#include "base/rand_util.h"
#include "base/strings/string_split.h"
#include "components/language/core/browser/pref_names.h"
#include "components/on_device_translation/features.h"
#include "components/on_device_translation/public/language_pack.h"
#include "components/on_device_translation/public/pref_names.h"
#include "components/prefs/pref_service.h"
#include "components/user_prefs/user_prefs.h"
#include "third_party/blink/public/common/features.h"
#include "third_party/blink/public/common/features_generated.h"
#include "ui/base/l10n/l10n_util.h"
namespace on_device_translation {
const std::vector<std::string_view> GetAcceptLanguages(
content::BrowserContext* browser_context) {
CHECK(browser_context);
PrefService* profile_pref = user_prefs::UserPrefs::Get(browser_context);
const std::vector<std::string_view> accept_languages = base::SplitStringPiece(
profile_pref->GetString(language::prefs::kAcceptLanguages), ",",
base::TRIM_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
return accept_languages;
}
bool IsInAcceptLanguage(const std::vector<std::string_view>& accept_languages,
const std::string_view lang) {
return std::ranges::contains(accept_languages, l10n_util::GetLanguage(lang));
}
bool IsTranslatorAllowed(content::BrowserContext* browser_context) {
CHECK(browser_context);
return user_prefs::UserPrefs::Get(browser_context)
->GetBoolean(prefs::kTranslatorAPIAllowed);
}
} // namespace on_device_translation