summaryrefslogtreecommitdiffstats
path: root/browser/components/translation/cld2/cld.idl
blob: e426dd3034d0127d05ad4b2727c1266c95baec22 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
 * You can obtain one at http://mozilla.org/MPL/2.0/. */

// Note: This is a variant of WebIDL, but its semantics differ from our
// internal WebIDL implementation. Some particular differences that are
// relevent here include:
//
//  - Attribute declarations refer directly to member variables of the
//    underlying class, and are not forwarded to explicit getter methods.
//
//  - Attribute declarations also do not create getters on the JavaScript
//    wrapper object, but instead generate "get_foo()" and "set_foo()"
//    methods, which must be called in order to access the value. In the case
//    of array attributes, the callers must also pass the index they wish to
//    access.
//
//  - Method overloading is fairly crude. Only explicitly declared variants
//    are supported, and selection is based entirely on index of the first
//    parameter whose value is undefined.
//
//  - DOMString attributes are nullable by default. Null values are not
//    converted to empty strings, and non-null values are converted to
//    null-terminated, UTF-8 byte arrays.

interface Language {
  [Const] DOMString getLanguageCode();
};

interface LanguageGuess {
  byte getPercent();
};

interface LanguageInfo {
  static LanguageInfo detectLanguage(DOMString buffer, boolean isPlainText);

  static LanguageInfo detectLanguage(DOMString buffer, boolean isPlainText,
                                     DOMString? tldHint, long encodingHint,
                                     DOMString? languageHint);

  boolean getIsReliable();

  [BoundsChecked,Const] readonly attribute LanguageGuess[] languages;
};

LanguageGuess implements Language;
LanguageInfo implements Language;