2017-02-09 04:17:51 +03:00
|
|
|
/* -*- 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"
|
|
|
|
|
|
|
|
%{C++
|
|
|
|
// Define Contractid and CID
|
|
|
|
#define MOZ_OSPREFERENCES_CID \
|
|
|
|
{ 0x65944815, 0xe9ae, 0x48bd, { 0xa2, 0xbf, 0xf1, 0x10, 0x87, 0x20, 0x95, 0x0c } }
|
|
|
|
|
|
|
|
#define MOZ_OSPREFERENCES_CONTRACTID "@mozilla.org/intl/ospreferences;1"
|
|
|
|
%}
|
|
|
|
|
|
|
|
[scriptable, uuid(65944815-e9ae-48bd-a2bf-f1108720950c)]
|
|
|
|
interface mozIOSPreferences : nsISupports
|
|
|
|
{
|
|
|
|
const long dateTimeFormatStyleNone = 0;
|
|
|
|
const long dateTimeFormatStyleShort = 1;
|
|
|
|
const long dateTimeFormatStyleMedium = 2;
|
|
|
|
const long dateTimeFormatStyleLong = 3;
|
|
|
|
const long dateTimeFormatStyleFull = 4;
|
|
|
|
|
|
|
|
/**
|
2017-07-13 20:40:40 +03:00
|
|
|
* Returns a list of locales used by the host environment for UI
|
|
|
|
* localization.
|
2017-02-09 04:17:51 +03:00
|
|
|
*
|
|
|
|
* The result is a sorted list and we expect that the OS attempts to
|
|
|
|
* use the top locale from the list for which it has data.
|
|
|
|
*
|
|
|
|
* Each element of the list is a valid locale ID that can be passed to ICU
|
|
|
|
* and ECMA402 Intl APIs,
|
|
|
|
* At the same time each element is a valid BCP47 language tag that can be
|
|
|
|
* used for language negotiation.
|
|
|
|
*
|
|
|
|
* Example: ["en-US", "de", "pl", "sr-Cyrl", "zh-Hans-HK"]
|
|
|
|
*/
|
2018-09-22 10:49:05 +03:00
|
|
|
readonly attribute Array<ACString> systemLocales;
|
2017-02-09 04:17:51 +03:00
|
|
|
|
2017-07-13 20:40:40 +03:00
|
|
|
/**
|
|
|
|
* Returns a list of locales used by host environment for regional
|
|
|
|
* preferences internationalization.
|
|
|
|
*
|
|
|
|
* The result is a sorted list and we expect that the OS attempts to
|
|
|
|
* use the top locale from the list for which it has data.
|
|
|
|
*
|
|
|
|
* Each element of the list is a valid locale ID that can be passed to ICU
|
|
|
|
* and ECMA402 Intl APIs,
|
|
|
|
*
|
|
|
|
* Example: ["en-US", "de", "pl", "sr-Cyrl", "zh-Hans-HK"]
|
|
|
|
*/
|
2018-09-22 10:49:05 +03:00
|
|
|
readonly attribute Array<ACString> regionalPrefsLocales;
|
2017-07-13 20:40:40 +03:00
|
|
|
|
2017-02-09 04:17:51 +03:00
|
|
|
/**
|
|
|
|
* Returns the best locale that the host environment is localized to.
|
|
|
|
*
|
|
|
|
* The result is a valid locale ID and it should be
|
|
|
|
* used for all APIs that do not handle language negotiation.
|
|
|
|
*
|
2018-09-22 10:49:05 +03:00
|
|
|
* In any scenario involving language negotiation, systemLocales should
|
2017-02-09 04:17:51 +03:00
|
|
|
* be preferred over the single value.
|
|
|
|
*
|
|
|
|
* Example: "zh-Hans-HK"
|
|
|
|
*/
|
|
|
|
readonly attribute ACString systemLocale;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Returns the best possible date/time pattern for the host environment
|
|
|
|
* taking into account date/time regional settings user defined in the OS
|
|
|
|
* preferences.
|
|
|
|
*
|
|
|
|
* Notice, that depending on the OS it may take into account those settings
|
|
|
|
* for all locales, or only if the locale matches the OS locale.
|
|
|
|
*
|
|
|
|
* It takes two integer arguments that must be valid `dateTimeFormatStyle*`
|
|
|
|
* values (see constants defined above), and a string representing a
|
|
|
|
* BCP47 locale.
|
|
|
|
*
|
|
|
|
* It returns a string with a LDML date/time pattern.
|
|
|
|
*
|
|
|
|
* If no pattern can be retrieved from the host environment, it will
|
|
|
|
* lookup the best available pattern from ICU.
|
|
|
|
*
|
|
|
|
* Notice, this is a pretty unique method in this API in that it does
|
|
|
|
* more than look up into host environment.
|
|
|
|
* The reason for that is that constructing the right date/time pattern
|
|
|
|
* requires a lot of OS-specific logic and it ends up being easier to just
|
|
|
|
* handle all scenarios, including with cases where we fail to retrieve
|
|
|
|
* anything from the OS, here.
|
|
|
|
*/
|
|
|
|
AString getDateTimePattern(in long timeFormatStyle,
|
|
|
|
in long dateFormatStyle,
|
|
|
|
[optional] in ACString locale);
|
|
|
|
};
|