Redesign search tab, add category cards, recent recipes, and complete German translations
Overhaul SearchTabView with search history, empty/no-results states, and dynamic navigation title. Extract CategoryCardView and RecentRecipesSection into standalone views. Update RecipeTabView, RecipeListView, RecipeCardView, and MainView for the modernized UI. Add all 12 missing German translations in Localizable.xcstrings. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -284,6 +284,16 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"%lld recipes" : {
|
||||
"localizations" : {
|
||||
"de" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "%lld Rezepte"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"%lld Serving(s)" : {
|
||||
"localizations" : {
|
||||
"de" : {
|
||||
@@ -401,7 +411,7 @@
|
||||
"de" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : ""
|
||||
"value" : "Ein einfach zu verwendender PDF-Ersteller für Swift. Wird zum Erzeugen von Rezept-PDF-Dokumenten verwendet."
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
@@ -467,7 +477,7 @@
|
||||
"de" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : ""
|
||||
"value" : "Aktion verzögert"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
@@ -578,7 +588,7 @@
|
||||
"de" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : ""
|
||||
"value" : "Eine HTML-Parsing- und Web-Scraping-Bibliothek für Swift. Wird zum Importieren von schema.org-Rezepten von Webseiten verwendet."
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
@@ -753,6 +763,16 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"Categories" : {
|
||||
"localizations" : {
|
||||
"de" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Kategorien"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Category" : {
|
||||
"localizations" : {
|
||||
"de" : {
|
||||
@@ -843,6 +863,16 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"Clear" : {
|
||||
"localizations" : {
|
||||
"de" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Löschen"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Comma (e.g. 1,42)" : {
|
||||
"localizations" : {
|
||||
"de" : {
|
||||
@@ -977,6 +1007,7 @@
|
||||
}
|
||||
},
|
||||
"Cookbooks" : {
|
||||
"extractionState" : "stale",
|
||||
"localizations" : {
|
||||
"de" : {
|
||||
"stringUnit" : {
|
||||
@@ -1329,6 +1360,17 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"Downloaded" : {
|
||||
"extractionState" : "stale",
|
||||
"localizations" : {
|
||||
"de" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Heruntergeladen"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Downloads" : {
|
||||
"localizations" : {
|
||||
"de" : {
|
||||
@@ -1440,6 +1482,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"Enter a recipe name or keyword to get started." : {
|
||||
"comment" : "A description under the magnifying glass icon in the \"Search for recipes\" view, encouraging the user to start searching.",
|
||||
"isCommentAutoGenerated" : true,
|
||||
"localizations" : {
|
||||
"de" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Gib einen Rezeptnamen oder ein Stichwort ein, um loszulegen."
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Error" : {
|
||||
"localizations" : {
|
||||
"de" : {
|
||||
@@ -2459,6 +2513,16 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"No cookbooks found" : {
|
||||
"localizations" : {
|
||||
"de" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Keine Kategorien gefunden"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"No keywords." : {
|
||||
"localizations" : {
|
||||
"de" : {
|
||||
@@ -2503,6 +2567,28 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"No recipes in this cookbook" : {
|
||||
"localizations" : {
|
||||
"de" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Keine Rezepte in dieser Kategorie"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"No results found" : {
|
||||
"comment" : "A message indicating that no recipes were found for the current search query.",
|
||||
"isCommentAutoGenerated" : true,
|
||||
"localizations" : {
|
||||
"de" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Keine Ergebnisse gefunden"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"None" : {
|
||||
"localizations" : {
|
||||
"de" : {
|
||||
@@ -2635,6 +2721,17 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"On server" : {
|
||||
"extractionState" : "stale",
|
||||
"localizations" : {
|
||||
"de" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Auf dem Server"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Other" : {
|
||||
"localizations" : {
|
||||
"de" : {
|
||||
@@ -2881,6 +2978,36 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"Pull to refresh or check your server connection." : {
|
||||
"localizations" : {
|
||||
"de" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Zum Aktualisieren nach unten ziehen oder Serververbindung prüfen."
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Recent searches" : {
|
||||
"localizations" : {
|
||||
"de" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Letzte Suchen"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Recently Viewed" : {
|
||||
"localizations" : {
|
||||
"de" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Zuletzt angesehen"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Recipe" : {
|
||||
"localizations" : {
|
||||
"de" : {
|
||||
@@ -2969,6 +3096,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"Recipes will appear here once they are added to this category." : {
|
||||
"comment" : "A description of what will happen when a user adds a recipe to a category.",
|
||||
"isCommentAutoGenerated" : true,
|
||||
"localizations" : {
|
||||
"de" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Rezepte werden hier angezeigt, sobald sie dieser Kategorie hinzugefügt werden."
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Refresh" : {
|
||||
"localizations" : {
|
||||
"de" : {
|
||||
@@ -3080,6 +3219,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"Search for recipes" : {
|
||||
"comment" : "A prompt displayed when the search text is empty, encouraging the user to enter a search term.",
|
||||
"isCommentAutoGenerated" : true,
|
||||
"localizations" : {
|
||||
"de" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Rezepte suchen"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Search recipe" : {
|
||||
"localizations" : {
|
||||
"de" : {
|
||||
@@ -3124,6 +3275,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"Search Results" : {
|
||||
"comment" : "The title of the view that lists search results for recipes.",
|
||||
"isCommentAutoGenerated" : true,
|
||||
"localizations" : {
|
||||
"de" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Suchergebnisse"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Select a default cookbook" : {
|
||||
"localizations" : {
|
||||
"de" : {
|
||||
@@ -3574,7 +3737,7 @@
|
||||
"de" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : ""
|
||||
"value" : "SwiftSoup"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
@@ -3681,6 +3844,7 @@
|
||||
}
|
||||
},
|
||||
"There are no recipes in this cookbook!" : {
|
||||
"extractionState" : "stale",
|
||||
"localizations" : {
|
||||
"de" : {
|
||||
"stringUnit" : {
|
||||
@@ -3931,7 +4095,7 @@
|
||||
"de" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : ""
|
||||
"value" : "TPPDF"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
@@ -3971,6 +4135,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"Try a different search term." : {
|
||||
"comment" : "A message suggesting a different search term if no results are found.",
|
||||
"isCommentAutoGenerated" : true,
|
||||
"localizations" : {
|
||||
"de" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Versuche einen anderen Suchbegriff."
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Unable to complete action." : {
|
||||
"localizations" : {
|
||||
"de" : {
|
||||
@@ -4305,5 +4481,5 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"version" : "1.0"
|
||||
"version" : "1.1"
|
||||
}
|
||||
Reference in New Issue
Block a user