feat(about): add Comunes Association copyleft notice à la Ğ1nkgo
This commit is contained in:
parent
913e058122
commit
33e0cffd30
8 changed files with 41 additions and 5 deletions
|
|
@ -86,7 +86,8 @@
|
|||
"licenseValue": "AGPL-3.0",
|
||||
"website": "Website",
|
||||
"openSourceLicenses": "Open-source licenses",
|
||||
"openSourceLicensesSubtitle": "Third-party libraries and their licenses"
|
||||
"openSourceLicensesSubtitle": "Third-party libraries and their licenses",
|
||||
"copyright": "© {years} Comunes Association, under AGPLv3"
|
||||
},
|
||||
"intro": {
|
||||
"skip": "Skip",
|
||||
|
|
|
|||
|
|
@ -86,7 +86,8 @@
|
|||
"licenseValue": "AGPL-3.0",
|
||||
"website": "Sitio web",
|
||||
"openSourceLicenses": "Licencias de código abierto",
|
||||
"openSourceLicensesSubtitle": "Bibliotecas de terceros y sus licencias"
|
||||
"openSourceLicensesSubtitle": "Bibliotecas de terceros y sus licencias",
|
||||
"copyright": "© {years} Asociación Comunes, bajo AGPLv3"
|
||||
},
|
||||
"intro": {
|
||||
"skip": "Saltar",
|
||||
|
|
|
|||
|
|
@ -86,7 +86,8 @@
|
|||
"licenseValue": "AGPL-3.0",
|
||||
"website": "Sítio web",
|
||||
"openSourceLicenses": "Licenças de código aberto",
|
||||
"openSourceLicensesSubtitle": "Bibliotecas de terceiros e as suas licenças"
|
||||
"openSourceLicensesSubtitle": "Bibliotecas de terceiros e as suas licenças",
|
||||
"copyright": "© {years} Associação Comunes, sob AGPLv3"
|
||||
},
|
||||
"intro": {
|
||||
"skip": "Saltar",
|
||||
|
|
|
|||
|
|
@ -4,9 +4,9 @@
|
|||
/// To regenerate, run: `dart run slang`
|
||||
///
|
||||
/// Locales: 3
|
||||
/// Strings: 872 (290 per locale)
|
||||
/// Strings: 875 (291 per locale)
|
||||
///
|
||||
/// Built on 2026-07-10 at 00:13 UTC
|
||||
/// Built on 2026-07-10 at 00:35 UTC
|
||||
|
||||
// coverage:ignore-file
|
||||
// ignore_for_file: type=lint, unused_import
|
||||
|
|
|
|||
|
|
@ -360,6 +360,9 @@ class Translations$about$en {
|
|||
|
||||
/// en: 'Third-party libraries and their licenses'
|
||||
String get openSourceLicensesSubtitle => 'Third-party libraries and their licenses';
|
||||
|
||||
/// en: '© {years} Comunes Association, under AGPLv3'
|
||||
String copyright({required Object years}) => '© ${years} Comunes Association, under AGPLv3';
|
||||
}
|
||||
|
||||
// Path: intro
|
||||
|
|
@ -1570,6 +1573,7 @@ extension on Translations {
|
|||
'about.website' => 'Website',
|
||||
'about.openSourceLicenses' => 'Open-source licenses',
|
||||
'about.openSourceLicensesSubtitle' => 'Third-party libraries and their licenses',
|
||||
'about.copyright' => ({required Object years}) => '© ${years} Comunes Association, under AGPLv3',
|
||||
'intro.skip' => 'Skip',
|
||||
'intro.next' => 'Next',
|
||||
'intro.start' => 'Get started',
|
||||
|
|
|
|||
|
|
@ -213,6 +213,7 @@ class _Translations$about$es extends Translations$about$en {
|
|||
@override String get website => 'Sitio web';
|
||||
@override String get openSourceLicenses => 'Licencias de código abierto';
|
||||
@override String get openSourceLicensesSubtitle => 'Bibliotecas de terceros y sus licencias';
|
||||
@override String copyright({required Object years}) => '© ${years} Asociación Comunes, bajo AGPLv3';
|
||||
}
|
||||
|
||||
// Path: intro
|
||||
|
|
@ -1006,6 +1007,7 @@ extension on TranslationsEs {
|
|||
'about.website' => 'Sitio web',
|
||||
'about.openSourceLicenses' => 'Licencias de código abierto',
|
||||
'about.openSourceLicensesSubtitle' => 'Bibliotecas de terceros y sus licencias',
|
||||
'about.copyright' => ({required Object years}) => '© ${years} Asociación Comunes, bajo AGPLv3',
|
||||
'intro.skip' => 'Saltar',
|
||||
'intro.next' => 'Siguiente',
|
||||
'intro.start' => 'Empezar',
|
||||
|
|
|
|||
|
|
@ -213,6 +213,7 @@ class _Translations$about$pt extends Translations$about$en {
|
|||
@override String get website => 'Sítio web';
|
||||
@override String get openSourceLicenses => 'Licenças de código aberto';
|
||||
@override String get openSourceLicensesSubtitle => 'Bibliotecas de terceiros e as suas licenças';
|
||||
@override String copyright({required Object years}) => '© ${years} Associação Comunes, sob AGPLv3';
|
||||
}
|
||||
|
||||
// Path: intro
|
||||
|
|
@ -1002,6 +1003,7 @@ extension on TranslationsPt {
|
|||
'about.website' => 'Sítio web',
|
||||
'about.openSourceLicenses' => 'Licenças de código aberto',
|
||||
'about.openSourceLicensesSubtitle' => 'Bibliotecas de terceiros e as suas licenças',
|
||||
'about.copyright' => ({required Object years}) => '© ${years} Associação Comunes, sob AGPLv3',
|
||||
'intro.skip' => 'Saltar',
|
||||
'intro.next' => 'Seguinte',
|
||||
'intro.start' => 'Começar',
|
||||
|
|
|
|||
|
|
@ -8,6 +8,19 @@ import 'theme.dart';
|
|||
/// The app's public website. Shown as a tappable row in [AboutScreen].
|
||||
const String _websiteUrl = 'https://tanemaki.app';
|
||||
|
||||
/// The year Tanemaki's copyright starts. Ğ1nkgo uses its own first year (2023);
|
||||
/// Tanemaki's is 2026.
|
||||
const int _copyrightStartYear = 2026;
|
||||
|
||||
/// A single year (`2026`) until the calendar rolls over, then a range
|
||||
/// (`2026-2027`), mirroring Ğ1nkgo's legalese line.
|
||||
String _copyrightYears() {
|
||||
final int now = DateTime.now().year;
|
||||
return now <= _copyrightStartYear
|
||||
? '$_copyrightStartYear'
|
||||
: '$_copyrightStartYear-$now';
|
||||
}
|
||||
|
||||
/// An "about" screen à la Ğ1nkgo: brand header, the human explanation of what
|
||||
/// Tanemaki is and where its name comes from, the app version, license, the
|
||||
/// website, and the bundled open-source licenses page.
|
||||
|
|
@ -62,12 +75,24 @@ class AboutScreen extends StatelessWidget {
|
|||
onTap: () => showLicensePage(
|
||||
context: context,
|
||||
applicationName: t.app.title,
|
||||
applicationLegalese: t.about.copyright(years: _copyrightYears()),
|
||||
applicationIcon: Padding(
|
||||
padding: const EdgeInsets.all(8),
|
||||
child: Image.asset('assets/logo.png', width: 48),
|
||||
),
|
||||
),
|
||||
),
|
||||
const Divider(height: 32),
|
||||
Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 20),
|
||||
child: Text(
|
||||
t.about.copyright(years: _copyrightYears()),
|
||||
textAlign: TextAlign.center,
|
||||
style: Theme.of(context).textTheme.bodySmall?.copyWith(
|
||||
color: seedOnSurface.withValues(alpha: 0.7),
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue