Backed out changeset e96c92f80c09 (bug 1449505) Backed out changeset 760e4d29af7e (bug 1449505) Backed out changeset e82c5152cc17 (bug 1449505) Backed out changeset 07143ec143ae (bug 1449505) Backed out changeset 75a7dee8e060 (bug 1449505) Backed out changeset a58126ed4b3f (bug 1449505) Backed out changeset f0b4429eedff (bug 1449505) Backed out changeset 4bf3befa991d (bug 1449505) Backed out changeset 398d8addfbd8 (bug 1449505)
77 lines
2.9 KiB
Plaintext
77 lines
2.9 KiB
Plaintext
/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* 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/. */
|
|
|
|
#include "nsISupports.idl"
|
|
|
|
/**
|
|
* This is a set of APIs that are of general usefulness for user interface
|
|
* internationalization.
|
|
*
|
|
* They're all in various stages of the standardization process through
|
|
* ECMA402, so they are exposed to privileged content only but are written
|
|
* in the way to allow for easy migration to standard Intl object once
|
|
* the appropriate stage of the ECMA402 is achieved.
|
|
*
|
|
* The exact structure of the code is a little bit complex because of that:
|
|
*
|
|
* 1) The core is in SpiderMonkey together with other Intl APIs
|
|
*
|
|
* This allows us to write the code once, stick to the spec language
|
|
* of the proposal, reuse our ICU bindings in Spidermonkey and use
|
|
* the code to inform us on refining the spec proposal for the given API itself.
|
|
*
|
|
* 2) The MozIntlHelper API exposes the SpiderMonkey APIs
|
|
*
|
|
* This helper API allows attaching the new APIs on any regular object.
|
|
*
|
|
* 3) The MozIntl API provides the access to those APIs
|
|
*
|
|
* This API exposes the actual functionality and wraps around the MozIntlHelper
|
|
* lazily retrieving and setting the accessors.
|
|
* On top of that, the API also binds additional functionality like using
|
|
* current application locale by default, and fetching OS regional preferences
|
|
* for date time format.
|
|
*/
|
|
[scriptable, uuid(7f63279a-1a29-4ae6-9e7a-dc9684a23530)]
|
|
interface mozIMozIntl : nsISupports
|
|
{
|
|
jsval getCalendarInfo([optional] in jsval locales);
|
|
jsval getDisplayNames([optional] in jsval locales, [optional] in jsval options);
|
|
jsval getLocaleInfo([optional] in jsval locales);
|
|
|
|
/**
|
|
* Returns a list of language names formatted for display.
|
|
*
|
|
* Example:
|
|
* let langs = getLanguageDisplayNames(["pl"], ["fr", "de", "en"]);
|
|
* langs === ["Francuski", "Niemiecki", "Angielski"]
|
|
*/
|
|
jsval getLanguageDisplayNames(in jsval locales, in jsval langCodes);
|
|
|
|
/**
|
|
* Returns a list of region names formatted for display.
|
|
*
|
|
* Example:
|
|
* let regs = getLanguageDisplayNames(["pl"], ["US", "CA", "MX"]);
|
|
* regs === ["Stany Zjednoczone", "Kanada", "Meksyk"]
|
|
*/
|
|
jsval getRegionDisplayNames(in jsval locales, in jsval regionCodes);
|
|
|
|
/**
|
|
* Returns a list of locale names formatted for display.
|
|
*
|
|
* Example:
|
|
* let locs = getLanguageDisplayNames(["pl"], ["sr-RU", "es-MX", "fr-CA"]);
|
|
* locs === ["Serbski (Rosja)", "Hiszpański (Meksyk)", "Francuski (Kanada)"]
|
|
*/
|
|
jsval getLocaleDisplayNames(in jsval locales, in jsval localeCodes);
|
|
|
|
readonly attribute jsval DateTimeFormat;
|
|
readonly attribute jsval NumberFormat;
|
|
readonly attribute jsval Collator;
|
|
readonly attribute jsval PluralRules;
|
|
readonly attribute jsval RelativeTimeFormat;
|
|
};
|