Skip to content
··8 min basahin

Nag-translate Ako ng 3.9 Milyong Salita sa 4 na Araw Gamit ang Parallel AI Agents

493 blog posts sa loob ng 17 taon, isinalin sa 10 wika, ~4,900 files, ~3.9 milyong salita. Ginawa itong posible ng parallel agents ni Claude Code — pero ang Korean disaster, ang Cantonese voice problem, at ang 5-oras na usage cap ang mas nagturo sa akin kaysa sa mga tagumpay.

Isang buwan ang nakaraan, nagdagdag ako ng 5 wika sa DIALØGUE sa loob ng 48 oras at isinulat ko kung paano ang mga planning document ang sikreto sa mabilis na AI execution.

Iyon ay 5 wika para sa isang app na may mga 400 UI strings.

Ngayong linggo, sinubukan ko ang mas malaking bagay: pag-localize ng buong blog ko — 493 posts na sumasaklaw sa 17 taon — sa 10 wika. Vietnamese, Indonesian, Spanish, French, Portuguese, German, Japanese, Korean, Simplified Chinese, at Cantonese.

~4,900 na isinalin na files. ~3.9 milyong salita. 4 na araw.

Hindi ito kwento tungkol sa pagiging mahika ng AI. Isa itong kwento tungkol sa kung ano ang talagang nangyayari kapag itinatapon mo ang libu-libong translation tasks sa parallel AI agents — ang orchestration na gumagana, ang mga kabiguan na hindi lumalabas hanggang sa basahin mo ang output, at ang hindi komportableng katotohanan tungkol sa quality control kapag sumulat ang mga makina nang malakihan.


Ang Scale Problem

Ang blog ko ay bumalik sa 2007. May mga post na 300-salitang updates tungkol sa search marketing sa Singapore. May iba na 5,000-salitang deep dives tungkol sa relasyon ng US at China o mga expat relocation guides.

Ang mano-manong pagsasalin ng 493 posts sa 9 wika ay aabutin ng propesyonal na translation team ng ilang linggo. Siguro buwan. At ang halaga ay nasa pagitan ng "hindi komportable" at "i-refinance ang bahay."

Pero naitayo ko na ang i18n infrastructure — next-intl routing, locale-aware components, ISR para sa non-English pages. Ang technical stack ay handa na. Ang kailangan ko lang ay ang content.


Araw 1: Vietnamese at ang Unang mga Aral

Nagsimula ako sa Vietnamese dahil personal ito — unang wika ko ito. Mababasa ko ang bawat isinalin na post at agad malalaman kung may mali.

Isinalin ni Claude Code ang lahat ng 493 posts sa isang session. Mukhang malinis ang proseso.

Ang unang QA pass ang nakahuli sa pattern na magpapahabol sa bawat wika: URLs at sign-offs. "Isasalin" ng agent ang internal blog URLs (gagawing Vietnamese slugs na hindi umiiral), papalitan ang "Chandler" ng Vietnamese name variant, at paminsan-minsan mawawala ang frontmatter slug field.

Gumawa ako ng QA checklist:

  • File count na tumutugma sa source (493)
  • Walang empty o stub files
  • Lahat ng frontmatter ay may slug, title, date, categories
  • Walang narewrite na internal URLs
  • Ang sign-off ay tumutugma sa convention ng target locale
  • Para sa CJK languages: talagang may native characters

Ang checklist na iyon ang naging backbone ng bawat sumunod na locale.


Araw 2: Ang Parallel Agent Breakthrough

Tapos na ang Vietnamese at napatunayan na ang QA checklist, kailangan kong bumilis. Ang killer feature ni Claude Code para sa ganitong uri ng trabaho ay parallel subagent dispatch — maaari kang mag-spin up ng maraming independent agents na nagtratrabaho sa magkakaibang files nang sabay-sabay.

Ganito ang hitsura ng orchestration para sa Spanish:

Dispatching 30 translation agents...
├── Agent 1: 2007-2008 posts (42 posts)
├── Agent 2: 2009 posts (38 posts)
├── Agent 3: 2010-2011 posts (35 posts)
├── ...
├── Agent 28: 2025 Nov-Dec posts (12 posts)
├── Agent 29: 2026 Jan posts (8 posts)
└── Agent 30: 2026 Feb posts (9 posts)

Bawat agent ay nakakuha ng batch ng posts, ang style guide, ang QA checklist, at ang sign-off convention. Tumakbo sila nang parallel, sumulat ng files nang independyente.

Spanish: 493 posts na isinalin sa isang session. Tapos French. Tapos Portuguese. Tapos German. Tapos Japanese.

Limang wika sa humigit-kumulang 12 oras. Iyan ang bahaging parang kinabukasan — pinapanood ang terminal mo na mapuno ng 30 sabay-sabay na progress indicators, bawat agent na nagtatrabaho sa isang dekada ng blog posts habang nagluluto ka ng hapunan.

Narito ang simulation ng kung ano ang hitsura ng aktwal na Cantonese (zh-HK) translation session — mula sa planning hanggang sa dispatch hanggang sa QA:

Claude Code

Ang Orchestration Pattern

Ang pattern na lumitaw:

  1. Pre-create lahat ng directories — tahimik na nagfe-fail ang agents kung hindi umiiral ang target directory
  2. Batch ayon sa year range — 10-15 posts bawat agent para sa normal posts, 2-3 bawat agent para sa 3,000+ word posts
  3. Isama ang style guide sa bawat dispatch — walang shared memory ang agents, kaya bawat isa ay kailangan ng buong context
  4. Mag-run ng QA pagkatapos matapos ang bawat locale — file count, empty files, broken frontmatter, URL rewrites, sign-off consistency
  5. Ayusin ang mga straggler gamit ang targeted cleanup agents — palaging may 5-15 posts na na-miss o na-malform

Ang Korean Disaster

Dapat ay routine lang ang Korean. Parehong pattern sa ibang 7 wika. Mag-dispatch ng agents, maghintay, QA, ayusin ang mga straggler.

Sa halip, ito ang pinaka-masamang translation quality sa lahat ng locale.

72% ng Korean posts ay hindi translations — mga summary ang mga ito. Tinapyasan ng mga agents ang 350+ posts sa 2-3 paragraph abstracts, nawala ang lahat ng detalye, lahat ng personalidad, lahat ng nuance.

Ang UI strings file (messages/ko.json) ay mas masama pa. Halo-halong Korean at English, na may corrupted characters tulad ng "Ch및ler" imbes na "Chandler."

Kailangan kong ulitin ang buong locale mula sa simula. Bawat post. Ang pangalawang pagsubok, na may mas mahigpit na instructions tungkol sa pagpreserve ng buong content at pagtutugma sa haba ng source post, ay lumabas nang malinis.

Aral: pinalaki ng parallel execution ang mga pagkakamali. Kung may subtle na kamalian ang prompt mo, 30 agents ang gagawa ng parehong pagkakamali nang 30 beses na mas mabilis.


Ang Chinese Problem: 43 Commits para Maaayos

Ang Simplified Chinese (zh) ang pinaka-labor-intensive na locale. Hindi dahil sa quality issues — maganda ang mga translation — pero dahil ang 493 posts sa 43 hiwalay na commits ay nagsasabi sa iyo na palaging tinatamaan ng session ang mga limit.

May usage cap ang Claude Code. Kahit sa Max tier na may Sonnet 4.6, ang mga extended session na nagdi-dispatch ng dose-dosenang parallel agents ay sa huli ay tatamaan ang 5-oras na cooling period.


Ang Cantonese Voice Problem

Noong nagdagdag ako ng Traditional Chinese na may Cantonese voice (zh-HK), ganap na ibang hamon ang hinarap ko. Kailangan ng mga translations ng Cantonese-specific particles — 嘅 (possessive), 咗 (past tense), 喺 (at/in), 啲 (some), 冇 (don't have) — at pagpapanatili ng casual, conversational tone na nagde-define sa Cantonese writing.

Ang hamon ay hindi translation accuracy — ito ay voice authenticity. Maaaring gumawa ang model ng grammatically correct Cantonese, pero nag-default ito sa Mandarin register maliban kung tahasang inutusan mong gumamit ng colloquial particles at code-mixing patterns.


Ang Sinubukan Ko sa OpenAI Codex

Sa paligid ng German translations, tinamaan ko ang usage cap ni Claude Code at nagpasya akong subukan ang OpenAI's Codex habang naghihintay.

Ang maganda: Magagandang planning documents ang ginagawa ng Codex. Mabilis ang response times.

Ang masama: Ang bersyon na ginamit ko (gpt-5.2-codex) ay hindi maka-run ng parallel subagents. Nag-process ito ng posts nang sunud-sunod — isa-isa. Para sa 493 posts, hindi viable iyan.

Ang tapat na paghahambing: Maganda ang Codex para sa focused, single-file na trabaho. Pero para sa uri ng mass parallel execution na kailangan ko — 4,437 files sa 9 locales — nasa ibang kategorya ang agent architecture ni Claude Code.


Ang Checklist na Nagligtas ng Lahat

Bawat locale ay dumaan sa parehong QA pipeline:

✓ File count: 493/493
✓ Empty files: 0
✓ Small files (<100 bytes): 0
✓ Missing slugs: 0
✓ Rewritten URLs: 0
✓ Broken frontmatter: 0
✓ Wrong sign-off: 0
✓ Native characters present: 493/493

Para sa CJK languages, nagdagdag ako ng:

✓ Cantonese particles (嘅/咗/喺/啲/冇): 493/493
✓ No mixed-script contamination: PASS
✓ Chinese punctuation: PASS

Kung wala ang checklist na ito, na-ship ko na sana ang Korean summaries sa production. Na-ship ko na sana ang 70% English Cantonese UI.

Ang checklist ay hindi bureaucracy. Ito ang tanging reliable na QA kapag ang production pipeline mo ay gumagawa ng libu-libong files na hindi mo personal na mababasa.


Ang Mga Huling Numero

Mga Wika11 (English + 10 translations)
Mga post na isinalin493 bawat wika x 10 = ~4,900 files
Mga Salita~3.9 milyon
Calendar days4 (Feb 24-27)
UI string files10 locale JSON files (~475 keys bawat isa)
Email templates10 locales
Journey dataMilestones + learning paths na isinalin sa pamamagitan ng JSONB
Beses tinamaan ang usage capNawala na sa bilang
Kumpletong locale redos1 (Korean)

Ano ang Talagang Natutunan Ko

1. Ang style guides ang lahat. Ang Cantonese voice, ang Korean formality level, ang Portuguese "Abraço" sign-off — hindi ito dekorasyon. Sila ang pagkakaiba ng "isinalin" at "ni-localize."

2. Ang parallel agents ay force multiplier — at risk multiplier. Kapag 30 agents ang nag-execute nang tama, isang oras lang ang isang wika. Kapag 30 agents ang nag-execute ng parehong pagkakamali, 350 truncated posts at buong redo ang resulta.

3. Hindi opsyonal ang QA sa scale. Hindi mo maaaring mano-manong i-review ang 4,437 isinalin na posts. Pero maaari mong i-automate ang structural checks na nakakahuli sa pinakakaraniwang mga kabiguan.

4. Ang pinakamahirap na bahagi ay hindi translation — ito ay voice. Anumang LLM ay makakapagsalin ng text. Ang pagpapanig na parang ang taong sumulat ng orihinal — pagpapanatili ng init, ng kaswalidad, ng intellectual curiosity — sa 9 wika at 17 taon ng nag-e-evolve na writing style, nangangailangan iyan ng tahasang instruction at iterative refinement.

5. Ang usage caps ay tunay na constraint. Kahit sa pinakamataas na tier, ang mga extended parallel agent sessions ay tatamaan ang mga limit. Mag-plano para sa mga interruption.

6. Subukan sa mga tunay na mambabasa. Kaya ko i-QA ang mga Vietnamese translations ko mismo. Para sa Korean o Japanese, umasa ako sa structural checks at nagtiwala sa model. Iyan ay kilalang gap.


Sulit Ba Ito?

Naabot na ngayon ng blog ko ang mga mambabasa sa kanilang sariling wika sa 11 locales. Ang isang Vietnamese marketing professional sa Ho Chi Minh City ay makababasa ng 2011 ko na analysis ng Singapore search market sa Vietnamese. Ang isang Japanese AI researcher ay makababasa ng 2024 ko na mga post tungkol sa pagbuo ni Sydney sa Japanese.

Perpekto ba ang bawat translation? Hindi. Ang machine translation sa ganitong scale ay may mga rough edges.

Pero ang alternatibo ay magkaroon ng 493 posts sa English lang, accessible sa siguro 20% ng mga internet user sa mundo. Ngayon accessible na ito sa higit sa 60%.

Apat na araw. 3.9 milyong salita. Naka-setup na ang infrastructure. Bawat bagong post na isusulat ko sa English ay maisasalin sa 10 wika bilang bahagi ng deployment process.

Ang tunay na tanong ay hindi kung perpekto ba ang AI translation. Kung ang perpekto ba ay kaaway ng accessible.

Maraming salamat,

Chandler

Ipagpatuloy ang Pagbasa

Ang Journey Ko
Kumonekta
Wika
Mga Preference