mirror of
https://github.com/mealie-recipes/mealie.git
synced 2025-08-05 13:35:23 +02:00
Fix Docker Init Scripts (#277)
* fix links * actually fix #238 * Feature/mkdocs version bump (#240) * fix links (#239) Co-authored-by: hay-kot <hay-kot@pm.me> * fix #238 * bump mkdocs version * light/dark toggle * light/dark mode css * API_DOCS defaults to True * disable build on push for master Co-authored-by: hay-kot <hay-kot@pm.me> * Feature/recipe viewer (#244) * fix dialog placement * markdown support in ingredients * fix line render issue * fix tag rendering bug * change ingredients to text area * no slug error * add tag pages * remove console.logs Co-authored-by: hay-kot <hay-kot@pm.me> * changelog v0.4.1 * bug/backup-download (#245) * fix blocked download * + download blocked Co-authored-by: hay-kot <hay-kot@pm.me> * Feature/meal planner (#246) * fixes duplicate recipes in meal-plan #221 * add quick week option * scope css * add mealplanner info Co-authored-by: hay-kot <hay-kot@pm.me> * Nextcloud Import Bugs - #248 (#250) * parses datetime properly + clean category - #248 * add default credentials to docs Co-authored-by: hay-kot <hay-kot@pm.me> * Add bulk import examples to docs. (#252) * Add bulk import examples to docs. * Update api-usage.md * Add Python example for bulk import. * Change IP address in API example. * Refactor/app settings (#251) * fix env setup bugs * remove unused import * fix layout issues * changelog Co-authored-by: hay-kot <hay-kot@pm.me> * env setup fixes * Feature/about api (#253) * fix settings * app info cleanup Co-authored-by: hay-kot <hay-kot@pm.me> * Feature/image minify (#256) * fix settings * app info cleanup * bottom-bar experiment * remove dup key * type hints * add dependency * updated image with query parameters * read image options * add image minification * add image minification step * alt image routes * add image minification * set mobile bar to top Co-authored-by: hay-kot <hay-kot@pm.me> * Feature/additional endpoints (#257) * new recipe summary route * add categories to cards * add pillow * show tags instead of categories * additional debug info * add todays meal image url * about page * fix reactive tag * changelog + docs * bump version Co-authored-by: hay-kot <hay-kot@pm.me> * add pillow dependencies (#258) Co-authored-by: hay-kot <hay-kot@pm.me> * Feature/search page (#259) * add pillow dependencies * advanced search page * advanced search apge * remove extra dependencies * add pre-run script Co-authored-by: hay-kot <hay-kot@pm.me> * no image assignment * advanced search * fix docker dev build * Do not force theme settings on login form (#260) * Fix docker dev db persistence (#264) * Fix docker dev db persistence * Make run.sh the only startup script for prod + dev Credits to @hay-kot for run.sh script logic * Restore dev backend initialization in non-docker setup * Make run.sh POSIX-friendly * Allow dev backend to auto-reload in Docker * Frontend Refactor + Bug Fixes * merge category and tag selector * unifiy category selector * add hint * spacing * fix nextcloud migration * simplify email validator #261 * formatting * cleanup * auto-gen * format * update run script * unified category/tag selector * rename component * Add advanced search link * remove old code * convert keywords to tags * add proper behavior on rename * proper image name association on rename * fix test cleanup * changelog * set docker comppand * minify on migration Co-authored-by: hay-kot <hay-kot@pm.me> * bug-fixes/category-tag-creator (#266) * fix category labels * set loader for migration * v0.4.1 Co-authored-by: hay-kot <hay-kot@pm.me> * Hot Fix (#269) * fix category labels * set loader for migration * v0.4.1 * reorganize API docs Co-authored-by: hay-kot <hay-kot@pm.me> * Fix some pytests (#265) * Fix encoding issue in cleaner unit test * Add VS Code task to run pytests * Fix FileExistsError when running Windows * Add Portuguese Translation (#232) * Add Portuguese Translation * add portuguese translation option * formatting * add missing } * specify absolute path Co-authored-by: hay-kot <hay-kot@pm.me> Co-authored-by: Nat <nathanynath@yahoo.fr> Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Pedro Mata Rodrigues <pmmatarodrigues@gmail.com>
This commit is contained in:
parent
47e48e1350
commit
e11577f786
7 changed files with 185 additions and 9 deletions
9
.vscode/tasks.json
vendored
9
.vscode/tasks.json
vendored
|
@ -52,6 +52,15 @@
|
||||||
"group": "groupA"
|
"group": "groupA"
|
||||||
},
|
},
|
||||||
"problemMatcher": []
|
"problemMatcher": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Run python tests",
|
||||||
|
"command": "make test",
|
||||||
|
"type": "shell",
|
||||||
|
"presentation": {
|
||||||
|
"reveal": "always"
|
||||||
|
},
|
||||||
|
"problemMatcher": []
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,9 +40,9 @@ RUN apk add --update --no-cache --virtual .build-deps \
|
||||||
cd /app/ && poetry install --no-root --no-dev && \
|
cd /app/ && poetry install --no-root --no-dev && \
|
||||||
apk --purge del .build-deps
|
apk --purge del .build-deps
|
||||||
|
|
||||||
|
|
||||||
COPY ./mealie /app/mealie
|
COPY ./mealie /app/mealie
|
||||||
RUN poetry install --no-dev
|
RUN poetry install --no-dev
|
||||||
|
|
||||||
COPY ./Caddyfile /app
|
COPY ./Caddyfile /app
|
||||||
COPY ./dev/data/templates /app/data/templates
|
COPY ./dev/data/templates /app/data/templates
|
||||||
COPY --from=build-stage /app/dist /app/dist
|
COPY --from=build-stage /app/dist /app/dist
|
||||||
|
|
160
frontend/src/locales/pt-PT.json
Normal file
160
frontend/src/locales/pt-PT.json
Normal file
|
@ -0,0 +1,160 @@
|
||||||
|
{
|
||||||
|
"404": {
|
||||||
|
"page-not-found": "404 Página não encontrada",
|
||||||
|
"take-me-home": "Voltar ao início"
|
||||||
|
},
|
||||||
|
"new-recipe": {
|
||||||
|
"from-url": "Do URL",
|
||||||
|
"recipe-url": "URL da Receita",
|
||||||
|
"error-message": "Ocorreu um erro ao ler o URL. Verifica os registos e o debug/last_recipe.json para perceber o que correu mal." ,
|
||||||
|
"bulk-add": "Adicionar Vários",
|
||||||
|
"paste-in-your-recipe-data-each-line-will-be-treated-as-an-item-in-a-list": "Insira os dados da sua receita. Cada linha será tratada como um item numa lista."
|
||||||
|
},
|
||||||
|
"general": {
|
||||||
|
"upload": "Enviar",
|
||||||
|
"submit": "Submeter",
|
||||||
|
"name": "Nome",
|
||||||
|
"settings": "Definições",
|
||||||
|
"close": "Fechar",
|
||||||
|
"save": "Guardar",
|
||||||
|
"image-file": "Ficheiro de Imagem",
|
||||||
|
"update": "Atualizar",
|
||||||
|
"edit": "Editar",
|
||||||
|
"delete": "Eliminar",
|
||||||
|
"select": "Seleccionar",
|
||||||
|
"random": "Aleatório",
|
||||||
|
"new": "Novo",
|
||||||
|
"create": "Criar",
|
||||||
|
"cancel": "Cancelar",
|
||||||
|
"ok": "OK",
|
||||||
|
"enabled": "Ativado",
|
||||||
|
"download": "Transferir",
|
||||||
|
"import": "Importar",
|
||||||
|
"options": "Opções",
|
||||||
|
"templates": "Templates",
|
||||||
|
"recipes": "Receitas",
|
||||||
|
"themes": "Temas",
|
||||||
|
"confirm": "Confirmar"
|
||||||
|
},
|
||||||
|
"login": {
|
||||||
|
"stay-logged-in": "Manter a sessão iniciada?",
|
||||||
|
"email": "Email",
|
||||||
|
"password": "Password",
|
||||||
|
"sign-in": "Iniciar Sessão",
|
||||||
|
"sign-up": "Criar Conta"
|
||||||
|
},
|
||||||
|
"meal-plan": {
|
||||||
|
"shopping-list": "Lista de Compras",
|
||||||
|
"dinner-this-week": "Jantar esta semana",
|
||||||
|
"meal-planner": "Planeador de Refeições",
|
||||||
|
"dinner-today": "Jantar Hoje",
|
||||||
|
"planner": "Planeador",
|
||||||
|
"edit-meal-plan": "Editar Plano de Refeições",
|
||||||
|
"meal-plans": "Planos de Refeições",
|
||||||
|
"create-a-new-meal-plan": "Criar novo Plano de Refeições",
|
||||||
|
"start-date": "Data de Inicio",
|
||||||
|
"end-date": "Data de Fim"
|
||||||
|
},
|
||||||
|
"recipe": {
|
||||||
|
"description": "Descrição",
|
||||||
|
"ingredients": "Ingredientes",
|
||||||
|
"categories": "Categorias",
|
||||||
|
"tags": "Etiquetas",
|
||||||
|
"instructions": "Instruções",
|
||||||
|
"step-index": "Passo: {step}",
|
||||||
|
"recipe-name": "Nome da Receita",
|
||||||
|
"servings": "Porções",
|
||||||
|
"ingredient": "Ingrediente",
|
||||||
|
"notes": "Notas",
|
||||||
|
"note": "Nota",
|
||||||
|
"original-url": "URL Original",
|
||||||
|
"view-recipe": "Ver Receita",
|
||||||
|
"title": "Título",
|
||||||
|
"total-time": "Tempo Total",
|
||||||
|
"prep-time": "Tempo de Preparação",
|
||||||
|
"perform-time": "Tempo de Cozedura",
|
||||||
|
"api-extras": "Extras API",
|
||||||
|
"object-key": "Chave do Objeto",
|
||||||
|
"object-value": "Valor do Objeto",
|
||||||
|
"new-key-name": "Novo nome da Chave",
|
||||||
|
"add-key": "Adicionar Chave",
|
||||||
|
"key-name-required": "Nome da Chave é Obrigatório",
|
||||||
|
"no-white-space-allowed": "Espaço em Branco não Permitido",
|
||||||
|
"delete-recipe": "Eliminar Receita",
|
||||||
|
"delete-confirmation": "Tem a certeza que deseja eliminar esta receita?"
|
||||||
|
},
|
||||||
|
"search": {
|
||||||
|
"search-mealie": "Pesquisar Mealie"
|
||||||
|
},
|
||||||
|
"settings": {
|
||||||
|
"general-settings": "Definições Gerais",
|
||||||
|
"local-api": "API Local",
|
||||||
|
"language": "Língua",
|
||||||
|
"add-a-new-theme": "Adicionar novo tema",
|
||||||
|
"set-new-time": "Definir hora",
|
||||||
|
"current": "Versão:",
|
||||||
|
"latest": "Mais Recente",
|
||||||
|
"explore-the-docs": "Explorar Documentação",
|
||||||
|
"contribute": "Contribuir",
|
||||||
|
"backup-and-exports": "Backups",
|
||||||
|
"backup-info": "Backups are exported in standard JSON format along with all the images stored on the file system. In your backup folder you'll find a .zip file that contains all of the recipe JSON and images from the database. Additionally, if you selected a markdown file, those will also be stored in the .zip file. To import a backup, it must be located in your backups folder. Automated backups are done each day at 3:00 AM.",
|
||||||
|
"available-backups": "Backups Disponíveis",
|
||||||
|
"theme": {
|
||||||
|
"theme-name": "Nome do Tema",
|
||||||
|
"theme-settings": "Definições do Tema",
|
||||||
|
"select-a-theme-from-the-dropdown-or-create-a-new-theme-note-that-the-default-theme-will-be-served-to-all-users-who-have-not-set-a-theme-preference": "Selecione um tema da lista ou crie um novo tema. Note que o tema por defeito será utilizado por todos os utilizadores que não selecionaram um tema preferido.",
|
||||||
|
"dark-mode": "Modo Escuro",
|
||||||
|
"theme-is-required": "Tema é Obrigatório",
|
||||||
|
"primary": "Primário",
|
||||||
|
"secondary": "Secondário",
|
||||||
|
"accent": "Accent",
|
||||||
|
"success": "Successo",
|
||||||
|
"info": "Info",
|
||||||
|
"warning": "Aviso",
|
||||||
|
"error": "Erro",
|
||||||
|
"default-to-system": "Mesmo do Sistema",
|
||||||
|
"light": "Claro",
|
||||||
|
"dark": "Escuro",
|
||||||
|
"theme": "Tema",
|
||||||
|
"saved-color-theme": "Cor de Tema Guardado",
|
||||||
|
"delete-theme": "Eliminar Tema",
|
||||||
|
"are-you-sure-you-want-to-delete-this-theme": "Tem a certeza que deseja eliminar este tema?",
|
||||||
|
"choose-how-mealie-looks-to-you-set-your-theme-preference-to-follow-your-system-settings-or-choose-to-use-the-light-or-dark-theme": "Escolha como o Mealie estará visivel. Escolha o Mesmo do sistema para seguir o tema do seu dispositivo, ou selecione claro ou escuro.",
|
||||||
|
"theme-name-is-required": "Nome do Tema é Obrigatório."
|
||||||
|
},
|
||||||
|
"webhooks": {
|
||||||
|
"meal-planner-webhooks": "Webhooks do Organizador de Refeições",
|
||||||
|
"the-urls-listed-below-will-recieve-webhooks-containing-the-recipe-data-for-the-meal-plan-on-its-scheduled-day-currently-webhooks-will-execute-at": "Os URLs apresentados abaixo receberão webhooks que contêm os dados da receita para o plano de refeições no dia marcado. Atualmente, os webhooks serão executados a ",
|
||||||
|
"test-webhooks": "Webhooks de Teste",
|
||||||
|
"webhook-url": "Webhook URL"
|
||||||
|
},
|
||||||
|
"new-version-available": "Uma nova versão do Mealie está disponível, <a {aContents}> Visite o Repo </a>",
|
||||||
|
"backup": {
|
||||||
|
"import-recipes": "Importar Receitas",
|
||||||
|
"import-themes": "Importar Temas",
|
||||||
|
"import-settings": "Importa Definições",
|
||||||
|
"create-heading": "Criar um Backup",
|
||||||
|
"backup-tag": "Etiqueta do Backup",
|
||||||
|
"full-backup": "Backup Completo",
|
||||||
|
"partial-backup": "Backup Parcial",
|
||||||
|
"backup-restore-report": "Análise do Resultado do Backup",
|
||||||
|
"successfully-imported": "Importado com Sucesso",
|
||||||
|
"failed-imports": "Importações falhadas"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"migration": {
|
||||||
|
"recipe-migration": "Migração da Receita",
|
||||||
|
"failed-imports": "Importações Falhadas",
|
||||||
|
"migration-report": "Análise das Migrações",
|
||||||
|
"successful-imports": "Importações Bem sucedidas",
|
||||||
|
"no-migration-data-available": "Não há dados de migração disponíveis",
|
||||||
|
"nextcloud": {
|
||||||
|
"title": "Nextcloud Cookbook",
|
||||||
|
"description": "Migraar dados de uma instância do Nextcloud CookBook"
|
||||||
|
},
|
||||||
|
"chowdown": {
|
||||||
|
"title": "Chowdown",
|
||||||
|
"description": "Migrar dados do Chowdown"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -35,6 +35,10 @@ const state = {
|
||||||
name: "German",
|
name: "German",
|
||||||
value: "de",
|
value: "de",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "Português",
|
||||||
|
value: "pt-PT",
|
||||||
|
},
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -53,8 +57,8 @@ const actions = {
|
||||||
};
|
};
|
||||||
|
|
||||||
const getters = {
|
const getters = {
|
||||||
getActiveLang: (state) => state.lang,
|
getActiveLang: state => state.lang,
|
||||||
getAllLangs: (state) => state.allLangs,
|
getAllLangs: state => state.allLangs,
|
||||||
};
|
};
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
|
|
@ -4,11 +4,11 @@
|
||||||
ARG1=${1:-production}
|
ARG1=${1:-production}
|
||||||
|
|
||||||
# Set Script Directory - Used for running the script from a different directory.
|
# Set Script Directory - Used for running the script from a different directory.
|
||||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
|
# DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
|
||||||
|
|
||||||
# # Initialize Database Prerun
|
# # Initialize Database Prerun
|
||||||
poetry run python $DIR/db/init_db.py
|
poetry run python /app/mealie/db/init_db.py
|
||||||
poetry run python $DIR/services/image/minify.py
|
poetry run python /app/mealie/services/image/minify.py
|
||||||
|
|
||||||
# Migrations
|
# Migrations
|
||||||
# TODO
|
# TODO
|
||||||
|
|
|
@ -60,7 +60,10 @@ def move_all_images():
|
||||||
continue
|
continue
|
||||||
new_folder = app_dirs.IMG_DIR.joinpath(image_file.stem)
|
new_folder = app_dirs.IMG_DIR.joinpath(image_file.stem)
|
||||||
new_folder.mkdir(parents=True, exist_ok=True)
|
new_folder.mkdir(parents=True, exist_ok=True)
|
||||||
image_file.rename(new_folder.joinpath(f"original{image_file.suffix}"))
|
new_file = new_folder.joinpath(f"original{image_file.suffix}")
|
||||||
|
if new_file.is_file():
|
||||||
|
new_file.unlink()
|
||||||
|
image_file.rename(new_file)
|
||||||
|
|
||||||
|
|
||||||
def validate_slugs_in_database(session: Session = None):
|
def validate_slugs_in_database(session: Session = None):
|
||||||
|
|
|
@ -80,7 +80,7 @@ def test_cleaner_instructions(instructions):
|
||||||
def test_html_with_recipe_data():
|
def test_html_with_recipe_data():
|
||||||
path = TEST_RAW_HTML.joinpath("healthy_pasta_bake_60759.html")
|
path = TEST_RAW_HTML.joinpath("healthy_pasta_bake_60759.html")
|
||||||
url = "https://www.bbc.co.uk/food/recipes/healthy_pasta_bake_60759"
|
url = "https://www.bbc.co.uk/food/recipes/healthy_pasta_bake_60759"
|
||||||
recipe_data = extract_recipe_from_html(open(path).read(), url)
|
recipe_data = extract_recipe_from_html(open(path,encoding="utf8").read(), url)
|
||||||
|
|
||||||
assert len(recipe_data["name"]) > 10
|
assert len(recipe_data["name"]) > 10
|
||||||
assert len(recipe_data["slug"]) > 10
|
assert len(recipe_data["slug"]) > 10
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue