Fictional UI strings for illustration only.
When reviewing English → Simplified Chinese ecommerce/app locales:
- Keys: left side and right side key sets must match.
-
Placeholders:
{{ code }},{{ date }},{{ count }}— same tokens, same count. A draft that turns{{ code }}into{{ coupon }}is a hard fail. -
HTML: preserve
hreftargets.Sign inlinking to/account/loginmust not become/account/register. - Ships vs delivery: source Ships in 3–5 business days → 发货 + 工作日; do not “helpfully” rewrite as 送达.
- Negations: was not changed, non-refundable, does not show, cannot be shipped, agree — watch for flips.
- Return vs refund: Request a return within 14 days of delivery is not “完成退款 after 发货”.
- Final sale: translate the return ineligibility as 此商品售出后不可退货. Do not infer 特卖 or a markdown/sale narrative from the English “final sale”.
- Back in stock notifications: 到货提醒 / 补货通知 — not logistics “delivery arrived”.
Tooling can verify keys/placeholders/HTML. It cannot replace reading for money and legal-adjacent meaning. Correct only to the given source; don’t author new refund law.
Top comments (2)
Good checklist — the
ship ≠ deliverline is the one that costs the most refunds.Three more that bite on zh-CN and that tooling can't check:
Discounts invert.
20% offis8折in Chinese, not20折. A machine that keeps the digits produces a sentence that means nothing. I've seen74 折on a live pricing page — the decimal point went missing and the offer became unreadable. Any string with a percentage needs a human to convert it, not translate it.cancelis three verbs. Cancel a subscription is退订; cancel an order is取消订单; cancel an appointment is取消预约. One English key, three Chinese verbs — pick the wrong one and a harmless button reads like a threat.No plurals, but measure words.
{{ count }} itemsbecomes{{ count }} 件商品: the token survives, the noun needs a classifier. 5 orders is5 笔订单, 5 users is5 位用户. If one noun key is reused across contexts, the classifier will be wrong somewhere.One cheap QA step on top: grep the zh-CN file for
於,這,們. Traditional characters slip in from machine output, they pass key and placeholder checks, and they are the first thing a native reader notices.(I do EN→ZH for a living, so this is the part I argue with people about. If you ever want the mechanical half of it checked on a live page, that's free here: promptgeam.com/checkup/)
Thanks Alex — the 20% off → 8折 and cancel-triad notes are solid additions, and the traditional-character grep tip is useful. Happy to keep trading checklist gaps; I saw your free checkup link. This post stays checklist-focused (paid copy-review capacity is still being validated separately).