feat(app): choose a studyset's licence, its year and holder

The studyset sheet gains Licence, as before: "Help me choose" asks three
questions (keep any rights? commercial use? adaptations, alike?) and
recommends one of the six current Creative Commons licences or CC0, with
what it lets others do and a link to its terms; the licence field
suggests well-known licences and takes any other as typed, kept in one
spelling (`cc by-nc-sa 3.0 us` is `CC-BY-NC-SA-3.0-US`); the year sits at
its end (1000 to next year), the holder below. An older or ported
Creative Commons licence gets a note naming its current version. A new
sub-studyset starts with the licence of the one it is in.

Left out until publishing exists: the warnings about sub-studysets'
licences that a parent's doesn't cover. The licence shows for every
studyset, as there is no visibility yet.

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-08 23:48:43 +02:00
commit bd6016ee1b
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64

View file

@ -1144,6 +1144,141 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get studysetSheetLanguageNotSet => 'Not set';
@override
String get studysetSheetLicense => 'Licence';
@override
String get studysetSheetLicenseHelp => 'Help me choose';
@override
String get studysetSheetLicenseLabel => 'Licence';
@override
String get studysetSheetLicenseHelper =>
'The terms others may use the content under, shown below the studyset with a link to them. Examples: CC-BY-4.0, CC-BY-SA-4.0, MIT, All Rights Reserved.';
@override
String get studysetSheetLicenseYear => 'Year';
@override
String get studysetSheetLicenseYearHelper =>
'The copyright year, shown as “© 2019 Name”. Optional.';
@override
String studysetSheetLicenseYearInvalid(int min, int max) {
return 'Enter a year between $min and $max.';
}
@override
String get studysetSheetLicenseHolder => 'Licence holder';
@override
String get studysetSheetLicenseHolderHelper =>
'Who to credit: a name or an organisation.';
@override
String studysetSheetLicenseNewer(String license, String current) {
return '$license is an older Creative Commons licence. Its current version, $current, may fit better.';
}
@override
String get licenseChooserTitle => 'Choose a licence';
@override
String get licenseChooserSubtitle =>
'A few questions to find the Creative Commons licence that fits how you want your work shared.';
@override
String get licenseChooserIntroPrompt =>
'Do you want to keep any rights to your work?';
@override
String get licenseChooserIntroYes => 'Yes, share it under a licence';
@override
String get licenseChooserIntroYesDetail =>
'Others must follow the conditions you choose next.';
@override
String get licenseChooserIntroNo => 'No, dedicate it to the public domain';
@override
String get licenseChooserIntroNoDetail =>
'CC0: anyone may use it for anything, without conditions.';
@override
String get licenseChooserCommercialPrompt =>
'Allow others to use your work commercially?';
@override
String get licenseChooserYes => 'Yes';
@override
String get licenseChooserCommercialYesDetail => 'Including for profit.';
@override
String get licenseChooserNo => 'No';
@override
String get licenseChooserCommercialNoDetail =>
'Non-commercial uses only (NC).';
@override
String get licenseChooserAdaptationsPrompt =>
'Allow others to adapt or build upon your work?';
@override
String get licenseChooserAdaptationsYesDetail =>
'Remixes and adaptations are allowed.';
@override
String get licenseChooserAdaptationsShareAlike => 'Yes, if they share alike';
@override
String get licenseChooserAdaptationsShareAlikeDetail =>
'Adaptations carry this same licence (SA).';
@override
String get licenseChooserAdaptationsNoDetail =>
'Sharing only, no adaptations (ND).';
@override
String get licenseChooserBack => 'Back';
@override
String get licenseChooserRecommended => 'Recommended licence';
@override
String get licenseChooserUse => 'Use this licence';
@override
String get licenseSummaryCc0 =>
'Anyone may use it for anything, without conditions or credit.';
@override
String get licenseSummaryBy =>
'Others may share and adapt it, even commercially, as long as they credit you.';
@override
String get licenseSummaryBySa =>
'Others may share and adapt it, even commercially, if they credit you and licence their adaptations the same way.';
@override
String get licenseSummaryByNc =>
'Others may share and adapt it for non-commercial purposes, with credit to you.';
@override
String get licenseSummaryByNcSa =>
'Others may share and adapt it non-commercially, with credit and the same licence on adaptations.';
@override
String get licenseSummaryByNd =>
'Others may share it, even commercially, with credit, but may not share adaptations.';
@override
String get licenseSummaryByNcNd =>
'Others may share it non-commercially, with credit, but may not adapt it: the strictest Creative Commons licence.';
@override
String get languageArabic => 'Arabic';
@ -4019,6 +4154,56 @@ class AppLocalizationsEnUs extends AppLocalizationsEn {
return 'Color: $color';
}
@override
String get studysetSheetLicense => 'License';
@override
String get studysetSheetLicenseLabel => 'License';
@override
String get studysetSheetLicenseHolder => 'License holder';
@override
String get studysetSheetLicenseHolderHelper =>
'Who to credit: a name or an organization.';
@override
String studysetSheetLicenseNewer(String license, String current) {
return '$license is an older Creative Commons license. Its current version, $current, may fit better.';
}
@override
String get licenseChooserTitle => 'Choose a license';
@override
String get licenseChooserSubtitle =>
'A few questions to find the Creative Commons license that fits how you want your work shared.';
@override
String get licenseChooserIntroYes => 'Yes, share it under a license';
@override
String get licenseChooserAdaptationsShareAlikeDetail =>
'Adaptations carry this same license (SA).';
@override
String get licenseChooserRecommended => 'Recommended license';
@override
String get licenseChooserUse => 'Use this license';
@override
String get licenseSummaryBySa =>
'Others may share and adapt it, even commercially, if they credit you and license their adaptations the same way.';
@override
String get licenseSummaryByNcSa =>
'Others may share and adapt it non-commercially, with credit and the same license on adaptations.';
@override
String get licenseSummaryByNcNd =>
'Others may share it non-commercially, with credit, but may not adapt it: the strictest Creative Commons license.';
@override
String get tagSheetColor => 'Color';