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

@ -329,6 +329,9 @@ class _Translations$about$de extends Translations$about$en {
@override String get license => 'Lizenz';
@override String get licenseValue => 'AGPL-3.0';
@override String get website => 'Webseite';
@override String get sourceCode => 'Quellcode';
@override String get translate => 'Beim Übersetzen helfen';
@override String get translateSubtitle => 'Hilf, Tane in deine Sprache zu bringen';
@override String get openSourceLicenses => 'Open-Source-Lizenzen';
@override String get openSourceLicensesSubtitle => 'Bibliotheken von Drittanbietern und ihre Lizenzen';
@override String copyright({required Object years}) => '© ${years} Comunes Association, unter AGPLv3';
@ -1533,6 +1536,9 @@ extension on TranslationsDe {
'about.license' => 'Lizenz',
'about.licenseValue' => 'AGPL-3.0',
'about.website' => 'Webseite',
'about.sourceCode' => 'Quellcode',
'about.translate' => 'Beim Übersetzen helfen',
'about.translateSubtitle' => 'Hilf, Tane in deine Sprache zu bringen',
'about.openSourceLicenses' => 'Open-Source-Lizenzen',
'about.openSourceLicensesSubtitle' => 'Bibliotheken von Drittanbietern und ihre Lizenzen',
'about.copyright' => ({required Object years}) => '© ${years} Comunes Association, unter AGPLv3',
@ -1919,11 +1925,11 @@ extension on TranslationsDe {
'sale.empty' => 'Noch keine Verkäufe. Notiere hier, was du verkaufst oder kaufst.',
'sale.iSold' => 'Ich verkaufte',
'sale.iBought' => 'Ich kaufte',
_ => null,
} ?? switch (path) {
'sale.direction' => 'Verkauft oder gekauft?',
'sale.counterparty' => 'Mit wem?',
'sale.counterpartyHint' => 'Eine Person oder ein Kollektiv (optional)',
_ => null,
} ?? switch (path) {
'sale.amount' => 'Betrag',
'sale.currency' => 'Währung',
'sale.currencyHint' => '€, Ğ1, Stunden… (optional)',