Agent skill

Blog Translate

by AgriciDaniel in AgriciDaniel/claude-blog

Translate existing blog posts into one or more target languages with SEO-optimized localization.

MITAuto-check passedWriting & Content

Install Blog Translate

skills CLI
$ npx skills add AgriciDaniel/claude-blog --skill blog-translate -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install AgriciDaniel/claude-blog blog-translate --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/AgriciDaniel/claude-blog.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/blog-translate .claude/skills/blog-translate && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
blog-translate
GitHub stars
2.3k
Used in
1 other repo
Token cost
~2.1k tokens
SKILL.md length
828 words
Files
3 (incl. references)
Skills in repo
39
Repo updated
First seen
Licence
MIT

At a glance

Translate existing blog posts into one or more target languages with SEO-optimized localization.

  • Works in 7 steps: Input Parsing → Content Analysis → Keyword Localization → …
  • User says translate blog
  • SKILL.md covers Key References, Workflow, Error Handling and Cross-References
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Blog Translate is an agent skill from AgriciDaniel/claude-blog. 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…

Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including reference files (for example `references/cultural-adaptation.md` and `references/translation-rules.md`). Compatibility notes: Standalone within claude-blog. Invoked by blog-multilingual.

It sits in Writing & Content, covering Translation, Internationalization and Blog and article writing. The repository describes itself as: Claude Code blog skill suite: 30 sub-skills, 5 agents, 5-gate v1.9.0 Blog Delivery Contract, dual-optimized for Google rankings and AI citations. Active development at… The licence is MIT.

When your agent uses it

  • User says translate blog
  • Blog auf Deutsch
  • Blog en espanol

Example prompts

  • “translate blog”
  • “blog translate”
  • “uebersetzen”
  • “/blog-translate”

Requirements

  • Compatibility (from SKILL.md): Standalone within claude-blog. Invoked by blog-multilingual.

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. Input Parsing
  2. Content Analysis
  3. Keyword Localization
  4. Translation
  5. Post-Processing
  6. Translation-Quality Guardrails
  7. Delivery

What it can do on your machine

Read from SKILL.md and the folder at commit 2500d4c. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are yaml).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

  • Compatibility

    Standalone within claude-blog. Invoked by blog-multilingual.

    From compatibility in the SKILL.md frontmatter.

Context cost

Blog Translate loads about 2.1k tokens when it runs, and up to ~5.8k if it reads all its reference files. Until then it costs about 171 tokens; SKILL.md has 828 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~171
When it runs · the whole SKILL.md, loaded when a task matches
~2.1k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~5.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from AgriciDaniel/claude-blog at commit 2500d4c, republished under its MIT licence (© AgriciDaniel). 828 words, ~2,113 tokens.

Download SKILL.mdSave it as .claude/skills/blog-translate/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
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".
compatibility
Standalone within claude-blog. Invoked by blog-multilingual.
user-invokable
true
argument-hint
<file> --to <comma-separated-codes>
license
MIT
metadata.author
AgriciDaniel
metadata.version
2.2.0
metadata.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
  1. 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.
  2. Auto-detect source language. Order of preference:
    • Frontmatter lang field.
    • HTML lang attribute.
    • Content analysis (script, common stop words).
  3. 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."
  4. 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:

  • Frontmatter: title, description, tags, author (only when translatable, e.g. role labels, not personal names).
  • All headings (H1, H2, H3).
  • Body paragraphs.
  • Image alt text and <figcaption> content.
  • Chart <text> and <tspan> content; preserve every SVG attribute (x, y, font-size, fill, transform).
  • FAQ questions and answers.
  • Evidence-backed explanation text.
  • Key Takeaways or summary box.
  • CTA text.
  • Internal-link zone anchor text.

Preserve unchanged:

  • Markdown and HTML structure, tags, attributes.
  • Image URLs, link URLs, frontmatter keys.
  • Executable code fences and inline code. Translate comments only outside executable code, or when the user explicitly asks for localized tutorial comments.
  • Internal-link zone markers ([INTERNAL-LINK: ...]).
  • Source organization names in citations (Gartner, McKinsey, etc.).
  • Person names.
  • Schema JSON-LD blocks (translate user-facing content strings only; never translate Person, Organization, or Brand names, URLs, IDs, @id, or sameAs).

Identify the primary and secondary keywords for Phase 3.

Phase 3: Keyword Localization

For each target language:

  1. Decide whether the source keyword is the established term in the target market. If yes (e.g., "Content Marketing" stays in German), keep it.
  2. If a local equivalent has real search behavior, swap to it.
  3. Apply the same logic to secondary keywords.
  4. Record the mapping. The translator agent uses it to update title, meta description, and H2 headings consistently.
Show full SKILL.md (364 more words)Show less
Phase 4: Translation

Spawn the blog-translator agent (via Task) for each target language with:

  • The source content.
  • The keyword localization map from Phase 3.
  • The target language code.
  • Pointer to references/translation-rules.md.
  • Instruction to limit this phase to language, register, natural topical coverage, and formatting. Reserve brand, legal, statistic, and cultural substitutions for blog-localize.

Run agents in parallel when translating into multiple languages.

The agent returns the fully translated post in the same format as the input.

Phase 5: Post-Processing

For each translated version:

  1. Add or update locale frontmatter:
    yaml
    lang: "de"
    translatedFrom: "en"
    translatedDate: "YYYY-MM-DD"
    slug: "wie-man-ki-slop-vermeidet"
  2. Verify structural integrity:
    • Same number of H2 and H3 sections as the original.
    • All images present with translated alt text.
    • All SVG charts present with translated text labels (length-adjusted: DE +30%, FR +15%, JA -20%, others see references/translation-rules.md).
    • FAQ count matches.
    • Evidence-backed explanations from the source remain intact where present.
  3. Save translated files:
    translations/
      {lang}/{localized-slug}.{ext}
    When invoked from blog-multilingual, save into multilingual/{lang}/{localized-slug}.{ext} instead. Before writing, slugify {localized-slug} to lowercase ASCII with only a-z, 0-9, and hyphens, rejecting empty or reserved names. Create the language directory from the normalized hreflang code only. Resolve the final path and require it to stay inside the intended output root; reject symlinked output paths.
Phase 6: Translation-Quality Guardrails

Scan the output for machine-translation artifacts before reporting done:

  • Literal idioms (English idioms transliterated, not adapted).
  • Unnatural word order (SOV translated as SVO into a non-SVO language, or the reverse).
  • Mixed-language sentences (other than established loanwords).
  • Number, date, or currency strings still in source format.
  • Frontmatter strings still in the source language.

Flag every issue inline (file path, line number, fix suggestion). The translator agent should re-pass any flagged passage before delivery.

Phase 7: Delivery
## Translation complete: [Original title]

### Source
- Language: [source]
- File: [source path]

### Translations
| Language | File | Keywords adapted | Status |
|----------|------|------------------|--------|
| de | translations/de/{slug}.md | [N] | ok |
| fr | translations/fr/{slug}.md | [N] | ok |

### Quality checks
- Structural integrity: pass / fail per language
- Meta tags localized: pass / fail per language
- Numbers, dates, currencies formatted per locale: pass / fail
- Keywords localized: [N] keywords adapted
- Machine-translation artifacts flagged: [N] (see notes above)

### Next steps
- Run `/blog localize <file> --locale <code>` for cultural deep-adaptation.
- Run `/blog locale-audit translations/` to verify completeness.
- Use `/blog multilingual` to combine write, translate, localize, hreflang
  in one command.

Error Handling

ScenarioAction
Unsupported language codeSuggest the correct Google-compatible hreflang code
Source equals a targetSkip with "Source is already in [lang]"
File not foundReport error with suggested path
Translator agent timeoutRetry once, then report partial results
Binary or non-text fileReport error, suggest correct file

Cross-References

  • Next step (cultural depth): /blog localize <file> --locale <code>
  • QA sweep across all language versions: /blog locale-audit <directory>
  • One-command pipeline: /blog multilingual <topic> --languages <codes>

© AgriciDaniel, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files (references) in skills/blog-translate of AgriciDaniel/claude-blog.

  • SKILL.md
  • references/cultural-adaptation.md
  • references/translation-rules.md

Open the folder on GitHubat commit 2500d4c

Used in 1 other repository

We found 4 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in AgriciDaniel/claude-blog, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Blog Translate next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Blog Translate compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Blog Translate this skillAgriciDaniel/claude-blog2.3k1 repos~2.1kAutomated safety check: PassMIT
Translation Diff ExportDevolutions/UniGetUI26k—~1.1kAutomated safety check: PassMIT
Translation Diff ImportDevolutions/UniGetUI26k—~750Automated safety check: PassMIT
Translation Diff TranslateDevolutions/UniGetUI26k—~934Automated safety check: PassMIT
Plane UI Translationmakeplane/plane61k—~16kAutomated safety check: PassAGPL-3.0
Translatetagspaces/tagspaces5.3k—~2.2kAutomated safety check: PassAGPL-3.0

Similar skills

  • Translation Diff Export

    Devolutions/UniGetUI

    Compares UniGetUI JSON locale files against English, identifies untranslated or source-changed keys, and generates patch, reference, and handoff files for a target language.

    26k GitHub stars~1.1k tokensUpdated yesterday
    Writing & ContentAuto-check passed
  • Translation Diff Import

    Devolutions/UniGetUI

    Merges translated key-value pairs from a UniGetUI JSON localization patch back into the full language file and validates the merged result.

    26k GitHub stars~750 tokensUpdated yesterday
    Writing & ContentAuto-check passed
  • Translation Diff Translate

    Devolutions/UniGetUI

    Translates a sparse UniGetUI JSON language patch, writes completed entries into the working copy, preserves placeholders and terminology, and prepares the patch for merge-back.

    26k GitHub stars~934 tokensUpdated yesterday
    Writing & ContentAuto-check passed
  • Plane UI Translation

    makeplane/plane

    Sets the rules for translating and updating Plane's UI strings across locales: do-not-translate terms, plural forms, placeholders and AI translation review.

    61k GitHub stars~16k tokensUpdated 2 days ago
    Writing & ContentAuto-check passed
  • Translate

    tagspaces/tagspaces

    Translate new or untranslated i18n strings from the English locale files (core.json + peri.json) into all other locales, maintaining consistency with each language's existing translations.

    5.3k GitHub stars~2.2k tokensUpdated today
    Writing & ContentAuto-check passed
  • Translation Source Sync

    Devolutions/UniGetUI

    Synchronizes the UniGetUI English language file with source-code usage, identifies missing translation keys, removes unused entries, reports localization drift, and can reorder locale files to match…

    26k GitHub stars~1.2k tokensUpdated yesterday
    Writing & ContentAuto-check passed

More from AgriciDaniel/claude-blog

All 39 skills in this repo
  • Blog Google

    AgriciDaniel/claude-blog

    Google API integration for blog performance: PageSpeed Insights, CrUX Core Web Vitals with 25-week history, Search Console performance, URL Inspection, Indexing API, GA4 organic traffic, NLP entity…

    2.3k GitHub starsUsed in 1 repo~3.3k tokens
    Auto-check: notes
  • Blog Audio

    AgriciDaniel/claude-blog

    Generate audio narration of blog posts using Google Gemini TTS.

    2.3k GitHub starsUsed in 1 repo~2.2k tokens
    Auto-check: notes
  • Blog Flow

    AgriciDaniel/claude-blog

    FLOW framework integration for bloggers. An agent skill from AgriciDaniel/claude-blog.

    2.3k GitHub starsUsed in 1 repo~2k tokens
    Auto-check passed
  • Blog Notebooklm

    AgriciDaniel/claude-blog

    Query Google NotebookLM notebooks for source-grounded, citation-backed answers from user-uploaded documents.

    2.3k GitHub starsUsed in 1 repo~2.5k tokens
    Auto-check: warnings
  • Blog Image

    AgriciDaniel/claude-blog

    AI image generation and editing for blog content powered by Gemini via MCP.

    2.3k GitHub stars~3.4k tokensUpdated 2 days ago
    Auto-check passed
  • Blog Cluster

    AgriciDaniel/claude-blog

    Semantic topic cluster planning and automated execution engine for claude-blog.

    2.3k GitHub starsUsed in 1 repo~4.9k tokens
    Auto-check passed

Questions about Blog Translate

What does Blog Translate do?

Translate existing blog posts into one or more target languages with SEO-optimized localization. Blog Translate is an agent skill from AgriciDaniel/claude-blog. Translate existing blog posts into one or more target languages with SEO-optimized localization.

When should I use Blog Translate?

Blog Translate fits situations like: user says translate blog; blog auf Deutsch; blog en espanol.

How do I install Blog Translate in Claude Code?

Run `npx skills add AgriciDaniel/claude-blog --skill blog-translate -a claude-code`. Or copy the skill folder (skills/blog-translate in AgriciDaniel/claude-blog) into .claude/skills/blog-translate in your project. Claude Code loads it when a task matches its description.

How do I install Blog Translate in Codex?

Run `npx skills add AgriciDaniel/claude-blog --skill blog-translate -a codex`. Or copy the skill folder (skills/blog-translate in AgriciDaniel/claude-blog) into .agents/skills/blog-translate in your project. Codex loads it when a task matches its description.

Can I use Blog Translate in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add AgriciDaniel/claude-blog --skill blog-translate -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/blog-translate, .gemini/skills/blog-translate, .github/skills/blog-translate and .opencode/skills/blog-translate in your project.

What does Blog Translate need to run?

SKILL.md names no scripts, command-line tools or credentials: Blog Translate is instructions for the agent only. Compatibility (from SKILL.md): Standalone within claude-blog. Invoked by blog-multilingual..

Does Blog Translate access the network?

SKILL.md names 1 domain. As links in the text: github.com. This is read from the text; nothing was executed.

Is Blog Translate safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Blog Translate use?

Blog Translate is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Blog Translate use?

About 2.1k tokens (SKILL.md is roughly 8.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 3.7k tokens, read only when the agent opens those files.

What are the alternatives to Blog Translate?

Skills that share tags, products or a category with Blog Translate: Translation Diff Export (Devolutions/UniGetUI, 26k stars), Translation Diff Import (Devolutions/UniGetUI, 26k stars), Translation Diff Translate (Devolutions/UniGetUI, 26k stars) and Plane UI Translation (makeplane/plane, 61k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Blog Translate?

AgriciDaniel (a GitHub user) maintains it in AgriciDaniel/claude-blog, which has 2,348 GitHub stars. The repository holds 39 skills in this directory. The repository was last updated on October 9, 2026.

Source: AgriciDaniel/claude-blog on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.