Changeset 5e61b17 in Klonkt for src/routes/admin-settings.js


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/routes/admin-settings.js

    r4885eab r5e61b17  
    2222import { requireGod } from '../middleware/auth.js';
    2323import { getTenancy, setTenancy, getSetting, setSetting } from '../services/SettingsService.js';
     24import { SUPPORTED } from '../services/i18n.js';
    2425import { mailerStatus, sendMail } from '../config/mailer.js';
    2526import { entitlementStatus, premiumUnlocked } from '../services/PatreonService.js';
     
    7879    hubHeroImage: getSetting('hub_hero_image') || '',
    7980    hubHeroOverlay: clampOverlay(getSetting('hub_hero_overlay')),
     81    defaultLang: getSetting('default_lang') || '',
    8082    premium: entitlementStatus(),
    8183    google: {
     
    108110      }
    109111      setTenancy(req.body.tenancy); // valideert naar solo | hub | circle
     112    }
     113    if (typeof req.body.default_lang !== 'undefined') {
     114      // Standaardtaal voor bezoekers (leeg = volg env/browser). Valideert tegen NL/EN/DE.
     115      const dl = (req.body.default_lang || '').toString().toLowerCase();
     116      setSetting('default_lang', SUPPORTED.includes(dl) ? dl : '');
    110117    }
    111118    if (typeof req.body.hub_title !== 'undefined') {
Note: See TracChangeset for help on using the changeset viewer.