mirror of
https://github.com/mealie-recipes/mealie.git
synced 2025-06-03 05:35:02 -04:00
Merge branch 'mealie-next' into chore-update-build-link-to-org
This commit is contained in:
commit
6097440781
23
.github/workflows/release.yml
vendored
23
.github/workflows/release.yml
vendored
@ -43,3 +43,26 @@ jobs:
|
|||||||
uses: Ilshidur/action-discord@0.3.2
|
uses: Ilshidur/action-discord@0.3.2
|
||||||
with:
|
with:
|
||||||
args: "🚀 Version {{ EVENT_PAYLOAD.release.tag_name }} of Mealie has been released. See the release notes https://github.com/mealie-recipes/mealie/releases/tag/{{ EVENT_PAYLOAD.release.tag_name }}"
|
args: "🚀 Version {{ EVENT_PAYLOAD.release.tag_name }} of Mealie has been released. See the release notes https://github.com/mealie-recipes/mealie/releases/tag/{{ EVENT_PAYLOAD.release.tag_name }}"
|
||||||
|
|
||||||
|
update-image-tags:
|
||||||
|
name: Update image tag in sample docker-compose files
|
||||||
|
needs:
|
||||||
|
- build-release
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout 🛎
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Modify version strings
|
||||||
|
run: |
|
||||||
|
sed -i 's/:v[0-9]*.[0-9]*.[0-9]*/:${{ github.event.release.tag_name }}/' docs/docs/documentation/getting-started/installation/sqlite.md
|
||||||
|
sed -i 's/:v[0-9]*.[0-9]*.[0-9]*/:${{ github.event.release.tag_name }}/' docs/docs/documentation/getting-started/installation/postgres.md
|
||||||
|
|
||||||
|
- name: Commit updates
|
||||||
|
uses: test-room-7/action-update-file@v1
|
||||||
|
with:
|
||||||
|
file-path: |
|
||||||
|
docs/docs/documentation/getting-started/installation/sqlite.md
|
||||||
|
docs/docs/documentation/getting-started/installation/postgres.md
|
||||||
|
commit-msg: "Change image tag, for release ${{ github.event.release.tag_name }}"
|
||||||
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
<BaseDialog v-if="updateTarget" v-model="dialogs.update" :title="$t('general.update')" @confirm="updateOne()">
|
<BaseDialog v-if="updateTarget" v-model="dialogs.update" :title="$t('general.update')" @confirm="updateOne()">
|
||||||
<v-card-text>
|
<v-card-text>
|
||||||
<v-text-field v-model="updateTarget.name" label="$t('general.name')"> </v-text-field>
|
<v-text-field v-model="updateTarget.name" :label="$t('general.name')"> </v-text-field>
|
||||||
<v-checkbox v-if="itemType === Organizer.Tool" v-model="updateTarget.onHand" :label="$t('tool.on-hand')"></v-checkbox>
|
<v-checkbox v-if="itemType === Organizer.Tool" v-model="updateTarget.onHand" :label="$t('tool.on-hand')"></v-checkbox>
|
||||||
</v-card-text>
|
</v-card-text>
|
||||||
</BaseDialog>
|
</BaseDialog>
|
||||||
|
@ -77,7 +77,7 @@
|
|||||||
"tag-events": "Eventos de etiqueta",
|
"tag-events": "Eventos de etiqueta",
|
||||||
"category-events": "Eventos de Categoría",
|
"category-events": "Eventos de Categoría",
|
||||||
"when-a-new-user-joins-your-group": "Cuando un nuevo usuario se une a tu grupo",
|
"when-a-new-user-joins-your-group": "Cuando un nuevo usuario se une a tu grupo",
|
||||||
"recipe-events": "Recipe Events"
|
"recipe-events": "Eventos de receta"
|
||||||
},
|
},
|
||||||
"general": {
|
"general": {
|
||||||
"cancel": "Cancelar",
|
"cancel": "Cancelar",
|
||||||
@ -114,10 +114,10 @@
|
|||||||
"json": "JSON",
|
"json": "JSON",
|
||||||
"keyword": "Etiqueta",
|
"keyword": "Etiqueta",
|
||||||
"link-copied": "Enlace copiado",
|
"link-copied": "Enlace copiado",
|
||||||
"loading": "Loading",
|
"loading": "Cargando",
|
||||||
"loading-events": "Cargando Eventos",
|
"loading-events": "Cargando Eventos",
|
||||||
"loading-recipe": "Loading recipe...",
|
"loading-recipe": "Cargando receta...",
|
||||||
"loading-ocr-data": "Loading OCR data...",
|
"loading-ocr-data": "Cargando datos OCR...",
|
||||||
"loading-recipes": "Cargando recetas",
|
"loading-recipes": "Cargando recetas",
|
||||||
"message": "Mensaje",
|
"message": "Mensaje",
|
||||||
"monday": "Lunes",
|
"monday": "Lunes",
|
||||||
@ -198,8 +198,8 @@
|
|||||||
"refresh": "Actualizar",
|
"refresh": "Actualizar",
|
||||||
"upload-file": "Subir Archivo",
|
"upload-file": "Subir Archivo",
|
||||||
"created-on-date": "Creado el {0}",
|
"created-on-date": "Creado el {0}",
|
||||||
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
"unsaved-changes": "Tienes cambios sin guardar. ¿Quieres guardar antes de salir? Aceptar para guardar, Cancelar para descartar cambios.",
|
||||||
"clipboard-copy-failure": "Failed to copy to the clipboard."
|
"clipboard-copy-failure": "No se pudo copiar al portapapeles."
|
||||||
},
|
},
|
||||||
"group": {
|
"group": {
|
||||||
"are-you-sure-you-want-to-delete-the-group": "Por favor, confirma que deseas eliminar <b>{groupName}<b/>",
|
"are-you-sure-you-want-to-delete-the-group": "Por favor, confirma que deseas eliminar <b>{groupName}<b/>",
|
||||||
@ -214,7 +214,7 @@
|
|||||||
"group-id-with-value": "ID del Grupo: {groupID}",
|
"group-id-with-value": "ID del Grupo: {groupID}",
|
||||||
"group-name": "Nombre del Grupo",
|
"group-name": "Nombre del Grupo",
|
||||||
"group-not-found": "Grupo no encontrado",
|
"group-not-found": "Grupo no encontrado",
|
||||||
"group-token": "Group Token",
|
"group-token": "Token del grupo",
|
||||||
"group-with-value": "Grupo: {groupID}",
|
"group-with-value": "Grupo: {groupID}",
|
||||||
"groups": "Grupos",
|
"groups": "Grupos",
|
||||||
"manage-groups": "Administrar grupos",
|
"manage-groups": "Administrar grupos",
|
||||||
@ -250,7 +250,7 @@
|
|||||||
"general-preferences": "Opciones generales",
|
"general-preferences": "Opciones generales",
|
||||||
"group-recipe-preferences": "Preferencias de grupo de las recetas",
|
"group-recipe-preferences": "Preferencias de grupo de las recetas",
|
||||||
"report": "Informe",
|
"report": "Informe",
|
||||||
"report-with-id": "Report ID: {id}",
|
"report-with-id": "ID de informe: {id}",
|
||||||
"group-management": "Administración de grupos",
|
"group-management": "Administración de grupos",
|
||||||
"admin-group-management": "Gestión del grupo administrador",
|
"admin-group-management": "Gestión del grupo administrador",
|
||||||
"admin-group-management-text": "Los cambios en este grupo se reflejarán inmediatamente.",
|
"admin-group-management-text": "Los cambios en este grupo se reflejarán inmediatamente.",
|
||||||
@ -258,7 +258,7 @@
|
|||||||
},
|
},
|
||||||
"meal-plan": {
|
"meal-plan": {
|
||||||
"create-a-new-meal-plan": "Crear un nuevo menú",
|
"create-a-new-meal-plan": "Crear un nuevo menú",
|
||||||
"update-this-meal-plan": "Update this Meal Plan",
|
"update-this-meal-plan": "Actualizar este plan de comidas",
|
||||||
"dinner-this-week": "Cena para esta semana",
|
"dinner-this-week": "Cena para esta semana",
|
||||||
"dinner-today": "Cena para hoy",
|
"dinner-today": "Cena para hoy",
|
||||||
"dinner-tonight": "Cena para esta noche",
|
"dinner-tonight": "Cena para esta noche",
|
||||||
@ -473,11 +473,11 @@
|
|||||||
"add-to-timeline": "Añadir al cronograma",
|
"add-to-timeline": "Añadir al cronograma",
|
||||||
"recipe-added-to-list": "Receta añadida a la lista",
|
"recipe-added-to-list": "Receta añadida a la lista",
|
||||||
"recipes-added-to-list": "Recetas añadidas a la lista",
|
"recipes-added-to-list": "Recetas añadidas a la lista",
|
||||||
"successfully-added-to-list": "Successfully added to list",
|
"successfully-added-to-list": "Añadido correctamente a la lista",
|
||||||
"recipe-added-to-mealplan": "Receta añadida al menú",
|
"recipe-added-to-mealplan": "Receta añadida al menú",
|
||||||
"failed-to-add-recipes-to-list": "Error al añadir las recetas a la lista",
|
"failed-to-add-recipes-to-list": "Error al añadir las recetas a la lista",
|
||||||
"failed-to-add-recipe-to-mealplan": "Error al añadir receta al menú",
|
"failed-to-add-recipe-to-mealplan": "Error al añadir receta al menú",
|
||||||
"failed-to-add-to-list": "Failed to add to list",
|
"failed-to-add-to-list": "No se pudo agregar a la lista",
|
||||||
"yield": "Raciones",
|
"yield": "Raciones",
|
||||||
"quantity": "Cantidad",
|
"quantity": "Cantidad",
|
||||||
"choose-unit": "Elija unidad",
|
"choose-unit": "Elija unidad",
|
||||||
@ -514,11 +514,11 @@
|
|||||||
"how-did-it-turn-out": "¿Cómo resultó esto?",
|
"how-did-it-turn-out": "¿Cómo resultó esto?",
|
||||||
"user-made-this": "{user} hizo esto",
|
"user-made-this": "{user} hizo esto",
|
||||||
"last-made-date": "Cocinado por última vez el {date}",
|
"last-made-date": "Cocinado por última vez el {date}",
|
||||||
"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.",
|
"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",
|
"message-key": "Clave de mensaje",
|
||||||
"parse": "Analizar",
|
"parse": "Analizar",
|
||||||
"attach-images-hint": "Adjuntar imágenes arrastrando y soltando en el editor",
|
"attach-images-hint": "Adjuntar imágenes arrastrando y soltando en el editor",
|
||||||
"drop-image": "Drop image",
|
"drop-image": "Soltar imagen",
|
||||||
"enable-ingredient-amounts-to-use-this-feature": "Habilitar la cantidad de ingredientes para usar esta característica",
|
"enable-ingredient-amounts-to-use-this-feature": "Habilitar la cantidad de ingredientes para usar esta característica",
|
||||||
"recipes-with-units-or-foods-defined-cannot-be-parsed": "Las recetas con unidades o alimentos definidos no pueden ser analizadas.",
|
"recipes-with-units-or-foods-defined-cannot-be-parsed": "Las recetas con unidades o alimentos definidos no pueden ser analizadas.",
|
||||||
"parse-ingredients": "Analizar ingredientes",
|
"parse-ingredients": "Analizar ingredientes",
|
||||||
@ -536,8 +536,8 @@
|
|||||||
"new-recipe-names-must-be-unique": "El nombre de la receta debe ser único",
|
"new-recipe-names-must-be-unique": "El nombre de la receta debe ser único",
|
||||||
"scrape-recipe": "Analiza receta",
|
"scrape-recipe": "Analiza receta",
|
||||||
"scrape-recipe-description": "Importa una receta por URL. Proporcione la URL para el sitio que desea importar, y Mealie intentará importar la receta de ese sitio y añadirla a su colección.",
|
"scrape-recipe-description": "Importa una receta por URL. Proporcione la URL para el sitio que desea importar, y Mealie intentará importar la receta de ese sitio y añadirla a su colección.",
|
||||||
"scrape-recipe-have-a-lot-of-recipes": "Have a lot of recipes you want to scrape at once?",
|
"scrape-recipe-have-a-lot-of-recipes": "¿Tienes muchas recetas que quieres raspar a la vez?",
|
||||||
"scrape-recipe-suggest-bulk-importer": "Try out the bulk importer",
|
"scrape-recipe-suggest-bulk-importer": "Prueba el importador masivo",
|
||||||
"import-original-keywords-as-tags": "Importar palabras clave originales como etiquetas",
|
"import-original-keywords-as-tags": "Importar palabras clave originales como etiquetas",
|
||||||
"stay-in-edit-mode": "Permanecer en modo edición",
|
"stay-in-edit-mode": "Permanecer en modo edición",
|
||||||
"import-from-zip": "Importar desde zip",
|
"import-from-zip": "Importar desde zip",
|
||||||
@ -546,7 +546,7 @@
|
|||||||
"create-a-recipe-by-uploading-a-scan": "Crea una receta subiendo una escaneada.",
|
"create-a-recipe-by-uploading-a-scan": "Crea una receta subiendo una escaneada.",
|
||||||
"upload-a-png-image-from-a-recipe-book": "Suba una imagen png de un libro de recetas",
|
"upload-a-png-image-from-a-recipe-book": "Suba una imagen png de un libro de recetas",
|
||||||
"recipe-bulk-importer": "Importador masivo de recetas",
|
"recipe-bulk-importer": "Importador masivo de recetas",
|
||||||
"recipe-bulk-importer-description": "The Bulk recipe importer allows you to import multiple recipes at once by queueing the sites on the backend and running the task in the background. This can be useful when initially migrating to Mealie, or when you want to import a large number of recipes.",
|
"recipe-bulk-importer-description": "El importador masivo de recetas te permite importar múltiples recetas a la vez poniendo en cola los sitios en el backend y ejecutando la tarea en segundo plano. Esto puede ser útil al migrar inicialmente a Mealie, o cuando desea importar un gran número de recetas.",
|
||||||
"set-categories-and-tags": "Establecer categorías y etiquetas",
|
"set-categories-and-tags": "Establecer categorías y etiquetas",
|
||||||
"bulk-imports": "Importación masiva",
|
"bulk-imports": "Importación masiva",
|
||||||
"bulk-import-process-has-started": "El proceso de importación masiva se ha iniciado",
|
"bulk-import-process-has-started": "El proceso de importación masiva se ha iniciado",
|
||||||
@ -561,7 +561,7 @@
|
|||||||
"upload-image": "Subir imagen",
|
"upload-image": "Subir imagen",
|
||||||
"screen-awake": "Mantener la pantalla encendida",
|
"screen-awake": "Mantener la pantalla encendida",
|
||||||
"remove-image": "Eliminar imagen",
|
"remove-image": "Eliminar imagen",
|
||||||
"nextStep": "Next step"
|
"nextStep": "Siguiente paso"
|
||||||
},
|
},
|
||||||
"search": {
|
"search": {
|
||||||
"advanced-search": "Búsqueda avanzada",
|
"advanced-search": "Búsqueda avanzada",
|
||||||
@ -580,16 +580,16 @@
|
|||||||
"search-hint": "Presione '/'",
|
"search-hint": "Presione '/'",
|
||||||
"advanced": "Avanzado",
|
"advanced": "Avanzado",
|
||||||
"auto-search": "Búsqueda automática",
|
"auto-search": "Búsqueda automática",
|
||||||
"no-results": "No results found"
|
"no-results": "No se encontraron resultados"
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
"add-a-new-theme": "Añadir un nuevo tema",
|
"add-a-new-theme": "Añadir un nuevo tema",
|
||||||
"admin-settings": "Opciones del adminstrador",
|
"admin-settings": "Opciones del adminstrador",
|
||||||
"backup": {
|
"backup": {
|
||||||
"backup-created": "Backup created successfully",
|
"backup-created": "Copia de seguridad creada con éxito",
|
||||||
"backup-created-at-response-export_path": "Copia de seguridad creada en {path}",
|
"backup-created-at-response-export_path": "Copia de seguridad creada en {path}",
|
||||||
"backup-deleted": "Copia de seguridad eliminada",
|
"backup-deleted": "Copia de seguridad eliminada",
|
||||||
"restore-success": "Restore successful",
|
"restore-success": "Restauración exitosa",
|
||||||
"backup-tag": "Etiqueta de la copia de seguridad",
|
"backup-tag": "Etiqueta de la copia de seguridad",
|
||||||
"create-heading": "Crear una copia de seguridad",
|
"create-heading": "Crear una copia de seguridad",
|
||||||
"delete-backup": "Eliminar copia de seguridad",
|
"delete-backup": "Eliminar copia de seguridad",
|
||||||
@ -690,21 +690,21 @@
|
|||||||
"webhooks-caps": "WEBHOOKS",
|
"webhooks-caps": "WEBHOOKS",
|
||||||
"webhooks": "Webhooks",
|
"webhooks": "Webhooks",
|
||||||
"webhook-name": "Nombre del Webhook",
|
"webhook-name": "Nombre del Webhook",
|
||||||
"description": "The webhooks defined below will be executed when a meal is defined for the day. At the scheduled time the webhooks will be sent with the data from the recipe that is scheduled for the day. Note that webhook execution is not exact. The webhooks are executed on a 5 minutes interval so the webhooks will be executed within 5 +/- minutes of the scheduled."
|
"description": "Los webhooks definidos a continuación se ejecutarán cuando una comida esté definida para el día. A la hora prevista se enviarán los webhooks con los datos de la receta programada para el día. Tenga en cuenta que la ejecución de webhook no es exacta. Los webhooks se ejecutan en un intervalo de 5 minutos, por lo que los webhooks se ejecutarán en 5 minutos +/- de los programados."
|
||||||
},
|
},
|
||||||
"bug-report": "Informe de error",
|
"bug-report": "Informe de error",
|
||||||
"bug-report-information": "Utilice esta información para informar de un error. Proporcionar detalles de su instancia a los desarrolladores es la mejor manera de resolver sus problemas rápidamente.",
|
"bug-report-information": "Utilice esta información para informar de un error. Proporcionar detalles de su instancia a los desarrolladores es la mejor manera de resolver sus problemas rápidamente.",
|
||||||
"tracker": "Tracker",
|
"tracker": "Rastreador",
|
||||||
"configuration": "Configuración",
|
"configuration": "Configuración",
|
||||||
"docker-volume": "Volumen de Docker",
|
"docker-volume": "Volumen de Docker",
|
||||||
"docker-volume-help": "Mealie requiere que los contenedores de frontend y backend compartan el mismo volumen o almacenamiento en docker. Esto asegura que el contenedor del frontend pueda acceder adecuadamente a las imágenes y los activos almacenados en el disco.",
|
"docker-volume-help": "Mealie requiere que los contenedores de frontend y backend compartan el mismo volumen o almacenamiento en docker. Esto asegura que el contenedor del frontend pueda acceder adecuadamente a las imágenes y los activos almacenados en el disco.",
|
||||||
"volumes-are-misconfigured": "Volumes are misconfigured.",
|
"volumes-are-misconfigured": "Los volúmenes están mal configurados.",
|
||||||
"volumes-are-configured-correctly": "Los volúmenes se configuran correctamente.",
|
"volumes-are-configured-correctly": "Los volúmenes se configuran correctamente.",
|
||||||
"status-unknown-try-running-a-validation": "Estado desconocido. Intente ejecutar una validación.",
|
"status-unknown-try-running-a-validation": "Estado desconocido. Intente ejecutar una validación.",
|
||||||
"validate": "Validar",
|
"validate": "Validar",
|
||||||
"email-configuration-status": "Estado de la Configuración del Correo Electrónico",
|
"email-configuration-status": "Estado de la Configuración del Correo Electrónico",
|
||||||
"email-configured": "Email Configured",
|
"email-configured": "Email configurado",
|
||||||
"email-test-results": "Email Test Results",
|
"email-test-results": "Resultados de la prueba de email",
|
||||||
"ready": "Listo",
|
"ready": "Listo",
|
||||||
"not-ready": "No Listo - Comprobar variables de ambiente",
|
"not-ready": "No Listo - Comprobar variables de ambiente",
|
||||||
"succeeded": "Logrado",
|
"succeeded": "Logrado",
|
||||||
@ -715,10 +715,10 @@
|
|||||||
"mealie-is-up-to-date": "Mealie está actualizada",
|
"mealie-is-up-to-date": "Mealie está actualizada",
|
||||||
"secure-site": "Sitio Seguro",
|
"secure-site": "Sitio Seguro",
|
||||||
"secure-site-error-text": "Servir a través de local host o seguro con HTTPS. El portapapeles y API adicionales del navegador pueden no funcionar.",
|
"secure-site-error-text": "Servir a través de local host o seguro con HTTPS. El portapapeles y API adicionales del navegador pueden no funcionar.",
|
||||||
"secure-site-success-text": "Site is accessed by localhost or https",
|
"secure-site-success-text": "Se accede al sitio por localhost o https",
|
||||||
"server-side-base-url": "Server Side Base URL",
|
"server-side-base-url": "URL base del servidor",
|
||||||
"server-side-base-url-error-text": "`BASE_URL` is still the default value on API Server. This will cause issues with notifications links generated on the server for emails, etc.",
|
"server-side-base-url-error-text": "`BASE_URL` sigue siendo el valor por defecto en el servidor API. Esto causará problemas con las notificaciones generadas en el servidor de correos electrónicos, etc.",
|
||||||
"server-side-base-url-success-text": "Server Side URL does not match the default",
|
"server-side-base-url-success-text": "La URL del servidor no coincide con la predeterminada",
|
||||||
"ldap-ready": "LDAP Listo",
|
"ldap-ready": "LDAP Listo",
|
||||||
"ldap-ready-error-text": "No todos los valores LDAP están configurados. Esto puede ignorarse si no está usando autenticación LDAP.",
|
"ldap-ready-error-text": "No todos los valores LDAP están configurados. Esto puede ignorarse si no está usando autenticación LDAP.",
|
||||||
"ldap-ready-success-text": "Las variables LDAP requeridas están todas definidas.",
|
"ldap-ready-success-text": "Las variables LDAP requeridas están todas definidas.",
|
||||||
@ -748,7 +748,7 @@
|
|||||||
"reorder-labels": "Reordenar etiquetas",
|
"reorder-labels": "Reordenar etiquetas",
|
||||||
"uncheck-all-items": "Desmarcar todos los elementos",
|
"uncheck-all-items": "Desmarcar todos los elementos",
|
||||||
"check-all-items": "Marcar todos los elementos",
|
"check-all-items": "Marcar todos los elementos",
|
||||||
"linked-recipes-count": "No Linked Recipes|One Linked Recipe|{count} Linked Recipes",
|
"linked-recipes-count": "No hay recetas vinculadas|Una receta vinculada|{count} recetas vinculadas",
|
||||||
"items-checked-count": "Ningún elemento comprobado|Un elemento comprobado|{count} elementos comprobados",
|
"items-checked-count": "Ningún elemento comprobado|Un elemento comprobado|{count} elementos comprobados",
|
||||||
"no-label": "Sin Etiqueta",
|
"no-label": "Sin Etiqueta",
|
||||||
"completed-on": "Completado el {date}"
|
"completed-on": "Completado el {date}"
|
||||||
@ -841,7 +841,7 @@
|
|||||||
"password-updated": "Contraseña actualizada",
|
"password-updated": "Contraseña actualizada",
|
||||||
"password": "Contraseña",
|
"password": "Contraseña",
|
||||||
"password-strength": "Fortaleza de la contraseña: {strength}",
|
"password-strength": "Fortaleza de la contraseña: {strength}",
|
||||||
"please-enter-password": "Please enter your new password.",
|
"please-enter-password": "Por favor ingrese su nueva contraseña.",
|
||||||
"register": "Registrarse",
|
"register": "Registrarse",
|
||||||
"reset-password": "Restablecer contraseña",
|
"reset-password": "Restablecer contraseña",
|
||||||
"sign-in": "Iniciar sesión",
|
"sign-in": "Iniciar sesión",
|
||||||
@ -862,7 +862,7 @@
|
|||||||
"username": "Usuario",
|
"username": "Usuario",
|
||||||
"users-header": "USUARIOS",
|
"users-header": "USUARIOS",
|
||||||
"users": "Usuarios",
|
"users": "Usuarios",
|
||||||
"user-not-found": "User not found",
|
"user-not-found": "Usuario no encontrado",
|
||||||
"webhook-time": "Tiempo de Webhook",
|
"webhook-time": "Tiempo de Webhook",
|
||||||
"webhooks-enabled": "Webhooks habilitados",
|
"webhooks-enabled": "Webhooks habilitados",
|
||||||
"you-are-not-allowed-to-create-a-user": "No tiene permisos para crear usuarios",
|
"you-are-not-allowed-to-create-a-user": "No tiene permisos para crear usuarios",
|
||||||
@ -885,7 +885,7 @@
|
|||||||
"user-management": "Gestión de Usuarios",
|
"user-management": "Gestión de Usuarios",
|
||||||
"reset-locked-users": "Restablecer usuarios bloqueados",
|
"reset-locked-users": "Restablecer usuarios bloqueados",
|
||||||
"admin-user-creation": "Creación de Usuario Administrador",
|
"admin-user-creation": "Creación de Usuario Administrador",
|
||||||
"admin-user-management": "Admin User Management",
|
"admin-user-management": "Administración de usuario de admin",
|
||||||
"user-details": "Detalles de usuario",
|
"user-details": "Detalles de usuario",
|
||||||
"user-name": "Nombre de usuario",
|
"user-name": "Nombre de usuario",
|
||||||
"authentication-method": "Método de autenticación",
|
"authentication-method": "Método de autenticación",
|
||||||
@ -896,11 +896,11 @@
|
|||||||
"user-can-manage-group": "El usuario puede administrar el grupo",
|
"user-can-manage-group": "El usuario puede administrar el grupo",
|
||||||
"user-can-organize-group-data": "El usuario puede organizar los datos del grupo",
|
"user-can-organize-group-data": "El usuario puede organizar los datos del grupo",
|
||||||
"enable-advanced-features": "Habilitar Características Avanzadas",
|
"enable-advanced-features": "Habilitar Características Avanzadas",
|
||||||
"it-looks-like-this-is-your-first-time-logging-in": "It looks like this is your first time logging in.",
|
"it-looks-like-this-is-your-first-time-logging-in": "Parece que esta es la primera vez que inicias sesión.",
|
||||||
"dont-want-to-see-this-anymore-be-sure-to-change-your-email": "Don't want to see this anymore? Be sure to change your email in your user settings!",
|
"dont-want-to-see-this-anymore-be-sure-to-change-your-email": "¿No quieres ver esto más? ¡Asegúrate de cambiar tu correo electrónico en tu configuración de usuario!",
|
||||||
"forgot-password": "Forgot Password",
|
"forgot-password": "Olvidé mi contraseña",
|
||||||
"forgot-password-text": "Please enter your email address and we will send you a link to reset your password.",
|
"forgot-password-text": "Por favor, introduce tu correo electrónico y te enviaremos un enlace para restablecer tu contraseña.",
|
||||||
"changes-reflected-immediately": "Changes to this user will be reflected immediately."
|
"changes-reflected-immediately": "Los cambios en este grupo se reflejarán inmediatamente."
|
||||||
},
|
},
|
||||||
"language-dialog": {
|
"language-dialog": {
|
||||||
"translated": "traducido",
|
"translated": "traducido",
|
||||||
@ -927,19 +927,19 @@
|
|||||||
},
|
},
|
||||||
"units": {
|
"units": {
|
||||||
"seed-dialog-text": "Añade a la base de datos unidades comunes basadas en su idioma local.",
|
"seed-dialog-text": "Añade a la base de datos unidades comunes basadas en su idioma local.",
|
||||||
"combine-unit-description": "Combining the selected units will merge the Source Unit and Target Unit into a single unit. The {source-unit-will-be-deleted} and all of the references to the Source Unit will be updated to point to the Target Unit.",
|
"combine-unit-description": "Combinar los alimentos seleccionados fusionará el alimento origen y destinatario en un solo alimento. El alimento {source-unit-will-be-deleted} será eliminado y todas las referencias a él serán actualizadas para apuntar al nuevo alimento.",
|
||||||
"combine-unit": "Unidad de Combinación",
|
"combine-unit": "Unidad de Combinación",
|
||||||
"source-unit": "Source Unit",
|
"source-unit": "Unidad de origen",
|
||||||
"target-unit": "Target Unit",
|
"target-unit": "Unidad de objetivo",
|
||||||
"merging-unit-into-unit": "Merging {0} into {1}",
|
"merging-unit-into-unit": "Combinando {0} con {1}",
|
||||||
"create-unit": "Create Unit",
|
"create-unit": "Crear unidad",
|
||||||
"abbreviation": "Abreviatura",
|
"abbreviation": "Abreviatura",
|
||||||
"plural-abbreviation": "Abreviatura en plural",
|
"plural-abbreviation": "Abreviatura en plural",
|
||||||
"description": "Descripción",
|
"description": "Descripción",
|
||||||
"display-as-fraction": "Display as Fraction",
|
"display-as-fraction": "Mostrar como fracción",
|
||||||
"use-abbreviation": "Usar Abreviaturas",
|
"use-abbreviation": "Usar Abreviaturas",
|
||||||
"edit-unit": "Editar unidad",
|
"edit-unit": "Editar unidad",
|
||||||
"unit-data": "Unit Data",
|
"unit-data": "Datos de la unidad",
|
||||||
"use-abbv": "Usar Abr.",
|
"use-abbv": "Usar Abr.",
|
||||||
"fraction": "Fracción",
|
"fraction": "Fracción",
|
||||||
"example-unit-singular": "ej: Cucharada",
|
"example-unit-singular": "ej: Cucharada",
|
||||||
@ -956,10 +956,10 @@
|
|||||||
"recipes": {
|
"recipes": {
|
||||||
"purge-exports": "Limpiar exportaciones",
|
"purge-exports": "Limpiar exportaciones",
|
||||||
"are-you-sure-you-want-to-delete-all-export-data": "¿Está seguro de que desea eliminar todos sus datos de exportación?",
|
"are-you-sure-you-want-to-delete-all-export-data": "¿Está seguro de que desea eliminar todos sus datos de exportación?",
|
||||||
"confirm-delete-recipes": "Are you sure you want to delete the following recipes? This action cannot be undone.",
|
"confirm-delete-recipes": "¿Estás seguro de que quieres eliminar las siguientes recetas? Esta acción no podrá deshacerse.",
|
||||||
"the-following-recipes-selected-length-will-be-exported": "The following recipes ({0}) will be exported.",
|
"the-following-recipes-selected-length-will-be-exported": "Las siguientes recetas ({0}) serán exportadas.",
|
||||||
"settings-chosen-explanation": "Settings chosen here, excluding the locked option, will be applied to all selected recipes.",
|
"settings-chosen-explanation": "Los ajustes seleccionados aquí, excluyendo la opción bloqueada, se aplicarán a todas las recetas seleccionadas.",
|
||||||
"selected-length-recipe-s-settings-will-be-updated": "{count} recipe(s) settings will be updated.",
|
"selected-length-recipe-s-settings-will-be-updated": "Se actualizarán los ajustes de {count} receta(s).",
|
||||||
"recipe-data": "Datos de la receta",
|
"recipe-data": "Datos de la receta",
|
||||||
"recipe-data-description": "Use this section to manage the data associated with your recipes. You can perform several bulk actions on your recipes including exporting, deleting, tagging, and assigning categories.",
|
"recipe-data-description": "Use this section to manage the data associated with your recipes. You can perform several bulk actions on your recipes including exporting, deleting, tagging, and assigning categories.",
|
||||||
"recipe-columns": "Recipe Columns",
|
"recipe-columns": "Recipe Columns",
|
||||||
@ -1120,14 +1120,14 @@
|
|||||||
"ingredients-natural-language-processor-explanation-2": "It's not perfect, but it yields great results in general and is a good starting point for manually parsing ingredients into individual fields. Alternatively, you can also use the \"Brute\" processor that uses a pattern matching technique to identify ingredients.",
|
"ingredients-natural-language-processor-explanation-2": "It's not perfect, but it yields great results in general and is a good starting point for manually parsing ingredients into individual fields. Alternatively, you can also use the \"Brute\" processor that uses a pattern matching technique to identify ingredients.",
|
||||||
"nlp": "NLP",
|
"nlp": "NLP",
|
||||||
"brute": "Brute",
|
"brute": "Brute",
|
||||||
"show-individual-confidence": "Show individual confidence",
|
"show-individual-confidence": "Mostrar confianza individual",
|
||||||
"ingredient-text": "Ingredient Text",
|
"ingredient-text": "Texto del ingrediente",
|
||||||
"average-confident": "{0} Confident",
|
"average-confident": "{0} Confianza",
|
||||||
"try-an-example": "Try an example",
|
"try-an-example": "Prueba un ejemplo",
|
||||||
"parser": "Procesador",
|
"parser": "Procesador",
|
||||||
"background-tasks": "Tareas en Segundo Plano",
|
"background-tasks": "Tareas en Segundo Plano",
|
||||||
"background-tasks-description": "Here you can view all the running background tasks and their status",
|
"background-tasks-description": "Aquí puedes ver todas las tareas de fondo en ejecución y su estado",
|
||||||
"no-logs-found": "No Logs Found",
|
"no-logs-found": "No se encontraron registros",
|
||||||
"tasks": "Tareas"
|
"tasks": "Tareas"
|
||||||
},
|
},
|
||||||
"profile": {
|
"profile": {
|
||||||
@ -1137,7 +1137,7 @@
|
|||||||
"get-public-link": "Obtener enlace público",
|
"get-public-link": "Obtener enlace público",
|
||||||
"account-summary": "Información de la cuenta",
|
"account-summary": "Información de la cuenta",
|
||||||
"account-summary-description": "Este es un resumen de la información de tu grupo",
|
"account-summary-description": "Este es un resumen de la información de tu grupo",
|
||||||
"group-statistics": "Group Statistics",
|
"group-statistics": "Estadísticas del grupo",
|
||||||
"group-statistics-description": "Your Group Statistics provide some insight how you're using Mealie.",
|
"group-statistics-description": "Your Group Statistics provide some insight how you're using Mealie.",
|
||||||
"storage-capacity": "Capacidad de almacenamiento",
|
"storage-capacity": "Capacidad de almacenamiento",
|
||||||
"storage-capacity-description": "Your storage capacity is a calculation of the images and assets you have uploaded.",
|
"storage-capacity-description": "Your storage capacity is a calculation of the images and assets you have uploaded.",
|
||||||
|
@ -473,11 +473,11 @@
|
|||||||
"add-to-timeline": "Добавить в историю",
|
"add-to-timeline": "Добавить в историю",
|
||||||
"recipe-added-to-list": "Рецепт добавлен в список",
|
"recipe-added-to-list": "Рецепт добавлен в список",
|
||||||
"recipes-added-to-list": "Рецепты добавлены в список",
|
"recipes-added-to-list": "Рецепты добавлены в список",
|
||||||
"successfully-added-to-list": "Successfully added to list",
|
"successfully-added-to-list": "Успешно добавлено в список",
|
||||||
"recipe-added-to-mealplan": "Рецепт добавлен в план питания",
|
"recipe-added-to-mealplan": "Рецепт добавлен в план питания",
|
||||||
"failed-to-add-recipes-to-list": "Не удалось добавить рецепт в список",
|
"failed-to-add-recipes-to-list": "Не удалось добавить рецепт в список",
|
||||||
"failed-to-add-recipe-to-mealplan": "Не удалось добавить рецепт в план питания",
|
"failed-to-add-recipe-to-mealplan": "Не удалось добавить рецепт в план питания",
|
||||||
"failed-to-add-to-list": "Failed to add to list",
|
"failed-to-add-to-list": "Не удалось добавить в список",
|
||||||
"yield": "Выход",
|
"yield": "Выход",
|
||||||
"quantity": "Количество",
|
"quantity": "Количество",
|
||||||
"choose-unit": "Выберите единицу измерения",
|
"choose-unit": "Выберите единицу измерения",
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
"support": "Podpora",
|
"support": "Podpora",
|
||||||
"version": "Verzija",
|
"version": "Verzija",
|
||||||
"unknown-version": "neznano",
|
"unknown-version": "neznano",
|
||||||
"sponsor": "Sponsor"
|
"sponsor": "Sponzor"
|
||||||
},
|
},
|
||||||
"asset": {
|
"asset": {
|
||||||
"assets": "Viri",
|
"assets": "Viri",
|
||||||
@ -53,9 +53,9 @@
|
|||||||
"apprise-url": "Apprise URL",
|
"apprise-url": "Apprise URL",
|
||||||
"database": "Baza podatkov",
|
"database": "Baza podatkov",
|
||||||
"delete-event": "Zbriši dogodek",
|
"delete-event": "Zbriši dogodek",
|
||||||
"event-delete-confirmation": "Are you sure you want to delete this event?",
|
"event-delete-confirmation": "Ali ste prepričani, da želite izbrisati ta dogodek?",
|
||||||
"event-deleted": "Event Deleted",
|
"event-deleted": "Dogodek izbrisan",
|
||||||
"event-updated": "Event Updated",
|
"event-updated": "Dogodek posodobljen",
|
||||||
"new-notification-form-description": "Mealie uporablja Apprise knjižnico za kreiranje obvestil. Omogoča več različnih servisov za uporabo obvestil. Preglejte njihovo wiki stran, za bolj natančen vodič, kako izdelati URL za vaš servis. Če je na voljo, so za vaš izbran servis obvestil, na voljo tudi dodane možnosti.",
|
"new-notification-form-description": "Mealie uporablja Apprise knjižnico za kreiranje obvestil. Omogoča več različnih servisov za uporabo obvestil. Preglejte njihovo wiki stran, za bolj natančen vodič, kako izdelati URL za vaš servis. Če je na voljo, so za vaš izbran servis obvestil, na voljo tudi dodane možnosti.",
|
||||||
"new-version": "Na voljo je nova verzija!",
|
"new-version": "Na voljo je nova verzija!",
|
||||||
"notification": "Obvestila",
|
"notification": "Obvestila",
|
||||||
@ -64,7 +64,7 @@
|
|||||||
"something-went-wrong": "Nekaj je šlo narobe!",
|
"something-went-wrong": "Nekaj je šlo narobe!",
|
||||||
"subscribed-events": "Naročeni dogodki",
|
"subscribed-events": "Naročeni dogodki",
|
||||||
"test-message-sent": "Testno sporočilo je bilo poslano",
|
"test-message-sent": "Testno sporočilo je bilo poslano",
|
||||||
"new-notification": "New Notification",
|
"new-notification": "Novo obvestilo",
|
||||||
"event-notifiers": "Event Notifiers",
|
"event-notifiers": "Event Notifiers",
|
||||||
"apprise-url-skipped-if-blank": "Apprise URL (skipped if blank)",
|
"apprise-url-skipped-if-blank": "Apprise URL (skipped if blank)",
|
||||||
"enable-notifier": "Enable Notifier",
|
"enable-notifier": "Enable Notifier",
|
||||||
@ -114,12 +114,12 @@
|
|||||||
"json": "JSON",
|
"json": "JSON",
|
||||||
"keyword": "Ključna beseda",
|
"keyword": "Ključna beseda",
|
||||||
"link-copied": "Povezava kopirana",
|
"link-copied": "Povezava kopirana",
|
||||||
"loading": "Loading",
|
"loading": "Nalaganje",
|
||||||
"loading-events": "Loading Events",
|
"loading-events": "Loading Events",
|
||||||
"loading-recipe": "Loading recipe...",
|
"loading-recipe": "Nalagam recepte...",
|
||||||
"loading-ocr-data": "Loading OCR data...",
|
"loading-ocr-data": "Loading OCR data...",
|
||||||
"loading-recipes": "Nalagam recepte",
|
"loading-recipes": "Nalagam recepte",
|
||||||
"message": "Message",
|
"message": "Sporočilo",
|
||||||
"monday": "Ponedeljek",
|
"monday": "Ponedeljek",
|
||||||
"name": "Ime",
|
"name": "Ime",
|
||||||
"new": "Novo",
|
"new": "Novo",
|
||||||
@ -146,7 +146,7 @@
|
|||||||
"sort": "Razvrsti",
|
"sort": "Razvrsti",
|
||||||
"sort-alphabetically": "Po abecedi",
|
"sort-alphabetically": "Po abecedi",
|
||||||
"status": "Stanje",
|
"status": "Stanje",
|
||||||
"subject": "Subject",
|
"subject": "Zadeva",
|
||||||
"submit": "Pošlji",
|
"submit": "Pošlji",
|
||||||
"success-count": "Uspešno: {count}",
|
"success-count": "Uspešno: {count}",
|
||||||
"sunday": "Nedelja",
|
"sunday": "Nedelja",
|
||||||
@ -186,17 +186,17 @@
|
|||||||
"color": "Barva",
|
"color": "Barva",
|
||||||
"timestamp": "Časovni žig",
|
"timestamp": "Časovni žig",
|
||||||
"last-made": "Last Made",
|
"last-made": "Last Made",
|
||||||
"learn-more": "Learn More",
|
"learn-more": "Več o tem",
|
||||||
"this-feature-is-currently-inactive": "This feature is currently inactive",
|
"this-feature-is-currently-inactive": "This feature is currently inactive",
|
||||||
"clipboard-not-supported": "Clipboard not supported",
|
"clipboard-not-supported": "Clipboard not supported",
|
||||||
"copied-to-clipboard": "Copied to clipboard",
|
"copied-to-clipboard": "Kopiraj v odložišče",
|
||||||
"your-browser-does-not-support-clipboard": "Your browser does not support clipboard",
|
"your-browser-does-not-support-clipboard": "Your browser does not support clipboard",
|
||||||
"copied-items-to-clipboard": "No item copied to clipboard|One item copied to clipboard|Copied {count} items to clipboard",
|
"copied-items-to-clipboard": "No item copied to clipboard|One item copied to clipboard|Copied {count} items to clipboard",
|
||||||
"actions": "Actions",
|
"actions": "Actions",
|
||||||
"selected-count": "Selected: {count}",
|
"selected-count": "Selected: {count}",
|
||||||
"export-all": "Export All",
|
"export-all": "Izvozi vse",
|
||||||
"refresh": "Refresh",
|
"refresh": "Osveži",
|
||||||
"upload-file": "Upload File",
|
"upload-file": "Naloži datoteko",
|
||||||
"created-on-date": "Created on: {0}",
|
"created-on-date": "Created on: {0}",
|
||||||
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
||||||
"clipboard-copy-failure": "Failed to copy to the clipboard."
|
"clipboard-copy-failure": "Failed to copy to the clipboard."
|
||||||
@ -225,15 +225,15 @@
|
|||||||
"keep-my-recipes-private": "Moji recepti naj bodo privatni",
|
"keep-my-recipes-private": "Moji recepti naj bodo privatni",
|
||||||
"keep-my-recipes-private-description": "Nastavi vaše skupine in vse recepte privzeto kot privatni. Kasneje lahko to vedno spremenite."
|
"keep-my-recipes-private-description": "Nastavi vaše skupine in vse recepte privzeto kot privatni. Kasneje lahko to vedno spremenite."
|
||||||
},
|
},
|
||||||
"manage-members": "Manage Members",
|
"manage-members": "Urejanje članov",
|
||||||
"manage-members-description": "Manage the permissions of the members in your groups. {manage} allows the user to access the data-management page {invite} allows the user to generate invitation links for other users. Group owners cannot change their own permissions.",
|
"manage-members-description": "Manage the permissions of the members in your groups. {manage} allows the user to access the data-management page {invite} allows the user to generate invitation links for other users. Group owners cannot change their own permissions.",
|
||||||
"manage": "Manage",
|
"manage": "Manage",
|
||||||
"invite": "Invite",
|
"invite": "Povabi",
|
||||||
"looking-to-update-your-profile": "Looking to Update Your Profile?",
|
"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.",
|
"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.",
|
||||||
"default-recipe-preferences": "Default Recipe Preferences",
|
"default-recipe-preferences": "Default Recipe Preferences",
|
||||||
"group-preferences": "Group Preferences",
|
"group-preferences": "Group Preferences",
|
||||||
"private-group": "Private Group",
|
"private-group": "Zasebna skupina",
|
||||||
"private-group-description": "Setting your group to private will default all public view options to default. This overrides an individual recipes public view settings.",
|
"private-group-description": "Setting your group to private will default all public view options to default. This overrides an individual recipes public view settings.",
|
||||||
"allow-users-outside-of-your-group-to-see-your-recipes": "Allow users outside of your group to see your recipes",
|
"allow-users-outside-of-your-group-to-see-your-recipes": "Allow users outside of your group to see your recipes",
|
||||||
"allow-users-outside-of-your-group-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 group or with a pre-generated private link",
|
"allow-users-outside-of-your-group-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 group or with a pre-generated private link",
|
||||||
@ -249,7 +249,7 @@
|
|||||||
"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": "Hides the Food, Unit, and Amount fields for ingredients and treats ingredients as plain text fields.",
|
||||||
"general-preferences": "General Preferences",
|
"general-preferences": "General Preferences",
|
||||||
"group-recipe-preferences": "Group Recipe Preferences",
|
"group-recipe-preferences": "Group Recipe Preferences",
|
||||||
"report": "Report",
|
"report": "Prijavi",
|
||||||
"report-with-id": "Report ID: {id}",
|
"report-with-id": "Report ID: {id}",
|
||||||
"group-management": "Group Management",
|
"group-management": "Group Management",
|
||||||
"admin-group-management": "Admin Group Management",
|
"admin-group-management": "Admin Group Management",
|
||||||
@ -407,7 +407,7 @@
|
|||||||
"carbohydrate-content": "Ogljikovi hidrati",
|
"carbohydrate-content": "Ogljikovi hidrati",
|
||||||
"categories": "Kategorije",
|
"categories": "Kategorije",
|
||||||
"comment-action": "Pripomba",
|
"comment-action": "Pripomba",
|
||||||
"comment": "Comment",
|
"comment": "Komentar",
|
||||||
"comments": "Pripombe",
|
"comments": "Pripombe",
|
||||||
"delete-confirmation": "Ali želite izbrisati ta recept?",
|
"delete-confirmation": "Ali želite izbrisati ta recept?",
|
||||||
"delete-recipe": "Izbriši recept",
|
"delete-recipe": "Izbriši recept",
|
||||||
@ -472,8 +472,8 @@
|
|||||||
"add-to-plan": "Dodaj v načrt",
|
"add-to-plan": "Dodaj v načrt",
|
||||||
"add-to-timeline": "Add to Timeline",
|
"add-to-timeline": "Add to Timeline",
|
||||||
"recipe-added-to-list": "Recept dodan na seznam",
|
"recipe-added-to-list": "Recept dodan na seznam",
|
||||||
"recipes-added-to-list": "Recipes added to list",
|
"recipes-added-to-list": "Recepti dodani na seznam",
|
||||||
"successfully-added-to-list": "Successfully added to list",
|
"successfully-added-to-list": "Uspešno dodano na seznam",
|
||||||
"recipe-added-to-mealplan": "Recept dodan v načrtovanje obroka",
|
"recipe-added-to-mealplan": "Recept dodan v načrtovanje obroka",
|
||||||
"failed-to-add-recipes-to-list": "Failed to add recipe to list",
|
"failed-to-add-recipes-to-list": "Failed to add recipe to list",
|
||||||
"failed-to-add-recipe-to-mealplan": "Napaka pri dodajanji recepta v načrtovanje obroka",
|
"failed-to-add-recipe-to-mealplan": "Napaka pri dodajanji recepta v načrtovanje obroka",
|
||||||
@ -500,18 +500,18 @@
|
|||||||
"public-link": "Javna povezava",
|
"public-link": "Javna povezava",
|
||||||
"timer": {
|
"timer": {
|
||||||
"kitchen-timer": "Kitchen Timer",
|
"kitchen-timer": "Kitchen Timer",
|
||||||
"start-timer": "Start Timer",
|
"start-timer": "Zaženi časovnik",
|
||||||
"pause-timer": "Pause Timer",
|
"pause-timer": "Ustavi časovnik",
|
||||||
"resume-timer": "Resume Timer",
|
"resume-timer": "Nadaljuj časovnik",
|
||||||
"stop-timer": "Stop Timer"
|
"stop-timer": "Ustavi časovnik"
|
||||||
},
|
},
|
||||||
"edit-timeline-event": "Edit Timeline Event",
|
"edit-timeline-event": "Edit Timeline Event",
|
||||||
"timeline": "Timeline",
|
"timeline": "Časovnica",
|
||||||
"timeline-is-empty": "Nothing on the timeline yet. Try making this recipe!",
|
"timeline-is-empty": "Nothing on the timeline yet. Try making this recipe!",
|
||||||
"group-global-timeline": "{groupName} Global Timeline",
|
"group-global-timeline": "{groupName} Global Timeline",
|
||||||
"open-timeline": "Open Timeline",
|
"open-timeline": "Open Timeline",
|
||||||
"made-this": "I Made This",
|
"made-this": "Naredil sem to",
|
||||||
"how-did-it-turn-out": "How did it turn out?",
|
"how-did-it-turn-out": "Kako se je izkazalo?",
|
||||||
"user-made-this": "{user} made this",
|
"user-made-this": "{user} made this",
|
||||||
"last-made-date": "Last Made {date}",
|
"last-made-date": "Last Made {date}",
|
||||||
"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.",
|
"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.",
|
||||||
@ -557,11 +557,11 @@
|
|||||||
"debug": "Debug",
|
"debug": "Debug",
|
||||||
"tree-view": "Tree View",
|
"tree-view": "Tree View",
|
||||||
"recipe-yield": "Recipe Yield",
|
"recipe-yield": "Recipe Yield",
|
||||||
"unit": "Unit",
|
"unit": "Enota",
|
||||||
"upload-image": "Upload image",
|
"upload-image": "Naloži sliko",
|
||||||
"screen-awake": "Keep Screen Awake",
|
"screen-awake": "Ohranjanje budnega zaslona",
|
||||||
"remove-image": "Remove image",
|
"remove-image": "Odstrani sliko",
|
||||||
"nextStep": "Next step"
|
"nextStep": "Naslednji korak"
|
||||||
},
|
},
|
||||||
"search": {
|
"search": {
|
||||||
"advanced-search": "Napredno iskanje",
|
"advanced-search": "Napredno iskanje",
|
||||||
@ -712,7 +712,7 @@
|
|||||||
"general-about": "General About",
|
"general-about": "General About",
|
||||||
"application-version": "Application Version",
|
"application-version": "Application Version",
|
||||||
"application-version-error-text": "Your current version ({0}) does not match the latest release. Considering updating to the latest version ({1}).",
|
"application-version-error-text": "Your current version ({0}) does not match the latest release. Considering updating to the latest version ({1}).",
|
||||||
"mealie-is-up-to-date": "Mealie is up to date",
|
"mealie-is-up-to-date": "Mealie je v najnovejši različici",
|
||||||
"secure-site": "Secure Site",
|
"secure-site": "Secure Site",
|
||||||
"secure-site-error-text": "Serve via localhost or secure with https. Clipboard and additional browser APIs may not work.",
|
"secure-site-error-text": "Serve via localhost or secure with https. Clipboard and additional browser APIs may not work.",
|
||||||
"secure-site-success-text": "Site is accessed by localhost or https",
|
"secure-site-success-text": "Site is accessed by localhost or https",
|
||||||
@ -796,7 +796,7 @@
|
|||||||
"untagged-count": "Brez značke {count}",
|
"untagged-count": "Brez značke {count}",
|
||||||
"create-a-tag": "Ustvari značko",
|
"create-a-tag": "Ustvari značko",
|
||||||
"tag-name": "Ime značke",
|
"tag-name": "Ime značke",
|
||||||
"tag": "Tag"
|
"tag": "Oznaka"
|
||||||
},
|
},
|
||||||
"tool": {
|
"tool": {
|
||||||
"tools": "Orodja",
|
"tools": "Orodja",
|
||||||
@ -877,10 +877,10 @@
|
|||||||
"account-locked-please-try-again-later": "Account Locked. Please try again later",
|
"account-locked-please-try-again-later": "Account Locked. Please try again later",
|
||||||
"user-favorites": "User Favorites",
|
"user-favorites": "User Favorites",
|
||||||
"password-strength-values": {
|
"password-strength-values": {
|
||||||
"weak": "Weak",
|
"weak": "Šibko",
|
||||||
"good": "Good",
|
"good": "Dobro",
|
||||||
"strong": "Strong",
|
"strong": "Močno",
|
||||||
"very-strong": "Very Strong"
|
"very-strong": "Zelo močno"
|
||||||
},
|
},
|
||||||
"user-management": "User Management",
|
"user-management": "User Management",
|
||||||
"reset-locked-users": "Reset Locked Users",
|
"reset-locked-users": "Reset Locked Users",
|
||||||
@ -898,7 +898,7 @@
|
|||||||
"enable-advanced-features": "Enable advanced features",
|
"enable-advanced-features": "Enable advanced features",
|
||||||
"it-looks-like-this-is-your-first-time-logging-in": "It looks like this is your first time logging in.",
|
"it-looks-like-this-is-your-first-time-logging-in": "It looks like this is your first time logging in.",
|
||||||
"dont-want-to-see-this-anymore-be-sure-to-change-your-email": "Don't want to see this anymore? Be sure to change your email in your user settings!",
|
"dont-want-to-see-this-anymore-be-sure-to-change-your-email": "Don't want to see this anymore? Be sure to change your email in your user settings!",
|
||||||
"forgot-password": "Forgot Password",
|
"forgot-password": "Ste pozabili geslo",
|
||||||
"forgot-password-text": "Please enter your email address and we will send you a link to reset your password.",
|
"forgot-password-text": "Please enter your email address and we will send you a link to reset your password.",
|
||||||
"changes-reflected-immediately": "Changes to this user will be reflected immediately."
|
"changes-reflected-immediately": "Changes to this user will be reflected immediately."
|
||||||
},
|
},
|
||||||
@ -920,10 +920,10 @@
|
|||||||
"target-food": "Target Food",
|
"target-food": "Target Food",
|
||||||
"create-food": "Create Food",
|
"create-food": "Create Food",
|
||||||
"food-label": "Food Label",
|
"food-label": "Food Label",
|
||||||
"edit-food": "Edit Food",
|
"edit-food": "Spremeni živilo",
|
||||||
"food-data": "Food Data",
|
"food-data": "Food Data",
|
||||||
"example-food-singular": "ex: Onion",
|
"example-food-singular": "npr: Čebula",
|
||||||
"example-food-plural": "ex: Onions"
|
"example-food-plural": "npr: Čebule"
|
||||||
},
|
},
|
||||||
"units": {
|
"units": {
|
||||||
"seed-dialog-text": "Napolni podatkovno bazo z običajnimi enotami, glede na vaš lokalni jezik.",
|
"seed-dialog-text": "Napolni podatkovno bazo z običajnimi enotami, glede na vaš lokalni jezik.",
|
||||||
@ -981,12 +981,12 @@
|
|||||||
"data-management": "Data Management",
|
"data-management": "Data Management",
|
||||||
"data-management-description": "Select which data set you want to make changes to.",
|
"data-management-description": "Select which data set you want to make changes to.",
|
||||||
"select-data": "Select Data",
|
"select-data": "Select Data",
|
||||||
"select-language": "Select Language",
|
"select-language": "Izberite jezik",
|
||||||
"columns": "Columns",
|
"columns": "Columns",
|
||||||
"combine": "Combine",
|
"combine": "Combine",
|
||||||
"categories": {
|
"categories": {
|
||||||
"edit-category": "Edit Category",
|
"edit-category": "Uredi kategorijo",
|
||||||
"new-category": "New Category",
|
"new-category": "Nova kategorija",
|
||||||
"category-data": "Category Data"
|
"category-data": "Category Data"
|
||||||
},
|
},
|
||||||
"tags": {
|
"tags": {
|
||||||
@ -1131,7 +1131,7 @@
|
|||||||
"tasks": "Tasks"
|
"tasks": "Tasks"
|
||||||
},
|
},
|
||||||
"profile": {
|
"profile": {
|
||||||
"welcome-user": "👋 Welcome, {0}",
|
"welcome-user": "👋 Dobrodošel, {0}",
|
||||||
"description": "Manage your profile, recipes, and group settings.",
|
"description": "Manage your profile, recipes, and group settings.",
|
||||||
"get-invite-link": "Get Invite Link",
|
"get-invite-link": "Get Invite Link",
|
||||||
"get-public-link": "Get Public Link",
|
"get-public-link": "Get Public Link",
|
||||||
@ -1150,7 +1150,7 @@
|
|||||||
"group-settings": "Group Settings",
|
"group-settings": "Group Settings",
|
||||||
"group-settings-description": "Manage your common group settings like mealplan and privacy settings.",
|
"group-settings-description": "Manage your common group settings like mealplan and privacy settings.",
|
||||||
"cookbooks-description": "Manage a collection of recipe categories and generate pages for them.",
|
"cookbooks-description": "Manage a collection of recipe categories and generate pages for them.",
|
||||||
"members": "Members",
|
"members": "Člani",
|
||||||
"members-description": "See who's in your group and manage their permissions.",
|
"members-description": "See who's in your group and manage their permissions.",
|
||||||
"webhooks-description": "Setup webhooks that trigger on days that you have have mealplan scheduled.",
|
"webhooks-description": "Setup webhooks that trigger on days that you have have mealplan scheduled.",
|
||||||
"notifiers": "Notifiers",
|
"notifiers": "Notifiers",
|
||||||
@ -1175,9 +1175,9 @@
|
|||||||
"manage-data-migrations": "Manage Data Migrations"
|
"manage-data-migrations": "Manage Data Migrations"
|
||||||
},
|
},
|
||||||
"cookbook": {
|
"cookbook": {
|
||||||
"cookbooks": "Cookbooks",
|
"cookbooks": "Kuharske knjige",
|
||||||
"description": "Cookbooks are another way to organize recipes by creating cross sections of recipes and tags. Creating a cookbook will add an entry to the side-bar and all the recipes with the tags and categories chosen will be displayed in the cookbook.",
|
"description": "Cookbooks are another way to organize recipes by creating cross sections of recipes and tags. Creating a cookbook will add an entry to the side-bar and all the recipes with the tags and categories chosen will be displayed in the cookbook.",
|
||||||
"public-cookbook": "Public Cookbook",
|
"public-cookbook": "Javna kuharska knjiga",
|
||||||
"public-cookbook-description": "Public Cookbooks can be shared with non-mealie users and will be displayed on your groups page.",
|
"public-cookbook-description": "Public Cookbooks can be shared with non-mealie users and will be displayed on your groups page.",
|
||||||
"filter-options": "Filter Options",
|
"filter-options": "Filter Options",
|
||||||
"filter-options-description": "When require all is selected the cookbook will only include recipes that have all of the items selected. This applies to each subset of selectors and not a cross section of the selected items.",
|
"filter-options-description": "When require all is selected the cookbook will only include recipes that have all of the items selected. This applies to each subset of selectors and not a cross section of the selected items.",
|
||||||
|
@ -74,7 +74,13 @@ export default defineComponent({
|
|||||||
|
|
||||||
const { response, data } = await adminApi.groups.updateOne(group.value.id, group.value);
|
const { response, data } = await adminApi.groups.updateOne(group.value.id, group.value);
|
||||||
if (response?.status === 200 && data) {
|
if (response?.status === 200 && data) {
|
||||||
|
if (group.value.slug !== data.slug) {
|
||||||
|
// the slug updated, which invalidates the nav URLs
|
||||||
|
window.location.reload();
|
||||||
|
}
|
||||||
group.value = data;
|
group.value = data;
|
||||||
|
} else {
|
||||||
|
alert.error(i18n.tc("settings.settings-update-failed"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6,16 +6,16 @@
|
|||||||
"unique-name-error": "Ime recepta mora biti unikatno"
|
"unique-name-error": "Ime recepta mora biti unikatno"
|
||||||
},
|
},
|
||||||
"mealplan": {
|
"mealplan": {
|
||||||
"no-recipes-match-your-rules": "No recipes match your rules"
|
"no-recipes-match-your-rules": "Noben recept ne ustreza vašim pogojem"
|
||||||
},
|
},
|
||||||
"user": {
|
"user": {
|
||||||
"user-updated": "User updated",
|
"user-updated": "Uporabnik posodobljen",
|
||||||
"password-updated": "Password updated",
|
"password-updated": "Geslo posodobljeno",
|
||||||
"invalid-current-password": "Invalid current password",
|
"invalid-current-password": "Neveljavno trenutno geslo",
|
||||||
"ldap-update-password-unavailable": "Unable to update password, user is controlled by LDAP"
|
"ldap-update-password-unavailable": "Gesla ni mogoče posodobiti, uporabnik je nadzorovan preko LDAP"
|
||||||
},
|
},
|
||||||
"group": {
|
"group": {
|
||||||
"report-deleted": "Report deleted."
|
"report-deleted": "Poročilo izbrisano."
|
||||||
},
|
},
|
||||||
"exceptions": {
|
"exceptions": {
|
||||||
"permission_denied": "Nimate dovoljenja za izvedbo zahtevanega dejanja",
|
"permission_denied": "Nimate dovoljenja za izvedbo zahtevanega dejanja",
|
||||||
|
@ -14,7 +14,7 @@ from mealie.db.models.recipe.tag import Tag
|
|||||||
from mealie.db.models.recipe.tool import Tool
|
from mealie.db.models.recipe.tool import Tool
|
||||||
from mealie.db.models.users.users import User
|
from mealie.db.models.users.users import User
|
||||||
from mealie.schema.group.group_statistics import GroupStatistics
|
from mealie.schema.group.group_statistics import GroupStatistics
|
||||||
from mealie.schema.user.user import GroupBase, GroupInDB
|
from mealie.schema.user.user import GroupBase, GroupInDB, UpdateGroup
|
||||||
|
|
||||||
from ..db.models._model_base import SqlAlchemyBase
|
from ..db.models._model_base import SqlAlchemyBase
|
||||||
from .repository_generic import RepositoryGeneric
|
from .repository_generic import RepositoryGeneric
|
||||||
@ -45,6 +45,18 @@ class RepositoryGroup(RepositoryGeneric[GroupInDB, Group]):
|
|||||||
# since create uses special logic for resolving slugs, we don't want to use the standard create_many method
|
# since create uses special logic for resolving slugs, we don't want to use the standard create_many method
|
||||||
return [self.create(new_group) for new_group in data]
|
return [self.create(new_group) for new_group in data]
|
||||||
|
|
||||||
|
def update(self, match_value: str | int | UUID4, new_data: UpdateGroup | dict) -> GroupInDB:
|
||||||
|
if isinstance(new_data, GroupBase):
|
||||||
|
new_data.slug = slugify(new_data.name)
|
||||||
|
else:
|
||||||
|
new_data["slug"] = slugify(new_data["name"])
|
||||||
|
|
||||||
|
return super().update(match_value, new_data)
|
||||||
|
|
||||||
|
def update_many(self, data: Iterable[UpdateGroup | dict]) -> list[GroupInDB]:
|
||||||
|
# since update uses special logic for resolving slugs, we don't want to use the standard update_many method
|
||||||
|
return [self.update(group["id"] if isinstance(group, dict) else group.id, group) for group in data]
|
||||||
|
|
||||||
def get_by_name(self, name: str) -> GroupInDB | None:
|
def get_by_name(self, name: str) -> GroupInDB | None:
|
||||||
dbgroup = self.session.execute(select(self.model).filter_by(name=name)).scalars().one_or_none()
|
dbgroup = self.session.execute(select(self.model).filter_by(name=name)).scalars().one_or_none()
|
||||||
if dbgroup is None:
|
if dbgroup is None:
|
||||||
|
51
poetry.lock
generated
51
poetry.lock
generated
@ -1426,6 +1426,19 @@ files = [
|
|||||||
{file = "paginate-0.5.6.tar.gz", hash = "sha256:5e6007b6a9398177a7e1648d04fdd9f8c9766a1a945bceac82f1929e8c78af2d"},
|
{file = "paginate-0.5.6.tar.gz", hash = "sha256:5e6007b6a9398177a7e1648d04fdd9f8c9766a1a945bceac82f1929e8c78af2d"},
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "paho-mqtt"
|
||||||
|
version = "1.6.1"
|
||||||
|
description = "MQTT version 5.0/3.1.1 client class"
|
||||||
|
optional = false
|
||||||
|
python-versions = "*"
|
||||||
|
files = [
|
||||||
|
{file = "paho-mqtt-1.6.1.tar.gz", hash = "sha256:2a8291c81623aec00372b5a85558a372c747cbca8e9934dfe218638b8eefc26f"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
proxy = ["PySocks"]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pathspec"
|
name = "pathspec"
|
||||||
version = "0.11.2"
|
version = "0.11.2"
|
||||||
@ -2368,28 +2381,28 @@ pyasn1 = ">=0.1.3"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ruff"
|
name = "ruff"
|
||||||
version = "0.1.14"
|
version = "0.1.15"
|
||||||
description = "An extremely fast Python linter and code formatter, written in Rust."
|
description = "An extremely fast Python linter and code formatter, written in Rust."
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.7"
|
python-versions = ">=3.7"
|
||||||
files = [
|
files = [
|
||||||
{file = "ruff-0.1.14-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:96f76536df9b26622755c12ed8680f159817be2f725c17ed9305b472a757cdbb"},
|
{file = "ruff-0.1.15-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:5fe8d54df166ecc24106db7dd6a68d44852d14eb0729ea4672bb4d96c320b7df"},
|
||||||
{file = "ruff-0.1.14-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:ab3f71f64498c7241123bb5a768544cf42821d2a537f894b22457a543d3ca7a9"},
|
{file = "ruff-0.1.15-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:6f0bfbb53c4b4de117ac4d6ddfd33aa5fc31beeaa21d23c45c6dd249faf9126f"},
|
||||||
{file = "ruff-0.1.14-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7060156ecc572b8f984fd20fd8b0fcb692dd5d837b7606e968334ab7ff0090ab"},
|
{file = "ruff-0.1.15-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e0d432aec35bfc0d800d4f70eba26e23a352386be3a6cf157083d18f6f5881c8"},
|
||||||
{file = "ruff-0.1.14-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a53d8e35313d7b67eb3db15a66c08434809107659226a90dcd7acb2afa55faea"},
|
{file = "ruff-0.1.15-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9405fa9ac0e97f35aaddf185a1be194a589424b8713e3b97b762336ec79ff807"},
|
||||||
{file = "ruff-0.1.14-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bea9be712b8f5b4ebed40e1949379cfb2a7d907f42921cf9ab3aae07e6fba9eb"},
|
{file = "ruff-0.1.15-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c66ec24fe36841636e814b8f90f572a8c0cb0e54d8b5c2d0e300d28a0d7bffec"},
|
||||||
{file = "ruff-0.1.14-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:2270504d629a0b064247983cbc495bed277f372fb9eaba41e5cf51f7ba705a6a"},
|
{file = "ruff-0.1.15-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:6f8ad828f01e8dd32cc58bc28375150171d198491fc901f6f98d2a39ba8e3ff5"},
|
||||||
{file = "ruff-0.1.14-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:80258bb3b8909b1700610dfabef7876423eed1bc930fe177c71c414921898efa"},
|
{file = "ruff-0.1.15-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:86811954eec63e9ea162af0ffa9f8d09088bab51b7438e8b6488b9401863c25e"},
|
||||||
{file = "ruff-0.1.14-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:653230dd00aaf449eb5ff25d10a6e03bc3006813e2cb99799e568f55482e5cae"},
|
{file = "ruff-0.1.15-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fd4025ac5e87d9b80e1f300207eb2fd099ff8200fa2320d7dc066a3f4622dc6b"},
|
||||||
{file = "ruff-0.1.14-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87b3acc6c4e6928459ba9eb7459dd4f0c4bf266a053c863d72a44c33246bfdbf"},
|
{file = "ruff-0.1.15-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b17b93c02cdb6aeb696effecea1095ac93f3884a49a554a9afa76bb125c114c1"},
|
||||||
{file = "ruff-0.1.14-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:6b3dadc9522d0eccc060699a9816e8127b27addbb4697fc0c08611e4e6aeb8b5"},
|
{file = "ruff-0.1.15-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:ddb87643be40f034e97e97f5bc2ef7ce39de20e34608f3f829db727a93fb82c5"},
|
||||||
{file = "ruff-0.1.14-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:1c8eca1a47b4150dc0fbec7fe68fc91c695aed798532a18dbb1424e61e9b721f"},
|
{file = "ruff-0.1.15-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:abf4822129ed3a5ce54383d5f0e964e7fef74a41e48eb1dfad404151efc130a2"},
|
||||||
{file = "ruff-0.1.14-py3-none-musllinux_1_2_i686.whl", hash = "sha256:62ce2ae46303ee896fc6811f63d6dabf8d9c389da0f3e3f2bce8bc7f15ef5488"},
|
{file = "ruff-0.1.15-py3-none-musllinux_1_2_i686.whl", hash = "sha256:6c629cf64bacfd136c07c78ac10a54578ec9d1bd2a9d395efbee0935868bf852"},
|
||||||
{file = "ruff-0.1.14-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:b2027dde79d217b211d725fc833e8965dc90a16d0d3213f1298f97465956661b"},
|
{file = "ruff-0.1.15-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:1bab866aafb53da39c2cadfb8e1c4550ac5340bb40300083eb8967ba25481447"},
|
||||||
{file = "ruff-0.1.14-py3-none-win32.whl", hash = "sha256:722bafc299145575a63bbd6b5069cb643eaa62546a5b6398f82b3e4403329cab"},
|
{file = "ruff-0.1.15-py3-none-win32.whl", hash = "sha256:2417e1cb6e2068389b07e6fa74c306b2810fe3ee3476d5b8a96616633f40d14f"},
|
||||||
{file = "ruff-0.1.14-py3-none-win_amd64.whl", hash = "sha256:e3d241aa61f92b0805a7082bd89a9990826448e4d0398f0e2bc8f05c75c63d99"},
|
{file = "ruff-0.1.15-py3-none-win_amd64.whl", hash = "sha256:3837ac73d869efc4182d9036b1405ef4c73d9b1f88da2413875e34e0d6919587"},
|
||||||
{file = "ruff-0.1.14-py3-none-win_arm64.whl", hash = "sha256:269302b31ade4cde6cf6f9dd58ea593773a37ed3f7b97e793c8594b262466b67"},
|
{file = "ruff-0.1.15-py3-none-win_arm64.whl", hash = "sha256:9a933dfb1c14ec7a33cceb1e49ec4a16b51ce3c20fd42663198746efc0427360"},
|
||||||
{file = "ruff-0.1.14.tar.gz", hash = "sha256:ad3f8088b2dfd884820289a06ab718cde7d38b94972212cc4ba90d5fbc9955f3"},
|
{file = "ruff-0.1.15.tar.gz", hash = "sha256:f6dfa8c1b21c913c326919056c390966648b680966febcb796cc9d1aaab8564e"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -2931,4 +2944,4 @@ pgsql = ["psycopg2-binary"]
|
|||||||
[metadata]
|
[metadata]
|
||||||
lock-version = "2.0"
|
lock-version = "2.0"
|
||||||
python-versions = "^3.10"
|
python-versions = "^3.10"
|
||||||
content-hash = "b01f7f65f250a3ff09b0a053ae8991210ec2071ee388cba922ad58149e60ede1"
|
content-hash = "e1ca2b8f820621470f312ce0d6b965d9ecfa102bbf09a029b93539500b29e2c1"
|
||||||
|
@ -44,6 +44,7 @@ isodate = "^0.6.1"
|
|||||||
text-unidecode = "^1.3"
|
text-unidecode = "^1.3"
|
||||||
rapidfuzz = "^3.2.0"
|
rapidfuzz = "^3.2.0"
|
||||||
html2text = "^2020.1.16"
|
html2text = "^2020.1.16"
|
||||||
|
paho-mqtt = "^1.6.1"
|
||||||
|
|
||||||
[tool.poetry.group.postgres.dependencies]
|
[tool.poetry.group.postgres.dependencies]
|
||||||
psycopg2-binary = { version = "^2.9.1" }
|
psycopg2-binary = { version = "^2.9.1" }
|
||||||
|
@ -1,8 +1,10 @@
|
|||||||
|
from slugify import slugify
|
||||||
|
|
||||||
from mealie.repos.repository_factory import AllRepositories
|
from mealie.repos.repository_factory import AllRepositories
|
||||||
from tests.utils.factories import random_int, random_string
|
from tests.utils.factories import random_int, random_string
|
||||||
|
|
||||||
|
|
||||||
def test_group_resolve_similar_names(database: AllRepositories):
|
def test_create_group_resolve_similar_names(database: AllRepositories):
|
||||||
base_group_name = random_string()
|
base_group_name = random_string()
|
||||||
groups = database.groups.create_many({"name": base_group_name} for _ in range(random_int(3, 10)))
|
groups = database.groups.create_many({"name": base_group_name} for _ in range(random_int(3, 10)))
|
||||||
|
|
||||||
@ -22,3 +24,12 @@ def test_group_get_by_slug_or_id(database: AllRepositories):
|
|||||||
for group in groups:
|
for group in groups:
|
||||||
assert database.groups.get_by_slug_or_id(group.id) == group
|
assert database.groups.get_by_slug_or_id(group.id) == group
|
||||||
assert database.groups.get_by_slug_or_id(group.slug) == group
|
assert database.groups.get_by_slug_or_id(group.slug) == group
|
||||||
|
|
||||||
|
|
||||||
|
def test_update_group_updates_slug(database: AllRepositories):
|
||||||
|
group = database.groups.create({"name": random_string()})
|
||||||
|
assert group.slug == slugify(group.name)
|
||||||
|
|
||||||
|
new_name = random_string()
|
||||||
|
group = database.groups.update(group.id, {"name": new_name})
|
||||||
|
assert group.slug == slugify(new_name)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user