gecko-dev/toolkit/components/mozintl/mozIMozIntl.idl

47 строки
2.0 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);
jsval createPluralRules([optional] in jsval locales, [optional] in jsval options);
jsval createDateTimeFormat([optional] in jsval locales, [optional] in jsval options);
};