Changeset bbf9d1a in Klonkt for src/views/pages/admin-users.ejs


Ignore:
Timestamp:
06/21/2026 02:32:39 PM (3 months ago)
Author:
roboburr <roboburr@…>
Branches:
main
Children:
4885eab
Parents:
929d98d
Message:

feat(i18n phase 5): all admin sub-pages translated (NL/EN/DE)

settings, site-edit, seo, google, audio, stats, playlists, users, sites,
comments, circle, shows, newsletter, updates, epk, help. ~520 new keys
per language. Loop-shadowing of t() resolved by fetching before the loop. 709
view-keys cross-checked against the dictionary (0 missing).

Co-Authored-By: Claude <noreply@…>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/views/pages/admin-users.ejs

    r929d98d rbbf9d1a  
    11<div class="container ax-page">
    22
    3   <p><a href="/admin" class="btn">&larr; Beheer</a></p>
     3  <p><a href="/admin" class="btn">&larr; <%= t('ausr.back') %></a></p>
    44  <header class="ax-header">
    55    <div>
    6       <h1>Users</h1>
    7       <p class="ax-tagline">Beheer gebruikers, rollen, en verwijderingen. Rol <strong>kijker</strong> = alles bekijken (incl. Beheer), niets wijzigen — handig voor demo's.</p>
     6      <h1><%= t('ausr.title') %></h1>
     7      <p class="ax-tagline"><%= t('ausr.tagline_a') %> <strong><%= t('ausr.role_kijker') %></strong> <%= t('ausr.tagline_b') %></p>
    88    </div>
    99  </header>
     
    1616      <div class="ax-empty">
    1717        <div class="ax-empty-icon">👤</div>
    18         <p>Geen gebruikers.</p>
     18        <p><%= t('ausr.empty') %></p>
    1919      </div>
    2020    </div>
    2121  <% } else { %>
     22    <%
     23      var _u_self      = t('ausr.you');
     24      var _u_t_sites   = t('ausr.t_sites');
     25      var _u_t_posts   = t('ausr.t_posts');
     26      var _u_t_joined  = t('ausr.t_joined');
     27      var _u_l_sites   = t('ausr.l_sites');
     28      var _u_l_posts   = t('ausr.l_posts');
     29      var _u_l_joined  = t('ausr.l_joined');
     30      var _u_newklonkt = t('ausr.new_klonkt');
     31      var _u_rol       = t('ausr.role_label');
     32      var _u_r_kijker  = t('ausr.role_kijker');
     33      var _u_r_member  = t('ausr.role_member');
     34      var _u_r_admin   = t('ausr.role_admin');
     35      var _u_r_god     = t('ausr.role_god');
     36      var _u_del       = t('ausr.delete');
     37    %>
    2238    <ul class="ax-list">
    2339      <% users.forEach(function(u) { %>
     
    3349              <div class="ax-user-name">
    3450                <a href="/users/<%= encodeURIComponent(u.username) %>"><%= u.username %></a>
    35                 <% if (u.id === user.id) { %><span class="ax-pill">jij</span><% } %>
     51                <% if (u.id === user.id) { %><span class="ax-pill"><%= _u_self %></span><% } %>
    3652              </div>
    3753              <div class="ax-user-email"><%= u.email %></div>
     
    4056
    4157          <div class="ax-user-stats">
    42             <span class="ax-stat" title="Sites">
     58            <span class="ax-stat" title="<%= _u_t_sites %>">
    4359              <span class="ax-stat-num"><%= u.site_count %></span>
    44               <span class="ax-stat-label">sites</span>
     60              <span class="ax-stat-label"><%= _u_l_sites %></span>
    4561            </span>
    46             <span class="ax-stat" title="Posts">
     62            <span class="ax-stat" title="<%= _u_t_posts %>">
    4763              <span class="ax-stat-num"><%= u.post_count %></span>
    48               <span class="ax-stat-label">posts</span>
     64              <span class="ax-stat-label"><%= _u_l_posts %></span>
    4965            </span>
    50             <span class="ax-stat" title="Geregistreerd op">
     66            <span class="ax-stat" title="<%= _u_t_joined %>">
    5167              <span class="ax-stat-num ax-stat-date"><%= formatDate(u.created_at) %></span>
    52               <span class="ax-stat-label">joined</span>
     68              <span class="ax-stat-label"><%= _u_l_joined %></span>
    5369            </span>
    5470          </div>
     
    5975            <% if (typeof tenancy !== 'undefined' && tenancy === 'hub' && canMutate) { %>
    6076              <a href="/admin/sites/new?owner=<%= u.id %>" class="ax-icon-btn"
    61                  aria-label="Nieuwe Klonkt voor <%= u.username %>" title="Nieuwe Klonkt voor deze gebruiker">+🌐</a>
     77                 aria-label="<%= t('ausr.new_klonkt_for', { name: u.username }) %>" title="<%= _u_newklonkt %>">+🌐</a>
    6278            <% } %>
    6379            <form method="post" action="/admin/users/<%= u.id %>/role" class="ax-role-form">
    6480              <label class="ax-role">
    65                 <span>Rol</span>
     81                <span><%= _u_rol %></span>
    6682                <select name="role" onchange="this.form.submit()" <% if (u.id === user.id || !canMutate) { %>disabled<% } %>>
    67                   <option value="kijker" <%= u.role === 'kijker' ? 'selected' : '' %>>kijker</option>
    68                   <option value="member" <%= u.role === 'member' ? 'selected' : '' %>>member</option>
    69                   <option value="admin"  <%= u.role === 'admin'  ? 'selected' : '' %>>admin</option>
    70                   <option value="god"    <%= u.role === 'god'    ? 'selected' : '' %>>god</option>
     83                  <option value="kijker" <%= u.role === 'kijker' ? 'selected' : '' %>><%= _u_r_kijker %></option>
     84                  <option value="member" <%= u.role === 'member' ? 'selected' : '' %>><%= _u_r_member %></option>
     85                  <option value="admin"  <%= u.role === 'admin'  ? 'selected' : '' %>><%= _u_r_admin %></option>
     86                  <option value="god"    <%= u.role === 'god'    ? 'selected' : '' %>><%= _u_r_god %></option>
    7187                </select>
    7288              </label>
     
    7591            <% if (u.id !== user.id && canMutate) { %>
    7692              <% var _warn = (u.post_count + u.site_count > 0)
    77                    ? ('Dit verwijdert ook hun site + ' + u.post_count + ' post(s). ')
     93                   ? (t('ausr.del_warn', { n: u.post_count }) + ' ')
    7894                   : ''; %>
    7995              <form method="post" action="/admin/users/<%= u.id %>/delete" class="ax-delete-form"
    80                     onsubmit="return confirm('Gebruiker <%= u.username %> verwijderen? <%= _warn %>Dit kan niet ongedaan worden.')">
    81                 <button type="submit" class="ax-icon-btn ax-icon-btn-danger" aria-label="Verwijderen" title="Verwijderen">🗑</button>
     96                    onsubmit="return confirm('<%= t('ausr.del_confirm', { name: u.username }) %> <%= _warn %><%= t('ausr.del_undo') %>')">
     97                <button type="submit" class="ax-icon-btn ax-icon-btn-danger" aria-label="<%= _u_del %>" title="<%= _u_del %>">🗑</button>
    8298              </form>
    8399            <% } else { %>
Note: See TracChangeset for help on using the changeset viewer.