Use this when
translate blog, translate post, blog translate.
Process
Detect the source language from frontmatter lang, then HTML lang, then content analysis. Normalize every language code to a Google-compatible hreflang tag: lowercase ISO 639-1 language, optional title-case ISO 15924 script, optional uppercase ISO 3166-1 region (e.g. de, fr, es-MX, pt-BR, zh-Hant). Require a region or explicit neutral mode for ambiguous language-only targets like es, pt, or zh. If a target equals the source language, skip it with a notice.
Extract the translatable surface: frontmatter title/description/tags, all headings, body paragraphs, image alt text and captions, chart text labels, FAQ pairs, evidence-backed explanations, the Key Takeaways box, CTA text, and internal-link zone anchor text. Preserve unchanged: markdown/HTML structure, image and link URLs, frontmatter keys, code fences, SVG attributes, and schema structural keys (@id, URLs, organization/person names never get translated).
For the primary and each secondary keyword, decide per target market whether the source term is already the established term (keep it, e.g. "Content Marketing" stays in German) or whether a local equivalent has real search behavior (swap to it), then update title, meta description, and 2-3 headings consistently with that decision.
Translate naturally, never word-for-word: match the source's tone and register, adapt idioms to real local equivalents instead of translating literally, apply locale-correct number/date/currency/quote formats, and adjust SVG chart text length per locale (roughly +25-30% for German, +10-15% for French, -20% for Japanese, -25% for Chinese) by widening the viewBox rather than truncating.
Set translated frontmatter independently rather than mechanically carrying over the source (title, description, slug, lang, translatedFrom, translatedDate), and if the source has schema JSON-LD, set inLanguage and add translationOfWork pointing back to the source URL.
Before calling it done, scan for translation-quality failures and fix any found: literal idioms, unnatural word order forced from the source language, mixed-language sentences (other than established loanwords), and numbers/dates/currencies still in source format.
Attribution
claude-blog credits this skill's methodology to Chris Mueller's claude-blog-multilingual submission (https://github.com/Chriss54/multilingual-int, license unverifiable — the repository is not currently publicly accessible). What's reused here is claude-blog's own MIT-licensed distributed text, the same basis as every other playbook in this team.