Back to Skills

blog-translate

Translate existing blog posts into one or more target languages with SEO-optimized localization. Produces native-quality translations that preserve markdown structure, frontmatter, schema JSON-LD, image and chart embeds, and evidence-backed explanations. Localizes keywords, meta tags, numbers, dates, currencies, and quote styles per locale. Flags machine-translation artifacts for review. Run BEFORE blog-localize: this handles language conversion; localize handles cultural adaptation after transl

1,624stars282forksUpdated 8/13/2026

Security Assessment

Safe(95/100)
Security Score95/100

About blog-translate

Blog Translate converts existing blog posts into one or more target languages with SEO-optimized localization rather than generic machine translation. It solves the problem that naive translation breaks page structure and loses search performance: it preserves markdown, MDX, and HTML structure, frontmatter, schema JSON-LD, and image and chart embeds, while producing native-quality, publication-ready copy. It localizes keywords, meta tags, numbers, dates, currencies, and quote styles per locale, and flags machine-translation artifacts for review. It is meant to run before the companion blog-localize skill: translate handles language conversion, localize handles deeper cultural adaptation.

The workflow parses input safely (resolving paths against the project root, rejecting symlinks, traversal outside the root, files over 10 MB, and binary files), auto-detects source language, and normalizes target codes to ISO-standard hreflang tags with validation and suggestions. It then extracts the translatable surface (headings, body, alt text, figcaptions, SVG text, FAQ, CTAs) while preserving URLs, code fences, internal-link markers, and names of people, brands, and organizations. Keyword localization decides per language whether to keep an established loanword or swap to a locally-searched equivalent. Reference files provide per-locale number/date/currency/quote rules, SVG length-delta guidance, a quality checklist, and cultural adaptation profiles for DACH, Francophone, Hispanic, Japanese and other markets.

It is aimed at content and SEO teams publishing multilingual blogs who need structurally faithful, search-optimized translations. Typical uses include translating a post to German, French, Spanish, or Japanese while keeping schema and chart markup intact.

FAQ

How is this different from generic translation?

It produces SEO-optimized, publication-ready content: it localizes keywords, title tags, and meta descriptions per market rather than transliterating, and preserves markdown, HTML, frontmatter, schema JSON-LD, and chart/image embeds.

What should I run before or after it?

Run blog-translate first for language conversion, then blog-localize for cultural adaptation. The cultural-adaptation reference file is shared between the two skills.

How do I specify target languages?

Pass comma-separated hreflang codes via --to (for example de, fr, es-MX, ja, pt-BR). Codes are normalized to ISO standards; invalid codes are rejected with a suggestion, and ambiguous language-only targets require a region or explicit neutral mode.

What does it deliberately leave untranslated?

URLs, frontmatter keys, executable code and inline code, internal-link markers, SVG layout attributes, and the canonical names of people, brands, and organizations, including Person/Organization fields inside JSON-LD.

Are there input safety limits?

Yes. It resolves the source path against the project root, rejects symlinked paths, traversal outside the root, files over 10 MB, and binary files before reading.

All Files

3 files
references/translation-rules.md6.0 KB
View
references/cultural-adaptation.md8.4 KB
View
SKILL.md8.3 KB
View

Install blog-translate

Download and extract the skill files to your .claude/skills/ directory.

Quick Setup:

  1. Copy the skill folder to .claude/skills/
  2. Claude will automatically detect and use the skill