Merge branch 'main' into feat/ingredient-reproducible-flag

Resolves the conflict from PR #28 (Ciqual ingredient expansion) merging
first: both branches touched reference-seed-data.ts's SAUCES group.
Also flags the three newly-merged sauces (Aïoli, Sauce vinaigrette,
Houmous) and Gressin as reproducible — these were in the original
curation plan but skipped earlier since they didn't exist on this
branch's base yet.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Nicolas 2026-08-19 19:32:14 +02:00
commit 36fbe02299
3 changed files with 353 additions and 0 deletions

View file

@ -97,6 +97,20 @@ const INGREDIENT_KEYS: Record<string, string> = {
Shiitake: "shiitake",
Daikon: "daikon",
"Piment vert frais": "fresh_green_chili",
Cardon: "cardoon",
"Chicorée rouge": "radicchio",
"Chou romanesco": "romanesco",
"Chou-rave": "kohlrabi",
"Chou chinois": "napa_cabbage",
"Céleri-rave": "celeriac",
Gombo: "okra",
"Oignon nouveau": "spring_onion",
Potimarron: "red_kuri_squash",
Rutabaga: "rutabaga",
Salicorne: "samphire",
Salsifis: "salsify",
Mâche: "lambs_lettuce",
Scarole: "escarole",
// --- Produits frais / Fruits -----------------------------------------
Citron: "lemon",
@ -127,6 +141,12 @@ const INGREDIENT_KEYS: Record<string, string> = {
Grenade: "pomegranate",
Rhubarbe: "rhubarb",
Coing: "quince",
Cassis: "blackcurrant",
Canneberge: "cranberry",
Groseille: "redcurrant",
Kaki: "persimmon",
Nectarine: "nectarine",
Tamarin: "tamarind",
// --- Produits frais / Herbes fraîches ---------------------------------
Basilic: "basil",
@ -169,12 +189,43 @@ const INGREDIENT_KEYS: Record<string, string> = {
Pancetta: "pancetta",
Mortadelle: "mortadella",
Salami: "salami",
Andouille: "andouille",
Andouillette: "andouillette",
"Boudin blanc": "white_pudding",
"Boudin noir": "black_pudding",
Cervelas: "cervelat",
Rillettes: "rillettes",
"Saucisson sec": "dry_cured_sausage",
"Jambon de Bayonne": "bayonne_ham",
Coppa: "coppa",
"Rosette (saucisson)": "rosette_sausage",
"Foie de veau": "veal_liver",
"Rognons de veau": "veal_kidneys",
"Cervelle de veau": "veal_brain",
"Ris de veau": "veal_sweetbread",
"Langue de bœuf": "beef_tongue",
Tripes: "tripe",
Cerf: "venison",
Chevreuil: "roe_deer",
Sanglier: "wild_boar",
Cheval: "horse_meat",
"Cœur de bœuf": "beef_heart",
"Foie gras": "foie_gras",
"Museau de bœuf": "beef_muzzle",
"Viande des Grisons": "grisons_dried_beef",
// --- Boucherie & poissonnerie / Volailles -----------------------------
Poulet: "chicken",
Dinde: "turkey",
Canard: "duck",
"Magret de canard": "duck_breast",
Caille: "quail",
Pintade: "guinea_fowl",
Oie: "goose",
"Foie de volaille": "poultry_liver",
Chapon: "capon",
Pigeon: "pigeon",
Faisan: "pheasant",
// --- Boucherie & poissonnerie / Poissons -------------------------------
Saumon: "salmon",
@ -207,6 +258,11 @@ const INGREDIENT_KEYS: Record<string, string> = {
Panga: "pangasius",
"Saumon fumé": "smoked_salmon",
"Poisson séché": "dried_fish",
Anguille: "eel",
"Carrelet (ou plie)": "plaice",
Morue: "salt_cod",
Limande: "lemon_sole",
Rascasse: "scorpionfish",
// --- Boucherie & poissonnerie / Crustacés & fruits de mer -------------
Crevettes: "shrimp",
@ -221,6 +277,13 @@ const INGREDIENT_KEYS: Record<string, string> = {
Poulpe: "octopus",
Palourdes: "clams",
Bulots: "whelks",
"Araignée de mer": "spider_crab",
Bigorneau: "periwinkle",
Écrevisse: "crayfish",
"Crevette grise": "grey_shrimp",
Coque: "cockle",
Escargot: "snail",
Seiche: "cuttlefish",
// --- Épicerie sèche / Féculents ----------------------------------------
Semoule: "semolina",
@ -261,6 +324,8 @@ const INGREDIENT_KEYS: Record<string, string> = {
Fèves: "fava_beans",
Edamame: "edamame",
"Haricots pinto": "pinto_beans",
"Haricots flageolets": "flageolet_beans",
"Lentilles blondes": "golden_lentils",
// --- Épicerie sèche / Graines & fruits secs ----------------------------
Cacahuètes: "peanuts_shelled",
@ -313,6 +378,7 @@ const INGREDIENT_KEYS: Record<string, string> = {
Ciabatta: "ciabatta",
"Tortilla de maïs": "corn_tortilla",
"Tortilla de blé": "wheat_tortilla",
Gressin: "breadstick",
// --- Boulangerie / Pâtes à cuire -----------------------------------------
"Pâte feuilletée": "puff_pastry",
@ -341,6 +407,39 @@ const INGREDIENT_KEYS: Record<string, string> = {
Pecorino: "pecorino",
Gorgonzola: "gorgonzola",
Cheddar: "cheddar",
Brie: "brie",
Camembert: "camembert",
Roquefort: "roquefort",
Munster: "munster",
Reblochon: "reblochon",
Cantal: "cantal",
Beaufort: "beaufort",
"Saint-Nectaire": "saint_nectaire",
"Bleu (fromage)": "blue_cheese",
Cancoillotte: "cancoillotte",
Tomme: "tomme",
Époisses: "epoisses",
Chaource: "chaource",
Livarot: "livarot",
"Pont-l'Évêque": "pont_leveque",
Morbier: "morbier",
"Raclette (fromage)": "raclette_cheese",
"Fourme d'Ambert": "fourme_d_ambert",
Salers: "salers",
"Ossau-Iraty": "ossau_iraty",
Vacherin: "vacherin",
"Saint-Marcellin": "saint_marcellin",
Neufchâtel: "neufchatel",
"Crottin de Chavignol": "crottin_de_chavignol",
Abondance: "abondance_cheese",
"Carré de l'Est": "carre_de_l_est",
Edam: "edam",
Gouda: "gouda",
Mimolette: "mimolette",
Maroilles: "maroilles",
"Mont d'or": "mont_dor",
Kéfir: "kefir",
"Yaourt à la grecque": "greek_yogurt",
// --- Crémerie & fromage / Œufs -------------------------------------------
Œuf: "egg",
@ -432,6 +531,9 @@ const INGREDIENT_KEYS: Record<string, string> = {
"Pâte de curry rouge (thaï)": "red_curry_paste",
"Pâte de curry vert (thaï)": "green_curry_paste",
Tahini: "tahini",
Aïoli: "aioli",
"Sauce vinaigrette": "vinaigrette",
Houmous: "hummus",
// --- Condiments & épices / Assaisonnements -----------------------------------
"Huile d'olive": "olive_oil",
@ -444,8 +546,11 @@ const INGREDIENT_KEYS: Record<string, string> = {
"Vinaigre balsamique": "balsamic_vinegar",
Câpres: "capers",
Olives: "olives",
"Olives noires": "black_olives",
"Olives vertes": "green_olives",
"Vin blanc (cuisine)": "white_wine",
"Vin rouge (cuisine)": "red_wine",
"Vin rosé (cuisine)": "rose_wine",
"Vinaigre de vin rouge": "red_wine_vinegar",
"Vinaigre de vin blanc": "white_wine_vinegar",
"Vinaigre de xérès": "sherry_vinegar",
@ -453,6 +558,10 @@ const INGREDIENT_KEYS: Record<string, string> = {
"Huile de noisette": "hazelnut_oil",
"Huile d'arachide": "peanut_oil",
"Huile pimentée": "chili_oil",
"Huile de maïs": "corn_oil",
"Huile de pépins de raisin": "grapeseed_oil",
"Huile de soja": "soybean_oil",
"Huile de palme": "palm_oil",
"Vinaigre de riz": "rice_vinegar",
Mirin: "mirin",
"Saké (cuisine)": "sake",

View file

@ -170,6 +170,21 @@ export const INGREDIENT_GROUPS: Array<{
{ name: "Shiitake", allergenNames: [] },
{ name: "Daikon", allergenNames: [] },
{ name: "Piment vert frais", allergenNames: [] },
{ name: "Cardon", allergenNames: [] },
// Second Ciqual pass — see the PR description.
{ name: "Chicorée rouge", allergenNames: [] },
{ name: "Chou romanesco", allergenNames: [] },
{ name: "Chou-rave", allergenNames: [] },
{ name: "Chou chinois", allergenNames: [] },
{ name: "Céleri-rave", allergenNames: ["Céleri"] },
{ name: "Gombo", allergenNames: [] },
{ name: "Oignon nouveau", allergenNames: [] },
{ name: "Potimarron", allergenNames: [] },
{ name: "Rutabaga", allergenNames: [] },
{ name: "Salicorne", allergenNames: [] },
{ name: "Salsifis", allergenNames: [] },
{ name: "Mâche", allergenNames: [] },
{ name: "Scarole", allergenNames: [] },
],
},
{
@ -206,6 +221,13 @@ export const INGREDIENT_GROUPS: Array<{
{ name: "Grenade", allergenNames: [] },
{ name: "Rhubarbe", allergenNames: [] },
{ name: "Coing", allergenNames: [] },
{ name: "Cassis", allergenNames: [] },
{ name: "Canneberge", allergenNames: [] },
// Second Ciqual pass.
{ name: "Groseille", allergenNames: [] },
{ name: "Kaki", allergenNames: [] },
{ name: "Nectarine", allergenNames: [] },
{ name: "Tamarin", allergenNames: [] },
],
},
{
@ -263,6 +285,34 @@ export const INGREDIENT_GROUPS: Array<{
{ name: "Pancetta", allergenNames: [] },
{ name: "Mortadelle", allergenNames: [] },
{ name: "Salami", allergenNames: [] },
// Added from the Ciqual 2025 "aliments moyens" table — French
// charcuterie/offal/game staples the pantry list was missing (see
// the PR description for how this batch was sourced/curated).
{ name: "Andouille", allergenNames: [] },
{ name: "Andouillette", allergenNames: [] },
{ name: "Boudin blanc", allergenNames: [] },
{ name: "Boudin noir", allergenNames: [] },
{ name: "Cervelas", allergenNames: [] },
{ name: "Rillettes", allergenNames: [] },
{ name: "Saucisson sec", allergenNames: [] },
{ name: "Jambon de Bayonne", allergenNames: [] },
{ name: "Coppa", allergenNames: [] },
{ name: "Rosette (saucisson)", allergenNames: [] },
{ name: "Foie de veau", allergenNames: [] },
{ name: "Rognons de veau", allergenNames: [] },
{ name: "Cervelle de veau", allergenNames: [] },
{ name: "Ris de veau", allergenNames: [] },
{ name: "Langue de bœuf", allergenNames: [] },
{ name: "Tripes", allergenNames: [] },
{ name: "Cerf", allergenNames: [] },
{ name: "Chevreuil", allergenNames: [] },
{ name: "Sanglier", allergenNames: [] },
// Second Ciqual pass.
{ name: "Cheval", allergenNames: [] },
{ name: "Cœur de bœuf", allergenNames: [] },
{ name: "Foie gras", allergenNames: [] },
{ name: "Museau de bœuf", allergenNames: [] },
{ name: "Viande des Grisons", allergenNames: [] },
],
},
{
@ -275,6 +325,15 @@ export const INGREDIENT_GROUPS: Array<{
{ name: "Dinde", allergenNames: [] },
{ name: "Canard", allergenNames: [] },
{ name: "Magret de canard", allergenNames: [] },
// Ciqual 2025 additions — see the VIANDES group above.
{ name: "Caille", allergenNames: [] },
{ name: "Pintade", allergenNames: [] },
{ name: "Oie", allergenNames: [] },
{ name: "Foie de volaille", allergenNames: [] },
// Second Ciqual pass.
{ name: "Chapon", allergenNames: [] },
{ name: "Pigeon", allergenNames: [] },
{ name: "Faisan", allergenNames: [] },
],
},
{
@ -313,6 +372,13 @@ export const INGREDIENT_GROUPS: Array<{
{ name: "Panga", allergenNames: ["Poissons"] },
{ name: "Saumon fumé", allergenNames: ["Poissons"] },
{ name: "Poisson séché", allergenNames: ["Poissons"] },
// Ciqual 2025 additions.
{ name: "Anguille", allergenNames: ["Poissons"] },
{ name: "Carrelet (ou plie)", allergenNames: ["Poissons"] },
// Second Ciqual pass.
{ name: "Morue", allergenNames: ["Poissons"] },
{ name: "Limande", allergenNames: ["Poissons"] },
{ name: "Rascasse", allergenNames: ["Poissons"] },
],
},
{
@ -333,6 +399,15 @@ export const INGREDIENT_GROUPS: Array<{
{ name: "Poulpe", allergenNames: ["Mollusques"] },
{ name: "Palourdes", allergenNames: ["Mollusques"] },
{ name: "Bulots", allergenNames: ["Mollusques"] },
// Ciqual 2025 additions.
{ name: "Araignée de mer", allergenNames: ["Crustacés"] },
{ name: "Bigorneau", allergenNames: ["Mollusques"] },
// Second Ciqual pass.
{ name: "Écrevisse", allergenNames: ["Crustacés"] },
{ name: "Crevette grise", allergenNames: ["Crustacés"] },
{ name: "Coque", allergenNames: ["Mollusques"] },
{ name: "Escargot", allergenNames: ["Mollusques"] },
{ name: "Seiche", allergenNames: ["Mollusques"] },
],
},
// =========================================================================
@ -388,6 +463,9 @@ export const INGREDIENT_GROUPS: Array<{
{ name: "Fèves", allergenNames: [] },
{ name: "Edamame", allergenNames: ["Soja"] },
{ name: "Haricots pinto", allergenNames: [] },
// Second Ciqual pass.
{ name: "Haricots flageolets", allergenNames: [] },
{ name: "Lentilles blondes", allergenNames: [] },
],
},
{
@ -475,6 +553,8 @@ export const INGREDIENT_GROUPS: Array<{
{ name: "Ciabatta", reproducible: true, allergenNames: ["Gluten"] },
{ name: "Tortilla de maïs", allergenNames: [] },
{ name: "Tortilla de blé", allergenNames: ["Gluten"] },
// Second Ciqual pass.
{ name: "Gressin", reproducible: true, allergenNames: ["Gluten"] },
],
},
{
@ -533,6 +613,44 @@ export const INGREDIENT_GROUPS: Array<{
{ name: "Pecorino", icon: "CHEESE", allergenNames: ["Lait"] },
{ name: "Gorgonzola", icon: "CHEESE", allergenNames: ["Lait"] },
{ name: "Cheddar", icon: "CHEESE", allergenNames: ["Lait"] },
// Ciqual 2025 additions — classic French regional cheeses the
// catalog only had a handful of internationally-known ones for
// (Emmental, Parmesan, Mozzarella…), missing the actual French
// aisle staples Ciqual's "aliments moyens" table surfaced.
{ name: "Brie", icon: "CHEESE", allergenNames: ["Lait"] },
{ name: "Camembert", icon: "CHEESE", allergenNames: ["Lait"] },
{ name: "Roquefort", icon: "CHEESE", allergenNames: ["Lait"] },
{ name: "Munster", icon: "CHEESE", allergenNames: ["Lait"] },
{ name: "Reblochon", icon: "CHEESE", allergenNames: ["Lait"] },
{ name: "Cantal", icon: "CHEESE", allergenNames: ["Lait"] },
{ name: "Beaufort", icon: "CHEESE", allergenNames: ["Lait"] },
{ name: "Saint-Nectaire", icon: "CHEESE", allergenNames: ["Lait"] },
{ name: "Bleu (fromage)", icon: "CHEESE", allergenNames: ["Lait"] },
{ name: "Cancoillotte", icon: "CHEESE", allergenNames: ["Lait"] },
{ name: "Tomme", icon: "CHEESE", allergenNames: ["Lait"] },
{ name: "Époisses", icon: "CHEESE", allergenNames: ["Lait"] },
{ name: "Chaource", icon: "CHEESE", allergenNames: ["Lait"] },
{ name: "Livarot", icon: "CHEESE", allergenNames: ["Lait"] },
{ name: "Pont-l'Évêque", icon: "CHEESE", allergenNames: ["Lait"] },
{ name: "Morbier", icon: "CHEESE", allergenNames: ["Lait"] },
{ name: "Raclette (fromage)", icon: "CHEESE", allergenNames: ["Lait"] },
{ name: "Fourme d'Ambert", icon: "CHEESE", allergenNames: ["Lait"] },
{ name: "Salers", icon: "CHEESE", allergenNames: ["Lait"] },
{ name: "Ossau-Iraty", icon: "CHEESE", allergenNames: ["Lait"] },
{ name: "Vacherin", icon: "CHEESE", allergenNames: ["Lait"] },
{ name: "Saint-Marcellin", icon: "CHEESE", allergenNames: ["Lait"] },
{ name: "Neufchâtel", icon: "CHEESE", allergenNames: ["Lait"] },
{ name: "Crottin de Chavignol", icon: "CHEESE", allergenNames: ["Lait"] },
{ name: "Abondance", icon: "CHEESE", allergenNames: ["Lait"] },
{ name: "Carré de l'Est", icon: "CHEESE", allergenNames: ["Lait"] },
// Second Ciqual pass.
{ name: "Edam", icon: "CHEESE", allergenNames: ["Lait"] },
{ name: "Gouda", icon: "CHEESE", allergenNames: ["Lait"] },
{ name: "Mimolette", icon: "CHEESE", allergenNames: ["Lait"] },
{ name: "Maroilles", icon: "CHEESE", allergenNames: ["Lait"] },
{ name: "Mont d'or", icon: "CHEESE", allergenNames: ["Lait"] },
{ name: "Kéfir", allergenNames: ["Lait"] },
{ name: "Yaourt à la grecque", allergenNames: ["Lait"] },
],
},
{
@ -704,6 +822,15 @@ export const INGREDIENT_GROUPS: Array<{
{ name: "Pâte de curry rouge (thaï)", allergenNames: [] },
{ name: "Pâte de curry vert (thaï)", allergenNames: [] },
{ name: "Tahini", reproducible: true, allergenNames: ["Graines de sésame"] },
// Second Ciqual pass.
{
name: "Aïoli",
reproducible: true,
allergenNames: ["Œufs"],
dietNames: ["Végétarien", "Pescétarien"],
},
{ name: "Sauce vinaigrette", reproducible: true, allergenNames: [] },
{ name: "Houmous", reproducible: true, allergenNames: ["Graines de sésame"] },
],
},
{
@ -722,8 +849,11 @@ export const INGREDIENT_GROUPS: Array<{
{ name: "Vinaigre balsamique", allergenNames: ["Sulfites"] },
{ name: "Câpres", icon: "JAR", allergenNames: [] },
{ name: "Olives", icon: "JAR", allergenNames: [] },
{ name: "Olives noires", icon: "JAR", allergenNames: [] },
{ name: "Olives vertes", icon: "JAR", allergenNames: [] },
{ name: "Vin blanc (cuisine)", icon: "DRINK", allergenNames: ["Sulfites"] },
{ name: "Vin rouge (cuisine)", icon: "DRINK", allergenNames: ["Sulfites"] },
{ name: "Vin rosé (cuisine)", icon: "DRINK", allergenNames: ["Sulfites"] },
{ name: "Vinaigre de vin rouge", allergenNames: ["Sulfites"] },
{ name: "Vinaigre de vin blanc", allergenNames: ["Sulfites"] },
{ name: "Vinaigre de xérès", allergenNames: ["Sulfites"] },
@ -732,6 +862,11 @@ export const INGREDIENT_GROUPS: Array<{
{ name: "Huile d'arachide", allergenNames: ["Arachides"] },
{ name: "Huile pimentée", allergenNames: [] },
{ name: "Vinaigre de riz", allergenNames: [] },
// Second Ciqual pass.
{ name: "Huile de maïs", allergenNames: [] },
{ name: "Huile de pépins de raisin", allergenNames: [] },
{ name: "Huile de soja", allergenNames: ["Soja"] },
{ name: "Huile de palme", allergenNames: [] },
{ name: "Mirin", icon: "DRINK", allergenNames: [] },
{ name: "Saké (cuisine)", icon: "DRINK", allergenNames: [] },
{ name: "Jus de citron", icon: "DRINK", allergenNames: [] },

View file

@ -387,6 +387,20 @@
"shiitake": "Shiitake",
"daikon": "Daikon",
"fresh_green_chili": "Piment vert frais",
"cardoon": "Cardon",
"radicchio": "Chicorée rouge",
"romanesco": "Chou romanesco",
"kohlrabi": "Chou-rave",
"napa_cabbage": "Chou chinois",
"celeriac": "Céleri-rave",
"okra": "Gombo",
"spring_onion": "Oignon nouveau",
"red_kuri_squash": "Potimarron",
"rutabaga": "Rutabaga",
"samphire": "Salicorne",
"salsify": "Salsifis",
"lambs_lettuce": "Mâche",
"escarole": "Scarole",
"lemon": "Citron",
"lime": "Citron vert",
"apple": "Pomme",
@ -415,6 +429,12 @@
"pomegranate": "Grenade",
"rhubarb": "Rhubarbe",
"quince": "Coing",
"blackcurrant": "Cassis",
"cranberry": "Canneberge",
"redcurrant": "Groseille",
"persimmon": "Kaki",
"nectarine": "Nectarine",
"tamarind": "Tamarin",
"basil": "Basilic",
"parsley": "Persil",
"thyme": "Thym",
@ -453,10 +473,41 @@
"pancetta": "Pancetta",
"mortadella": "Mortadelle",
"salami": "Salami",
"andouille": "Andouille",
"andouillette": "Andouillette",
"white_pudding": "Boudin blanc",
"black_pudding": "Boudin noir",
"cervelat": "Cervelas",
"rillettes": "Rillettes",
"dry_cured_sausage": "Saucisson sec",
"bayonne_ham": "Jambon de Bayonne",
"coppa": "Coppa",
"rosette_sausage": "Rosette (saucisson)",
"veal_liver": "Foie de veau",
"veal_kidneys": "Rognons de veau",
"veal_brain": "Cervelle de veau",
"veal_sweetbread": "Ris de veau",
"beef_tongue": "Langue de bœuf",
"tripe": "Tripes",
"venison": "Cerf",
"roe_deer": "Chevreuil",
"wild_boar": "Sanglier",
"horse_meat": "Cheval",
"beef_heart": "Cœur de bœuf",
"foie_gras": "Foie gras",
"beef_muzzle": "Museau de bœuf",
"grisons_dried_beef": "Viande des Grisons",
"chicken": "Poulet",
"turkey": "Dinde",
"duck": "Canard",
"duck_breast": "Magret de canard",
"quail": "Caille",
"guinea_fowl": "Pintade",
"goose": "Oie",
"poultry_liver": "Foie de volaille",
"capon": "Chapon",
"pigeon": "Pigeon",
"pheasant": "Faisan",
"salmon": "Saumon",
"tuna": "Thon",
"cod": "Cabillaud",
@ -487,6 +538,11 @@
"pangasius": "Panga",
"smoked_salmon": "Saumon fumé",
"dried_fish": "Poisson séché",
"eel": "Anguille",
"plaice": "Carrelet (ou plie)",
"salt_cod": "Morue",
"lemon_sole": "Limande",
"scorpionfish": "Rascasse",
"shrimp": "Crevettes",
"langoustine": "Langoustines",
"lobster": "Homard",
@ -499,6 +555,13 @@
"octopus": "Poulpe",
"clams": "Palourdes",
"whelks": "Bulots",
"spider_crab": "Araignée de mer",
"periwinkle": "Bigorneau",
"crayfish": "Écrevisse",
"grey_shrimp": "Crevette grise",
"cockle": "Coque",
"snail": "Escargot",
"cuttlefish": "Seiche",
"semolina": "Semoule",
"couscous": "Couscous",
"bulgur": "Boulgour",
@ -535,6 +598,8 @@
"fava_beans": "Fèves",
"edamame": "Edamame",
"pinto_beans": "Haricots pinto",
"flageolet_beans": "Haricots flageolets",
"golden_lentils": "Lentilles blondes",
"peanuts_shelled": "Cacahuètes",
"almonds": "Amandes",
"walnuts": "Noix",
@ -582,6 +647,7 @@
"ciabatta": "Ciabatta",
"corn_tortilla": "Tortilla de maïs",
"wheat_tortilla": "Tortilla de blé",
"breadstick": "Gressin",
"puff_pastry": "Pâte feuilletée",
"shortcrust_pastry": "Pâte brisée",
"pizza_dough": "Pâte à pizza",
@ -606,6 +672,39 @@
"pecorino": "Pecorino",
"gorgonzola": "Gorgonzola",
"cheddar": "Cheddar",
"brie": "Brie",
"camembert": "Camembert",
"roquefort": "Roquefort",
"munster": "Munster",
"reblochon": "Reblochon",
"cantal": "Cantal",
"beaufort": "Beaufort",
"saint_nectaire": "Saint-Nectaire",
"blue_cheese": "Bleu (fromage)",
"cancoillotte": "Cancoillotte",
"tomme": "Tomme",
"epoisses": "Époisses",
"chaource": "Chaource",
"livarot": "Livarot",
"pont_leveque": "Pont-l'Évêque",
"morbier": "Morbier",
"raclette_cheese": "Raclette (fromage)",
"fourme_d_ambert": "Fourme d'Ambert",
"salers": "Salers",
"ossau_iraty": "Ossau-Iraty",
"vacherin": "Vacherin",
"saint_marcellin": "Saint-Marcellin",
"neufchatel": "Neufchâtel",
"crottin_de_chavignol": "Crottin de Chavignol",
"abondance_cheese": "Abondance",
"carre_de_l_est": "Carré de l'Est",
"edam": "Edam",
"gouda": "Gouda",
"mimolette": "Mimolette",
"maroilles": "Maroilles",
"mont_dor": "Mont d'or",
"kefir": "Kéfir",
"greek_yogurt": "Yaourt à la grecque",
"egg": "Œuf",
"coconut_milk": "Lait de coco",
"coconut_cream": "Crème de coco",
@ -689,6 +788,9 @@
"red_curry_paste": "Pâte de curry rouge (thaï)",
"green_curry_paste": "Pâte de curry vert (thaï)",
"tahini": "Tahini",
"aioli": "Aïoli",
"vinaigrette": "Sauce vinaigrette",
"hummus": "Houmous",
"olive_oil": "Huile d'olive",
"sunflower_oil": "Huile de tournesol",
"rapeseed_oil": "Huile de colza",
@ -699,8 +801,11 @@
"balsamic_vinegar": "Vinaigre balsamique",
"capers": "Câpres",
"olives": "Olives",
"black_olives": "Olives noires",
"green_olives": "Olives vertes",
"white_wine": "Vin blanc (cuisine)",
"red_wine": "Vin rouge (cuisine)",
"rose_wine": "Vin rosé (cuisine)",
"red_wine_vinegar": "Vinaigre de vin rouge",
"white_wine_vinegar": "Vinaigre de vin blanc",
"sherry_vinegar": "Vinaigre de xérès",
@ -709,6 +814,10 @@
"peanut_oil": "Huile d'arachide",
"chili_oil": "Huile pimentée",
"rice_vinegar": "Vinaigre de riz",
"corn_oil": "Huile de maïs",
"grapeseed_oil": "Huile de pépins de raisin",
"soybean_oil": "Huile de soja",
"palm_oil": "Huile de palme",
"mirin": "Mirin",
"sake": "Saké (cuisine)",
"lemon_juice": "Jus de citron",