fix: batch of collections/i18n/translate-button fixes (v0.53.1)
- Drag-reorder used verticalListSortingStrategy on a multi-column grid, which computes wrong transforms for grid reflow — swapped to rectSortingStrategy so cards actually animate live while dragging. - Grip handle was rendered as a sibling of (not a descendant of) the `group` element its `group-hover:opacity-100` depended on, so it was permanently invisible. Fixed the DOM nesting and made it always partially visible instead of hover-only. - common.edit was missing from both locales (not just French) — edit-collection-dialog.tsx was the first caller to hit it. - Root cause of "generated in my language but Translate still shows": generate-meal, meal-plan/generate, and adapt never set recipes.language on the row they inserted, so the button's `!recipe.language || ...` check always fell back to "show it". Fixed at all three insert sites. - Translate dialog was entirely hardcoded English (title, description, language names, buttons) despite i18n keys already existing for most of it — now uses them, plus new translated language-name keys. - Recipe tags now render on the recipe detail page (previously grid-card only). - Collection header actions converted to icon-only + tooltip, matching the recipe page's pattern instead of icon+label buttons. - Collections list search now also matches recipe titles inside each collection, not just the collection's own name/description. - Explore page links to /collections/explore next to its tabs. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -387,7 +387,21 @@
|
||||
"success": "Translation saved as new draft recipe.",
|
||||
"error": "Failed to translate recipe",
|
||||
"saveError": "Failed to save translated recipe",
|
||||
"wait": "This may take 20–30 seconds"
|
||||
"wait": "This may take 20–30 seconds",
|
||||
"languages": {
|
||||
"French": "French",
|
||||
"Spanish": "Spanish",
|
||||
"German": "German",
|
||||
"Italian": "Italian",
|
||||
"Portuguese": "Portuguese",
|
||||
"English": "English",
|
||||
"Japanese": "Japanese",
|
||||
"Chinese": "Chinese",
|
||||
"Arabic": "Arabic",
|
||||
"Dutch": "Dutch",
|
||||
"Polish": "Polish",
|
||||
"Russian": "Russian"
|
||||
}
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
@@ -702,6 +716,7 @@
|
||||
"deleted": "Deleted",
|
||||
"cancel": "Cancel",
|
||||
"delete": "Delete",
|
||||
"edit": "Edit",
|
||||
"confirm": "Confirm",
|
||||
"back": "Back",
|
||||
"difficulty": "Difficulty",
|
||||
@@ -1184,6 +1199,7 @@
|
||||
"recipeCount": "{count} recipe",
|
||||
"recipeCountPlural": "{count} recipes",
|
||||
"discoverTitle": "Discover",
|
||||
"exploreLink": "Discover collections",
|
||||
"discoverSubtitle": "Trending and recently shared public collections",
|
||||
"myCollectionsLink": "My collections",
|
||||
"trendingThisWeek": "Trending this week",
|
||||
@@ -1214,6 +1230,7 @@
|
||||
"removeFromCollectionConfirmTitle": "{count, plural, one {Remove 1 recipe from this collection?} other {Remove {count} recipes from this collection?}}",
|
||||
"removeFromCollectionConfirmDescription": "The recipe itself won't be deleted, just removed from this collection.",
|
||||
"reorderFailed": "Failed to save the new order",
|
||||
"dragToReorder": "Drag to reorder",
|
||||
"editTitle": "Edit collection",
|
||||
"editSuccess": "Collection updated",
|
||||
"editFailed": "Failed to update collection",
|
||||
|
||||
@@ -387,7 +387,21 @@
|
||||
"success": "Traduction enregistrée comme nouveau brouillon.",
|
||||
"error": "Échec de la traduction de la recette",
|
||||
"saveError": "Échec de l'enregistrement de la recette traduite",
|
||||
"wait": "Cela peut prendre 20 à 30 secondes"
|
||||
"wait": "Cela peut prendre 20 à 30 secondes",
|
||||
"languages": {
|
||||
"French": "Français",
|
||||
"Spanish": "Espagnol",
|
||||
"German": "Allemand",
|
||||
"Italian": "Italien",
|
||||
"Portuguese": "Portugais",
|
||||
"English": "Anglais",
|
||||
"Japanese": "Japonais",
|
||||
"Chinese": "Chinois",
|
||||
"Arabic": "Arabe",
|
||||
"Dutch": "Néerlandais",
|
||||
"Polish": "Polonais",
|
||||
"Russian": "Russe"
|
||||
}
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
@@ -702,6 +716,7 @@
|
||||
"deleted": "Supprimé",
|
||||
"cancel": "Annuler",
|
||||
"delete": "Supprimer",
|
||||
"edit": "Modifier",
|
||||
"confirm": "Confirmer",
|
||||
"back": "Retour",
|
||||
"difficulty": "Difficulté",
|
||||
@@ -1175,6 +1190,7 @@
|
||||
"recipeCount": "{count} recette",
|
||||
"recipeCountPlural": "{count} recettes",
|
||||
"discoverTitle": "Découvrir",
|
||||
"exploreLink": "Découvrir des collections",
|
||||
"discoverSubtitle": "Collections publiques tendances et récemment partagées",
|
||||
"myCollectionsLink": "Mes collections",
|
||||
"trendingThisWeek": "Tendance cette semaine",
|
||||
@@ -1205,6 +1221,7 @@
|
||||
"removeFromCollectionConfirmTitle": "{count, plural, one {Retirer 1 recette de cette collection ?} other {Retirer {count} recettes de cette collection ?}}",
|
||||
"removeFromCollectionConfirmDescription": "La recette elle-même ne sera pas supprimée, seulement retirée de cette collection.",
|
||||
"reorderFailed": "Échec de l'enregistrement du nouvel ordre",
|
||||
"dragToReorder": "Glisser pour réorganiser",
|
||||
"editTitle": "Modifier la collection",
|
||||
"editSuccess": "Collection mise à jour",
|
||||
"editFailed": "Échec de la mise à jour de la collection",
|
||||
|
||||
Reference in New Issue
Block a user