summaryrefslogtreecommitdiffstats
path: root/dom/webidl/IntlUtils.webidl
blob: 1efa35c72877c52346354d6ebbc215829f0e2855 (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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
/* 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/. */

[GenerateConversionToJS]
dictionary DisplayNameOptions {
  DOMString type;
  DOMString style;
  DOMString calendar;
  sequence<DOMString> keys;
};

[GenerateInit]
dictionary DisplayNameResult {
  DOMString locale;
  DOMString type;
  DOMString style;
  DOMString calendar;
  sequence<DOMString> values;
};

[GenerateInit]
dictionary LocaleInfo {
  DOMString locale;
  DOMString direction;
};

/**
 * The IntlUtils interface provides helper functions for localization.
 */
[LegacyNoInterfaceObject,
 Exposed=Window]
interface IntlUtils {
  /**
   * Helper function to retrieve the localized values for a list of requested
   * keys.
   *
   * The function takes two arguments - locales which is a list of locale
   * strings and options which is an object with four optional properties:
   *
   *   keys:
   *     an Array of string values to localize
   *
   *   type:
   *     a String with a value "language", "region", "script", "currency",
   *     "weekday", "month", "quarter", "dayPeriod", or "dateTimeField"
   *
   *   style:
   *     a String with a value "long", "abbreviated", "short", or "narrow"
   *
   *   calendar:
   *     a String to select a specific calendar type, e.g. "gregory"
   *
   * It returns an object with properties:
   *
   *   locale:
   *     a negotiated locale string
   *
   *   type:
   *     negotiated type
   *
   *   style:
   *     negotiated style
   *
   *   calendar:
   *     negotiated calendar
   *
   *   values:
   *     a list of translated values for the requested keys
   *
   */
  [Throws]
  DisplayNameResult getDisplayNames(sequence<DOMString> locales,
                                    optional DisplayNameOptions options = {});

  /**
   * Helper function to determine if the current application locale is RTL.
   *
   * The result of this function can be overriden by this pref:
   *  - `intl.l10n.pseudo`
   */
  boolean isAppLocaleRTL();
};