Index: src/routes/admin-audio.js
===================================================================
--- src/routes/admin-audio.js	(revision 89cc8c42e5569a7341ef7a41c954f8de875c7ada)
+++ src/routes/admin-audio.js	(revision 34875673eb7989a5ab1986334ece32f689bab211)
@@ -112,5 +112,5 @@
   const embedUrl = base + (res.locals.siteUrlBase || '') + '/embed';
   renderPage(req, res, 'pages/admin-audio', {
-    pageTitle: 'Audio tracks',
+    pageTitleKey: 'admin.t_audio',
     bodyClass: 'on-admin',
     tracks,
Index: src/routes/admin-epk.js
===================================================================
--- src/routes/admin-epk.js	(revision 89cc8c42e5569a7341ef7a41c954f8de875c7ada)
+++ src/routes/admin-epk.js	(revision 34875673eb7989a5ab1986334ece32f689bab211)
@@ -32,5 +32,5 @@
   try { const r = JSON.parse(getSetting('epk_tracks_' + site.id, '') || '[]'); if (Array.isArray(r)) chosen = r; } catch (e) {}
   renderPage(req, res, 'pages/admin-epk', {
-    pageTitle: 'Perskit bewerken',
+    pageTitleKey: 'admin.t_epk',
     bodyClass: 'on-admin',
     site,
Index: src/routes/admin-newsletter.js
===================================================================
--- src/routes/admin-newsletter.js	(revision 89cc8c42e5569a7341ef7a41c954f8de875c7ada)
+++ src/routes/admin-newsletter.js	(revision 34875673eb7989a5ab1986334ece32f689bab211)
@@ -46,5 +46,5 @@
   const subscribeUrl = fullUrl(req, '/nieuwsbrief');
   renderPage(req, res, 'pages/admin-newsletter', {
-    pageTitle: 'Nieuwsbrief',
+    pageTitleKey: 'admin.t_newsletter',
     bodyClass: 'on-admin',
     nlCounts: c,
Index: src/routes/admin-playlists.js
===================================================================
--- src/routes/admin-playlists.js	(revision 89cc8c42e5569a7341ef7a41c954f8de875c7ada)
+++ src/routes/admin-playlists.js	(revision 34875673eb7989a5ab1986334ece32f689bab211)
@@ -64,5 +64,5 @@
   const playlists = PlaylistService.list(site.id);
   renderPage(req, res, 'pages/admin-playlists', {
-    pageTitle: 'Playlists',
+    pageTitleKey: 'admin.t_playlists',
     playlists,
     bodyClass: 'on-admin',
Index: src/routes/admin-seo.js
===================================================================
--- src/routes/admin-seo.js	(revision 89cc8c42e5569a7341ef7a41c954f8de875c7ada)
+++ src/routes/admin-seo.js	(revision 34875673eb7989a5ab1986334ece32f689bab211)
@@ -36,5 +36,5 @@
 
   renderPage(req, res, 'pages/admin-seo', {
-    pageTitle: 'SEO',
+    pageTitleKey: 'admin.t_seo',
     bodyClass: 'on-admin',
     site,
Index: src/routes/admin-settings.js
===================================================================
--- src/routes/admin-settings.js	(revision 89cc8c42e5569a7341ef7a41c954f8de875c7ada)
+++ src/routes/admin-settings.js	(revision 34875673eb7989a5ab1986334ece32f689bab211)
@@ -70,5 +70,5 @@
 router.get('/', requireGod, (req, res) => {
   renderPage(req, res, 'pages/admin-settings', {
-    pageTitle: 'Instellingen',
+    pageTitleKey: 'admin.t_settings',
     bodyClass: 'on-admin',
     tenancy: getTenancy(),
Index: src/routes/admin-shows.js
===================================================================
--- src/routes/admin-shows.js	(revision 89cc8c42e5569a7341ef7a41c954f8de875c7ada)
+++ src/routes/admin-shows.js	(revision 34875673eb7989a5ab1986334ece32f689bab211)
@@ -35,5 +35,5 @@
   const shows = db.prepare('SELECT * FROM shows WHERE site_id = ? ORDER BY date DESC, time DESC').all(site.id);
   renderPage(req, res, 'pages/admin-shows', {
-    pageTitle: 'Agenda', bodyClass: 'on-admin',
+    pageTitleKey: 'admin.t_shows', bodyClass: 'on-admin',
     shows, smtp: mailerConfigured(), notifyCount: confirmedFor(site.id, 'notify').length,
     agendaEnabled: getSetting('agenda_enabled') === '1',
Index: src/routes/admin-sites.js
===================================================================
--- src/routes/admin-sites.js	(revision 89cc8c42e5569a7341ef7a41c954f8de875c7ada)
+++ src/routes/admin-sites.js	(revision 34875673eb7989a5ab1986334ece32f689bab211)
@@ -169,5 +169,5 @@
 
   renderPage(req, res, 'pages/admin-sites', {
-    pageTitle: 'Sites',
+    pageTitleKey: 'admin.t_sites',
     bodyClass: 'on-admin',
     sites,
@@ -180,5 +180,5 @@
 router.get('/new', requireGod, (req, res) => {
   renderPage(req, res, 'pages/admin-site-edit', {
-    pageTitle: 'New site',
+    pageTitleKey: 'admin.t_newsite',
     bodyClass: 'on-admin',
     isNew: true,
@@ -259,5 +259,5 @@
 
   renderPage(req, res, 'pages/admin-site-edit', {
-    pageTitle: `Edit: ${site.title}`,
+    pageTitleKey: 'admin.t_editsite', pageTitleVars: { title: site.title },
     bodyClass: 'on-admin',
     isNew: false,
Index: src/routes/admin-stats.js
===================================================================
--- src/routes/admin-stats.js	(revision 89cc8c42e5569a7341ef7a41c954f8de875c7ada)
+++ src/routes/admin-stats.js	(revision 34875673eb7989a5ab1986334ece32f689bab211)
@@ -33,5 +33,5 @@
   const days = [7, 14, 30, 90].includes(parseInt(req.query.days, 10)) ? parseInt(req.query.days, 10) : 14;
   renderPage(req, res, 'pages/admin-stats', {
-    pageTitle: 'Statistieken',
+    pageTitleKey: 'admin.t_stats',
     bodyClass: 'on-admin',
     stats: getStats(days),
Index: src/routes/admin-updates.js
===================================================================
--- src/routes/admin-updates.js	(revision 89cc8c42e5569a7341ef7a41c954f8de875c7ada)
+++ src/routes/admin-updates.js	(revision 34875673eb7989a5ab1986334ece32f689bab211)
@@ -74,5 +74,5 @@
   const canSelfUpdate = (() => { try { return fs.existsSync(UPDATE_SCRIPT); } catch { return false; } })();
   renderPage(req, res, 'pages/admin-updates', {
-    pageTitle: 'Updates',
+    pageTitleKey: 'admin.t_updates',
     bodyClass: 'on-admin',
     appVersion: appVersion(),
Index: src/routes/admin-users.js
===================================================================
--- src/routes/admin-users.js	(revision 89cc8c42e5569a7341ef7a41c954f8de875c7ada)
+++ src/routes/admin-users.js	(revision 34875673eb7989a5ab1986334ece32f689bab211)
@@ -40,5 +40,5 @@
 
   renderPage(req, res, 'pages/admin-users', {
-    pageTitle: 'Users',
+    pageTitleKey: 'admin.t_users',
     bodyClass: 'on-admin',
     users,
Index: src/routes/admin.js
===================================================================
--- src/routes/admin.js	(revision 89cc8c42e5569a7341ef7a41c954f8de875c7ada)
+++ src/routes/admin.js	(revision 34875673eb7989a5ab1986334ece32f689bab211)
@@ -49,5 +49,5 @@
     };
     return renderPage(req, res, 'pages/my-site', {
-      pageTitle: 'Mijn Klonkt Hub',
+      pageTitleKey: 'admin.t_hub',
       bodyClass: 'on-admin',
       mySite,
@@ -93,5 +93,5 @@
 
   renderPage(req, res, 'pages/admin', {
-    pageTitle: 'Beheer',
+    pageTitleKey: 'admin.t_admin',
     bodyClass: 'on-admin',
     tenancy,
@@ -108,5 +108,5 @@
 router.get('/handleiding', requireAuth, (req, res) => {
   renderPage(req, res, 'pages/admin-help', {
-    pageTitle: 'Handleiding',
+    pageTitleKey: 'admin.t_manual',
     bodyClass: 'on-admin',
     tenancy: getTenancy(),
