1 // Copyright 2013 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 CHROME_COMMON_TRANSLATE_LANGUAGE_DETECTION_UTIL_H_ 6 #define CHROME_COMMON_TRANSLATE_LANGUAGE_DETECTION_UTIL_H_ 7 8 #include <string> 9 10 #include "base/strings/string16.h" 11 12 namespace LanguageDetectionUtil { 13 14 // Determines content page language from Content-Language code and contents. 15 std::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. 23 void CorrectLanguageCodeTypo(std::string* code); 24 25 // Checks if the language code's format is valid. 26 // Called only by tests. 27 bool 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. 33 bool 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. 39 bool MaybeServerWrongConfiguration(const std::string& page_language, 40 const std::string& cld_language); 41 42 // Returns the version string of CLD. 43 std::string GetCLDVersion(); 44 45 } // namespace LanguageDetectionUtil 46 47 #endif // CHROME_COMMON_TRANSLATE_LANGUAGE_DETECTION_UTIL_H_ 48