| /* 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/. */ | 
 |  | 
 | dictionary DisplayNameOptions { | 
 |   DOMString style; | 
 |   sequence<DOMString> keys; | 
 | }; | 
 |  | 
 | dictionary DisplayNameResult { | 
 |   DOMString locale; | 
 |   DOMString style; | 
 |   record<DOMString, DOMString> values; | 
 | }; | 
 |  | 
 | dictionary LocaleInfo { | 
 |   DOMString locale; | 
 |   DOMString direction; | 
 | }; | 
 |  | 
 | /** | 
 |  * The IntlUtils interface provides helper functions for localization. | 
 |  */ | 
 | [NoInterfaceObject] | 
 | 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 two optional properties: | 
 |    * | 
 |    *   keys: | 
 |    *     an Array of string values that are paths to individual terms | 
 |    * | 
 |    *   style: | 
 |    *     a String with a value "long", "short" or "narrow" | 
 |    * | 
 |    * It returns an object with properties: | 
 |    * | 
 |    *   locale: | 
 |    *     a negotiated locale string | 
 |    * | 
 |    *   style: | 
 |    *     negotiated style | 
 |    * | 
 |    *   values: | 
 |    *     a key-value pair list of requested keys and corresponding translated | 
 |    *     values | 
 |    * | 
 |    */ | 
 |   [Throws] | 
 |   DisplayNameResult getDisplayNames(sequence<DOMString> locales, | 
 |                                     optional DisplayNameOptions options); | 
 |  | 
 |   /** | 
 |    * Helper function to retrieve useful information about a locale. | 
 |    * | 
 |    * The function takes one argument - locales which is a list of locale | 
 |    * strings. | 
 |    * | 
 |    * It returns an object with properties: | 
 |    * | 
 |    *   locale: | 
 |    *     a negotiated locale string | 
 |    * | 
 |    *   direction: | 
 |    *     text direction, "ltr" or "rtl" | 
 |    * | 
 |    */ | 
 |   [Throws] | 
 |   LocaleInfo getLocaleInfo(sequence<DOMString> locales); | 
 | }; |