- Timestamp:
- 06/27/2026 01:58:39 PM (2 months ago)
- Branches:
- main
- Children:
- 98fe58a
- Parents:
- 0960c1d
- Location:
- src
- Files:
-
- 2 edited
-
routes/changelog.js (modified) (2 diffs)
-
services/i18n.js (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/routes/changelog.js
r0960c1d reb5f978 2 2 * Public changelog / release page. 3 3 * 4 * GET /changelog -> renders CHANGELOG.md (the source of truth for releases). 4 * GET /changelog -> renders the changelog in the visitor's language: 5 * CHANGELOG.<lang>.md if a translation exists, else CHANGELOG.md (English base). 5 6 */ 6 7 … … 11 12 import { renderPage } from '../middleware/render.js'; 12 13 import { MarkdownService } from '../services/MarkdownService.js'; 14 import { resolveLang, t } from '../services/i18n.js'; 15 import { getSetting } from '../services/SettingsService.js'; 13 16 14 17 const router = express.Router(); 15 18 const __dirname = path.dirname(fileURLToPath(import.meta.url)); 16 const CHANGELOG_PATH = path.join(__dirname, '..', '..', 'CHANGELOG.md');19 const ROOT = path.join(__dirname, '..', '..'); 17 20 18 21 router.get('/changelog', (req, res) => { 19 let html; 20 try { 21 html = MarkdownService.render(fs.readFileSync(CHANGELOG_PATH, 'utf8')); 22 } catch { 23 html = '<p>Geen wijzigingenoverzicht beschikbaar.</p>'; 22 const lang = resolveLang(req, { 23 userLang: req.session && req.session.user && req.session.user.lang, 24 defaultLang: getSetting('default_lang'), 25 }); 26 // Visitor's language if a translation exists, else the English base. 27 const files = [path.join(ROOT, `CHANGELOG.${lang}.md`), path.join(ROOT, 'CHANGELOG.md')]; 28 let html = ''; 29 for (const f of files) { 30 try { html = MarkdownService.render(fs.readFileSync(f, 'utf8')); break; } catch { /* try next */ } 24 31 } 32 if (!html) html = `<p>${t(lang, 'changelog.empty')}</p>`; 25 33 renderPage(req, res, 'pages/changelog', { 26 pageTitle: 'Wijzigingen',34 pageTitle: t(lang, 'changelog.title'), 27 35 bodyClass: 'on-changelog', 28 36 changelogHtml: html, -
src/services/i18n.js
r0960c1d reb5f978 101 101 'setup.submit': 'Mijn site aanmaken', 102 102 'setup.username_note': 'Dit wordt je adres op de fediverse en kun je later niet meer wijzigen:', 103 'changelog.title': 'Wijzigingen', 'changelog.empty': 'Geen wijzigingenoverzicht beschikbaar.', 103 104 'auth.f_username': 'Gebruikersnaam (3-32 tekens, letters/cijfers/_-)', 104 105 'auth.f_email': 'E-mail', … … 1117 1118 'setup.submit': 'Create my site', 1118 1119 'setup.username_note': 'This becomes your address on the fediverse and can’t be changed later:', 1120 'changelog.title': 'Changelog', 'changelog.empty': 'No changelog available.', 1119 1121 'auth.f_username': 'Username (3-32 chars, letters/digits/_-)', 1120 1122 'auth.f_email': 'Email', … … 2129 2131 'setup.submit': 'Meine Seite erstellen', 2130 2132 'setup.username_note': 'Das wird deine Adresse im Fediverse und kann später nicht geändert werden:', 2133 'changelog.title': 'Änderungen', 'changelog.empty': 'Kein Änderungsprotokoll verfügbar.', 2131 2134 'auth.f_username': 'Benutzername (3-32 Zeichen, Buchstaben/Ziffern/_-)', 2132 2135 'auth.f_email': 'E-Mail',
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)