Changeset 2149f5a in Klonkt


Ignore:
Timestamp:
06/20/2026 01:59:32 PM (3 months ago)
Author:
roboburr <roboburr@…>
Branches:
main
Children:
83b8b8f
Parents:
66cfbaa
Message:

feat(i18n): language dropdown (NL/EN/DE) in the header nav instead of footer

  • Compact language select in the topnav action row (desktop), codes NL/EN/DE.
  • Footer select only on mobile (desktop has it in the header).
  • Standalone admin dashboard select removed (header select shows on admin too).

style.css?v=27.

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

Location:
src
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • src/assets/css/style.css

    r66cfbaa r2149f5a  
    15031503    .pagination-item { width: 100%; }
    15041504}
     1505
     1506/* Taal-keuze in de header-nav (NL/EN/DE). Past bij de pill-knoppen ernaast. */
     1507.nav-lang {
     1508    background: transparent; color: var(--ink);
     1509    border: 1px solid var(--rule); border-radius: 999px;
     1510    padding: .35rem .5rem; font-size: .8rem; font-weight: 600;
     1511    font-family: inherit; cursor: pointer; line-height: 1;
     1512}
     1513.nav-lang:hover { border-color: var(--accent); }
     1514.nav-lang option { background: var(--paper); color: var(--ink); }
    15051515@media (max-width: 400px) {
    15061516    .masthead { padding: calc(.5rem + var(--safe-top)) 0 .5rem; }
  • src/views/pages/admin.ejs

    r66cfbaa r2149f5a  
    11<div class="container admin-page">
    2   <% if (typeof langs !== 'undefined' && langs && langs.length > 1) { %>
    3     <select class="footer-lang" style="float:right;margin-left:1rem" aria-label="<%= t('nav.language') %>"
    4             onchange="location.href='/lang/'+this.value+'?r='+encodeURIComponent(location.pathname+location.search)">
    5       <% langs.forEach(function(l){ %><option value="<%= l.code %>"<%= l.active ? ' selected' : '' %>><%= l.name %></option><% }); %>
    6     </select>
    7   <% } %>
    82  <h1><%= t('admin.title') %></h1>
    93  <% if (tenancy === 'hub') { %>
  • src/views/partials/footer.ejs

    r66cfbaa r2149f5a  
    116116/* Open dropdown-opties leesbaar (anders wit-op-wit op dark mode). */
    117117.footer-lang option { background: var(--paper); color: var(--ink); }
     118/* Op desktop staat de taalkeuze in de header-nav → footer-versie verbergen. */
     119@media (min-width: 768px) { .footer-lang { display: none; } }
    118120.footer-version { color: inherit; text-decoration: none; }
    119121.footer-version:hover { color: var(--accent); text-decoration: underline; }
  • src/views/partials/topnav.ejs

    r66cfbaa r2149f5a  
    8181        <svg class="icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="4"/><path d="M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M4.93 19.07l1.41-1.41M17.66 6.34l1.41-1.41"/></svg>
    8282      </button>
     83
     84      <% if (typeof langs !== 'undefined' && langs && langs.length > 1) { %>
     85        <select class="nav-lang" aria-label="<%= t('nav.language') %>" title="<%= t('nav.language') %>"
     86                onchange="location.href='/lang/'+this.value+'?r='+encodeURIComponent(location.pathname+location.search)">
     87          <% langs.forEach(function(l){ %><option value="<%= l.code %>"<%= l.active ? ' selected' : '' %>><%= l.code.toUpperCase() %></option><% }); %>
     88        </select>
     89      <% } %>
    8390
    8491      <% if (_hasPrutter) { %>
  • src/views/shell.ejs

    r66cfbaa r2149f5a  
    163163
    164164<!-- v9 stylesheet (full palette system) -->
    165 <link rel="stylesheet" href="/assets/css/style.css?v=26">
     165<link rel="stylesheet" href="/assets/css/style.css?v=27">
    166166
    167167<!-- Audio player styles: loaded on every page so the mini-player works
Note: See TracChangeset for help on using the changeset viewer.