# General Translation Integrations: collectContext
URL: https://generaltranslation.com/ja/docs/integrations/paraglide/reference/collect-context.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: アプリを解析し、Paraglide JS メッセージのソースコード上の文脈をコードから書き出します。collectContext の API リファレンスです。

`@generaltranslation/paraglide-js/compiler` からインポートしてください。パッケージのルートからは何もエクスポートされていません。[`paraglide-context`](/docs/integrations/paraglide/reference/paraglide-context) コマンドは、自身のフラグから組み立てたオプションを渡してこの関数を呼び出します。

## 概要 [#overview]

```ts
function collectContext(options?: CollectContextOptions): Promise<void>;
```

```ts
import { collectContext } from '@generaltranslation/paraglide-js/compiler';

await collectContext({ root: './apps/web', include: ['src'] });
```

このPromiseは、メタデータファイルの書き込みが完了した時点で解決されます。ファイル、フォーマット、またはディレクトリがスキップされるような問題は [`logger.warn`](#logger) で報告され、Promiseが拒否されることはありません。メタデータファイルを書き込めなかった場合は拒否されます。

## オプション [#options]

パスはプロジェクトルートからの相対パスです。プロジェクトルートとは、[`root`](#root) と同じ階層またはそれより上の階層にある、最も近い `package.json` の場所を指します。

| オプション                                | 説明                                           | 型                            | 任意 | デフォルト                                        |
| ------------------------------------ | -------------------------------------------- | ---------------------------- | -- | -------------------------------------------- |
| [`root`](#root)                      | プロジェクト、またはその中のディレクトリ。                        | `string`                     | はい | 作業ディレクトリ                                     |
| [`include`](#include)                | 解析対象のパスまたは glob。                             | `string[]`                   | はい | プロジェクト全体                                     |
| [`exclude`](#exclude)                | 除外するパスまたは glob。                              | `string[]`                   | はい | `DEFAULT_EXCLUDE`                            |
| [`radius`](#radius)                  | 各使用箇所の前後に含める文脈の行数。                           | `number`                     | はい | `10`                                         |
| [`outdirs`](#outdirs)                | 検証せずに使用する Paraglide JS の出力ディレクトリ。            | `string[]`                   | はい | 自動検出                                         |
| [`inlangProjects`](#inlang-projects) | メッセージのメタデータファイルを生成する対象の inlang プロジェクトディレクトリ。 | `string[]`                   | はい | 自動検出                                         |
| [`autoImports`](#auto-imports)       | インポートせずに使用される名前。                             | `false \| AutoImportOptions` | はい | 自動検出                                         |
| [`alias`](#alias)                    | インポートのエイリアス。                                 | `AliasOption`                | はい | —                                            |
| [`bundlerConfigs`](#bundler-configs) | エイリアスの読み取り元となるバンドラー設定。                       | `BundlerConfig[]`            | はい | `defaultBundlerConfigs`                      |
| [`rootDirectory`](#root-directory)   | `/src/a.js` のようなルートパスを解決する際の基準ディレクトリ。        | `string`                     | はい | バンドラー設定のルート                                  |
| [`conditions`](#conditions)          | パッケージのエクスポート条件。                              | `string[]`                   | はい | `["import", "module", "browser", "default"]` |
| [`targets`](#targets)                | Paraglide JS とみなす対象。                         | `ParaglideTarget[]`          | はい | `defaultTargets`                             |
| [`languages`](#languages)            | JavaScript と TypeScript 以外に対応するファイル形式。       | `SourceLanguage[]`           | はい | `defaultLanguages`                           |
| [`logger`](#logger)                  | 警告とサマリーの出力先。                                 | `CollectorLogger`            | はい | 警告を `console.warn` に出力                       |

## `root` [#root]

**型** `string` · **任意** · **デフォルト** 作業ディレクトリ

プロジェクト、またはその中のディレクトリ (モノレポ内の1つのアプリなど) 。バンドラーの設定ファイルは、このディレクトリとプロジェクトルートから検索されます。inlang プロジェクトは、このディレクトリからモノレポのルートまで親ディレクトリをさかのぼって検索されます。

## `include` [#include]

**型** `string[]` · **任意** · **デフォルト** プロジェクト全体

解析対象とするパスまたはglobです。プロジェクト外のパスも、ここに指定すれば解析されます (例：`../shared`) 。存在しないエントリを指定した場合は警告が出力されます。

`include` の指定内容にかかわらず、`node_modules`、ビルドやフレームワークの出力、`.gitignore` で除外されているファイルは常にスキップされます。

## `exclude` [#exclude]

**型** `string[]` · **任意** · **デフォルト** `DEFAULT_EXCLUDE`

スキップするパスまたは glob パターンです。この値を設定するとデフォルト値は上書きされます。デフォルトでは、テストとツールの設定ファイルがスキップされます：

```ts
import { DEFAULT_EXCLUDE } from '@generaltranslation/paraglide-js/compiler';

// *.config.?(c|m)[jt]s, **/*.{test,spec}.?(c|m)[jt]s?(x), **/__tests__/**,
// **/__mocks__/**, test/**, tests/**, e2e/**, cypress/**, playwright/**
await collectContext({ exclude: [...DEFAULT_EXCLUDE, 'src/stories/**'] });
```

## `radius` [#radius]

**型** `number` · **任意** · **デフォルト** `10`

各使用箇所の前後に保持するソースコードの行数です。保持された行は、[メタデータエントリ](/docs/integrations/paraglide/reference/metadata-files#format)の `before` と `after` に記録されます。

## `outdirs` [#outdirs]

**型** `string[]` · **任意** · **デフォルト** 自動検出

検証を行わずに使用する Paraglide JS の出力ディレクトリです。このオプションを指定しない場合、出力ディレクトリは[自動検出](/docs/integrations/paraglide/reference/usage-detection#outdirs)されます。特定のディレクトリが出力ディレクトリとして使用されなかったという警告が表示された場合に指定してください。

## `inlangProjects` [#inlang-projects]

**型** `string[]` · **任意** · **デフォルト** 自動検出

`project.inlang` などの inlang プロジェクトのディレクトリです。各プロジェクトのベースロケールのメッセージファイルごとに、メタデータファイルが 1 つ生成されます。この値を設定すると、[出力ディレクトリごとのプロジェクト検索](/docs/integrations/paraglide/reference/usage-detection#inlang-projects)は行われず、指定した値が使用されます。

## `autoImports` [#auto-imports]

**型** `false | AutoImportOptions` · **任意** · **デフォルト** 自動検出

アプリがインポートせずに使用している名前を指定します。各キーには名前を、その値にはその名前をエクスポートするモジュールをプロジェクトルートからの相対パスで指定します。エクスポート名が異なる場合は `{ from, export }` を指定します。

```ts
await collectContext({
  autoImports: {
    m: './src/paraglide/messages.js',
    t: { from: './src/i18n.js', export: 'translate' },
  },
});
```

unplugin-auto-import、unplugin-vue-components、Nuxt の自動インポートは、このオプションを指定しなくても、それぞれが生成する `.d.ts` ファイルから読み込まれます。`false` を指定すると、この自動検出とオプションの両方が無効になります。

## `alias` [#alias]

**型** `AliasOption` · **任意** · **デフォルト** —

バンドラーの `resolve.alias` と同様のインポートエイリアスです。名前と置換先を対応付けたオブジェクト、または `{ find, replacement, exact? }` の配列のいずれかを指定します。`find` には文字列または `RegExp` を指定できます。これらのエイリアスは、バンドラー設定のエイリアスよりも先に照合されます。

```ts
await collectContext({
  alias: [
    { find: '~', replacement: '/app/src' }, // ~ と ~/… の両方
    { find: 'config', replacement: '/app/src/config.ts', exact: true }, // config のみ（完全一致）
    { find: /^@ui\/(.*)$/, replacement: '/app/packages/ui/src/$1' },
  ],
});
```

 ([インポート文の解決](/docs/integrations/paraglide/guides/resolving-imports)を参照してください) 。

## `bundlerConfigs` [#bundler-configs]

**型** `BundlerConfig[]` · **任意** · **デフォルト** `defaultBundlerConfigs`

インポートエイリアスの読み取り元となるバンドラーの設定ファイルです。デフォルトでは Vite、webpack、rspack が対象です。読み取られるのは最初に見つかった設定ファイルのみです。`[]` を指定すると、どの設定ファイルも読み取りません。対象を追加する方法については、[`BundlerConfig`](/docs/integrations/paraglide/reference/extension-api#bundler-configs) を参照してください。

## `rootDirectory` [#root-directory]

**型** `string` · **任意** · **デフォルト** バンドラー設定のルート

`/src/a.js` のようなルートパスを解決する際の基準となるディレクトリで、Vite の `root` に相当します。Vite の設定がある場合は、その値が使用されます。設定がない場合、ルートパスはファイルシステム上のパスとして解決されます。

## `conditions` [#conditions]

**型** `string[]` · **任意** · **デフォルト** `["import", "module", "browser", "default"]`

パッケージの `exports` および `imports` からエントリを選択する際に使用する条件です。

## `targets` [#targets]

**型** `ParaglideTarget[]` · **任意** · **デフォルト** `defaultTargets`

解決済みのファイルのうちどれが Paraglide JS に属するか、また各ファイルのエクスポートがそれぞれ何であるかを指定します ([Targets](/docs/integrations/paraglide/reference/extension-api#targets) を参照) 。

## `languages` [#languages]

**型** `SourceLanguage[]` · **任意** · **デフォルト** `defaultLanguages`

JavaScript、TypeScript、JSX 以外に解析対象とするファイル形式です ([サポートされているファイル形式](/docs/integrations/paraglide/reference/file-formats)と[ファイル形式の追加](/docs/integrations/paraglide/guides/adding-file-formats)を参照してください) 。

## `logger` [#logger]

**型** `CollectorLogger` · **任意** · **デフォルト** 警告を `console.warn` に出力

`warn(message)` と `info(message)` を持つオブジェクトです。警告では、スキップされた項目が報告されます。`info` はサマリーと、エイリアスの読み取り元となった設定を受け取りますが、デフォルトのロガーはこれを破棄します。

```ts
await collectContext({ logger: console }); // 警告とサマリーを出力
```

## 例 [#example]

翻訳する前に、モノレポ内の 1 つのアプリについて、共有パッケージも含めて文脈を収集します。

```ts title="scripts/collect-context.ts"
import {
  collectContext,
  DEFAULT_EXCLUDE,
} from '@generaltranslation/paraglide-js/compiler';

await collectContext({
  root: './apps/web',
  include: ['src', '../../packages/ui/src'],
  exclude: [...DEFAULT_EXCLUDE, '**/*.stories.tsx'],
  radius: 5,
  logger: console,
});
```

## Sitemap

See the full [sitemap](https://generaltranslation.com/sitemap.md) for all pages.
