Writing for two languages at once
PromptCraft ships in Traditional Chinese and English. Here's what I've learned about designing software where the copy was never going to be the same in both.
PromptCraft is bilingual. The default surface is Traditional Chinese (the studio operates from Taipei, the founder's first language); a parallel English surface lives at /en. Both languages are first-class — neither is a translation of the other in any literal sense. What the user sees in Chinese and what the user sees in English have a deliberate family resemblance, but a lot of decisions had to be made for each separately, and a lot of those decisions surprised me.
I want to write down what I learned, partly because the bilingual design literature is thin, and partly because some of the lessons generalized in ways I didn't expect.
Translation is the easy part. Reframing is the hard part. When I started, I assumed I'd write the Chinese copy, machine-translate it, edit the output, and ship. This is wrong in a way that's hard to see until you've done it. The reason it's wrong isn't that the translation produces incorrect Chinese-flavored English; modern translation is good enough that it doesn't. The reason it's wrong is that the audience expectations in the two languages are different, and the structural logic of the copy needs to be different.
Concrete example: PromptCraft has a section that explains what a "context note" is for each prompt. In Chinese, the explanation can be terse — Chinese prose conventions tolerate condensed declarative statements that English readers would find abrupt. The English version of the same explanation needs about 30% more words and an explicit logical connector ("because", "for example", "in other words") to sound natural. Word-for-word translated, the Chinese version reads as a fragment in English; the English version reads as oddly verbose in Chinese.
Bilingual sites tempt you into the false economy of single-source content. The temptation is to write all content in one language, machine-translate, ship. This produces a site where one language reads beautifully and the other reads like a translation. Users notice. Trust erodes. The "lesser" language gets neglected, drifts further from the primary version, and eventually becomes a maintenance liability.
The discipline I've adopted instead is: every page in the site has two parallel canonical versions. Edits in one don't auto-propagate to the other. When I update copy, I update both, by hand, in the natural rhythm of each language. It's slower. It's also the only way I've found to keep both surfaces feeling like first-class citizens.
The two languages will have different tone defaults. I aim for "professional but warm" in both, but the way that lands is different. Traditional Chinese, in the Taiwanese register I write in, leans warmer than the English version because the language has more built-in social cues that signal warmth (particles, register markers, relational pronouns). The English version has to be a little more deliberately friendly to land in the same register. This means the English copy occasionally has phrases like "the studio thinks..." or "we'd love to hear..." that, translated literally back to Chinese, would sound twee. But in English, they're just normal.
SEO works completely differently in each language. Chinese-language search engine results are more dependent on sites linking to each other (a denser link graph) because the Chinese-speaking web is, on the whole, more cross-referenced internally. English-language SEO leans more on canonical authority signals (Wikipedia, major publications, etc). What this means in practice is that the Chinese version of PromptCraft benefits from being part of a network of Chinese AI/creative communities, while the English version benefits from one or two strong external citations. Same site, different growth strategies.
Bilingual design is a forcing function for clarity. This was my favorite finding. When I have to write a feature description twice, in two languages, the act of doing the second one always reveals weaknesses in the first one. If a sentence in one language doesn't survive the test of "is the same idea expressible naturally in the other," the sentence is usually unclear in the original. I now use bilingual writing as a kind of intermediate proof-reader: if I can't say it cleanly in both languages, I haven't yet figured out what I'm trying to say.
The hardest things to translate are the names of things. Specifically: jargon and product features. "Prompt" in English has no clean Chinese counterpart that's both technically accurate and emotionally neutral. The community has settled on 提示詞 ("hint word") which is acceptable but not perfect. Every category of AI tool has the same problem. Ten years from now this vocabulary will be settled; right now it's still being invented, and translators are part of the inventing.
The deeper observation behind all this is that running a bilingual product isn't 2x the work of running a single-language product. It's something like 1.6x, because the first language already forces you to make most of the structural decisions, and the second language is mostly localization plus the discipline to reframe rather than translate. That 1.6x cost has been worth it for PromptCraft, partly because I'm based in Taiwan and the Chinese-language audience is real and underserved by AI tools, and partly because the bilingual discipline made the English version better than it would have been if I'd written it alone. Two languages, used with care, is a feature, not a tax.
- Apr 02, 2026Notes from building seven prompt generatorsWhat I learned shipping a Midjourney generator, then a Flux generator, then five more — and why each one was harder than the last.
- Apr 10, 2026The notes-doc that became a websiteOn the strange afternoon I realized my private prompt collection was more useful than half the AI tools I'd been paying for.
- Apr 15, 2026Notes on launching to cricketsMost products launch to no audience. Here's what I learned shipping PromptCraft to silence, and why I think that silence was actually the right thing to optimize for.