1// Copyright 2014 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef COMPONENTS_TRANSLATE_CORE_LANGUAGE_DETECTION_LANGUAGE_DETECTION_UTIL_H_ 6#define COMPONENTS_TRANSLATE_CORE_LANGUAGE_DETECTION_LANGUAGE_DETECTION_UTIL_H_ 7 8#include <string> 9 10#include "base/strings/string16.h" 11 12namespace translate { 13 14// Determines content page language from Content-Language code and contents. 15std::string DeterminePageLanguage(const std::string& code, 16 const std::string& html_lang, 17 const base::string16& contents, 18 std::string* cld_language, 19 bool* is_cld_reliable); 20 21// Corrects language code if it contains well-known mistakes. 22// Called only by tests. 23void CorrectLanguageCodeTypo(std::string* code); 24 25// Checks if the language code's format is valid. 26// Called only by tests. 27bool IsValidLanguageCode(const std::string& code); 28 29// Checks if languages are matched, or similar. This function returns true 30// against a language pair containing a language which is difficult for CLD to 31// distinguish. 32// Called only by tests. 33bool IsSameOrSimilarLanguages(const std::string& page_language, 34 const std::string& cld_language); 35 36// Checks if languages pair is one of well-known pairs of wrong server 37// configuration. 38// Called only by tests. 39bool MaybeServerWrongConfiguration(const std::string& page_language, 40 const std::string& cld_language); 41 42} // namespace translate 43 44#endif // COMPONENTS_TRANSLATE_CORE_LANGUAGE_DETECTION_LANGUAGE_DETECTION_UTIL_H_ 45