Back to Explore
GuideVibeFix 编辑部Updated Oct 6, 2026

Your Vibe Project Deserves i18n: A Practical Path From Hardcoded Strings to Multilingual Launch

A project introduced in English reaches several times the audience of a Chinese-only one — and AI has driven the cost of the extract → translate → review pipeline down to nearly zero. This guide gives vibe projects a practical i18n playbook: when it's worth doing, how to have AI sweep hardcoded strings into keys, the translation-and-review workflow, four traps you'll definitely hit, and a pre-launch acceptance checklist.

A localization dashboard showing translation progress for English, Spanish, French, and Arabic

When i18n is worth it, and when to skip it

The verdict first: if you want to launch on Product Hunt, capture English-language traffic, or get forked around the world — do it. A project introduced in English has several times the reach of a Chinese-only one. A purely Chinese utility, a personal productivity script, an MVP still validating — skip it for now, and revisit when someone asks "is there an English version?"

There's exactly one decision criterion: is the English-speaking world in your user acquisition channels? If the answer is "planning to be," then the earlier you do i18n the cheaper it is — extracting strings at 5,000 lines of code is an afternoon's work; at 50,000 lines it's a campaign.

Step one is always: have the AI extract hardcoded strings into keys

The first step of i18n isn't translation — it's pulling every hardcoded Chinese string scattered through the codebase out into keys. The AI does this fast and well. Give it an explicit prompt: "Scan the whole project and replace all user-visible hardcoded Chinese strings with i18n keys. Don't touch logic, don't touch Chinese in comments."

Key naming convention: module.location.meaning, e.g. checkout.coupon.title, settings.profile.saveButton. Never text1 or msg_abc — the key is documentation; three months from now the key alone should tell you where it appears.

One iron rule: one key maps to exactly one meaning. The word for "confirm" in a dialog and in a form may look identical in Chinese, but don't reuse one key — in English they might be "OK" and "Confirm," and a shared key makes them inseparable.

Choosing a library, in one sentence: follow your framework

Next.js → next-intl, React/Vite → react-i18next, Vue → vue-i18n. Don't agonize over comparisons; following the framework's ecosystem is the optimal choice. Put language files at locales/zh.json and locales/en.json, with structure mirroring the dot-separated key names.

URL strategy, also in one sentence: distinguish languages by path (/zh/pricing, /en/pricing) — best for SEO and most intuitive for users.

AI drafts the translation, humans review: never skip step two

The workflow has three steps: AI drafts → you (or a native speaker) review product copy → ship, then keep fixing from feedback. AI is already good enough at UI copy, but two categories must never go live straight from machine translation: legal terms and payment-related copy. "Subscribe" and "purchase" carry completely different legal meanings in English — get that wrong and it genuinely hurts.

When reviewing, focus on three spots: button labels (English usually runs longer than Chinese — does it break the layout?), empty states and error messages (where AI is sloppiest), and marketing copy (directly translated Chinese marketing reads like a scam text in English).

A money-saving trick: have the AI translate first, then have another AI (or the same one with a different prompt) role-play a native English user and tear the translated UI copy apart. Machine cross-review catches 80% of awkward phrasing; the remaining 20% needs a human.

Four traps, each with real blood on it

Trap one: plural rules. Chinese has no singular/plural; English does. Don't lazily write {n} message(s) — use your i18n library's pluralization. Arabic has six plural forms; hardcode one s and you'll hear about it.

Trap two: date, currency, and number formats. Is 2026/10/06 October 6 or June 10 to an American? Use Intl.DateTimeFormat and Intl.NumberFormat — never concatenate these strings yourself.

Trap three: string concatenation."你有" + n + "条消息" works in Chinese; in English the word order is "You have n messages" — concatenation shatters into three pieces in the target language. Use full sentences with interpolation: t('inbox.count', {n}).

Trap four: text baked into images. Chinese text in logos, screenshots, and tutorial graphics stays put when you switch languages. Audit every static asset: make localized versions where needed, swap to pure icons where you can.

Acceptance checklist: switch languages and click through the core flow

Pre-launch acceptance is simple: switch to English and click through the entire core flow — signup, core features, payment, settings. The checklist has four items: any untranslated Chinese left, any long copy breaking the layout, any sentences broken by concatenation, any 404s (missing keys).

A final judgment call: i18n is one of the highest-ROI growth moves a vibe project can make — AI has driven the extract → translate → review pipeline cost to nearly zero, while the reach of an English introduction is very real. An afternoon of investment buys you users from everywhere. Worth it.

Browse projectsPublish your project

Related articles

PromptGit concept art visualizing prompt version control
Guide
Treat Prompts Like Code: Prompt Version Control for Vibe Projects

Prompts in vibe projects live in code strings, admin text boxes, and docs — changed live, version unknown when things break. This guide shows how to treat prompts like code: a prompts/ layout, YAML frontmatter, semantic versioning, PR reviews, canary rollouts with one-click rollback, plus an evals baseline — and a real war story: one added sentence cost 12 points of classification accuracy.

AI CodingDeveloper WorkflowTool Tips
Pull request workflow illustration: a developer submits code while code windows pass check marks toward merge
Guide
After the AI Writes the Code: A Practical Code Review Workflow for Vibe Projects

The faster AI writes code, the more review matters. Four layers: diffs for logic (boundaries, errors, concurrency — plus auth, payments, SQL, encryption, secrets), runtime for behavior (type checks, lint, security scans go green first), AI for first-pass screening (a second model reviews, humans read only flagged parts), humans for the final call (AI never clicks merge). Includes commit norms, PR template, branch protection, rollback plans.

AI CodingDeveloper WorkflowTesting & Quality
A terminal window showing a command-line interface on a dark background
News
HashiCorp Founder Writes a New Terminal Protocol: Stop Guessing What Your Agents Are Doing

Mitchell Hashimoto published OSC 7501, the "Program Status Protocol": any program can report via a terminal escape sequence whether it is idle, working, blocked, or done — and why. The motivation: people running N coding agents today can only "read the screen and guess." He wants to turn guessing into knowing. Ghostty already implements it, with a dozen-line PoC for Claude Code and Codex.

Developer WorkflowTool TipsOpen-source Projects