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:
parent
d897d3934c
commit
89addb1ed7
15 changed files with 93 additions and 8 deletions
|
|
@ -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),
|
||||
),
|
||||
),
|
||||
],
|
||||
);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue