Changeset 5e61b17 in Klonkt for src/middleware


Ignore:
Timestamp:
06/21/2026 03:16:51 PM (3 months ago)
Author:
roboburr <roboburr@…>
Branches:
main
Children:
11b3ba5
Parents:
4885eab
Message:

feat(i18n): admin-configurable language — personal + default for visitors

  • users.lang column: personal interface language per account (follows across devices/sessions). Switcher (/lang/:code) and Account select both write it.
  • app_setting default_lang: admin picks the default language for visitors in Admin → Settings (overrides env/browser; empty = automatic).
  • resolveLang priority: session choice → users.lang → default_lang (DB) → env KLONKT_DEFAULT_LANG → browser → nl.
  • Account: language select; admin-settings: default language select. NL/EN/DE keys.

Co-Authored-By: Claude <noreply@…>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/middleware/render.js

    r4885eab r5e61b17  
    5454  // avatar-wijziging of rolwissel) zichzelf herstelt zonder opnieuw inloggen.
    5555  if (_u && _u.id) {
    56     const _fresh = db.prepare('SELECT avatar_url, role FROM users WHERE id = ?').get(_u.id);
    57     if (_fresh) _u = { ..._u, avatar_url: _fresh.avatar_url, role: _fresh.role };
     56    const _fresh = db.prepare('SELECT avatar_url, role, lang FROM users WHERE id = ?').get(_u.id);
     57    if (_fresh) _u = { ..._u, avatar_url: _fresh.avatar_url, role: _fresh.role, lang: _fresh.lang };
    5858  }
    5959  const userOwnsSite = !!(_u && _u.role !== 'god' &&
     
    7878  const canSeeBeheer = !!(_u && (_role === 'god' || _role === 'admin' || _role === 'kijker' || userOwnsSite));
    7979
    80   // Interface-taal (bezoeker-instelbaar): sessie-keuze → browser-taal → nl.
    81   const _lang = resolveLang(req);
     80  // Interface-taal: sessie-keuze (deze sessie) → eigen voorkeur van de ingelogde
     81  // gebruiker (users.lang) → admin-ingestelde standaard (Beheer) → env → browser → nl.
     82  const _lang = resolveLang(req, {
     83    userLang: _u && _u.lang,
     84    defaultLang: getSetting('default_lang'),
     85  });
    8286
    8387  // Common locals
Note: See TracChangeset for help on using the changeset viewer.