Index: src/assets/js/mod/admin-seo.js
===================================================================
--- src/assets/js/mod/admin-seo.js	(revision f50a84b2ccb39b0646c595ef6a2c3ca4b494df4a)
+++ src/assets/js/mod/admin-seo.js	(revision c3e736c4d605861cf35949904fe8825f12a45e08)
@@ -80,5 +80,5 @@
     terugweg.hidden = false;
     terugweg.className = 'mb-terugweg';
-    terugweg.textContent = T.aseo_mb_checking || 'Terug-weg controleren…';
+    terugweg.textContent = T.mb_checking || 'Terug-weg controleren…';
     try {
       const r = await fetch(`/admin/seo/api/musicbrainz/terugweg?mbid=${encodeURIComponent(mbid)}`, { credentials: 'same-origin' });
@@ -86,6 +86,6 @@
       terugweg.className = 'mb-terugweg ' + (j.verified ? 'is-ok' : 'is-eenzijdig');
       terugweg.textContent = j.verified
-        ? (T.aseo_mb_verified || 'Wederzijds.')
-        : (T.aseo_mb_unverified || 'Nog eenzijdig.');
+        ? (T.mb_verified || 'Wederzijds.')
+        : (T.mb_unverified || 'Nog eenzijdig.');
     } catch {
       terugweg.hidden = true;
@@ -100,5 +100,5 @@
     if (!q) return;
     uit.hidden = false;
-    uit.replaceChildren(el('p', 'form-hint', T.aseo_mb_busy || 'Zoeken…'));
+    uit.replaceChildren(el('p', 'form-hint', T.mb_busy || 'Zoeken…'));
     knop.disabled = true;
     try {
@@ -107,5 +107,5 @@
       toon((j && j.kandidaten) || []);
     } catch {
-      uit.replaceChildren(el('p', 'form-hint', T.aseo_mb_fail || 'MusicBrainz is even niet bereikbaar.'));
+      uit.replaceChildren(el('p', 'form-hint', T.mb_fail || 'MusicBrainz is even niet bereikbaar.'));
     } finally {
       knop.disabled = false;
@@ -115,5 +115,5 @@
   function toon(kandidaten) {
     if (!kandidaten.length) {
-      uit.replaceChildren(el('p', 'form-hint', T.aseo_mb_none || 'Niets gevonden.'));
+      uit.replaceChildren(el('p', 'form-hint', T.mb_none || 'Niets gevonden.'));
       return;
     }
@@ -126,8 +126,8 @@
       const bij = [k.toelichting, k.soort, k.land, k.jaren].filter(Boolean).join(' · ');
       if (bij) li.appendChild(el('small', 'mb-bij', bij));
-      const open = el('a', 'mb-open', T.aseo_mb_open || 'Bekijk op MusicBrainz');
+      const open = el('a', 'mb-open', T.mb_open || 'Bekijk op MusicBrainz');
       open.href = k.url; open.target = '_blank'; open.rel = 'noopener';
       li.appendChild(open);
-      const b = el('button', 'btn', T.aseo_mb_pick || 'Dit ben ik');
+      const b = el('button', 'btn', T.mb_pick || 'Dit ben ik');
       b.type = 'button';
       b.addEventListener('click', () => zet(k.mbid, k.naam));
Index: src/views/pages/admin-seo.ejs
===================================================================
--- src/views/pages/admin-seo.ejs	(revision f50a84b2ccb39b0646c595ef6a2c3ca4b494df4a)
+++ src/views/pages/admin-seo.ejs	(revision c3e736c4d605861cf35949904fe8825f12a45e08)
@@ -194,2 +194,8 @@
 .site-form > button[type="submit"] { align-self: flex-start; }
 </style>
+
+<%# Servertekst naar mod/admin-seo.js. KORTE sleutels, zoals overal in dit
+    project -- de module leest T.mb_busy en niet T.aseo_mb_busy. Zonder dit
+    blok geeft pageData() een leeg object en valt alles terug op de
+    ingebakken Nederlandse tekst, ook voor een Engelse of Duitse lezer. %>
+<%- include('../partials/page-data', { pageData: { mb_busy: t('aseo.mb_busy'), mb_fail: t('aseo.mb_fail'), mb_none: t('aseo.mb_none'), mb_open: t('aseo.mb_open'), mb_pick: t('aseo.mb_pick'), mb_verified: t('aseo.mb_verified'), mb_unverified: t('aseo.mb_unverified'), mb_checking: t('aseo.mb_checking') } }) %>
