blob: d7aa14d03502482d2befdd863de90a448241590b [file] [log] [blame]
Torne (Richard Coles)4e180b62013-10-18 15:46:22 +01001// 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 COMPONENTS_TRANSLATE_LANGUAGE_DETECTION_LANGUAGE_DETECTION_UTIL_H_
6#define COMPONENTS_TRANSLATE_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_LANGUAGE_DETECTION_LANGUAGE_DETECTION_UTIL_H_