Skip to content

v1.0.1 — Installer locale detection

Choose a tag to compare

@noschmarrn noschmarrn released this 17 May 17:35
Immutable release. Only release title and notes can be modified.

What's new

The installer now detects the browser language from the very first request via the Accept-Language header and automatically picks the matching branding:

Browser language Language Brand
de-* as top preference German Schneespur
All others (en, zh, ja, ar, it, fr, …) English Wintertrace

There is also a DE/EN switcher in the header for manual override — the choice applies for the browser session.

Previously the language was only chosen in step 5 (config), so steps 1–4 (welcome, DB setup, preflight, migrations) were always German regardless of browser. That's now fixed.

Changes in detail

  • New SetInstallerLocale middleware using Symfony's getPreferredLanguage for clean q-value handling
  • The brand() helper returns the correct name even without a database connection (locale-based)
  • Step 5 uses the language already detected server-side instead of running a second JS detection
  • Explicit ext-sodium Composer requirement (needed by the auto-update mechanism)

Upgrading from v1.0.0

  1. Download the ZIP
  2. Copy the contents over the existing installation via FTP (overwrite files)
  3. Do not overwrite .env and storage/app/installed.lock
  4. Done — no DB migration needed

Or via auto-update (if configured): offered automatically on the next update check.

Requirements

  • PHP ≥ 8.2 with ext-sodium (present by default on Strato/IONOS/All-Inkl)
  • MySQL ≥ 5.7