Changeset 92f6976 in Klonkt


Ignore:
Timestamp:
06/27/2026 08:00:10 AM (2 months ago)
Author:
Robin Genis <roboburr@…>
Branches:
main
Children:
b7d4458
Parents:
837fc9c
Message:

feat(settings): 18+ notice + confirm when activating Circles (fediverse)

The fediverse is an open 18+ network. A note under the Circles mode option and a
confirm dialog when switching Solo→Circles. i18n NL/EN/DE.

Location:
src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • src/services/i18n.js

    r837fc9c r92f6976  
    191191    'aset.fediverse': 'Fediverse (ActivityPub)',
    192192    'aset.fediverse_help': 'Laat je site meedoen met de fediverse: mensen op Mastodon (of een andere Klonkt) kunnen je volgen, liken en reageren — en die reacties verschijnen onder je posts. Zet je dit uit, dan federeert je site niet en zijn er geen reacties (een rustige, op zichzelf staande blog).',
    193     'aset.fediverse_toggle': 'Fediverse aan (volgen, liken, reageren)', 'aset.mode': 'Modus', 'aset.mode_help': 'Kies hoe je site werkt.', 'aset.mode_solo': 'Solo', 'aset.mode_solo_help': 'Een op zichzelf staande blog — geen fediverse, geen reacties. Rustig en privé.', 'aset.mode_cirkels': 'Cirkels', 'aset.mode_cirkels_help': 'Doe mee met de fediverse (ActivityPub): mensen op Mastodon of een andere Klonkt kunnen je volgen, liken en reageren, en je kunt een cirkel van sites volgen.',
     193    'aset.fediverse_toggle': 'Fediverse aan (volgen, liken, reageren)', 'aset.mode': 'Modus', 'aset.mode_help': 'Kies hoe je site werkt.', 'aset.mode_solo': 'Solo', 'aset.mode_solo_help': 'Een op zichzelf staande blog — geen fediverse, geen reacties. Rustig en privé.', 'aset.mode_cirkels': 'Cirkels', 'aset.mode_18plus': 'De fediverse is een open netwerk dat ook volwassen (18+) inhoud kan bevatten — je moet volwassen genoeg zijn om mee te doen.', 'aset.mode_18plus_confirm': 'Cirkels verbindt je site met de fediverse, een open netwerk met ook 18+-inhoud. Bevestig dat je volwassen genoeg bent om dit te activeren.', 'aset.mode_cirkels_help': 'Doe mee met de fediverse (ActivityPub): mensen op Mastodon of een andere Klonkt kunnen je volgen, liken en reageren, en je kunt een cirkel van sites volgen.',
    194194    'aset.email_smtp': 'E-mail (SMTP)',
    195195    'aset.smtp_help_1': 'Nodig om de',
     
    12031203    'aset.fediverse': 'Fediverse (ActivityPub)',
    12041204    'aset.fediverse_help': 'Let your site join the fediverse: people on Mastodon (or another Klonkt) can follow, like and reply — and those replies show up under your posts. Turn this off and your site does not federate and has no comments (a quiet, standalone blog).',
    1205     'aset.fediverse_toggle': 'Fediverse on (follow, like, comment)', 'aset.mode': 'Mode', 'aset.mode_help': 'Choose how your site works.', 'aset.mode_solo': 'Solo', 'aset.mode_solo_help': 'A standalone blog — no fediverse, no comments. Quiet and self-contained.', 'aset.mode_cirkels': 'Circles', 'aset.mode_cirkels_help': 'Join the fediverse (ActivityPub): people on Mastodon or another Klonkt can follow, like and reply, and you can follow a circle of sites.',
     1205    'aset.fediverse_toggle': 'Fediverse on (follow, like, comment)', 'aset.mode': 'Mode', 'aset.mode_help': 'Choose how your site works.', 'aset.mode_solo': 'Solo', 'aset.mode_solo_help': 'A standalone blog — no fediverse, no comments. Quiet and self-contained.', 'aset.mode_cirkels': 'Circles', 'aset.mode_18plus': 'The fediverse is an open network that can also contain adult (18+) content — you must be old enough to take part.', 'aset.mode_18plus_confirm': 'Circles connects your site to the fediverse, an open network that also contains 18+ content. Confirm that you are old enough to enable this.', 'aset.mode_cirkels_help': 'Join the fediverse (ActivityPub): people on Mastodon or another Klonkt can follow, like and reply, and you can follow a circle of sites.',
    12061206    'aset.email_smtp': 'Email (SMTP)',
    12071207    'aset.smtp_help_1': 'Needed to',
     
    22142214    'aset.fediverse': 'Fediverse (ActivityPub)',
    22152215    'aset.fediverse_help': 'Lass deine Seite am Fediverse teilnehmen: Leute auf Mastodon (oder einem anderen Klonkt) können dir folgen, liken und antworten — und diese Antworten erscheinen unter deinen Beiträgen. Schaltest du das aus, föderiert deine Seite nicht und hat keine Kommentare (ein ruhiger, eigenständiger Blog).',
    2216     'aset.fediverse_toggle': 'Fediverse an (Folgen, Liken, Kommentieren)', 'aset.mode': 'Modus', 'aset.mode_help': 'Wähle, wie deine Site funktioniert.', 'aset.mode_solo': 'Solo', 'aset.mode_solo_help': 'Ein eigenständiger Blog — kein Fediverse, keine Kommentare. Ruhig und in sich geschlossen.', 'aset.mode_cirkels': 'Kreise', 'aset.mode_cirkels_help': 'Mach beim Fediverse mit (ActivityPub): Leute auf Mastodon oder einem anderen Klonkt können dir folgen, liken und antworten, und du kannst einem Kreis von Sites folgen.',
     2216    'aset.fediverse_toggle': 'Fediverse an (Folgen, Liken, Kommentieren)', 'aset.mode': 'Modus', 'aset.mode_help': 'Wähle, wie deine Site funktioniert.', 'aset.mode_solo': 'Solo', 'aset.mode_solo_help': 'Ein eigenständiger Blog — kein Fediverse, keine Kommentare. Ruhig und in sich geschlossen.', 'aset.mode_cirkels': 'Kreise', 'aset.mode_18plus': 'Das Fediverse ist ein offenes Netzwerk, das auch Inhalte für Erwachsene (18+) enthalten kann — du musst alt genug sein, um teilzunehmen.', 'aset.mode_18plus_confirm': 'Kreise verbindet deine Seite mit dem Fediverse, einem offenen Netzwerk mit auch 18+-Inhalten. Bestätige, dass du alt genug bist, um dies zu aktivieren.', 'aset.mode_cirkels_help': 'Mach beim Fediverse mit (ActivityPub): Leute auf Mastodon oder einem anderen Klonkt können dir folgen, liken und antworten, und du kannst einem Kreis von Sites folgen.',
    22172217    'aset.email_smtp': 'E-Mail (SMTP)',
    22182218    'aset.smtp_help_1': 'Erforderlich, um den',
  • src/views/pages/admin-settings.ejs

    r837fc9c r92f6976  
    1010    <h2><%= t('aset.mode') %></h2>
    1111    <p class="set-help"><%= t('aset.mode_help') %></p>
    12     <form method="post" action="/admin/settings/ap" class="set-form">
     12    <form method="post" action="/admin/settings/ap" class="set-form" id="mode-form"
     13          data-was-cirkels="<%= (typeof apEnabledSetting === 'undefined' || apEnabledSetting) ? '1' : '0' %>"
     14          data-confirm="<%= t('aset.mode_18plus_confirm') %>">
    1315      <label class="set-opt">
    1416        <input type="radio" name="mode" value="solo" <%= (typeof apEnabledSetting !== 'undefined' && !apEnabledSetting) ? 'checked' : '' %>>
     
    1921        <span><strong><%= t('aset.mode_cirkels') %></strong><small><%= t('aset.mode_cirkels_help') %></small></span>
    2022      </label>
     23      <p class="set-help" style="margin:.2rem 0 0;color:var(--accent);font-weight:600">🔞 <%= t('aset.mode_18plus') %></p>
    2124      <div class="set-actions"><button type="submit" class="btn btn-primary"><%= t('aset.save') %></button></div>
    2225    </form>
     26    <script>
     27    (function () {
     28      var f = document.getElementById('mode-form');
     29      if (!f || f.__age18wired) return; f.__age18wired = true;
     30      f.addEventListener('submit', function (e) {
     31        var sel = f.querySelector('input[name=mode]:checked');
     32        if (sel && sel.value === 'cirkels' && f.getAttribute('data-was-cirkels') === '0') {
     33          if (!window.confirm(f.getAttribute('data-confirm'))) e.preventDefault();
     34        }
     35      });
     36    })();
     37    </script>
    2338  </section>
    2439
Note: See TracChangeset for help on using the changeset viewer.