Stage M5 and Stage M6

This commit is contained in:
Nông Đức Huy
2026-08-13 23:20:23 +07:00
parent 7688657d3c
commit 624a6402bf
77 changed files with 4879 additions and 176 deletions
+63 -11
View File
@@ -82,13 +82,18 @@
"comingSoon": "Add to bag arrives with the cart milestone.",
"previousImage": "Previous image",
"nextImage": "Next image",
"goToImage": "Go to image {index}"
"goToImage": "Go to image {index}",
"addedToBag": "Added to bag"
},
"search": {
"title": "Search",
"placeholder": "Search products, brands, sports",
"placeholder": "Search products…",
"resultsFor": "Results for “{query}”",
"noQuery": "Type something to start searching."
"noQuery": "Type something to start searching.",
"open": "Search",
"dialogHint": "Type to see matching products.",
"noSuggestions": "No matching products.",
"enterToSearch": "Press Enter to see all results"
},
"breadcrumbs": {
"home": "Home"
@@ -126,18 +131,10 @@
"planned": "Planned: {milestone}"
},
"placeholder": {
"cart": {
"title": "Your bag",
"body": "Line items with variant title and live availability. Totals are always recomputed by the API — the client never submits a price."
},
"blog": {
"title": "Journal",
"body": "Editorial content served from the CMS module: training guides, drops and athlete stories."
},
"checkout": {
"title": "Checkout",
"body": "Contact, shipping address, delivery method, payment. Each step is server-validated and stock is reserved before a payment intent is created."
},
"account": {
"title": "Account",
"body": "Overview: recent orders, saved addresses and profile at a glance."
@@ -158,5 +155,60 @@
"title": "Wishlist",
"body": "Saved variants, and the signal source for back-in-stock notifications."
}
},
"cart": {
"title": "Bag",
"empty": "Your bag is empty.",
"emptyHint": "Once you add something it will show up here.",
"startShopping": "Start shopping",
"summary": "Summary",
"subtotal": "Subtotal",
"shipping": "Shipping",
"shippingAtCheckout": "Calculated later",
"total": "Total",
"checkout": "Checkout",
"remove": "Remove",
"quantityFor": "Quantity for {name}",
"notice": {
"reduced": "{name} was reduced to {quantity} — that is all we have left.",
"soldOut": "{name} sold out and was removed from your bag.",
"unavailable": "An item is no longer available and was removed from your bag."
}
},
"checkout": {
"title": "Checkout",
"contact": "Contact",
"delivery": "Delivery",
"email": "Email",
"fullName": "Full name",
"phone": "Phone",
"phoneHint": "So the courier can reach you",
"address": "Street address",
"ward": "Ward",
"district": "District",
"province": "Province or city",
"note": "Delivery note",
"summary": "Your order",
"subtotal": "Subtotal",
"shipping": "Shipping",
"shippingLater": "Calculated later",
"total": "Total",
"placeOrder": "Place order",
"paymentLater": "Payment options arrive with the payments milestone.",
"failed": "We could not place your order.",
"loading": "Loading your bag…",
"emptyBag": "There is nothing in your bag.",
"backToShop": "Back to shopping"
},
"confirmation": {
"title": "Order placed",
"body": "We have your order. A confirmation goes to {email} once email lands.",
"items": "Items",
"subtotal": "Subtotal",
"total": "Total",
"deliveringTo": "Delivering to",
"keepShopping": "Keep shopping",
"notFound": "We could not find that order.",
"backHome": "Back to home"
}
}