feat(ingredients): ajoute jaune/blanc d'oeuf, coriandre en poudre, viandes hachées

Complète le catalogue d'ingrédients de référence (seed data) :

- jaune d'oeuf / blanc d'oeuf (dairyAndCheese/eggs, aux côtés d'"egg")
- coriandre en poudre (condimentsAndSpices/spices, aux côtés de
  corianderSeeds/freshCilantro déjà présents)
- viandes hachées manquantes : veau, porc, agneau (meatAndSeafood/meats,
  aux côtés de groundBeef déjà présent), dinde et poulet
  (meatAndSeafood/poultry)

Libellés ajoutés dans apps/web/src/locales/fr/translation.json (source
d'affichage) et packages/shared/src/data/catalog-labels-en.ts (matching
anglais pour l'import de recettes depuis des sources comme TheMealDB).
Aucune icône ni régime dédiés : héritent des défauts de leur groupe
(EGG/SPICE/MEAT/POULTRY, mêmes dietUids que leurs groupes respectifs).

282 tests apps/api toujours au vert (resetDatabase() reseed le
catalogue à chaque test).
This commit is contained in:
Nicolas 2026-08-21 08:25:12 +02:00
parent 4f509865c1
commit bc1f14f1cc
3 changed files with 31 additions and 1 deletions

View file

@ -551,6 +551,13 @@ export const INGREDIENT_GROUPS: Array<{
{ uid: "vealCutlet", allergenUids: [] }, { uid: "vealCutlet", allergenUids: [] },
{ uid: "porkTenderloin", allergenUids: [] }, { uid: "porkTenderloin", allergenUids: [] },
{ uid: "porkChop", allergenUids: [] }, { uid: "porkChop", allergenUids: [] },
// Ground/minced meats, requested alongside `groundBeef` (already
// seeded) — one per red-meat type the catalog otherwise only offers
// as a whole cut. Ground poultry (turkey/chicken) lives in the
// `poultry` subcategory below, next to their whole-cut counterparts.
{ uid: "groundVeal", allergenUids: [] },
{ uid: "groundPork", allergenUids: [] },
{ uid: "groundLamb", allergenUids: [] },
{ uid: "lamb", allergenUids: [] }, { uid: "lamb", allergenUids: [] },
{ uid: "legOfLamb", allergenUids: [] }, { uid: "legOfLamb", allergenUids: [] },
{ uid: "baconLardons", allergenUids: [] }, { uid: "baconLardons", allergenUids: [] },
@ -601,7 +608,9 @@ export const INGREDIENT_GROUPS: Array<{
defaultIcon: "POULTRY", defaultIcon: "POULTRY",
items: [ items: [
{ uid: "chicken", allergenUids: [] }, { uid: "chicken", allergenUids: [] },
{ uid: "groundChicken", allergenUids: [] },
{ uid: "turkey", allergenUids: [] }, { uid: "turkey", allergenUids: [] },
{ uid: "groundTurkey", allergenUids: [] },
{ uid: "duck", allergenUids: [] }, { uid: "duck", allergenUids: [] },
{ uid: "duckBreast", allergenUids: [] }, { uid: "duckBreast", allergenUids: [] },
// Ciqual 2025 additions — see the VIANDES group above. // Ciqual 2025 additions — see the VIANDES group above.
@ -937,7 +946,11 @@ export const INGREDIENT_GROUPS: Array<{
subcategory: "eggs", subcategory: "eggs",
defaultDiets: ["vegetarian", "pescatarian"], defaultDiets: ["vegetarian", "pescatarian"],
defaultIcon: "EGG", defaultIcon: "EGG",
items: [{ uid: "egg", allergenUids: ["eggs"] }], items: [
{ uid: "egg", allergenUids: ["eggs"] },
{ uid: "eggYolk", allergenUids: ["eggs"] },
{ uid: "eggWhite", allergenUids: ["eggs"] },
],
}, },
{ {
category: "dairyAndCheese", category: "dairyAndCheese",
@ -997,6 +1010,7 @@ export const INGREDIENT_GROUPS: Array<{
{ uid: "fiveSpice", allergenUids: [] }, { uid: "fiveSpice", allergenUids: [] },
{ uid: "garamMasala", allergenUids: [] }, { uid: "garamMasala", allergenUids: [] },
{ uid: "corianderSeeds", allergenUids: [] }, { uid: "corianderSeeds", allergenUids: [] },
{ uid: "groundCoriander", allergenUids: [] },
{ uid: "cardamom", allergenUids: [] }, { uid: "cardamom", allergenUids: [] },
{ uid: "fenugreek", allergenUids: [] }, { uid: "fenugreek", allergenUids: [] },
{ uid: "jalapeno", allergenUids: [] }, { uid: "jalapeno", allergenUids: [] },

View file

@ -547,6 +547,9 @@
"vealCutlet": "Escalope de veau", "vealCutlet": "Escalope de veau",
"porkTenderloin": "Filet mignon de porc", "porkTenderloin": "Filet mignon de porc",
"porkChop": "Côte de porc", "porkChop": "Côte de porc",
"groundVeal": "Veau haché",
"groundPork": "Porc haché",
"groundLamb": "Agneau haché",
"lamb": "Agneau", "lamb": "Agneau",
"legOfLamb": "Gigot d'agneau", "legOfLamb": "Gigot d'agneau",
"baconLardons": "Lardons", "baconLardons": "Lardons",
@ -585,7 +588,9 @@
"beefMuzzle": "Museau de bœuf", "beefMuzzle": "Museau de bœuf",
"grisonsDriedBeef": "Viande des Grisons", "grisonsDriedBeef": "Viande des Grisons",
"chicken": "Poulet", "chicken": "Poulet",
"groundChicken": "Poulet haché",
"turkey": "Dinde", "turkey": "Dinde",
"groundTurkey": "Dinde hachée",
"duck": "Canard", "duck": "Canard",
"duckBreast": "Magret de canard", "duckBreast": "Magret de canard",
"quail": "Caille", "quail": "Caille",
@ -793,6 +798,8 @@
"kefir": "Kéfir", "kefir": "Kéfir",
"greekYogurt": "Yaourt à la grecque", "greekYogurt": "Yaourt à la grecque",
"egg": "Œuf", "egg": "Œuf",
"eggYolk": "Jaune d'œuf",
"eggWhite": "Blanc d'œuf",
"coconutMilk": "Lait de coco", "coconutMilk": "Lait de coco",
"coconutCream": "Crème de coco", "coconutCream": "Crème de coco",
"almondMilk": "Lait d'amande", "almondMilk": "Lait d'amande",
@ -834,6 +841,7 @@
"fiveSpice": "Cinq épices", "fiveSpice": "Cinq épices",
"garamMasala": "Garam masala", "garamMasala": "Garam masala",
"corianderSeeds": "Graines de coriandre", "corianderSeeds": "Graines de coriandre",
"groundCoriander": "Coriandre en poudre",
"cardamom": "Cardamome", "cardamom": "Cardamome",
"fenugreek": "Fenugrec", "fenugreek": "Fenugrec",
"jalapeno": "Piment jalapeño", "jalapeno": "Piment jalapeño",

View file

@ -137,6 +137,9 @@ export const INGREDIENT_LABELS_EN: Record<string, string> = {
vealCutlet: "Veal cutlet", vealCutlet: "Veal cutlet",
porkTenderloin: "Pork tenderloin", porkTenderloin: "Pork tenderloin",
porkChop: "Pork chop", porkChop: "Pork chop",
groundVeal: "Ground veal",
groundPork: "Ground pork",
groundLamb: "Ground lamb",
lamb: "Lamb", lamb: "Lamb",
legOfLamb: "Leg of lamb", legOfLamb: "Leg of lamb",
baconLardons: "Bacon lardons", baconLardons: "Bacon lardons",
@ -177,7 +180,9 @@ export const INGREDIENT_LABELS_EN: Record<string, string> = {
// Poultry // Poultry
chicken: "Chicken", chicken: "Chicken",
groundChicken: "Ground chicken",
turkey: "Turkey", turkey: "Turkey",
groundTurkey: "Ground turkey",
duck: "Duck", duck: "Duck",
duckBreast: "Duck breast", duckBreast: "Duck breast",
quail: "Quail", quail: "Quail",
@ -403,6 +408,8 @@ export const INGREDIENT_LABELS_EN: Record<string, string> = {
// Eggs // Eggs
egg: "Egg", egg: "Egg",
eggYolk: "Egg yolk",
eggWhite: "Egg white",
// Plant-based alternatives // Plant-based alternatives
coconutMilk: "Coconut milk", coconutMilk: "Coconut milk",
@ -448,6 +455,7 @@ export const INGREDIENT_LABELS_EN: Record<string, string> = {
fiveSpice: "Five-spice powder", fiveSpice: "Five-spice powder",
garamMasala: "Garam masala", garamMasala: "Garam masala",
corianderSeeds: "Coriander seeds", corianderSeeds: "Coriander seeds",
groundCoriander: "Ground coriander",
cardamom: "Cardamom", cardamom: "Cardamom",
fenugreek: "Fenugreek", fenugreek: "Fenugreek",
jalapeno: "Jalapeño", jalapeno: "Jalapeño",