jpskill.com
✍️ ライティング コミュニティ

blog-translate

既存のブログ記事をSEOに最適化された状態で多言語に翻訳し、マークダウン構造や画像、引用などを保持しつつ、キーワードや日付、通貨などを現地の文化に合わせて調整するSkill。

📜 元の英語説明(参考)

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 citation capsules. 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".

🇯🇵 日本人クリエイター向け解説

一言でいうと

既存のブログ記事をSEOに最適化された状態で多言語に翻訳し、マークダウン構造や画像、引用などを保持しつつ、キーワードや日付、通貨などを現地の文化に合わせて調整するSkill。

※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o blog-translate.zip https://jpskill.com/download/10535.zip && unzip -o blog-translate.zip && rm blog-translate.zip
🪟 Windows (PowerShell)
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/10535.zip -OutFile "$d\blog-translate.zip"; Expand-Archive "$d\blog-translate.zip" -DestinationPath $d -Force; ri "$d\blog-translate.zip"

完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。

💾 手動でダウンロードしたい(コマンドが難しい人向け)
  1. 1. 下の青いボタンを押して blog-translate.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → blog-translate フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-18
取得日時
2026-05-18
同梱ファイル
1

📖 Skill本文(日本語訳)

※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。

Blog Translate, SEO最適化されたブログ翻訳

既存のブログ記事を1つ以上のターゲット言語に翻訳します。 一般的な翻訳とは異なり、このスキルは、ローカライズされたキーワード、メタタグ、および文化的に正しいフォーマットを備えた、SEO最適化された公開準備の整ったコンテンツを生成します。

Chris Mueller氏によるclaude-blog-multilingualからの改作(Pro Hub Challenge、2026年3月)。オリジナル: https://github.com/Chriss54/multilingual-int

主要な参考文献

オンデマンドでロード:

  • references/translation-rules.md、フォーマットの保持、ロケールごとの数値/日付/通貨のフォーマット、引用符の処理、品質基準。
  • references/cultural-adaptation.md、ロケールごとの文化プロファイル(DACH、フランス語圏、ヒスパニック、日本語、カスタム)。このファイルはblog-localizeと共有されます(重複させないでください)。

ワークフロー

フェーズ1: 入力解析

  1. ソースファイル(markdown、MDX、またはHTML)を読み取ります。
  2. ソース言語を自動検出します。優先順位:
    • Frontmatterのlangフィールド。
    • HTMLのlang属性。
    • コンテンツ分析(スクリプト、一般的なストップワード)。
  3. --toからターゲット言語をカンマ区切りのISO 639-1コードとして解析します(de,fr,es,ja,pt-BR)。--toがない場合は、ユーザーに一度質問します: 「どの言語に翻訳しますか?ISO 639-1コード(例: de, fr, es, ja, pt-BR)を入力してください。」
  4. すべてのコードを検証します。無効なコードは提案とともに拒否します(jpは「日本語のjaですか?」になります)。ターゲットがソース言語と同じ場合は、通知とともにスキップします。

フェーズ2: コンテンツ分析

翻訳可能な表面を抽出します:

  • Frontmatter: titledescriptiontagsauthor(翻訳可能な場合のみ、例: 役職名、個人名ではない)。
  • すべての見出し(H1、H2、H3)。
  • 本文の段落。
  • 画像のaltテキストと<figcaption>コンテンツ。
  • チャートの<text><tspan>コンテンツ。すべてのSVG属性(xyfont-sizefilltransform)を保持します。
  • FAQの質問と回答。
  • 引用カプセルのテキスト。
  • Key Takeawaysまたはサマリーボックス。
  • CTAテキスト。
  • 内部リンクゾーンのアンカーテキスト。

変更せずに保持:

  • MarkdownとHTMLの構造、タグ、属性。
  • 画像のURL、リンクのURL、frontmatterのキー。
  • コードブロック(意味のある場合にのみインラインコメントを翻訳します)。
  • 内部リンクゾーンマーカー([INTERNAL-LINK: ...])。
  • 引用元の組織名(Gartner、McKinseyなど)。
  • 人名。
  • Schema JSON-LDブロック(ユーザー向けの文字列値のみを翻訳します)。

フェーズ3の主要キーワードと二次キーワードを特定します。

フェーズ3: キーワードのローカライズ

ターゲット言語ごとに:

  1. ソースキーワードがターゲット市場で確立された用語であるかどうかを判断します。もしそうなら(例: 「Content Marketing」はドイツ語のままである)、それを保持します。
  2. ローカルの同等のものが実際の検索行動を持っている場合は、それに切り替えます。
  3. 二次キーワードにも同じロジックを適用します。
  4. マッピングを記録します。翻訳エージェントは、タイトル、メタディスクリプション、およびH2見出しを整合性をもって更新するためにそれを使用します。

フェーズ4: 翻訳

各ターゲット言語に対して、blog-translatorエージェントを(Task経由で)生成します:

  • ソースコンテンツ。
  • フェーズ3からのキーワードローカライズマップ。
  • ターゲット言語コード。
  • references/translation-rules.mdへのポインタと、ターゲットロケールに存在する場合はreferences/cultural-adaptation.mdの文化プロファイル。

複数の言語に翻訳する場合は、エージェントを並行して実行します。

エージェントは、入力と同じ形式で完全に翻訳された投稿を返します。

フェーズ5: ポストプロセッシング

翻訳されたバージョンごとに:

  1. ロケールfrontmatterを追加または更新します:
    lang: "de"
    translatedFrom: "en"
    translatedDate: "YYYY-MM-DD"
    slug: "wie-man-ki-slop-vermeidet"
  2. 構造的な整合性を検証します:
    • オリジナルと同じ数のH2およびH3セクション。
    • 翻訳されたaltテキストを持つすべての画像が存在すること。
    • 翻訳されたテキストラベルを持つすべてのSVGチャートが存在すること(長さ調整済み: DE +30%、FR +15%、JA -20%、その他はreferences/translation-rules.mdを参照)。
    • FAQの数が一致すること。
    • 各H2に引用カプセルが存在すること。
  3. 翻訳されたファイルを保存します:
    translations/
      {lang}/{localized-slug}.{ext}

    blog-multilingualから呼び出された場合は、代わりにmultilingual/{lang}/{localized-slug}.{ext}に保存します。

フェーズ6: 翻訳品質のガードレール

完了を報告する前に、機械翻訳のアーティファクトについて出力をスキャンします:

  • 文字通りのイディオム(翻訳された英語のイディオム、適応されていない)。
  • 不自然な語順(SOVが非SOV言語にSVOとして翻訳されたり、その逆)。
  • 混合言語の文(確立された借用語以外)。
  • 数値、日付、または通貨の文字列がまだソース形式である。
  • Frontmatterの文字列がまだソース言語である。

すべての問題をインラインでフラグを立てます(ファイルパス、行番号、修正提案)。翻訳エージェントは、配信前にフラグが立てられた箇所を再度パスする必要があります。

フェーズ7: 配信

## 翻訳完了: [Original title]

### ソース
- 言語: [source]
- ファイル: [source path]

### 翻訳
| 言語 | ファイル | キーワード適応 | ステータス |
|----------|------|------------------|--------|
| de | translations/de/{slug}.md | [N] | ok |
| fr | translations/fr/{slug}.md | [N] | ok |

### 品質チェック
- 構造的な整合性: 言語ごとに合格/不合格
- メタタグのローカライズ: 言語ごとに合格/不合格
- 数値、日付、通貨がロケールごとにフォーマットされているか: 合格/不合格
- キーワードのローカライズ: [N]個のキーワードが適応されました
- 機械翻訳のアーティファクトにフラグが立てられました: [N](上記の注を参照)

### 次のステップ
- 文化的な深い適応のために`/blog localize <file> --locale <code>`を実行します。
- 完了を確認するために`/blog locale-audit translations/`を実行します。
- 1つのコマンドで書き込み、翻訳、ローカライズ、hreflangを組み合わせるには`/blog multilingual`を使用します。

エラー処理

シナリオ アクション
サポートされていない言語コード 正しいISO 639-1コードを提案します
ソースがターゲットと同じ 「ソースはすでに[lang]にあります」とスキップします
ファイルが見つかりません 推奨されるパスでエラーを報告します
翻訳エージェントのタイムアウト 1回再試行し、部分的な結果を報告します
バイナリまたは非テキストファイル エラーを報告し、正しいファイルを提案します

(原文はここで切り詰められています)

📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

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).
  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 ISO 639-1 codes (de,fr,es,ja,pt-BR). If --to is missing, ask the user once: "Which languages should I translate to? Provide ISO 639-1 codes (e.g., de, fr, es, ja, pt-BR)."
  4. Validate every code. Reject invalid ones with a suggestion (jp becomes "Did you mean ja for Japanese?"). If a target equals the 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.
  • Citation capsule 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.
  • Code blocks (translate inline comments only when meaningful).
  • Internal-link zone markers ([INTERNAL-LINK: ...]).
  • Source organization names in citations (Gartner, McKinsey, etc.).
  • Person names.
  • Schema JSON-LD blocks (translate only the user-facing string values).

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.

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.
  • Pointers to references/translation-rules.md and the cultural profile in references/cultural-adaptation.md if one exists for the target locale.

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:
    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.
    • Citation capsules present in each H2.
  3. Save translated files:
    translations/
      {lang}/{localized-slug}.{ext}

    When invoked from blog-multilingual, save into multilingual/{lang}/{localized-slug}.{ext} instead.

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

Scenario Action
Unsupported language code Suggest the correct ISO 639-1 code
Source equals a target Skip with "Source is already in [lang]"
File not found Report error with suggested path
Translator agent timeout Retry once, then report partial results
Binary or non-text file Report 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>