Ghost i18n:Ghost ブログを多言語化する方法(2026年版)
Ghost は、独立クリエイターやプロの発行者向けに作られた、高速で機能を絞り込んだパブリッシングプラットフォームです。多言語化によってまったく新しい読者層にコンテンツを届けられますが、Ghost は他の CMS プラットフォームとは異なる方法で国際化に対応しています。ここでは利用できる2つのアプローチと、その選び方を紹介します。
Ghost 標準の i18n アプローチ
Ghost にはネイティブの多言語ルーティングがありません。/fr/post-slug のようなロケール別 URL の組み込みの概念や、投稿の言語バージョンを自動的に切り替える仕組みは存在しません。代わりに、Ghost のエコシステムは手動でのコンテンツ複製というワークフローで翻訳に対応しています。
典型的なパターンは次のとおりです。言語ごとに翻訳済みの投稿を別途作成し、ロケールでタグ付けし(例:lang:fr)、{{lang}} テーマヘルパーを使ってページの HTML の lang 属性を設定します。Ghost にはテーマ翻訳システムも搭載されており、テーマ内に locales/fr.json ファイルを配置することで、ナビゲーションラベル、ボタンテキスト、メンバーシップの案内文などの固定 UI 文字列を翻訳できます。
Ghost の手動アプローチの利点
- →翻訳済みの投稿はそれぞれ独自の URL、メタデータ、canonical を持つ正式な Ghost 投稿となり、Ghost の SEO レイヤーとネイティブに連携する
- →編集の完全なコントロールが可能 — 人間の翻訳者や翻訳会社が公開前にすべての文をレビュー・承認できる
- →サードパーティへの依存がない — すべてが Ghost とテーマの中で完結する
Ghost の手動アプローチの欠点
- →すべての投稿を言語ごとに複製し手動で翻訳する必要がある — 2言語のブログではコンテンツ作業量が2倍になる
- →元の投稿への更新は、すべての翻訳版に手動で反映する必要がある — 自動同期はない
- →テーマのロケールファイルは静的な UI 文字列しかカバーしない — 本文、投稿タイトル、抜粋テキストには手動での複製投稿が必要
- →
{{lang}}やロケール JSON を設定するにはテーマへのアクセスが必要 — カスタムテーマを持たない Ghost(Pro) ユーザーは選択肢が限られる
スクリプトタグによる自動翻訳
DOM ベースの翻訳アプローチは、Ghost のコンテンツモデルの内部ではなく、公開後の HTML レベルで動作します。Ghost 管理画面 → Settings → Code Injection → Site Footer にスクリプトタグを1つ貼り付けるだけで、ウィジェットは完全に描画された DOM — すべての投稿、ページ、タグアーカイブ、Ghost Portal のメンバーシップ UI を含む — を検知し、自動的に翻訳します。
これは Ghost(Pro) とセルフホスト型の Ghost インスタンスのどちらでも同じように動作します。Code Injection はすべてのプランで利用できる Ghost 標準機能なので、テーマへのアクセスやカスタムテーマは不要です。
自動翻訳の利点
- →コンテンツの複製はゼロ — Ghost のコンテンツライブラリはそのままの状態を保つ
- →既存および今後のすべての投稿を即座にカバー — 投稿ごとの翻訳作業は不要
- →DOM 内のすべてを翻訳 — 投稿本文、タイトル、ナビゲーション、Ghost Portal、タグ、著者プロフィール
- →hreflang タグが自動的に追加される — 多言語 SEO のためのテーマ編集は不要
- →全30以上の言語込みの、手頃な月額サブスクリプション
自動翻訳の欠点
- →翻訳は公開済みのコンテンツから生成される — 公開前ではなく、ダッシュボードでレビュー・上書きする形になる
- →新しい言語ページへの最初の訪問者が初回の翻訳をトリガーする — それ以降の訪問者はキャッシュされた結果を閲覧する
ステップバイステップ:Ghost に多言語対応を追加する
- 1
Lingvit プロジェクトを作成
app.lingvit.com でサインアップし、新しいプロジェクトを作成して、Ghost サイトのドメインを入力します。ダッシュボードから対応させたい言語を選択してください。
- 2
Ghost 管理画面 → Settings → Code Injection を開く
Ghost 管理画面で Settings → Code Injection に移動します。Site Header と Site Footer の2つのテキストエリアが表示されます。Site Footer フィールドを使用してください — Ghost サイトのすべてのページで
</body>タグの直前にコードを挿入します。 - 3
Lingvit のスクリプトタグを貼り付ける
Lingvit のプロジェクト設定に表示されるスクリプトタグを Site Footer フィールドに貼り付けます。次のような形式です。
<script src="https://cdn.lingvit.com/widget.bundle.js" data-project-id="YOUR_PROJECT_ID" async></script>YOUR_PROJECT_IDを Lingvit ダッシュボードに表示されるプロジェクト ID に置き換えてください。Code Injection の設定を保存します。 - 4
言語切り替えウィジェットがサイトに表示されるか確認する
ブラウザで Ghost サイトを開きます。Lingvit の言語切り替えウィジェットが自動的に表示されます。対象言語をクリックすると、最初の翻訳リクエストで翻訳が生成されキャッシュされます。それ以降のその言語へのアクセスはすべてキャッシュから即座に配信されます。
Ghost における SEO と hreflang
多言語 SEO では、検索エンジンがコンテンツの各言語バージョンを発見し、クロールし、正しく紐づけられる必要があります。Ghost の2つのアプローチではこの点が大きく異なります。
自動翻訳(Lingvit)の場合
Lingvit は、有効なすべての言語について hreflang リンクタグをページの <head> に自動的に挿入します。翻訳済みのメタタイトルとメタディスクリプションもロケールごとに配信されるため、フランス語、ドイツ語、日本語の検索結果でも正しくローカライズされたスニペットが表示されます。テーマの変更は不要です。
Ghost の手動アプローチの場合
言語ごとに投稿を手動で複製する場合、hreflang アノテーションの追加は自分で行う必要があります。通常は、Ghost テーマを編集して <link rel="alternate" hreflang="fr" href="..." /> タグを <head> パーシャルに挿入することになります。これらのタグがないと、検索エンジンが翻訳済みの投稿を言語別の代替版ではなく重複コンテンツとして扱ってしまう可能性があります。
URL 構造
Lingvit では、各言語に /fr/、/de/、/ja/ のような URL プレフィックスのパスが割り当てられます。これらの URL はクロール・インデックス可能で、Google がその言語のクエリに対して各言語バージョンを個別にランク付けできます。
どちらのアプローチが適していますか?
| 項目 | Ghost 手動複製 | 自動翻訳 |
|---|---|---|
| セットアップ時間 | 言語ごとに数時間〜数日 | ガイド付きのコード挿入 |
| コンテンツの保守 | 手動 — 変更のたびにすべての翻訳投稿を更新 | 自動 — 公開コンテンツを反映 |
| 編集コントロール | 完全 — 公開前にレビュー可能 | 公開後にダッシュボードでレビュー |
| テーマアクセスの要否 | 必要(hreflang と lang 属性のため) | 不要 |
| Ghost Portal の翻訳 | ロケール JSON ファイルのみ(静的文字列) | 対応(DOM 全体) |
| hreflang の設定 | テーマの手動編集 | 自動 |
| コスト | 翻訳チーム・制作会社の費用 | 月額プランの文字数枠 |
横にスクロールしてすべての列を表示できます。
出版物に専任の翻訳チームがあり、公開前にすべての文について編集承認が必要で、保守コストが許容できる1〜2言語をターゲットにする場合は手動での投稿複製を選んでください。
Ghost アーカイブ全体を即座に多言語対応させたい場合、カスタムテーマにアクセスできない Ghost(Pro) を利用している場合、あるいはチームが現実的に手動で翻訳・保守できる範囲を超える言語数をターゲットにする場合は自動翻訳を選んでください。
よくある質問
- カスタムテーマなしで Ghost(Pro) でも動作しますか?
- はい。Ghost の Code Injection 機能はすべての Ghost(Pro) プランおよびセルフホスト環境で利用できます。スクリプトタグを Site Footer に貼り付けるだけで、テーマの編集やカスタムテーマへのアクセスは不要です。
- Ghost Portal(メンバーシップ UI)も翻訳できますか?
- はい。Ghost Portal はメンバーシップとサブスクリプションの UI をページの DOM に直接描画します。翻訳ウィジェットはこれらの要素を検知し、サインアッププロンプト、メンバーログインのテキスト、プラン説明を含めて自動的に翻訳します。
- Ghost の SEO に影響しますか?
- Lingvit のランタイム翻訳は、導入直後の時点で一般にインデックス可能なロケール URL を追加するものではありません。多言語インデックスが必要な場合は、Ghost の SEO 設定を維持しつつ、別途サーバーサイドレンダリングによるロケールルーティング手法を用いてください。
- 既存の投稿も自動的に翻訳されますか?
- はい。公開済みのすべての投稿とページは、各言語で最初の訪問者リクエストがあった時点で翻訳されます。翻訳結果はキャッシュされるため、それ以降の訪問者は遅延なく完全に翻訳されたコンテンツを閲覧できます。
関連ガイド
Ghost ブログを翻訳する
Code Injection を通じて、対応する Ghost テーマに Lingvit を追加できます。手頃な月額プランをご利用いただけます。