# sanity: はじめに URL: https://generaltranslation.com/ja/docs/sanity.mdx --- title: はじめに description: General Translation の Sanity CMS プラグインの概要 --- ## 概要 `gt-sanity` プラグインは、General Translation を Sanity Studio v5+ に直接統合します。 自動翻訳、ドキュメントレベルの翻訳、翻訳済みドキュメントの管理を含む、Sanity コンテンツ向けの包括的な翻訳ワークフローを提供します。 ```typescript title="sanity.config.ts" import { defineConfig } from 'sanity'; import { gtPlugin } from 'gt-sanity'; export default defineConfig({ // ... 既存の設定 plugins: [ gtPlugin({ sourceLocale: 'en', locales: ['es', 'zh', 'ja'], }), ], }); ``` ## 仕組み このプラグインは、Sanity の [ドキュメントレベルのローカライズ](https://www.sanity.io/docs/studio/localization) 方式を採用しています。各ソースドキュメントに対して、`language` フィールドに対象ロケールを設定した翻訳済みドキュメントを個別に作成します。 **スキーマとクエリの変更が必要です。** 翻訳する各ドキュメントタイプのスキーマには、`language` フィールドを含める必要があります (以下を参照) 。 また、正しい言語版を取得できるよう、フロントエンドのクエリも更新する必要があります。 セットアップと GROQ クエリの例については、[クイックスタート](/docs/sanity/guides/quickstart#querying-translated-content)を参照してください。 ### language フィールド 翻訳対象のすべてのドキュメントタイプでは、`language` フィールドを定義する必要があります: ```typescript import { defineField, defineType } from 'sanity' export const articleType = defineType({ name: 'article', title: 'Article', type: 'document', fields: [ // ... 既存のフィールド defineField({ name: 'language', type: 'string', readOnly: true, hidden: true, }), ], }) ``` plugin の設定でカスタムの `languageField` 名を使用する場合、フィールド名もそれに一致している必要があります。 ## 主な機能 ### ドキュメント翻訳 ドキュメント全体を複数の対象ロケールに翻訳できます。このプラグインは、Portable Text、ネストされたオブジェクト、配列、カスタムスキーマ型に対応しています。 ### 一括操作 複数のドキュメントやサイト全体をまとめて翻訳できます。すべての翻訳をインポートすることも、不足分のみをインポートすることも、ロケールごとに選んでインポートすることもできます。 ### インテリジェントなシリアライズ ドキュメントは構造とメタデータを保持したまま、翻訳用にHTMLへシリアライズされます。 文法構造が異なる言語への翻訳では、対象言語で自然に読めるよう、構造が自動的に調整されます。 カスタムシリアライザーを使うと、特定のフィールド型の処理方法を制御できます。 ## プラグイン UI このプラグインには、主に次の 3 つの UI コンポーネントがあります。 ### Translate アクション (ダイアログ) Translate アクションは、すべてのドキュメントに自動的に追加されます。ドキュメントのアクションバーにある **Translate** ボタンをクリックすると、翻訳用のフル UI を備えたダイアログが開きます。追加の設定は不要です。 ### 翻訳タブ (任意) ![TranslationsTab](https://assets.gtx.dev/docs/sanity-translations-tab.png) `TranslationsTab` は、`structureTool` を使って専用のドキュメントビューとして追加することもできます。これにより、ダイアログと同じ翻訳機能を、ドキュメントエディタ内のタブとして組み込んで利用できます。 セットアップ手順については、[クイックスタート](/docs/sanity/guides/quickstart#configuration) を参照してください。 ### 翻訳ページ ![翻訳ページ](https://assets.gtx.dev/docs/sanity-translations-page.png) 翻訳ページは、サイト全体の翻訳を横断的に確認できる Sanity のページです。 この一元管理ページでは、次のことができます。 * すべてのドキュメントの翻訳を一括生成 * すべてのドキュメントの翻訳を一括インポート * 特定のドキュメントの翻訳を一括インポート * 言語参照や他のドキュメントへのリンクを修正 * すべてのドキュメントの翻訳を一括公開 ## 対応しているコンテンツタイプ このプラグインは、ほとんどの Sanity スキーマ型に対応しています。 カスタム型は、[カスタムシリアライザー](/docs/sanity/guides/serialization)で設定できます。 slug のようなフィールドは `dedupeFields` で設定でき、新しく作成される翻訳済みドキュメントでは、`about-es` や `about-fr` のような一意のロケール接尾辞とともに、ソースに由来する値で開始できます。 ## 次のステップ * [クイックスタート](/docs/sanity/guides/quickstart) - インストールとセットアップを始める * [設定ガイド](/docs/sanity/guides/configuration) - プラグインの動作をカスタマイズする * [シリアライズガイド](/docs/sanity/guides/serialization) - シリアライズのカスタムルール