Intl.Locale în JavaScript

Formatare regională (Intl) ES2020 (getCalendars, getWeekInfo etc.: browserele recente)

Descrie o limbă și o regiune (ro-RO) și oferă informații despre ea: calendar, prima zi a săptămânii, fusuri orare.

Sintaxă
const l = new Intl.Locale("ro-RO", optiuni);
l.maximize()
l.minimize()
l.getWeekInfo()

Ce face Intl.Locale

Un obiect Intl.Locale desface un cod de limbă în componente: language, region, script, calendar, hourCycle. toString() îl transformă înapoi în cod. maximize() completează componentele probabile (ro → ro-Latn-RO), iar minimize() le elimină pe cele implicite.

Metodele de informații returnează tablouri sau obiecte: getCalendars(), getCollations(), getHourCycles() (h23 = format de 24 de ore), getNumberingSystems(), getTimeZones() (doar când există regiune), getTextInfo() (direcția scrisului) și getWeekInfo() (prima zi a săptămânii și zilele de weekend, 1 = luni).

Parametri

Parametru Descriere
cod Codul limbii, de exemplu "ro-RO" sau "ar-EG".
optiuni Opțional. Componente suprascrise: region, calendar, hourCycle…

Ce returnează

Un obiect Intl.Locale.

Exemple

Exemplul 1: Componente, maximize și minimize

const l = new Intl.Locale("ro-MD");

console.log(l.language, l.region, l.baseName);
console.log(new Intl.Locale("ro").maximize().toString(), new Intl.Locale("ro-Latn-RO").minimize().toString());
console.log(new Intl.Locale("ro", { region: "RO", hourCycle: "h23" }).toString());

Rezultat

ro MD ro-MD
ro-Latn-RO ro
ro-RO-u-hc-h23

Exemplul 2: Informații despre România și despre Egipt

const ro = new Intl.Locale("ro-RO");
const eg = new Intl.Locale("ar-EG");

console.log(ro.getWeekInfo(), eg.getWeekInfo());
console.log(ro.getTimeZones(), ro.getHourCycles(), ro.getCalendars());
console.log(ro.getTextInfo(), eg.getTextInfo(), eg.getNumberingSystems());
console.log(ro.getCollations());

Rezultat

{ firstDay: 1, weekend: [ 6, 7 ] } { firstDay: 6, weekend: [ 5, 6 ] }
[ 'Europe/Bucharest' ] [ 'h23' ] [ 'gregory' ]
{ direction: 'ltr' } { direction: 'rtl' } [ 'arab' ]
[ 'emoji', 'eor' ]

Greșeli frecvente

  • Folosești proprietățile vechi weekInfo sau timeZones (fără get), din primele implementări. Au fost înlocuite cu metodele getWeekInfo(), getTimeZones() etc.

Comenzi înrudite