feat(links): surface source repo + Weblate links on site and in app

- site: set sourceURL (git.comunes.org/comunes/tane) and weblateURL
  (translate.comunes.org/projects/tane) — activates footer + collaborate links
- app About screen: add 'Source code' and 'Help translate' link tiles
- i18n: add about.sourceCode / about.translate / about.translateSubtitle
  (en base + es/pt/fr/de/ast; ja falls back to base), regenerate slang
- docs: add TRANSLATIONS.md runbook for the Weblate app component + git
  token + slang-regeneration workflow
This commit is contained in:
vjrj 2026-07-15 19:12:16 +02:00
parent 991785821f
commit 7d5f26ff4a
16 changed files with 187 additions and 16 deletions

View file

@ -577,6 +577,15 @@ class Translations$about$en {
/// en: 'Website'
String get website => 'Website';
/// en: 'Source code'
String get sourceCode => 'Source code';
/// en: 'Help translate'
String get translate => 'Help translate';
/// en: 'Help bring Tane to your language'
String get translateSubtitle => 'Help bring Tane to your language';
/// en: 'Open-source licenses'
String get openSourceLicenses => 'Open-source licenses';
@ -2721,6 +2730,9 @@ extension on Translations {
'about.license' => 'License',
'about.licenseValue' => 'AGPL-3.0',
'about.website' => 'Website',
'about.sourceCode' => 'Source code',
'about.translate' => 'Help translate',
'about.translateSubtitle' => 'Help bring Tane to your language',
'about.openSourceLicenses' => 'Open-source licenses',
'about.openSourceLicensesSubtitle' => 'Third-party libraries and their licenses',
'about.copyright' => ({required Object years}) => '© ${years} Comunes Association, under AGPLv3',
@ -3107,11 +3119,11 @@ extension on Translations {
'plantare.returnSimilar' => 'A similar amount of seed',
'plantare.returnSimilarNote' => 'open-pollinated · non-GMO · organically grown',
'plantare.returnWork' => 'Some hours of work',
_ => null,
} ?? switch (path) {
'plantare.returnOther' => 'Something else',
'plantare.workHoursLabel' => 'How many hours?',
'plantare.proposalsSection' => 'Waiting for your reply',
_ => null,
} ?? switch (path) {
'plantare.incomingFrom' => ({required Object name}) => '${name} proposes a Plantaré',
'plantare.accept' => 'Accept & sign',
'plantare.declineAction' => 'Decline',