Index: src/routes/lang.js
===================================================================
--- src/routes/lang.js	(revision 66cfbaaea019cc496240b846411f4f3f92aced8a)
+++ src/routes/lang.js	(revision 66cfbaaea019cc496240b846411f4f3f92aced8a)
@@ -0,0 +1,22 @@
+// Taalkeuze van de bezoeker: /lang/:code zet de interface-taal in de sessie en
+// stuurt terug naar waar je vandaan kwam. (Content blijft in de taal van de auteur.)
+import express from 'express';
+import { SUPPORTED } from '../services/i18n.js';
+
+const router = express.Router();
+
+router.get('/lang/:code', (req, res) => {
+  const code = SUPPORTED.includes(req.params.code) ? req.params.code : 'nl';
+  if (req.session) req.session.lang = code;
+  // Veilige terug-URL: alleen een intern pad (geen open redirect).
+  let back = (typeof req.query.r === 'string') ? req.query.r : '';
+  if (!back.startsWith('/') || back.startsWith('//')) {
+    try {
+      const u = new URL(req.get('referer') || '');
+      back = u.pathname + (u.search || '');
+    } catch { back = '/'; }
+  }
+  res.redirect(back || '/');
+});
+
+export default router;
