Skip to content
github-actions[bot] edited this page Aug 25, 2026 · 7 revisions

@elite-dangerous-almanac/core / i18n

i18n

Sparse, source-backed localized display names for Elite Dangerous outfitting and engineering catalogues.

Each lookup takes the same Frontier symbol as its owning catalogue and a BCP 47 locale. English is complete and exactly matches the owning record's name. Other locales are intentionally sparse: the function returns null when its pinned sources carry no translation, leaving the application in control of fallback policy. A source-backed localized spelling can be identical to English; the lookup returns explicit source values verbatim but never manufactures an English fallback. The catalogues carry English, French, German, Portuguese, Russian and Spanish only, each stored under a bare language tag: a regional or script subtag is dropped (de-DEde), and any other language is an unsupported locale.

How sparse, dataset by dataset. Each column below is the percentage of that lookup's keys carrying a stored value for the locale, so a 0 means the dataset holds nothing in that language at all and the lookup returns null for every key: German module names are near-complete, and German ship names do not exist. Plan fallback per lookup rather than per application. The table is generated from data/i18n/, so it moves when the data does.

Lookup Keys en de es fr pt ru
getBlueprintName 107 100 100 100 100 100 100
getExperimentalEffectName 86 100 97 98 98 98 98
getMicroResourceName 226 100 96 100 99 83 100
getMaterialName 146 100 87 100 95 95 100
getModuleName 1199 100 93 90 90 96 96
getPreEngineeredVariantName 76 100 88 85 85 67 96
getOutfittingFamilyName 77 100 75 75 75 75 75
getShipName 48 100 0 100 91 79 100
getEngineeringGroupName 48 100 0 0 0 91 91
getExperimentalEffectDescription 29 100 0 0 0 0 0
getShipManufacturer 48 100 0 0 0 0 0

Each dataset lives in a separate runtime module. Import from this barrel for convenience or from the corresponding i18n/* subpath for an explicit bundle boundary.

Structured diagnostic helpers expose their current English fallback only for English locales and return null otherwise, so a UI never mistakes English prose for a requested translation. Stable codes and params remain available for applications that supply their own message catalogues.

Example

import {
  getBlueprintName,
  getMaterialName,
  getModuleName,
  getShipName,
} from '@elite-dangerous-almanac/core/i18n';

getModuleName('Int_Hyperdrive_Size6_Class5', 'de'); // -> 'Frameshiftantrieb'
getBlueprintName('FSD_LongRange', 'de-DE'); // -> 'Erhöhte FSA-Reichweite'
getMaterialName('GridResistors', 'de'); // -> 'Gitterwiderstände'

// Sparseness is per dataset, not per locale: no hull has a German name.
getShipName('Empire_Trader', 'fr'); // -> 'Imperial Clipper'
getShipName('Empire_Trader', 'de'); // -> null

Interfaces

Type Aliases

Functions

API

Guides
astro
Classes (1)
ProceduralSystem

Properties

Accessors

Methods

Interfaces (16)
Type Aliases (3)
Variables (11)
Functions (37)
Subpath modules (3)
commodities
Interfaces (1)
Type Aliases (1)
Variables (3)
Functions (3)
equipment
Interfaces (6)
Type Aliases (8)
Variables (3)
Functions (10)
Subpath modules (2)
i18n
Interfaces (1)
Type Aliases (1)
Functions (17)
materials
Enumerations (2)
Interfaces (2)
Type Aliases (2)
Variables (9)
Functions (9)
ships
Classes (3)
BuildMetrics

Methods

LoadoutEditError

Constructors

Properties

Methods

ShipLoadout

Accessors

Methods

Interfaces (125)
Type Aliases (44)
Variables (10)
Functions (85)
Subpath modules (8)

Clone this wiki locally