@elite-dangerous-almanac/core 0.2.7 → 0.2.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/PROVENANCE/astro/SOURCES.md +13 -12
- package/PROVENANCE/commodities/SOURCES.md +50 -6
- package/PROVENANCE/equipment/SOURCES.md +229 -29
- package/PROVENANCE/i18n/SOURCES.md +328 -73
- package/PROVENANCE/ships/SOURCES.md +352 -216
- package/README.md +30 -7
- package/THIRD_PARTY_NOTICES.md +12 -1
- package/dist/astro/body-rings.d.ts +2 -2
- package/dist/astro/codex-region-lookup.d.ts +1 -1
- package/dist/astro/codex-region-lookup.js +1 -1
- package/dist/astro/hand-authored-regions.d.ts +1 -1
- package/dist/astro/index.d.ts +1 -1
- package/dist/astro/index.js +1 -1
- package/dist/astro/naming-region-origins.d.ts +1 -1
- package/dist/astro/naming-region-origins.js +1 -1
- package/dist/astro/nebulae-all.d.ts +4 -6
- package/dist/astro/nebulae-all.js +1 -1
- package/dist/astro/nebulae-all.js.map +1 -1
- package/dist/astro/nebulae-planetary.d.ts +4 -5
- package/dist/astro/nebulae-planetary.js +1 -1
- package/dist/astro/nebulae-procgen.d.ts +3 -3
- package/dist/astro/nebulae-real.d.ts +3 -3
- package/dist/astro/nebulae.d.ts +8 -8
- package/dist/astro/permit-locked-regions.d.ts +2 -2
- package/dist/astro/permit-locked-systems.d.ts +1 -1
- package/dist/astro/permit-locks.d.ts +2 -2
- package/dist/astro/procedural-system.d.ts +3 -3
- package/dist/astro/procedural-system.js +1 -1
- package/dist/astro/system-address.d.ts +1 -1
- package/dist/astro/system-address.js +1 -1
- package/dist/astro/system-name.js +1 -1
- package/dist/{chunk-XSLPWM5N.js → chunk-2J6NNI3Y.js} +1 -1
- package/dist/{chunk-DWRNXUAX.js → chunk-2KIZN3BY.js} +1 -1
- package/dist/{chunk-J7BM5NGK.js → chunk-2TY42PTF.js} +1 -1
- package/dist/{chunk-MVBVXK3G.js → chunk-3GNYPM6J.js} +1 -1
- package/dist/{chunk-MVBVXK3G.js.map → chunk-3GNYPM6J.js.map} +1 -1
- package/dist/{chunk-773VO2GK.js → chunk-4T3TTYUT.js} +1 -1
- package/dist/{chunk-773VO2GK.js.map → chunk-4T3TTYUT.js.map} +1 -1
- package/dist/chunk-7C7NJWCF.js +1 -0
- package/dist/chunk-7C7NJWCF.js.map +1 -0
- package/dist/{chunk-FMA36V6A.js → chunk-7Y5EK2VO.js} +1 -1
- package/dist/{chunk-FMA36V6A.js.map → chunk-7Y5EK2VO.js.map} +1 -1
- package/dist/chunk-AC3U7LRK.js +1 -0
- package/dist/{chunk-MGRDB2BZ.js.map → chunk-AC3U7LRK.js.map} +1 -1
- package/dist/{chunk-BJU27V6C.js → chunk-AUBV6S7V.js} +1 -1
- package/dist/{chunk-BJU27V6C.js.map → chunk-AUBV6S7V.js.map} +1 -1
- package/dist/{chunk-DI5RXSJR.js → chunk-BVLBS2QY.js} +1 -1
- package/dist/{chunk-DI5RXSJR.js.map → chunk-BVLBS2QY.js.map} +1 -1
- package/dist/chunk-C3YZ5KTA.js +1 -0
- package/dist/chunk-C3YZ5KTA.js.map +1 -0
- package/dist/{chunk-6UNAD74Z.js → chunk-C4FUV6GF.js} +1 -1
- package/dist/{chunk-6UNAD74Z.js.map → chunk-C4FUV6GF.js.map} +1 -1
- package/dist/chunk-CEF7SMB2.js +1 -0
- package/dist/chunk-CEF7SMB2.js.map +1 -0
- package/dist/chunk-E2HDF6PJ.js +1 -0
- package/dist/chunk-E2HDF6PJ.js.map +1 -0
- package/dist/{chunk-OFZGNWBT.js → chunk-ETREYN5U.js} +1 -1
- package/dist/{chunk-OFZGNWBT.js.map → chunk-ETREYN5U.js.map} +1 -1
- package/dist/{chunk-KBCA4GEZ.js → chunk-FP2TQJZP.js} +1 -1
- package/dist/{chunk-F7VWRDSL.js → chunk-G7WARJ3X.js} +1 -1
- package/dist/chunk-G7WARJ3X.js.map +1 -0
- package/dist/{chunk-Z4OUB4SJ.js → chunk-GLTCCDN5.js} +1 -1
- package/dist/{chunk-Z4OUB4SJ.js.map → chunk-GLTCCDN5.js.map} +1 -1
- package/dist/chunk-GVNTKCVF.js +1 -0
- package/dist/chunk-GVNTKCVF.js.map +1 -0
- package/dist/{chunk-Q6YDPREF.js → chunk-GZLD7RTK.js} +1 -1
- package/dist/{chunk-Q6YDPREF.js.map → chunk-GZLD7RTK.js.map} +1 -1
- package/dist/chunk-HIJR7DOC.js +1 -0
- package/dist/chunk-HIJR7DOC.js.map +1 -0
- package/dist/{chunk-ETWMPMZP.js → chunk-K5JK3XQB.js} +1 -1
- package/dist/{chunk-GRIK3EDH.js → chunk-KY7KSPU6.js} +1 -1
- package/dist/{chunk-GRIK3EDH.js.map → chunk-KY7KSPU6.js.map} +1 -1
- package/dist/{chunk-EHFHRQEP.js → chunk-M4STXLXO.js} +1 -1
- package/dist/{chunk-EHFHRQEP.js.map → chunk-M4STXLXO.js.map} +1 -1
- package/dist/{chunk-NZXSIHAW.js → chunk-OSMBAFRW.js} +1 -1
- package/dist/{chunk-NZXSIHAW.js.map → chunk-OSMBAFRW.js.map} +1 -1
- package/dist/chunk-PIU24HRN.js +1 -0
- package/dist/chunk-PIU24HRN.js.map +1 -0
- package/dist/{chunk-ELT3FEA4.js → chunk-PKKBYBL4.js} +1 -1
- package/dist/{chunk-ELT3FEA4.js.map → chunk-PKKBYBL4.js.map} +1 -1
- package/dist/{chunk-6HMIF2RJ.js → chunk-Q647OXON.js} +1 -1
- package/dist/{chunk-6HMIF2RJ.js.map → chunk-Q647OXON.js.map} +1 -1
- package/dist/{chunk-BMQM4JBL.js → chunk-QPT2WJYN.js} +1 -1
- package/dist/{chunk-BMQM4JBL.js.map → chunk-QPT2WJYN.js.map} +1 -1
- package/dist/{chunk-A6OINYNP.js → chunk-R2AEZYX7.js} +1 -1
- package/dist/chunk-RA4YJBU5.js +1 -0
- package/dist/chunk-RA4YJBU5.js.map +1 -0
- package/dist/{chunk-MRLUWHGI.js → chunk-RJ3ZLQRB.js} +1 -1
- package/dist/{chunk-MRLUWHGI.js.map → chunk-RJ3ZLQRB.js.map} +1 -1
- package/dist/chunk-SFEQXUIA.js +1 -0
- package/dist/chunk-SIL356HB.js +1 -0
- package/dist/chunk-SIL356HB.js.map +1 -0
- package/dist/chunk-SS7HVNP5.js +1 -0
- package/dist/chunk-SS7HVNP5.js.map +1 -0
- package/dist/chunk-TRGHPX2O.js +1 -0
- package/dist/chunk-TRGHPX2O.js.map +1 -0
- package/dist/{chunk-GMTAFUAG.js → chunk-TYRH73MO.js} +1 -1
- package/dist/{chunk-GMTAFUAG.js.map → chunk-TYRH73MO.js.map} +1 -1
- package/dist/{chunk-7TVFV3VO.js → chunk-U3IRMXMR.js} +1 -1
- package/dist/{chunk-A7IVMYNF.js → chunk-U73MBQ45.js} +1 -1
- package/dist/{chunk-A7IVMYNF.js.map → chunk-U73MBQ45.js.map} +1 -1
- package/dist/{chunk-IZIIGK3W.js → chunk-UE22QU7A.js} +1 -1
- package/dist/{chunk-IZIIGK3W.js.map → chunk-UE22QU7A.js.map} +1 -1
- package/dist/{chunk-DBDCOHI4.js → chunk-UI5RROGI.js} +1 -1
- package/dist/{chunk-DBDCOHI4.js.map → chunk-UI5RROGI.js.map} +1 -1
- package/dist/chunk-URRPEUIK.js +1 -0
- package/dist/{chunk-QJECDMQQ.js.map → chunk-URRPEUIK.js.map} +1 -1
- package/dist/chunk-UTWZZOSA.js +1 -0
- package/dist/chunk-UTWZZOSA.js.map +1 -0
- package/dist/{chunk-ZEN5K3GE.js → chunk-UVX7RCMP.js} +1 -1
- package/dist/{chunk-ZEN5K3GE.js.map → chunk-UVX7RCMP.js.map} +1 -1
- package/dist/{chunk-7ATBEOVC.js → chunk-WG4DPXJI.js} +1 -1
- package/dist/{chunk-XFDMCPDW.js → chunk-WZIBBJHA.js} +1 -1
- package/dist/{chunk-XFDMCPDW.js.map → chunk-WZIBBJHA.js.map} +1 -1
- package/dist/{chunk-7S7ZTZZY.js → chunk-X3MXPE7G.js} +1 -1
- package/dist/{chunk-7S7ZTZZY.js.map → chunk-X3MXPE7G.js.map} +1 -1
- package/dist/{chunk-SD6GNFDX.js → chunk-YBE5M27G.js} +1 -1
- package/dist/{chunk-SD6GNFDX.js.map → chunk-YBE5M27G.js.map} +1 -1
- package/dist/chunk-ZBUTGTZ3.js +1 -0
- package/dist/chunk-ZBUTGTZ3.js.map +1 -0
- package/dist/commodities/commodities-all.d.ts +2 -2
- package/dist/commodities/commodities-all.js +1 -1
- package/dist/commodities/commodities-rare.d.ts +3 -4
- package/dist/commodities/commodities-rare.js +1 -1
- package/dist/commodities/commodities-standard.d.ts +7 -7
- package/dist/commodities/commodities-standard.js +1 -1
- package/dist/commodities/commodities.d.ts +12 -12
- package/dist/commodities/commodities.js +1 -1
- package/dist/commodities/index.js +1 -1
- package/dist/equipment/engineering.d.ts +58 -1
- package/dist/equipment/engineering.js +1 -1
- package/dist/equipment/index.d.ts +14 -3
- package/dist/equipment/index.js +1 -1
- package/dist/equipment/modification-journal.js +1 -1
- package/dist/equipment/modifications.d.ts +43 -11
- package/dist/equipment/modifications.js +1 -1
- package/dist/equipment/suits.d.ts +2 -115
- package/dist/equipment/suits.js +1 -1
- package/dist/equipment/tools.d.ts +102 -0
- package/dist/equipment/tools.js +1 -0
- package/dist/equipment/tools.js.map +1 -0
- package/dist/equipment/upgrade-costs.d.ts +2 -3
- package/dist/equipment/upgrade-costs.js +1 -1
- package/dist/equipment/weapons.d.ts +2 -121
- package/dist/equipment/weapons.js +1 -1
- package/dist/i18n/blueprints.d.ts +2 -3
- package/dist/i18n/blueprints.js +1 -1
- package/dist/i18n/commodities.d.ts +36 -0
- package/dist/i18n/commodities.js +1 -0
- package/dist/i18n/commodities.js.map +1 -0
- package/dist/i18n/experimental-effect-descriptions.d.ts +5 -6
- package/dist/i18n/experimental-effect-descriptions.js +1 -1
- package/dist/i18n/experimental-effects.d.ts +2 -3
- package/dist/i18n/experimental-effects.js +1 -1
- package/dist/i18n/index.d.ts +87 -1
- package/dist/i18n/index.js +1 -1
- package/dist/i18n/materials.d.ts +2 -4
- package/dist/i18n/materials.js +1 -1
- package/dist/i18n/micro-resources.d.ts +2 -4
- package/dist/i18n/micro-resources.js +1 -1
- package/dist/i18n/module-families.d.ts +3 -5
- package/dist/i18n/module-families.js +1 -1
- package/dist/i18n/modules.d.ts +3 -6
- package/dist/i18n/modules.js +1 -1
- package/dist/i18n/personal-modifications.d.ts +66 -0
- package/dist/i18n/personal-modifications.js +1 -0
- package/dist/i18n/personal-modifications.js.map +1 -0
- package/dist/i18n/personal-tools.d.ts +33 -0
- package/dist/i18n/personal-tools.js +1 -0
- package/dist/i18n/personal-tools.js.map +1 -0
- package/dist/i18n/personal-weapons.d.ts +32 -0
- package/dist/i18n/personal-weapons.js +1 -0
- package/dist/i18n/personal-weapons.js.map +1 -0
- package/dist/i18n/pre-engineered.d.ts +1 -1
- package/dist/i18n/slots.d.ts +2 -2
- package/dist/i18n/suits.d.ts +89 -0
- package/dist/i18n/suits.js +1 -0
- package/dist/i18n/suits.js.map +1 -0
- package/dist/materials/index.d.ts +4 -3
- package/dist/materials/index.js +1 -1
- package/dist/materials/materials-all.d.ts +2 -2
- package/dist/materials/materials-all.js +1 -1
- package/dist/materials/materials-raw.d.ts +3 -4
- package/dist/materials/materials-raw.js +1 -1
- package/dist/materials/materials.d.ts +18 -15
- package/dist/materials/materials.js +1 -1
- package/dist/materials/micro-resources-all.d.ts +2 -2
- package/dist/materials/micro-resources-all.js +1 -1
- package/dist/materials/micro-resources-component.d.ts +2 -2
- package/dist/materials/micro-resources-consumable.d.ts +2 -2
- package/dist/materials/micro-resources-data.d.ts +2 -2
- package/dist/materials/micro-resources-item.d.ts +2 -2
- package/dist/materials/micro-resources.d.ts +17 -14
- package/dist/materials/micro-resources.js +1 -1
- package/dist/ships/ammunition.d.ts +4 -4
- package/dist/ships/blueprint-costs.d.ts +13 -13
- package/dist/ships/blueprint-costs.js +1 -1
- package/dist/ships/blueprint-journal.d.ts +3 -3
- package/dist/ships/blueprint-journal.js +1 -1
- package/dist/ships/blueprints.d.ts +3 -3
- package/dist/ships/build-metrics.d.ts +2 -1
- package/dist/ships/build-metrics.js +1 -1
- package/dist/ships/default-loadouts.d.ts +2 -3
- package/dist/ships/default-loadouts.js +1 -1
- package/dist/ships/engineering-options.d.ts +29 -32
- package/dist/ships/engineering-options.js +1 -1
- package/dist/ships/engineering.d.ts +1 -2
- package/dist/ships/engineering.js +1 -1
- package/dist/ships/experimental-effect-costs.d.ts +1 -1
- package/dist/ships/gunsights.d.ts +3 -3
- package/dist/ships/heat.d.ts +1 -1
- package/dist/ships/index.d.ts +4 -5
- package/dist/ships/index.js +1 -1
- package/dist/ships/loadout-validation.d.ts +8 -3
- package/dist/ships/loadout-validation.js +1 -1
- package/dist/ships/module-families.d.ts +1 -1
- package/dist/ships/modules-all.d.ts +2 -3
- package/dist/ships/modules-all.js +1 -1
- package/dist/ships/modules-core.d.ts +3 -3
- package/dist/ships/modules-hardpoint.d.ts +4 -5
- package/dist/ships/modules-hardpoint.js +1 -1
- package/dist/ships/modules-internal.d.ts +19 -9
- package/dist/ships/modules-internal.js +1 -1
- package/dist/ships/modules-utility.d.ts +3 -4
- package/dist/ships/modules-utility.js +1 -1
- package/dist/ships/modules.d.ts +31 -25
- package/dist/ships/modules.js +1 -1
- package/dist/ships/pre-engineered-stats.d.ts +1 -1
- package/dist/ships/pre-engineered-stats.js +1 -1
- package/dist/ships/pre-engineered.d.ts +9 -10
- package/dist/ships/pre-engineered.js +1 -1
- package/dist/ships/ship-loadout.d.ts +13 -7
- package/dist/ships/ship-loadout.js +1 -1
- package/dist/ships/ships.d.ts +1 -2
- package/dist/ships/ships.js +1 -1
- package/dist/ships/slots.d.ts +5 -5
- package/dist/suits-B37rAORs.d.ts +414 -0
- package/dist/{system-address-cyJaeZIS.d.ts → system-address-DmzXRD48.d.ts} +6 -4
- package/package.json +25 -1
- package/dist/chunk-4U7KYQGK.js +0 -1
- package/dist/chunk-4U7KYQGK.js.map +0 -1
- package/dist/chunk-6GJHUWMO.js +0 -1
- package/dist/chunk-6GJHUWMO.js.map +0 -1
- package/dist/chunk-77TT4K53.js +0 -1
- package/dist/chunk-B7EYTZRK.js +0 -1
- package/dist/chunk-B7EYTZRK.js.map +0 -1
- package/dist/chunk-C5HG4GJI.js +0 -1
- package/dist/chunk-C5HG4GJI.js.map +0 -1
- package/dist/chunk-F7VWRDSL.js.map +0 -1
- package/dist/chunk-KLC5XT6F.js +0 -1
- package/dist/chunk-KLC5XT6F.js.map +0 -1
- package/dist/chunk-MGRDB2BZ.js +0 -1
- package/dist/chunk-QJECDMQQ.js +0 -1
- package/dist/chunk-TSEDU73T.js +0 -1
- package/dist/chunk-TSEDU73T.js.map +0 -1
- package/dist/chunk-XRGECU7S.js +0 -1
- package/dist/chunk-XRGECU7S.js.map +0 -1
- /package/dist/{chunk-XSLPWM5N.js.map → chunk-2J6NNI3Y.js.map} +0 -0
- /package/dist/{chunk-DWRNXUAX.js.map → chunk-2KIZN3BY.js.map} +0 -0
- /package/dist/{chunk-J7BM5NGK.js.map → chunk-2TY42PTF.js.map} +0 -0
- /package/dist/{chunk-KBCA4GEZ.js.map → chunk-FP2TQJZP.js.map} +0 -0
- /package/dist/{chunk-ETWMPMZP.js.map → chunk-K5JK3XQB.js.map} +0 -0
- /package/dist/{chunk-A6OINYNP.js.map → chunk-R2AEZYX7.js.map} +0 -0
- /package/dist/{chunk-77TT4K53.js.map → chunk-SFEQXUIA.js.map} +0 -0
- /package/dist/{chunk-7TVFV3VO.js.map → chunk-U3IRMXMR.js.map} +0 -0
- /package/dist/{chunk-7ATBEOVC.js.map → chunk-WG4DPXJI.js.map} +0 -0
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
# Localized game-name catalogues
|
|
2
2
|
|
|
3
3
|
These catalogues keep the canonical English display names already published by the
|
|
4
|
-
ships data
|
|
4
|
+
ships, equipment, materials and commodities data domains and add only localized values
|
|
5
|
+
carried explicitly by accepted sources. Where a catalogue holds display prose rather
|
|
6
|
+
than a name, the owning domain publishes no English for it and all six values are the
|
|
7
|
+
source's own.
|
|
5
8
|
They are deliberately sparse: absence means that no accepted source carried a value, and
|
|
6
9
|
the lookup API returns `null` for that locale rather than treating English as a
|
|
7
10
|
translation.
|
|
@@ -26,33 +29,39 @@ tag follows the rule above, so `pt-PT` resolves to Brazilian Portuguese.
|
|
|
26
29
|
- **Acquired:** 2026-08-30 UTC.
|
|
27
30
|
- **In-game localisation revision:** none published; the game ships no immutable
|
|
28
31
|
identifier for its localisation tables. The acquired table is the evidence.
|
|
29
|
-
- **Derivation:**
|
|
32
|
+
- **Derivation:** every current module symbol and English name comes from the four
|
|
30
33
|
`data/ships/modules-*.jsonc` catalogues, which stay authoritative for canonical
|
|
31
34
|
English. Each symbol joins case-insensitively to the in-game module localisation
|
|
32
35
|
identity, which carries a `name`, a `longname` and an `info` string per locale. The
|
|
33
|
-
join is exact and total: every one of
|
|
36
|
+
join is exact and total over the symbols the acquired table covers: every one of them
|
|
37
|
+
resolves. The **unreleased** Large Planetary Vehicle Hangars postdate that table
|
|
38
|
+
(§`data/ships/SOURCES.md`) and are joined to a later observation of the same
|
|
39
|
+
localisation identities instead, acquired 2026-09-02 UTC: it names
|
|
40
|
+
`Int_LargeBuggyBay_Size{2,4,6}_Class3` and their `_Free` twins in all six locales. It
|
|
41
|
+
does not name the Mk II line, whose three records carry English alone.
|
|
34
42
|
- **`longname` is the name taken.** It is the outfitting list's full name and equals
|
|
35
43
|
the canonical English on 1,041 of the symbols, where `name` — the abbreviated panel
|
|
36
44
|
form — equals it on 726. **Both totals were counted over the 1,199-symbol set that
|
|
37
45
|
preceded the removal of the five plain size-8 drives (§`data/ships/SOURCES.md`), and
|
|
38
46
|
are not re-derived here:** the in-game localisation table is not vendored, so whether
|
|
39
47
|
those five sat inside either total cannot be checked from this repository. Read them
|
|
40
|
-
as upper bounds over
|
|
48
|
+
as upper bounds over the current symbol set until the table is re-acquired. `name` is taken
|
|
41
49
|
only where a longname is a template rather than a name, which is the cargo racks,
|
|
42
50
|
fuel tanks and corrosion-resistant racks whose longname carries a capacity.
|
|
43
51
|
- **Aliasing is followed.** A localisation value may be a `$Other_Key;` pointer rather
|
|
44
52
|
than text; roughly three thousand of the keys are. Each is followed to the entry
|
|
45
53
|
holding real text before anything is stored, and a value still carrying a `$` token
|
|
46
54
|
after that is not a name and is rejected.
|
|
47
|
-
- **The `(Free)`
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
55
|
+
- **The `(Free)` grants have no name of their own** — theirs is a template wrapping the
|
|
56
|
+
base module's. Their canonical English is already the base module's, so they share
|
|
57
|
+
its record. This covers the six Vessel Hangar grants and the three unreleased Large
|
|
58
|
+
Planetary Vehicle Hangar grants, observed as "Large Planetary Vehicle Hangar (Free)"
|
|
59
|
+
and its five translations — each the base name plus a rendered marker.
|
|
60
|
+
- **The in-game table is authoritative over the EDDI and EDSY joins.** It carries 349
|
|
61
|
+
values absent from those registries and differs from them in 3,135 cells across 324
|
|
62
|
+
distinct record-and-locale pairs: 73 differ only in letter case, 10 only in punctuation
|
|
63
|
+
or accents, and 241 in wording. Many of the last are the game being specific where the
|
|
64
|
+
registries are general — Russian `Двигатели` is `Маневровые двигатели`, Brazilian
|
|
56
65
|
Portuguese `Propulsores` becomes `Propulsores de desempenho melhorado`.
|
|
57
66
|
- **The least abbreviated spelling is the one stored**, as it is in
|
|
58
67
|
`material-names.jsonc`. The outfitting panel shortens a label that will not fit, and
|
|
@@ -66,19 +75,37 @@ tag follows the rule above, so `pt-PT` resolves to Brazilian Portuguese.
|
|
|
66
75
|
`Elektr. Gegenmaßnahmen`. **Ten values remain abbreviated** because no source spells
|
|
67
76
|
them out — the Mk II gravity-optimised thrusters in four locales, the Advanced
|
|
68
77
|
Planetary Approach Suite in three, and three others — and there the alternative is a
|
|
69
|
-
bare `Schubdüsen` or `Propulseurs` that loses what distinguishes the module.
|
|
78
|
+
bare `Schubdüsen` or `Propulseurs` that loses what distinguishes the module. The
|
|
79
|
+
unreleased Large Planetary Vehicle Hangar's Russian
|
|
80
|
+
`Крупный гараж для планет. транспорта` joins them: its `планет.` is the only spelling
|
|
81
|
+
observed, and expanding it to match the shipped hangar's `планетарного` would be this
|
|
82
|
+
repository writing the translation rather than reading it.
|
|
70
83
|
- **A rendered capacity or grant marker is not a name.** A longname may carry a module's
|
|
71
84
|
own capacity or a `(Free)` marker — `Anti-Korrosions-Frachtgestell (KAP.: 1)` — which
|
|
72
85
|
describes one module rather than naming the family, so it is rejected and the source's
|
|
73
86
|
other field is read instead.
|
|
74
87
|
- **One record per canonical English name.** Where the source distinguishes in another
|
|
75
88
|
locale what English spells the same way, the reading most symbols share is stored:
|
|
76
|
-
`Lightweight Alloy` and `Reinforced Alloy` are singular on
|
|
89
|
+
`Lightweight Alloy` and `Reinforced Alloy` are singular on most hulls and plural on the
|
|
77
90
|
rest, and the singular is kept, which is also the number the English carries.
|
|
78
|
-
`Hatch Breaker Limpet Controller` is specific on
|
|
91
|
+
`Hatch Breaker Limpet Controller` is specific on most symbols and generic on one, and
|
|
79
92
|
the specific is kept.
|
|
80
|
-
- **Coverage:** complete.
|
|
81
|
-
|
|
93
|
+
- **Coverage:** complete. Every symbol carries all six locales — but five of those
|
|
94
|
+
values are **constructed rather than read**; see the manual correction below.
|
|
95
|
+
- **Manual corrections:** the **Mk II** Large Planetary Vehicle Hangar's five non-English
|
|
96
|
+
names are built, not sourced. Nothing acquired names that unreleased module in any
|
|
97
|
+
locale but English, and rather than leave the lookups answering `null` the repository
|
|
98
|
+
owner chose to form each as the plain hangar's own translation with `Mk II` appended —
|
|
99
|
+
`Großer Planetenfahrzeug-Hangar Mk II`, `Hangar de vehículo planetario Mk II`,
|
|
100
|
+
`Grand hangar des véhicules planétaires Mk II`,
|
|
101
|
+
`Hangar de veículo planetário grande Mk II`,
|
|
102
|
+
`Крупный гараж для планет. транспорта Mk II`. Four locales have a precedent for that
|
|
103
|
+
shape in the shipped Mk II Vessel Hangar and Mk II Cargo Rack, which suffix `Mk II`;
|
|
104
|
+
**German does not** — Frontier writes `Mk-II-Schiffshangar` for the hangar and
|
|
105
|
+
`Frachtgestell für Mk II` for the rack, so the German value here matches neither and is
|
|
106
|
+
the likeliest of the five to be wrong. All five are to be replaced by a real
|
|
107
|
+
localisation reading on release, and none should be treated as evidence of what
|
|
108
|
+
Frontier publishes. #16 tracks them with the records themselves.
|
|
82
109
|
|
|
83
110
|
## `blueprint-names.jsonc`
|
|
84
111
|
|
|
@@ -87,11 +114,11 @@ tag follows the rule above, so `pt-PT` resolves to Brazilian Portuguese.
|
|
|
87
114
|
database version `424009901`, last-modified marker `20260810`.
|
|
88
115
|
- **In-game localisation revision:** none published; the game ships no immutable
|
|
89
116
|
identifier for its localisation tables. The acquired table is the evidence.
|
|
90
|
-
- **Derivation:** each
|
|
117
|
+
- **Derivation:** each current key and its English name comes from
|
|
91
118
|
`data/ships/blueprints.jsonc`. Names remain keyed per blueprint because a single
|
|
92
119
|
English phrase can have different grammatical translations for different module
|
|
93
120
|
families. The Frontier symbol joins case-insensitively to the in-game modification
|
|
94
|
-
name table, which supplies every locale for the
|
|
121
|
+
name table, which supplies every locale for the recipes it names. The rest
|
|
95
122
|
are ids this repository keys separately because their numbers differ, where the game
|
|
96
123
|
offers only the generic recipe's menu entry and so publishes only its name: each takes
|
|
97
124
|
the locales of the generic id it shadows — `AFM_Shielded`, `Refineries_Shielded` and
|
|
@@ -105,7 +132,7 @@ tag follows the rule above, so `pt-PT` resolves to Brazilian Portuguese.
|
|
|
105
132
|
canonical name is kept, as it is for every other blueprint. Where EDSY and the in-game
|
|
106
133
|
table disagree the in-game value is kept, as everywhere else in this repository: it
|
|
107
134
|
differs for ten values across four locales, all of them wording, none of them meaning.
|
|
108
|
-
- **Coverage:** complete.
|
|
135
|
+
- **Coverage:** complete. Every blueprint carries all six locales.
|
|
109
136
|
- **Manual corrections:** two values in the in-game table carry a stray leading or
|
|
110
137
|
trailing ASCII space, marked in the acquired table and removed here so a successful
|
|
111
138
|
lookup is already trimmed like every other catalogue name: French `FSD_FastBoot` (which
|
|
@@ -118,13 +145,12 @@ tag follows the rule above, so `pt-PT` resolves to Brazilian Portuguese.
|
|
|
118
145
|
- **Acquired:** 2026-08-30 UTC.
|
|
119
146
|
- **In-game localisation revision:** none published; the game ships no immutable
|
|
120
147
|
identifier for its localisation tables. The acquired table is the evidence.
|
|
121
|
-
- **Derivation:** each
|
|
148
|
+
- **Derivation:** each current key and its English name comes from
|
|
122
149
|
`data/ships/experimental-effects.jsonc`, which stays authoritative for canonical
|
|
123
150
|
English. The Frontier symbol joins to the in-game experimental-effect name table,
|
|
124
|
-
which supplies every locale for all
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
five non-English `special_super_penetrator` names and the German
|
|
151
|
+
which supplies every locale for all of them. Where it and EDSY disagree, the in-game value
|
|
152
|
+
is kept, as everywhere else in this repository. It supplies six values EDSY does not
|
|
153
|
+
carry — all five non-English `special_super_penetrator` names and the German
|
|
128
154
|
`special_weapon_rateoffire` — and changes two EDSY already carried: German
|
|
129
155
|
`special_regeneration_sequence` is "Regenerationssequenz" (EDSY
|
|
130
156
|
"Regenerierungssequenz") and Brazilian Portuguese `special_lock_breaker` is "Quebra da
|
|
@@ -134,7 +160,7 @@ tag follows the rule above, so `pt-PT` resolves to Brazilian Portuguese.
|
|
|
134
160
|
`special_super_penetrator_cooled` are pre-engineered rail-gun variants the game does
|
|
135
161
|
not name separately, so the source marks them as carrying the base effect's entry.
|
|
136
162
|
Each takes those values, exactly as a shadowing blueprint id takes its generic's.
|
|
137
|
-
- **Coverage:** complete.
|
|
163
|
+
- **Coverage:** complete. Every effect carries all six locales.
|
|
138
164
|
- **Manual corrections:** the source appends a `†` to every marked cell of the three
|
|
139
165
|
`_cooled` variants above; it is the acquisition's own shadow marker rather than part of
|
|
140
166
|
a name, and is removed here.
|
|
@@ -144,7 +170,7 @@ tag follows the rule above, so `pt-PT` resolves to Brazilian Portuguese.
|
|
|
144
170
|
- **Acquired:** 2026-08-16 UTC.
|
|
145
171
|
- **Odyssey Materials Helper revision:** commit
|
|
146
172
|
`23343c453938e724f317c56e9eb7db0dbfa71f78`.
|
|
147
|
-
- **Derivation:** each
|
|
173
|
+
- **Derivation:** each current symbol and its canonical English name comes
|
|
148
174
|
from the three `data/materials/materials-*.jsonc` catalogues. The lower-cased symbol
|
|
149
175
|
joins directly to the final component of Odyssey Materials Helper's message key in
|
|
150
176
|
`locale/material/horizons/{raw,manufactured,encoded}.csv`; only that row's explicit
|
|
@@ -155,14 +181,14 @@ tag follows the rule above, so `pt-PT` resolves to Brazilian Portuguese.
|
|
|
155
181
|
source values.
|
|
156
182
|
- **Second source, the in-game material localisation tables**, acquired 2026-08-30 UTC;
|
|
157
183
|
the game publishes no immutable identifier for them, so the acquired table is the
|
|
158
|
-
evidence. It covers
|
|
159
|
-
this repository, wins where the two disagree. That fills the
|
|
160
|
-
|
|
184
|
+
evidence. It covers every material in all six locales and, as everywhere else in
|
|
185
|
+
this repository, wins where the two disagree. That fills the values Odyssey Materials
|
|
186
|
+
Helper did not carry and restyles others it did: most are the French apostrophe
|
|
161
187
|
(the in-game tables use `'` throughout, as every other catalogue here does, where
|
|
162
|
-
Odyssey Materials Helper uses `’`),
|
|
188
|
+
Odyssey Materials Helper uses `’`), the next largest group is Spanish names the helper title-cased
|
|
163
189
|
(`Fragmento Caústico` against the game's `Fragmento cáustico`), and the rest are
|
|
164
190
|
wording.
|
|
165
|
-
- **Coverage:** complete.
|
|
191
|
+
- **Coverage:** complete. Every material carries all six locales.
|
|
166
192
|
- **Manual corrections:** six of the in-game values are the outfitting UI's own
|
|
167
193
|
abbreviations, shortened to fit its widget rather than translated differently —
|
|
168
194
|
`Comp. de destroços Guardian` against the helper's `Componentes de destroços Sentinela
|
|
@@ -183,26 +209,26 @@ tag follows the rule above, so `pt-PT` resolves to Brazilian Portuguese.
|
|
|
183
209
|
`23343c453938e724f317c56e9eb7db0dbfa71f78`.
|
|
184
210
|
- **Supplemental source:** in-game verification, acquired 2026-08-16 UTC; immutable
|
|
185
211
|
revision unavailable.
|
|
186
|
-
- **Derivation:** each
|
|
212
|
+
- **Derivation:** each current symbol and its canonical English name comes
|
|
187
213
|
from the four `data/materials/micro-resources-*.jsonc` catalogues. The 196 FDevIDs-backed
|
|
188
214
|
records join directly to the final component of Odyssey Materials Helper's message key
|
|
189
215
|
in `locale/material/odyssey/{asset,consumable,data,good}.csv`; only that row's explicit
|
|
190
|
-
localized columns are copied.
|
|
191
|
-
rows in Odyssey Materials Helper,
|
|
192
|
-
`SmallCapacityPowerRegulator
|
|
193
|
-
German, Spanish, French and Russian. In both cases the owning
|
|
194
|
-
authoritative for canonical English names.
|
|
216
|
+
localized columns are copied. All but two of the in-game-backed records also have
|
|
217
|
+
rows in Odyssey Materials Helper, the exceptions being `PowerVirus` and
|
|
218
|
+
`SmallCapacityPowerRegulator`. Every in-game-backed record takes the explicit in-game
|
|
219
|
+
`name` values for German, Spanish, French and Russian. In both cases the owning
|
|
220
|
+
catalogue remains authoritative for canonical English names.
|
|
195
221
|
- **Second source, the in-game micro-resource localisation tables**, acquired
|
|
196
222
|
2026-08-30 UTC; the game publishes no immutable identifier for them, so the acquired
|
|
197
|
-
table is the evidence. It covers
|
|
198
|
-
two disagree, on the same footing as the material tables above. That fills
|
|
199
|
-
remaining
|
|
200
|
-
`SmallCapacityPowerRegulator`, which no registry carries — and restyles
|
|
201
|
-
|
|
223
|
+
table is the evidence. It covers all but one symbol in all six locales and wins where the
|
|
224
|
+
two disagree, on the same footing as the material tables above. That fills every
|
|
225
|
+
remaining value — including the Brazilian Portuguese for `PowerVirus` and
|
|
226
|
+
`SmallCapacityPowerRegulator`, which no registry carries — and restyles others, mostly
|
|
227
|
+
the French apostrophe and the French Powerplay term, which the game
|
|
202
228
|
lower-cases (`Données classifiées de puissance`).
|
|
203
229
|
`PowerMegashipData` is absent from the micro-resource table and appears in the material
|
|
204
230
|
one; its values are taken from there.
|
|
205
|
-
- **Coverage:** complete.
|
|
231
|
+
- **Coverage:** complete. Every micro resource carries all six locales.
|
|
206
232
|
- **Manual corrections:** five in-game values are layout, not names. Four German
|
|
207
233
|
consumables carry a `<br>` inside a compound word that the UI wraps —
|
|
208
234
|
`Energie-<br>zelle`, `Splitter-<br>granate`, `Schild-<br>unterbrecher` and
|
|
@@ -223,9 +249,9 @@ tag follows the rule above, so `pt-PT` resolves to Brazilian Portuguese.
|
|
|
223
249
|
labels are copied verbatim. The join is on family identity rather than on English
|
|
224
250
|
string equality, because the English column of the in-game table *is* the canonical
|
|
225
251
|
English name the ships catalogue took from it.
|
|
226
|
-
- **Coverage:** English covers
|
|
227
|
-
|
|
228
|
-
|
|
252
|
+
- **Coverage:** English covers every family; the five other locales cover only the
|
|
253
|
+
families the in-game outfitting screen names. The families without a source-backed
|
|
254
|
+
label are: `axMissileRacks`, `axMultiCannons`, `cargoHatches`,
|
|
229
255
|
`causticSinkLaunchers`, `guardianGaussCannons`, `guardianHybridPowerDistributors`,
|
|
230
256
|
`guardianHybridPowerPlants`, `guardianNaniteTorpedoPylons`, `guardianPlasmaChargers`,
|
|
231
257
|
`guardianShardCannons`, `guardianShieldReinforcementPackages`,
|
|
@@ -239,21 +265,21 @@ tag follows the rule above, so `pt-PT` resolves to Brazilian Portuguese.
|
|
|
239
265
|
- **Acquired:** 2026-08-30 UTC.
|
|
240
266
|
- **In-game localisation revision:** none published; the game ships no immutable
|
|
241
267
|
identifier for its localisation tables. The acquired table is the evidence.
|
|
242
|
-
- **Derivation:** each
|
|
268
|
+
- **Derivation:** each current key comes from
|
|
243
269
|
`data/ships/experimental-effects.jsonc`; the Frontier symbol joins to the in-game
|
|
244
|
-
experimental-effect description table, which supplies every locale for all
|
|
245
|
-
values, English included, are the source's verbatim.
|
|
246
|
-
- **This catalogue
|
|
270
|
+
experimental-effect description table, which supplies every locale for all of them.
|
|
271
|
+
All six values, English included, are the source's verbatim.
|
|
272
|
+
- **This catalogue does not project the ships catalogue's `description`.** The two
|
|
247
273
|
answer different questions and are deliberately different strings. An effect's
|
|
248
274
|
`description` in `data/ships/experimental-effects.jsonc` is a mechanical note that
|
|
249
275
|
states what the `modifiers` list cannot — that High Yield Shell deals 50/50
|
|
250
|
-
kinetic/explosive damage with module splash, say — and
|
|
276
|
+
kinetic/explosive damage with module splash, say — and most effects need no
|
|
251
277
|
such note and carry none. What the game shows a player is display prose that names no
|
|
252
278
|
magnitudes ("Modified munitions that convert a portion of damage to explosive …"), and
|
|
253
279
|
it exists for every effect. Projecting one onto the other would have cost the
|
|
254
280
|
mechanical notes their numbers; storing the display prose here keeps each field doing
|
|
255
281
|
its own job, and the ships catalogue is unchanged.
|
|
256
|
-
- **Coverage:** complete.
|
|
282
|
+
- **Coverage:** complete. Every effect carries all six locales.
|
|
257
283
|
- **Manual corrections:** 26 of the source's descriptions begin with one or more
|
|
258
284
|
bracketed tokens — `[ShieldRegen]`, and `[SnsrBlinding][Heat]` on
|
|
259
285
|
`special_radiant_canister`. A token is byte-identical across all six locales and is
|
|
@@ -264,19 +290,19 @@ tag follows the rule above, so `pt-PT` resolves to Brazilian Portuguese.
|
|
|
264
290
|
## `pre-engineered-variant-names.jsonc`
|
|
265
291
|
|
|
266
292
|
- **Acquired:** 2026-08-18 UTC; the Merc-shop names 2026-08-22 UTC.
|
|
267
|
-
- **Derivation:**
|
|
293
|
+
- **Derivation:** every compound identity and English name comes from
|
|
268
294
|
`data/ships/pre-engineered.jsonc`. An identity combines the base module symbol,
|
|
269
295
|
blueprint, optional experimental effect and acquisition route. When a variant name
|
|
270
296
|
exactly matches its base module's canonical name, it reuses that record from
|
|
271
|
-
`module-names.jsonc`;
|
|
297
|
+
`module-names.jsonc`; each distinct display record is stored once. Fixed reward
|
|
272
298
|
names such as the three `Decorative_*` festive launchers remain canonical English.
|
|
273
|
-
- **The
|
|
299
|
+
- **The Merc-shop rows carry the shop's own names** — the shop
|
|
274
300
|
sells a "Far-Reaching Abrasion Blaster", not an Abrasion Blaster — so they do not reuse
|
|
275
301
|
their base module's record. All six locales are supplied by the repository owner from
|
|
276
302
|
the in-game shop listing; no registry publishes them. The Brazilian Portuguese column
|
|
277
303
|
was acquired 2026-08-30 UTC and agrees byte-for-byte with the five columns already
|
|
278
304
|
stored, which it does not change.
|
|
279
|
-
- **A tech-broker unlock may carry an unlock marker**, and
|
|
305
|
+
- **A tech-broker unlock may carry an unlock marker**, and some do — see
|
|
280
306
|
`data/ships/SOURCES.md`. Those names are not their base module's, so they do not reuse
|
|
281
307
|
its record. Where the marker is a manufacturer (`Sirius`, `Azimuth`) or a version
|
|
282
308
|
(`V1`) it is not a translatable word, so the localized value is that marker composed
|
|
@@ -300,39 +326,268 @@ tag follows the rule above, so `pt-PT` resolves to Brazilian Portuguese.
|
|
|
300
326
|
own localized name.
|
|
301
327
|
|
|
302
328
|
Replace any of the twelve with a source-backed value the moment one is published.
|
|
303
|
-
- **Coverage:** English
|
|
304
|
-
|
|
329
|
+
- **Coverage:** English, Brazilian Portuguese and Russian cover every variant. Ordinary
|
|
330
|
+
names inherit the explicit localized values available for their base
|
|
305
331
|
module; the Merc-shop names carry all six locales. The German, Spanish and French gaps
|
|
306
332
|
that remain are their base modules' own — the SCO drive and the Enhanced AX
|
|
307
333
|
Multi-Cannon carry no value in those locales for composition to build on.
|
|
308
334
|
- **Manual corrections:** none.
|
|
309
335
|
|
|
336
|
+
## `suit-names.jsonc`
|
|
337
|
+
|
|
338
|
+
- **Acquired:** 2026-09-01 UTC.
|
|
339
|
+
- **In-game localisation revision:** none published; the game ships no immutable
|
|
340
|
+
identifier for its localisation tables. The acquired table is the evidence.
|
|
341
|
+
- **Derivation:** the four suit families and their canonical English names come from
|
|
342
|
+
`data/equipment/suits.jsonc`, which stays authoritative for canonical English. Each
|
|
343
|
+
family's grade symbols join case-insensitively to the in-game suit localisation
|
|
344
|
+
identity, which carries a `name`, a `longname` and an `info` string per locale. The
|
|
345
|
+
join is exact and total: every grade symbol resolves.
|
|
346
|
+
- **`name` is the value taken.** It is the suit's own name and equals the canonical
|
|
347
|
+
English on all four families.
|
|
348
|
+
- **The manufacturer is not part of the name.** `longname` prefixes one —
|
|
349
|
+
`Remlok Maverick Suit`, `Supratech Artemis Suit`, `Manticore Dominator Suit` — which
|
|
350
|
+
names a Pioneer Supplies listing rather than the suit, so it is rejected the way a
|
|
351
|
+
rendered capacity is in `module-names.jsonc`. The brand is a proper noun the game
|
|
352
|
+
leaves in English in every locale, so composing it back on costs nothing but the
|
|
353
|
+
name it would displace.
|
|
354
|
+
- **A suit is named per family, not per grade.** Every grade of a family carries
|
|
355
|
+
byte-identical values in all six locales, so one record is stored per family and
|
|
356
|
+
`nameKeys` maps the family id and every grade symbol onto it. Both forms a consumer
|
|
357
|
+
holds therefore resolve: `Suit.family` and the `utilitysuit_class3` a journal line
|
|
358
|
+
writes. The flight suit has a single grade whose symbol *is* the family id, so it
|
|
359
|
+
contributes one identifier where the other families contribute their family id and
|
|
360
|
+
each grade symbol.
|
|
361
|
+
- **Coverage:** complete. Every identifier carries all six locales.
|
|
362
|
+
- **Two suits are not stored**, because `data/equipment/suits.jsonc` does not carry them:
|
|
363
|
+
the five `specialistsuit_class{1..5}` grades, which the source does name
|
|
364
|
+
(`Specialist Suit`, listed as `Remlok Paragon Specialist Suit`), and `hyperspacesuit`,
|
|
365
|
+
which carries no text at all. Storing a name for equipment no catalogue owns would
|
|
366
|
+
leave a lookup answering for something the library cannot otherwise describe.
|
|
367
|
+
- **Manual corrections:** none.
|
|
368
|
+
|
|
369
|
+
## `suit-descriptions.jsonc`
|
|
370
|
+
|
|
371
|
+
- **Acquired:** 2026-09-01 UTC.
|
|
372
|
+
- **In-game localisation revision:** none published; the game ships no immutable
|
|
373
|
+
identifier for its localisation tables. The acquired table is the evidence.
|
|
374
|
+
- **Derivation:** the same four families and the same identifier set as
|
|
375
|
+
`suit-names.jsonc`, joined to the `info` string of the in-game suit localisation
|
|
376
|
+
identity. All six values, English included, are the source's verbatim: the owning
|
|
377
|
+
catalogue publishes no description for a suit, so there is no canonical English here
|
|
378
|
+
to be authoritative for.
|
|
379
|
+
- **This is display prose, not the suit's stats.** `data/equipment/suits.jsonc` answers
|
|
380
|
+
what a suit does — shield strength, battery capacity, the four resistances — and the
|
|
381
|
+
description answers what it is for, naming no figure at all. Neither is projected onto
|
|
382
|
+
the other.
|
|
383
|
+
- **Coverage:** complete. Every identifier carries all six locales, and every grade of a
|
|
384
|
+
family shares its record exactly as in `suit-names.jsonc`.
|
|
385
|
+
- **The Specialist Suit grades carry no description at all**, which is a second reason
|
|
386
|
+
they are absent here beyond the owning catalogue not carrying them.
|
|
387
|
+
- **Manual corrections:** none. The English keeps the source's own mixed apostrophes
|
|
388
|
+
(`Manticore's`, `a user’s`); they are the game's prose and are stored as published.
|
|
389
|
+
|
|
390
|
+
## `personal-weapon-descriptions.jsonc`
|
|
391
|
+
|
|
392
|
+
- **Acquired:** 2026-09-01 UTC.
|
|
393
|
+
- **In-game localisation revision:** none published; the game ships no immutable
|
|
394
|
+
identifier for its localisation tables. The acquired table is the evidence.
|
|
395
|
+
- **Derivation:** every current weapon symbol comes from `data/equipment/weapons.jsonc`.
|
|
396
|
+
Each joins case-insensitively to the in-game weapon localisation identity and takes its
|
|
397
|
+
`info` string; the join is exact and total. All six values, English included, are the
|
|
398
|
+
source's verbatim, because the owning catalogue publishes no weapon description.
|
|
399
|
+
- **No sibling name catalogue exists**, and that is a decision rather than a gap — see
|
|
400
|
+
§Names this repository deliberately does not localize.
|
|
401
|
+
- **Coverage:** complete. Every weapon carries all six locales.
|
|
402
|
+
- **Two entries the source carries are not stored:** `wpn_h_launcher_rocket_sauto`
|
|
403
|
+
(`Karma HL-9`), the heavy rocket launcher no current catalogue owns, and
|
|
404
|
+
`wpn_m_submachinegun_kinetic_burst`, which the table lists with no text at all.
|
|
405
|
+
- **Manual corrections:** none.
|
|
406
|
+
|
|
407
|
+
## `personal-modification-names.jsonc`
|
|
408
|
+
|
|
409
|
+
- **Acquired:** 2026-09-01 UTC.
|
|
410
|
+
- **In-game localisation revision:** none published; the game ships no immutable
|
|
411
|
+
identifier for its localisation tables. The acquired table is the evidence.
|
|
412
|
+
- **Derivation:** every recipe symbol and its canonical English name comes from
|
|
413
|
+
`data/equipment/modifications.jsonc`, which stays authoritative for canonical English.
|
|
414
|
+
A symbol joins case-insensitively to the in-game modification identity as
|
|
415
|
+
`humanoidmod_<symbol>`, which carries a `name` and a `description` per locale.
|
|
416
|
+
- **The nine technology-specific recipes share the entry the game publishes.** Greater
|
|
417
|
+
Range, Headshot Damage and Improved Hip Fire Accuracy are one engineering option each
|
|
418
|
+
in game; this repository keys the Kinetic, Laser and Plasma recipes separately because
|
|
419
|
+
their material costs differ (§`data/equipment/SOURCES.md`). The `_kinetic`, `_laser`
|
|
420
|
+
and `_plasma` suffix is dropped before the join, so each of the three takes its generic
|
|
421
|
+
entry's locales — exactly as a shadowing blueprint id takes its generic's in
|
|
422
|
+
`blueprint-names.jsonc`. A smaller set of source entries therefore covers every recipe,
|
|
423
|
+
and the catalogue stores them once each: `nameKeys` maps a recipe symbol onto the entry the
|
|
424
|
+
game publishes, as `module-names.jsonc` maps a module symbol onto a shared name.
|
|
425
|
+
- **That shape is about visibility, not bytes.** Storing each shared entry three times
|
|
426
|
+
instead costs about the same, because the duplicate name records weigh roughly what
|
|
427
|
+
the `nameKeys` map does; the descriptions save about a fifteenth. What the
|
|
428
|
+
deduplicated form buys is that the sharing is stated in the data, rather than sitting in
|
|
429
|
+
six duplicate records a later edit could silently pull apart.
|
|
430
|
+
- **`Headshot Damage` is the one English value the game spells differently.** The in-game
|
|
431
|
+
menu reads `Headshot damage`; the owning catalogue's canonical `Headshot Damage` is
|
|
432
|
+
kept, as canonical English is kept everywhere in this directory. The lower-case
|
|
433
|
+
`Stowed reloading` the owning catalogue already carries *is* the game's own spelling
|
|
434
|
+
and agrees with it.
|
|
435
|
+
- **Coverage:** complete. Every recipe carries all six locales.
|
|
436
|
+
- **One in-game modification is not stored:** `humanoidmod_suit_headshotresistance`
|
|
437
|
+
(`Increased Helmet Protection`), which `data/equipment/modifications.jsonc` does not
|
|
438
|
+
carry as a recipe.
|
|
439
|
+
- **Manual corrections:** two German names are the engineering panel's own layout rather
|
|
440
|
+
than translations. `Kampf-Bewegungs-geschwindigkeit` and `Geräusch-unterdrückung` break
|
|
441
|
+
a compound word mid-noun, leaving a lower-case second half no German spelling has. The
|
|
442
|
+
whole word is kept in each, as it is for the wrapped consumables in
|
|
443
|
+
`micro-resource-names.jsonc`: `Kampfbewegungsgeschwindigkeit` and
|
|
444
|
+
`Geräuschunterdrückung`.
|
|
445
|
+
|
|
446
|
+
## `personal-modification-descriptions.jsonc`
|
|
447
|
+
|
|
448
|
+
- **Acquired:** 2026-09-01 UTC.
|
|
449
|
+
- **In-game localisation revision:** none published; the game ships no immutable
|
|
450
|
+
identifier for its localisation tables. The acquired table is the evidence.
|
|
451
|
+
- **Derivation:** the same recipe symbols as `personal-modification-names.jsonc`,
|
|
452
|
+
joined the same way and sharing the generic entry across the nine technology-specific
|
|
453
|
+
recipes for the same reason. Each takes the identity's `description` string. All six
|
|
454
|
+
values, English included, are the source's verbatim.
|
|
455
|
+
- **This is display prose, not the recipe's magnitudes.** The game says a modification
|
|
456
|
+
"allows more ammo to be carried for each weapon" and never how much more; the
|
|
457
|
+
`modifiers` list in `data/equipment/modifications.jsonc` is what states the multiplier,
|
|
458
|
+
and the two are deliberately different strings. It is also the only account of the ten
|
|
459
|
+
recipes whose `modifiers` list is empty — some switch a capability on, the rest move a
|
|
460
|
+
stat the panel puts no number on (§`data/equipment/SOURCES.md`).
|
|
461
|
+
- **Coverage:** complete. Every recipe carries all six locales.
|
|
462
|
+
- **Manual corrections:** none. The French
|
|
463
|
+
`weapon_backpackreloading` description keeps the non-breaking space the source sets
|
|
464
|
+
between a figure and its unit (`5 secondes`), which is French typography rather than
|
|
465
|
+
layout.
|
|
466
|
+
|
|
467
|
+
## `personal-tool-names.jsonc`
|
|
468
|
+
|
|
469
|
+
- **Acquired:** 2026-09-03 UTC.
|
|
470
|
+
- **In-game localisation revision:** none published; the game ships no immutable
|
|
471
|
+
identifier for its localisation tables. The acquired table is the evidence.
|
|
472
|
+
- **Derivation:** every tool id and its canonical English name comes from
|
|
473
|
+
`data/equipment/tools.jsonc`, which stays authoritative for canonical English. Each id
|
|
474
|
+
joins by name to the tool's row in the in-game localisation table, which carries a
|
|
475
|
+
`name` per locale. The join is exact and total: every id resolves, and every row's
|
|
476
|
+
English `name` equals the canonical English.
|
|
477
|
+
- **The library id is the only key.** The localisation table keys a tool row by an
|
|
478
|
+
internal identity no journal field carries (§`data/equipment/SOURCES.md`), so a
|
|
479
|
+
consumer never holds one and it is not stored. The library id is the single identifier
|
|
480
|
+
both `getPersonalToolName` and `getPersonalToolById` take, and a second key set would
|
|
481
|
+
let one of the two answer where the other cannot.
|
|
482
|
+
- **A value equal to the English is the game's own.** The game leaves `Arc Cutter` in
|
|
483
|
+
English in German, Spanish, French and Brazilian Portuguese, and `Genetic Sampler` in
|
|
484
|
+
German; Russian translates both. Storing them verbatim is what the sparse contract
|
|
485
|
+
requires: the lookup answers with a source value and never manufactures an English
|
|
486
|
+
fallback.
|
|
487
|
+
- **Coverage:** complete. Every tool carries all six locales.
|
|
488
|
+
- **Manual corrections:** none.
|
|
489
|
+
|
|
490
|
+
## `commodity-names.jsonc`
|
|
491
|
+
|
|
492
|
+
- **Acquired:** 2026-09-03 UTC.
|
|
493
|
+
- **In-game localisation revision:** none published; the game ships no immutable
|
|
494
|
+
identifier for its localisation tables. The acquired table is the evidence.
|
|
495
|
+
- **Derivation:** every symbol and canonical English name comes from
|
|
496
|
+
`data/commodities/commodities.jsonc` and `rare-commodities.jsonc`, which stay
|
|
497
|
+
authoritative for canonical English. Each symbol joins case-insensitively to the
|
|
498
|
+
in-game commodity localisation identity, which carries a `name` and an `info` string
|
|
499
|
+
per locale. `name` is the value taken. The join is exact and total: every commodity the
|
|
500
|
+
two catalogues hold resolves. The game also names commodity units no catalogue here
|
|
501
|
+
carries (§`data/commodities/SOURCES.md`); a name with no owning record is not stored,
|
|
502
|
+
so the key set is the catalogues' and not the game's.
|
|
503
|
+
- **Standard and rare share one catalogue here**, because they share one symbol space
|
|
504
|
+
and the game names them from one table.
|
|
505
|
+
- **The owning catalogues win the six English disagreements**, as this file's opening
|
|
506
|
+
rule requires. The game's English name is the shorter or the differently cased
|
|
507
|
+
spelling in all but the last of them: `Drones` keeps `Limpets` against `Limpet`,
|
|
508
|
+
`LowTemperatureDiamond` keeps `Low Temperature Diamonds` against
|
|
509
|
+
`Low Temp. Diamonds`, `AerialEdenApple`,
|
|
510
|
+
`WatersOfShintara` and `HIPOrganophosphates` keep their `of`, `of` and `HIP` against
|
|
511
|
+
`Of`, `Of` and `Hip`, and `ThargoidPod` keeps `Xenobiological Prison Pod` against
|
|
512
|
+
`Thargoid Bio-storage Capsule`. The last is a different name rather than a different
|
|
513
|
+
spelling, and it is the one to revisit first if the owning catalogue is ever re-derived
|
|
514
|
+
from the game.
|
|
515
|
+
- **Nine stored non-English values are the game's own abbreviations** — the German
|
|
516
|
+
`Fortschr. Katalysatoren` and `Histor. Kamorin-Waffen`, the Spanish
|
|
517
|
+
`Interconect. de eyector térmico` and `Conductos de transf. de energía`, the French
|
|
518
|
+
`Sys. surveillance animale`, `Sys. enrichissement sols` and
|
|
519
|
+
`Interconnexion dissipateur therm.`, and the Russian
|
|
520
|
+
`Агенты нервно-паралит. действия` and `Детали оборон. беспилотников` — and they stay
|
|
521
|
+
abbreviated because no source spells them out. This is the same position
|
|
522
|
+
`module-names.jsonc` records for its own abbreviated labels. The English `H.E. Suits`
|
|
523
|
+
is not one of them: it is the owning catalogue's own name.
|
|
524
|
+
- **Coverage:** complete. Every commodity carries all six locales, and no commodity has
|
|
525
|
+
five non-English values all byte-identical to its English, so no commodity name is a
|
|
526
|
+
proper noun the game leaves alone.
|
|
527
|
+
- **The registry's `info` prose is not stored.** Each commodity also carries an `info`
|
|
528
|
+
string per locale — the market panel's production, consumption and description text. A
|
|
529
|
+
commodity description catalogue would take those six values verbatim, the way
|
|
530
|
+
`suit-descriptions.jsonc` does; none exists, so the prose is absent rather than
|
|
531
|
+
partial.
|
|
532
|
+
- **Manual corrections:** one. The Spanish `BuckyballBeerMats` is published as
|
|
533
|
+
`"Posavasos Buckyball "` with a trailing space, which is layout and not part of the
|
|
534
|
+
name; it is stored trimmed. Every other value is verbatim.
|
|
535
|
+
|
|
310
536
|
## Names this repository deliberately does not localize
|
|
311
537
|
|
|
312
|
-
|
|
313
|
-
|
|
538
|
+
No catalogues are stored for the following names, either because the game does not
|
|
539
|
+
translate them — storing English under five more keys would say otherwise — or because no
|
|
540
|
+
record in this repository is keyed by them.
|
|
314
541
|
|
|
315
542
|
- **Ship names and manufacturers.** Odyssey Materials Helper and EDSY each publish a
|
|
316
543
|
per-locale ship column, and every value either one publishes is byte-for-byte the
|
|
317
544
|
canonical English name: a hull name is a proper noun the game leaves alone, and so is
|
|
318
|
-
a manufacturer's. No source publishes a localized manufacturer label at all.
|
|
319
|
-
|
|
320
|
-
`getShipManufacturer` are gone; `data/ships/ships.jsonc` carries both strings and stays
|
|
321
|
-
the one place to read them.
|
|
545
|
+
a manufacturer's. No source publishes a localized manufacturer label at all.
|
|
546
|
+
`data/ships/ships.jsonc` is the one place to read both strings.
|
|
322
547
|
- **Engineering-group labels.** An engineering group is this repository's own partition
|
|
323
548
|
of the modules that share one menu; the game heads that menu with the module's
|
|
324
|
-
outfitting family and publishes no group label of its own.
|
|
325
|
-
|
|
326
|
-
|
|
549
|
+
outfitting family and publishes no group label of its own. EDSY's `mtype-*` values are
|
|
550
|
+
outfitting labels reached by a name join and disagree with
|
|
551
|
+
`module-family-names.jsonc` in 22 places on wording. A group therefore
|
|
327
552
|
carries no name at all — see the header of `data/ships/engineering-options.jsonc` — and
|
|
328
553
|
a consumer names one by joining a module's `familyId` to `module-family-names.jsonc`.
|
|
554
|
+
- **Handheld personal-weapon names.** The in-game weapon localisation table publishes all
|
|
555
|
+
six locales for every weapon, and every non-English value
|
|
556
|
+
is byte-for-byte the English: `Karma P-15`, `TK Aphelion` and `Manticore Executioner`
|
|
557
|
+
are product names the game leaves alone, exactly as it does a hull's. `PersonalWeapon`
|
|
558
|
+
in `data/equipment/weapons.jsonc` is the one place to read the name; the weapons'
|
|
559
|
+
*descriptions* are prose and are localized, in `personal-weapon-descriptions.jsonc`.
|
|
560
|
+
- **Personal-equipment manufacturers.** `Supratech`, `Remlok`, `Manticore` and
|
|
561
|
+
`Kinematic Armaments` are byte-for-byte identical in all six locales wherever the game
|
|
562
|
+
names them, which is why `suit-names.jsonc` stores a suit's own name and not the
|
|
563
|
+
outfitting list's manufacturer-prefixed listing.
|
|
564
|
+
- **Suit and weapon stat labels, the on-foot loadout panel's rows other than the weapon
|
|
565
|
+
mounts, and engineer dialogue.** These are the second reason rather than the first: the
|
|
566
|
+
game does publish all six locales for each, and none of them names a record in any
|
|
567
|
+
catalogue here. A stat label names a field of `Suit` or `PersonalWeapon`, a panel row
|
|
568
|
+
names a line of the on-foot loadout screen, and an engineer's line is spoken flavour
|
|
569
|
+
attached to an offer. Storing them would mean inventing keys this repository does not
|
|
570
|
+
otherwise own, so a consumer that needs a field label supplies its own. The weapon-mount
|
|
571
|
+
rows are outside this conclusion: `Suit.mounts` carries Frontier's own journal
|
|
572
|
+
`SlotName` for each one, so a mount row names a record this repository holds and its
|
|
573
|
+
localization is a gap rather than an invented key. **This is not the ship slot and
|
|
574
|
+
restriction gap of [#320](https://github.com/DarkSession/Elite-Dangerous-Almanac/issues/320)**,
|
|
575
|
+
which is about labels no source translates at all.
|
|
329
576
|
|
|
330
577
|
## Known gaps
|
|
331
578
|
|
|
332
579
|
Localized coverage follows the accepted sources and is not complete for every catalogue or
|
|
333
|
-
stored locale. A language absent from
|
|
580
|
+
stored locale. A language absent from every catalogue is the locale decision
|
|
334
581
|
recorded above rather than a gap. The accepted sources carry only canonical English for
|
|
335
|
-
|
|
336
|
-
and structured loadout, calculation, SLEF and
|
|
337
|
-
|
|
582
|
+
the outfitting-family labels listed above, slot and restriction labels, the suit
|
|
583
|
+
weapon-mount labels, fixed reward names, and structured loadout, calculation, SLEF and
|
|
584
|
+
edit messages. A missing source-backed translation that has no issue of its own
|
|
585
|
+
remains tracked by
|
|
338
586
|
[#320](https://github.com/DarkSession/Elite-Dangerous-Almanac/issues/320).
|
|
587
|
+
|
|
588
|
+
Every suit, handheld weapon, tool and modification the personal-equipment catalogues
|
|
589
|
+
hold is complete in all six locales. That area carries these gaps:
|
|
590
|
+
|
|
591
|
+
- **The suit weapon-mount labels are English only.** The game publishes all six locales
|
|
592
|
+
for them, so the values exist to be read. The gap is tracked by
|
|
593
|
+
[#26](https://github.com/DarkSession/Elite-Dangerous-Almanac/issues/26).
|