Fix category handling, recipe management, and dark mode toggle tint

- Map uncategorized category between * (internal) and empty string
  (API) so selecting Sonstige/Other correctly persists to the server
- Default new recipes to Other (*) category and remove None option
- Add "New Category" option to category picker in recipe edit view
- Include newly created/imported recipes in recently viewed list and
  pre-fetch thumbnails so images display immediately
- Remove deleted recipes from recently viewed list
- Remove broad .tint(.primary) from RecipeTabView that caused white
  toggles in Settings during dark mode
- Rename German "Other" translation from Andere to Sonstige
- Add missing translations for Servings stepper and new category strings

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-02-15 07:13:01 +01:00
parent 02118e3d7a
commit fb6b16c1fc
7 changed files with 131 additions and 14 deletions

View File

@@ -494,7 +494,6 @@
}
},
"Add" : {
"extractionState" : "stale",
"localizations" : {
"de" : {
"stringUnit" : {
@@ -950,6 +949,28 @@
}
}
},
"Category name" : {
"localizations" : {
"de" : {
"stringUnit" : {
"state" : "translated",
"value" : "Kategoriename"
}
},
"es" : {
"stringUnit" : {
"state" : "translated",
"value" : "Nombre de categoría"
}
},
"fr" : {
"stringUnit" : {
"state" : "translated",
"value" : "Nom de catégorie"
}
}
}
},
"Category: %@" : {
"extractionState" : "stale",
"localizations" : {
@@ -2958,6 +2979,50 @@
}
}
},
"New Category" : {
"localizations" : {
"de" : {
"stringUnit" : {
"state" : "translated",
"value" : "Neue Kategorie"
}
},
"es" : {
"stringUnit" : {
"state" : "translated",
"value" : "Nueva categoría"
}
},
"fr" : {
"stringUnit" : {
"state" : "translated",
"value" : "Nouvelle catégorie"
}
}
}
},
"New Category…" : {
"localizations" : {
"de" : {
"stringUnit" : {
"state" : "translated",
"value" : "Neue Kategorie …"
}
},
"es" : {
"stringUnit" : {
"state" : "translated",
"value" : "Nueva categoría…"
}
},
"fr" : {
"stringUnit" : {
"state" : "translated",
"value" : "Nouvelle catégorie…"
}
}
}
},
"New recipe" : {
"extractionState" : "stale",
"localizations" : {
@@ -3341,7 +3406,7 @@
"de" : {
"stringUnit" : {
"state" : "translated",
"value" : "Andere"
"value" : "Sonstige"
}
},
"es" : {
@@ -4229,8 +4294,26 @@
}
},
"Servings: %lld" : {
"comment" : "A stepper that allows the user to select the number of servings for a recipe. The first argument is a label describing the number of servings. The second argument is a binding to the number of servings, which is",
"isCommentAutoGenerated" : true
"localizations" : {
"de" : {
"stringUnit" : {
"state" : "translated",
"value" : "Portionen: %lld"
}
},
"es" : {
"stringUnit" : {
"state" : "translated",
"value" : "Porciones: %lld"
}
},
"fr" : {
"stringUnit" : {
"state" : "translated",
"value" : "Portions : %lld"
}
}
}
},
"Settings" : {
"localizations" : {