Changeset 137cca5 in Klonkt
- Timestamp:
- 06/21/2026 11:35:49 AM (3 months ago)
- Branches:
- main
- Children:
- fe86013
- Parents:
- bffb348
- Location:
- src
- Files:
-
- 5 edited
-
services/i18n.js (modified) (3 diffs)
-
views/pages/auth-login.ejs (modified) (4 diffs)
-
views/pages/auth-register.ejs (modified) (2 diffs)
-
views/pages/welcome.ejs (modified) (1 diff)
-
views/partials/bottom-tab.ejs (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/services/i18n.js
rbffb348 r137cca5 69 69 'admin.th_slug': 'Slug', 'admin.th_title': 'Titel', 'admin.th_owner': 'Eigenaar', 'admin.th_created': 'Aangemaakt', 70 70 'admin.th_username': 'Gebruikersnaam', 'admin.th_email': 'E-mail', 'admin.th_role': 'Rol', 'admin.th_joined': 'Lid sinds', 71 // Welkom / first-run 72 'welcome.title': 'Welkom bij Klonkt', 73 'welcome.tagline': 'Een zelf-gehost publicatieplatform.', 74 'welcome.have_account': 'Al een account? Inloggen', 75 'welcome.note': 'Maak je beheerdersaccount aan om te beginnen — daarna is registratie gesloten.', 76 'welcome.nosite': 'Hoi {user}! Er is nog geen site ingesteld.', 77 // Auth (login/register) 78 'auth.admin_login_title': 'Beheerder inloggen', 79 'auth.username_or_email': 'Gebruikersnaam of e-mail', 80 'auth.password': 'Wachtwoord', 81 'auth.forgot': 'Wachtwoord vergeten?', 82 'auth.google_btn': 'Inloggen met Google', 83 'auth.public_sub': 'Log in om te reageren en je favorieten te bewaren.', 84 'auth.admin_box_q': 'Beheerder?', 85 'auth.admin_box_sub': 'Log in met gebruikersnaam & wachtwoord', 86 'auth.google_unavail': 'Inloggen met Google is op deze site nog niet ingesteld.', 87 'auth.create_admin': 'Beheerder aanmaken', 88 'auth.reg_intro': 'Eerste keer opzetten — maak je beheerdersaccount aan. Dit kan maar één keer.', 89 'auth.f_username': 'Gebruikersnaam (3-32 tekens, letters/cijfers/_-)', 90 'auth.f_email': 'E-mail', 91 'auth.f_password': 'Wachtwoord (min 8 tekens)', 92 // Bottom-tab (mobiel) 93 'tab.home': 'Home', 'tab.search': 'Zoek', 'tab.write': 'Schrijven', 'tab.profile': 'Profiel', 71 94 }, 72 95 en: { … … 126 149 'admin.th_slug': 'Slug', 'admin.th_title': 'Title', 'admin.th_owner': 'Owner', 'admin.th_created': 'Created', 127 150 'admin.th_username': 'Username', 'admin.th_email': 'Email', 'admin.th_role': 'Role', 'admin.th_joined': 'Joined', 151 'welcome.title': 'Welcome to Klonkt', 152 'welcome.tagline': 'A self-hosted publishing platform.', 153 'welcome.have_account': 'Already have an account? Log in', 154 'welcome.note': 'Create your admin account to get started — registration closes after that.', 155 'welcome.nosite': 'Hi {user}! No site is configured yet.', 156 'auth.admin_login_title': 'Admin login', 157 'auth.username_or_email': 'Username or email', 158 'auth.password': 'Password', 159 'auth.forgot': 'Forgot password?', 160 'auth.google_btn': 'Sign in with Google', 161 'auth.public_sub': 'Log in to comment and save your favorites.', 162 'auth.admin_box_q': 'Admin?', 163 'auth.admin_box_sub': 'Log in with username & password', 164 'auth.google_unavail': 'Google sign-in isn’t set up on this site yet.', 165 'auth.create_admin': 'Create admin', 166 'auth.reg_intro': 'First-time setup — create your admin account. This can only be done once.', 167 'auth.f_username': 'Username (3-32 chars, letters/digits/_-)', 168 'auth.f_email': 'Email', 169 'auth.f_password': 'Password (min 8 chars)', 170 'tab.home': 'Home', 'tab.search': 'Search', 'tab.write': 'Write', 'tab.profile': 'Profile', 128 171 }, 129 172 de: { … … 183 226 'admin.th_slug': 'Slug', 'admin.th_title': 'Titel', 'admin.th_owner': 'Eigentümer', 'admin.th_created': 'Erstellt', 184 227 'admin.th_username': 'Benutzername', 'admin.th_email': 'E-Mail', 'admin.th_role': 'Rolle', 'admin.th_joined': 'Mitglied seit', 228 'welcome.title': 'Willkommen bei Klonkt', 229 'welcome.tagline': 'Eine selbstgehostete Publishing-Plattform.', 230 'welcome.have_account': 'Schon ein Konto? Anmelden', 231 'welcome.note': 'Lege dein Administrator-Konto an, um zu starten — danach ist die Registrierung geschlossen.', 232 'welcome.nosite': 'Hallo {user}! Es ist noch keine Seite eingerichtet.', 233 'auth.admin_login_title': 'Administrator-Anmeldung', 234 'auth.username_or_email': 'Benutzername oder E-Mail', 235 'auth.password': 'Passwort', 236 'auth.forgot': 'Passwort vergessen?', 237 'auth.google_btn': 'Mit Google anmelden', 238 'auth.public_sub': 'Melde dich an, um zu kommentieren und Favoriten zu speichern.', 239 'auth.admin_box_q': 'Administrator?', 240 'auth.admin_box_sub': 'Mit Benutzername & Passwort anmelden', 241 'auth.google_unavail': 'Google-Anmeldung ist auf dieser Seite noch nicht eingerichtet.', 242 'auth.create_admin': 'Administrator anlegen', 243 'auth.reg_intro': 'Ersteinrichtung — lege dein Administrator-Konto an. Das geht nur einmal.', 244 'auth.f_username': 'Benutzername (3-32 Zeichen, Buchstaben/Ziffern/_-)', 245 'auth.f_email': 'E-Mail', 246 'auth.f_password': 'Passwort (min. 8 Zeichen)', 247 'tab.home': 'Start', 'tab.search': 'Suche', 'tab.write': 'Schreiben', 'tab.profile': 'Profil', 185 248 }, 186 249 }; -
src/views/pages/auth-login.ejs
rbffb348 r137cca5 7 7 %> 8 8 <div class="container auth-page"> 9 <h1><%= _admin ? 'Beheerder inloggen' : 'Inloggen'%></h1>9 <h1><%= _admin ? t('auth.admin_login_title') : t('nav.login') %></h1> 10 10 <% if (typeof success !== 'undefined' && success) { %><div class="alert alert-success"><%= success %></div><% } %> 11 11 <% … … 38 38 <% } %> 39 39 <label> 40 <span> Gebruikersnaam of e-mail</span>40 <span><%= t('auth.username_or_email') %></span> 41 41 <input type="text" name="username" value="<%= username %>" required autofocus autocomplete="username"> 42 42 </label> 43 43 <label> 44 <span> Wachtwoord</span>44 <span><%= t('auth.password') %></span> 45 45 <input type="password" name="password" required autocomplete="current-password"> 46 46 </label> 47 <button type="submit" class="btn btn-primary"> Inloggen</button>48 <p class="auth-link auth-link-muted"><a href="/auth/reset-request"> Wachtwoord vergeten?</a></p>47 <button type="submit" class="btn btn-primary"><%= t('nav.login') %></button> 48 <p class="auth-link auth-link-muted"><a href="/auth/reset-request"><%= t('auth.forgot') %></a></p> 49 49 </form> 50 50 <% } else if (googleReady) { %> 51 51 <%# Publieke login: alleen Google, voor luisteraars/fans. %> 52 <p class="auth-sub"> Log in om te reageren en je favorieten te bewaren.</p>52 <p class="auth-sub"><%= t('auth.public_sub') %></p> 53 53 <a class="btn btn-google" href="/auth/google<%= (typeof next !== 'undefined' && next) ? '?next=' + encodeURIComponent(next) : '' %>"> 54 54 <svg class="g-icon" width="18" height="18" viewBox="0 0 18 18" aria-hidden="true"> … … 58 58 <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"/> 59 59 </svg> 60 <span> Inloggen met Google</span>60 <span><%= t('auth.google_btn') %></span> 61 61 </a> 62 62 <% } else { %> 63 <div class="alert"> Inloggen met Google is op deze site nog niet ingesteld.</div>63 <div class="alert"><%= t('auth.google_unavail') %></div> 64 64 <% } %> 65 65 … … 69 69 <span class="auth-admin-box-icon" aria-hidden="true">🔑</span> 70 70 <span class="auth-admin-box-text"> 71 <strong> Beheerder?</strong>72 <small> Log in met gebruikersnaam & wachtwoord</small>71 <strong><%= t('auth.admin_box_q') %></strong> 72 <small><%= t('auth.admin_box_sub') %></small> 73 73 </span> 74 74 <span class="auth-admin-box-arrow" aria-hidden="true">→</span> -
src/views/pages/auth-register.ejs
rbffb348 r137cca5 1 1 <div class="container auth-page"> 2 <h1> Beheerder aanmaken</h1>3 <p class="auth-intro"> Eerste keer opzetten — maak je beheerdersaccount aan. Dit kan maar één keer.</p>2 <h1><%= t('auth.create_admin') %></h1> 3 <p class="auth-intro"><%= t('auth.reg_intro') %></p> 4 4 <% if (error) { %><div class="alert alert-error"><%= error %></div><% } %> 5 5 <form method="post" action="/auth/register" class="auth-form"> … … 8 8 <% } %> 9 9 <label> 10 <span> Gebruikersnaam (3-32 tekens, letters/cijfers/_-)</span>10 <span><%= t('auth.f_username') %></span> 11 11 <input type="text" name="username" value="<%= username %>" required autofocus autocomplete="username" pattern="[a-zA-Z0-9_-]{3,32}"> 12 12 </label> 13 13 <label> 14 <span> E-mail</span>14 <span><%= t('auth.f_email') %></span> 15 15 <input type="email" name="email" value="<%= email %>" required autocomplete="email"> 16 16 </label> 17 17 <label> 18 <span> Wachtwoord (min 8 tekens)</span>18 <span><%= t('auth.f_password') %></span> 19 19 <input type="password" name="password" required minlength="8" autocomplete="new-password"> 20 20 </label> 21 <button type="submit" class="btn btn-primary"> Beheerder aanmaken</button>21 <button type="submit" class="btn btn-primary"><%= t('auth.create_admin') %></button> 22 22 </form> 23 23 </div> -
src/views/pages/welcome.ejs
rbffb348 r137cca5 1 1 <div class="container welcome-page"> 2 <h1> Welcome to Klonkt</h1>3 <p class="welcome-tagline"> A self-hosted publishing platform.</p>4 2 <h1><%= t('welcome.title') %></h1> 3 <p class="welcome-tagline"><%= t('welcome.tagline') %></p> 4 5 5 <% if (!user) { %> 6 6 <div class="welcome-actions"> 7 <a href="/auth/register" class="btn btn-primary"> Beheerder aanmaken</a>8 <a href="/auth/login" class="btn"> Al een account? Inloggen</a>7 <a href="/auth/register" class="btn btn-primary"><%= t('auth.create_admin') %></a> 8 <a href="/auth/login" class="btn"><%= t('welcome.have_account') %></a> 9 9 </div> 10 <p class="welcome-note"> Maak je beheerdersaccount aan om te beginnen — daarna is registratie gesloten.</p>10 <p class="welcome-note"><%= t('welcome.note') %></p> 11 11 <% } else { %> 12 <p> Hi <%= user.username %>! No site is configured yet.</p>12 <p><%= t('welcome.nosite', { user: user.username }) %></p> 13 13 <% } %> 14 14 </div> -
src/views/partials/bottom-tab.ejs
rbffb348 r137cca5 52 52 <polyline points="9 22 9 12 15 12 15 22"/> 53 53 </svg> 54 <span class="bottom-tab-label"> Home</span>54 <span class="bottom-tab-label"><%= t('tab.home') %></span> 55 55 </a> 56 56 … … 62 62 <line x1="21" y1="21" x2="16.65" y2="16.65"/> 63 63 </svg> 64 <span class="bottom-tab-label"> Zoek</span>64 <span class="bottom-tab-label"><%= t('tab.search') %></span> 65 65 </button> 66 66 … … 76 76 <line x1="5" y1="12" x2="19" y2="12"/> 77 77 </svg> 78 <span class="bottom-tab-label"> Schrijven</span>78 <span class="bottom-tab-label"><%= t('tab.write') %></span> 79 79 </a> 80 80 <% } %> … … 106 106 <span class="bottom-tab-avatar"><%= user.username.charAt(0).toUpperCase() %></span> 107 107 <% } %> 108 <span class="bottom-tab-label"> Profiel</span>108 <span class="bottom-tab-label"><%= t('tab.profile') %></span> 109 109 </button> 110 110 <% } else { %> … … 119 119 <line x1="15" y1="12" x2="3" y2="12"/> 120 120 </svg> 121 <span class="bottom-tab-label"> Inloggen</span>121 <span class="bottom-tab-label"><%= t('nav.login') %></span> 122 122 </a> 123 123 <% } %>
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)