| name | blog-translate |
| description | 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 translation completes. Use when user says "translate blog", "blog translate", "uebersetzen", "traduire", "traducir", "translate post", "blog auf Deutsch", "blog en espanol".
|
| user-invokable | true |
| argument-hint | <file> --to <comma-separated-codes> |
| license | MIT |
| compatibility | Standalone within claude-blog. Invoked by blog-multilingual. |
| metadata | {"author":"AgriciDaniel","version":"2.2.0","category":"blog"} |
Blog Translate, SEO-Optimized Blog Translation
Translates an existing blog post into one or more target languages. Unlike
generic translation, this skill produces SEO-optimized, publication-ready
content with localized keywords, meta tags, and culturally correct
formatting.
Adapted from claude-blog-multilingual by Chris Mueller (Pro Hub Challenge,
March 2026). Original: https://github.com/Chriss54/multilingual-int
Key References
Load on demand:
references/translation-rules.md, format preservation, number/date/currency
formats per locale, quote handling, quality criteria.
references/cultural-adaptation.md, cultural profiles per locale (DACH,
Francophone, Hispanic, Japanese, custom). This file is shared with
blog-localize (do not duplicate).
Workflow
Phase 1: Input Parsing
- Read the source file (markdown, MDX, or HTML) only after resolving it
against the project root/current working directory. Reject symlinked paths,
traversal outside the root, files over 10 MB, and binary files.
- Auto-detect source language. Order of preference:
- Frontmatter
lang field.
- HTML
lang attribute.
- Content analysis (script, common stop words).
- Parse target languages from
--to as comma-separated Google-compatible
hreflang tags (de, fr, es-MX, ja, pt-BR, zh-Hant).
If --to is missing, ask the user once: "Which languages should I
translate to? Provide hreflang tags such as de, fr, es-MX, ja, pt-BR."
- Normalize every code with the shared multilingual locale rules used by
blog-multilingual, blog-localize, and blog-locale-audit: ISO 639-1
language in lowercase, optional ISO 15924 script in title case, optional
ISO 3166-1 Alpha-2 region in uppercase. Reject invalid codes with a
suggestion (jp becomes "Did you mean ja for Japanese?"). Require a
region or explicit neutral mode for ambiguous language-only targets such as
es, pt, and zh. If a target equals the normalized source language,
skip it with a notice.
Phase 2: Content Analysis
Extract the translatable surface: