Index: src/views/pages/auth-login.ejs
===================================================================
--- src/views/pages/auth-login.ejs	(revision 2149f5a6796ace710442d607e3a6971c55856966)
+++ src/views/pages/auth-login.ejs	(revision 137cca552d3f0dbb017538eee312a41f1badc430)
@@ -7,5 +7,5 @@
 %>
 <div class="container auth-page">
-  <h1><%= _admin ? 'Beheerder inloggen' : 'Inloggen' %></h1>
+  <h1><%= _admin ? t('auth.admin_login_title') : t('nav.login') %></h1>
   <% if (typeof success !== 'undefined' && success) { %><div class="alert alert-success"><%= success %></div><% } %>
   <%
@@ -38,17 +38,17 @@
       <% } %>
       <label>
-        <span>Gebruikersnaam of e-mail</span>
+        <span><%= t('auth.username_or_email') %></span>
         <input type="text" name="username" value="<%= username %>" required autofocus autocomplete="username">
       </label>
       <label>
-        <span>Wachtwoord</span>
+        <span><%= t('auth.password') %></span>
         <input type="password" name="password" required autocomplete="current-password">
       </label>
-      <button type="submit" class="btn btn-primary">Inloggen</button>
-      <p class="auth-link auth-link-muted"><a href="/auth/reset-request">Wachtwoord vergeten?</a></p>
+      <button type="submit" class="btn btn-primary"><%= t('nav.login') %></button>
+      <p class="auth-link auth-link-muted"><a href="/auth/reset-request"><%= t('auth.forgot') %></a></p>
     </form>
   <% } else if (googleReady) { %>
     <%# Publieke login: alleen Google, voor luisteraars/fans. %>
-    <p class="auth-sub">Log in om te reageren en je favorieten te bewaren.</p>
+    <p class="auth-sub"><%= t('auth.public_sub') %></p>
     <a class="btn btn-google" href="/auth/google<%= (typeof next !== 'undefined' && next) ? '?next=' + encodeURIComponent(next) : '' %>">
       <svg class="g-icon" width="18" height="18" viewBox="0 0 18 18" aria-hidden="true">
@@ -58,8 +58,8 @@
         <path fill="#EA4335" d="M9 3.58c1.32 0 2.5.45 3.44 1.35l2.58-2.58A9 9 0 0 0 .96 4.95l3.01 2.33C4.68 5.16 6.66 3.58 9 3.58z"/>
       </svg>
-      <span>Inloggen met Google</span>
+      <span><%= t('auth.google_btn') %></span>
     </a>
   <% } else { %>
-    <div class="alert">Inloggen met Google is op deze site nog niet ingesteld.</div>
+    <div class="alert"><%= t('auth.google_unavail') %></div>
   <% } %>
 
@@ -69,6 +69,6 @@
       <span class="auth-admin-box-icon" aria-hidden="true">🔑</span>
       <span class="auth-admin-box-text">
-        <strong>Beheerder?</strong>
-        <small>Log in met gebruikersnaam &amp; wachtwoord</small>
+        <strong><%= t('auth.admin_box_q') %></strong>
+        <small><%= t('auth.admin_box_sub') %></small>
       </span>
       <span class="auth-admin-box-arrow" aria-hidden="true">&rarr;</span>
Index: src/views/pages/auth-register.ejs
===================================================================
--- src/views/pages/auth-register.ejs	(revision 2149f5a6796ace710442d607e3a6971c55856966)
+++ src/views/pages/auth-register.ejs	(revision 137cca552d3f0dbb017538eee312a41f1badc430)
@@ -1,5 +1,5 @@
 <div class="container auth-page">
-  <h1>Beheerder aanmaken</h1>
-  <p class="auth-intro">Eerste keer opzetten — maak je beheerdersaccount aan. Dit kan maar één keer.</p>
+  <h1><%= t('auth.create_admin') %></h1>
+  <p class="auth-intro"><%= t('auth.reg_intro') %></p>
   <% if (error) { %><div class="alert alert-error"><%= error %></div><% } %>
   <form method="post" action="/auth/register" class="auth-form">
@@ -8,16 +8,16 @@
     <% } %>
     <label>
-      <span>Gebruikersnaam (3-32 tekens, letters/cijfers/_-)</span>
+      <span><%= t('auth.f_username') %></span>
       <input type="text" name="username" value="<%= username %>" required autofocus autocomplete="username" pattern="[a-zA-Z0-9_-]{3,32}">
     </label>
     <label>
-      <span>E-mail</span>
+      <span><%= t('auth.f_email') %></span>
       <input type="email" name="email" value="<%= email %>" required autocomplete="email">
     </label>
     <label>
-      <span>Wachtwoord (min 8 tekens)</span>
+      <span><%= t('auth.f_password') %></span>
       <input type="password" name="password" required minlength="8" autocomplete="new-password">
     </label>
-    <button type="submit" class="btn btn-primary">Beheerder aanmaken</button>
+    <button type="submit" class="btn btn-primary"><%= t('auth.create_admin') %></button>
   </form>
 </div>
Index: src/views/pages/welcome.ejs
===================================================================
--- src/views/pages/welcome.ejs	(revision 2149f5a6796ace710442d607e3a6971c55856966)
+++ src/views/pages/welcome.ejs	(revision 137cca552d3f0dbb017538eee312a41f1badc430)
@@ -1,14 +1,14 @@
 <div class="container welcome-page">
-  <h1>Welcome to Klonkt</h1>
-  <p class="welcome-tagline">A self-hosted publishing platform.</p>
-  
+  <h1><%= t('welcome.title') %></h1>
+  <p class="welcome-tagline"><%= t('welcome.tagline') %></p>
+
   <% if (!user) { %>
     <div class="welcome-actions">
-      <a href="/auth/register" class="btn btn-primary">Beheerder aanmaken</a>
-      <a href="/auth/login" class="btn">Al een account? Inloggen</a>
+      <a href="/auth/register" class="btn btn-primary"><%= t('auth.create_admin') %></a>
+      <a href="/auth/login" class="btn"><%= t('welcome.have_account') %></a>
     </div>
-    <p class="welcome-note">Maak je beheerdersaccount aan om te beginnen — daarna is registratie gesloten.</p>
+    <p class="welcome-note"><%= t('welcome.note') %></p>
   <% } else { %>
-    <p>Hi <%= user.username %>! No site is configured yet.</p>
+    <p><%= t('welcome.nosite', { user: user.username }) %></p>
   <% } %>
 </div>
