1cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 27dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// Use of this source code is governed by a BSD-style license that can be 37dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// found in the LICENSE file. 47dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 5cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#ifndef COMPONENTS_TRANSLATE_CORE_LANGUAGE_DETECTION_LANGUAGE_DETECTION_UTIL_H_ 6cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#define COMPONENTS_TRANSLATE_CORE_LANGUAGE_DETECTION_LANGUAGE_DETECTION_UTIL_H_ 77dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 87dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include <string> 97dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 107dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "base/strings/string16.h" 117dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 124e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)namespace translate { 137dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 147dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// Determines content page language from Content-Language code and contents. 157dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochstd::string DeterminePageLanguage(const std::string& code, 167dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch const std::string& html_lang, 177dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch const base::string16& contents, 187dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch std::string* cld_language, 197dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch bool* is_cld_reliable); 207dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 217dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// Corrects language code if it contains well-known mistakes. 227dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// Called only by tests. 237dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochvoid CorrectLanguageCodeTypo(std::string* code); 247dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 257dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// Checks if the language code's format is valid. 267dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// Called only by tests. 277dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochbool IsValidLanguageCode(const std::string& code); 287dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 297dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// Checks if languages are matched, or similar. This function returns true 307dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// against a language pair containing a language which is difficult for CLD to 317dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// distinguish. 327dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// Called only by tests. 337dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochbool IsSameOrSimilarLanguages(const std::string& page_language, 347dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch const std::string& cld_language); 357dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 367dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// Checks if languages pair is one of well-known pairs of wrong server 377dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// configuration. 387dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// Called only by tests. 397dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochbool MaybeServerWrongConfiguration(const std::string& page_language, 407dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch const std::string& cld_language); 417dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 424e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} // namespace translate 43ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch 44cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#endif // COMPONENTS_TRANSLATE_CORE_LANGUAGE_DETECTION_LANGUAGE_DETECTION_UTIL_H_ 45