Changeset 7421147 in Klonkt


Ignore:
Timestamp:
08/18/2026 06:47:58 PM (3 weeks ago)
Author:
Bart <bart@…>
Branches:
main
Children:
100aad8
Parents:
b67edbd
git-author:
Bart <bart@…> (08/18/2026 04:10:41 AM)
git-committer:
Bart <bart@…> (08/18/2026 06:47:58 PM)
Message:

Leesweergave: de twee zinnen die het script plaatst, zijn nu vertaalbaar

'Je bent bij het begin van het archief.' en de laadfout stonden hard in
mod/read.js -- terwijl read.exit in dezelfde commit wél in drie talen ging. Een
Engelse of Duitse lezer kreeg Nederlands aan het eind van het archief. Ze komen
nu van data-i18n op de stroom, dezelfde afspraak als de zoekteksten van de
topnav (mod/chrome.js).

En drie klassenamen die in het Nederlands waren blijven steken naast negen
Engelse: read-chrome-weg, read-laden en read-eind heten nu read-chrome-hidden,
read-loading en read-end.

Co-Authored-By: Claude Opus 5 <claude@…>

Location:
src
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • src/assets/js/mod/read.js

    rb67edbd r7421147  
    1818const MARGE = '1px 0px 100% 0px';
    1919
     20// De teksten die dit script plaatst. Ze staan in data-i18n op de stroom, want
     21// een zin die hier staat, staat in één taal -- en dat is nooit de taal van de
     22// lezer. Zelfde afspraak als de topnav (mod/chrome.js).
     23let woorden = {};
     24function woord(sleutel) { return woorden[sleutel] || ''; }
     25
    2026const stroom = () => document.getElementById('read-stream');
    2127const geladen = new Set();      // slugs die al in de stroom staan
     
    2632
    2733function chrome(verbergen) {
    28   document.body.classList.toggle('read-chrome-weg', !!verbergen);
     34  document.body.classList.toggle('read-chrome-hidden', !!verbergen);
    2935}
    3036
     
    7278  if (geladen.has(slug)) return;
    7379  bezigOnder = true;
    74   const wacht = melding(s, 'read-laden', '…');
     80  const wacht = melding(s, 'read-loading', '…');
    7581  try {
    7682    const art = await haal(slug, laatste.dataset.base || '');
     
    8086    kijk();
    8187  } catch (e) {
    82     wacht.textContent = 'Kon het volgende bericht niet laden.';
     88    wacht.textContent = woord('load_error');
    8389    console.warn('[read] onderaan:', e && e.message);
    8490  } finally { bezigOnder = false; }
     
    120126
    121127function klaar(s) {
    122   if (s.querySelector('.read-eind')) return;
    123   melding(s, 'read-eind', 'Je bent bij het begin van het archief.');
     128  if (s.querySelector('.read-end')) return;
     129  melding(s, 'read-end', woord('end'));
    124130}
    125131
     
    152158  const s = stroom();
    153159  if (!s) return;
     160  try { woorden = JSON.parse(s.getAttribute('data-i18n') || '{}'); } catch (e) { woorden = {}; }
    154161  s.querySelectorAll('.read-post').forEach((p) => geladen.add(p.dataset.slug));
    155162  laatsteY = window.scrollY || 0;
  • src/services/i18n.js

    rb67edbd r7421147  
    891891    'fgate.title': 'Alleen voor vrienden',
    892892    'fgate.sub': 'Dit is exclusief voor ingelogde vrienden. Log in om het te bekijken.',
    893     'fgate.login': 'Inloggen / aanmelden', 'read.exit': 'Terug naar de site', 'read.exit_label': 'Uit het leesscherm',
     893    'fgate.login': 'Inloggen / aanmelden', 'read.end': 'Je bent bij het begin van het archief.', 'read.load_error': 'Kon het volgende bericht niet laden.', 'read.exit': 'Terug naar de site', 'read.exit_label': 'Uit het leesscherm',
    894894    'lbio.empty': 'Nog geen links ingesteld.',
    895895    'lbio.back_to_site': 'naar de site',
     
    18971897    'fgate.title': 'Friends only',
    18981898    'fgate.sub': 'This is exclusive to logged-in friends. Log in to view it.',
    1899     'fgate.login': 'Log in / sign up', 'read.exit': 'Back to the site', 'read.exit_label': 'Leave reading view',
     1899    'fgate.login': 'Log in / sign up', 'read.end': 'You have reached the beginning of the archive.', 'read.load_error': 'Could not load the next post.', 'read.exit': 'Back to the site', 'read.exit_label': 'Leave reading view',
    19001900    'lbio.empty': 'No links set up yet.',
    19011901    'lbio.back_to_site': 'back to the site',
     
    29032903    'fgate.title': 'Nur für Freunde',
    29042904    'fgate.sub': 'Dies ist exklusiv für eingeloggte Freunde. Melde dich an, um es anzusehen.',
    2905     'fgate.login': 'Anmelden / Registrieren', 'read.exit': 'Zurück zur Seite', 'read.exit_label': 'Lesemodus verlassen',
     2905    'fgate.login': 'Anmelden / Registrieren', 'read.end': 'Du bist am Anfang des Archivs angekommen.', 'read.load_error': 'Der nächste Beitrag konnte nicht geladen werden.', 'read.exit': 'Zurück zur Seite', 'read.exit_label': 'Lesemodus verlassen',
    29062906    'lbio.empty': 'Noch keine Links eingerichtet.',
    29072907    'lbio.back_to_site': 'zurück zur Seite',
  • src/views/pages/read.ejs

    rb67edbd r7421147  
    1414%>
    1515
    16 <div class="read-stream" id="read-stream" data-base="<%= _b %>">
     16<%# De teksten die het script zelf plaatst, komen van hier -- zoals de
     17    zoekteksten van de topnav (zie mod/chrome.js). Een zin die in het
     18    script staat, staat in één taal, en dat is nooit de taal van de lezer. %>
     19<div class="read-stream" id="read-stream" data-base="<%= _b %>"
     20     data-i18n="<%= JSON.stringify({ end: t('read.end'), load_error: t('read.load_error') }) %>">
    1721  <%- include('../partials/read-article', {
    1822        post: post, entry: entry, newerPost: newerPost, olderPost: olderPost,
     
    4448  will-change: transform;
    4549}
    46 .on-read.read-chrome-weg #pcms-chrome { transform: translateY(-100%); opacity: 0; }
    47 .on-read.read-chrome-weg .bottom-tab  { transform: translateY(100%);  opacity: 0; }
     50.on-read.read-chrome-hidden #pcms-chrome { transform: translateY(-100%); opacity: 0; }
     51.on-read.read-chrome-hidden .bottom-tab  { transform: translateY(100%);  opacity: 0; }
    4852
    4953/* De vrije ruimte onder de laatste post moet weg: anders eindigt het document
     
    7377/* Bezig / mislukt: de lezer hoort te merken dat er iets gebeurt, en vooral dat
    7478   er NIETS gebeurde als het misging. */
    75 .on-read .read-laden { text-align: center; padding: 1.2rem; opacity: .6; font-size: .9rem; }
    76 .on-read .read-eind  { text-align: center; padding: 2rem 1rem 3rem; opacity: .5; font-size: .9rem; }
     79.on-read .read-loading { text-align: center; padding: 1.2rem; opacity: .6; font-size: .9rem; }
     80.on-read .read-end  { text-align: center; padding: 2rem 1rem 3rem; opacity: .5; font-size: .9rem; }
    7781
    7882.on-read .read-exit { position: fixed; right: 1rem; bottom: 1rem; z-index: 60; }
Note: See TracChangeset for help on using the changeset viewer.