1// Copyright (c) 2009 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 ENCODINGS_COMPACT_LANG_DET_WIN_CLD_UNICODETEXT_H_
6#define ENCODINGS_COMPACT_LANG_DET_WIN_CLD_UNICODETEXT_H_
7
8#include "languages/public/languages.h"
9#include "unicode/utypes.h"
10
11namespace CompactLangDet {
12  struct DetectionTables;
13}  // namespace CompactLangDet
14
15// Detects a language of the UTF-16 encoded zero-terminated text.
16// [in] detection_tables - internal CLD data tables (see compact_lang_det.h).
17//     Can be NULL, in this case CLD will fall back to builtin static tables.
18// [in] text - UTF-16 encoded text to detect a language of.
19// [in] is_plain_text - true if plain text, false otherwise (e.g. HTML).
20// [out] is_reliable - true, if returned language was detected reliably.
21//     See compact_lang_det.h for details.
22// [out] num_languages - set to the number of languages detected on the page.
23//     Language counts only if it's detected in more than 20% of the text.
24// [out, optional] error_code - set to 0 in case of success, Windows
25//     GetLastError() code otherwise.  Pass NULL, if not interested in errors.
26// See encodings/compact_lang_det/compact_lang_det.h,
27//     CompactLangDet::DetectLanguage() description for other input parameters
28//     description.
29// Returns: Language enum.
30//     Returns NUM_LANGUAGES in case of any error.
31//     See googleclient/languages/internal/languages.cc
32//     for details.
33Language DetectLanguageOfUnicodeText(
34    const CompactLangDet::DetectionTables* detection_tables,
35    const UChar* text, bool is_plain_text,
36    bool* is_reliable, int* num_languages,
37    int* error_code, int* text_bytes);
38
39
40#endif  // ENCODINGS_COMPACT_LANG_DET_WIN_CLD_UNICODETEXT_H_
41