mirror of
https://github.com/mealie-recipes/mealie.git
synced 2025-12-09 20:05:20 -05:00
Merge branch 'mealie-next' into fix/make-mealie-alpha-migrations-more-fault-tolerant
This commit is contained in:
@@ -29,13 +29,13 @@
|
||||
"generic-updated": "{name} беше актуализирано",
|
||||
"generic-created-with-url": "{name} беше създадено, {url}",
|
||||
"generic-updated-with-url": "{name} беше актуализирано, {url}",
|
||||
"generic-duplicated": "{name} е дублицирано",
|
||||
"generic-duplicated": "{name} е дублирано",
|
||||
"generic-deleted": "{name} беше изтрито"
|
||||
},
|
||||
"datetime": {
|
||||
"year": "година|години",
|
||||
"day": "ден|дни",
|
||||
"hour": "час|часове",
|
||||
"hour": "час|часа и",
|
||||
"minute": "минута|минути",
|
||||
"second": "секунда|секунди",
|
||||
"millisecond": "милисекунда|милисекунди",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"acorn-squash": "abóbora-bolota",
|
||||
"alfalfa-sprouts": "broto de alfafa",
|
||||
"alfalfa-sprouts": "rebentos de alfafa",
|
||||
"anchovies": "anchovas",
|
||||
"apples": "maçãs",
|
||||
"artichoke": "alcachofra",
|
||||
@@ -11,16 +11,16 @@
|
||||
"bacon": "bacon",
|
||||
"baking-powder": "fermento em pó",
|
||||
"baking-soda": "bicarbonato de sódio",
|
||||
"baking-sugar": "açúcar fino",
|
||||
"bar-sugar": "açúcar em barra",
|
||||
"baking-sugar": "açúcar granulado",
|
||||
"bar-sugar": "açúcar em pó",
|
||||
"basil": "manjericão",
|
||||
"bell-peppers": "pimentão",
|
||||
"bell-peppers": "pimentões",
|
||||
"blackberries": "amoras",
|
||||
"brassicas": "brassicas",
|
||||
"bok-choy": "bok choy",
|
||||
"broccoflower": "brocoflor",
|
||||
"brassicas": "crucíferas",
|
||||
"bok-choy": "couve chinesa",
|
||||
"broccoflower": "couve-romanesca",
|
||||
"broccoli": "brócolos",
|
||||
"broccolini": "broccolini",
|
||||
"broccolini": "bimi",
|
||||
"broccoli-rabe": "grelo de brócolo",
|
||||
"brussels-sprouts": "couve-de-bruxelas",
|
||||
"cabbage": "repolho",
|
||||
@@ -34,20 +34,20 @@
|
||||
"brown-sugar": "açúcar mascavado",
|
||||
"butter": "manteiga",
|
||||
"butternut-pumpkin": "abóbora manteiga",
|
||||
"butternut-squash": "abóbora de manteiga",
|
||||
"butternut-squash": "puré de abóbora manteiga",
|
||||
"cactus-edible": "cato, comestível",
|
||||
"calabrese": "brócolo",
|
||||
"calabrese": "brócolo calabrese",
|
||||
"cannabis": "canábis",
|
||||
"capsicum": "capsicum",
|
||||
"caraway": "cominho",
|
||||
"caraway": "alcarávia",
|
||||
"carrot": "cenoura",
|
||||
"castor-sugar": "açúcar de confeiteiro",
|
||||
"cayenne-pepper": "pimenta cayenne",
|
||||
"cayenne-pepper": "pimenta caiena",
|
||||
"celeriac": "aipo-rábano",
|
||||
"celery": "aipo",
|
||||
"cereal-grains": "farelo de cereais",
|
||||
"cereal-grains": "grãos de cereal",
|
||||
"rice": "arroz",
|
||||
"chard": "acelga portuguesa",
|
||||
"chard": "acelga",
|
||||
"cheese": "queijo",
|
||||
"chicory": "chicória",
|
||||
"chilli-peppers": "pimenta chili",
|
||||
@@ -56,31 +56,31 @@
|
||||
"cilantro": "coentros",
|
||||
"cinnamon": "canela",
|
||||
"clarified-butter": "manteiga clarificada",
|
||||
"coconut": "côco",
|
||||
"coconut-milk": "leite de côco",
|
||||
"coconut": "coco",
|
||||
"coconut-milk": "leite de coco",
|
||||
"coffee": "café",
|
||||
"confectioners-sugar": "açucar em pó",
|
||||
"confectioners-sugar": "açúcar em pó",
|
||||
"coriander": "coentro",
|
||||
"corn": "milho",
|
||||
"corn-syrup": "xarope de milho",
|
||||
"cottonseed-oil": "óleo de algodão",
|
||||
"courgette": "courgette",
|
||||
"cream-of-tartar": "creme de tártaro",
|
||||
"courgette": "curgete",
|
||||
"cream-of-tartar": "cremor tártaro",
|
||||
"cucumber": "pepino",
|
||||
"cumin": "cominho",
|
||||
"daikon": "rabanete branco",
|
||||
"dairy-products-and-dairy-substitutes": "produtos lácteos e substitutos de leite",
|
||||
"eggs": "ovos",
|
||||
"ghee": "manteiga indiana",
|
||||
"ghee": "manteiga ghee",
|
||||
"milk": "leite",
|
||||
"dandelion": "dente-de-leão",
|
||||
"demerara-sugar": "açúcar de demerara",
|
||||
"demerara-sugar": "açúcar demerara",
|
||||
"dough": "massa",
|
||||
"edible-cactus": "cacto comestível",
|
||||
"eggplant": "berinjela",
|
||||
"edible-cactus": "cato comestível",
|
||||
"eggplant": "beringela",
|
||||
"endive": "endívia",
|
||||
"fats": "gorduras",
|
||||
"speck": "presunto",
|
||||
"speck": "presunto tirolês",
|
||||
"fava-beans": "favas",
|
||||
"fiddlehead": "rebentos de feto comestíveis",
|
||||
"fish": "peixe",
|
||||
@@ -89,7 +89,7 @@
|
||||
"salt-cod": "bacalhau salgado",
|
||||
"salmon": "salmão",
|
||||
"skate": "raia",
|
||||
"stockfish": "bacalhau salgado",
|
||||
"stockfish": "bacalhau seco",
|
||||
"trout": "truta",
|
||||
"tuna": "atum",
|
||||
"five-spice-powder": "cinco especiarias chinesas em pó",
|
||||
@@ -101,7 +101,7 @@
|
||||
"oranges": "laranjas",
|
||||
"pear": "pera",
|
||||
"tomato": "tomate ",
|
||||
"fruit-sugar": "açúcar de fruta",
|
||||
"fruit-sugar": "frutose",
|
||||
"garam-masala": "garam masala",
|
||||
"garlic": "alho",
|
||||
"gem-squash": "abóbora gem",
|
||||
@@ -128,17 +128,17 @@
|
||||
"jerusalem-artichoke": "alcachofra-de-jerusalém",
|
||||
"jicama": "nabo-mexicano",
|
||||
"kale": "couve",
|
||||
"kumara": "kumara",
|
||||
"kumara": "batata-doce",
|
||||
"leavening-agents": "fermentos",
|
||||
"leek": "alho-françês",
|
||||
"legumes": "legumes ",
|
||||
"peas": "ervilhas",
|
||||
"beans": "feijões",
|
||||
"lentils": "lentilhas",
|
||||
"lemongrass": "erva-limão",
|
||||
"lemongrass": "erva-príncipe",
|
||||
"lettuce": "alface",
|
||||
"liver": "fígado",
|
||||
"maple-syrup": "xarope de ácer",
|
||||
"maple-syrup": "xarope de acer",
|
||||
"meat": "carne",
|
||||
"mortadella": "mortadela",
|
||||
"mushroom": "cogumelo",
|
||||
@@ -146,7 +146,7 @@
|
||||
"mussels": "mexilhão",
|
||||
"nori": "nori",
|
||||
"nutmeg": "noz-moscada",
|
||||
"nutritional-yeast-flakes": "levedura nutricional",
|
||||
"nutritional-yeast-flakes": "flocos de levedura nutricional",
|
||||
"nuts": "frutos secos",
|
||||
"nanaimo-bar-mix": "mistura de barras nanaimo",
|
||||
"octopuses": "polvos",
|
||||
@@ -166,12 +166,12 @@
|
||||
"parsnip": "cherovia",
|
||||
"pepper": "pimenta",
|
||||
"peppers": "pimentos",
|
||||
"plantain": "banana-da-terra",
|
||||
"plantain": "plátano",
|
||||
"pineapple": "ananás",
|
||||
"poppy-seeds": "sementes de papoila",
|
||||
"potatoes": "batatas",
|
||||
"poultry": "carne de aves",
|
||||
"powdered-sugar": "açucar em pó",
|
||||
"powdered-sugar": "açúcar em pó",
|
||||
"pumpkin": "abóbora",
|
||||
"pumpkin-seeds": "sementes de abóbora",
|
||||
"radish": "rabanete",
|
||||
@@ -218,5 +218,5 @@
|
||||
"watercress": "agrião",
|
||||
"watermelon": "melancia",
|
||||
"xanthan-gum": "goma xantana",
|
||||
"yeast": "fermento"
|
||||
"yeast": "levedura"
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[
|
||||
{
|
||||
"name": "Продукция"
|
||||
"name": "Пресни плодове&зеленчуци"
|
||||
},
|
||||
{
|
||||
"name": "Зърнени култури"
|
||||
@@ -15,7 +15,7 @@
|
||||
"name": "Месо"
|
||||
},
|
||||
{
|
||||
"name": "Морска храна"
|
||||
"name": "Морски дарове"
|
||||
},
|
||||
{
|
||||
"name": "Напитки"
|
||||
@@ -24,7 +24,7 @@
|
||||
"name": "Печива"
|
||||
},
|
||||
{
|
||||
"name": "Canned Goods"
|
||||
"name": "Консерви"
|
||||
},
|
||||
{
|
||||
"name": "Допълнения"
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
"name": "Bebidas"
|
||||
},
|
||||
{
|
||||
"name": "Pães e Bolos"
|
||||
"name": "Produtos de pastelaria"
|
||||
},
|
||||
{
|
||||
"name": "Enlatados"
|
||||
@@ -30,7 +30,7 @@
|
||||
"name": "Condimentos"
|
||||
},
|
||||
{
|
||||
"name": "Doçaria"
|
||||
"name": "Confeitaria"
|
||||
},
|
||||
{
|
||||
"name": "Lacticínios"
|
||||
@@ -57,7 +57,7 @@
|
||||
"name": "Doces"
|
||||
},
|
||||
{
|
||||
"name": "Bebidas Alcoólicas"
|
||||
"name": "Álcool"
|
||||
},
|
||||
{
|
||||
"name": "Outros"
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
"abbreviation": "с.л."
|
||||
},
|
||||
"cup": {
|
||||
"name": "cup",
|
||||
"name": "чаена чаша",
|
||||
"description": "",
|
||||
"abbreviation": "cup"
|
||||
},
|
||||
@@ -70,7 +70,7 @@
|
||||
"abbreviation": "мг"
|
||||
},
|
||||
"splash": {
|
||||
"name": "плисък",
|
||||
"name": "1/2 ч.л.",
|
||||
"description": "",
|
||||
"abbreviation": ""
|
||||
},
|
||||
@@ -80,7 +80,7 @@
|
||||
"abbreviation": ""
|
||||
},
|
||||
"serving": {
|
||||
"name": "порция",
|
||||
"name": "порция|порции",
|
||||
"description": "",
|
||||
"abbreviation": ""
|
||||
},
|
||||
|
||||
@@ -2,17 +2,17 @@
|
||||
"teaspoon": {
|
||||
"name": "colher de chá",
|
||||
"description": "",
|
||||
"abbreviation": "tsp"
|
||||
"abbreviation": "csm"
|
||||
},
|
||||
"tablespoon": {
|
||||
"name": "colher de sopa",
|
||||
"description": "",
|
||||
"abbreviation": "tbsp"
|
||||
"abbreviation": "csp"
|
||||
},
|
||||
"cup": {
|
||||
"name": "chávena",
|
||||
"description": "",
|
||||
"abbreviation": "cup"
|
||||
"abbreviation": "chávena"
|
||||
},
|
||||
"fluid-ounce": {
|
||||
"name": "onça fluida",
|
||||
@@ -80,7 +80,7 @@
|
||||
"abbreviation": ""
|
||||
},
|
||||
"serving": {
|
||||
"name": "dose",
|
||||
"name": "porção",
|
||||
"description": "",
|
||||
"abbreviation": ""
|
||||
},
|
||||
|
||||
@@ -101,7 +101,7 @@ class ShoppingListItemOut(ShoppingListItemBase):
|
||||
update_at: datetime | None = None
|
||||
|
||||
@model_validator(mode="after")
|
||||
def post_validate(self):
|
||||
def populate_missing_label(self):
|
||||
# if we're missing a label, but the food has a label, use that as the label
|
||||
if (not self.label) and (self.food and self.food.label):
|
||||
self.label = self.food.label
|
||||
|
||||
@@ -184,13 +184,13 @@ class Recipe(RecipeSummary):
|
||||
model_config = ConfigDict(from_attributes=True)
|
||||
|
||||
@model_validator(mode="after")
|
||||
def post_validate(self):
|
||||
# the ingredient disable_amount property is unreliable,
|
||||
# so we set it here and recalculate the display property
|
||||
def calculate_missing_food_flags_and_format_display(self):
|
||||
disable_amount = self.settings.disable_amount if self.settings else True
|
||||
for ingredient in self.recipe_ingredient:
|
||||
ingredient.disable_amount = disable_amount
|
||||
ingredient.is_food = not ingredient.disable_amount
|
||||
|
||||
# recalculate the display property, since it depends on the disable_amount flag
|
||||
ingredient.display = ingredient._format_display()
|
||||
|
||||
return self
|
||||
|
||||
@@ -145,7 +145,7 @@ class RecipeIngredientBase(MealieModel):
|
||||
"""
|
||||
|
||||
@model_validator(mode="after")
|
||||
def post_validate(self):
|
||||
def calculate_missing_food_flags(self):
|
||||
# calculate missing is_food and disable_amount values
|
||||
# we can't do this in a validator since they depend on each other
|
||||
if self.is_food is None and self.disable_amount is not None:
|
||||
@@ -156,7 +156,10 @@ class RecipeIngredientBase(MealieModel):
|
||||
self.is_food = bool(self.food)
|
||||
self.disable_amount = not self.is_food
|
||||
|
||||
# format the display property
|
||||
return self
|
||||
|
||||
@model_validator(mode="after")
|
||||
def format_display(self):
|
||||
if not self.display:
|
||||
self.display = self._format_display()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user