feat(catalog): add saved packages, preview and bulk price editing
This commit is contained in:
1 parent
867113d5d4
commit
047cd9f3dd
48 files changed
+7712
No files matched your search
@@ -1429,6 +1429,96 @@
|
||||
"save": "Mentse el az elemet",
|
||||
"saving": "Mentés…",
|
||||
"cancel": "Mégse"
|
||||
},
|
||||
"packages": {
|
||||
"openPackages": "Catalog packages",
|
||||
"title": "Catalog packages",
|
||||
"description": "Prepare category and price changes in a separate draft. Review the catalog before publishing.",
|
||||
"createPackage": "New package",
|
||||
"createDraft": "Create draft",
|
||||
"draftCreated": "Package draft created. The live catalog has not changed.",
|
||||
"refresh": "Refresh list",
|
||||
"searchPackages": "Search packages",
|
||||
"noPackages": "No packages match this search.",
|
||||
"choosePackage": "Open a package or create a draft from existing categories.",
|
||||
"name": "Package name",
|
||||
"mode": "Publication mode",
|
||||
"update": "Update existing categories",
|
||||
"copy": "Create copies",
|
||||
"updateHint": "Publication applies the package to its existing categories and offers.",
|
||||
"copyHint": "Publication creates new categories and offers under the selected parent. Furniture references are preserved.",
|
||||
"sourceCategories": "Source categories",
|
||||
"packageLimits": "Descendant categories are included. Each package supports up to 200 categories and 500 offers.",
|
||||
"searchCategories": "Search categories",
|
||||
"selectedCategories": "Selected: {count}",
|
||||
"targetParent": "Destination parent category",
|
||||
"rootCategory": "Catalog root",
|
||||
"draft": "Draft",
|
||||
"published": "Published",
|
||||
"editDraft": "Edit draft",
|
||||
"catalogPreview": "Catalog preview",
|
||||
"showBaseline": "Show the original saved snapshot",
|
||||
"changes": "Before and after",
|
||||
"entry": "Entry",
|
||||
"field": "Field",
|
||||
"before": "Before",
|
||||
"after": "After",
|
||||
"noChanges": "No edited fields compared with the original snapshot.",
|
||||
"copyReview": "The entire package will be copied on publication, even if no fields were edited. The table lists edits to the original snapshot.",
|
||||
"updateReview": "These draft changes will update existing catalog entries after publication.",
|
||||
"saveDraft": "Save draft",
|
||||
"saveHint": "Saving keeps the package as a draft. Save all changes before requesting a publication review.",
|
||||
"draftSaved": "Draft saved. Publication is a separate step.",
|
||||
"reviewPublication": "Review publication",
|
||||
"publicationImpact": "Publication affects {pages} categories and {offers} offers.",
|
||||
"conflicts": "Publication is blocked by conflicts. Resolve them before requesting another review.",
|
||||
"readyToPublish": "The saved version passed the publication check. Publishing changes the live catalog.",
|
||||
"publish": "Publish package",
|
||||
"confirmPublish": "Publish this reviewed package to the live catalog now?",
|
||||
"publishedSuccess": "Package published: {pages} categories and {offers} offers.",
|
||||
"staleReview": "This package changed in another session. Reopen it to review the latest saved version.",
|
||||
"unsaved": "Unsaved changes",
|
||||
"discardChanges": "Discard unsaved package changes and continue?",
|
||||
"working": "Working…",
|
||||
"requestFailed": "The request failed. Try again.",
|
||||
"invalidFields": "Check required names, layouts and whole-number fields before saving.",
|
||||
"category": "Category",
|
||||
"caption": "Category caption",
|
||||
"iconImage": "Category icon ID",
|
||||
"minRank": "Minimum rank",
|
||||
"orderNum": "Display order",
|
||||
"pageLayout": "Page layout",
|
||||
"enabled": "Enabled",
|
||||
"visible": "Visible",
|
||||
"clubOnly": "Club members only",
|
||||
"vipOnly": "VIP members only",
|
||||
"offers": "Offers ({count})",
|
||||
"offer": "Offer",
|
||||
"catalogName": "Offer name",
|
||||
"costCredits": "Credits",
|
||||
"costPoints": "Points",
|
||||
"pointsType": "Points currency ID",
|
||||
"amount": "Amount",
|
||||
"searchOffers": "Search offers",
|
||||
"currentCategoryOffers": "Only the selected category",
|
||||
"selectMatching": "Select all matching offers ({count})",
|
||||
"clearSelection": "Clear selection",
|
||||
"selectedOffers": "Selected offers: {count}",
|
||||
"select": "Select",
|
||||
"selectOffer": "Select offer #{id}",
|
||||
"noOffers": "No offers match these filters.",
|
||||
"bulkPrices": "Bulk draft prices ({count} selected)",
|
||||
"bulkHint": "Preview the selected price changes, then accept them into this draft. The live catalog remains unchanged until publication.",
|
||||
"operation": "Operation",
|
||||
"set": "Set value",
|
||||
"add": "Add or subtract",
|
||||
"percent": "Adjust by percent",
|
||||
"value": "Value",
|
||||
"reviewBulk": "Preview prices",
|
||||
"invalidBulk": "Choose valid numbers and at least one offer. Resulting prices must be nonnegative and within the supported range.",
|
||||
"acceptBulk": "Accept prices into draft",
|
||||
"previous": "Previous",
|
||||
"next": "Next"
|
||||
}
|
||||
},
|
||||
"shop": {
|
||||
@@ -3084,6 +3174,69 @@
|
||||
"publications": "News drafts",
|
||||
"unavailable": "{source}: data is temporarily unavailable.",
|
||||
"installation": "Installation diagnostics"
|
||||
},
|
||||
"catalogPackages": {
|
||||
"backend": {
|
||||
"sourceChanged": "Source categories or offers changed since this package was created. Create a fresh package to include the current data.",
|
||||
"saveConflict": "Package changed. Reload it before saving",
|
||||
"publishConflict": "Package changed. Refresh the publication preview",
|
||||
"catalogChanged": "Catalog changed. Refresh the publication preview",
|
||||
"missing": "Catalog package not found",
|
||||
"pageLimit": "A package supports at most 200 categories including descendants",
|
||||
"offerLimit": "A package supports at most 500 offers",
|
||||
"payloadLimit": "Package data exceeds 8 MB safety limit",
|
||||
"membership": "Package membership cannot change",
|
||||
"hierarchy": "Package hierarchy cannot change",
|
||||
"references": "Package furniture references cannot change",
|
||||
"furnitureMissing": "Package furniture reference no longer exists",
|
||||
"auditWarning": "Package published, but audit logging failed.",
|
||||
"hotelWarning": "Package published, but the hotel update was not delivered.",
|
||||
"exportWarning": "Package published, but export scheduling failed.",
|
||||
"refreshWarning": "Package published. Refresh the page to see the latest catalog."
|
||||
}
|
||||
},
|
||||
"catalogPackagePreview": {
|
||||
"title": "Catalog preview",
|
||||
"hint": "Browse the actual package pages and offers. This is a catalog preview, not a full game-client rendering. No purchases are made.",
|
||||
"search": "Search categories or offers",
|
||||
"playerMode": "Player access",
|
||||
"rank": "Rank",
|
||||
"club": "Club",
|
||||
"vip": "VIP",
|
||||
"externalParents": "This selection starts inside a larger catalog. Access restrictions on ancestors outside this snapshot cannot be evaluated.",
|
||||
"invalidHierarchy": "{count} pages have a cyclic hierarchy and cannot be navigated.",
|
||||
"snapshotLimit": "Preview limited to 200 pages and 500 offers.",
|
||||
"restricted": "{count} pages are hidden by the selected player access settings.",
|
||||
"categories": "Catalog categories",
|
||||
"noPages": "This snapshot contains no categories.",
|
||||
"inaccessible": "No categories are accessible with these settings. Adjust player access or turn it off to inspect the draft.",
|
||||
"noMatches": "No matches for this search.",
|
||||
"offerCount": "{count} offers",
|
||||
"layout": "Layout: {layout}",
|
||||
"missingLayout": "Not specified",
|
||||
"unsupportedLayout": "This layout has no dedicated preview. The grid shows the actual offers; custom layout widgets and imagery are not reproduced.",
|
||||
"loadingIcons": "Loading furniture icons…",
|
||||
"assetsUnavailable": "Furniture details are temporarily unavailable. Offer data remains visible.",
|
||||
"assetLimit": "Icons and furniture names are limited to the first 200 item IDs on this view.",
|
||||
"emptyPage": "This category has no direct offers. Browse its subcategories.",
|
||||
"missingIcon": "Icon unavailable",
|
||||
"amount": "Quantity: {count}",
|
||||
"bundle": "{count} furniture types",
|
||||
"changed": "Changed from the saved baseline",
|
||||
"previous": "Previous",
|
||||
"next": "Next",
|
||||
"page": "Page {page} of {total}",
|
||||
"offerId": "Offer #{id}",
|
||||
"unknownFurniture": "Furniture name unavailable",
|
||||
"selectOffer": "Select an offer to inspect its price and furniture references.",
|
||||
"credits": "Credits",
|
||||
"duckets": "Duckets",
|
||||
"diamonds": "Diamonds",
|
||||
"pointsType": "Points (type {type}):",
|
||||
"free": "Free",
|
||||
"specialPricing": "Special pricing: {credits} credits, {points} points (type {type})",
|
||||
"restrictedOffers": "{count} offers in this category require Club membership.",
|
||||
"clubOffer": "Club offer"
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
|
||||
Reference in new issue
Block a user