diff --git a/frontend/components/Domain/Recipe/RecipeLastMade.vue b/frontend/components/Domain/Recipe/RecipeLastMade.vue
index 8009bdc13..b9871e8f9 100644
--- a/frontend/components/Domain/Recipe/RecipeLastMade.vue
+++ b/frontend/components/Domain/Recipe/RecipeLastMade.vue
@@ -3,6 +3,7 @@
import { whenever } from "@vueuse/core";
import { useUserApi } from "~/composables/api";
+import { alert } from "~/composables/use-toast";
import { useHouseholdSelf } from "~/composables/use-households";
-import type { Recipe, RecipeTimelineEventIn } from "~/lib/api/types/recipe";
+import type { Recipe, RecipeTimelineEventIn, RecipeTimelineEventOut } from "~/lib/api/types/recipe";
import type { VForm } from "~/types/auto-forms";
export default defineNuxtComponent({
@@ -196,12 +198,25 @@ export default defineNuxtComponent({
newTimelineEventImagePreviewUrl.value = URL.createObjectURL(fileObject);
}
- const state = reactive({ datePickerMenu: false });
+ const state = reactive({ datePickerMenu: false, madeThisFormLoading: false });
+
+ function resetMadeThisForm() {
+ state.madeThisFormLoading = false;
+
+ newTimelineEvent.value.eventMessage = "";
+ newTimelineEvent.value.timestamp = undefined;
+ clearImage();
+ madeThisDialog.value = false;
+ domMadeThisForm.value?.reset();
+ }
+
async function createTimelineEvent() {
if (!(newTimelineEventTimestampString.value && props.recipe?.id && props.recipe?.slug)) {
return;
}
+ state.madeThisFormLoading = true;
+
newTimelineEvent.value.recipeId = props.recipe.id;
// Note: $auth.user is now a ref
newTimelineEvent.value.subject = i18n.t("recipe.user-made-this", { user: $auth.user.value?.fullName });
@@ -210,34 +225,60 @@ export default defineNuxtComponent({
// we choose the end of day so it always comes after "new recipe" events
newTimelineEvent.value.timestamp = new Date(newTimelineEventTimestampString.value + "T23:59:59").toISOString();
- const eventResponse = await userApi.recipes.createTimelineEvent(newTimelineEvent.value);
- const newEvent = eventResponse.data;
+ let newEvent: RecipeTimelineEventOut | null = null;
+ try {
+ const eventResponse = await userApi.recipes.createTimelineEvent(newTimelineEvent.value);
+ newEvent = eventResponse.data;
+ if (!newEvent) {
+ throw new Error("No event created");
+ }
+ }
+ catch (error) {
+ console.error("Failed to create timeline event:", error);
+ alert.error(i18n.t("recipe.failed-to-add-to-timeline"));
+ resetMadeThisForm();
+ return;
+ }
// we also update the recipe's last made value
if (!lastMade.value || newTimelineEvent.value.timestamp > lastMade.value) {
- lastMade.value = newTimelineEvent.value.timestamp;
- await userApi.recipes.updateLastMade(props.recipe.slug, newTimelineEvent.value.timestamp);
- }
-
- // update the image, if provided
- if (newTimelineEventImage.value && newEvent) {
- const imageResponse = await userApi.recipes.updateTimelineEventImage(
- newEvent.id,
- newTimelineEventImage.value,
- newTimelineEventImageName.value,
- );
- if (imageResponse.data) {
- newEvent.image = imageResponse.data.image;
+ try {
+ lastMade.value = newTimelineEvent.value.timestamp;
+ await userApi.recipes.updateLastMade(props.recipe.slug, newTimelineEvent.value.timestamp);
+ }
+ catch (error) {
+ console.error("Failed to update last made date:", error);
+ alert.error(i18n.t("recipe.failed-to-update-recipe"));
}
}
- // reset form
- newTimelineEvent.value.eventMessage = "";
- newTimelineEvent.value.timestamp = undefined;
- clearImage();
- madeThisDialog.value = false;
- domMadeThisForm.value?.reset();
+ // update the image, if provided
+ let imageError = false;
+ if (newTimelineEventImage.value) {
+ try {
+ const imageResponse = await userApi.recipes.updateTimelineEventImage(
+ newEvent.id,
+ newTimelineEventImage.value,
+ newTimelineEventImageName.value,
+ );
+ if (imageResponse.data) {
+ newEvent.image = imageResponse.data.image;
+ }
+ }
+ catch (error) {
+ imageError = true;
+ console.error("Failed to upload image for timeline event:", error);
+ }
+ }
+ if (imageError) {
+ alert.error(i18n.t("recipe.added-to-timeline-but-failed-to-add-image"));
+ }
+ else {
+ alert.success(i18n.t("recipe.added-to-timeline"));
+ }
+
+ resetMadeThisForm();
context.emit("eventCreated", newEvent);
}
diff --git a/frontend/components/global/BaseDialog.vue b/frontend/components/global/BaseDialog.vue
index 2bf4ddf7e..8126f4b1e 100644
--- a/frontend/components/global/BaseDialog.vue
+++ b/frontend/components/global/BaseDialog.vue
@@ -82,7 +82,7 @@
{{ submitText }}
diff --git a/frontend/composables/use-group-recipe-actions.ts b/frontend/composables/use-group-recipe-actions.ts
index 8e3aa5a09..895492d55 100644
--- a/frontend/composables/use-group-recipe-actions.ts
+++ b/frontend/composables/use-group-recipe-actions.ts
@@ -1,6 +1,5 @@
import { useStoreActions } from "./partials/use-actions-factory";
import { useUserApi } from "~/composables/api";
-import { useScaledAmount } from "~/composables/recipes/use-scaled-amount";
import type { GroupRecipeActionOut, GroupRecipeActionType } from "~/lib/api/types/household";
import type { RequestResponse } from "~/lib/api/types/non-generated";
import type { Recipe } from "~/lib/api/types/recipe";
@@ -68,7 +67,7 @@ export const useGroupRecipeActions = function (
window.open(url, "_blank")?.focus();
return;
case "post":
- return await api.groupRecipeActions.triggerAction(action.id, recipe.slug || "", useScaledAmount(recipe.recipeServings || 1, recipeScale).scaledAmount);
+ return await api.groupRecipeActions.triggerAction(action.id, recipe.slug || "", recipeScale);
default:
break;
}
diff --git a/frontend/lang/messages/af-ZA.json b/frontend/lang/messages/af-ZA.json
index 2f1907031..517d35f1f 100644
--- a/frontend/lang/messages/af-ZA.json
+++ b/frontend/lang/messages/af-ZA.json
@@ -579,6 +579,10 @@
"made-this": "Ek het dit gemaak",
"how-did-it-turn-out": "Hoe het dit uitgedraai?",
"user-made-this": "{user} het dit gemaak",
+ "added-to-timeline": "Added to timeline",
+ "failed-to-add-to-timeline": "Failed to add to timeline",
+ "failed-to-update-recipe": "Failed to update recipe",
+ "added-to-timeline-but-failed-to-add-image": "Added to timeline, but failed to add image",
"api-extras-description": "Recipes extras are a key feature of the Mealie API. They allow you to create custom JSON key/value pairs within a recipe, to reference from 3rd party applications. You can use these keys to provide information, for example to trigger automations or custom messages to relay to your desired device.",
"message-key": "Boodskap sleutel",
"parse": "Verwerk",
diff --git a/frontend/lang/messages/ar-SA.json b/frontend/lang/messages/ar-SA.json
index 476b386de..80be8a33a 100644
--- a/frontend/lang/messages/ar-SA.json
+++ b/frontend/lang/messages/ar-SA.json
@@ -579,6 +579,10 @@
"made-this": "لقد طبخت هذا",
"how-did-it-turn-out": "كيف كانت النتيجة؟",
"user-made-this": "{user} طبخ هذه",
+ "added-to-timeline": "Added to timeline",
+ "failed-to-add-to-timeline": "Failed to add to timeline",
+ "failed-to-update-recipe": "Failed to update recipe",
+ "added-to-timeline-but-failed-to-add-image": "Added to timeline, but failed to add image",
"api-extras-description": "Recipes extras are a key feature of the Mealie API. They allow you to create custom JSON key/value pairs within a recipe, to reference from 3rd party applications. You can use these keys to provide information, for example to trigger automations or custom messages to relay to your desired device.",
"message-key": "مفتاح الرساله",
"parse": "تحليل",
diff --git a/frontend/lang/messages/bg-BG.json b/frontend/lang/messages/bg-BG.json
index 29c80d8e1..d4f118ccc 100644
--- a/frontend/lang/messages/bg-BG.json
+++ b/frontend/lang/messages/bg-BG.json
@@ -579,6 +579,10 @@
"made-this": "Сготвих рецептата",
"how-did-it-turn-out": "Как се получи?",
"user-made-this": "{user} направи това",
+ "added-to-timeline": "Added to timeline",
+ "failed-to-add-to-timeline": "Failed to add to timeline",
+ "failed-to-update-recipe": "Failed to update recipe",
+ "added-to-timeline-but-failed-to-add-image": "Added to timeline, but failed to add image",
"api-extras-description": "Екстрите за рецепти са ключова характеристика на Mealie API. Те Ви позволяват да създавате персонализирани JSON двойки ключ/стойност в рамките на рецепта, за да ги препращате към други приложения. Можете да използвате тези ключове, за да предоставите информация за задействане на автоматизация или персонализирани съобщения, за препращане към желаното от Вас устройство.",
"message-key": "Ключ на съобщението",
"parse": "Анализирай",
diff --git a/frontend/lang/messages/ca-ES.json b/frontend/lang/messages/ca-ES.json
index 2fa688024..f8f190c13 100644
--- a/frontend/lang/messages/ca-ES.json
+++ b/frontend/lang/messages/ca-ES.json
@@ -579,6 +579,10 @@
"made-this": "Ho he fet",
"how-did-it-turn-out": "Com ha sortit?",
"user-made-this": "{user} ha fet això",
+ "added-to-timeline": "Added to timeline",
+ "failed-to-add-to-timeline": "Failed to add to timeline",
+ "failed-to-update-recipe": "Failed to update recipe",
+ "added-to-timeline-but-failed-to-add-image": "Added to timeline, but failed to add image",
"api-extras-description": "Els extres de receptes són una funcionalitat clau de l'API de Mealie. Permeten crear parells clau/valor JSON personalitzats dins una recepta, per referenciar-los des d'aplicacions de tercers. Pots emprar aquestes claus per proveir informació, per exemple per a desencadenar automatitzacions o missatges personlitzats per a propagar al teu dispositiu desitjat.",
"message-key": "Clau del missatge",
"parse": "Analitzar",
diff --git a/frontend/lang/messages/cs-CZ.json b/frontend/lang/messages/cs-CZ.json
index 3d77c84a8..2596686ef 100644
--- a/frontend/lang/messages/cs-CZ.json
+++ b/frontend/lang/messages/cs-CZ.json
@@ -579,6 +579,10 @@
"made-this": "Toto jsem uvařil",
"how-did-it-turn-out": "Jak to dopadlo?",
"user-made-this": "{user} udělal toto",
+ "added-to-timeline": "Added to timeline",
+ "failed-to-add-to-timeline": "Failed to add to timeline",
+ "failed-to-update-recipe": "Failed to update recipe",
+ "added-to-timeline-but-failed-to-add-image": "Added to timeline, but failed to add image",
"api-extras-description": "Recepty jsou klíčovým rysem rozhraní pro API Mealie. Umožňují vytvářet vlastní klíče/hodnoty JSON v rámci receptu pro odkazy na aplikace třetích stran. Tyto klíče můžete použít pro poskytnutí informací, například pro aktivaci automatizace nebo vlastních zpráv pro přenos do požadovaného zařízení.",
"message-key": "Klíč zprávy",
"parse": "Analyzovat",
diff --git a/frontend/lang/messages/da-DK.json b/frontend/lang/messages/da-DK.json
index 27e8d1e5d..75cd6cd2f 100644
--- a/frontend/lang/messages/da-DK.json
+++ b/frontend/lang/messages/da-DK.json
@@ -579,6 +579,10 @@
"made-this": "Jeg har lavet denne",
"how-did-it-turn-out": "Hvordan blev det?",
"user-made-this": "{user} lavede denne",
+ "added-to-timeline": "Added to timeline",
+ "failed-to-add-to-timeline": "Failed to add to timeline",
+ "failed-to-update-recipe": "Failed to update recipe",
+ "added-to-timeline-but-failed-to-add-image": "Added to timeline, but failed to add image",
"api-extras-description": "Opskrifter ekstra er en central feature i Mealie API. De giver dig mulighed for at oprette brugerdefinerede JSON nøgle / værdi par inden for en opskrift, at henvise til fra 3. parts applikationer. Du kan bruge disse nøgler til at give oplysninger, for eksempel til at udløse automatiseringer eller brugerdefinerede beskeder til at videresende til din ønskede enhed.",
"message-key": "Beskednøgle",
"parse": "Behandl data",
diff --git a/frontend/lang/messages/de-DE.json b/frontend/lang/messages/de-DE.json
index d4bbec42f..8d90bbfe1 100644
--- a/frontend/lang/messages/de-DE.json
+++ b/frontend/lang/messages/de-DE.json
@@ -579,6 +579,10 @@
"made-this": "Ich hab's gemacht",
"how-did-it-turn-out": "Wie ist es geworden?",
"user-made-this": "{user} hat's gemacht",
+ "added-to-timeline": "Zur Zeitleiste hinzugefügt",
+ "failed-to-add-to-timeline": "Fehler beim Hinzufügen zur Zeitleiste",
+ "failed-to-update-recipe": "Fehler beim Aktualisieren des Rezepts",
+ "added-to-timeline-but-failed-to-add-image": "Zur Zeitleiste hinzugefügt, Bild hinzufügen fehlgeschlagen",
"api-extras-description": "Rezepte-Extras sind ein Hauptmerkmal der Mealie API. Sie ermöglichen es dir, benutzerdefinierte JSON Key-Value-Paare zu einem Rezept zu erstellen, um Drittanbieter-Anwendungen zu steuern. Du kannst diese dazu verwenden, um Automatisierungen auszulösen oder benutzerdefinierte Nachrichten an bestimmte Geräte zu senden.",
"message-key": "Nachrichten-Schlüssel",
"parse": "Parsen",
diff --git a/frontend/lang/messages/el-GR.json b/frontend/lang/messages/el-GR.json
index 5699c2ed4..1787ad2d1 100644
--- a/frontend/lang/messages/el-GR.json
+++ b/frontend/lang/messages/el-GR.json
@@ -538,7 +538,7 @@
"date-format-hint-yyyy-mm-dd": "Μορφή ΕΕΕΕ-ΜΜ-ΗΗ",
"add-to-list": "Προσθήκη σε λίστα",
"add-to-plan": "Προσθήκη σε πρόγραμμα γευμάτων",
- "add-to-timeline": "Προσθήκη στο χρονοδιάγραμμα",
+ "add-to-timeline": "Προσθήκη στο χρονολόγιο",
"recipe-added-to-list": "Η συνταγή προστέθηκε στη λίστα",
"recipes-added-to-list": "Οι συνταγές προστέθηκαν στη λίστα",
"successfully-added-to-list": "Επιτυχής προσθήκη στη λίστα",
@@ -570,15 +570,19 @@
"increase-scale-label": "Αύξηση κλίμακας κατά 1",
"locked": "Κλειδωμένο",
"public-link": "Δημόσιος σύνδεσμος",
- "edit-timeline-event": "Επεξεργασία συμβάντος χρονοδιαγράμματος",
- "timeline": "Χρονοδιάγραμμα",
- "timeline-is-empty": "Δεν υπάρχει τίποτα ακόμα στο χρονοδιάγραμμα. Δοκιμάστε να κάνετε αυτή τη συνταγή!",
+ "edit-timeline-event": "Επεξεργασία συμβάντος χρονολόγιου",
+ "timeline": "Χρονολόγιο",
+ "timeline-is-empty": "Δεν υπάρχει τίποτα ακόμα στο χρονολόγιο. Δοκιμάστε να κάνετε αυτή τη συνταγή!",
"timeline-no-events-found-try-adjusting-filters": "Δεν βρέθηκαν συμβαντα. Δοκιμάστε να προσαρμόσετε τα φίλτρα αναζήτησης.",
- "group-global-timeline": "Συνολικό χρονοδιάγραμμα {groupName}",
- "open-timeline": "Ανοιγμα χρονοδιαγράμματος",
+ "group-global-timeline": "Συνολικό χρονολόγιο {groupName}",
+ "open-timeline": "Ανοιγμα χρονολόγιου",
"made-this": "Το έφτιαξα",
"how-did-it-turn-out": "Ποιό ήταν το αποτέλεσμα;",
"user-made-this": "Ο/η {user} το έφτιαξε αυτό",
+ "added-to-timeline": "Προστέθηκε στο χρονολόγιο",
+ "failed-to-add-to-timeline": "Αποτυχία προσθήκης στο χρονολόγιο",
+ "failed-to-update-recipe": "Αποτυχία ενημέρωσης συνταγής",
+ "added-to-timeline-but-failed-to-add-image": "Προστέθηκε στο χρονολόγιο, αλλά απέτυχε η προσθήκη εικόνας",
"api-extras-description": "Τα extras συνταγών αποτελούν βασικό χαρακτηριστικό του Mealie API. Σας επιτρέπουν να δημιουργήσετε προσαρμοσμένα ζεύγη κλειδιού/τιμής JSON μέσα σε μια συνταγή, να παραπέμψετε σε εφαρμογές τρίτων. Μπορείτε να χρησιμοποιήσετε αυτά τα κλειδιά για την παροχή πληροφοριών, για παράδειγμα πυροδότηση αυτοματισμών ή μετάδοση προσαρμοσμένων μηνυμάτων στη συσκευή που επιθυμείτε.",
"message-key": "Κλειδί Μηνύματος",
"parse": "Ανάλυση",
diff --git a/frontend/lang/messages/en-GB.json b/frontend/lang/messages/en-GB.json
index b3de24788..1f6122f5b 100644
--- a/frontend/lang/messages/en-GB.json
+++ b/frontend/lang/messages/en-GB.json
@@ -579,6 +579,10 @@
"made-this": "I Made This",
"how-did-it-turn-out": "How did it turn out?",
"user-made-this": "{user} made this",
+ "added-to-timeline": "Added to timeline",
+ "failed-to-add-to-timeline": "Failed to add to timeline",
+ "failed-to-update-recipe": "Failed to update recipe",
+ "added-to-timeline-but-failed-to-add-image": "Added to timeline, but failed to add image",
"api-extras-description": "Recipes extras are a key feature of the Mealie API. They allow you to create custom JSON key/value pairs within a recipe, to reference from 3rd party applications. You can use these keys to provide information, for example to trigger automations or custom messages to relay to your desired device.",
"message-key": "Message Key",
"parse": "Parse",
diff --git a/frontend/lang/messages/en-US.json b/frontend/lang/messages/en-US.json
index 594498269..59437e6d4 100644
--- a/frontend/lang/messages/en-US.json
+++ b/frontend/lang/messages/en-US.json
@@ -579,6 +579,10 @@
"made-this": "I Made This",
"how-did-it-turn-out": "How did it turn out?",
"user-made-this": "{user} made this",
+ "added-to-timeline": "Added to timeline",
+ "failed-to-add-to-timeline": "Failed to add to timeline",
+ "failed-to-update-recipe": "Failed to update recipe",
+ "added-to-timeline-but-failed-to-add-image": "Added to timeline, but failed to add image",
"api-extras-description": "Recipes extras are a key feature of the Mealie API. They allow you to create custom JSON key/value pairs within a recipe, to reference from 3rd party applications. You can use these keys to provide information, for example to trigger automations or custom messages to relay to your desired device.",
"message-key": "Message Key",
"parse": "Parse",
diff --git a/frontend/lang/messages/es-ES.json b/frontend/lang/messages/es-ES.json
index 1365e91a7..e6a8a03ec 100644
--- a/frontend/lang/messages/es-ES.json
+++ b/frontend/lang/messages/es-ES.json
@@ -579,6 +579,10 @@
"made-this": "Lo hice",
"how-did-it-turn-out": "¿Cómo resultó esto?",
"user-made-this": "{user} hizo esto",
+ "added-to-timeline": "Added to timeline",
+ "failed-to-add-to-timeline": "Failed to add to timeline",
+ "failed-to-update-recipe": "Failed to update recipe",
+ "added-to-timeline-but-failed-to-add-image": "Added to timeline, but failed to add image",
"api-extras-description": "Los extras de las recetas son una característica clave de la API de Mealie. Permiten crear pares json clave/valor personalizados dentro de una receta para acceder desde aplicaciones de terceros. Puede utilizar estas claves para almacenar información, para activar la automatización o mensajes personalizados para transmitir al dispositivo deseado.",
"message-key": "Clave de mensaje",
"parse": "Analizar",
diff --git a/frontend/lang/messages/et-EE.json b/frontend/lang/messages/et-EE.json
index f46abefb0..f311f6ab3 100644
--- a/frontend/lang/messages/et-EE.json
+++ b/frontend/lang/messages/et-EE.json
@@ -579,6 +579,10 @@
"made-this": "Olen seda valmistanud",
"how-did-it-turn-out": "Kuidas tuli see välja?",
"user-made-this": "{user} on seda valmistanud",
+ "added-to-timeline": "Added to timeline",
+ "failed-to-add-to-timeline": "Failed to add to timeline",
+ "failed-to-update-recipe": "Failed to update recipe",
+ "added-to-timeline-but-failed-to-add-image": "Added to timeline, but failed to add image",
"api-extras-description": "Retsepti väljavõtted on Meali API oluline funktsioon. Neid saab kasutada kohandatud JSON-võtme/väärtuse paaride loomiseks retseptis, et viidata kolmandate osapoolte rakendustele. Neid klahve saab kasutada teabe edastamiseks, näiteks automaatse toimingu või kohandatud sõnumi käivitamiseks teie valitud seadmele.",
"message-key": "Sõnumi võti",
"parse": "Analüüsi",
diff --git a/frontend/lang/messages/fi-FI.json b/frontend/lang/messages/fi-FI.json
index dfd16d51c..ae1c999b4 100644
--- a/frontend/lang/messages/fi-FI.json
+++ b/frontend/lang/messages/fi-FI.json
@@ -579,6 +579,10 @@
"made-this": "Tein tämän",
"how-did-it-turn-out": "Miten se onnistui?",
"user-made-this": "{user} teki tämän",
+ "added-to-timeline": "Added to timeline",
+ "failed-to-add-to-timeline": "Failed to add to timeline",
+ "failed-to-update-recipe": "Failed to update recipe",
+ "added-to-timeline-but-failed-to-add-image": "Added to timeline, but failed to add image",
"api-extras-description": "Reseptiekstrat ovat Mealien API:n tärkeä ominaisuus. Niiden avulla voidaan luoda mukautettuja JSON-avain/arvo-pareja reseptin sisällä viitaten kolmannen osapuolen sovelluksiin. Näitä avaimia voi käyttää tiedon antamiseksi, esimerkiksi automaattisen toiminnon tai mukautetun viestin käynnistämiseksi haluamaasi laitteeseen.",
"message-key": "Viestiavain",
"parse": "Jäsennä",
diff --git a/frontend/lang/messages/fr-BE.json b/frontend/lang/messages/fr-BE.json
index e01d17e09..a1a070e20 100644
--- a/frontend/lang/messages/fr-BE.json
+++ b/frontend/lang/messages/fr-BE.json
@@ -579,6 +579,10 @@
"made-this": "Je l’ai cuisiné",
"how-did-it-turn-out": "C’était bon ?",
"user-made-this": "{user} l’a cuisiné",
+ "added-to-timeline": "Ajouté à l’historique",
+ "failed-to-add-to-timeline": "Ajout dans l’historique en échec",
+ "failed-to-update-recipe": "Impossible de mettre à jour la recette",
+ "added-to-timeline-but-failed-to-add-image": "Ajouté à l’historique, mais impossible d’ajouter l’image",
"api-extras-description": "Les suppléments des recettes sont une fonctionnalité clé de l’API Mealie. Ils permettent de créer des paires JSON clé/valeur personnalisées dans une recette, qui peuvent être référencées depuis des applications tierces. Ces clés peuvent être utilisées par exemple pour déclencher des tâches automatisées ou des messages personnalisés à transmettre à l’appareil souhaité.",
"message-key": "Clé de message",
"parse": "Analyser",
@@ -599,10 +603,10 @@
"create-recipe-from-an-image": "Créer une recette à partir d’une image",
"create-recipe-from-an-image-description": "Créez une recette en téléchargeant une image de celle-ci. Mealie utilisera l’IA pour tenter d’extraire le texte et de créer une recette.",
"crop-and-rotate-the-image": "Rogner et pivoter l’image pour que seul le texte soit visible, et qu’il soit dans la bonne orientation.",
- "create-from-images": "Create from Images",
+ "create-from-images": "Créer à partir d’images",
"should-translate-description": "Traduire la recette dans ma langue",
"please-wait-image-procesing": "Veuillez patienter, l’image est en cours de traitement. Cela peut prendre du temps.",
- "please-wait-images-processing": "Please wait, the images are processing. This may take some time.",
+ "please-wait-images-processing": "Veuillez patienter, les images sont en cours de traitement. Cela peut prendre un certain temps.",
"bulk-url-import": "Importation en masse d'URL",
"debug-scraper": "Déboguer le récupérateur",
"create-a-recipe-by-providing-the-name-all-recipes-must-have-unique-names": "Créer une recette en fournissant le nom. Toutes les recettes doivent avoir des noms uniques.",
@@ -662,9 +666,9 @@
},
"reset-servings-count": "Réinitialiser le nombre de portions",
"not-linked-ingredients": "Ingrédients supplémentaires",
- "upload-another-image": "Upload another image",
- "upload-images": "Upload images",
- "upload-more-images": "Upload more images"
+ "upload-another-image": "Télécharger une autre image",
+ "upload-images": "Télécharger des images",
+ "upload-more-images": "Télécharger d'autres images"
},
"recipe-finder": {
"recipe-finder": "Recherche de recette",
diff --git a/frontend/lang/messages/fr-CA.json b/frontend/lang/messages/fr-CA.json
index 9dbc2774c..7d9c9d732 100644
--- a/frontend/lang/messages/fr-CA.json
+++ b/frontend/lang/messages/fr-CA.json
@@ -579,6 +579,10 @@
"made-this": "Je l’ai cuisiné",
"how-did-it-turn-out": "C’était bon ?",
"user-made-this": "{user} l’a cuisiné",
+ "added-to-timeline": "Ajouté à l’historique",
+ "failed-to-add-to-timeline": "Ajout dans l’historique en échec",
+ "failed-to-update-recipe": "Impossible de mettre à jour la recette",
+ "added-to-timeline-but-failed-to-add-image": "Ajouté à l’historique, mais impossible d’ajouter l’image",
"api-extras-description": "Les suppléments des recettes sont une fonctionnalité clé de l’API Mealie. Ils permettent de créer des paires JSON clé/valeur personnalisées dans une recette, qui peuvent être référencées depuis des applications tierces. Ces clés peuvent être utilisées par exemple pour déclencher des tâches automatisées ou des messages personnalisés à transmettre à l’appareil souhaité.",
"message-key": "Clé de message",
"parse": "Analyser",
@@ -599,10 +603,10 @@
"create-recipe-from-an-image": "Créer une recette à partir d’une image",
"create-recipe-from-an-image-description": "Créez une recette en téléversant une image de celle-ci. Mealie utilisera l’IA pour tenter d’extraire le texte et de créer une recette.",
"crop-and-rotate-the-image": "Rogner et pivoter l’image pour que seul le texte soit visible et qu’il soit dans la bonne orientation.",
- "create-from-images": "Create from Images",
+ "create-from-images": "Créer à partir d’images",
"should-translate-description": "Traduire la recette dans ma langue",
"please-wait-image-procesing": "Veuillez patienter, l'image est en cours de traitement. Cela peut prendre un certain temps.",
- "please-wait-images-processing": "Please wait, the images are processing. This may take some time.",
+ "please-wait-images-processing": "Veuillez patienter, les images sont en cours de traitement. Cela peut prendre un certain temps.",
"bulk-url-import": "Importation en masse d'URL",
"debug-scraper": "Déboguer le récupérateur",
"create-a-recipe-by-providing-the-name-all-recipes-must-have-unique-names": "Créer une recette en fournissant le nom. Toutes les recettes doivent avoir des noms uniques.",
@@ -662,9 +666,9 @@
},
"reset-servings-count": "Réinitialiser le nombre de portions",
"not-linked-ingredients": "Ingrédients supplémentaires",
- "upload-another-image": "Upload another image",
- "upload-images": "Upload images",
- "upload-more-images": "Upload more images"
+ "upload-another-image": "Télécharger une autre image",
+ "upload-images": "Télécharger des images",
+ "upload-more-images": "Télécharger d'autres images"
},
"recipe-finder": {
"recipe-finder": "Recherche de recette",
diff --git a/frontend/lang/messages/fr-FR.json b/frontend/lang/messages/fr-FR.json
index d205e0ef9..622f6e70c 100644
--- a/frontend/lang/messages/fr-FR.json
+++ b/frontend/lang/messages/fr-FR.json
@@ -19,7 +19,7 @@
"log-lines": "Lignes de log",
"not-demo": "Non",
"portfolio": "Portfolio",
- "production": "Réalisation",
+ "production": "Production",
"support": "Soutenir",
"version": "Version",
"unknown-version": "inconnu",
@@ -579,6 +579,10 @@
"made-this": "Je l’ai cuisiné",
"how-did-it-turn-out": "C’était bon ?",
"user-made-this": "{user} l’a cuisiné",
+ "added-to-timeline": "Ajouté à l’historique",
+ "failed-to-add-to-timeline": "Ajout dans l’historique en échec",
+ "failed-to-update-recipe": "Impossible de mettre à jour la recette",
+ "added-to-timeline-but-failed-to-add-image": "Ajouté à l’historique, mais impossible d’ajouter l’image",
"api-extras-description": "Les suppléments des recettes sont une fonctionnalité clé de l’API Mealie. Ils permettent de créer des paires JSON clé/valeur personnalisées dans une recette, qui peuvent être référencées depuis des applications tierces. Ces clés peuvent être utilisées par exemple pour déclencher des tâches automatisées ou des messages personnalisés à transmettre à l’appareil souhaité.",
"message-key": "Clé de message",
"parse": "Analyser",
diff --git a/frontend/lang/messages/gl-ES.json b/frontend/lang/messages/gl-ES.json
index 4f6c7ac54..97c5d880c 100644
--- a/frontend/lang/messages/gl-ES.json
+++ b/frontend/lang/messages/gl-ES.json
@@ -579,6 +579,10 @@
"made-this": "Eu fixen isto",
"how-did-it-turn-out": "Que tal ficou?",
"user-made-this": "{user} fixo isto",
+ "added-to-timeline": "Added to timeline",
+ "failed-to-add-to-timeline": "Failed to add to timeline",
+ "failed-to-update-recipe": "Failed to update recipe",
+ "added-to-timeline-but-failed-to-add-image": "Added to timeline, but failed to add image",
"api-extras-description": "Os extras de receitas son unha característica clave da API de Mealie. Permítenche crear pares de clave/valor JSON personalizados dentro dunha receita, para facer referencia desde aplicacións de terceiros. Podes usar estas teclas para proporcionar información, por exemplo, para activar automatizacións ou mensaxes personalizadas para transmitir ao dispositivo que desexes.",
"message-key": "Chave de Mensaxen",
"parse": "Interpretar",
diff --git a/frontend/lang/messages/he-IL.json b/frontend/lang/messages/he-IL.json
index 39aad5ec9..87eacec0c 100644
--- a/frontend/lang/messages/he-IL.json
+++ b/frontend/lang/messages/he-IL.json
@@ -579,6 +579,10 @@
"made-this": "הכנתי את זה",
"how-did-it-turn-out": "איך יצא?",
"user-made-this": "{user} הכין את זה",
+ "added-to-timeline": "Added to timeline",
+ "failed-to-add-to-timeline": "Failed to add to timeline",
+ "failed-to-update-recipe": "Failed to update recipe",
+ "added-to-timeline-but-failed-to-add-image": "Added to timeline, but failed to add image",
"api-extras-description": "מתכונים נוספים הם יכולת מפתח של Mealie API. הם מאפשרים ליצור צמדי key/value בצורת JSON על מנת לקרוא אותם בתוכנת צד שלישית. תוכלו להשתמש בצמדים האלה כדי לספק מידע, לדוגמא להפעיל אוטומציות או הודעות מותאמות אישית למכשירים מסויימים.",
"message-key": "מפתח הודעה",
"parse": "ניתוח",
diff --git a/frontend/lang/messages/hr-HR.json b/frontend/lang/messages/hr-HR.json
index 6e40d05db..a8b21f3fd 100644
--- a/frontend/lang/messages/hr-HR.json
+++ b/frontend/lang/messages/hr-HR.json
@@ -579,6 +579,10 @@
"made-this": "Napravio/la sam ovo",
"how-did-it-turn-out": "Kako je ispalo?",
"user-made-this": "{user} je napravio/la ovo",
+ "added-to-timeline": "Added to timeline",
+ "failed-to-add-to-timeline": "Failed to add to timeline",
+ "failed-to-update-recipe": "Failed to update recipe",
+ "added-to-timeline-but-failed-to-add-image": "Added to timeline, but failed to add image",
"api-extras-description": "Recipes extras are a key feature of the Mealie API. They allow you to create custom JSON key/value pairs within a recipe, to reference from 3rd party applications. You can use these keys to provide information, for example to trigger automations or custom messages to relay to your desired device.",
"message-key": "Ključ poruke",
"parse": "Razluči (parsiraj)",
diff --git a/frontend/lang/messages/hu-HU.json b/frontend/lang/messages/hu-HU.json
index 10e7e7b59..b9c22814c 100644
--- a/frontend/lang/messages/hu-HU.json
+++ b/frontend/lang/messages/hu-HU.json
@@ -579,6 +579,10 @@
"made-this": "Elkészítettem ezt",
"how-did-it-turn-out": "Hogyan sikerült?",
"user-made-this": "ezt {user} készítette el",
+ "added-to-timeline": "Idővonalhoz hozzáadva",
+ "failed-to-add-to-timeline": "Failed to add to timeline",
+ "failed-to-update-recipe": "Nem sikerült frissíteni a receptet",
+ "added-to-timeline-but-failed-to-add-image": "Idővonalhoz hozzáadva, azonban a kép hozzáadása sikertelen",
"api-extras-description": "A receptek extrái a Mealie API egyik legfontosabb szolgáltatása. Lehetővé teszik, hogy egyéni JSON kulcs/érték párokat hozzon létre egy receptben, amelyekre harmadik féltől származó alkalmazásokból hivatkozhat. Ezeket a kulcsokat információszolgáltatásra használhatja, például automatizmusok vagy egyéni üzenetek indítására, amelyeket a kívánt eszközre küldhet.",
"message-key": "Üzenetkulcs",
"parse": "Előkészítés",
diff --git a/frontend/lang/messages/is-IS.json b/frontend/lang/messages/is-IS.json
index ee0f79b44..3beaecce0 100644
--- a/frontend/lang/messages/is-IS.json
+++ b/frontend/lang/messages/is-IS.json
@@ -579,6 +579,10 @@
"made-this": "I Made This",
"how-did-it-turn-out": "How did it turn out?",
"user-made-this": "{user} made this",
+ "added-to-timeline": "Added to timeline",
+ "failed-to-add-to-timeline": "Failed to add to timeline",
+ "failed-to-update-recipe": "Failed to update recipe",
+ "added-to-timeline-but-failed-to-add-image": "Added to timeline, but failed to add image",
"api-extras-description": "Recipes extras are a key feature of the Mealie API. They allow you to create custom JSON key/value pairs within a recipe, to reference from 3rd party applications. You can use these keys to provide information, for example to trigger automations or custom messages to relay to your desired device.",
"message-key": "Message Key",
"parse": "Parse",
diff --git a/frontend/lang/messages/it-IT.json b/frontend/lang/messages/it-IT.json
index 6add3989d..56d665237 100644
--- a/frontend/lang/messages/it-IT.json
+++ b/frontend/lang/messages/it-IT.json
@@ -579,6 +579,10 @@
"made-this": "L'Ho Preparato",
"how-did-it-turn-out": "Come è venuto?",
"user-made-this": "{user} l'ha preparato",
+ "added-to-timeline": "Added to timeline",
+ "failed-to-add-to-timeline": "Failed to add to timeline",
+ "failed-to-update-recipe": "Failed to update recipe",
+ "added-to-timeline-but-failed-to-add-image": "Added to timeline, but failed to add image",
"api-extras-description": "Le opzioni extra delle ricette sono una caratteristica fondamentale dell'API Mealie. Consentono di creare json personalizzati con coppie di chiavi/valore all'interno di una ricetta a cui fare riferimento tramite applicazioni terze. È possibile utilizzare queste chiavi per inserire informazioni, per esempio per attivare automazioni oppure per inoltrare messaggi personalizzati al dispositivo desiderato.",
"message-key": "Chiave Messaggio",
"parse": "Analizza",
diff --git a/frontend/lang/messages/ja-JP.json b/frontend/lang/messages/ja-JP.json
index 283a78718..fdcb9d971 100644
--- a/frontend/lang/messages/ja-JP.json
+++ b/frontend/lang/messages/ja-JP.json
@@ -579,6 +579,10 @@
"made-this": "これを作りました",
"how-did-it-turn-out": "どうなりましたか?",
"user-made-this": "{user} がこれを作りました",
+ "added-to-timeline": "Added to timeline",
+ "failed-to-add-to-timeline": "Failed to add to timeline",
+ "failed-to-update-recipe": "Failed to update recipe",
+ "added-to-timeline-but-failed-to-add-image": "Added to timeline, but failed to add image",
"api-extras-description": "レシピの追加機能はMealie APIの主な機能です。 サードパーティアプリから参照するために、レシピ内にカスタムJSONキー/値のペアを作成することができます。 これらのキーを使用して情報を提供することができます。例えば、自動化をトリガーしたり、カスタムメッセージをお使いのデバイスにリレーするなどです。",
"message-key": "メッセージキー",
"parse": "解析",
diff --git a/frontend/lang/messages/ko-KR.json b/frontend/lang/messages/ko-KR.json
index 65d1668b6..d45e57d36 100644
--- a/frontend/lang/messages/ko-KR.json
+++ b/frontend/lang/messages/ko-KR.json
@@ -579,6 +579,10 @@
"made-this": "I Made This",
"how-did-it-turn-out": "How did it turn out?",
"user-made-this": "{user} made this",
+ "added-to-timeline": "Added to timeline",
+ "failed-to-add-to-timeline": "Failed to add to timeline",
+ "failed-to-update-recipe": "Failed to update recipe",
+ "added-to-timeline-but-failed-to-add-image": "Added to timeline, but failed to add image",
"api-extras-description": "Recipes extras are a key feature of the Mealie API. They allow you to create custom JSON key/value pairs within a recipe, to reference from 3rd party applications. You can use these keys to provide information, for example to trigger automations or custom messages to relay to your desired device.",
"message-key": "Message Key",
"parse": "Parse",
diff --git a/frontend/lang/messages/lt-LT.json b/frontend/lang/messages/lt-LT.json
index 299bdbbf0..3b318f4c6 100644
--- a/frontend/lang/messages/lt-LT.json
+++ b/frontend/lang/messages/lt-LT.json
@@ -579,6 +579,10 @@
"made-this": "Aš tai gaminau",
"how-did-it-turn-out": "Kaip tai pavyko?",
"user-made-this": "{user} gamino šį patiekalą",
+ "added-to-timeline": "Added to timeline",
+ "failed-to-add-to-timeline": "Failed to add to timeline",
+ "failed-to-update-recipe": "Failed to update recipe",
+ "added-to-timeline-but-failed-to-add-image": "Added to timeline, but failed to add image",
"api-extras-description": "Recipes extras are a key feature of the Mealie API. They allow you to create custom JSON key/value pairs within a recipe, to reference from 3rd party applications. You can use these keys to provide information, for example to trigger automations or custom messages to relay to your desired device.",
"message-key": "Žinutės raktas",
"parse": "Nuskaityti",
diff --git a/frontend/lang/messages/lv-LV.json b/frontend/lang/messages/lv-LV.json
index 9616ca23c..3b29841ea 100644
--- a/frontend/lang/messages/lv-LV.json
+++ b/frontend/lang/messages/lv-LV.json
@@ -579,6 +579,10 @@
"made-this": "Es to pagatavoju",
"how-did-it-turn-out": "Kā tas izrādījās?",
"user-made-this": "{user}izdarīja šo",
+ "added-to-timeline": "Added to timeline",
+ "failed-to-add-to-timeline": "Failed to add to timeline",
+ "failed-to-update-recipe": "Failed to update recipe",
+ "added-to-timeline-but-failed-to-add-image": "Added to timeline, but failed to add image",
"api-extras-description": "Recepšu ekstras ir galvenā Mealie API iezīme. Tie ļauj jums izveidot pielāgotus JSON atslēgu/vērtību pārus receptē, lai atsaucotos no trešo pušu lietojumprogrammām. Varat izmantot šos taustiņus, lai sniegtu informāciju, piemēram, aktivizētu automatizāciju vai pielāgotus ziņojumus, lai tos pārsūtītu uz vēlamo ierīci.",
"message-key": "Ziņojuma atslēga",
"parse": "Parsēšana",
diff --git a/frontend/lang/messages/nl-NL.json b/frontend/lang/messages/nl-NL.json
index 2671ba18c..5ebcecd0d 100644
--- a/frontend/lang/messages/nl-NL.json
+++ b/frontend/lang/messages/nl-NL.json
@@ -579,6 +579,10 @@
"made-this": "Ik heb dit gemaakt",
"how-did-it-turn-out": "Hoe was je gerecht?",
"user-made-this": "{user} heeft dit gemaakt",
+ "added-to-timeline": "Added to timeline",
+ "failed-to-add-to-timeline": "Failed to add to timeline",
+ "failed-to-update-recipe": "Failed to update recipe",
+ "added-to-timeline-but-failed-to-add-image": "Added to timeline, but failed to add image",
"api-extras-description": "Extra's bij recepten zijn een belangrijke functie van de Mealie API. Hiermee kun je aangepaste JSON key/value paren maken bij een recept om naar te verwijzen vanuit applicaties van derden. Je kunt deze sleutels gebruiken om extra informatie te bieden, bijvoorbeeld om automatisering aan te sturen of aangepaste berichten naar je gewenste apparaat te laten versturen.",
"message-key": "Berichtsleutel",
"parse": "Ontleed",
diff --git a/frontend/lang/messages/no-NO.json b/frontend/lang/messages/no-NO.json
index 4c16818cc..ce6d94b6e 100644
--- a/frontend/lang/messages/no-NO.json
+++ b/frontend/lang/messages/no-NO.json
@@ -579,6 +579,10 @@
"made-this": "Jeg har laget dette",
"how-did-it-turn-out": "Hvordan ble det?",
"user-made-this": "{user} har laget dette",
+ "added-to-timeline": "Added to timeline",
+ "failed-to-add-to-timeline": "Failed to add to timeline",
+ "failed-to-update-recipe": "Failed to update recipe",
+ "added-to-timeline-but-failed-to-add-image": "Added to timeline, but failed to add image",
"api-extras-description": "Ekstramaterialer til oppskrifter er en viktig funksjon i Mealie API-en. De lar deg opprette egendefinerte JSON-nøkkel/verdi-par innenfor en oppskrift for å referere fra tredjepartsapplikasjoner. Du kan bruke disse nøklene til å gi informasjon for eksempel for å utløse automatiseringer eller egendefinerte meldinger som skal videreformidles til ønsket enhet.",
"message-key": "Meldingsnøkkel",
"parse": "Analyser",
diff --git a/frontend/lang/messages/pl-PL.json b/frontend/lang/messages/pl-PL.json
index a467f6ed5..35b7559d2 100644
--- a/frontend/lang/messages/pl-PL.json
+++ b/frontend/lang/messages/pl-PL.json
@@ -579,6 +579,10 @@
"made-this": "Ugotowałem to",
"how-did-it-turn-out": "Jak się to udało?",
"user-made-this": "{user} ugotował(a) to",
+ "added-to-timeline": "Added to timeline",
+ "failed-to-add-to-timeline": "Failed to add to timeline",
+ "failed-to-update-recipe": "Failed to update recipe",
+ "added-to-timeline-but-failed-to-add-image": "Added to timeline, but failed to add image",
"api-extras-description": "Dodatki w przepisach są kluczową cechą API Mealie. Pozwalają na tworzenie niestandardowych par kluczy/wartości JSON w przepisie do odwoływania się przez zewnętrzne aplikacje. Możesz użyć tych kluczy do wyzwalania automatyzacji lub przekazywania niestandardowych wiadomości do twoich wybranych urządzeń.",
"message-key": "Klucz Wiadomości",
"parse": "Analizuj",
@@ -599,7 +603,7 @@
"create-recipe-from-an-image": "Utwórz przepis z obrazu",
"create-recipe-from-an-image-description": "Utwórz przepis poprzez przesłanie obrazka. Mealie spróbuje wyodrębnić tekst z obrazu za pomocą AI i utworzyć z niego przepis.",
"crop-and-rotate-the-image": "Przytnij i obróć obraz, tak aby był w odpowiedniej orientacji i był widoczny tylko tekst.",
- "create-from-images": "Create from Images",
+ "create-from-images": "Utwórz przepis z obrazów",
"should-translate-description": "Przetłumacz przepis na mój język",
"please-wait-image-procesing": "Proszę czekać, obraz jest przetwarzany. To może chwilę potrwać.",
"please-wait-images-processing": "Please wait, the images are processing. This may take some time.",
diff --git a/frontend/lang/messages/pt-BR.json b/frontend/lang/messages/pt-BR.json
index e99f91298..90fcf7ab3 100644
--- a/frontend/lang/messages/pt-BR.json
+++ b/frontend/lang/messages/pt-BR.json
@@ -579,6 +579,10 @@
"made-this": "Eu Fiz Isso",
"how-did-it-turn-out": "Como que ficou?",
"user-made-this": "{user} fez isso",
+ "added-to-timeline": "Added to timeline",
+ "failed-to-add-to-timeline": "Failed to add to timeline",
+ "failed-to-update-recipe": "Failed to update recipe",
+ "added-to-timeline-but-failed-to-add-image": "Added to timeline, but failed to add image",
"api-extras-description": "Extras de receitas são atributos-chave da API do Mealie. Assim, você pode criar pares chave/valor JSON personalizados dentro de uma receita, referenciando aplicações de terceiros. Você pode usar as chaves para fornecer informações, como por ex. ativar automações ou mensagens que serão enviadas a seus dispositivos.",
"message-key": "Chave de mensagem",
"parse": "Analisar",
diff --git a/frontend/lang/messages/pt-PT.json b/frontend/lang/messages/pt-PT.json
index 9a990cbc3..80aca7547 100644
--- a/frontend/lang/messages/pt-PT.json
+++ b/frontend/lang/messages/pt-PT.json
@@ -579,6 +579,10 @@
"made-this": "Eu fiz isto",
"how-did-it-turn-out": "Que tal ficou?",
"user-made-this": "{user} fez isto",
+ "added-to-timeline": "Added to timeline",
+ "failed-to-add-to-timeline": "Failed to add to timeline",
+ "failed-to-update-recipe": "Failed to update recipe",
+ "added-to-timeline-but-failed-to-add-image": "Added to timeline, but failed to add image",
"api-extras-description": "Extras para receitas são funcionalidades chave da API Mealie. Estas permitem criar, dentro de uma receita, pares personalizados de chave/valor em JSON, para referência a partir de aplicações de terceiros. Pode usar essas chaves para fornecer informações, por exemplo, para acionar automações ou mensagens personalizadas para transmitir a um determinado dispositivo.",
"message-key": "Chave de Mensagem",
"parse": "Interpretar",
diff --git a/frontend/lang/messages/ro-RO.json b/frontend/lang/messages/ro-RO.json
index e32b1965c..6348c38f0 100644
--- a/frontend/lang/messages/ro-RO.json
+++ b/frontend/lang/messages/ro-RO.json
@@ -579,6 +579,10 @@
"made-this": "Am făcut asta",
"how-did-it-turn-out": "Cum a ieșit?",
"user-made-this": "{user} a făcut asta",
+ "added-to-timeline": "Added to timeline",
+ "failed-to-add-to-timeline": "Failed to add to timeline",
+ "failed-to-update-recipe": "Failed to update recipe",
+ "added-to-timeline-but-failed-to-add-image": "Added to timeline, but failed to add image",
"api-extras-description": "Recipes extras sunt o caracteristică cheie a API-ului Mealie. Îți permit să creezi perechi personalizate de cheie/valoare JSON într-o rețetă, ca să faci referire la aplicații terțe. Puteți utiliza aceste chei pentru a furniza informații, de exemplu pentru a declanșa automatizări sau mesaje personalizate pentru a transmite dispozitivul dorit.",
"message-key": "Cheie mesaj",
"parse": "Parsează",
diff --git a/frontend/lang/messages/ru-RU.json b/frontend/lang/messages/ru-RU.json
index efbd1e2c5..8796ec01c 100644
--- a/frontend/lang/messages/ru-RU.json
+++ b/frontend/lang/messages/ru-RU.json
@@ -579,6 +579,10 @@
"made-this": "Я приготовил это",
"how-did-it-turn-out": "Что получилось?",
"user-made-this": "{user} приготовил это",
+ "added-to-timeline": "Added to timeline",
+ "failed-to-add-to-timeline": "Failed to add to timeline",
+ "failed-to-update-recipe": "Failed to update recipe",
+ "added-to-timeline-but-failed-to-add-image": "Added to timeline, but failed to add image",
"api-extras-description": "Дополнения к рецептам являются ключевым элементом Mealie API. Они позволяют создавать пользовательские пары json ключ/значение в рецепте для ссылания на другие приложения. Вы можете использовать эти ключи, чтобы сохранить нужную информацию, например, для автоматизаций или уведомлений на ваши устройства.",
"message-key": "Ключ сообщения",
"parse": "Обработать",
diff --git a/frontend/lang/messages/sk-SK.json b/frontend/lang/messages/sk-SK.json
index 1b493bcf9..9f6912ec9 100644
--- a/frontend/lang/messages/sk-SK.json
+++ b/frontend/lang/messages/sk-SK.json
@@ -579,6 +579,10 @@
"made-this": "Toto som uvaril",
"how-did-it-turn-out": "Ako to dopadlo?",
"user-made-this": "{user} toto uvaril/-a",
+ "added-to-timeline": "Added to timeline",
+ "failed-to-add-to-timeline": "Failed to add to timeline",
+ "failed-to-update-recipe": "Failed to update recipe",
+ "added-to-timeline-but-failed-to-add-image": "Added to timeline, but failed to add image",
"api-extras-description": "API dolnky receptov sú kľúčovou funkcionalitou Mealie API. Umožňujú používateľom vytvárať vlastné JSON páry kľúč/hodnota v rámci receptu, a využiť v aplikáciách tretích strán. Údaje uložené pod jednotlivými kľúčmi je možné využiť napríklad ako spúšťač automatizovaných procesov, či pri zasielaní vlastných správ do vami zvolených zariadení.",
"message-key": "Kľúč správy",
"parse": "Analyzovať",
diff --git a/frontend/lang/messages/sl-SI.json b/frontend/lang/messages/sl-SI.json
index 29dd43824..880a8c901 100644
--- a/frontend/lang/messages/sl-SI.json
+++ b/frontend/lang/messages/sl-SI.json
@@ -579,6 +579,10 @@
"made-this": "Naredil sem to",
"how-did-it-turn-out": "Kako se je izkazalo?",
"user-made-this": "{user} je tole pripravil/a",
+ "added-to-timeline": "Added to timeline",
+ "failed-to-add-to-timeline": "Failed to add to timeline",
+ "failed-to-update-recipe": "Failed to update recipe",
+ "added-to-timeline-but-failed-to-add-image": "Added to timeline, but failed to add image",
"api-extras-description": "Dodatni podatki za recepte so ključna funkcionalnost Mealie APIja. Omogočajo ustvarjanje lastnih JSON ključ / vrednost parov v okviru recepta, da lahko do njih dostopajo zunanje aplikacije. Te ključe lahko uporabiš za posredovanje informacij, na primer za sprožanje avtomatike ali sporočanje prilagojenih sporočil na poljubno napravo.",
"message-key": "Ključ sporočila",
"parse": "Razloči",
diff --git a/frontend/lang/messages/sr-SP.json b/frontend/lang/messages/sr-SP.json
index c9e70bfab..40f213cca 100644
--- a/frontend/lang/messages/sr-SP.json
+++ b/frontend/lang/messages/sr-SP.json
@@ -579,6 +579,10 @@
"made-this": "I Made This",
"how-did-it-turn-out": "How did it turn out?",
"user-made-this": "{user} made this",
+ "added-to-timeline": "Added to timeline",
+ "failed-to-add-to-timeline": "Failed to add to timeline",
+ "failed-to-update-recipe": "Failed to update recipe",
+ "added-to-timeline-but-failed-to-add-image": "Added to timeline, but failed to add image",
"api-extras-description": "Recipes extras are a key feature of the Mealie API. They allow you to create custom JSON key/value pairs within a recipe, to reference from 3rd party applications. You can use these keys to provide information, for example to trigger automations or custom messages to relay to your desired device.",
"message-key": "Message Key",
"parse": "Parse",
diff --git a/frontend/lang/messages/sv-SE.json b/frontend/lang/messages/sv-SE.json
index 5d0df0f3f..c2be4c9c6 100644
--- a/frontend/lang/messages/sv-SE.json
+++ b/frontend/lang/messages/sv-SE.json
@@ -579,6 +579,10 @@
"made-this": "Jag lagade den här",
"how-did-it-turn-out": "Hur blev rätten?",
"user-made-this": "{user} lagade detta",
+ "added-to-timeline": "Added to timeline",
+ "failed-to-add-to-timeline": "Failed to add to timeline",
+ "failed-to-update-recipe": "Failed to update recipe",
+ "added-to-timeline-but-failed-to-add-image": "Added to timeline, but failed to add image",
"api-extras-description": "Recept API-tillägg är en viktig funktion i Mealie's API. Med hjälp av dem kan du skapa anpassade JSON-nyckel/värdepar i ett recept, som du kan referera till från tredjepartsapplikationer. Du kan använda dessa nycklar för att tillhandahålla information, till exempel för att trigga automatiseringar eller anpassade meddelanden som ska vidarebefordras till önskad enhet.",
"message-key": "Meddelandenyckel",
"parse": "Läs in",
diff --git a/frontend/lang/messages/tr-TR.json b/frontend/lang/messages/tr-TR.json
index 4b9184c7e..096776f1c 100644
--- a/frontend/lang/messages/tr-TR.json
+++ b/frontend/lang/messages/tr-TR.json
@@ -579,6 +579,10 @@
"made-this": "Bunu ben yaptım",
"how-did-it-turn-out": "Nasıl oldu?",
"user-made-this": "{user} bunu yaptı",
+ "added-to-timeline": "Added to timeline",
+ "failed-to-add-to-timeline": "Failed to add to timeline",
+ "failed-to-update-recipe": "Failed to update recipe",
+ "added-to-timeline-but-failed-to-add-image": "Added to timeline, but failed to add image",
"api-extras-description": "Tarif ekstraları Mealie API'nin önemli bir özelliğidir. Üçüncü taraf uygulamalardan referans almak üzere bir tarif içinde özel JSON anahtar/değer çiftleri oluşturmanıza olanak tanır. Bu tuşları, örneğin otomasyonları tetiklemek veya istediğiniz cihaza iletilecek özel mesajları bilgi sağlamak için kullanabilirsiniz.",
"message-key": "İleti Anahtarı",
"parse": "Ayrıştırma",
@@ -724,7 +728,7 @@
"backup-restore": "Yedekleme Geri Yükleme",
"back-restore-description": "Bu yedeği geri yüklemek, veritabanınızdaki ve veri dizinindeki tüm mevcut verilerin üzerine yazacak ve bunları bu yedeğin içeriğiyle değiştirecektir. {cannot-be-undone} Geri yükleme başarılı olursa oturumunuz kapatılacaktır.",
"cannot-be-undone": "Bu işlem geri alınamaz - dikkatli kullanın.",
- "postgresql-note": "If you are using PostgreSQL, please review the {backup-restore-process} prior to restoring.",
+ "postgresql-note": "",
"backup-restore-process-in-the-documentation": "belgelerdeki yedekleme/geri yükleme işlemini",
"irreversible-acknowledgment": "Bu işlemin geri döndürülemez, yıkıcı ve veri kaybına neden olabileceğini anlıyorum",
"restore-backup": "Yedeği Geri Yükle"
diff --git a/frontend/lang/messages/uk-UA.json b/frontend/lang/messages/uk-UA.json
index 3f338639a..27c726c8e 100644
--- a/frontend/lang/messages/uk-UA.json
+++ b/frontend/lang/messages/uk-UA.json
@@ -579,6 +579,10 @@
"made-this": "Я це приготував",
"how-did-it-turn-out": "Як вийшло?",
"user-made-this": "{user} зробив це",
+ "added-to-timeline": "Added to timeline",
+ "failed-to-add-to-timeline": "Failed to add to timeline",
+ "failed-to-update-recipe": "Failed to update recipe",
+ "added-to-timeline-but-failed-to-add-image": "Added to timeline, but failed to add image",
"api-extras-description": "Додатки в рецептах - ключова функція API Mealie. Вони дозволяють створювати користувацьку пару JSON ключів та значень в рецепті для сторонніх додатків. Це можна використовувати для автоматизації або для створення користувацьких повідомлень для сторонніх сервісів.",
"message-key": "Ключ повідомлення",
"parse": "Проаналізувати",
diff --git a/frontend/lang/messages/vi-VN.json b/frontend/lang/messages/vi-VN.json
index 64adb8548..eb175d3c4 100644
--- a/frontend/lang/messages/vi-VN.json
+++ b/frontend/lang/messages/vi-VN.json
@@ -579,6 +579,10 @@
"made-this": "I Made This",
"how-did-it-turn-out": "How did it turn out?",
"user-made-this": "{user} made this",
+ "added-to-timeline": "Added to timeline",
+ "failed-to-add-to-timeline": "Failed to add to timeline",
+ "failed-to-update-recipe": "Failed to update recipe",
+ "added-to-timeline-but-failed-to-add-image": "Added to timeline, but failed to add image",
"api-extras-description": "Recipes extras are a key feature of the Mealie API. They allow you to create custom JSON key/value pairs within a recipe, to reference from 3rd party applications. You can use these keys to provide information, for example to trigger automations or custom messages to relay to your desired device.",
"message-key": "Message Key",
"parse": "Parse",
diff --git a/frontend/lang/messages/zh-CN.json b/frontend/lang/messages/zh-CN.json
index fae972b82..8ea1277c8 100644
--- a/frontend/lang/messages/zh-CN.json
+++ b/frontend/lang/messages/zh-CN.json
@@ -182,7 +182,7 @@
"date": "日期",
"id": "Id",
"owner": "所有者",
- "change-owner": "Change Owner",
+ "change-owner": "修改拥有者",
"date-added": "添加日期",
"none": "无",
"run": "运行",
@@ -214,10 +214,10 @@
"confirm-delete-generic-items": "你确定删除以下条目吗?",
"organizers": "管理器",
"caution": "注意!",
- "show-advanced": "Show Advanced",
- "add-field": "Add Field",
- "date-created": "Date Created",
- "date-updated": "Date Updated"
+ "show-advanced": "显示进阶设置",
+ "add-field": "添加项目",
+ "date-created": "创建日期",
+ "date-updated": "修改日期"
},
"group": {
"are-you-sure-you-want-to-delete-the-group": "您确定要删除{groupName}吗?",
@@ -246,14 +246,14 @@
"manage-members": "管理成员",
"manage-members-description": "管理你家庭中成员的权限。 {manage} 表示允许用户访问数据管理页面, {invite} 表示允许用户生成链接邀请其他用户。 群组所有者不能更改自己的权限。",
"manage": "管理",
- "manage-household": "Manage Household",
+ "manage-household": "管理家庭",
"invite": "邀请",
"looking-to-update-your-profile": "想要更新您的个人档案吗?",
"default-recipe-preferences-description": "当本组中新建食谱时会应用这些默认设置,你可以在具体某个食谱的设置中重新修改",
"default-recipe-preferences": "食谱默认偏好设置",
"group-preferences": "群组偏好设置",
"private-group": "私人群组",
- "private-group-description": "Setting your group to private will disable all public view options. This overrides any individual public view settings",
+ "private-group-description": "将群组设为私密会禁用所有公开查看选项,且此设置会覆盖任何个人的公开查看设置",
"enable-public-access": "启用公开访问",
"enable-public-access-description": "默认公开群组食谱,即访客用户无需登录便可查看食谱",
"allow-users-outside-of-your-group-to-see-your-recipes": "允许组外用户查看你的食谱",
@@ -267,7 +267,7 @@
"disable-users-from-commenting-on-recipes": "禁止用户评论食谱",
"disable-users-from-commenting-on-recipes-description": "隐藏食谱的评论区并禁止评论",
"disable-organizing-recipe-ingredients-by-units-and-food": "不使用预定义的食品种类和计量单位来编辑食材条目",
- "disable-organizing-recipe-ingredients-by-units-and-food-description": "Hides the Food, Unit, and Amount fields for ingredients and treats ingredients as plain text fields",
+ "disable-organizing-recipe-ingredients-by-units-and-food-description": "隐藏食材的“食物”“单位”和“数量”字段,将食材视为纯文本字段",
"general-preferences": "通用设置",
"group-recipe-preferences": "群组食谱偏好设置",
"report": "报告",
@@ -276,7 +276,7 @@
"admin-group-management": "管理员组管理",
"admin-group-management-text": "对本群组的更改将被立即应用。",
"group-id-value": "群组ID:{0}",
- "total-households": "Total Households",
+ "total-households": "总共家庭",
"you-must-select-a-group-before-selecting-a-household": "你必须先选择一个组才能选择一个家庭"
},
"household": {
@@ -296,9 +296,9 @@
"lock-recipe-edits-from-other-households": "禁止其他家庭编辑食谱",
"lock-recipe-edits-from-other-households-description": "启用时,只有家庭成员可以编辑由您家庭创建的食谱",
"household-recipe-preferences": "家庭食谱偏好设置",
- "default-recipe-preferences-description": "These are the default settings when a new recipe is created in your household. These can be changed for individual recipes in the recipe settings menu.",
- "allow-users-outside-of-your-household-to-see-your-recipes": "Allow users outside of your household to see your recipes",
- "allow-users-outside-of-your-household-to-see-your-recipes-description": "When enabled you can use a public share link to share specific recipes without authorizing the user. When disabled, you can only share recipes with users who are in your household or with a pre-generated private link",
+ "default-recipe-preferences-description": "这些是在您的家庭账户中创建新食谱时的默认设置,可在各食谱的设置菜单中单独修改。",
+ "allow-users-outside-of-your-household-to-see-your-recipes": "允许其他家庭用户查看你的收据",
+ "allow-users-outside-of-your-household-to-see-your-recipes-description": "启用后,您可以使用公开分享链接分享特定食谱,无需对用户进行授权。禁用后,您只能与家庭账户中的用户分享食谱,或通过预先生成的私密链接分享",
"household-preferences": "家庭偏好设置"
},
"meal-plan": {
@@ -321,14 +321,14 @@
"mealplan-settings": "饮食计划设置",
"mealplan-update-failed": "更新饮食计划失败",
"mealplan-updated": "已更新饮食计划",
- "mealplan-households-description": "If no household is selected, recipes can be added from any household",
- "any-category": "Any Category",
- "any-tag": "Any Tag",
- "any-household": "Any Household",
+ "mealplan-households-description": "若未选择家庭账户,可从任意家庭账户添加食谱",
+ "any-category": "所有分类",
+ "any-tag": "所有标签",
+ "any-household": "所有家庭",
"no-meal-plan-defined-yet": "还没有制定饮食计划",
"no-meal-planned-for-today": "今日没有饮食计划",
- "numberOfDays-hint": "Number of days on page load",
- "numberOfDays-label": "Default Days",
+ "numberOfDays-hint": "页面加载天数",
+ "numberOfDays-label": "默认天数",
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "只有属于这些分类的食谱才会被用于饮食计划",
"planner": "计划人",
"quick-week": "快速创建周食谱计划",
@@ -357,7 +357,7 @@
"for-type-meal-types": "作为 {0}",
"meal-plan-rules": "饮食计划规则",
"new-rule": "新建规则",
- "meal-plan-rules-description": "You can create rules for auto selecting recipes for your meal plans. These rules are used by the server to determine the random pool of recipes to select from when creating meal plans. Note that if rules have the same day/type constraints then the rule filters will be merged. In practice, it's unnecessary to create duplicate rules, but it's possible to do so.",
+ "meal-plan-rules-description": "您可以为膳食计划创建自动选择食谱的规则。服务器在生成膳食计划时,会根据这些规则确定可供随机选择的食谱范围。请注意,若规则具有相同的日期/类型限制,其筛选条件将被合并。实际上,无需创建重复规则,但系统允许此类操作。",
"new-rule-description": "当为饮食计划新建规则时,您可以限制此规则应用于一周的特定某天和/或特定的用餐类型。若将规则应用于所有时间或者所有用餐类型,您可以设定规则为“任意”,此字段值适用于任何时间或用餐类型。",
"recipe-rules": "食谱规则",
"applies-to-all-days": "应用到所有日期",
@@ -418,7 +418,7 @@
},
"recipekeeper": {
"title": "食谱保存者",
- "description-long": "Mealie can import recipes from Recipe Keeper. Export your recipes in zip format, then upload the .zip file below."
+ "description-long": "Mealie 可从 Recipe Keeper 导入食谱。请将您的食谱导出为 zip 格式,再上传下方的 .zip 文件。"
}
},
"new-recipe": {
@@ -526,7 +526,7 @@
"sugar-content": "糖",
"title": "标题",
"total-time": "总时间",
- "trans-fat-content": "Trans-fat",
+ "trans-fat-content": "反式脂肪",
"unable-to-delete-recipe": "无法删除食谱",
"unsaturated-fat-content": "不饱和脂肪",
"no-recipe": "没有食谱",
@@ -579,6 +579,10 @@
"made-this": "我做了这道菜",
"how-did-it-turn-out": "成品怎么样?",
"user-made-this": "{user}做了",
+ "added-to-timeline": "Added to timeline",
+ "failed-to-add-to-timeline": "Failed to add to timeline",
+ "failed-to-update-recipe": "Failed to update recipe",
+ "added-to-timeline-but-failed-to-add-image": "Added to timeline, but failed to add image",
"api-extras-description": "食谱扩展是Mealie API的关键功能之一。它允许你在食谱中添加自定义JSON键值对,以供第三方程序使用。你可以利用这些键提供信息,实现更多功能,例如触发自动化,或转发自定义信息到指定的设备上。",
"message-key": "键名",
"parse": "自动解析",
@@ -598,7 +602,7 @@
"import-with-zip": "使用 .zip 导入",
"create-recipe-from-an-image": "Create Recipe from an Image",
"create-recipe-from-an-image-description": "Create a recipe by uploading an image of it. Mealie will attempt to extract the text from the image using AI and create a recipe from it.",
- "crop-and-rotate-the-image": "Crop and rotate the image so that only the text is visible, and it's in the correct orientation.",
+ "crop-and-rotate-the-image": "裁剪并旋转图片,使仅文字可见且方向正确。",
"create-from-images": "从图片创建",
"should-translate-description": "翻译该食谱",
"please-wait-image-procesing": "请稍等,正在处理图片。这可能需要一些时间。",
@@ -617,10 +621,10 @@
"stay-in-edit-mode": "留在编辑模式",
"import-from-zip": "从Zip压缩包导入",
"import-from-zip-description": "导入从另一个Mealie应用导出的单个食谱。",
- "import-from-html-or-json": "Import from HTML or JSON",
- "import-from-html-or-json-description": "Import a single recipe from raw HTML or JSON. This is useful if you have a recipe from a site that Mealie can't scrape normally, or from some other external source.",
- "json-import-format-description-colon": "To import via JSON, it must be in valid format:",
- "json-editor": "JSON Editor",
+ "import-from-html-or-json": "从 HTML 或 JSON 导入",
+ "import-from-html-or-json-description": "从原始 HTML 或 JSON 导入单个食谱。如果您有来自 Mealie 无法正常抓取的网站的食谱,或来自其他外部来源的食谱,此功能会很有用。",
+ "json-import-format-description-colon": "若要通过 JSON 导入,文件必须采用有效的格式:",
+ "json-editor": "JSON 编辑器",
"zip-files-must-have-been-exported-from-mealie": "必须是由Mealie导出的zip文件才有效",
"create-a-recipe-by-uploading-a-scan": "通过上传扫描图创建食谱。",
"upload-a-png-image-from-a-recipe-book": "上传一张PNG格式的纸质食谱照片",
@@ -633,11 +637,11 @@
"report-deletion-failed": "删除报告失败",
"recipe-debugger": "食谱调试器",
"recipe-debugger-description": "抓取你想要的食谱的URL并粘贴在此。食谱刮削器将尝试刮削该URL并显示结果。如果你没看到任何返回数据,则说明对应的网站不支持Mealie或它的刮削库。",
- "use-openai": "Use OpenAI",
- "recipe-debugger-use-openai-description": "Use OpenAI to parse the results instead of relying on the scraper library. When creating a recipe via URL, this is done automatically if the scraper library fails, but you may test it manually here.",
+ "use-openai": "使用OpenAI",
+ "recipe-debugger-use-openai-description": "使用 OpenAI 解析结果,而非依赖抓取库。通过网址创建食谱时,若抓取库运行失败,系统会自动调用此功能,但您也可在此处手动测试。",
"debug": "调试",
"tree-view": "树状图",
- "recipe-servings": "Recipe Servings",
+ "recipe-servings": "食谱份量",
"recipe-yield": "食谱菜量",
"recipe-yield-text": "食谱菜量描述",
"unit": "单位",
@@ -653,14 +657,14 @@
"select-parser": "选取解析器",
"natural-language-processor": "自然语言处理器",
"brute-parser": "暴力解析器",
- "openai-parser": "OpenAI Parser",
+ "openai-parser": "OpenAI 解析器",
"parse-all": "全部解析",
"no-unit": "没有计量单位",
"missing-unit": "创建缺失的计量单位:{unit}",
"missing-food": "创建缺失的食物:{food}",
"no-food": "没有食物"
},
- "reset-servings-count": "Reset Servings Count",
+ "reset-servings-count": "重置份量数量",
"not-linked-ingredients": "Additional Ingredients",
"upload-another-image": "Upload another image",
"upload-images": "Upload images",
diff --git a/frontend/lang/messages/zh-TW.json b/frontend/lang/messages/zh-TW.json
index 0f9c22d32..69752f4e4 100644
--- a/frontend/lang/messages/zh-TW.json
+++ b/frontend/lang/messages/zh-TW.json
@@ -8,7 +8,7 @@
"database-type": "資料庫類型",
"database-url": "資料庫網址",
"default-group": "預設群組",
- "default-household": "Default Household",
+ "default-household": "預設家庭群組",
"demo": "展示",
"demo-status": "展示狀態",
"development": "開發版",
@@ -65,21 +65,21 @@
"something-went-wrong": "出了點問題...",
"subscribed-events": "關注的事件",
"test-message-sent": "測試訊息已發送",
- "message-sent": "Message Sent",
+ "message-sent": "訊息已送出",
"new-notification": "新通知",
- "event-notifiers": "Event Notifiers",
- "apprise-url-skipped-if-blank": "Apprise URL (skipped if blank)",
- "enable-notifier": "Enable Notifier",
- "what-events": "What events should this notifier subscribe to?",
- "user-events": "User Events",
- "mealplan-events": "Mealplan Events",
- "when-a-user-in-your-group-creates-a-new-mealplan": "When a user in your group creates a new mealplan",
+ "event-notifiers": "事件通知",
+ "apprise-url-skipped-if-blank": "Apprise 網址(空白則略過)",
+ "enable-notifier": "啟用通知功能",
+ "what-events": "要訂閱哪些事件通知?",
+ "user-events": "用戶相關事件",
+ "mealplan-events": "用餐規劃事件",
+ "when-a-user-in-your-group-creates-a-new-mealplan": "當群組裡的用戶建立新用餐規劃時",
"shopping-list-events": "購物清單",
- "cookbook-events": "Cookbook Events",
- "tag-events": "Tag Events",
- "category-events": "Category Events",
- "when-a-new-user-joins-your-group": "When a new user joins your group",
- "recipe-events": "Recipe Events"
+ "cookbook-events": "食譜集事件",
+ "tag-events": "標籤事件",
+ "category-events": "類別事件",
+ "when-a-new-user-joins-your-group": "當新用戶加入您的群組時",
+ "recipe-events": "食譜事件"
},
"general": {
"add": "Add",
@@ -146,7 +146,7 @@
"save": "保存",
"settings": "設定",
"share": "分享",
- "show-all": "Show All",
+ "show-all": "顯示全部",
"shuffle": "隨機",
"sort": "排序",
"sort-ascending": "Sort Ascending",
@@ -157,12 +157,12 @@
"submit": "提交",
"success-count": "成功: {count}",
"sunday": "星期日",
- "system": "System",
+ "system": "系統",
"templates": "範本",
"test": "測試",
"themes": "佈景主題",
"thursday": "星期四",
- "title": "Title",
+ "title": "標題",
"token": "密鑰",
"tuesday": "星期二",
"type": "類型",
@@ -177,12 +177,12 @@
"units": "單位",
"back": "返回",
"next": "下一步",
- "start": "Start",
+ "start": "開始",
"toggle-view": "切換檢視方式",
"date": "日期",
"id": "ID",
"owner": "擁有者",
- "change-owner": "Change Owner",
+ "change-owner": "更換擁有者",
"date-added": "新增日期",
"none": "無",
"run": "運行",
@@ -246,7 +246,7 @@
"manage-members": "管理成員",
"manage-members-description": "Manage the permissions of the members in your household. {manage} allows the user to access the data-management page, and {invite} allows the user to generate invitation links for other users. Group owners cannot change their own permissions.",
"manage": "Manage",
- "manage-household": "Manage Household",
+ "manage-household": "管理家庭群組",
"invite": "邀請",
"looking-to-update-your-profile": "Looking to Update Your Profile?",
"default-recipe-preferences-description": "These are the default settings when a new recipe is created in your group. These can be changed for individual recipes in the recipe settings menu.",
@@ -272,8 +272,8 @@
"group-recipe-preferences": "Group Recipe Preferences",
"report": "報告",
"report-with-id": "Report ID: {id}",
- "group-management": "Group Management",
- "admin-group-management": "Admin Group Management",
+ "group-management": "群組管理",
+ "admin-group-management": "管理員群組管理",
"admin-group-management-text": "Changes to this group will be reflected immediately.",
"group-id-value": "Group Id: {0}",
"total-households": "Total Households",
@@ -579,6 +579,10 @@
"made-this": "I Made This",
"how-did-it-turn-out": "How did it turn out?",
"user-made-this": "{user} made this",
+ "added-to-timeline": "Added to timeline",
+ "failed-to-add-to-timeline": "Failed to add to timeline",
+ "failed-to-update-recipe": "Failed to update recipe",
+ "added-to-timeline-but-failed-to-add-image": "Added to timeline, but failed to add image",
"api-extras-description": "Recipes extras are a key feature of the Mealie API. They allow you to create custom JSON key/value pairs within a recipe, to reference from 3rd party applications. You can use these keys to provide information, for example to trigger automations or custom messages to relay to your desired device.",
"message-key": "Message Key",
"parse": "Parse",
diff --git a/frontend/lib/api/user/group-recipe-actions.ts b/frontend/lib/api/user/group-recipe-actions.ts
index 2753b3465..f97ddc53f 100644
--- a/frontend/lib/api/user/group-recipe-actions.ts
+++ b/frontend/lib/api/user/group-recipe-actions.ts
@@ -13,7 +13,7 @@ export class GroupRecipeActionsAPI extends BaseCRUDAPI None:
recipe_action = self.repos.group_recipe_actions.get_one(item_id)
if not recipe_action:
@@ -95,7 +95,7 @@ class GroupRecipeActionController(BaseUserController):
detail=ErrorResponse.respond(message="Not found."),
) from e
- payload = GroupRecipeActionPayload(action=recipe_action, content=recipe, scaled_amount=scaled_amount)
+ payload = GroupRecipeActionPayload(action=recipe_action, content=recipe, recipe_scale=recipe_scale)
bg_tasks.add_task(
task_action,
url=recipe_action.url,
diff --git a/mealie/schema/household/group_recipe_action.py b/mealie/schema/household/group_recipe_action.py
index 7d96b4ccc..fca10c25d 100644
--- a/mealie/schema/household/group_recipe_action.py
+++ b/mealie/schema/household/group_recipe_action.py
@@ -44,4 +44,4 @@ class GroupRecipeActionPagination(PaginationBase):
class GroupRecipeActionPayload(MealieModel):
action: GroupRecipeActionOut
content: Any
- scaled_amount: float
+ recipe_scale: float
diff --git a/poetry.lock b/poetry.lock
index b8af73625..8c163ae8e 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -1817,14 +1817,14 @@ signedtoken = ["cryptography (>=3.0.0)", "pyjwt (>=2.0.0,<3)"]
[[package]]
name = "openai"
-version = "1.97.0"
+version = "1.97.1"
description = "The official Python library for the openai API"
optional = false
python-versions = ">=3.8"
groups = ["main"]
files = [
- {file = "openai-1.97.0-py3-none-any.whl", hash = "sha256:a1c24d96f4609f3f7f51c9e1c2606d97cc6e334833438659cfd687e9c972c610"},
- {file = "openai-1.97.0.tar.gz", hash = "sha256:0be349569ccaa4fb54f97bb808423fd29ccaeb1246ee1be762e0c81a47bae0aa"},
+ {file = "openai-1.97.1-py3-none-any.whl", hash = "sha256:4e96bbdf672ec3d44968c9ea39d2c375891db1acc1794668d8149d5fa6000606"},
+ {file = "openai-1.97.1.tar.gz", hash = "sha256:a744b27ae624e3d4135225da9b1c89c107a2a7e5bc4c93e5b7b5214772ce7a4e"},
]
[package.dependencies]
@@ -3237,30 +3237,30 @@ jupyter = ["ipywidgets (>=7.5.1,<9)"]
[[package]]
name = "ruff"
-version = "0.12.4"
+version = "0.12.5"
description = "An extremely fast Python linter and code formatter, written in Rust."
optional = false
python-versions = ">=3.7"
groups = ["dev"]
files = [
- {file = "ruff-0.12.4-py3-none-linux_armv6l.whl", hash = "sha256:cb0d261dac457ab939aeb247e804125a5d521b21adf27e721895b0d3f83a0d0a"},
- {file = "ruff-0.12.4-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:55c0f4ca9769408d9b9bac530c30d3e66490bd2beb2d3dae3e4128a1f05c7442"},
- {file = "ruff-0.12.4-py3-none-macosx_11_0_arm64.whl", hash = "sha256:a8224cc3722c9ad9044da7f89c4c1ec452aef2cfe3904365025dd2f51daeae0e"},
- {file = "ruff-0.12.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e9949d01d64fa3672449a51ddb5d7548b33e130240ad418884ee6efa7a229586"},
- {file = "ruff-0.12.4-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:be0593c69df9ad1465e8a2d10e3defd111fdb62dcd5be23ae2c06da77e8fcffb"},
- {file = "ruff-0.12.4-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a7dea966bcb55d4ecc4cc3270bccb6f87a337326c9dcd3c07d5b97000dbff41c"},
- {file = "ruff-0.12.4-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:afcfa3ab5ab5dd0e1c39bf286d829e042a15e966b3726eea79528e2e24d8371a"},
- {file = "ruff-0.12.4-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c057ce464b1413c926cdb203a0f858cd52f3e73dcb3270a3318d1630f6395bb3"},
- {file = "ruff-0.12.4-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e64b90d1122dc2713330350626b10d60818930819623abbb56535c6466cce045"},
- {file = "ruff-0.12.4-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2abc48f3d9667fdc74022380b5c745873499ff827393a636f7a59da1515e7c57"},
- {file = "ruff-0.12.4-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:2b2449dc0c138d877d629bea151bee8c0ae3b8e9c43f5fcaafcd0c0d0726b184"},
- {file = "ruff-0.12.4-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:56e45bb11f625db55f9b70477062e6a1a04d53628eda7784dce6e0f55fd549eb"},
- {file = "ruff-0.12.4-py3-none-musllinux_1_2_i686.whl", hash = "sha256:478fccdb82ca148a98a9ff43658944f7ab5ec41c3c49d77cd99d44da019371a1"},
- {file = "ruff-0.12.4-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:0fc426bec2e4e5f4c4f182b9d2ce6a75c85ba9bcdbe5c6f2a74fcb8df437df4b"},
- {file = "ruff-0.12.4-py3-none-win32.whl", hash = "sha256:4de27977827893cdfb1211d42d84bc180fceb7b72471104671c59be37041cf93"},
- {file = "ruff-0.12.4-py3-none-win_amd64.whl", hash = "sha256:fe0b9e9eb23736b453143d72d2ceca5db323963330d5b7859d60d101147d461a"},
- {file = "ruff-0.12.4-py3-none-win_arm64.whl", hash = "sha256:0618ec4442a83ab545e5b71202a5c0ed7791e8471435b94e655b570a5031a98e"},
- {file = "ruff-0.12.4.tar.gz", hash = "sha256:13efa16df6c6eeb7d0f091abae50f58e9522f3843edb40d56ad52a5a4a4b6873"},
+ {file = "ruff-0.12.5-py3-none-linux_armv6l.whl", hash = "sha256:1de2c887e9dec6cb31fcb9948299de5b2db38144e66403b9660c9548a67abd92"},
+ {file = "ruff-0.12.5-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:d1ab65e7d8152f519e7dea4de892317c9da7a108da1c56b6a3c1d5e7cf4c5e9a"},
+ {file = "ruff-0.12.5-py3-none-macosx_11_0_arm64.whl", hash = "sha256:962775ed5b27c7aa3fdc0d8f4d4433deae7659ef99ea20f783d666e77338b8cf"},
+ {file = "ruff-0.12.5-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:73b4cae449597e7195a49eb1cdca89fd9fbb16140c7579899e87f4c85bf82f73"},
+ {file = "ruff-0.12.5-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8b13489c3dc50de5e2d40110c0cce371e00186b880842e245186ca862bf9a1ac"},
+ {file = "ruff-0.12.5-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f1504fea81461cf4841778b3ef0a078757602a3b3ea4b008feb1308cb3f23e08"},
+ {file = "ruff-0.12.5-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:c7da4129016ae26c32dfcbd5b671fe652b5ab7fc40095d80dcff78175e7eddd4"},
+ {file = "ruff-0.12.5-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ca972c80f7ebcfd8af75a0f18b17c42d9f1ef203d163669150453f50ca98ab7b"},
+ {file = "ruff-0.12.5-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8dbbf9f25dfb501f4237ae7501d6364b76a01341c6f1b2cd6764fe449124bb2a"},
+ {file = "ruff-0.12.5-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2c47dea6ae39421851685141ba9734767f960113d51e83fd7bb9958d5be8763a"},
+ {file = "ruff-0.12.5-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:c5076aa0e61e30f848846f0265c873c249d4b558105b221be1828f9f79903dc5"},
+ {file = "ruff-0.12.5-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:a5a4c7830dadd3d8c39b1cc85386e2c1e62344f20766be6f173c22fb5f72f293"},
+ {file = "ruff-0.12.5-py3-none-musllinux_1_2_i686.whl", hash = "sha256:46699f73c2b5b137b9dc0fc1a190b43e35b008b398c6066ea1350cce6326adcb"},
+ {file = "ruff-0.12.5-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:5a655a0a0d396f0f072faafc18ebd59adde8ca85fb848dc1b0d9f024b9c4d3bb"},
+ {file = "ruff-0.12.5-py3-none-win32.whl", hash = "sha256:dfeb2627c459b0b78ca2bbdc38dd11cc9a0a88bf91db982058b26ce41714ffa9"},
+ {file = "ruff-0.12.5-py3-none-win_amd64.whl", hash = "sha256:ae0d90cf5f49466c954991b9d8b953bd093c32c27608e409ae3564c63c5306a5"},
+ {file = "ruff-0.12.5-py3-none-win_arm64.whl", hash = "sha256:48cdbfc633de2c5c37d9f090ba3b352d1576b0015bfc3bc98eaf230275b7e805"},
+ {file = "ruff-0.12.5.tar.gz", hash = "sha256:b209db6102b66f13625940b7f8c7d0f18e20039bb7f6101fbdac935c9612057e"},
]
[[package]]
diff --git a/tests/integration_tests/user_household_tests/test_group_recipe_actions.py b/tests/integration_tests/user_household_tests/test_group_recipe_actions.py
index 11442ffb9..941e58dd0 100644
--- a/tests/integration_tests/user_household_tests/test_group_recipe_actions.py
+++ b/tests/integration_tests/user_household_tests/test_group_recipe_actions.py
@@ -173,7 +173,7 @@ def test_group_recipe_actions_trigger_post(
response = api_client.post(
api_routes.households_recipe_actions_item_id_trigger_recipe_slug(action_id, recipe_slug),
headers=unique_user.token,
- json={"scaled_amount": 1.0},
+ json={"recipe_scale": 1.0},
)
if missing_action or missing_recipe:
@@ -190,7 +190,7 @@ def test_group_recipe_actions_trigger_invalid_type(api_client: TestClient, uniqu
response = api_client.post(
api_routes.households_recipe_actions_item_id_trigger_recipe_slug(recipe_action.id, recipe.id),
headers=unique_user.token,
- json={"scaled_amount": 1.0},
+ json={"recipe_scale": 1.0},
)
assert response.status_code == 400