- Prisma: enum IngredientCategory (18 valeurs) + Ingredient.category, migration appliquée - reference-seed-data.ts restructuré en 18 groupes de catégories - packages/shared: INGREDIENT_CATEGORIES + IngredientView.category - API: category exposé par /reference/ingredients et /recipes - Web: nouveau IngredientPicker (chips catégories + recherche + grille de cartes) remplaçant IngredientAutocomplete, branché dans le formulaire de recette et le champ aliments-pas-aimés - i18n: clés recipes.form.category.* et libellés du picker - Fix test reference.test.ts pour la nouvelle forme d'IngredientView Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
275 lines
9 KiB
JSON
275 lines
9 KiB
JSON
{
|
|
"common": {
|
|
"saving": "Enregistrement…",
|
|
"saved": "Enregistré ✓",
|
|
"loadError": "Impossible de charger le planning, réessayez plus tard"
|
|
},
|
|
"errors": {
|
|
"VALIDATION_ERROR": "Erreur de validation",
|
|
"EMAIL_ALREADY_IN_USE": "Cet email est déjà utilisé",
|
|
"INVALID_CREDENTIALS": "Email ou mot de passe incorrect",
|
|
"NOT_AUTHENTICATED": "Vous devez être connecté",
|
|
"ALREADY_HAS_HOUSE": "Vous appartenez déjà à un foyer",
|
|
"NOT_HOUSE_ADMIN": "Seul l'administrateur du foyer peut faire ça",
|
|
"NOT_RECIPE_AUTHOR": "Seul l'auteur de la recette peut faire ça",
|
|
"NOT_FOUND": "Ressource introuvable",
|
|
"HOUSE_NOT_FOUND": "Votre profil n'a pas de foyer",
|
|
"DIET_NOT_FOUND": "Ce régime alimentaire n'existe pas",
|
|
"ALLERGY_NOT_FOUND": "Un des allergènes sélectionnés n'existe pas",
|
|
"INVITE_CODE_NOT_FOUND": "Ce code d'invitation ne correspond à aucun foyer",
|
|
"RECIPE_NOT_FOUND": "Cette recette n'existe pas",
|
|
"RECIPE_IN_USE": "Cette recette est encore utilisée dans un planning",
|
|
"INGREDIENT_NOT_FOUND": "Un des ingrédients sélectionnés n'existe pas",
|
|
"INTERNAL_ERROR": "Une erreur est survenue, réessayez plus tard"
|
|
},
|
|
"auth": {
|
|
"login": {
|
|
"title": "Se connecter",
|
|
"emailLabel": "Email",
|
|
"passwordLabel": "Mot de passe",
|
|
"submit": "Se connecter",
|
|
"submitting": "Connexion…",
|
|
"noAccount": "Pas encore de compte ?",
|
|
"createProfileLink": "Créer un profil"
|
|
},
|
|
"signup": {
|
|
"title": "Créer un profil",
|
|
"firstNameLabel": "Prénom",
|
|
"lastNameLabel": "Nom",
|
|
"emailLabel": "Email",
|
|
"passwordLabel": "Mot de passe",
|
|
"submit": "Créer mon profil",
|
|
"submitting": "Création…",
|
|
"hasAccount": "Déjà un compte ?",
|
|
"loginLink": "Se connecter"
|
|
}
|
|
},
|
|
"onboarding": {
|
|
"step": "Étape {{current}} sur {{total}}",
|
|
"continue": "Continuer",
|
|
"finish": "Terminer",
|
|
"loading": "Chargement…",
|
|
"diet": {
|
|
"title": "Un régime alimentaire particulier ?"
|
|
},
|
|
"household": {
|
|
"title": "Rejoignez ou créez un foyer",
|
|
"subtitle": "Optionnel — vous pourrez le faire plus tard depuis les paramètres.",
|
|
"skip": "Passer cette étape",
|
|
"alreadyHasHouse": "Vous faites déjà partie du foyer « {{name}} »."
|
|
},
|
|
"allergens": {
|
|
"title": "Des allergies ou intolérances ?"
|
|
}
|
|
},
|
|
"layout": {
|
|
"sidebar": {
|
|
"collapse": "Replier le menu",
|
|
"expand": "Déplier le menu"
|
|
},
|
|
"nav": {
|
|
"planning": "Planning",
|
|
"recipes": "Recettes",
|
|
"shoppingList": "Liste de courses"
|
|
},
|
|
"settings": {
|
|
"toggle": "Paramètres",
|
|
"nav": {
|
|
"account": "Compte",
|
|
"preferences": "Préférences alimentaires",
|
|
"household": "Foyer",
|
|
"userPreferences": "Préférences utilisateur"
|
|
}
|
|
},
|
|
"accountMenu": {
|
|
"myAccount": "Mon compte"
|
|
},
|
|
"greeting": "Bonjour {{firstName}} 👋",
|
|
"logout": "Se déconnecter"
|
|
},
|
|
"planning": {
|
|
"title": "Planning de la semaine",
|
|
"loading": "Chargement du planning…",
|
|
"weekNav": {
|
|
"thisWeek": "Cette semaine",
|
|
"prevWeek": "Semaine précédente",
|
|
"nextWeek": "Semaine suivante",
|
|
"label": "Semaine du {{range}}"
|
|
},
|
|
"calendar": {
|
|
"prevMonth": "Mois précédent",
|
|
"nextMonth": "Mois suivant"
|
|
},
|
|
"days": {
|
|
"lundi": "Lundi",
|
|
"mardi": "Mardi",
|
|
"mercredi": "Mercredi",
|
|
"jeudi": "Jeudi",
|
|
"vendredi": "Vendredi",
|
|
"samedi": "Samedi",
|
|
"dimanche": "Dimanche"
|
|
},
|
|
"meals": {
|
|
"petit-dejeuner": "Petit-déjeuner",
|
|
"collation": "Collation",
|
|
"dejeuner": "Déjeuner",
|
|
"gouter": "Goûter",
|
|
"diner": "Dîner"
|
|
},
|
|
"grid": {
|
|
"addRecipeSoon": "Recherche de recettes à venir",
|
|
"removeRecipe": "Retirer cette recette"
|
|
}
|
|
},
|
|
"recipes": {
|
|
"title": "Recettes",
|
|
"searchPlaceholder": "Rechercher une recette…",
|
|
"newButton": "Nouvelle recette",
|
|
"loading": "Chargement…",
|
|
"empty": "Aucune recette pour le moment.",
|
|
"notFound": "Cette recette n'existe pas.",
|
|
"editButton": "Modifier",
|
|
"deleteButton": "Supprimer",
|
|
"confirmDeleteButton": "Confirmer la suppression",
|
|
"cancelDeleteButton": "Annuler",
|
|
"ingredientsTitle": "Ingrédients",
|
|
"stepsTitle": "Préparation",
|
|
"tabs": {
|
|
"favoris": "Favoris",
|
|
"perso": "Perso",
|
|
"foyer": "Foyer",
|
|
"publique": "Publique",
|
|
"sourcesSoon": "Sources (bientôt)",
|
|
"sourcesSoonHint": "Un onglet par source externe, une fois l'import de recettes construit"
|
|
},
|
|
"table": {
|
|
"name": "Nom",
|
|
"allergens": "Allergènes / intolérances",
|
|
"diets": "Régime associé"
|
|
},
|
|
"detail": {
|
|
"empty": "Sélectionnez une recette dans le tableau pour voir son détail ici.",
|
|
"favorite": "Ajouter aux favoris",
|
|
"unfavorite": "Retirer des favoris"
|
|
},
|
|
"form": {
|
|
"newTitle": "Nouvelle recette",
|
|
"editTitle": "Modifier la recette",
|
|
"nameLabel": "Nom de la recette",
|
|
"descriptionLabel": "Description",
|
|
"pictureLabel": "Photo (URL)",
|
|
"visibilityLabel": "Visible par",
|
|
"visibility": {
|
|
"PERSONAL": "Moi uniquement",
|
|
"HOUSE": "Mon foyer",
|
|
"PUBLIC": "Tout le monde"
|
|
},
|
|
"dietsLabel": "Régime(s) associé(s)",
|
|
"searchIngredientPlaceholder": "Rechercher un ingrédient…",
|
|
"allCategories": "Tout",
|
|
"noIngredientFound": "Aucun ingrédient trouvé.",
|
|
"category": {
|
|
"CEREALES_FECULENTS": "Céréales & féculents",
|
|
"LEGUMINEUSES": "Légumineuses",
|
|
"VIANDES_VOLAILLES": "Viandes & volailles",
|
|
"POISSONS_FRUITS_DE_MER": "Poissons & fruits de mer",
|
|
"PRODUITS_LAITIERS_OEUFS": "Produits laitiers & œufs",
|
|
"LEGUMES": "Légumes",
|
|
"FRUITS": "Fruits",
|
|
"FRUITS_SECS_OLEAGINEUX": "Fruits secs & oléagineux",
|
|
"CONDIMENTS_SAUCES": "Condiments & sauces",
|
|
"EPICES_HERBES": "Épices & herbes",
|
|
"SUCRE_PATISSERIE": "Sucre & pâtisserie",
|
|
"CUISINE_ITALIENNE": "Cuisine italienne",
|
|
"CUISINE_ASIATIQUE": "Cuisine asiatique",
|
|
"CUISINE_MEXICAINE": "Cuisine mexicaine",
|
|
"MAGHREB_MOYEN_ORIENT": "Maghreb & Moyen-Orient",
|
|
"PAINS_SANDWICHS": "Pains & sandwichs",
|
|
"EPICERIE_DIVERS": "Épicerie & divers",
|
|
"LIQUIDES_BOISSONS": "Liquides & boissons"
|
|
},
|
|
"quantityLabel": "Quantité",
|
|
"unitLabel": "Unité",
|
|
"unitPlaceholder": "g, ml, unité…",
|
|
"removeIngredient": "Retirer cet ingrédient",
|
|
"stepDescriptionPlaceholder": "Décrivez cette étape…",
|
|
"stepPicturePlaceholder": "Photo de l'étape (URL, optionnel)",
|
|
"moveStepUp": "Monter cette étape",
|
|
"moveStepDown": "Descendre cette étape",
|
|
"removeStep": "Supprimer cette étape",
|
|
"addStep": "Ajouter une étape",
|
|
"submit": "Enregistrer",
|
|
"submitting": "Enregistrement…",
|
|
"genericError": "Le formulaire contient des erreurs"
|
|
}
|
|
},
|
|
"shoppingList": {
|
|
"title": "Liste de courses",
|
|
"comingSoon": "Cette section arrive bientôt."
|
|
},
|
|
"account": {
|
|
"title": "Compte",
|
|
"identity": {
|
|
"firstNameLabel": "Prénom",
|
|
"lastNameLabel": "Nom",
|
|
"emailLabel": "Email"
|
|
},
|
|
"dangerZone": {
|
|
"title": "Zone dangereuse",
|
|
"description": "Supprimer votre compte est définitif et irréversible.",
|
|
"deleteButton": "Supprimer mon compte",
|
|
"passwordLabel": "Confirmez avec votre mot de passe",
|
|
"confirmButton": "Confirmer la suppression",
|
|
"cancelButton": "Annuler"
|
|
}
|
|
},
|
|
"preferences": {
|
|
"title": "Préférences alimentaires",
|
|
"form": {
|
|
"dietLabel": "Régime alimentaire",
|
|
"dietNone": "Aucun régime particulier",
|
|
"allergiesLabel": "Allergies",
|
|
"intolerancesLabel": "Intolérances",
|
|
"dislikedIngredientsLabel": "Aliments que vous n'aimez pas",
|
|
"removeDislikedIngredient": "Retirer cet aliment"
|
|
}
|
|
},
|
|
"userPreferences": {
|
|
"title": "Préférences utilisateur",
|
|
"themeLabel": "Thème",
|
|
"theme": {
|
|
"LIGHT": "Clair",
|
|
"DARK": "Sombre",
|
|
"SYSTEM": "Système"
|
|
}
|
|
},
|
|
"household": {
|
|
"title": "Foyer",
|
|
"form": {
|
|
"nameLabel": "Nom du foyer"
|
|
},
|
|
"noHouse": {
|
|
"intro": "Vous n'appartenez à aucun foyer pour le moment.",
|
|
"createTitle": "Créer un foyer",
|
|
"createButton": "Créer",
|
|
"joinTitle": "Rejoindre un foyer",
|
|
"joinLabel": "Code d'invitation",
|
|
"joinButton": "Rejoindre"
|
|
},
|
|
"inviteCodeLabel": "Code d'invitation",
|
|
"copyButton": "Copier",
|
|
"copied": "Copié ✓",
|
|
"membersTitle": "Membres",
|
|
"adminBadge": "Admin",
|
|
"youSuffix": " (vous)",
|
|
"removeButton": "Retirer",
|
|
"leaveButton": "Quitter le foyer",
|
|
"dangerZone": {
|
|
"title": "Zone dangereuse",
|
|
"description": "Supprimer le foyer le supprime pour tous ses membres, ainsi que son planning.",
|
|
"deleteButton": "Supprimer le foyer",
|
|
"confirmButton": "Confirmer la suppression",
|
|
"cancelButton": "Annuler"
|
|
}
|
|
}
|
|
}
|