19. Framework, localisation, performance and the desktop app
Still to build The desktop app
Decided 19 October: the release is a downloadable desktop application. Needed:
- an Electron shell (decided) round the TypeScript, with the runtime bundled so users install nothing else;
- long runs in a background worker, so the interface stays responsive and can pause (section 18);
- worlds saved to and loaded from disk (the JSON records exist), and exports to a folder the user picks;
- settings: language (the 14 locales), temperature display (°C, °F or descriptions relative to a race), attribute system, timing, setting, mode;
- the licences of bundled data shown in the app (PHOIBLE CC BY-SA 3.0, WALS CC BY 4.0), with the share-alike terms checked for anything derived from PHOIBLE that ships.
19.1 The module framework
Built (src/framework.ts). MODULES describes each module once: status, what it requires and provides, its lockable options, specification, entry function, and its open gaps. moduleOrder() orders them and refuses a circle or a missing module. describeFramework() prints the table. Locks fix any option whatever the mode sets (generate({ locks: { 'solar.starMass': 1, 'lore.magic': 'low' } })), and the plan’s provenance records each. Progress is reported by stage, and by step inside the biology and culture modules.
19.2 Localisation
Partial (src/i18n.ts, data/i18n/). The frame covers the 14 locales (British English and French, German, Russian, Spanish, Portuguese, Italian, Persian, Hindi, Armenian, Georgian, Mandarin, Japanese, Korean), each with its direction (Persian right to left), script, and the romanisation to use for generated languages. It offers t(locale, key, vars) with English fall-back, number formatting and plural categories.
Still to build Translated catalogues
The only catalogue is the headings of the wiki export, in all 14 locales, and the 13 translations are drafts for a native speaker to review. The module reports still write English directly. Romanising generated languages into each locale’s script is still to do.
Still to build Speed
The history of life is the dominant cost. A profiling pass on the per-step web and selection kernels (or a port to WebAssembly, as the solar-system specification allows) is suggested before the sci-fi route is usable interactively.