feat(explore): how many learn it here, opt-in; copies published within their licence

Explore says how many people learn a published studyset on this instance
(ADR 0005, rule 8): shown, never ranked, counted daily by the server from
the people with an identity who chose to be counted (Settings, Privacy;
settings schema 8) and studied a copy on 3 or more days of the last 30,
rounded down from 5 on, so that nobody can be told apart. Only a number
the instance computes itself counts; votes count for nothing. The author
sees the same rounded number in the Publish sheet.

A copy of a published studyset is published within the original's
licence: never under "no derivatives", under a licence that keeps
adaptations under it only under that one, in every studyset of the copy.
Its releases say what they are based on, and Explore shows it.

ADR 0005 gets an addendum with stage 3's decisions.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MMm7usAo6q9ZZRoPkWjoxi
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
Tizian 「ティツィアーン」 2026-10-10 00:18:29 +02:00
commit 7574e42415
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64

View file

@ -5318,6 +5318,39 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get cardBrowserStatusWithdrawn => 'Withdrawn by the author';
@override
String get settingsPrivacy => 'Privacy';
@override
String get settingsCountLearning => 'Count my learning in Explore';
@override
String get settingsCountLearningSubtitle =>
'Explore shows how many people on this instance learn a published studyset: those with an identity who chose this and studied it on 3 or more days in the last 30, rounded, from 5 on. Nothing about you is shown, and nothing leaves the instance.';
@override
String exploreLearners(int count) {
return '$count+ learn this here';
}
@override
String get publishLearnersFew =>
'Fewer than 5 learn it here, of those who chose to be counted.';
@override
String get publishForkForbidden =>
'Its original forbids passing on adaptations: only its author publishes it.';
@override
String publishLicenseMustStay(String license) {
return 'Its original asks adaptations to stay under $license: choose it under Edit, for every studyset in it.';
}
@override
String exploreBasedOn(String location) {
return 'based on $location';
}
}
/// The translations for English, as used in the United Kingdom (`en_GB`).