getLocaleEraNames
Signature
Section titled “Signature”getLocaleEraNames(locale: string | string[], style?: LocaleNameStyle): string[]Return a locale’s Gregorian era names as [BCE-label, CE-label].
- The two-element array is [Before Common Era label, Common Era label].
- Uses the host runtime’s
Intldata viaIntl.DateTimeFormat, so output depends on the runtime’s ICU build (full-ICU runtimes localize every locale; partial-ICU runtimes fall back to English). - If a locale has no distinct BCE/CE era names, both array elements contain the same string — the function never returns a sentinel for a valid locale, only for invalid input.
- A
-u-ca-subtag inlocaleis ignored. Both lookups passcalendar: "gregory"in the options bag, and ECMA-402’sResolveLocaleranks an options value above the locale extension, sogetLocaleEraNames("en-US-u-ca-buddhist")returns the same["Before Christ", "Anno Domini"]asgetLocaleEraNames("en-US"). That is deliberate — the function is Gregorian by contract — but it means the tag is accepted and overridden, not rejected. For another calendar’s names, format a date in it:formatDate("2024-03-15", "en-US-u-ca-buddhist", { era: "long", year: "numeric" }). - Returns
[]iflocaleis not a well-formed BCP 47 tag (ECMA-402IsWellFormedLanguageTag). A well-formed tag with no matching locale data is not an error: it falls back to the host’s default locale, as ECMA-402ResolveLocalerequires.
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
locale | string | string[] | BCP 47 locale tag (e.g. “en-US”, “fr-FR”, “ar-SA”), or a preference list of tags (ECMA-402; the first with locale data is read). Required: omitted, or an empty list (which ECMA-402 would resolve to the host default), returns [] |
style | LocaleNameStyle | Optional name style: "long" (default), "short", or "narrow" |
Returns
Section titled “Returns”2-element [BCE-label, CE-label] array, or [] on invalid input
Related types
Section titled “Related types”Examples
Section titled “Examples”import { getLocaleEraNames } from "@northguild/gmt/plain/locale";
getLocaleEraNames("en-US") // ["Before Christ", "Anno Domini"]