Esta traducción está incompleta. Por favor, ayuda a traducir este artículo del inglés.

El objeto de ámbito global Intl es el espacio de nombres para el API de Internacionalización de ECMAScript, éste provee comparación de cadenas y formato de números, fechas y tiempos con sensibilidad al lenguaje. Los constructores para los objetos Collator, NumberFormat, y DateTimeFormat son propiedades del objeto Intl. En ésta página se documentan tales propiedades, así como la funcionalidad común a los constructores de internacionalización y otras funciones sensibles al lenguaje.

Propiedades

Intl.Collator
Constructor para collators, objetos que permiten la comparación de cadenas con sensibilidad al lenguaje.
Intl.DateTimeFormat
Constructor para objetos que permiten el formato de fecha y tiempos con sensibilidad al lenguaje.
Intl.NumberFormat
Constructor para objetos que permiten el formato de números con sensibilidad al lenguaje.
Intl.PluralRules
Por definir

Métodos

Intl.getCanonicalLocales()
Método que retorna los nombres canónicos de las diferentes variantes de lenguaje.

Identificación de variantes de lenguaje y negociación

Los constructores de internacionalización, así como otros metodos de constructores sensibles al lenguaje (listados bajo Ver más) siguen un mismo patrón para identificar variantes de lenguaje y determinar aquella a utilizar: todos aceptan los argumentos locales y options, y negocian las variantes requeridas contra aquellas que soportan utilizando un algoritmo especificado en la propiedad options.localeMatcher.

locales

El argumento locales debe ser tanto una cadena que contenga una  Etiqueta de Idioma BCP 47, o una matriz de etiquetas de dicho idioma. Si el argumento locales no es provisto o es indefinido, será usado la localicacion predeterminada.

Una etiqueda de idioma BCP 47 define un idioma y minimamente contiene un código primario de idioma. En estos la forma mas comun puede contener, : un código de idioma, un código del sistema de escritura, y un código de país o región, todo separado por guiones. Mientras la etiqueta no es case sensitive, es recomendable usar un titulo para el código del sistema de escritura, mayúsculas para el país y región y minúsculas para todo lo demás.

Ejemplos:

  • "hi": Hindi (idioma principal).
  • "de-AT": Aleman usado en Austria (idioma principal con código del país).
  • "zh-Hans-CN": Escritura China en caracteres simplifcados como se usa en China (idioma principal con código de escritura y código del país).

The subtags identifying languages, scripts, countries (regions), and (rarely used) variants in BCP 47 language tags can be found in the IANA Language Subtag Registry.

BCP 47 permite también extensiones. Las funciones de internacionalización de JavaScript utilizan la extensión "u" (Unicode), misma que puede emplearse para requerir personalizacioón de los objetos Collator, NumberFormat, o DateTimeFormat. A continuación algunos ejemplos:

  • "de-DE-u-co-phonebk": Use the phonebook variant of the German sort order, which expands umlauted vowels to character pairs: ä → ae, ö → oe, ü → ue.
  • "th-TH-u-nu-thai": Use Thai digits (๐, ๑, ๒, ๓, ๔, ๕, ๖, ๗, ๘, ๙) in number formatting.
  • "ja-JP-u-ca-japanese": Use the Japanese calendar in date and time formatting, so that 2013 is expressed as the year 25 of the Heisei period, or 平成25.
  • "en-GB-u-ca-islamic": use British English with the Islamic (Hijri) calendar, where the Gregorian date 14 October, 2017 is the Hijri date 24 Muharram, 1439.

Locale negotiation

The locales argument, after stripping off all Unicode extensions, is interpreted as a prioritized request from the application. The runtime compares it against the locales it has available and picks the best one available. Two matching algorithms exist: the "lookup" matcher follows the Lookup algorithm specified in BCP 47; the "best fit" matcher lets the runtime provide a locale that's at least, but possibly more, suited for the request than the result of the Lookup algorithm. If the application doesn't provide a locales argument, or the runtime doesn't have a locale that matches the request, then the runtime's default locale is used. The matcher can be selected using a property of the options argument (see below).

If the selected language tag had a Unicode extension substring, that extension is now used to customize the constructed object or the behavior of the function. Each constructor or function supports only a subset of the keys defined for the Unicode extension, and the supported values often depend on the language tag. For example, the "co" key (collation) is only supported by Collator, and its "phonebk" value is only supported for German.

options argument

The options argument must be an object with properties that vary between constructors and functions. If the options argument is not provided or is undefined, default values are used for all properties.

One property is supported by all language sensitive constructors and functions: The localeMatcher property, whose value must be a string "lookup" or "best fit" and which selects one of the locale matching algorithms described above.

Specifications

Specification Status Comment
ECMAScript Internationalization API 1.0 (ECMA-402)
La definición de 'Intl' en esta especificación.
Standard Initial definition.
ECMAScript Internationalization API 2.0 (ECMA-402)
La definición de 'Intl' en esta especificación.
Standard  
ECMAScript Internationalization API 4.0 (ECMA-402)
La definición de 'Intl' en esta especificación.
Draft Added Intl.getCanonicalLocales in the 4th edition.

Browser compatibility

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidSafari on iOSSamsung InternetNode.js
Soporte básicoChrome Soporte completo 24Edge Soporte completo SiFirefox Soporte completo 29IE Soporte completo 11Opera Soporte completo 15Safari Soporte completo 10WebView Android Sin soporte NoChrome Android Soporte completo 26Edge Mobile Soporte completo SiFirefox Android Soporte completo 56Opera Android ? Safari iOS Soporte completo 10Samsung Internet Android Soporte completo Sinodejs ?
getCanonicalLocalesChrome Soporte completo 54Edge Soporte completo 16Firefox Soporte completo 48IE Sin soporte NoOpera Sin soporte NoSafari Soporte completo 11WebView Android Sin soporte NoChrome Android Sin soporte NoEdge Mobile Sin soporte NoFirefox Android Soporte completo 56Opera Android Sin soporte NoSafari iOS Soporte completo 11Samsung Internet Android Sin soporte Nonodejs Sin soporte No
CollatorChrome Soporte completo 24Edge Soporte completo SiFirefox Soporte completo 29IE Soporte completo 11Opera Soporte completo 15Safari Soporte completo 10WebView Android Sin soporte NoChrome Android Soporte completo 26Edge Mobile Soporte completo SiFirefox Android Soporte completo 56Opera Android ? Safari iOS Soporte completo 10Samsung Internet Android Soporte completo Sinodejs ?
DateTimeFormatChrome Soporte completo 24Edge Soporte completo SiFirefox Soporte completo 29IE Soporte completo 11Opera Soporte completo 15Safari Soporte completo 10WebView Android Sin soporte NoChrome Android Soporte completo 26Edge Mobile Soporte completo SiFirefox Android Soporte completo 56Opera Android ? Safari iOS Soporte completo 10Samsung Internet Android Soporte completo Sinodejs ?
NumberFormatChrome Soporte completo 24Edge Soporte completo SiFirefox Soporte completo 29IE Soporte completo 11Opera Soporte completo 15Safari Soporte completo 10WebView Android Soporte completo 4.4Chrome Android Soporte completo 26Edge Mobile Soporte completo SiFirefox Android Soporte completo 56Opera Android Soporte completo 37Safari iOS Soporte completo 10Samsung Internet Android Soporte completo Sinodejs ?
PluralRulesChrome Soporte completo 63Edge Soporte completo SiFirefox Soporte completo 58IE Sin soporte NoOpera Soporte completo 50Safari Sin soporte NoWebView Android Soporte completo 63Chrome Android Soporte completo 63Edge Mobile Sin soporte NoFirefox Android Soporte completo 58Opera Android Soporte completo 50Safari iOS Sin soporte NoSamsung Internet Android Sin soporte Nonodejs Sin soporte No

Leyenda

Soporte completo  
Soporte completo
Sin soporte  
Sin soporte
Compatibility unknown  
Compatibility unknown

See also

Etiquetas y colaboradores del documento

Colaboradores en esta página: eespitia.rea, puentesdiaz
Última actualización por: eespitia.rea,