feat(seed-saving): source attribution + advisory note

Record where the guidance comes from (copyright/attribution) and make
clear it is general, not local gospel — kept light:
- seed_saving.json gains a top-level sources list (Seed to Seed / Seed
  Savers Exchange / Organic Seed Alliance); parsed into
  SeedSavingData.sources, exposed via SeedSavingCatalog.sources.
- The detail section shows a small muted footer: an italic 'advisory —
  adapt to your climate' line plus a 'Source: …' credit.
- i18n seedSaving.advisory + sourcePrefix (en/es/pt/ast).
- Tests: asset carries sources; the section renders advisory + credit.
This commit is contained in:
vjrj 2026-07-11 07:52:28 +02:00
parent d897d3934c
commit 89addb1ed7
15 changed files with 93 additions and 8 deletions

View file

@ -1097,6 +1097,21 @@ class _SeedSavingView extends StatelessWidget {
const SizedBox(height: 8),
Text(note, style: const TextStyle(color: seedMuted, height: 1.35)),
],
// Advisory + a light source credit the figures are general, not local
// gospel, and drawn from the seed-saving literature.
const SizedBox(height: 10),
Text(t.seedSaving.advisory,
style: const TextStyle(
color: seedMuted, fontSize: 12, fontStyle: FontStyle.italic)),
if (SeedSavingCatalog.sources case final sources when sources.isNotEmpty)
Padding(
padding: const EdgeInsets.only(top: 2),
child: Text(
'${t.seedSaving.sourcePrefix}: '
'${sources.map((s) => s.title).join(' · ')}',
style: const TextStyle(color: seedMuted, fontSize: 11),
),
),
],
);
}