"""Corpus d'entraînement pour {@link LocalePipeline} — anciennement possédé
par `apps/api` (`tech-step-training-data.ts`, poussé via `POST /v1/train` à
chaque warm-up serveur), rapatrié ici pour que ce service soit entièrement
autonome : il s'entraîne lui-même une seule fois au démarrage
(`pipeline_registry.py`'s `initialize()`, appelé par `main.py`'s
`lifespan`), sans dépendre d'un appel HTTP externe. `apps/api` ne connaît
plus aucune technique ni aucun synonyme — seul `TechStep.key -> id`
(`reference-seed-data.ts`) doit encore rester en phase avec les `uid` ici :
chaque `uid` ci-dessous doit avoir une entrée `TECH_STEPS` correspondante,
sans quoi `TechStepClassifierService` résout un match qu'il ne peut
persister (voir son propre commentaire sur ce cas).

Deux types de contenu par technique/locale, comme avant la migration
Python :

- `synonyms` — mots/phrases courtes alimentant le `PhraseMatcher` (NER par
  énumération) — les mentions *candidates* d'une technique, avant tout
  jugement de sens.
- `utterances` — phrases d'exemple complètes alimentant le `textcat`
  (classification d'intention) — mélange volontaire de tournures ancrées
  sur le mot-clé et de paraphrases qui ne l'emploient jamais, pour que le
  classifieur apprenne à reconnaître le *sens*, pas seulement le mot.

Les 26 premières entrées (jusqu'à `coat`) sont le corpus original,
directement porté depuis `tech-step-training-data.ts` (voir l'historique
Git de ce fichier côté `apps/api` pour le détail des régressions qui ont
façonné chaque liste). Les entrées suivantes ajoutent le lexique de
techniques fourni par l'utilisateur — un synonyme volontairement en phrase
complète plutôt qu'au mot nu quand une forme courte collisionnerait avec
une technique existante (ex. `whiskPale`/"blanchir un jaune d'œuf" à côté
de `blanch`/"blanchir un légume" — le même verbe français, deux sens
distincts ; `filter_spans` dans `locale_pipeline.py` retient alors la
phrase la plus longue et donc la plus spécifique quand les deux se
chevauchent).

Chaque technique a **le même nombre d'`utterances` que chaque autre, par
locale** (7 en fr, 5 en en) — un déséquilibre entre classes (certaines
techniques n'en avaient que 3, `cook`/`preheat` en avaient déjà 7) est une
source réelle de classifications confiantes mais fausses sur une phrase
jamais vue, la classe la moins représentée perdant face à une classe
voisine mieux dotée en signal d'entraînement. Rééquilibré vers le maximum
*déjà présent dans le corpus*, pas vers un nombre choisi dans l'absolu
(`20` a été tenté trois fois, chaque tentative dégradant mesurablement le
F1 agrégé de `test/recipe-matching/tech-step-eval.test.ts` sous son
plancher de `0.8` — voir l'historique Git de ce fichier ; ~3-4 `utterances`
de plus par technique en moyenne s'est avéré sûr, ~13-17 ne l'était pas,
quelle que soit la méthode de génération). Les `utterances` d'origine sont
conservées telles quelles (mêmes phrases, jamais réécrites) ; le
complément vient du script maintainer
`services/tech-step-intent-service/augment_utterances.py` (réutilisable —
recalcule le maximum courant du corpus à chaque exécution, donc sûr à
relancer après l'ajout d'une nouvelle technique), en priorité par
substitution de synonyme (un des `synonyms` propres à la technique, en
tête d'une `utterance` existante, remplacé par un autre de *même nature
grammaticale* — voir ce script's own doc comment pour pourquoi ce dernier
point compte) et, en dernier recours pour les techniques dont le
vocabulaire mid-phrase ne s'y prête pas (`julienne`, `brunoise`...), une
poignée de tournures modales.
"""

from dataclasses import dataclass, field


@dataclass(frozen=True)
class TechStepLocaleTrainingData:
    synonyms: list[str] = field(default_factory=list)
    utterances: list[str] = field(default_factory=list)


@dataclass(frozen=True)
class TechStepTrainingEntry:
    """`uid` doit correspondre à un `TechStep.key` (`reference-seed-data.ts`
    côté `apps/api`, et à un libellé dans `apps/web`'s
    `locales/fr/translation.json`'s `catalog.techSteps.<uid>`)."""

    uid: str
    fr: TechStepLocaleTrainingData
    en: TechStepLocaleTrainingData


TECH_STEP_TRAINING_DATA: list[TechStepTrainingEntry] = [
    # ------------------------------------------------------------------
    # Corpus original (26 techniques) — porté depuis tech-step-training-data.ts
    # ------------------------------------------------------------------
    TechStepTrainingEntry(
        uid="cook",
        fr=TechStepLocaleTrainingData(
            synonyms=[
                "cuire", "cuisez", "cuisant", "cuisson", "cuit", "cuite", "cuites", "cuits",
                "cuisiner", "cuisinez", "cuisiné", "cuisinée", "faire cuire", "laisser cuire",
            ],
            utterances=[
                "faire cuire à feu moyen",
                "laisser cuire jusqu'à ce que ce soit prêt",
                "la cuisson dure environ dix minutes",
                "jusqu'à ce que la viande ne soit plus rose au centre",
                "poursuivre la cuisson à couvert",
                "baisser le feu et laisser cuire à découvert encore un quart d'heure",
                "faire cuire à feu doux en remuant de temps en temps",
            ],
        ),
        en=TechStepLocaleTrainingData(
            # NOT "cooked through"/"cooking through" — extensions de "cooked"/
            # "cooking" créant des candidats NER chevauchants (voir la note de
            # `locale_pipeline.py` sur `filter_spans` : plus nécessaire de les
            # bannir pour cette raison précise, mais gardé simple).
            synonyms=["cook", "cooks", "cooked", "cooking"],
            utterances=[
                "cook over medium heat",
                "cook until done",
                "cooking takes about ten minutes",
                "until no longer pink in the middle",
                "continue cooking covered",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="fry",
        fr=TechStepLocaleTrainingData(
            synonyms=[
                "frire", "frit", "frite", "frites", "friture", "faire frire", "faites frire",
                "bain de friture", "huile de friture",
            ],
            utterances=[
                "faire frire dans l'huile chaude",
                "plonger dans la friture",
                "jusqu'à ce que ce soit doré et croustillant à l'extérieur",
                "l'huile doit être bien chaude avant d'y plonger les morceaux",
                "friture dans l'huile chaude",
                "frire dans l'huile chaude",
                "il faut faire frire dans l'huile chaude",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["fry", "fries", "fried", "frying", "deep fry", "deep-fried", "deep frying"],
            utterances=[
                "fry in hot oil",
                "deep fry until golden",
                "until crisp and golden on the outside",
                "the oil should be very hot before adding the pieces",
                "deep fry in hot oil",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="melt",
        fr=TechStepLocaleTrainingData(
            synonyms=[
                "fondre", "fondu", "fondue", "fondues", "faire fondre", "faites fondre",
                "faire chauffer", "faites chauffer", "liquéfier", "liquéfiez", "liquéfié",
                "faire liquéfier",
            ],
            utterances=[
                "faire fondre le beurre",
                "jusqu'à ce que le beurre ait disparu dans la poêle",
                "le beurre doit être complètement liquide",
                "laisser le fromage devenir tout liquide sur feu doux",
                "faire liquéfier le beurre",
                "faire chauffer le beurre",
                "liquéfier le beurre",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["melt", "melts", "melted", "melting", "liquefy", "liquefied"],
            utterances=[
                "melt the butter",
                "until the butter has completely disappeared into the pan",
                "the butter should be fully liquid",
                "let the cheese turn completely liquid over low heat",
                "make sure to melt the butter",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="deglaze",
        fr=TechStepLocaleTrainingData(
            synonyms=["déglacer", "déglacez", "déglacé", "déglacée", "déglaçage"],
            utterances=[
                "déglacer avec le vin blanc",
                "verser le vin dans la poêle chaude pour décoller les sucs",
                "gratter les sucs de cuisson au fond de la casserole avec un peu de bouillon",
                "il faut déglacer avec le vin blanc",
                "il faut verser le vin dans la poêle chaude pour décoller les sucs",
                "il faut gratter les sucs de cuisson au fond de la casserole avec un peu de bouillon",
                "veillez à déglacer avec le vin blanc",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["deglaze", "deglazes", "deglazed", "deglazing", "lift the browned bits"],
            utterances=[
                "deglaze with white wine",
                "pour the wine into the hot pan to lift the browned bits",
                "scrape up the browned bits at the bottom of the pan with a splash of stock",
                "make sure to deglaze with white wine",
                "make sure to pour the wine into the hot pan to lift the browned bits",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="simmer",
        fr=TechStepLocaleTrainingData(
            synonyms=[
                "mijoter", "mijotez", "mijote", "mijotant", "mijoté", "frémir", "frémissant",
                "frémissante", "à petit feu",
                # "Mitonner" (lexique ajouté) — synonyme de mijoter, pas une
                # technique distincte : sa propre définition le dit
                # explicitement ("le laisser mijoter pour en décupler les
                # saveurs").
                "mitonner", "mitonnez", "mitonné", "mitonnée",
            ],
            utterances=[
                "laisser mijoter à feu doux",
                "faire mijoter pendant une heure",
                "de petites bulles doivent remonter doucement à la surface",
                "laisser cuire tout doucement à couvert pendant longtemps",
                "mitonner le plat avec soin à feu très doux pour développer les saveurs",
                "mijoter le plat avec soin à feu très doux pour développer les saveurs",
                "frémir le plat avec soin à feu très doux pour développer les saveurs",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["simmer", "simmers", "simmered", "simmering", "gentle simmer", "low simmer"],
            utterances=[
                "let it simmer over low heat",
                "simmer for one hour",
                "small bubbles should gently rise to the surface",
                "let it cook very gently, covered, for a long time",
                "make sure to let it simmer over low heat",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="boil",
        fr=TechStepLocaleTrainingData(
            synonyms=[
                "bouillir", "bouillant", "bouillie", "bouillies", "ébullition",
                "porter à ébullition", "gros bouillons",
            ],
            utterances=[
                "porter à ébullition",
                "faire bouillir l'eau",
                "de grosses bulles doivent agiter la surface avec force",
                "jusqu'à ce que ça bouillonne franchement",
                "bouillir",
                "il faut porter à ébullition",
                "il faut faire bouillir l'eau",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["boil", "boils", "boiled", "boiling", "rolling boil"],
            utterances=[
                "bring to a boil",
                "boil the water",
                "large bubbles should be vigorously breaking the surface",
                "until it's rolling vigorously",
                "make sure to bring to a boil",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="roast",
        fr=TechStepLocaleTrainingData(
            synonyms=["rôtir", "rôti", "rôtie", "rôties", "rôtis", "rôtissage"],
            utterances=[
                "faire rôtir la volaille entière",
                "le rôti doit dorer uniformément de tous les côtés",
                "cuire la pièce de viande entière au four à chaleur sèche",
                "il faut faire rôtir la volaille entière",
                "il faut cuire la pièce de viande entière au four à chaleur sèche",
                "veillez à faire rôtir la volaille entière",
                "veillez à cuire la pièce de viande entière au four à chaleur sèche",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["roast", "roasts", "roasted", "roasting", "oven-roast", "oven roasted"],
            utterances=[
                "roast the whole bird",
                "it should brown evenly on every side",
                "cook the whole piece of meat in dry oven heat",
                "make sure to roast the whole bird",
                "make sure to cook the whole piece of meat in dry oven heat",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="grill",
        fr=TechStepLocaleTrainingData(
            synonyms=[
                "griller", "grillez", "grillé", "grillée", "grillées", "grillade", "grillades",
                "barbecue", "au barbecue",
            ],
            utterances=[
                "faire griller sur la grille du barbecue",
                "marquer les steaks sur une plaque brûlante",
                "des traces de quadrillage doivent apparaître à la cuisson",
                "il faut faire griller sur la grille du barbecue",
                "il faut marquer les steaks sur une plaque brûlante",
                "veillez à faire griller sur la grille du barbecue",
                "veillez à marquer les steaks sur une plaque brûlante",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["grill", "grills", "grilled", "grilling", "barbecue", "char-grill", "charbroiled"],
            utterances=[
                "grill on the barbecue rack",
                "sear the steaks on a scorching-hot plate",
                "char marks should appear as it cooks",
                "make sure to grill on the barbecue rack",
                "make sure to sear the steaks on a scorching-hot plate",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="panFry",
        fr=TechStepLocaleTrainingData(
            # Deliberately pas "poêlé"/"poêlée"/"poêlés" : trop proche du nom
            # commun "poêle" (voir tech-step-matcher.ts côté apps/api pour le
            # faux positif que ça causait avec node-nlp — moins critique avec
            # le `PhraseMatcher` exact de ce service, mais gardé par prudence).
            synonyms=["sauter", "sautez", "sauté", "sautée", "sautées", "sautant", "à la poêle"],
            utterances=[
                "faire sauter les légumes à la poêle",
                "saisir rapidement à feu vif en remuant sans cesse",
                "faire revenir en remuant vivement dans une poêle très chaude",
                "il faut faire sauter les légumes à la poêle",
                "il faut saisir rapidement à feu vif en remuant sans cesse",
                "il faut faire revenir en remuant vivement dans une poêle très chaude",
                "veillez à faire sauter les légumes à la poêle",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=[
                "sauté", "sauteed", "sautéed", "sauteing", "pan-fry", "pan fried", "pan-fried",
                "stir-fry", "pan searing", "seared in a pan",
            ],
            utterances=[
                "sauté the vegetables in a pan",
                "quickly sear over high heat, stirring constantly",
                "cook briskly, stirring, in a very hot pan",
                "make sure to sauté the vegetables in a pan",
                "make sure to quickly sear over high heat, stirring constantly",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="blanch",
        fr=TechStepLocaleTrainingData(
            synonyms=["blanchir", "blanchissez", "blanchi", "blanchie", "blanchies", "blanchiment"],
            utterances=[
                "faire blanchir les légumes deux minutes dans l'eau bouillante",
                "plonger brièvement dans l'eau bouillante puis directement dans l'eau glacée",
                "cuire très rapidement à l'eau bouillante avant de stopper la cuisson au froid",
                "il faut faire blanchir les légumes deux minutes dans l'eau bouillante",
                "il faut plonger brièvement dans l'eau bouillante puis directement dans l'eau glacée",
                "il faut cuire très rapidement à l'eau bouillante avant de stopper la cuisson au froid",
                "veillez à faire blanchir les légumes deux minutes dans l'eau bouillante",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["blanch", "blanches", "blanched", "blanching", "parboil", "parboiled", "parboiling"],
            utterances=[
                "blanch the vegetables for two minutes in boiling water",
                "briefly plunge into boiling water then straight into ice water",
                "cook very quickly in boiling water before stopping it cold",
                "make sure to blanch the vegetables for two minutes in boiling water",
                "make sure to briefly plunge into boiling water then straight into ice water",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="marinate",
        fr=TechStepLocaleTrainingData(
            synonyms=[
                "mariner", "marinez", "mariné", "marinée", "marinées", "marinade", "macérer",
                "macérez", "macération", "faire mariner",
            ],
            utterances=[
                "laisser mariner la viande toute la nuit au réfrigérateur",
                "faire tremper dans la sauce plusieurs heures avant cuisson pour parfumer",
                "laisser reposer dans le mélange d'huile et d'épices avant de cuisiner",
                "il faut laisser mariner la viande toute la nuit au réfrigérateur",
                "il faut faire tremper dans la sauce plusieurs heures avant cuisson pour parfumer",
                "il faut laisser reposer dans le mélange d'huile et d'épices avant de cuisiner",
                "veillez à laisser mariner la viande toute la nuit au réfrigérateur",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["marinate", "marinates", "marinated", "marinating", "marinade", "soak in the marinade"],
            utterances=[
                "let the meat marinate overnight in the fridge",
                "soak in the sauce for several hours before cooking to flavor it",
                "let it sit in the oil and spice mixture before cooking",
                "make sure to let the meat marinate overnight in the fridge",
                "make sure to soak in the sauce for several hours before cooking to flavor it",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="chop",
        fr=TechStepLocaleTrainingData(
            synonyms=[
                "hacher", "hachez", "haché", "hachée", "hachées", "hachis", "couper en morceaux",
                "tailler en morceaux",
            ],
            utterances=[
                "hacher finement les oignons",
                "couper en tout petits morceaux irréguliers au couteau",
                "réduire les herbes en petits fragments avant de les ajouter",
                "tailler en morceaux finement les oignons",
                "couper en morceaux finement les oignons",
                "il faut hacher finement les oignons",
                "il faut couper en tout petits morceaux irréguliers au couteau",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["chop", "chops", "chopped", "chopping", "roughly chop", "coarsely chopped"],
            utterances=[
                "finely chop the onions",
                "cut into small, uneven pieces with a knife",
                "break the herbs down into small bits before adding them",
                "make sure to finely chop the onions",
                "make sure to cut into small, uneven pieces with a knife",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="peel",
        fr=TechStepLocaleTrainingData(
            synonyms=[
                "éplucher", "épluchez", "épluché", "épluchée", "épluchées", "épluchage", "peler",
                "pelez", "pelé", "pelée", "pelées",
            ],
            utterances=[
                "éplucher les pommes de terre",
                "retirer la peau des carottes avec un économe",
                "ôter la pelure du fruit avant de le couper",
                "peler les pommes de terre",
                "il faut éplucher les pommes de terre",
                "il faut retirer la peau des carottes avec un économe",
                "il faut ôter la pelure du fruit avant de le couper",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["peel", "peels", "peeled", "peeling", "pare", "pared", "paring"],
            utterances=[
                "peel the potatoes",
                "remove the skin from the carrots with a peeler",
                "take the skin off the fruit before cutting it",
                "make sure to peel the potatoes",
                "make sure to remove the skin from the carrots with a peeler",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="mince",
        fr=TechStepLocaleTrainingData(
            synonyms=[
                "émincer", "émincez", "émincé", "émincée", "émincées", "ciseler", "ciselez",
                "ciselé", "ciselée", "ciselées",
            ],
            utterances=[
                "émincer l'oignon en fines lamelles",
                "couper en très fines tranches régulières",
                "détailler en lamelles aussi fines que possible",
                "émincer les tomates en fines rondelles",
                "ciseler l'oignon en fines lamelles",
                "ciseler les tomates en fines rondelles",
                "il faut émincer l'oignon en fines lamelles",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["mince", "minces", "minced", "mincing", "thinly slice", "finely mince"],
            utterances=[
                "mince the onion into thin strips",
                "cut into very thin, even slices",
                "slice into strips as thin as possible",
                "thinly slice the onion into thin strips",
                "finely mince the onion into thin strips",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="mix",
        fr=TechStepLocaleTrainingData(
            synonyms=[
                "mélanger", "mélangez", "mélangé", "mélangée", "mélangées", "mélange", "brasser",
                "brassez", "amalgamer", "amalgamez",
            ],
            utterances=[
                "mélanger tous les ingrédients dans un saladier",
                "combiner le sucre et la farine ensemble",
                "remuer jusqu'à obtenir une préparation homogène",
                "amalgamer tous les ingrédients dans un saladier",
                "brasser tous les ingrédients dans un saladier",
                "il faut mélanger tous les ingrédients dans un saladier",
                "il faut combiner le sucre et la farine ensemble",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=[
                "mix", "mixes", "mixed", "mixing", "combine", "combined", "blend", "blended",
                "blending", "stir together",
            ],
            utterances=[
                "mix all the ingredients in a bowl",
                "combine the sugar and flour together",
                "stir until the mixture is smooth and even",
                "stir together all the ingredients in a bowl",
                "combine all the ingredients in a bowl",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="whisk",
        fr=TechStepLocaleTrainingData(
            synonyms=[
                "fouetter", "fouettez", "fouetté", "fouettée", "fouettées", "au fouet",
                "battre au fouet", "monter au fouet",
            ],
            utterances=[
                "fouetter les œufs et le sucre",
                "battre vigoureusement au fouet jusqu'à ce que ça blanchisse",
                "travailler énergiquement pour incorporer de l'air au mélange",
                "fouetter les blancs en neige",
                "fouetter les blancs en neige jusqu'à ce qu'ils soient fermes",
                "battre au fouet les œufs et le sucre",
                "monter au fouet les œufs et le sucre",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["whisk", "whisks", "whisked", "whisking", "beat", "whip", "whipped", "whipping"],
            utterances=[
                "whisk the eggs and sugar",
                "beat vigorously with a whisk until pale",
                "work it briskly to whip air into the mixture",
                "whisk the egg whites until stiff peaks form",
                "beat the eggs and sugar",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="foldIn",
        fr=TechStepLocaleTrainingData(
            synonyms=[
                "incorporer", "incorporez", "incorporé", "incorporée", "incorporées",
                "mélanger délicatement",
            ],
            utterances=[
                "incorporer délicatement les blancs en neige",
                "ajouter en soulevant doucement la masse pour ne pas casser les bulles",
                "mélanger tout doucement de bas en haut pour garder l'air emprisonné",
                "mélanger délicatement délicatement les blancs en neige",
                "il faut incorporer délicatement les blancs en neige",
                "il faut ajouter en soulevant doucement la masse pour ne pas casser les bulles",
                "il faut mélanger tout doucement de bas en haut pour garder l'air emprisonné",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["fold in", "folds in", "folded in", "folding in", "gently fold", "fold gently"],
            utterances=[
                "gently fold in the beaten egg whites",
                "add by gently lifting the batter so you don't knock the air out",
                "very gently stir from the bottom up to keep the air trapped in",
                "fold gently in the beaten egg whites",
                "fold in in the beaten egg whites",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="setAside",
        fr=TechStepLocaleTrainingData(
            synonyms=[
                "réserver", "réservez", "réservé", "réservée", "réservées", "mettre de côté",
                "laisser de côté",
            ],
            utterances=[
                "réserver au frais en attendant",
                "mettre de côté pour plus tard",
                "laisser attendre sur le plan de travail pendant la préparation du reste",
                "laisser de côté au frais en attendant",
                "mettre de côté au frais en attendant",
                "laisser de côté pour plus tard",
                "réserver pour plus tard",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["set aside", "sets aside", "setting aside", "set it aside", "reserve", "reserved"],
            utterances=[
                "set aside in the fridge for now",
                "put it aside for later",
                "let it wait on the counter while you prepare the rest",
                "set it aside in the fridge for now",
                "make sure to set aside in the fridge for now",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="season",
        fr=TechStepLocaleTrainingData(
            synonyms=[
                "assaisonner", "assaisonnez", "assaisonné", "assaisonnée", "assaisonnement",
                "relever", "relevez", "épicer", "épicez",
            ],
            utterances=[
                "assaisonner avec du sel et du poivre",
                "rectifier le goût en ajoutant des épices",
                "ajouter du sel selon votre goût avant de servir",
                "relever avec du sel et du poivre",
                "épicer avec du sel et du poivre",
                "il faut assaisonner avec du sel et du poivre",
                "il faut rectifier le goût en ajoutant des épices",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["season", "seasons", "seasoned", "seasoning", "spice it up", "add seasoning"],
            utterances=[
                "season with salt and pepper",
                "adjust the taste by adding spices",
                "add salt to taste before serving",
                "add seasoning with salt and pepper",
                "make sure to season with salt and pepper",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="drain",
        fr=TechStepLocaleTrainingData(
            synonyms=[
                "égoutter", "égouttez", "égoutté", "égouttée", "égouttées", "essorer", "essorez",
                "essoré", "essorée",
            ],
            utterances=[
                "égoutter les pâtes dans une passoire",
                "verser dans une passoire pour retirer l'eau de cuisson",
                "laisser l'excédent d'eau s'écouler avant de servir",
                "essorer les pâtes dans une passoire",
                "il faut égoutter les pâtes dans une passoire",
                "il faut verser dans une passoire pour retirer l'eau de cuisson",
                "il faut laisser l'excédent d'eau s'écouler avant de servir",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["drain", "drains", "drained", "draining", "strain", "strained", "straining"],
            utterances=[
                "drain the pasta in a colander",
                "pour into a colander to remove the cooking water",
                "let the excess water run off before serving",
                "strain the pasta in a colander",
                "make sure to drain the pasta in a colander",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="brown",
        fr=TechStepLocaleTrainingData(
            synonyms=[
                "faire revenir", "faites revenir", "faire dorer", "faites dorer", "colorer",
                "colorez", "faire colorer",
            ],
            utterances=[
                "faire revenir les oignons dans l'huile chaude",
                "faire dorer la viande sur toutes les faces",
                "saisir jusqu'à ce que la surface prenne une belle couleur caramel",
                "faire colorer les oignons dans l'huile chaude",
                "faire dorer les oignons dans l'huile chaude",
                "colorer les oignons dans l'huile chaude",
                "faire revenir la viande sur toutes les faces",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["browned", "browning"],
            utterances=[
                "brown the onions in hot oil",
                "brown the meat on every side",
                "sear until the surface turns a deep caramel color",
                "make sure to brown the onions in hot oil",
                "make sure to brown the meat on every side",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="rest",
        fr=TechStepLocaleTrainingData(
            synonyms=["reposer", "laisser reposer", "laissez reposer", "temps de repos"],
            utterances=[
                "laisser reposer la pâte trente minutes",
                "laisser la viande se détendre hors du four avant de la découper",
                "attendre quelques minutes avant de servir pour que les jus se répartissent",
                "reposer la pâte trente minutes",
                "il faut laisser reposer la pâte trente minutes",
                "il faut laisser la viande se détendre hors du four avant de la découper",
                "il faut attendre quelques minutes avant de servir pour que les jus se répartissent",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["let it rest", "let them rest", "resting for", "rested for", "resting time"],
            utterances=[
                "let the dough rest for thirty minutes",
                "let the meat relax outside the oven before carving it",
                "wait a few minutes before serving so the juices redistribute",
                "make sure to let the dough rest for thirty minutes",
                "make sure to let the meat relax outside the oven before carving it",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="preheat",
        fr=TechStepLocaleTrainingData(
            synonyms=[
                "préchauffer", "préchauffez", "préchauffé", "préchauffée", "poêle chaude",
                "préchauffage",
            ],
            utterances=[
                "préchauffer le four à 180 degrés",
                "mettre le four à chauffer avant d'y placer le plat",
                "allumer le four à l'avance pour qu'il soit à température",
                "préchauffer la poêle avant d'y verser l'huile",
                "faire chauffer la poêle à vide quelques minutes",
                "mettre la poêle vide sur feu vif avant d'ajouter quoi que ce soit",
                "mettre la poêle sur feu vif",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["preheat", "preheats", "preheated", "preheating", "hot pan"],
            utterances=[
                "preheat the oven to 180 degrees",
                "turn the oven on to heat up before putting the dish in",
                "switch the oven on ahead of time so it's up to temperature",
                "preheat the pan before adding the oil",
                "heat the empty pan for a few minutes first",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="bake",
        fr=TechStepLocaleTrainingData(
            synonyms=["cuire au four", "cuisson au four", "enfourner", "enfournez", "au four", "enfourné", "enfournée"],
            utterances=[
                "enfourner pendant quarante-cinq minutes",
                "mettre au four jusqu'à ce que ce soit doré",
                "cuire dans le four préchauffé jusqu'à ce que la surface soit ferme",
                "cuire au four pendant quarante-cinq minutes",
                "il faut enfourner pendant quarante-cinq minutes",
                "il faut mettre au four jusqu'à ce que ce soit doré",
                "il faut cuire dans le four préchauffé jusqu'à ce que la surface soit ferme",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["bake", "bakes", "baked", "baking", "in the oven", "oven-baked"],
            utterances=[
                "bake for forty-five minutes",
                "put it in the oven until golden",
                "cook in the preheated oven until the surface is firm",
                "make sure to bake for forty-five minutes",
                "make sure to cook in the preheated oven until the surface is firm",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="plate",
        fr=TechStepLocaleTrainingData(
            synonyms=["dresser", "dressez", "dressage", "disposer dans l'assiette"],
            utterances=[
                "dresser harmonieusement dans les assiettes",
                "disposer joliment sur l'assiette avant de servir",
                "présenter avec soin au centre de l'assiette",
                "disposer dans l'assiette harmonieusement dans les assiettes",
                "il faut dresser harmonieusement dans les assiettes",
                "il faut disposer joliment sur l'assiette avant de servir",
                "il faut présenter avec soin au centre de l'assiette",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["plate", "plates", "plated", "plating"],
            utterances=[
                "plate it up nicely",
                "arrange it neatly on the plate before serving",
                "present it carefully in the center of the plate",
                "make sure to plate it up nicely",
                "make sure to arrange it neatly on the plate before serving",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="coat",
        fr=TechStepLocaleTrainingData(
            synonyms=[
                "napper", "nappez", "nappé", "nappée", "nappées", "nappage", "enrober", "enrobez",
                "enrobé", "enrobée", "enrobées",
            ],
            utterances=[
                "napper le gâteau de chocolat fondu",
                "recouvrir uniformément d'une fine couche de sauce",
                "verser la sauce par-dessus pour bien enrober",
                "enrober le gâteau de chocolat fondu",
                "il faut napper le gâteau de chocolat fondu",
                "il faut recouvrir uniformément d'une fine couche de sauce",
                "il faut verser la sauce par-dessus pour bien enrober",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["coat", "coats", "coated", "coating", "dredge", "dredged", "dredging"],
            utterances=[
                "coat the cake with melted chocolate",
                "cover evenly with a thin layer of sauce",
                "pour the sauce over it so it's well covered",
                "make sure to coat the cake with melted chocolate",
                "make sure to cover evenly with a thin layer of sauce",
            ],
        ),
    ),
    # ------------------------------------------------------------------
    # Lexique ajouté (48 nouvelles techniques)
    # ------------------------------------------------------------------
    TechStepTrainingEntry(
        uid="baste",
        fr=TechStepLocaleTrainingData(
            synonyms=["arroser", "arrosez", "arrosé", "arrosée", "arrosées", "arrosage"],
            utterances=[
                "arroser la volaille avec son jus de cuisson",
                "arroser régulièrement le rôti pendant la cuisson",
                "verser le jus de cuisson sur la viande toutes les dix minutes",
                "napper la pièce de viande avec le beurre fondu pendant qu'elle cuit",
                "il faut arroser la volaille avec son jus de cuisson",
                "il faut arroser régulièrement le rôti pendant la cuisson",
                "il faut verser le jus de cuisson sur la viande toutes les dix minutes",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["baste", "bastes", "basted", "basting"],
            utterances=[
                "baste the poultry with its cooking juices",
                "baste the roast regularly while it cooks",
                "spoon the pan juices over the meat every ten minutes",
                "brush the meat with melted butter while it cooks",
                "make sure to baste the poultry with its cooking juices",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="appertize",
        fr=TechStepLocaleTrainingData(
            synonyms=[
                "appertiser", "appertisez", "appertisé", "appertisée", "appertisation",
                "stériliser", "stérilisez", "stérilisé", "mise en conserve",
            ],
            utterances=[
                "stériliser les bocaux avant de les fermer hermétiquement",
                "appertiser les légumes pour les conserver plusieurs mois",
                "faire chauffer les conserves fermées pour les stériliser",
                "mettre en conserve dans des bocaux hermétiques après stérilisation",
                "appertiser les bocaux avant de les fermer hermétiquement",
                "stériliser les légumes pour les conserver plusieurs mois",
                "il faut stériliser les bocaux avant de les fermer hermétiquement",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["can", "canned", "canning", "sterilize the jars", "appertize", "appertization"],
            utterances=[
                "sterilize the jars before sealing them",
                "can the vegetables to preserve them for months",
                "heat the sealed jars to sterilize them",
                "preserve in airtight jars after sterilizing",
                "can before sealing them",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="whiskPale",
        fr=TechStepLocaleTrainingData(
            # Volontairement des phrases, pas le mot nu "blanchir" — sinon
            # collision directe avec `blanch` ("blanchir un légume"), un
            # homonyme sans rapport. `filter_spans` retient la phrase la plus
            # longue quand les deux se chevauchent (voir la note de tête de
            # fichier).
            synonyms=[
                "blanchir les jaunes", "blanchir le jaune d'œuf", "blanchir les jaunes avec le sucre",
                "faire blanchir les œufs et le sucre", "fouetter les jaunes jusqu'à blanchiment",
            ],
            utterances=[
                "blanchir les jaunes d'œufs avec le sucre jusqu'à ce que le mélange épaississe",
                "fouetter énergiquement les jaunes et le sucre jusqu'à ce que la préparation blanchisse",
                "battre le mélange jusqu'à ce qu'il devienne mousseux et clair",
                "travailler les jaunes et le sucre au fouet jusqu'à obtenir un ruban",
                "fouetter les jaunes jusqu'à blanchiment d'œufs avec le sucre jusqu'à ce que le mélange épaississe",
                "faire blanchir les œufs et le sucre d'œufs avec le sucre jusqu'à ce que le mélange épaississe",
                "blanchir les jaunes avec le sucre d'œufs avec le sucre jusqu'à ce que le mélange épaississe",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["whisk until pale", "whisk the yolks and sugar", "beat until pale and fluffy", "ribbon stage"],
            utterances=[
                "whisk the egg yolks with the sugar until the mixture turns pale",
                "beat vigorously until the mixture becomes light and fluffy",
                "whip until foamy and pale in color",
                "work the yolks and sugar with a whisk until it reaches the ribbon stage",
                "make sure to whisk the egg yolks with the sugar until the mixture turns pale",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="goldenBrown",
        fr=TechStepLocaleTrainingData(
            synonyms=["blondir", "blondissez", "blondi", "blondie", "faire blondir", "légèrement doré"],
            utterances=[
                "faire blondir les oignons dans le beurre",
                "laisser légèrement dorer sans colorer fortement",
                "cuire doucement jusqu'à ce que ce soit juste doré",
                "faire blondir le roux avant d'ajouter le liquide",
                "blondir les oignons dans le beurre",
                "blondir le roux avant d'ajouter le liquide",
                "il faut faire blondir les oignons dans le beurre",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["cook until golden", "lightly brown", "blonde the onions", "until golden but not browned"],
            utterances=[
                "cook the onions until lightly golden",
                "let it turn golden without browning too much",
                "cook gently until just golden",
                "cook the roux until lightly golden before adding the liquid",
                "make sure to cook the onions until lightly golden",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="braise",
        fr=TechStepLocaleTrainingData(
            synonyms=["braiser", "braisez", "braisé", "braisée", "braisées", "à l'étuvée en cocotte"],
            utterances=[
                "braiser la viande à couvert pendant deux heures",
                "laisser mijoter dans une cocotte fermée avec un fond de sauce",
                "cuire à feu doux et à couvert dans une cocotte épaisse",
                "faire cuire lentement dans son jus dans une cocotte fermée",
                "il faut braiser la viande à couvert pendant deux heures",
                "il faut laisser mijoter dans une cocotte fermée avec un fond de sauce",
                "il faut cuire à feu doux et à couvert dans une cocotte épaisse",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["braise", "braises", "braised", "braising"],
            utterances=[
                "braise the meat covered for two hours",
                "let it simmer in a closed pot with a little sauce",
                "cook slowly, covered, in a heavy pot",
                "cook it slowly in its own juices in a covered pot",
                "make sure to braise the meat covered for two hours",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="truss",
        fr=TechStepLocaleTrainingData(
            synonyms=["brider", "bridez", "bridé", "bridée", "bridées", "bridage", "ficeler la volaille"],
            utterances=[
                "brider la volaille avant de l'enfourner",
                "ficeler les pattes et les ailes pour maintenir la forme",
                "attacher la volaille avec de la ficelle de cuisine",
                "maintenir les membres avec de la ficelle avant cuisson",
                "ficeler la volaille la volaille avant de l'enfourner",
                "il faut brider la volaille avant de l'enfourner",
                "il faut ficeler les pattes et les ailes pour maintenir la forme",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["truss", "trusses", "trussed", "trussing", "tie up the poultry"],
            utterances=[
                "truss the poultry before putting it in the oven",
                "tie the legs and wings to keep its shape",
                "tie up the bird with kitchen twine",
                "secure the limbs with string before cooking",
                "tie up the poultry the poultry before putting it in the oven",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="caramelize",
        fr=TechStepLocaleTrainingData(
            synonyms=["caraméliser", "caramélisez", "caramélisé", "caramélisée", "caramélisées"],
            utterances=[
                "caraméliser le sucre à sec dans une casserole",
                "laisser les sucs caraméliser au fond de la cocotte",
                "faire caraméliser les fruits dans le beurre et le sucre",
                "napper le moule de caramel avant d'y verser la préparation",
                "il faut caraméliser le sucre à sec dans une casserole",
                "il faut laisser les sucs caraméliser au fond de la cocotte",
                "il faut faire caraméliser les fruits dans le beurre et le sucre",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["caramelize", "caramelizes", "caramelized", "caramelizing"],
            utterances=[
                "caramelize the sugar dry in a saucepan",
                "let the juices caramelize at the bottom of the pot",
                "caramelize the fruit in butter and sugar",
                "coat the mold with caramel before pouring in the mixture",
                "make sure to caramelize the sugar dry in a saucepan",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="score",
        fr=TechStepLocaleTrainingData(
            synonyms=["cerner", "cernez", "cerné", "cernée", "inciser la peau", "entailler légèrement"],
            utterances=[
                "cerner la peau du fruit avant de le peler",
                "inciser légèrement la peau avec la pointe d'un couteau",
                "entailler la peau tout autour pour faciliter l'épluchage",
                "marquer la pâte à l'emporte-pièce avant la cuisson",
                "entailler légèrement la peau du fruit avant de le peler",
                "inciser la peau la peau du fruit avant de le peler",
                "il faut cerner la peau du fruit avant de le peler",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["score", "scores", "scored", "scoring", "score the skin"],
            utterances=[
                "score the skin of the fruit before peeling it",
                "lightly cut the skin with the tip of a knife",
                "score around the skin to make peeling easier",
                "mark the dough with a cutter before baking",
                "score of the fruit before peeling it",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="lineMold",
        fr=TechStepLocaleTrainingData(
            synonyms=["chemiser", "chemisez", "chemisé", "chemisée", "tapisser le moule"],
            utterances=[
                "chemiser le moule avec du papier sulfurisé",
                "tapisser le fond du moule de beurre et de farine",
                "recouvrir les parois du moule de caramel avant de verser la préparation",
                "beurrer et fariner le moule pour faciliter le démoulage",
                "tapisser le moule le moule avec du papier sulfurisé",
                "il faut chemiser le moule avec du papier sulfurisé",
                "il faut tapisser le fond du moule de beurre et de farine",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["line the mold", "line the tin", "grease and flour the mold"],
            utterances=[
                "line the mold with parchment paper",
                "line the bottom of the mold with butter and flour",
                "coat the sides of the mold with caramel before pouring in the mixture",
                "butter and flour the mold to make unmolding easier",
                "line the tin with parchment paper",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="clarify",
        fr=TechStepLocaleTrainingData(
            synonyms=["clarifier", "clarifiez", "clarifié", "clarifiée", "beurre clarifié"],
            utterances=[
                "clarifier le beurre fondu pour retirer le petit-lait",
                "filtrer le bouillon pour le débarrasser de ses impuretés",
                "séparer le blanc du jaune pour clarifier l'œuf",
                "passer le jus au chinois pour obtenir un liquide clair",
                "beurre clarifié le beurre fondu pour retirer le petit-lait",
                "il faut clarifier le beurre fondu pour retirer le petit-lait",
                "il faut filtrer le bouillon pour le débarrasser de ses impuretés",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["clarify", "clarifies", "clarified", "clarifying", "clarified butter"],
            utterances=[
                "clarify the melted butter to remove the milk solids",
                "strain the stock to remove any impurities",
                "separate the white from the yolk to clarify the egg",
                "strain the liquid through a fine sieve until clear",
                "make sure to clarify the melted butter to remove the milk solids",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="compote",
        fr=TechStepLocaleTrainingData(
            synonyms=["compoter", "compotez", "compoté", "compotée", "cuire en compote"],
            utterances=[
                "laisser compoter les fruits à feu très doux",
                "cuire longuement à couvert jusqu'à obtenir une texture de compote",
                "laisser réduire doucement jusqu'à ce que les fruits s'effondrent",
                "mijoter très longtemps à feu doux pour obtenir une marmelade",
                "il faut laisser compoter les fruits à feu très doux",
                "il faut cuire longuement à couvert jusqu'à obtenir une texture de compote",
                "il faut laisser réduire doucement jusqu'à ce que les fruits s'effondrent",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["stew down", "compote", "cook down into a compote"],
            utterances=[
                "let the fruit stew down over very low heat",
                "cook covered for a long time until it reaches a compote texture",
                "let it reduce slowly until the fruit breaks down",
                "simmer for a long time over low heat until jammy",
                "make sure to let the fruit stew down over very low heat",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="concasse",
        fr=TechStepLocaleTrainingData(
            synonyms=["concasser", "concassez", "concassé", "concassée", "concassées", "hacher grossièrement"],
            utterances=[
                "concasser grossièrement les tomates",
                "écraser les fruits secs au couteau",
                "broyer grossièrement les épices au pilon",
                "hacher très grossièrement les herbes avant de les ajouter",
                "hacher grossièrement grossièrement les tomates",
                "il faut concasser grossièrement les tomates",
                "il faut écraser les fruits secs au couteau",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["coarsely chop", "crush", "concasse", "roughly crush"],
            utterances=[
                "coarsely chop the tomatoes",
                "crush the nuts with a knife",
                "roughly crush the spices with a mortar and pestle",
                "very roughly chop the herbs before adding them",
                "roughly crush the tomatoes",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="confit",
        fr=TechStepLocaleTrainingData(
            synonyms=["confire", "confit", "confite", "confites", "confisez", "cuisson au confit"],
            utterances=[
                "faire confire les cuisses de canard dans leur graisse",
                "laisser confire longuement à basse température",
                "cuire doucement immergé dans la graisse pendant plusieurs heures",
                "conserver les fruits en les confisant dans le sucre",
                "il faut faire confire les cuisses de canard dans leur graisse",
                "il faut laisser confire longuement à basse température",
                "il faut cuire doucement immergé dans la graisse pendant plusieurs heures",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["confit", "confited", "confiting", "cook confit-style"],
            utterances=[
                "confit the duck legs in their own fat",
                "let it confit slowly at low temperature",
                "cook it gently submerged in fat for several hours",
                "preserve the fruit by confiting it in sugar",
                "cook confit-style the duck legs in their own fat",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="julienne",
        fr=TechStepLocaleTrainingData(
            synonyms=["julienne", "en julienne", "tailler en julienne", "couper en julienne"],
            utterances=[
                "couper les carottes en julienne",
                "tailler les légumes en fins bâtonnets",
                "détailler en julienne avant de faire sauter",
                "couper en fines lanières de trois à cinq centimètres",
                "il faut couper les carottes en julienne",
                "il faut tailler les légumes en fins bâtonnets",
                "il faut détailler en julienne avant de faire sauter",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["julienne", "cut into julienne", "julienne strips"],
            utterances=[
                "cut the carrots into julienne",
                "cut the vegetables into thin matchsticks",
                "julienne the vegetables before stir-frying",
                "cut into thin strips about two inches long",
                "cut into julienne the vegetables before stir-frying",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="brunoise",
        fr=TechStepLocaleTrainingData(
            synonyms=["brunoise", "en brunoise", "tailler en brunoise", "couper en brunoise"],
            utterances=[
                "couper les légumes en brunoise",
                "tailler en tout petits dés réguliers",
                "détailler en minuscules cubes après avoir taillé des tranches fines",
                "couper en dés très fins pour la garniture",
                "il faut couper les légumes en brunoise",
                "il faut tailler en tout petits dés réguliers",
                "il faut détailler en minuscules cubes après avoir taillé des tranches fines",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["brunoise", "cut into brunoise", "fine dice"],
            utterances=[
                "cut the vegetables into brunoise",
                "cut into very small even dice",
                "dice into tiny cubes after slicing thinly",
                "finely dice for the garnish",
                "make sure to cut the vegetables into brunoise",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="mirepoix",
        fr=TechStepLocaleTrainingData(
            synonyms=["mirepoix", "en mirepoix", "tailler en mirepoix", "couper en mirepoix"],
            utterances=[
                "couper les carottes et les oignons en mirepoix",
                "tailler les légumes en gros dés pour le fond de sauce",
                "détailler en cubes d'un centimètre pour la garniture aromatique",
                "couper en gros dés irréguliers pour parfumer le bouillon",
                "il faut couper les carottes et les oignons en mirepoix",
                "il faut tailler les légumes en gros dés pour le fond de sauce",
                "il faut détailler en cubes d'un centimètre pour la garniture aromatique",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["mirepoix", "cut into mirepoix", "large dice for a stock"],
            utterances=[
                "cut the carrots and onions into mirepoix",
                "cut the vegetables into large dice for the base",
                "dice into one-centimeter cubes for the aromatic base",
                "cut into large rough dice to flavor the stock",
                "make sure to cut the carrots and onions into mirepoix",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="paysanne",
        fr=TechStepLocaleTrainingData(
            synonyms=["paysanne", "en paysanne", "tailler en paysanne", "couper en paysanne"],
            utterances=[
                "couper les légumes en paysanne",
                "tailler en fins triangles réguliers",
                "détailler en tranches triangulaires avant de faire suer",
                "couper en losanges fins pour le potage",
                "il faut couper les légumes en paysanne",
                "il faut tailler en fins triangles réguliers",
                "il faut détailler en tranches triangulaires avant de faire suer",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["paysanne cut", "cut into paysanne", "thin triangular cut"],
            utterances=[
                "cut the vegetables paysanne-style",
                "cut into thin, even triangles",
                "cut into triangular slices before sweating",
                "cut into thin diamonds for the soup",
                "make sure to cut the vegetables paysanne-style",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="blindBake",
        fr=TechStepLocaleTrainingData(
            synonyms=["cuire à blanc", "cuisson à blanc", "précuire le fond de tarte"],
            utterances=[
                "cuire le fond de tarte à blanc avant de le garnir",
                "précuire la pâte à vide avec des poids de cuisson",
                "faire cuire la pâte seule quelques minutes avant d'ajouter la garniture",
                "enfourner le fond de tarte vide recouvert de billes de cuisson",
                "il faut cuire le fond de tarte à blanc avant de le garnir",
                "il faut précuire la pâte à vide avec des poids de cuisson",
                "il faut faire cuire la pâte seule quelques minutes avant d'ajouter la garniture",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["blind bake", "blind-baked", "blind baking", "pre-bake the crust"],
            utterances=[
                "blind bake the tart shell before filling it",
                "pre-bake the empty crust with baking weights",
                "bake the crust alone for a few minutes before adding the filling",
                "bake the empty tart shell topped with baking beans",
                "make sure to blind bake the tart shell before filling it",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="bainMarie",
        fr=TechStepLocaleTrainingData(
            synonyms=["bain-marie", "au bain-marie", "cuisson au bain-marie"],
            utterances=[
                "cuire la crème au bain-marie",
                "placer le récipient dans un fond d'eau chaude pour une cuisson douce",
                "faire chauffer doucement au bain-marie pour ne pas le faire tourner",
                "réchauffer la sauce au bain-marie sans qu'elle bouille",
                "il faut cuire la crème au bain-marie",
                "il faut placer le récipient dans un fond d'eau chaude pour une cuisson douce",
                "il faut faire chauffer doucement au bain-marie pour ne pas le faire tourner",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["bain-marie", "water bath", "in a water bath", "double boiler"],
            utterances=[
                "cook the custard in a bain-marie",
                "place the container in a pan of hot water for gentle cooking",
                "warm it gently over a water bath so it doesn't split",
                "reheat the sauce in a double boiler without boiling it",
                "make sure to cook the custard in a bain-marie",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="smother",
        fr=TechStepLocaleTrainingData(
            synonyms=["étouffée", "à l'étouffée", "étuver", "étuvez", "étuvé", "cuisson à l'étuvée"],
            utterances=[
                "cuire les légumes à l'étouffée dans un corps gras",
                "laisser cuire à couvert à très basse température",
                "étuver doucement pendant une longue durée",
                "cuire lentement à feu très doux dans un récipient fermé",
                "il faut cuire les légumes à l'étouffée dans un corps gras",
                "il faut laisser cuire à couvert à très basse température",
                "il faut étuver doucement pendant une longue durée",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["smother", "smothered", "cook covered on low heat", "stew gently covered"],
            utterances=[
                "smother the vegetables in fat, covered",
                "let it cook covered at very low temperature",
                "cook it gently over a long time, covered",
                "cook slowly over very low heat in a closed pot",
                "cook covered on low heat the vegetables in fat, covered",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="decant",
        fr=TechStepLocaleTrainingData(
            synonyms=["décanter", "décantez", "décanté", "décantée", "décantation"],
            utterances=[
                "laisser décanter le jus avant de le transvaser",
                "transvaser délicatement en laissant le dépôt au fond",
                "laisser reposer puis verser doucement dans un autre récipient",
                "séparer le liquide clair du dépôt qui s'est formé au fond",
                "il faut laisser décanter le jus avant de le transvaser",
                "il faut transvaser délicatement en laissant le dépôt au fond",
                "il faut laisser reposer puis verser doucement dans un autre récipient",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["decant", "decants", "decanted", "decanting"],
            utterances=[
                "let the juice decant before pouring it off",
                "carefully pour it off, leaving the sediment behind",
                "let it settle then gently pour into another container",
                "separate the clear liquid from the sediment that formed at the bottom",
                "make sure to let the juice decant before pouring it off",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="dilute",
        fr=TechStepLocaleTrainingData(
            synonyms=["délayer", "délayez", "délayé", "délayée", "diluer dans un liquide"],
            utterances=[
                "délayer la farine dans un peu de lait froid",
                "diluer la maïzena dans de l'eau avant de l'incorporer",
                "mélanger la poudre avec un peu de liquide pour la dissoudre",
                "incorporer progressivement le liquide en délayant bien",
                "diluer dans un liquide la farine dans un peu de lait froid",
                "il faut délayer la farine dans un peu de lait froid",
                "il faut diluer la maïzena dans de l'eau avant de l'incorporer",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["dilute", "dilutes", "diluted", "diluting", "mix into a liquid"],
            utterances=[
                "dilute the flour in a little cold milk",
                "dilute the cornstarch in water before adding it",
                "mix the powder with a little liquid to dissolve it",
                "gradually stir in the liquid, mixing well as you go",
                "mix into a liquid the flour in a little cold milk",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="punchDown",
        fr=TechStepLocaleTrainingData(
            synonyms=["dégazer", "dégazez", "dégazé", "dégazage", "chasser l'air de la pâte"],
            utterances=[
                "dégazer la pâte après la première pousse",
                "pétrir légèrement pour chasser l'air de la pâte",
                "aplatir la pâte au rouleau pour en retirer le gaz",
                "presser la pâte pour en faire sortir les bulles d'air",
                "chasser l'air de la pâte la pâte après la première pousse",
                "il faut dégazer la pâte après la première pousse",
                "il faut pétrir légèrement pour chasser l'air de la pâte",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["punch down", "punch down the dough", "knock back", "deflate the dough"],
            utterances=[
                "punch down the dough after the first rise",
                "gently knead to knock the air out of the dough",
                "flatten the dough with a rolling pin to release the gas",
                "press the dough to push out the air bubbles",
                "punch down after the first rise",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="disgorge",
        fr=TechStepLocaleTrainingData(
            synonyms=["dégorger", "dégorgez", "dégorgé", "dégorgée", "faire dégorger"],
            utterances=[
                "faire dégorger les concombres avec du sel",
                "saler les légumes pour qu'ils perdent leur eau",
                "laisser tremper la viande dans l'eau froide vinaigrée",
                "laisser reposer avec du sel pour évacuer l'excès d'humidité",
                "dégorger les concombres avec du sel",
                "il faut faire dégorger les concombres avec du sel",
                "il faut saler les légumes pour qu'ils perdent leur eau",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["disgorge", "purge", "salt and drain", "draw out the moisture"],
            utterances=[
                "salt the cucumbers to draw out their moisture",
                "salt the vegetables so they release their water",
                "soak the meat in cold vinegared water",
                "let it sit with salt to remove excess moisture",
                "make sure to salt the cucumbers to draw out their moisture",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="loosen",
        fr=TechStepLocaleTrainingData(
            synonyms=["détendre", "détendez", "détendu", "détendue", "assouplir la préparation"],
            utterances=[
                "détendre la pâte avec un peu de lait",
                "ajouter un peu de crème pour assouplir la sauce",
                "incorporer un œuf battu pour rendre la pâte plus fluide",
                "allonger la préparation avec un peu de liquide",
                "assouplir la préparation la pâte avec un peu de lait",
                "il faut détendre la pâte avec un peu de lait",
                "il faut ajouter un peu de crème pour assouplir la sauce",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["loosen", "loosens", "loosened", "loosening", "thin out the batter"],
            utterances=[
                "loosen the batter with a little milk",
                "add a little cream to loosen the sauce",
                "stir in a beaten egg to make the batter more fluid",
                "thin out the mixture with a little liquid",
                "make sure to loosen the batter with a little milk",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="shellEgg",
        fr=TechStepLocaleTrainingData(
            synonyms=["écaler", "écalez", "écalé", "écalée", "retirer la coquille de l'œuf"],
            utterances=[
                "écaler les œufs durs sous l'eau froide",
                "retirer délicatement la coquille de l'œuf cuit",
                "enlever la coquille des œufs mollets",
                "peler l'œuf dur après l'avoir refroidi",
                "retirer la coquille de l'œuf les œufs durs sous l'eau froide",
                "il faut écaler les œufs durs sous l'eau froide",
                "il faut retirer délicatement la coquille de l'œuf cuit",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["shell the egg", "shelled the egg", "remove the eggshell"],
            utterances=[
                "shell the hard-boiled eggs under cold water",
                "gently remove the shell from the cooked egg",
                "remove the shell from the soft-boiled eggs",
                "peel the hard-boiled egg after cooling it",
                "make sure to shell the hard-boiled eggs under cold water",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="scald",
        fr=TechStepLocaleTrainingData(
            synonyms=["échauder", "échaudez", "échaudé", "échaudée", "ébouillanter brièvement"],
            utterances=[
                "échauder les tomates pour retirer la peau facilement",
                "plonger brièvement dans l'eau bouillante avant de peler",
                "ébouillanter quelques secondes pour faciliter l'épluchage",
                "tremper rapidement dans l'eau chaude pour détacher la peau",
                "ébouillanter brièvement les tomates pour retirer la peau facilement",
                "il faut échauder les tomates pour retirer la peau facilement",
                "il faut plonger brièvement dans l'eau bouillante avant de peler",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["scald", "scalds", "scalded", "scalding", "briefly blanch to peel"],
            utterances=[
                "scald the tomatoes to easily remove the skin",
                "briefly dip in boiling water before peeling",
                "scald for a few seconds to make peeling easier",
                "quickly dip in hot water to loosen the skin",
                "briefly blanch to peel the tomatoes to easily remove the skin",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="pod",
        fr=TechStepLocaleTrainingData(
            synonyms=["écosser", "écossez", "écossé", "écossée", "retirer la cosse"],
            utterances=[
                "écosser les petits pois avant de les cuire",
                "retirer la cosse des fèves fraîches",
                "enlever l'enveloppe des haricots avant de les préparer",
                "sortir les grains de leur cosse",
                "retirer la cosse les petits pois avant de les cuire",
                "écosser des fèves fraîches",
                "il faut écosser les petits pois avant de les cuire",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["pod", "shell the peas", "remove the pods"],
            utterances=[
                "pod the peas before cooking them",
                "remove the pods from the fresh fava beans",
                "remove the shells from the beans before preparing them",
                "take the grains out of their pods",
                "remove the pods the peas before cooking them",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="emulsify",
        fr=TechStepLocaleTrainingData(
            synonyms=["émulsionner", "émulsionnez", "émulsionné", "émulsionnée", "monter en émulsion"],
            utterances=[
                "émulsionner l'huile et le vinaigre pour la vinaigrette",
                "fouetter énergiquement pour lier l'huile et l'eau",
                "monter la sauce en émulsion en ajoutant l'huile petit à petit",
                "mélanger vigoureusement pour obtenir un mélange homogène et lisse",
                "monter en émulsion l'huile et le vinaigre pour la vinaigrette",
                "il faut émulsionner l'huile et le vinaigre pour la vinaigrette",
                "il faut fouetter énergiquement pour lier l'huile et l'eau",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["emulsify", "emulsifies", "emulsified", "emulsifying"],
            utterances=[
                "emulsify the oil and vinegar for the dressing",
                "whisk vigorously to bind the oil and water together",
                "build the emulsion by adding the oil little by little",
                "mix vigorously until smooth and even",
                "make sure to emulsify the oil and vinegar for the dressing",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="hollowOut",
        fr=TechStepLocaleTrainingData(
            synonyms=["évider", "évidez", "évidé", "évidée", "retirer la chair du fruit"],
            utterances=[
                "évider les tomates avant de les farcir",
                "creuser délicatement la courgette pour retirer la chair",
                "retirer le cœur et les pépins du fruit à la cuillère",
                "vider l'intérieur du légume avant de le garnir",
                "retirer la chair du fruit les tomates avant de les farcir",
                "il faut évider les tomates avant de les farcir",
                "il faut creuser délicatement la courgette pour retirer la chair",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["hollow out", "hollowed out", "scoop out the flesh", "core out"],
            utterances=[
                "hollow out the tomatoes before stuffing them",
                "gently scoop out the zucchini to remove the flesh",
                "remove the core and seeds from the fruit with a spoon",
                "scoop out the inside of the vegetable before filling it",
                "scoop out the flesh the tomatoes before stuffing them",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="shock",
        fr=TechStepLocaleTrainingData(
            synonyms=["frapper", "frappez", "frappé", "frappée", "bain de glace"],
            utterances=[
                "frapper les légumes dans l'eau glacée après cuisson",
                "plonger immédiatement dans l'eau glacée pour stopper la cuisson",
                "refroidir rapidement dans un bain d'eau et de glace",
                "passer sous l'eau très froide pour préserver la couleur",
                "il faut frapper les légumes dans l'eau glacée après cuisson",
                "il faut plonger immédiatement dans l'eau glacée pour stopper la cuisson",
                "il faut refroidir rapidement dans un bain d'eau et de glace",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["shock", "shocked", "shock in ice water", "ice bath"],
            utterances=[
                "shock the vegetables in ice water after cooking",
                "plunge immediately into ice water to stop the cooking",
                "cool quickly in an ice bath",
                "run under very cold water to preserve the color",
                "shock in ice water the vegetables in ice water after cooking",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="setGel",
        fr=TechStepLocaleTrainingData(
            synonyms=["gélifier", "gélifiez", "gélifié", "gélifiée", "prendre en gelée"],
            utterances=[
                "ajouter de la gélatine pour gélifier la préparation",
                "laisser prendre au réfrigérateur jusqu'à ce que ça gélifie",
                "incorporer l'agar-agar pour obtenir une texture de gelée",
                "laisser figer la préparation jusqu'à ce qu'elle soit ferme",
                "il faut ajouter de la gélatine pour gélifier la préparation",
                "il faut laisser prendre au réfrigérateur jusqu'à ce que ça gélifie",
                "il faut incorporer l'agar-agar pour obtenir une texture de gelée",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["set with gelatin", "gel", "gelled", "set into a jelly"],
            utterances=[
                "add gelatin to set the mixture",
                "let it set in the fridge until it gels",
                "stir in the agar-agar to get a jelly-like texture",
                "let the mixture firm up until set",
                "make sure to add gelatin to set the mixture",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="glaze",
        fr=TechStepLocaleTrainingData(
            synonyms=["glacer", "glacez", "glacé", "glacée", "glaçage"],
            utterances=[
                "glacer les carottes avec du beurre et du sucre",
                "napper la pâtisserie d'un glaçage brillant",
                "arroser la viande de son jus pour la faire glacer au four",
                "saupoudrer de sucre glace et passer sous le grill",
                "il faut glacer les carottes avec du beurre et du sucre",
                "il faut napper la pâtisserie d'un glaçage brillant",
                "il faut arroser la viande de son jus pour la faire glacer au four",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["glaze", "glazes", "glazed", "glazing"],
            utterances=[
                "glaze the carrots with butter and sugar",
                "coat the pastry with a shiny glaze",
                "baste the meat with its juices to glaze it in the oven",
                "dust with powdered sugar and run under the broiler",
                "make sure to glaze the carrots with butter and sugar",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="thicken",
        fr=TechStepLocaleTrainingData(
            synonyms=["lier", "liez", "liée", "liés", "liaison de la sauce"],
            utterances=[
                "lier la sauce avec un jaune d'œuf",
                "épaissir le potage avec un peu de farine",
                "ajouter de la crème pour donner plus de consistance à la sauce",
                "incorporer la maïzena pour épaissir le jus",
                "il faut lier la sauce avec un jaune d'œuf",
                "il faut épaissir le potage avec un peu de farine",
                "il faut ajouter de la crème pour donner plus de consistance à la sauce",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["thicken", "thickens", "thickened", "thickening", "bind the sauce"],
            utterances=[
                "thicken the sauce with an egg yolk",
                "thicken the soup with a little flour",
                "add cream to give the sauce more body",
                "stir in cornstarch to thicken the juices",
                "make sure to thicken the sauce with an egg yolk",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="filet",
        fr=TechStepLocaleTrainingData(
            synonyms=["lever les filets", "faire lever", "désosser le poisson", "lever un filet"],
            utterances=[
                "lever les filets du poisson à l'aide d'un couteau fin",
                "faire lever la peau du poisson par le poissonnier",
                "retirer les filets de la volaille en suivant l'os",
                "désosser et lever les filets avant de cuisiner",
                "désosser le poisson du poisson à l'aide d'un couteau fin",
                "lever un filet du poisson à l'aide d'un couteau fin",
                "faire lever du poisson à l'aide d'un couteau fin",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["fillet", "filleted", "filleting", "fillet the fish"],
            utterances=[
                "fillet the fish with a thin knife",
                "have the fishmonger skin the fish",
                "remove the fillets from the poultry along the bone",
                "bone out and fillet before cooking",
                "fillet with a thin knife",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="proof",
        fr=TechStepLocaleTrainingData(
            synonyms=["laisser pousser", "faire pousser la pâte", "laisser lever", "temps de pousse"],
            utterances=[
                "laisser pousser la pâte à pain une heure dans un endroit tiède",
                "laisser la pâte à pizza doubler de volume",
                "laisser reposer la pâte à brioche jusqu'à ce qu'elle gonfle",
                "attendre que la levure fasse son effet et que la pâte lève",
                "faire pousser la pâte la pâte à pain une heure dans un endroit tiède",
                "laisser lever la pâte à pain une heure dans un endroit tiède",
                "il faut laisser pousser la pâte à pain une heure dans un endroit tiède",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["proof", "proofed", "proofing", "let the dough rise", "let it rise"],
            utterances=[
                "let the bread dough rise for an hour in a warm place",
                "let the pizza dough double in size",
                "let the brioche dough rest until it puffs up",
                "wait for the yeast to work and the dough to rise",
                "make sure to let the bread dough rise for an hour in a warm place",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="peelBlanch",
        fr=TechStepLocaleTrainingData(
            synonyms=["monder", "mondez", "mondé", "mondée", "émonder", "émondez"],
            utterances=[
                "monder les tomates en les plongeant dans l'eau bouillante",
                "émonder les amandes pour retirer leur peau",
                "plonger les fruits quelques secondes dans l'eau bouillante pour les peler facilement",
                "peler les châtaignes après les avoir ébouillantées",
                "émonder les tomates en les plongeant dans l'eau bouillante",
                "monder les amandes pour retirer leur peau",
                "il faut monder les tomates en les plongeant dans l'eau bouillante",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["peel by blanching", "blanch and peel", "skin after scalding"],
            utterances=[
                "peel the tomatoes by dipping them in boiling water",
                "blanch the almonds to remove their skins",
                "dip the fruit briefly in boiling water to peel it easily",
                "peel the chestnuts after scalding them",
                "make sure to peel the tomatoes by dipping them in boiling water",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="whipUp",
        fr=TechStepLocaleTrainingData(
            synonyms=["monter", "montez", "monté", "montée", "faire monter", "monter au fouet"],
            utterances=[
                "monter la crème en chantilly",
                "faire monter les blancs en neige ferme",
                "battre au fouet électrique jusqu'à ce que le volume double",
                "fouetter jusqu'à obtenir une préparation bien ferme et aérée",
                "monter au fouet la crème en chantilly",
                "faire monter la crème en chantilly",
                "monter au fouet les blancs en neige ferme",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["whip up", "whipped up", "build volume", "whip to stiff peaks"],
            utterances=[
                "whip the cream into chantilly",
                "whip the egg whites to stiff peaks",
                "beat with an electric mixer until the volume doubles",
                "whisk until the mixture is firm and airy",
                "make sure to whip the cream into chantilly",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="moisten",
        fr=TechStepLocaleTrainingData(
            synonyms=["mouiller", "mouillez", "mouillé", "mouillée", "mouillement"],
            utterances=[
                "mouiller la préparation avec un peu de bouillon",
                "ajouter de l'eau pour détendre et humidifier le mélange",
                "verser un peu de lait pour réhydrater la pâte",
                "incorporer un peu de liquide pour assouplir la préparation",
                "il faut mouiller la préparation avec un peu de bouillon",
                "il faut ajouter de l'eau pour détendre et humidifier le mélange",
                "il faut verser un peu de lait pour réhydrater la pâte",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["moisten", "moistens", "moistened", "moistening", "add liquid"],
            utterances=[
                "moisten the mixture with a little stock",
                "add water to loosen and moisten the mixture",
                "pour in a little milk to rehydrate the batter",
                "stir in a little liquid to soften the mixture",
                "add liquid the mixture with a little stock",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="pasteurize",
        fr=TechStepLocaleTrainingData(
            synonyms=["pasteuriser", "pasteurisez", "pasteurisé", "pasteurisée", "pasteurisation"],
            utterances=[
                "pasteuriser le lait en le chauffant sans le faire bouillir",
                "chauffer le jus de fruits pour éliminer les germes",
                "porter le liquide à une température précise puis le refroidir brusquement",
                "traiter le lait par la chaleur pour le conserver plus longtemps",
                "il faut pasteuriser le lait en le chauffant sans le faire bouillir",
                "il faut chauffer le jus de fruits pour éliminer les germes",
                "il faut porter le liquide à une température précise puis le refroidir brusquement",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["pasteurize", "pasteurizes", "pasteurized", "pasteurizing"],
            utterances=[
                "pasteurize the milk by heating it without boiling",
                "heat the fruit juice to eliminate germs",
                "bring the liquid to a precise temperature then cool it quickly",
                "heat-treat the milk to preserve it longer",
                "make sure to pasteurize the milk by heating it without boiling",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="poach",
        fr=TechStepLocaleTrainingData(
            synonyms=["pocher", "pochez", "poché", "pochée", "pochées", "cuisson pochée"],
            utterances=[
                "pocher les œufs dans l'eau frémissante",
                "cuire le poisson à peine frémissant dans un bouillon",
                "immerger la volaille dans un liquide à peine frémissant",
                "laisser cuire doucement dans un fumet sans faire bouillir",
                "il faut pocher les œufs dans l'eau frémissante",
                "il faut cuire le poisson à peine frémissant dans un bouillon",
                "il faut immerger la volaille dans un liquide à peine frémissant",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["poach", "poaches", "poached", "poaching"],
            utterances=[
                "poach the eggs in simmering water",
                "cook the fish in barely simmering stock",
                "submerge the poultry in a barely simmering liquid",
                "let it cook gently in a stock without boiling",
                "make sure to poach the eggs in simmering water",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="reduce",
        fr=TechStepLocaleTrainingData(
            synonyms=["réduire", "réduisez", "réduit", "réduite", "faire réduire", "réduction"],
            utterances=[
                "faire réduire la sauce de moitié",
                "laisser réduire à feu vif pour concentrer les saveurs",
                "augmenter le feu pour évaporer une partie du liquide",
                "laisser mijoter à découvert jusqu'à ce que le jus épaississe",
                "réduire la sauce de moitié",
                "il faut faire réduire la sauce de moitié",
                "il faut laisser réduire à feu vif pour concentrer les saveurs",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["reduce", "reduces", "reduced", "reducing", "reduction"],
            utterances=[
                "reduce the sauce by half",
                "let it reduce over high heat to concentrate the flavors",
                "increase the heat to evaporate some of the liquid",
                "let it simmer uncovered until the liquid thickens",
                "make sure to reduce the sauce by half",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="rubIn",
        fr=TechStepLocaleTrainingData(
            synonyms=["sabler", "sablez", "sablé", "sablée", "pâte sablée", "sabler la pâte"],
            utterances=[
                "sabler la farine et le beurre du bout des doigts",
                "malaxer rapidement pour obtenir une texture sableuse",
                "frotter le beurre et la farine entre les doigts jusqu'à obtenir une texture friable",
                "travailler la pâte sans la chauffer pour la rendre poudreuse",
                "sabler la pâte la farine et le beurre du bout des doigts",
                "il faut sabler la farine et le beurre du bout des doigts",
                "il faut malaxer rapidement pour obtenir une texture sableuse",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["rub in", "rubbed in", "rub the butter into the flour", "sandy texture"],
            utterances=[
                "rub the flour and butter between your fingertips",
                "quickly work it into a sandy texture",
                "rub the butter into the flour until it looks like breadcrumbs",
                "work the dough without warming it so it stays crumbly",
                "rub in until it looks like breadcrumbs",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="dustWithFlour",
        fr=TechStepLocaleTrainingData(
            synonyms=["singer", "singez", "singé", "singée", "saupoudrer de farine dans le corps gras"],
            utterances=[
                "singer les légumes avec une cuillère de farine",
                "saupoudrer de farine et laisser cuire quelques minutes avant de mouiller",
                "ajouter la farine sur les aliments dorés et laisser cuire un instant",
                "fariner légèrement la préparation avant d'ajouter le liquide",
                "saupoudrer de farine dans le corps gras les légumes avec une cuillère de farine",
                "il faut singer les légumes avec une cuillère de farine",
                "il faut saupoudrer de farine et laisser cuire quelques minutes avant de mouiller",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["dust with flour", "stir in flour", "sprinkle flour over the fat"],
            utterances=[
                "dust the vegetables with a spoonful of flour",
                "sprinkle with flour and cook a few minutes before adding liquid",
                "add the flour over the browned food and cook briefly",
                "lightly flour the mixture before adding the liquid",
                "make sure to dust the vegetables with a spoonful of flour",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="sweat",
        fr=TechStepLocaleTrainingData(
            synonyms=["suer", "faire suer", "faites suer", "suez", "sué"],
            utterances=[
                "faire suer les oignons à feu doux sans coloration",
                "laisser suer les légumes émincés dans le beurre",
                "cuire doucement à couvert pour faire perdre leur eau aux légumes",
                "faire revenir sans coloration à feu très doux",
                "suer les oignons à feu doux sans coloration",
                "il faut faire suer les oignons à feu doux sans coloration",
                "il faut laisser suer les légumes émincés dans le beurre",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["sweat", "sweats", "sweated", "sweating"],
            utterances=[
                "sweat the onions over low heat without browning",
                "let the sliced vegetables sweat in the butter",
                "cook gently, covered, to draw the water out of the vegetables",
                "cook without browning over very low heat",
                "make sure to sweat the onions over low heat without browning",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="sift",
        fr=TechStepLocaleTrainingData(
            synonyms=["tamiser", "tamisez", "tamisé", "tamisée", "passer au tamis"],
            utterances=[
                "tamiser la farine avant de l'incorporer",
                "passer le sucre glace au tamis pour retirer les grumeaux",
                "faire passer la poudre d'amande à travers une passoire fine",
                "filtrer la farine pour obtenir une texture fine et homogène",
                "passer au tamis la farine avant de l'incorporer",
                "il faut tamiser la farine avant de l'incorporer",
                "il faut passer le sucre glace au tamis pour retirer les grumeaux",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["sift", "sifts", "sifted", "sifting"],
            utterances=[
                "sift the flour before adding it",
                "sift the powdered sugar to remove any lumps",
                "pass the almond flour through a fine sieve",
                "strain the flour to get a fine, even texture",
                "make sure to sift the flour before adding it",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="toast",
        fr=TechStepLocaleTrainingData(
            synonyms=["torréfier", "torréfiez", "torréfié", "torréfiée", "torréfaction"],
            utterances=[
                "torréfier les grains de café à la poêle",
                "faire griller les fruits secs à sec pour développer leur arôme",
                "passer les épices quelques minutes dans une poêle chaude sans matière grasse",
                "faire dorer les amandes à sec au four",
                "il faut torréfier les grains de café à la poêle",
                "il faut faire griller les fruits secs à sec pour développer leur arôme",
                "il faut passer les épices quelques minutes dans une poêle chaude sans matière grasse",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["toast", "toasts", "toasted", "toasting", "dry-roast"],
            utterances=[
                "toast the coffee beans in a pan",
                "dry-toast the nuts to develop their flavor",
                "toast the spices for a few minutes in a hot, dry pan",
                "dry-roast the almonds in the oven",
                "make sure to toast the coffee beans in a pan",
            ],
        ),
    ),
    TechStepTrainingEntry(
        uid="zest",
        fr=TechStepLocaleTrainingData(
            synonyms=["zester", "zestez", "zesté", "zestée", "prélever le zeste"],
            utterances=[
                "zester le citron avant de le presser",
                "prélever le zeste de l'orange à l'aide d'une râpe fine",
                "râper finement la peau de l'agrume sans toucher la partie blanche",
                "récupérer l'écorce colorée du citron vert pour parfumer la préparation",
                "prélever le zeste le citron avant de le presser",
                "zester de l'orange à l'aide d'une râpe fine",
                "il faut zester le citron avant de le presser",
            ],
        ),
        en=TechStepLocaleTrainingData(
            synonyms=["zest", "zests", "zested", "zesting"],
            utterances=[
                "zest the lemon before juicing it",
                "grate the zest of the orange with a fine grater",
                "finely grate the citrus peel without touching the white pith",
                "collect the colored peel of the lime to flavor the mixture",
                "make sure to zest the lemon before juicing it",
            ],
        ),
    ),
]


def entries_for_locale(locale: str) -> list[dict]:
    """Aplati {@link TECH_STEP_TRAINING_DATA} en une liste `{uid, synonyms,
    utterances}` pour une seule locale — la forme que
    `LocalePipeline.train()` (via `TrainEntry`) attend. Retourne des `dict`
    plutôt que `TrainEntry` directement pour ne pas faire dépendre ce module,
    purement données, de `locale_pipeline.py`."""
    return [
        {"uid": entry.uid, **vars(getattr(entry, locale))}
        for entry in TECH_STEP_TRAINING_DATA
        if hasattr(entry, locale)
    ]
