From smart-blog-skills
Creates multilingual blog posts via one command: writes a topic, translates it into specified languages, applies cultural adaptation, and generates hreflang tags, sitemaps, and CMS-ready metadata.
How this skill is triggered — by the user, by Claude, or both
Slash command
/smart-blog-skills:multilingual <topic> --languages <comma-separated-codes><topic> --languages <comma-separated-codes>The summary Claude sees in its skill listing — used to decide when to auto-load this skill
The flagship multilingual orchestrator. Combines blog writing, translation,
The flagship multilingual orchestrator. Combines blog writing, translation, cultural adaptation, and full international SEO into a single command. Produces publication-ready blog posts in every target language with hreflang tags, localized JSON-LD schema, and CMS-integration metadata.
Invoked internally by this orchestrator:
| Component | Source | Required |
|---|---|---|
write | smart-blog-skills | Yes |
translate | smart-blog-skills | Yes |
localize | smart-blog-skills | Yes (when --localize is on, default) |
/smart-blog-skills:multilingual <topic> --languages <lang1,lang2,...> [--source <lang>] [--no-localize] [--format <md|mdx|html>]
| Argument | Required | Default | Description |
|---|---|---|---|
<topic> | Yes | Blog topic or working title | |
--languages | Yes | Comma-separated ISO 639-1 codes (e.g. de,fr,es,ja,pt-BR) | |
--source | No | en | Source language to write the original in |
--no-localize | No | off | Skip cultural adaptation (translation only) |
--format | No | auto | Output format: md, mdx, or html |
If --languages is missing, ask the user once before running anything:
"Which languages should the blog be published in? Provide ISO 639-1 codes
separated by commas (e.g., de,fr,es,ja,pt-BR). The post will be written in
<source> first, then translated."
pt-BR, es-MX, zh-TW are also accepted).--format.--source, drop it
from the translation list with a notice.multilingual/
{source-lang}/
{lang-1}/
{lang-2}/
...
Output MUST stay inside the project root. Never write outside the cwd.Progress: Phase 1: Configuration complete, [N] languages selected ([codes])
Invoke the write sub-skill so all existing rules apply: template auto-selection,
sourced statistics, citation capsules, FAQ schema, internal-link zones, charts,
image embedding. Pass the topic and any write parameters surfaced by the user.
Save the original to multilingual/{source-lang}/{slug}.{ext}.
Progress: Phase 2: Original written, multilingual/{source-lang}/{slug}.{ext}
For each target language, invoke translate:
Save translations to multilingual/{lang}/{localized-slug}.{ext}.
Progress: Phase 3: Translating to [lang] ([X]/[N]) per language.
If --no-localize is NOT set, invoke localize for every translated post:
Update files in place. The localizer swaps brand examples, adapts CTAs, substitutes legal references, and adjusts formality.
Progress: Phase 4: Cultural adaptation complete for [N] languages.
Generate three artifacts plus localized schema.
Copy-paste ready tags for <head>:
<!-- Hreflang tags. Paste into <head> of each language version. -->
<link rel="alternate" hreflang="{source}" href="{source-url}" />
<link rel="alternate" hreflang="{lang-1}" href="{lang-1-url}" />
<link rel="alternate" hreflang="{lang-2}" href="{lang-2-url}" />
<link rel="alternate" hreflang="x-default" href="{source-url}" />
Rules:
x-default points to the source-language version.Save to multilingual/hreflang-tags.html.
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url>
<loc>{source-url}</loc>
<xhtml:link rel="alternate" hreflang="{source}" href="{source-url}" />
<xhtml:link rel="alternate" hreflang="{lang-1}" href="{lang-1-url}" />
<xhtml:link rel="alternate" hreflang="x-default" href="{source-url}" />
</url>
<!-- Repeat one <url> block per language version -->
</urlset>
Save to multilingual/hreflang-sitemap.xml.
Machine-readable mapping for CMS integration:
{
"sourceSlug": "how-to-avoid-ai-slop",
"sourceLanguage": "en",
"generatedDate": "YYYY-MM-DD",
"versions": [
{
"lang": "en",
"slug": "how-to-avoid-ai-slop",
"file": "en/how-to-avoid-ai-slop.md"
},
{
"lang": "de",
"slug": "wie-man-ki-slop-vermeidet",
"file": "de/wie-man-ki-slop-vermeidet.md"
}
],
"hreflang": {
"method": "html",
"x-default": "en"
}
}
Save to multilingual/hreflang-map.json.
## Multilingual blog complete: [Title]
### Original
- Language: [source]
- File: multilingual/{source}/{slug}.{ext}
### Translations
| Language | File | Localized | Keywords adapted |
|----------|------|-----------|------------------|
| de | multilingual/de/{slug}.md | yes | [N] |
| fr | multilingual/fr/{slug}.md | yes | [N] |
### International SEO assets
- multilingual/hreflang-tags.html
- multilingual/hreflang-sitemap.xml
- multilingual/hreflang-map.json
### Total
- [N] posts in [N] languages
- [N] SEO assets generated
### Next steps
- Replace `{url}` placeholders in hreflang tags with your real URLs.
- Merge `hreflang-sitemap.xml` into your existing sitemap.
- Run `/smart-blog-skills:locale-audit multilingual/` to verify completeness.
- Resolve `[INTERNAL-LINK]` placeholders with locale-specific URLs.
| When | Run |
|---|---|
| To regenerate or reword the source | /smart-blog-skills:write <topic> |
| To translate one existing file only | /smart-blog-skills:translate <file> --to <codes> |
| To deepen cultural fit on one file | /smart-blog-skills:localize <file> --locale <code> |
| To audit a multilingual directory | /smart-blog-skills:locale-audit <directory> |
| Scenario | Action |
|---|---|
| One translation fails | Complete the rest, report partial results, suggest a retry command |
| Source language equals a target | Skip that target, log a notice |
| More than 10 target languages | Warn about wall-clock time, proceed if confirmed |
npx claudepluginhub rainday/smart-blog-skills --plugin smart-blog-skillsWrites a blog post, translates it into specified languages, applies cultural adaptation, and emits hreflang tags, sitemap entries, and CMS-ready language map in one command.
Translates blog posts into multiple languages with SEO-optimized localization, preserving markdown structure, frontmatter, and embedded content.
Plans multi-language/region site architecture: URL structure (subfolder vs subdomain vs ccTLD), hreflang, translation workflow, locale formatting, RTL design, and stalled rollout audits.