From 644d53ca16b57d5d0b76b686b5081c8a28f6c354 Mon Sep 17 00:00:00 2001 From: openhands Date: Mon, 14 Sep 2026 18:24:48 +0200 Subject: [PATCH] Rebuild organize imports: move furniture between categories, 500-item cap --- src/actions/catalog.ts | 2 +- src/app/api/admin/import/organize/route.ts | 15 +- .../admin/studio/organize-imports-dialog.tsx | 485 +++++++++++++----- src/messages/ar.json | 12 +- src/messages/bg.json | 12 +- src/messages/cs.json | 12 +- src/messages/da.json | 12 +- src/messages/de.json | 12 +- src/messages/el.json | 12 +- src/messages/en.json | 12 +- src/messages/es.json | 12 +- src/messages/fi.json | 12 +- src/messages/fr.json | 12 +- src/messages/hr.json | 12 +- src/messages/hu.json | 12 +- src/messages/it.json | 12 +- src/messages/ja.json | 12 +- src/messages/nl.json | 12 +- src/messages/no.json | 12 +- src/messages/pl.json | 12 +- src/messages/pt.json | 12 +- src/messages/ro.json | 12 +- src/messages/ru.json | 12 +- src/messages/sk.json | 12 +- src/messages/sr.json | 12 +- src/messages/sv.json | 12 +- src/messages/tr.json | 12 +- src/messages/uk.json | 12 +- 28 files changed, 578 insertions(+), 224 deletions(-) diff --git a/src/actions/catalog.ts b/src/actions/catalog.ts index 5e51d5f3..7eb28758 100644 --- a/src/actions/catalog.ts +++ b/src/actions/catalog.ts @@ -349,7 +349,7 @@ export async function createAutoCategory(input: { } const MAX_ORGANIZE_GROUPS = 50; -const MAX_ORGANIZE_ITEMS = 1000; +const MAX_ORGANIZE_ITEMS = 500; export interface OrganizeImportGroup { caption: string; diff --git a/src/app/api/admin/import/organize/route.ts b/src/app/api/admin/import/organize/route.ts index da6f08fe..05252034 100644 --- a/src/app/api/admin/import/organize/route.ts +++ b/src/app/api/admin/import/organize/route.ts @@ -210,6 +210,7 @@ export const GET = withAdmin( // then we can use the extra fields in the returned groups. const sugItems = items.map((it) => ({ id: it.itemId, + itemId: it.itemId, itemName: it.itemName, publicName: it.publicName, type: it.type, @@ -217,6 +218,7 @@ export const GET = withAdmin( interactionType: it.interactionType, alreadyPlaced: it.alreadyPlaced, catalogItemId: it.catalogItemId, + sourcePageCaption: it.sourcePageCaption, })) as SugFurniEntryExtra[]; const groups = groupSuggestedCategories(sugItems).map((g) => { const moved = g.items.filter((i) => i.alreadyPlaced).length; @@ -227,17 +229,16 @@ export const GET = withAdmin( total: g.items.length, moved, added: g.items.length - moved, - thumbs: g.items.slice(0, 12).map((i) => ({ - itemName: i.itemName, - publicName: i.publicName, - spriteId: i.spriteId, - alreadyPlaced: i.alreadyPlaced, - sourcePageCaption: i.sourcePageCaption, - })), items: g.items.map((i) => ({ itemId: i.itemId, catalogItemId: i.catalogItemId, alreadyPlaced: i.alreadyPlaced, + itemName: i.itemName, + publicName: i.publicName, + spriteId: i.spriteId, + type: i.type, + interactionType: i.interactionType, + sourcePageCaption: i.sourcePageCaption ?? null, })), }; }); diff --git a/src/components/admin/studio/organize-imports-dialog.tsx b/src/components/admin/studio/organize-imports-dialog.tsx index 9ec032eb..3447a551 100644 --- a/src/components/admin/studio/organize-imports-dialog.tsx +++ b/src/components/admin/studio/organize-imports-dialog.tsx @@ -10,6 +10,7 @@ import { Plus, RefreshCw, Search, + Trash2, Wand2, X, } from "lucide-react"; @@ -42,10 +43,13 @@ import { isValidCatalogLayout, LAYOUT_DESCRIPTIONS, } from "@/lib/catalog-layouts"; -// import { CATALOG_LAYOUTS } from "@/lib/catalog-layouts"; import { getLocalIconUrl } from "@/lib/furni/classname"; import { cn } from "@/lib/utils"; +const MAX_ITEMS_PER_RUN = 500; +const ITEMS_VISIBLE = 40; +const QUICK_PICKS = 40; + interface OrganizeGroupOverride { caption?: string; icon?: number; @@ -57,6 +61,18 @@ interface RootPage { caption: string; } +interface OrganizeImportItem { + itemId: number; + catalogItemId: number | null; + alreadyPlaced: boolean; + itemName: string; + publicName: string; + spriteId: number; + type: string; + interactionType: string; + sourcePageCaption: string | null; +} + interface OrganizeImportGroup { name: string; icon: number; @@ -64,18 +80,7 @@ interface OrganizeImportGroup { total: number; moved: number; added: number; - thumbs: { - itemName: string; - publicName: string; - spriteId: number; - alreadyPlaced: boolean; - sourcePageCaption: string | null; - }[]; - items: { - itemId: number; - catalogItemId: number | null; - alreadyPlaced: boolean; - }[]; + items: OrganizeImportItem[]; } interface OrganizeImportsDialogProps { @@ -129,6 +134,9 @@ export function OrganizeImportsDialog({ const [batchLayout, setBatchLayout] = useState("default_3x3"); const [batchPrefix, setBatchPrefix] = useState(""); + const [expanded, setExpanded] = useState>({}); + const [selection, setSelection] = useState>(new Set()); + const load = useCallback(async () => { setLoading(true); setLoadError(false); @@ -168,6 +176,8 @@ export function OrganizeImportsDialog({ setGroups([]); setApproved({}); setOverrides({}); + setExpanded({}); + setSelection(new Set()); setParentId(-1); setMoveMode(false); setDestinationPageId(null); @@ -220,11 +230,11 @@ export function OrganizeImportsDialog({ }, [moveMode, destDebounced]); const allApproved = - groups.length > 0 && groups.every((g) => approved[g.name]); + groups.length > 0 && groups.every((g) => approved[g.name] !== false); const totalSelected = useMemo( () => groups.reduce( - (sum, g) => sum + (approved[g.name] ? g.items.length : 0), + (sum, g) => sum + (approved[g.name] !== false ? g.items.length : 0), 0, ), [groups, approved], @@ -233,7 +243,7 @@ export function OrganizeImportsDialog({ // One approved group becomes exactly one page, so the "Create … pages" // label must count groups, not the furni items inside them. const selectedGroupsCount = useMemo( - () => groups.filter((g) => approved[g.name]).length, + () => groups.filter((g) => approved[g.name] !== false).length, [groups, approved], ); @@ -294,27 +304,77 @@ export function OrganizeImportsDialog({ const filteredGroups = useMemo(() => { const q = groupSearchQuery.trim().toLowerCase(); return groups.filter((g) => { - if (onlyUnplaced && g.added === 0 && g.moved === 0) return false; + const movedCount = g.items.filter((i) => i.alreadyPlaced).length; + const addedCount = g.items.length - movedCount; + if (onlyUnplaced && addedCount === 0 && movedCount === 0) return false; if (!q) return true; if (g.name.toLowerCase().includes(q)) return true; const caption = overrides[g.name]?.caption?.toLowerCase(); if (caption?.includes(q)) return true; - return g.thumbs.some((t) => t.itemName.toLowerCase().includes(q)); + return g.items.some((i) => i.itemName.toLowerCase().includes(q)); }); }, [groups, groupSearchQuery, onlyUnplaced, overrides]); + const moveItemToGroup = ( + item: OrganizeImportItem, + fromName: string, + toName: string, + ) => { + if (!toName || toName === fromName) return; + setGroups((prev) => + prev.map((g) => { + if (g.name === fromName) { + const items = g.items.filter((i) => i.itemId !== item.itemId); + return { ...g, items }; + } + if (g.name === toName) { + const exists = g.items.some((i) => i.itemId === item.itemId); + return exists ? g : { ...g, items: [...g.items, item] }; + } + return g; + }), + ); + }; + + const moveSelectedToGroup = (toName: string) => { + if (selection.size === 0 || !toName) return; + setGroups((prev) => { + const moved: OrganizeImportItem[] = []; + const next = prev.map((g) => { + if (g.name === toName) return g; + const taken = g.items.filter((i) => selection.has(i.itemId)); + const kept = g.items.filter((i) => !selection.has(i.itemId)); + moved.push(...taken); + return taken.length === 0 ? g : { ...g, items: kept }; + }); + if (moved.length === 0) return prev; + return next.map((g) => + g.name === toName ? { ...g, items: [...g.items, ...moved] } : g, + ); + }); + setSelection(new Set()); + }; + + const moveItemOptions = (fromName: string) => + groups.filter((g) => g.name !== fromName); + const handleCreate = async () => { if (isCreating) return; - if (totalSelected > 1000) { - toast.error(t("errorMaxItems")); + if (totalSelected === 0) { + toast.error(t("errorNoName")); return; } + if (totalSelected > MAX_ITEMS_PER_RUN) { + toast.error(t("errorMaxItems", { count: MAX_ITEMS_PER_RUN })); + return; + } + if (groups.length === 0) return; if (moveMode && destinationPageId == null) { toast.error(t("chooseDestination")); return; } const payload = groups - .filter((g) => approved[g.name]) + .filter((g) => approved[g.name] !== false) .map((g) => { const o = overrides[g.name] ?? {}; return { @@ -342,7 +402,7 @@ export function OrganizeImportsDialog({ return; } - if (payload.length === 0 || payload.some((g) => !g.caption)) { + if (payload.some((g) => !g.caption)) { toast.error(t("errorNoName")); return; } @@ -351,9 +411,9 @@ export function OrganizeImportsDialog({ const result = await organizeImportFurni({ parentId, groups: payload }); if (!result.ok) throw new Error(result.error ?? "Failed"); const created = result.data?.created ?? []; + const moved = created.reduce((sum, c) => sum + c.moved, 0); + const added = created.reduce((sum, c) => sum + c.added, 0); if (moveMode) { - const moved = created.reduce((sum, c) => sum + c.moved, 0); - const added = created.reduce((sum, c) => sum + c.added, 0); toast.success( t("successMove", { moved, @@ -362,8 +422,6 @@ export function OrganizeImportsDialog({ }), ); } else { - const moved = created.reduce((sum, c) => sum + c.moved, 0); - const added = created.reduce((sum, c) => sum + c.added, 0); toast.success( t("successCreate", { count: created.length, @@ -382,10 +440,12 @@ export function OrganizeImportsDialog({ } }; + const quickPicks = rootPages.slice(0, QUICK_PICKS); + return ( <> - + @@ -543,47 +603,70 @@ export function OrganizeImportsDialog({ ) : ( -
- - setDestQuery(e.target.value)} - /> - {destSearchLoading && ( - + <> +
+ + setDestQuery(e.target.value)} + /> + {destSearchLoading && ( + + )} +
+ {/* Quick pick: click a root page without typing */} + {destQuery.length < 2 && quickPicks.length > 0 && ( +
+ {quickPicks.map((p) => ( + + ))} +
)} -
- )} - {destinationPageId == null && destDebounced.length >= 2 && ( -
- {destResults.length === 0 && !destSearchLoading ? ( -

- {t("noDestResults")} -

- ) : ( - destResults.map((p) => ( - - )) + {destQuery.length >= 2 && ( +
+ {destResults.length === 0 && !destSearchLoading ? ( +

+ {t("noDestResults")} +

+ ) : ( + destResults.map((p) => ( + + )) + )} +
)} -
+ )}

{t("destinationHint")} @@ -748,6 +831,52 @@ export function OrganizeImportsDialog({ )} + + {/* Move selected to another category */} + {selection.size > 0 && ( +

+ + {t("selectedCount", { count: selection.size })} + + + {t("batchMoveTo")} + + + +
+ )} {filteredGroups.map((group) => { @@ -756,16 +885,23 @@ export function OrganizeImportsDialog({ const icon = o.icon ?? group.icon; const layout = o.layout ?? group.layout ?? "default_3x3"; const isApproved = approved[group.name] !== false; - const moved = group.moved; - const added = group.added; + const movedCount = group.items.filter( + (i) => i.alreadyPlaced, + ).length; + const addedCount = group.items.length - movedCount; + const isExpanded = expanded[group.name] ?? false; + const visibleItems = isExpanded + ? group.items + : group.items.slice(0, ITEMS_VISIBLE); + const moveTargets = moveItemOptions(group.name); return ( - + ); })} @@ -1017,6 +1211,7 @@ export function OrganizeImportsDialog({ loading || isCreating || totalSelected === 0 || + totalSelected > MAX_ITEMS_PER_RUN || (moveMode && destinationPageId == null) } onClick={() => void handleCreate()} @@ -1039,7 +1234,7 @@ export function OrganizeImportsDialog({ open={previewGroup != null} onOpenChange={(open) => !open && setPreviewGroup(null)} > - + @@ -1056,7 +1251,7 @@ export function OrganizeImportsDialog({ - {previewGroup.total} items + {previewGroup.items.length} items {previewGroup.layout && @@ -1065,20 +1260,28 @@ export function OrganizeImportsDialog({ {LAYOUT_DESCRIPTIONS[previewGroup.layout]}

)} -
+
- {previewGroup.thumbs.map((thumb) => ( + {previewGroup.items.slice(0, 40).map((item) => (
- + - {thumb.itemName} + {item.itemName}
))}
+ {previewGroup.items.length > 40 && ( +

+ {t("showAll", { count: previewGroup.items.length })} +

+ )}
)} diff --git a/src/messages/ar.json b/src/messages/ar.json index 331732dc..e271db9b 100644 --- a/src/messages/ar.json +++ b/src/messages/ar.json @@ -907,12 +907,12 @@ "visualPreview": "Preview", "resetAll": "Reset overrides", "onlyUnplaced": "Only show unplaced items", - "errorMaxItems": "Max 1000 items per run. Reduce selection.", + "errorMaxItems": "Max 500 items per run. Reduce selection.", "errorMaxGroups": "Max {count} groups per run. Reduce selection.", "errorNoName": "Every approved page needs a name", "tipMove": "Tip: Pick a destination page below to move furniture.", "tipCreate": "Tip: Pick this mode to create new pages.", - "limitHint": "Max 1000 items and 50 groups per run.", + "limitHint": "Max 500 items and 50 groups per run.", "errorFailed": "Failed to organize imports", "successMove": "Moved {moved} offer{moved, plural, one {} other {s}}{added, plural, =0 {} other {, added {added} new}} to \"{destination}\"", "successCreate": "Created {count, plural, one {1 page} other {# pages}} with {moved} moved and {added} added furniture", @@ -920,7 +920,13 @@ "layoutFallbackDefault3x3": "3x3", "itemsUnit": "items", "impPrefix": "Imp ", - "isMoved": "moved" + "isMoved": "moved", + "showAll": "Show all ({count})", + "showLess": "Show less", + "moveItemTo": "Move to…", + "batchMoveTo": "Move selected to…", + "selectedCount": "{count} selected", + "clearSelection": "Clear selection" } }, "discovery": { diff --git a/src/messages/bg.json b/src/messages/bg.json index e6a3e0d7..ee8fcf51 100644 --- a/src/messages/bg.json +++ b/src/messages/bg.json @@ -2034,12 +2034,12 @@ "visualPreview": "Preview", "resetAll": "Reset overrides", "onlyUnplaced": "Only show unplaced items", - "errorMaxItems": "Max 1000 items per run. Reduce selection.", + "errorMaxItems": "Max 500 items per run. Reduce selection.", "errorMaxGroups": "Max {count} groups per run. Reduce selection.", "errorNoName": "Every approved page needs a name", "tipMove": "Tip: Pick a destination page below to move furniture.", "tipCreate": "Tip: Pick this mode to create new pages.", - "limitHint": "Max 1000 items and 50 groups per run.", + "limitHint": "Max 500 items and 50 groups per run.", "errorFailed": "Failed to organize imports", "successMove": "Moved {moved} offer{moved, plural, one {} other {s}}{added, plural, =0 {} other {, added {added} new}} to \"{destination}\"", "successCreate": "Created {count, plural, one {1 page} other {# pages}} with {moved} moved and {added} added furniture", @@ -2047,7 +2047,13 @@ "layoutFallbackDefault3x3": "3x3", "itemsUnit": "items", "impPrefix": "Imp ", - "isMoved": "moved" + "isMoved": "moved", + "showAll": "Show all ({count})", + "showLess": "Show less", + "moveItemTo": "Move to…", + "batchMoveTo": "Move selected to…", + "selectedCount": "{count} selected", + "clearSelection": "Clear selection" } }, "discovery": { diff --git a/src/messages/cs.json b/src/messages/cs.json index 6685e2b2..33cedb13 100644 --- a/src/messages/cs.json +++ b/src/messages/cs.json @@ -2034,12 +2034,12 @@ "visualPreview": "Preview", "resetAll": "Reset overrides", "onlyUnplaced": "Only show unplaced items", - "errorMaxItems": "Max 1000 items per run. Reduce selection.", + "errorMaxItems": "Max 500 items per run. Reduce selection.", "errorMaxGroups": "Max {count} groups per run. Reduce selection.", "errorNoName": "Every approved page needs a name", "tipMove": "Tip: Pick a destination page below to move furniture.", "tipCreate": "Tip: Pick this mode to create new pages.", - "limitHint": "Max 1000 items and 50 groups per run.", + "limitHint": "Max 500 items and 50 groups per run.", "errorFailed": "Failed to organize imports", "successMove": "Moved {moved} offer{moved, plural, one {} other {s}}{added, plural, =0 {} other {, added {added} new}} to \"{destination}\"", "successCreate": "Created {count, plural, one {1 page} other {# pages}} with {moved} moved and {added} added furniture", @@ -2047,7 +2047,13 @@ "layoutFallbackDefault3x3": "3x3", "itemsUnit": "items", "impPrefix": "Imp ", - "isMoved": "moved" + "isMoved": "moved", + "showAll": "Show all ({count})", + "showLess": "Show less", + "moveItemTo": "Move to…", + "batchMoveTo": "Move selected to…", + "selectedCount": "{count} selected", + "clearSelection": "Clear selection" } }, "discovery": { diff --git a/src/messages/da.json b/src/messages/da.json index 33e495bc..e86d2fbc 100644 --- a/src/messages/da.json +++ b/src/messages/da.json @@ -2034,12 +2034,12 @@ "visualPreview": "Preview", "resetAll": "Reset overrides", "onlyUnplaced": "Only show unplaced items", - "errorMaxItems": "Max 1000 items per run. Reduce selection.", + "errorMaxItems": "Max 500 items per run. Reduce selection.", "errorMaxGroups": "Max {count} groups per run. Reduce selection.", "errorNoName": "Every approved page needs a name", "tipMove": "Tip: Pick a destination page below to move furniture.", "tipCreate": "Tip: Pick this mode to create new pages.", - "limitHint": "Max 1000 items and 50 groups per run.", + "limitHint": "Max 500 items and 50 groups per run.", "errorFailed": "Failed to organize imports", "successMove": "Moved {moved} offer{moved, plural, one {} other {s}}{added, plural, =0 {} other {, added {added} new}} to \"{destination}\"", "successCreate": "Created {count, plural, one {1 page} other {# pages}} with {moved} moved and {added} added furniture", @@ -2047,7 +2047,13 @@ "layoutFallbackDefault3x3": "3x3", "itemsUnit": "items", "impPrefix": "Imp ", - "isMoved": "moved" + "isMoved": "moved", + "showAll": "Show all ({count})", + "showLess": "Show less", + "moveItemTo": "Move to…", + "batchMoveTo": "Move selected to…", + "selectedCount": "{count} selected", + "clearSelection": "Clear selection" } }, "discovery": { diff --git a/src/messages/de.json b/src/messages/de.json index 0b534168..f832e9ea 100644 --- a/src/messages/de.json +++ b/src/messages/de.json @@ -2004,12 +2004,12 @@ "visualPreview": "Preview", "resetAll": "Reset overrides", "onlyUnplaced": "Only show unplaced items", - "errorMaxItems": "Max 1000 items per run. Reduce selection.", + "errorMaxItems": "Max 500 items per run. Reduce selection.", "errorMaxGroups": "Max {count} groups per run. Reduce selection.", "errorNoName": "Every approved page needs a name", "tipMove": "Tip: Pick a destination page below to move furniture.", "tipCreate": "Tip: Pick this mode to create new pages.", - "limitHint": "Max 1000 items and 50 groups per run.", + "limitHint": "Max 500 items and 50 groups per run.", "errorFailed": "Failed to organize imports", "successMove": "Moved {moved} offer{moved, plural, one {} other {s}}{added, plural, =0 {} other {, added {added} new}} to \"{destination}\"", "successCreate": "Created {count, plural, one {1 page} other {# pages}} with {moved} moved and {added} added furniture", @@ -2017,7 +2017,13 @@ "layoutFallbackDefault3x3": "3x3", "itemsUnit": "items", "impPrefix": "Imp ", - "isMoved": "moved" + "isMoved": "moved", + "showAll": "Alle anzeigen ({count})", + "showLess": "Weniger anzeigen", + "moveItemTo": "Verschieben zu…", + "batchMoveTo": "Auswahl verschieben zu…", + "selectedCount": "{count} ausgewählt", + "clearSelection": "Auswahl aufheben" } }, "discovery": { diff --git a/src/messages/el.json b/src/messages/el.json index e6caec40..399c4837 100644 --- a/src/messages/el.json +++ b/src/messages/el.json @@ -2034,12 +2034,12 @@ "visualPreview": "Preview", "resetAll": "Reset overrides", "onlyUnplaced": "Only show unplaced items", - "errorMaxItems": "Max 1000 items per run. Reduce selection.", + "errorMaxItems": "Max 500 items per run. Reduce selection.", "errorMaxGroups": "Max {count} groups per run. Reduce selection.", "errorNoName": "Every approved page needs a name", "tipMove": "Tip: Pick a destination page below to move furniture.", "tipCreate": "Tip: Pick this mode to create new pages.", - "limitHint": "Max 1000 items and 50 groups per run.", + "limitHint": "Max 500 items and 50 groups per run.", "errorFailed": "Failed to organize imports", "successMove": "Moved {moved} offer{moved, plural, one {} other {s}}{added, plural, =0 {} other {, added {added} new}} to \"{destination}\"", "successCreate": "Created {count, plural, one {1 page} other {# pages}} with {moved} moved and {added} added furniture", @@ -2047,7 +2047,13 @@ "layoutFallbackDefault3x3": "3x3", "itemsUnit": "items", "impPrefix": "Imp ", - "isMoved": "moved" + "isMoved": "moved", + "showAll": "Show all ({count})", + "showLess": "Show less", + "moveItemTo": "Move to…", + "batchMoveTo": "Move selected to…", + "selectedCount": "{count} selected", + "clearSelection": "Clear selection" } }, "discovery": { diff --git a/src/messages/en.json b/src/messages/en.json index 5f016fbd..e3599615 100644 --- a/src/messages/en.json +++ b/src/messages/en.json @@ -2260,12 +2260,12 @@ "visualPreview": "Preview", "resetAll": "Reset overrides", "onlyUnplaced": "Only show unplaced items", - "errorMaxItems": "Max 1000 items per run. Reduce selection.", + "errorMaxItems": "Max 500 items per run. Reduce selection.", "errorMaxGroups": "Max {count} groups per run. Reduce selection.", "errorNoName": "Every approved page needs a name", "tipMove": "Tip: Pick a destination page below to move furniture.", "tipCreate": "Tip: Pick this mode to create new pages.", - "limitHint": "Max 1000 items and 50 groups per run.", + "limitHint": "Max 500 items and 50 groups per run.", "errorFailed": "Failed to organize imports", "successMove": "Moved {moved} offer{moved, plural, one {} other {s}}{added, plural, =0 {} other {, added {added} new}} to \"{destination}\"", "successCreate": "Created {count, plural, one {1 page} other {# pages}} with {moved} moved and {added} added furniture", @@ -2273,7 +2273,13 @@ "layoutFallbackDefault3x3": "3x3", "itemsUnit": "items", "impPrefix": "Imp ", - "isMoved": "moved" + "isMoved": "moved", + "showAll": "Show all ({count})", + "showLess": "Show less", + "moveItemTo": "Move to…", + "batchMoveTo": "Move selected to…", + "selectedCount": "{count} selected", + "clearSelection": "Clear selection" } }, "bulk": { diff --git a/src/messages/es.json b/src/messages/es.json index 9efd594a..ef3e00ec 100644 --- a/src/messages/es.json +++ b/src/messages/es.json @@ -2004,12 +2004,12 @@ "visualPreview": "Preview", "resetAll": "Reset overrides", "onlyUnplaced": "Only show unplaced items", - "errorMaxItems": "Max 1000 items per run. Reduce selection.", + "errorMaxItems": "Max 500 items per run. Reduce selection.", "errorMaxGroups": "Max {count} groups per run. Reduce selection.", "errorNoName": "Every approved page needs a name", "tipMove": "Tip: Pick a destination page below to move furniture.", "tipCreate": "Tip: Pick this mode to create new pages.", - "limitHint": "Max 1000 items and 50 groups per run.", + "limitHint": "Max 500 items and 50 groups per run.", "errorFailed": "Failed to organize imports", "successMove": "Moved {moved} offer{moved, plural, one {} other {s}}{added, plural, =0 {} other {, added {added} new}} to \"{destination}\"", "successCreate": "Created {count, plural, one {1 page} other {# pages}} with {moved} moved and {added} added furniture", @@ -2017,7 +2017,13 @@ "layoutFallbackDefault3x3": "3x3", "itemsUnit": "items", "impPrefix": "Imp ", - "isMoved": "moved" + "isMoved": "moved", + "showAll": "Mostrar todo ({count})", + "showLess": "Mostrar menos", + "moveItemTo": "Mover a…", + "batchMoveTo": "Mover seleccionados a…", + "selectedCount": "{count} seleccionados", + "clearSelection": "Limpiar selección" } }, "discovery": { diff --git a/src/messages/fi.json b/src/messages/fi.json index f64b0e8d..73b9a6c5 100644 --- a/src/messages/fi.json +++ b/src/messages/fi.json @@ -907,12 +907,12 @@ "visualPreview": "Preview", "resetAll": "Reset overrides", "onlyUnplaced": "Only show unplaced items", - "errorMaxItems": "Max 1000 items per run. Reduce selection.", + "errorMaxItems": "Max 500 items per run. Reduce selection.", "errorMaxGroups": "Max {count} groups per run. Reduce selection.", "errorNoName": "Every approved page needs a name", "tipMove": "Tip: Pick a destination page below to move furniture.", "tipCreate": "Tip: Pick this mode to create new pages.", - "limitHint": "Max 1000 items and 50 groups per run.", + "limitHint": "Max 500 items and 50 groups per run.", "errorFailed": "Failed to organize imports", "successMove": "Moved {moved} offer{moved, plural, one {} other {s}}{added, plural, =0 {} other {, added {added} new}} to \"{destination}\"", "successCreate": "Created {count, plural, one {1 page} other {# pages}} with {moved} moved and {added} added furniture", @@ -920,7 +920,13 @@ "layoutFallbackDefault3x3": "3x3", "itemsUnit": "items", "impPrefix": "Imp ", - "isMoved": "moved" + "isMoved": "moved", + "showAll": "Show all ({count})", + "showLess": "Show less", + "moveItemTo": "Move to…", + "batchMoveTo": "Move selected to…", + "selectedCount": "{count} selected", + "clearSelection": "Clear selection" } }, "discovery": { diff --git a/src/messages/fr.json b/src/messages/fr.json index 14f92982..5db09502 100644 --- a/src/messages/fr.json +++ b/src/messages/fr.json @@ -2004,12 +2004,12 @@ "visualPreview": "Preview", "resetAll": "Reset overrides", "onlyUnplaced": "Only show unplaced items", - "errorMaxItems": "Max 1000 items per run. Reduce selection.", + "errorMaxItems": "Max 500 items per run. Reduce selection.", "errorMaxGroups": "Max {count} groups per run. Reduce selection.", "errorNoName": "Every approved page needs a name", "tipMove": "Tip: Pick a destination page below to move furniture.", "tipCreate": "Tip: Pick this mode to create new pages.", - "limitHint": "Max 1000 items and 50 groups per run.", + "limitHint": "Max 500 items and 50 groups per run.", "errorFailed": "Failed to organize imports", "successMove": "Moved {moved} offer{moved, plural, one {} other {s}}{added, plural, =0 {} other {, added {added} new}} to \"{destination}\"", "successCreate": "Created {count, plural, one {1 page} other {# pages}} with {moved} moved and {added} added furniture", @@ -2017,7 +2017,13 @@ "layoutFallbackDefault3x3": "3x3", "itemsUnit": "items", "impPrefix": "Imp ", - "isMoved": "moved" + "isMoved": "moved", + "showAll": "Tout afficher ({count})", + "showLess": "Afficher moins", + "moveItemTo": "Déplacer vers…", + "batchMoveTo": "Déplacer la sélection vers…", + "selectedCount": "{count} sélectionné(s)", + "clearSelection": "Effacer la sélection" } }, "discovery": { diff --git a/src/messages/hr.json b/src/messages/hr.json index 0e28d725..dda42a73 100644 --- a/src/messages/hr.json +++ b/src/messages/hr.json @@ -2034,12 +2034,12 @@ "visualPreview": "Preview", "resetAll": "Reset overrides", "onlyUnplaced": "Only show unplaced items", - "errorMaxItems": "Max 1000 items per run. Reduce selection.", + "errorMaxItems": "Max 500 items per run. Reduce selection.", "errorMaxGroups": "Max {count} groups per run. Reduce selection.", "errorNoName": "Every approved page needs a name", "tipMove": "Tip: Pick a destination page below to move furniture.", "tipCreate": "Tip: Pick this mode to create new pages.", - "limitHint": "Max 1000 items and 50 groups per run.", + "limitHint": "Max 500 items and 50 groups per run.", "errorFailed": "Failed to organize imports", "successMove": "Moved {moved} offer{moved, plural, one {} other {s}}{added, plural, =0 {} other {, added {added} new}} to \"{destination}\"", "successCreate": "Created {count, plural, one {1 page} other {# pages}} with {moved} moved and {added} added furniture", @@ -2047,7 +2047,13 @@ "layoutFallbackDefault3x3": "3x3", "itemsUnit": "items", "impPrefix": "Imp ", - "isMoved": "moved" + "isMoved": "moved", + "showAll": "Show all ({count})", + "showLess": "Show less", + "moveItemTo": "Move to…", + "batchMoveTo": "Move selected to…", + "selectedCount": "{count} selected", + "clearSelection": "Clear selection" } }, "discovery": { diff --git a/src/messages/hu.json b/src/messages/hu.json index 69d05fa3..1cb471fb 100644 --- a/src/messages/hu.json +++ b/src/messages/hu.json @@ -2034,12 +2034,12 @@ "visualPreview": "Preview", "resetAll": "Reset overrides", "onlyUnplaced": "Only show unplaced items", - "errorMaxItems": "Max 1000 items per run. Reduce selection.", + "errorMaxItems": "Max 500 items per run. Reduce selection.", "errorMaxGroups": "Max {count} groups per run. Reduce selection.", "errorNoName": "Every approved page needs a name", "tipMove": "Tip: Pick a destination page below to move furniture.", "tipCreate": "Tip: Pick this mode to create new pages.", - "limitHint": "Max 1000 items and 50 groups per run.", + "limitHint": "Max 500 items and 50 groups per run.", "errorFailed": "Failed to organize imports", "successMove": "Moved {moved} offer{moved, plural, one {} other {s}}{added, plural, =0 {} other {, added {added} new}} to \"{destination}\"", "successCreate": "Created {count, plural, one {1 page} other {# pages}} with {moved} moved and {added} added furniture", @@ -2047,7 +2047,13 @@ "layoutFallbackDefault3x3": "3x3", "itemsUnit": "items", "impPrefix": "Imp ", - "isMoved": "moved" + "isMoved": "moved", + "showAll": "Show all ({count})", + "showLess": "Show less", + "moveItemTo": "Move to…", + "batchMoveTo": "Move selected to…", + "selectedCount": "{count} selected", + "clearSelection": "Clear selection" } }, "discovery": { diff --git a/src/messages/it.json b/src/messages/it.json index b3fa4f5b..54af6abd 100644 --- a/src/messages/it.json +++ b/src/messages/it.json @@ -2179,12 +2179,12 @@ "visualPreview": "Preview", "resetAll": "Reset overrides", "onlyUnplaced": "Only show unplaced items", - "errorMaxItems": "Max 1000 items per run. Reduce selection.", + "errorMaxItems": "Max 500 items per run. Reduce selection.", "errorMaxGroups": "Max {count} groups per run. Reduce selection.", "errorNoName": "Every approved page needs a name", "tipMove": "Tip: Pick a destination page below to move furniture.", "tipCreate": "Tip: Pick this mode to create new pages.", - "limitHint": "Max 1000 items and 50 groups per run.", + "limitHint": "Max 500 items and 50 groups per run.", "errorFailed": "Failed to organize imports", "successMove": "Moved {moved} offer{moved, plural, one {} other {s}}{added, plural, =0 {} other {, added {added} new}} to \"{destination}\"", "successCreate": "Created {count, plural, one {1 page} other {# pages}} with {moved} moved and {added} added furniture", @@ -2192,7 +2192,13 @@ "layoutFallbackDefault3x3": "3x3", "itemsUnit": "items", "impPrefix": "Imp ", - "isMoved": "moved" + "isMoved": "moved", + "showAll": "Mostra tutto ({count})", + "showLess": "Mostra meno", + "moveItemTo": "Sposta verso…", + "batchMoveTo": "Sposta la selezione verso…", + "selectedCount": "{count} selezionati", + "clearSelection": "Azzera selezione" } }, "bulk": { diff --git a/src/messages/ja.json b/src/messages/ja.json index a9d905c8..d696c604 100644 --- a/src/messages/ja.json +++ b/src/messages/ja.json @@ -907,12 +907,12 @@ "visualPreview": "Preview", "resetAll": "Reset overrides", "onlyUnplaced": "Only show unplaced items", - "errorMaxItems": "Max 1000 items per run. Reduce selection.", + "errorMaxItems": "Max 500 items per run. Reduce selection.", "errorMaxGroups": "Max {count} groups per run. Reduce selection.", "errorNoName": "Every approved page needs a name", "tipMove": "Tip: Pick a destination page below to move furniture.", "tipCreate": "Tip: Pick this mode to create new pages.", - "limitHint": "Max 1000 items and 50 groups per run.", + "limitHint": "Max 500 items and 50 groups per run.", "errorFailed": "Failed to organize imports", "successMove": "Moved {moved} offer{moved, plural, one {} other {s}}{added, plural, =0 {} other {, added {added} new}} to \"{destination}\"", "successCreate": "Created {count, plural, one {1 page} other {# pages}} with {moved} moved and {added} added furniture", @@ -920,7 +920,13 @@ "layoutFallbackDefault3x3": "3x3", "itemsUnit": "items", "impPrefix": "Imp ", - "isMoved": "moved" + "isMoved": "moved", + "showAll": "Show all ({count})", + "showLess": "Show less", + "moveItemTo": "Move to…", + "batchMoveTo": "Move selected to…", + "selectedCount": "{count} selected", + "clearSelection": "Clear selection" } }, "discovery": { diff --git a/src/messages/nl.json b/src/messages/nl.json index 97606c22..c316c55c 100644 --- a/src/messages/nl.json +++ b/src/messages/nl.json @@ -2124,12 +2124,12 @@ "visualPreview": "Voorbeeld", "resetAll": "Wijzigingen herstellen", "onlyUnplaced": "Toon alleen ongeplaatste items", - "errorMaxItems": "Maximaal 1000 items per run. Verlaag de selectie.", + "errorMaxItems": "Maximaal 500 items per run. Verlaag de selectie.", "errorMaxGroups": "Maximaal {count} groepen per run. Verlaag de selectie.", "errorNoName": "Elke goedgekeurde pagina heeft een naam nodig", "tipMove": "Tip: Kies de doelpagina in het vak hieronder om meubels te verplaatsen.", "tipCreate": "Tip: Kies deze modus om nieuwe pagina's aan te maken.", - "limitHint": "Maximaal 1000 items en 50 groepen per run.", + "limitHint": "Maximaal 500 items en 50 groepen per run.", "errorFailed": "Kon imports niet organiseren", "successMove": "{moved} item{moved, plural, one { verplaatst} other {s verplaatst}}{added, plural, =0 {} other {, {added} nieuw toegevoegd}} naar \"{destination}\"", "successCreate": "{count, plural, one {1 pagina} other {# pagina's}} aangemaakt met {moved} verplaatste en {added} toegevoegde meubels", @@ -2137,7 +2137,13 @@ "layoutFallbackDefault3x3": "3x3", "itemsUnit": "items", "impPrefix": "Imp ", - "isMoved": "verplaatst" + "isMoved": "verplaatst", + "showAll": "Alles tonen ({count})", + "showLess": "Minder tonen", + "moveItemTo": "Verplaatsen naar…", + "batchMoveTo": "Geselecteerde verplaatsen naar…", + "selectedCount": "{count} geselecteerd", + "clearSelection": "Selectie wissen" } }, "bulk": { diff --git a/src/messages/no.json b/src/messages/no.json index e8a560a5..2648632f 100644 --- a/src/messages/no.json +++ b/src/messages/no.json @@ -2034,12 +2034,12 @@ "visualPreview": "Preview", "resetAll": "Reset overrides", "onlyUnplaced": "Only show unplaced items", - "errorMaxItems": "Max 1000 items per run. Reduce selection.", + "errorMaxItems": "Max 500 items per run. Reduce selection.", "errorMaxGroups": "Max {count} groups per run. Reduce selection.", "errorNoName": "Every approved page needs a name", "tipMove": "Tip: Pick a destination page below to move furniture.", "tipCreate": "Tip: Pick this mode to create new pages.", - "limitHint": "Max 1000 items and 50 groups per run.", + "limitHint": "Max 500 items and 50 groups per run.", "errorFailed": "Failed to organize imports", "successMove": "Moved {moved} offer{moved, plural, one {} other {s}}{added, plural, =0 {} other {, added {added} new}} to \"{destination}\"", "successCreate": "Created {count, plural, one {1 page} other {# pages}} with {moved} moved and {added} added furniture", @@ -2047,7 +2047,13 @@ "layoutFallbackDefault3x3": "3x3", "itemsUnit": "items", "impPrefix": "Imp ", - "isMoved": "moved" + "isMoved": "moved", + "showAll": "Show all ({count})", + "showLess": "Show less", + "moveItemTo": "Move to…", + "batchMoveTo": "Move selected to…", + "selectedCount": "{count} selected", + "clearSelection": "Clear selection" } }, "discovery": { diff --git a/src/messages/pl.json b/src/messages/pl.json index 9ffc7298..9acad109 100644 --- a/src/messages/pl.json +++ b/src/messages/pl.json @@ -2034,12 +2034,12 @@ "visualPreview": "Preview", "resetAll": "Reset overrides", "onlyUnplaced": "Only show unplaced items", - "errorMaxItems": "Max 1000 items per run. Reduce selection.", + "errorMaxItems": "Max 500 items per run. Reduce selection.", "errorMaxGroups": "Max {count} groups per run. Reduce selection.", "errorNoName": "Every approved page needs a name", "tipMove": "Tip: Pick a destination page below to move furniture.", "tipCreate": "Tip: Pick this mode to create new pages.", - "limitHint": "Max 1000 items and 50 groups per run.", + "limitHint": "Max 500 items and 50 groups per run.", "errorFailed": "Failed to organize imports", "successMove": "Moved {moved} offer{moved, plural, one {} other {s}}{added, plural, =0 {} other {, added {added} new}} to \"{destination}\"", "successCreate": "Created {count, plural, one {1 page} other {# pages}} with {moved} moved and {added} added furniture", @@ -2047,7 +2047,13 @@ "layoutFallbackDefault3x3": "3x3", "itemsUnit": "items", "impPrefix": "Imp ", - "isMoved": "moved" + "isMoved": "moved", + "showAll": "Show all ({count})", + "showLess": "Show less", + "moveItemTo": "Move to…", + "batchMoveTo": "Move selected to…", + "selectedCount": "{count} selected", + "clearSelection": "Clear selection" } }, "discovery": { diff --git a/src/messages/pt.json b/src/messages/pt.json index d63b0079..70b13904 100644 --- a/src/messages/pt.json +++ b/src/messages/pt.json @@ -2034,12 +2034,12 @@ "visualPreview": "Preview", "resetAll": "Reset overrides", "onlyUnplaced": "Only show unplaced items", - "errorMaxItems": "Max 1000 items per run. Reduce selection.", + "errorMaxItems": "Max 500 items per run. Reduce selection.", "errorMaxGroups": "Max {count} groups per run. Reduce selection.", "errorNoName": "Every approved page needs a name", "tipMove": "Tip: Pick a destination page below to move furniture.", "tipCreate": "Tip: Pick this mode to create new pages.", - "limitHint": "Max 1000 items and 50 groups per run.", + "limitHint": "Max 500 items and 50 groups per run.", "errorFailed": "Failed to organize imports", "successMove": "Moved {moved} offer{moved, plural, one {} other {s}}{added, plural, =0 {} other {, added {added} new}} to \"{destination}\"", "successCreate": "Created {count, plural, one {1 page} other {# pages}} with {moved} moved and {added} added furniture", @@ -2047,7 +2047,13 @@ "layoutFallbackDefault3x3": "3x3", "itemsUnit": "items", "impPrefix": "Imp ", - "isMoved": "moved" + "isMoved": "moved", + "showAll": "Mostrar tudo ({count})", + "showLess": "Mostrar menos", + "moveItemTo": "Mover para…", + "batchMoveTo": "Mover seleção para…", + "selectedCount": "{count} selecionados", + "clearSelection": "Limpar seleção" } }, "discovery": { diff --git a/src/messages/ro.json b/src/messages/ro.json index 7f9cf53a..a1cce804 100644 --- a/src/messages/ro.json +++ b/src/messages/ro.json @@ -2034,12 +2034,12 @@ "visualPreview": "Preview", "resetAll": "Reset overrides", "onlyUnplaced": "Only show unplaced items", - "errorMaxItems": "Max 1000 items per run. Reduce selection.", + "errorMaxItems": "Max 500 items per run. Reduce selection.", "errorMaxGroups": "Max {count} groups per run. Reduce selection.", "errorNoName": "Every approved page needs a name", "tipMove": "Tip: Pick a destination page below to move furniture.", "tipCreate": "Tip: Pick this mode to create new pages.", - "limitHint": "Max 1000 items and 50 groups per run.", + "limitHint": "Max 500 items and 50 groups per run.", "errorFailed": "Failed to organize imports", "successMove": "Moved {moved} offer{moved, plural, one {} other {s}}{added, plural, =0 {} other {, added {added} new}} to \"{destination}\"", "successCreate": "Created {count, plural, one {1 page} other {# pages}} with {moved} moved and {added} added furniture", @@ -2047,7 +2047,13 @@ "layoutFallbackDefault3x3": "3x3", "itemsUnit": "items", "impPrefix": "Imp ", - "isMoved": "moved" + "isMoved": "moved", + "showAll": "Show all ({count})", + "showLess": "Show less", + "moveItemTo": "Move to…", + "batchMoveTo": "Move selected to…", + "selectedCount": "{count} selected", + "clearSelection": "Clear selection" } }, "discovery": { diff --git a/src/messages/ru.json b/src/messages/ru.json index ace68262..42b855f8 100644 --- a/src/messages/ru.json +++ b/src/messages/ru.json @@ -2032,12 +2032,12 @@ "visualPreview": "Preview", "resetAll": "Reset overrides", "onlyUnplaced": "Only show unplaced items", - "errorMaxItems": "Max 1000 items per run. Reduce selection.", + "errorMaxItems": "Max 500 items per run. Reduce selection.", "errorMaxGroups": "Max {count} groups per run. Reduce selection.", "errorNoName": "Every approved page needs a name", "tipMove": "Tip: Pick a destination page below to move furniture.", "tipCreate": "Tip: Pick this mode to create new pages.", - "limitHint": "Max 1000 items and 50 groups per run.", + "limitHint": "Max 500 items and 50 groups per run.", "errorFailed": "Failed to organize imports", "successMove": "Moved {moved} offer{moved, plural, one {} other {s}}{added, plural, =0 {} other {, added {added} new}} to \"{destination}\"", "successCreate": "Created {count, plural, one {1 page} other {# pages}} with {moved} moved and {added} added furniture", @@ -2045,7 +2045,13 @@ "layoutFallbackDefault3x3": "3x3", "itemsUnit": "items", "impPrefix": "Imp ", - "isMoved": "moved" + "isMoved": "moved", + "showAll": "Show all ({count})", + "showLess": "Show less", + "moveItemTo": "Move to…", + "batchMoveTo": "Move selected to…", + "selectedCount": "{count} selected", + "clearSelection": "Clear selection" } }, "discovery": { diff --git a/src/messages/sk.json b/src/messages/sk.json index 927768ba..3dee14b9 100644 --- a/src/messages/sk.json +++ b/src/messages/sk.json @@ -2034,12 +2034,12 @@ "visualPreview": "Preview", "resetAll": "Reset overrides", "onlyUnplaced": "Only show unplaced items", - "errorMaxItems": "Max 1000 items per run. Reduce selection.", + "errorMaxItems": "Max 500 items per run. Reduce selection.", "errorMaxGroups": "Max {count} groups per run. Reduce selection.", "errorNoName": "Every approved page needs a name", "tipMove": "Tip: Pick a destination page below to move furniture.", "tipCreate": "Tip: Pick this mode to create new pages.", - "limitHint": "Max 1000 items and 50 groups per run.", + "limitHint": "Max 500 items and 50 groups per run.", "errorFailed": "Failed to organize imports", "successMove": "Moved {moved} offer{moved, plural, one {} other {s}}{added, plural, =0 {} other {, added {added} new}} to \"{destination}\"", "successCreate": "Created {count, plural, one {1 page} other {# pages}} with {moved} moved and {added} added furniture", @@ -2047,7 +2047,13 @@ "layoutFallbackDefault3x3": "3x3", "itemsUnit": "items", "impPrefix": "Imp ", - "isMoved": "moved" + "isMoved": "moved", + "showAll": "Show all ({count})", + "showLess": "Show less", + "moveItemTo": "Move to…", + "batchMoveTo": "Move selected to…", + "selectedCount": "{count} selected", + "clearSelection": "Clear selection" } }, "discovery": { diff --git a/src/messages/sr.json b/src/messages/sr.json index 50a8d8f3..847dfba6 100644 --- a/src/messages/sr.json +++ b/src/messages/sr.json @@ -2034,12 +2034,12 @@ "visualPreview": "Preview", "resetAll": "Reset overrides", "onlyUnplaced": "Only show unplaced items", - "errorMaxItems": "Max 1000 items per run. Reduce selection.", + "errorMaxItems": "Max 500 items per run. Reduce selection.", "errorMaxGroups": "Max {count} groups per run. Reduce selection.", "errorNoName": "Every approved page needs a name", "tipMove": "Tip: Pick a destination page below to move furniture.", "tipCreate": "Tip: Pick this mode to create new pages.", - "limitHint": "Max 1000 items and 50 groups per run.", + "limitHint": "Max 500 items and 50 groups per run.", "errorFailed": "Failed to organize imports", "successMove": "Moved {moved} offer{moved, plural, one {} other {s}}{added, plural, =0 {} other {, added {added} new}} to \"{destination}\"", "successCreate": "Created {count, plural, one {1 page} other {# pages}} with {moved} moved and {added} added furniture", @@ -2047,7 +2047,13 @@ "layoutFallbackDefault3x3": "3x3", "itemsUnit": "items", "impPrefix": "Imp ", - "isMoved": "moved" + "isMoved": "moved", + "showAll": "Show all ({count})", + "showLess": "Show less", + "moveItemTo": "Move to…", + "batchMoveTo": "Move selected to…", + "selectedCount": "{count} selected", + "clearSelection": "Clear selection" } }, "discovery": { diff --git a/src/messages/sv.json b/src/messages/sv.json index 8b66ebd4..6e33a111 100644 --- a/src/messages/sv.json +++ b/src/messages/sv.json @@ -2034,12 +2034,12 @@ "visualPreview": "Preview", "resetAll": "Reset overrides", "onlyUnplaced": "Only show unplaced items", - "errorMaxItems": "Max 1000 items per run. Reduce selection.", + "errorMaxItems": "Max 500 items per run. Reduce selection.", "errorMaxGroups": "Max {count} groups per run. Reduce selection.", "errorNoName": "Every approved page needs a name", "tipMove": "Tip: Pick a destination page below to move furniture.", "tipCreate": "Tip: Pick this mode to create new pages.", - "limitHint": "Max 1000 items and 50 groups per run.", + "limitHint": "Max 500 items and 50 groups per run.", "errorFailed": "Failed to organize imports", "successMove": "Moved {moved} offer{moved, plural, one {} other {s}}{added, plural, =0 {} other {, added {added} new}} to \"{destination}\"", "successCreate": "Created {count, plural, one {1 page} other {# pages}} with {moved} moved and {added} added furniture", @@ -2047,7 +2047,13 @@ "layoutFallbackDefault3x3": "3x3", "itemsUnit": "items", "impPrefix": "Imp ", - "isMoved": "moved" + "isMoved": "moved", + "showAll": "Show all ({count})", + "showLess": "Show less", + "moveItemTo": "Move to…", + "batchMoveTo": "Move selected to…", + "selectedCount": "{count} selected", + "clearSelection": "Clear selection" } }, "discovery": { diff --git a/src/messages/tr.json b/src/messages/tr.json index 58f9eddc..deceb116 100644 --- a/src/messages/tr.json +++ b/src/messages/tr.json @@ -2034,12 +2034,12 @@ "visualPreview": "Preview", "resetAll": "Reset overrides", "onlyUnplaced": "Only show unplaced items", - "errorMaxItems": "Max 1000 items per run. Reduce selection.", + "errorMaxItems": "Max 500 items per run. Reduce selection.", "errorMaxGroups": "Max {count} groups per run. Reduce selection.", "errorNoName": "Every approved page needs a name", "tipMove": "Tip: Pick a destination page below to move furniture.", "tipCreate": "Tip: Pick this mode to create new pages.", - "limitHint": "Max 1000 items and 50 groups per run.", + "limitHint": "Max 500 items and 50 groups per run.", "errorFailed": "Failed to organize imports", "successMove": "Moved {moved} offer{moved, plural, one {} other {s}}{added, plural, =0 {} other {, added {added} new}} to \"{destination}\"", "successCreate": "Created {count, plural, one {1 page} other {# pages}} with {moved} moved and {added} added furniture", @@ -2047,7 +2047,13 @@ "layoutFallbackDefault3x3": "3x3", "itemsUnit": "items", "impPrefix": "Imp ", - "isMoved": "moved" + "isMoved": "moved", + "showAll": "Tümünü göster ({count})", + "showLess": "Daha az göster", + "moveItemTo": "Taşı…", + "batchMoveTo": "Seçimi taşı…", + "selectedCount": "{count} seçildi", + "clearSelection": "Seçimi temizle" } }, "discovery": { diff --git a/src/messages/uk.json b/src/messages/uk.json index a0874cc3..1ddaede5 100644 --- a/src/messages/uk.json +++ b/src/messages/uk.json @@ -2034,12 +2034,12 @@ "visualPreview": "Preview", "resetAll": "Reset overrides", "onlyUnplaced": "Only show unplaced items", - "errorMaxItems": "Max 1000 items per run. Reduce selection.", + "errorMaxItems": "Max 500 items per run. Reduce selection.", "errorMaxGroups": "Max {count} groups per run. Reduce selection.", "errorNoName": "Every approved page needs a name", "tipMove": "Tip: Pick a destination page below to move furniture.", "tipCreate": "Tip: Pick this mode to create new pages.", - "limitHint": "Max 1000 items and 50 groups per run.", + "limitHint": "Max 500 items and 50 groups per run.", "errorFailed": "Failed to organize imports", "successMove": "Moved {moved} offer{moved, plural, one {} other {s}}{added, plural, =0 {} other {, added {added} new}} to \"{destination}\"", "successCreate": "Created {count, plural, one {1 page} other {# pages}} with {moved} moved and {added} added furniture", @@ -2047,7 +2047,13 @@ "layoutFallbackDefault3x3": "3x3", "itemsUnit": "items", "impPrefix": "Imp ", - "isMoved": "moved" + "isMoved": "moved", + "showAll": "Show all ({count})", + "showLess": "Show less", + "moveItemTo": "Move to…", + "batchMoveTo": "Move selected to…", + "selectedCount": "{count} selected", + "clearSelection": "Clear selection" } }, "discovery": {