feat(i18n): server-genererad prosa -> nyckel+params (min dag, ombokning, scan-diff)

- Min-dag-noten: noteKey (estimateNote/computedNote) bredvid svensk note; klient t(noteKey).
- Ombokningsskäl (planning.ts): rescheduleReasonKey + params bredvid rescheduleReasonSv;
  klient t(key, {title}). Workerns två andra ombokningstexter lämnade på svensk fallback.
- Scan-diff: reasonCode-enum (6 koder) bredvid reasonSv; klient t(scanDiff.reason.<code>).
- 8 nya nycklar i alla 12 språk. Ingen beslutslogik rörd; alla Sv-fält kvar som fallback.
- Kvar som egna spår: recept-säkerhetsmeddelanden + substitutions-data (översättningstabell).
- typecheck grönt (20/20), vakt grön, inventory-engine 53/53 tester.

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Claude
2026-08-21 20:36:11 +00:00
parent 18388bb31c
commit 316ba3cb62
19 changed files with 174 additions and 22 deletions
+9 -1
View File
@@ -601,5 +601,13 @@
"onboarding.allergen.mustard": "Mostarda",
"onboarding.allergen.sulphites": "Sulfitos",
"onboarding.allergen.lupin": "Tremoço",
"onboarding.allergen.molluscs": "Moluscos"
"onboarding.allergen.molluscs": "Moluscos",
"myday.computedNote": "Os valores são calculados a partir de receitas e dados alimentares e mostrados como estimativas.",
"plan.rescheduleReason": "{title} foi movido para aqui porque os ingredientes devem ser usados primeiro.",
"scanDiff.reason.moved_and_qty": "Movido e quantidade alterada",
"scanDiff.reason.moved": "Movido para outro local",
"scanDiff.reason.qty_changed": "Quantidade alterada",
"scanDiff.reason.unchanged": "Inalterado",
"scanDiff.reason.new_item": "Novo item na foto",
"scanDiff.reason.vanished": "Ausente na nova foto — confirme que acabou"
}