Download Latest Version OpenConstructionERP_12.2.0_x64_en-US.msi (375.0 MB)
Email in envelope

Get an email when there's a new version of OpenConstructionERP

Home / v2.9.20
Name Modified Size InfoDownloads / Week
Parent folder
README.md 2026-05-07 1.6 kB
v2.9.20 -- i18n perf_ per-locale lazy chunks (~96_ boot reduction) source code.tar.gz 2026-05-07 458.7 MB
v2.9.20 -- i18n perf_ per-locale lazy chunks (~96_ boot reduction) source code.zip 2026-05-07 460.4 MB
Totals: 3 Items   919.1 MB 0

Highlights

Per-locale lazy i18n chunks. The 5.5 MB / 90,119-line monolithic i18n-fallbacks.ts was split into 26 per-locale files under frontend/src/app/locales/{code}.ts. The runtime bundles English synchronously (~45 KB gzip) as i18next's fallbackLng and lazy-loads the resolved locale via dynamic import() on boot and on every languageChanged event.

Before / after

Before After
Boot i18n payload (EN user) 1284 KB gzip ~45 KB gzip
Boot i18n payload (DE/ES/FR/etc.) 1284 KB gzip ~45 + ~50 KB gzip = ~95 KB gzip
Reduction ~96% EN, ~92% non-EN

What shipped

  • 26 new files: frontend/src/app/locales/{en,de,fr,es,pt,ru,zh,ar,hi,tr,it,nl,pl,cs,ja,ko,sv,no,da,fi,bg,hr,id,ro,th,vi}.ts — auto-generated from the previous monolith via frontend/scripts/split-i18n-fallbacks.mjs.
  • New loadLocaleResource(code) helper exported from app/i18n.ts — idempotent, addResourceBundle on success, logs and falls back to English on failure.
  • vite.config.ts manualChunks updated: each locales/{code}.ts lands in its own i18n-{code}.js chunk with stable name (cache survives unrelated edits).
  • i18n-fallbacks.ts retained as a test-only aggregator. boqResourceTypes.test.ts still imports it to walk every locale; production bundles tree-shake it because no runtime entrypoint reaches it.

Install

pip install --upgrade openconstructionerp

Verify

VPS deployment: https://openconstructionerp.com (live, /api/health returns 2.9.20) PyPI: https://pypi.org/project/openconstructionerp/2.9.20/

Source: README.md, updated 2026-05-07