mcpField
B
blog-translate

blog-translate

github.com/infrasity-labsマーケティング・グロース15195 回インストール18 週間前に更新
リポジトリ

blog-translate について

コンテンツチーム向けに、既存のブログ記事を翻訳し、現地の検索習慣に合わせてキーワード、メタデータ、形式を調整するスキルです。原文の構造を保ち、翻訳品質と内容の整合性を確認します。

主な機能

  1. 01原文言語の検出と対象コードの検証
  2. 02キーワードとSEOメタデータのローカライズ
  3. 03Markdown、HTML、リンク構造の維持
  4. 04節、チャート、FAQの整合性確認
  5. 05翻訳品質の問題を指摘

活用シーン

  1. 01ブログ記事を別の言語市場で公開
  2. 02地域に合わせて検索キーワードを調整
  3. 03書式を保った多言語版を作成
  4. 04翻訳文の構造と言語上の問題を確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/infrasity-labs/dev-gtm-claude-skills --skill blog-translate

インストール後、Claude Code で/blog-translateを入力して読み込まれたか確認します。

同梱ファイルreferences/cultural-adaptation.mdreferences/translation-rules.md

詳細

ブログ翻訳、SEO 最適化ブログ翻訳

既存のブログ記事を 1 つ以上の対象言語に翻訳します。一般的な翻訳とは異なり、ローカライズされたキーワード、メタタグ、文化的に適切な書式を用いて、SEO に最適化された公開可能なコンテンツを作成します。

主な参照資料

必要に応じて読み込みます。

  • 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:title、description、tags、author(役職名など、翻訳可能な場合のみ。個人名は除く)。
  • すべての見出し(H1、H2、H3)。
  • 本文の段落。
  • 画像の alt テキストと <figcaption> の内容。
  • チャートの <text> および <tspan> の内容。すべての SVG 属性(x、y、font-size、fill、transform)を保持します。
  • FAQ の質問と回答。
  • 引用カプセルのテキスト。
  • 主なポイントまたは要約ボックス。
  • 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 を SVO の言語に、またはその逆に翻訳したもの)。
  • 言語が混在している文(定着した借用語を除く)。
  • 数字、日付、通貨の表記が原文の形式のままになっているもの。
  • フロントマターの文字列が原文の言語のままになっているもの。

問題はすべて該当箇所にインラインで指摘します(ファイルパス、行番号、修正案)。納品前に、翻訳エージェントは指摘された箇所を再翻訳してください。

フェーズ 7:納品
## 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.

エラー処理

シナリオ対応
未対応の言語コード正しい ISO 639-1 コードを提案します
原文と翻訳先が同じ「原文はすでに [lang] です」としてスキップします
ファイルが見つからない推奨パスとともにエラーを報告します
翻訳エージェントがタイムアウト1 回再試行し、その後、部分的な結果を報告します
バイナリファイルまたはテキスト以外のファイルエラーを報告し、正しいファイルを提案します

相互参照

  • 次のステップ(文化的な深みの追加):/blog localize <file> --locale <code>
  • すべての言語版を対象とする QA チェック:/blog locale-audit <directory>
  • 1 コマンドのパイプライン:/blog multilingual <topic> --languages <codes>

コメント