MDN wants to learn about developers like you: https://qsurvey.mozilla.com/s3/MDN-survey

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

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Soporte básico24 Si29111510
getCanonicalLocales54 No48 No No11
Collator24 Si29111510
DateTimeFormat24 Si29111510
NumberFormat24 Si29111510
PluralRules63 No58 No50 No
FeatureAndroid webviewChrome para AndroidEdge mobileFirefox para AndroidIE mobileOpera AndroidiOS Safari
Soporte básico No26 Si56 No ?10
getCanonicalLocales No No No56 No No11
Collator No26 Si56 No ?10
DateTimeFormat No26 Si56 No ?10
NumberFormat4.426 Si56 No3710
PluralRules6363 No58 No50 No

See also

Etiquetas y colaboradores del documento

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