戻る

gt-sanity@2.0.0

Brian Lou avatarBrian Lou
gt-sanityv2.0.0sanitycmstranslationmajor

概要

gt-sanity v2 は、plugin を Sanity v5 と React 19 に対応させるメジャーリリースです。さらに、設定不要の翻訳ダイアログによってセットアップを簡素化し、翻訳済みドキュメントに表示するフィールドを制御するための新しいオプションも追加されています。


最新情報

よりシンプルなセットアップ: 翻訳ダイアログ

v2 での最大の変更点は、開発者が翻訳 UI とどうやり取りするかです。以前は、ドキュメントに Translations タブを追加するために、カスタムの defaultDocumentNode を使って structureTool を設定する必要がありました。現在は、plugin がすべてのドキュメントに Translate アクションを自動で追加し、クリックすると翻訳 UI 全体を含むダイアログが開きます。

つまり、最小限のセットアップは 2 ステップだけです。plugin をインストールして、設定に追加します。

import { defineConfig } from 'sanity';
import { gtPlugin } from 'gt-sanity';

export default defineConfig({
  plugins: [
    gtPlugin({
      sourceLocale: 'en',
      locales: ['es', 'zh', 'ja'],
    }),
  ],
});

専用のタブ表示を好むユーザー向けに、TranslationsTab コンポーネントは引き続きエクスポートされていますが、現在は省略可能です。

defaultLocale 設定オプション

gt-next または gt-react を使用していて、すでに gt.config.json がある場合は、その内容をそのまま plugin の設定に直接スプレッドできるようになりました。defaultLocale フィールドは sourceLocale のエイリアスとして利用できます。

import gtConfig from './gt.config.json';

gtPlugin({
  ...gtConfig, // { defaultLocale: 'en', locales: ['es', 'zh', 'ja'] }
});

sourceLocaledefaultLocale の両方が指定されている場合、sourceLocale が優先されます。

skipFields オプション

新しい skipFields 設定オプションでは、一致したフィールドを翻訳済みドキュメントから完全に除外します。これは ignoreFields とは異なります。ignoreFields はソースドキュメントの値を訳文にコピーしますが、skipFields はそのフィールドが翻訳済みドキュメントに一切含まれないようにします。

skipFields は、一意のドキュメント slug、SEO のカノニカル URL、または訳文に引き継ぐべきでないソース専用のメタデータのようなフィールドに使用してください:

gtPlugin({
  sourceLocale: 'en',
  locales: ['es', 'zh', 'ja'],
  skipFields: [
    { fields: [{ property: '$.slug', type: 'slug' }] },
    { fields: [{ property: '$.canonicalUrl' }] },
  ],
});

一方、ignoreFields は、翻訳はしたくないものの、ソースからはコピーしておきたいフィールドに使います。たとえば、すべての言語で同じ値にしておくべきカテゴリ、タグ、内部メタデータなどです。

ignoreFields と同様に、documentId を使ってスキップルールの適用対象を特定のドキュメントに限定でき、property には JSONPath 式を使用できます。

ignoreFields の動作を改善

v1 では、無視したフィールドは翻訳にソースドキュメントから復元されるだけで、コンテンツ自体は翻訳 API に送信されていました。v2 では、無視したフィールドはシリアライズのにドキュメントから除去されるようになったため、無視したコンテンツが API に送信されることはありません。


破壊的変更

Sanity v5 と React 19

gt-sanity v2 には Sanity v5 以降と React 19 以降が必要です。Sanity v3 または v4 を引き続き使用している場合は、gt-sanity v1 を使い続けてください。

Translations タブは自動登録されなくなりました

plugin で Translations タブのビューが自動的に登録されることはなくなりました。代わりに、既定の操作方法として 翻訳ダイアログが使われます。引き続き専用タブを使いたい場合は、手動で追加できます。詳しくは Quickstart を参照してください。


リンク