Changeset 69b509d in Klonkt


Ignore:
Timestamp:
06/30/2026 04:19:12 AM (2 months ago)
Author:
roboburr <roboburr@…>
Branches:
main
Children:
bea59a1
Parents:
757eea0
Message:

fix(i18n): localize the "Beheer" back-buttons + EPK save message (were hardcoded Dutch)

The "<- Beheer" back-link on the Audio/Playlists/Stats admin pages and the admin quick-links
aria-label were hardcoded Dutch in an otherwise i18n'd UI; now t('nav.admin'). The EPK editor's
save-confirmation + its two plain-text error responses were Dutch too; the save flash now uses
t(lang, 'aepk.saved') and the errors are English.

  • src/views/pages/admin-{audio,playlists,stats}.ejs, admin.ejs — back-link/aria-label -> t('nav.admin')
  • src/routes/admin-epk.js — translate save flash via resolveLang+t; English the error sends
  • src/services/i18n.js — aepk.saved (nl/en/de)

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

Location:
src
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • src/routes/admin-epk.js

    r757eea0 r69b509d  
    1515import { getSetting, setSetting } from '../services/SettingsService.js';
    1616import { premiumUnlocked } from '../services/PatreonService.js';
     17import { t, resolveLang } from '../services/i18n.js';
    1718
    1819const router = express.Router();
     
    2223router.get('/', requireGod, (req, res) => {
    2324  const site = res.locals.site;
    24   if (!site) return res.status(404).send('Geen site');
     25  if (!site) return res.status(404).send('Site required');
    2526  if (!premiumUnlocked()) {
    26     return res.status(403).send('Perskit is een premium-functie.');
     27    return res.status(403).send('Press kit is a premium feature.');
    2728  }
    2829  const allTracks = db.prepare(
     
    4647router.post('/', requireGod, (req, res) => {
    4748  const site = res.locals.site;
    48   if (!site) return res.status(404).send('Geen site');
     49  if (!site) return res.status(404).send('Site required');
    4950  setSetting('epk_bio_' + site.id, (req.body.epk_bio || '').toString().slice(0, 1000).trim());
    5051  setSetting('epk_contact_' + site.id, (req.body.epk_contact || '').toString().slice(0, 300).trim());
     
    5556  ids = ids.map(String).filter((id) => valid.has(id)).slice(0, MAX_EPK_TRACKS);
    5657  setSetting('epk_tracks_' + site.id, JSON.stringify(ids));
    57   res.redirect('/admin/epk?success=' + encodeURIComponent('Perskit opgeslagen'));
     58  const lang = resolveLang(req, { defaultLang: getSetting('default_lang') });
     59  res.redirect('/admin/epk?success=' + encodeURIComponent(t(lang, 'aepk.saved')));
    5860});
    5961
  • src/services/i18n.js

    r757eea0 r69b509d  
    559559    'aupd.manual_hint': 'Werk bij vanaf GitHub door dit op je server uit te voeren:',
    560560    'aepk.title': 'Perskit bewerken',
     561    'aepk.saved': 'Perskit opgeslagen',
    561562    'aepk.back_admin': 'Beheer',
    562563    'aepk.view_epk': 'Bekijk perskit',
     
    14751476    'aupd.manual_hint': 'Update from GitHub by running this on your server:',
    14761477    'aepk.title': 'Edit press kit',
     1478    'aepk.saved': 'Press kit saved',
    14771479    'aepk.back_admin': 'Admin',
    14781480    'aepk.view_epk': 'View press kit',
     
    23902392    'aupd.manual_hint': 'Aktualisiere von GitHub, indem du dies auf deinem Server ausführst:',
    23912393    'aepk.title': 'Pressekit bearbeiten',
     2394    'aepk.saved': 'Pressekit gespeichert',
    23922395    'aepk.back_admin': 'Verwaltung',
    23932396    'aepk.view_epk': 'Pressekit ansehen',
  • src/views/pages/admin-audio.ejs

    r757eea0 r69b509d  
    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('nav.admin') %></a></p>
    44  <header class="ax-header">
    55    <div>
  • src/views/pages/admin-playlists.ejs

    r757eea0 r69b509d  
    77<div class="container ax-page">
    88
    9   <p><a href="/admin" class="btn">&larr; Beheer</a></p>
     9  <p><a href="/admin" class="btn">&larr; <%= t('nav.admin') %></a></p>
    1010  <header class="ax-header">
    1111    <div>
  • src/views/pages/admin-stats.ejs

    r757eea0 r69b509d  
    11<div class="container stats-page">
    2   <p><a href="/admin" class="btn">&larr; Beheer</a></p>
     2  <p><a href="/admin" class="btn">&larr; <%= t('nav.admin') %></a></p>
    33  <h1><%= t('astat.title') %></h1>
    44  <p class="stats-note"><%= t('astat.intro') %></p>
  • src/views/pages/admin.ejs

    r757eea0 r69b509d  
    2323  <% } %>
    2424
    25   <nav class="admin-quick-links" aria-label="Beheer-snelkoppelingen">
     25  <nav class="admin-quick-links" aria-label="<%= t('nav.admin') %>">
    2626    <% if (tenancy === 'hub') { %>
    2727      <a href="/admin/sites" class="btn"><%= t('admin.b_sites') %></a>
Note: See TracChangeset for help on using the changeset viewer.