meta.json

meta.jsonファイルとは何か?どのように使用されるのか?

はじめに

meta.jsonLingo.devコンパイラーがビルド時に生成するファイルです。Reactアプリケーションで発見されたすべての翻訳可能なコンテンツを追跡し、ビルド時の分析とランタイム翻訳をつなぐインベントリとして機能します。

注意: meta.jsonファイルへのすべての変更はリポジトリにコミットする必要があります。

ファイル例

これは(非常に最小限の)meta.jsonファイルの例です:

{
  "version": 0.1,
  "files": {
    "components/hero.tsx": {
      "scopes": {
        "3/declaration/body/0/argument/1/1": {
          "type": "element",
          "hash": "a1b2c3d4e5f6...",
          "context": "",
          "skip": false,
          "overrides": {},
          "content": "Welcome to our app"
        }
      }
    }
  }
}

すべてのプロパティの意味を理解するには、スキーマプロパティを参照してください。

ファイルの場所

デフォルトでは、meta.jsonファイルはコンパイラーの設定(例:vite.config.tsファイル)の場所を基準にしたsrc/lingoディレクトリに出力されます。

この場所のカスタマイズ方法については、コンパイラーオプションを参照してください。

スキーマプロパティ

このセクションでは、meta.jsonファイルに含まれるすべてのプロパティについて説明します。

version

互換性チェックと将来の移行のために使用されるスキーマバージョン識別子です。

  • 型: number
  • 必須: はい

files

ソースファイルパスごとにすべての翻訳可能なスコープを整理するコンテナオブジェクトです。各キーはソースルートからの相対パスを表します(例:"components/hero.tsx", "pages/home.jsx")。

  • 型: object
  • 必須: はい

files[filePath].scopes

特定のソースファイルで発見されたすべての翻訳可能なコンテンツのコンテナです。各キーはファイル内の翻訳可能なコンテンツを一意に識別するAST(抽象構文木)ベースの識別子です。

  • 型: object
  • 必須: はい

files[filePath].scopes[astKey].type

翻訳可能なコンテンツがJSX要素のコンテンツからのものか、JSX属性の値からのものかを示します。

  • 型: "element" | "attribute"
  • 必須: はい

files[filePath].scopes[astKey].hash

変更検出に使用されるソースコンテンツのSHA-256ハッシュ。ソースコンテンツが変更されると、このハッシュも変更され、再翻訳が必要である可能性を示します。

  • 型: string
  • 必須: はい

files[filePath].scopes[astKey].context

翻訳者がコンテンツの目的や場所を理解するのに役立つコンテキスト情報。

  • 型: string
  • 必須: いいえ

files[filePath].scopes[astKey].skip

このコンテンツを翻訳から除外するかどうかを示すフラグ。

  • 型: boolean
  • 必須: はい

files[filePath].scopes[astKey].overrides

通常の翻訳プロセスをバイパスするロケール固有の翻訳オーバーライド。ブランド名、技術用語、またはカスタム翻訳に役立ちます。

  • 型: object
  • 必須: はい

files[filePath].scopes[astKey].content

Reactコンポーネントから抽出された、翻訳が必要な実際のソーステキスト。

  • 型: string
  • 必須: はい