Content

Bilingual Content Pipeline: EN Pillar → Native zh Post in 4 Steps

Bilingual Content Pipeline: EN Pillar → Native zh Post in 4 Steps
Contents

Last December I shipped a 1,400-word English post on Klaviyo segmentation. The Chinese version came out 1,800 characters, and six of the eight US-platform examples were swapped: Klaviyo stayed (it has a CN reseller), but the side-comparisons moved to a 微店 / Shopify Plus China equivalent, the email deliverability section swapped Sendgrid for 阿里云邮件推送, and the SMS workflow landed on WeCom instead of Twilio. Nobody reading the zh version in Shenzhen would have clocked it as a translation.

That post is also the reason I'm writing this one in EN first and zh second. The technique this article describes is the same one I used to produce the zh version you're about to read. If the article itself reads as a literal translation, the argument collapses.

This is the 4-step pipeline. Step 1 and Step 3 are Claude. Step 2 and Step 4 are human. That ratio is the whole game.

Why machine translation alone is still flat in 2026

DeepL, GPT-4o, and Claude 4.5 all produce grammatical zh. None of them produce native-feeling zh, because the failure mode isn't grammar — it's references. "When you set up a Slack workflow to ping the #growth-channels room" reads in zh as 当你设置一个 Slack 工作流来 ping #growth-channels 频道. Grammatically fine. Culturally, the reader has to mentally translate Slack back to 飞书/企微, ping back to 提醒, channels back to 群组, and by then they've bounced. The sentence is correct and unreadable.

Claude and GPT-4 will not fix that on their own. I tried for six months before admitting it. They will only fix it if the surrounding context — examples, idioms, platforms, units, currency — is already pre-localized. That's what Step 2 is for.

Step 1: Claude extracts the argument skeleton (in English)

Paste the full English post into Claude with this prompt:

You are a structural editor. Extract the argument skeleton of this post in English. Output as a numbered list, one claim per line, with the evidence type for each claim in brackets: [DATA], [EXAMPLE], [TOOL], [ANALOGY], [QUOTE]. Do not summarize the post — preserve every claim, every piece of evidence, and the order they appear. Keep evidence references specific (e.g., "the Klaviyo 2024 benchmark report" not "a report"). End with a one-paragraph note on the post's structural shape: is it a numbered tutorial, a thesis-driven argument, a case study, or a comparison?

What you get back is something like:

  1. Most segmentation lists are built once and never updated. [CLAIM]
  2. Klaviyo's 2024 benchmark shows 68% of campaigns go to unsegmented lists. [DATA — Klaviyo 2024 benchmark]
  3. The fix is behavior-based segments, not demographic ones. [CLAIM]
  4. Example: a DTC brand used purchase-frequency to lift RPR 23% in Q3. [EXAMPLE — anonymized DTC brand] ...

This skeleton is in English on purpose. Two reasons. First, you catch every claim before any translation loss — if the original missed something, you can patch the EN source first. Second, the skeleton is the contract between you and the zh drafter (Step 3). It locks the argument before any zh prose gets written, which is how you avoid the most common bilingual failure: a zh post that makes a slightly different argument because the translator improvised.

Step 2: Human re-localizes the examples

This is the step that does not get automated. Open the skeleton and walk it top to bottom. For every [EXAMPLE] and [TOOL] tag, write the local equivalent — or write a one-line note saying "no local equivalent, keep the US reference and add a translator's note."

The swaps table I've built up over 90+ posts:

US / EN CN equivalent Keep EN?
Slack 飞书 / 企微 Only if the post is about Slack itself
Twilio SMS 阿里云短信 / 容联 No — almost always swap
Sendgrid 阿里云邮件推送 / 腾讯企业邮件 No
Stripe 微信支付 / 支付宝 / Ping++ No
Klaviyo Klaviyo (via CN reseller) or 有赞 CRM Depends
Shopify Shopify Plus 中国 / 微店 / 有赞 No
HubSpot 销售易 / 纷享销客 No
Google Analytics 百度统计 / GrowingIO No
Reddit / r/Marketing 小红书 / 知乎 / 公众号评论区 No
Twitter / X 微博 / 朋友圈 / 即刻 No
Substack 微信公众号 / 知识星球 / 小报童 No
Notion 飞书文档 / 语雀 No
US dollars CNY (with a parenthetical USD on first use) No
"Q3" / "FY24" Q3 / 2024 财年 (use calendar quarters unless the source really is fiscal) No
"Ping me on Slack" 微信我 / 在群里 @ 我 No
"book a 15-min call" 约个时间线上聊 / 加微信细说 No
"DM" (verb) 私信 / 私聊 No
"shoutout" 转发 / 互推 No
"side project" 副业 / 折腾的小项目 No
"10x engineer" 10 倍效率工程师 (or just drop the meme) No
"growth hack" 增长套路 / 野路子 (with awareness that this phrase is a meme in CN too) No

Two rules. One: when in doubt, swap. A Chinese reader can Google a US tool name in two seconds. A US reader cannot Google a CN tool, and that asymmetry is your job to fix. Two: dates and money are the silent killers. "$50K MRR by month 6" reads in zh as 月流水 50 万人民币, with a parenthetical ($50K USD) on first appearance. Never leave the dollar figure naked in a zh post.

Time budget for Step 2 on a 1,400-word post: about 25 minutes. It is the most expensive step. It is also the only step the LLMs cannot do for you.

Step 3: Claude drafts zh prose with native-voice guidance

Now — and only now — you write the zh. Give Claude the localized skeleton from Step 2 plus this prompt:

You are writing a Chinese blog post for a practitioner audience in 营销 / 增长 / AI 应用领域. Draft the full post in Simplified Chinese (zh-CN), conversational, first-person, like a senior marketer talking to a peer over 微信. Hard rules:

  • Native voice, NOT textbook. Use 我, 我们, 你 naturally. Avoid formal structures like 综上所述 / 总而言之 / 值得注意.
  • Sentence length: vary between 8 and 35 characters. No 50-character sentences.
  • Use the examples I provided in the skeleton — do not invent US examples to fill space.
  • Keep all numbers, tool names, and code blocks as-is. Do not localize 阿里云邮件推送 into something else.
  • English acronyms OK on first use: "Klaviyo(邮件营销平台)", "CAC(Customer Acquisition Cost,获客成本)", "CRM(Customer Relationship Management,客户关系管理)". One bilingual gloss, then the term alone.
  • Section headings: short, 2-6 characters, native. Not translated headings.
  • Tone: confident, dry humor allowed, no 鸡汤 / no "AI 将改变一切" boilerplate.

Output the full zh post in markdown.

The "Hard rules" block is what fixes Claude's default failure. Without it, Claude defaults to formal/textbook Chinese — the kind you find in CN whitepapers and on official 公众号 posts from state-owned enterprises. That is not how a 15-year marketer talks to a peer over 微信. The rule set forces the model to drop the textbook voice and write the way a CN practitioner actually writes on 知乎 or 即刻.

Iteration on this step is normal. I usually run the prompt twice, then take the better opening paragraph from draft A and splice it into draft B. The first draft almost always has one or two sections that slipped back into formal voice — those get a follow-up instruction like "rewrite this section like you're explaining to a 微信 friend who runs a DTC brand, not like a 报告."

Step 4: Bilingual side-by-side proofread

Open the EN source, the localized skeleton, and the zh draft in three columns. Read every sentence of the zh against the EN. Two checks:

Argument fidelity. Every claim from the EN skeleton appears in the zh, in the same order. If the zh skipped a claim (often the analogical ones — Claude loves to drop analogies), pull it back. If the zh added a claim the EN didn't have, cut it. You are not improving the argument in this step. You are making sure the zh says the same thing the EN said.

Idiom hygiene. Three things to scrub:

  • "I" statements that became passive voice (e.g., 我认为...应该 / 经过分析得出 结论) — rewrite to 我 / 我们 did the thing.
  • Marketing-jargon transliterations that nobody in CN actually uses. 例: "转化漏斗" is fine, but "增长黑客" without the awareness of the meme reads as corporate. Either own the meme or drop the term.
  • English filler words smuggled in mid-sentence: 即 "actually", "essentially", "basically". Cut. CN prose doesn't need them.

A 1,800-character zh post takes about 15 minutes to proofread. The bilingual side-by-side is what catches the things monolingual proofreading misses — a sentence that reads fine in isolation but turned out to have dropped a piece of evidence the EN version had.

What this looks like in practice

A literal-translation failure, before/after:

Before (literal): 想象一个 DTC 品牌使用 Klaviyo 设置购买频率分割,并通过 Slack 提醒 #growth-channels 频道的团队,复盘月环比增长 23% 的 RPR。

After (transcreated): 假设你做的是一个 DTC 美妆品牌,有赞 CRM 里设了「30 天复购」和「90 天沉睡」两个分群。复盘节点一到,企微机器人自动往「增长复盘」群里推一条消息:本周 RPR 环比涨了 23%。

Both mean the same thing. The second one is the version a CN reader stops scrolling for. The first one is the version they bounce from in three seconds.

The pipeline at a glance

  • Step 1 — Claude extracts skeleton (EN): locks the argument.
  • Step 2 — Human localizes examples: 25 minutes, the only step that doesn't get automated.
  • Step 3 — Claude drafts zh with native-voice rules: run twice, splice the best opener.
  • Step 4 — Human bilingual proofread: argument fidelity + idiom hygiene.

Total time on a 1,400-word post: about 90 minutes end-to-end. About 30 of those are human. The other 60 are Claude cycles you can walk away from.

The win isn't the speed. The win is that the zh post reads like it was written in zh, by a CN marketer who happens to also speak EN — which is exactly the voice your CN readers trust.