blog-multilingual
ブログ記事の作成から多言語翻訳、文化的な調整、SEO対策に必要なhreflangタグやサイトマップ生成までをワンストップで行い、国際的なコンテンツを効率的に公開できる状態にするSkill。
📜 元の英語説明(参考)
One-command multilingual blog creation. Writes a blog post, translates it into user-specified languages, applies cultural adaptation, and emits hreflang tags, sitemap entries, and a CMS-ready language map. The complete write-to-publish pipeline for international content. Orchestrates blog-write, blog-translate, blog-localize, and (optionally) seo-hreflang. Use when user says "multilingual blog", "blog multilingual", "write in multiple languages", "international blog", "mehrsprachiger Blog", "blog multilingue", "blog multilingue", "create blog in German and French".
🇯🇵 日本人クリエイター向け解説
ブログ記事の作成から多言語翻訳、文化的な調整、SEO対策に必要なhreflangタグやサイトマップ生成までをワンストップで行い、国際的なコンテンツを効率的に公開できる状態にするSkill。
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o blog-multilingual.zip https://jpskill.com/download/10525.zip && unzip -o blog-multilingual.zip && rm blog-multilingual.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/10525.zip -OutFile "$d\blog-multilingual.zip"; Expand-Archive "$d\blog-multilingual.zip" -DestinationPath $d -Force; ri "$d\blog-multilingual.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
blog-multilingual.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
blog-multilingualフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-18
- 取得日時
- 2026-05-18
- 同梱ファイル
- 1
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
Blog Multilingual, ワンコマンド国際出版
フラッグシップの多言語オーケストレーターです。ブログの執筆、翻訳、 文化的な適応、そして完全な国際SEOを単一のコマンドに統合します。 すべての対象言語で、hreflangタグ、ローカライズされたJSON-LDスキーマ、およびCMS統合メタデータを含む、すぐに公開できるブログ投稿を生成します。
Chris Mueller氏による
claude-blog-multilingualを改変(AI Marketing Hub Pro Hub Challengeへの提出、2026年3月、85/100の熟練度で評価)。 オリジナル:https://github.com/Chriss54/multilingual-int このポートは、監査で指摘されたオリジナルのcurl | bashインストーラーと認証情報の処理を削除し、コアスキルとして統合し、blog-translate/references/の下にある共有の文化適応リファレンスを使用します。
依存関係
このオーケストレーターによって内部的に呼び出されます。
| コンポーネント | ソース | 必須 |
|---|---|---|
blog-write |
claude-blog (このプラグイン) | はい |
blog-translate |
claude-blog (このプラグイン) | はい |
blog-localize |
claude-blog (このプラグイン) | はい ( --localize がオンの場合、デフォルト) |
seo-hreflang |
claude-seo (兄弟プラグイン) | いいえ、自己完結型のジェネレーターにフォールバック |
seo-hreflangがインストールされていない場合、オーケストレーターは独自の最小限のジェネレーター(以下のフェーズ5)を使用してhreflangタグを発行し、配信サマリーでその制限事項を指摘します。その場合のHreflangの検証は構造的なもののみであり、seo-hreflangが提供するより深い検証ではありません。
コマンド構文
/blog multilingual <topic> --languages <lang1,lang2,...> [--source <lang>] [--no-localize] [--format <md|mdx|html>]
| 引数 | 必須 | デフォルト | 説明 |
|---|---|---|---|
<topic> |
はい | , | ブログのトピックまたは仮題 |
--languages |
はい | , | カンマ区切りのISO 639-1コード(例:de,fr,es,ja,pt-BR) |
--source |
いいえ | en |
オリジナルを執筆するソース言語 |
--no-localize |
いいえ | オフ | 文化的な適応をスキップ(翻訳のみ) |
--format |
いいえ | auto | 出力形式:md、mdx、またはhtml |
--languages がない場合は、何かを実行する前にユーザーに一度尋ねてください。
「ブログを公開する言語は何ですか?カンマで区切られたISO 639-1コードを提供してください(例:de,fr,es,ja,pt-BR)。投稿は最初に<source>で記述され、その後翻訳されます。」
ワークフロー
フェーズ1:構成
- 引数を解析します。トピック、対象言語、ソース、形式を抽出します。
- 各言語コードをISO 639-1に対して検証します(
pt-BR、es-MX、zh-TWのような地域サフィックスも受け入れられます)。 - プロジェクトから出力形式を検出します(フロントマターの規則、ファイル拡張子、フレームワークのヒント)または
--formatを使用します。 - ソース言語を解決します。対象言語が
--sourceと等しい場合、通知とともに翻訳リストから削除します。 - 現在の作業ディレクトリ内に、出力ディレクトリを作成します。
multilingual/ {source-lang}/ {lang-1}/ {lang-2}/ ...出力はプロジェクトルート内に留まる必要があります。cwdの外に書き込まないでください。
進捗状況:フェーズ1:構成が完了しました。[N]言語が選択されました([codes])
フェーズ2:オリジナルのブログを執筆
blog-writeサブスキルを呼び出します(/blog writeを介してルーティングして、既存のすべてのルールが適用されるようにします:テンプレートの自動選択、ソース統計、引用カプセル、FAQスキーマ、内部リンクゾーン、チャート、画像埋め込み)。トピックと、ユーザーによって表面化されたblog-writeパラメーターを渡します。
オリジナルをmultilingual/{source-lang}/{slug}.{ext}に保存します。
進捗状況:フェーズ2:オリジナルが記述されました、multilingual/{source-lang}/{slug}.{ext}
フェーズ3:すべての対象言語に翻訳
各対象言語について、blog-translateを呼び出します。
- 入力:フェーズ2で生成されたオリジナルのブログ投稿。
- ターゲット:特定の言語コード。
- ランタイムがサポートしている場合は、並行してターゲットを実行します(言語ごとに1つのタスク)して、実時間(wall-clock time)を短縮します。
翻訳をmultilingual/{lang}/{localized-slug}.{ext}に保存します。
進捗状況:フェーズ3:[lang]に翻訳中([X]/[N])(言語ごと)、その後フェーズ3:すべての翻訳が完了しました。
フェーズ4:文化的な適応
--no-localizeが設定されていない場合は、翻訳されたすべての投稿に対してblog-localizeを呼び出します。
- 入力:翻訳されたブログ投稿。
- ロケール:対象言語または地域コード。
- 並行して実行します。
ファイルをインプレースで更新します。ローカライザーはブランドの例を交換し、CTAを適応させ、法的参照を置き換え、形式を調整します。完全な適応パスについては、../blog-localize/SKILL.mdを参照してください。
進捗状況:フェーズ4:[N]言語の文化的な適応が完了しました。
フェーズ5:国際SEOの生成
3つのアーティファクトとローカライズされたスキーマを生成します。claude-seoのseo-hreflangスキルがインストールされている場合は、検証をそれに委任します。それ以外の場合は、以下の自己完結型ジェネレーターを使用します。
5a. Hreflangタグ(HTML)
コピー&ペースト可能な<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}" />
ルール(seo-hreflangからミラーリング):
- すべてのページは、それ自体を含むすべての代替を参照します(自己参照)。
x-defaultはソース言語バージョンを指します。- すべてのURLは同じプロトコル(HTTPS)と末尾のスラッシュ規則を使用します。
- 双方向:すべての関係は相互的です。
multilingual/hreflang-tags.htmlに保存します。
5b. Hreflangサイトマップフラグメント
<?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 l
(原文はここで切り詰められています) 📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
Blog Multilingual, One-Command International Publishing
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.
Adapted from
claude-blog-multilingualby Chris Mueller (AI Marketing Hub Pro Hub Challenge submission, March 2026, scored 85/100 Proficient). Original: https://github.com/Chriss54/multilingual-int This port removes the originalcurl | bashinstaller and credential handling flagged in the audit, integrates as core skills, and uses the shared cultural-adaptation reference underblog-translate/references/.
Dependencies
Invoked internally by this orchestrator:
| Component | Source | Required |
|---|---|---|
blog-write |
claude-blog (this plugin) | Yes |
blog-translate |
claude-blog (this plugin) | Yes |
blog-localize |
claude-blog (this plugin) | Yes (when --localize is on, default) |
seo-hreflang |
claude-seo (sibling plugin) | No, falls back to a self-contained generator |
If seo-hreflang is not installed, the orchestrator emits hreflang tags using
its own minimal generator (Phase 5 below) and notes the limitation in the
delivery summary. Hreflang validation in that case is structural only, not the
deeper validation seo-hreflang provides.
Command Syntax
/blog 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."
Workflow
Phase 1: Configuration
- Parse arguments. Extract topic, target languages, source, format.
- Validate each language code against ISO 639-1 (region suffixes like
pt-BR,es-MX,zh-TWare also accepted). - Detect output format from the project (frontmatter convention, file
extensions, framework hints) or use
--format. - Resolve source language. If a target language equals
--source, drop it from the translation list with a notice. - Create the output directory inside the current working directory:
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])
Phase 2: Write Original Blog
Invoke the blog-write sub-skill (route through /blog write 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 blog-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}
Phase 3: Translate to All Target Languages
For each target language, invoke blog-translate:
- Input: the original blog post produced in Phase 2.
- Target: the specific language code.
- Run targets in parallel where the runtime supports it (one Task per language) to reduce wall-clock time.
Save translations to multilingual/{lang}/{localized-slug}.{ext}.
Progress: Phase 3: Translating to [lang] ([X]/[N]) per language, then
Phase 3: All translations complete.
Phase 4: Cultural Adaptation
If --no-localize is NOT set, invoke blog-localize for every translated
post:
- Input: the translated blog post.
- Locale: the target language or region code.
- Run in parallel.
Update files in place. The localizer swaps brand examples, adapts CTAs,
substitutes legal references, and adjusts formality. See
../blog-localize/SKILL.md for the full adaptation pass.
Progress: Phase 4: Cultural adaptation complete for [N] languages.
Phase 5: International SEO Generation
Generate three artifacts plus localized schema. If the seo-hreflang skill
from claude-seo is installed, delegate validation to it. Otherwise use the
self-contained generator below.
5a. Hreflang Tags (HTML)
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 (mirrored from seo-hreflang):
- Every page references all alternates including itself (self-referencing).
x-defaultpoints to the source-language version.- All URLs use the same protocol (HTTPS) and trailing-slash convention.
- Bidirectional: every relationship is reciprocal.
Save to multilingual/hreflang-tags.html.
5b. Hreflang Sitemap Fragment
<?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.
5c. Hreflang Map (JSON)
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",
"title": "How to Avoid AI Slop in 2026",
"description": "..."
},
{
"lang": "de",
"slug": "wie-man-ki-slop-vermeidet",
"file": "de/wie-man-ki-slop-vermeidet.md",
"title": "KI-Slop vermeiden in 2026",
"description": "..."
}
],
"hreflang": {
"method": "html",
"x-default": "en"
}
}
Save to multilingual/hreflang-map.json.
5d. Localized Schema (Optional)
If the user asks, or if a frontmatter schema: true flag is present, attach
or update JSON-LD on every language version with inLanguage and
translationOfWork fields:
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "[Localized title]",
"description": "[Localized description]",
"inLanguage": "[lang-code]",
"isPartOf": { "@type": "Blog", "inLanguage": "[lang-code]" },
"translationOfWork": {
"@type": "BlogPosting",
"inLanguage": "[source-lang]",
"url": "[source-url]"
}
}
Use the existing /blog schema sub-skill if richer schema (FAQ, Person,
Breadcrumb) is wanted on each version.
Phase 6: Delivery Summary
## 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] |
| es | multilingual/es/{slug}.md | yes | [N] |
### International SEO assets
- multilingual/hreflang-tags.html
- multilingual/hreflang-sitemap.xml
- multilingual/hreflang-map.json
- Localized schema embedded per version (if requested)
### 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 `/blog locale-audit multilingual/` to verify completeness.
- Resolve `[INTERNAL-LINK]` placeholders with locale-specific URLs.
- If claude-seo is installed, run `/seo hreflang multilingual/` for
deeper validation.
Cross-References
| When | Run |
|---|---|
| To regenerate or reword the source | /blog write <topic> |
| To translate one existing file only | /blog translate <file> --to <codes> |
| To deepen cultural fit on one file | /blog localize <file> --locale <code> |
| To audit a multilingual directory | /blog locale-audit <directory> |
| For deeper hreflang validation | /seo hreflang <directory> (claude-seo, optional) |
Error Handling
| Scenario | Action |
|---|---|
blog-write missing |
Error: "This skill requires blog-write. Reinstall claude-blog." |
| 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 |
seo-hreflang not installed |
Use the self-contained generator, note it in the summary |
Commands Recap
| Command | Purpose |
|---|---|
/blog multilingual <topic> --languages de,fr,es |
Write source, translate, localize, emit hreflang assets |
/blog translate <file> --to de,fr,es |
Translate one file into target languages |
/blog localize <file> --locale de-DE |
Cultural deep-adaptation of one translated file |
/blog locale-audit <directory> |
Multilingual QA across a directory |