# General Translation Integrations: collectContext
URL: https://generaltranslation.com/es/docs/integrations/paraglide/reference/collect-context.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Analiza una aplicación y escribe el contexto del código fuente de sus mensajes de Paraglide JS a partir del código. Referencia de la API de collectContext.

Impórtala desde `@generaltranslation/paraglide-js/compiler`. La raíz del paquete no exporta nada. El comando [`paraglide-context`](/docs/integrations/paraglide/reference/paraglide-context) llama a esta función con opciones generadas a partir de las opciones que recibe por línea de comandos.

## Descripción general [#overview]

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

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

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

La promesa se resuelve en cuanto se terminan de escribir los archivos de metadatos. Los problemas que obligan a omitir un archivo, un formato o un directorio se notifican mediante [`logger.warn`](#logger) y no provocan su rechazo. La promesa se rechaza si no se puede escribir un archivo de metadatos.

## Opciones [#options]

Las rutas son relativas a la raíz del proyecto: el `package.json` más cercano en [`root`](#root) o en un nivel superior.

| Opción                               | Descripción                                                                      | Tipo                         | Opcional | Predeterminado                               |
| ------------------------------------ | -------------------------------------------------------------------------------- | ---------------------------- | -------- | -------------------------------------------- |
| [`root`](#root)                      | El proyecto o un directorio dentro de él.                                        | `string`                     | Sí       | Directorio de trabajo                        |
| [`include`](#include)                | Rutas o patrones glob que se analizarán.                                                 | `string[]`                   | Sí       | Todo el proyecto                             |
| [`exclude`](#exclude)                | Rutas o patrones glob que se omitirán.                                                   | `string[]`                   | Sí       | `DEFAULT_EXCLUDE`                            |
| [`radius`](#radius)                  | Líneas de contexto por encima y por debajo de cada uso.                          | `number`                     | Sí       | `10`                                         |
| [`outdirs`](#outdirs)                | Directorios de salida de Paraglide JS que se usarán sin verificación.            | `string[]`                   | Sí       | Detectado                                    |
| [`inlangProjects`](#inlang-projects) | Directorios de proyectos de inlang cuyos mensajes reciben archivos de metadatos. | `string[]`                   | Sí       | Detectado                                    |
| [`autoImports`](#auto-imports)       | Nombres que se usan sin importación.                                             | `false \| AutoImportOptions` | Sí       | Detectado                                    |
| [`alias`](#alias)                    | Alias de importación.                                                            | `AliasOption`                | Sí       | —                                            |
| [`bundlerConfigs`](#bundler-configs) | Configuraciones del empaquetador de las que se leen los alias.                   | `BundlerConfig[]`            | Sí       | `defaultBundlerConfigs`                      |
| [`rootDirectory`](#root-directory)   | Directorio desde el que se resuelven las rutas raíz como `/src/a.js`.            | `string`                     | Sí       | La raíz de la configuración del empaquetador |
| [`conditions`](#conditions)          | Condiciones de exportación del paquete.                                          | `string[]`                   | Sí       | `["import", "module", "browser", "default"]` |
| [`targets`](#targets)                | Qué se considera Paraglide JS.                                                   | `ParaglideTarget[]`          | Sí       | `defaultTargets`                             |
| [`languages`](#languages)            | Formatos de archivo adicionales a JavaScript y TypeScript.                       | `SourceLanguage[]`           | Sí       | `defaultLanguages`                           |
| [`logger`](#logger)                  | Recibe las advertencias y el resumen.                                            | `CollectorLogger`            | Sí       | Advertencias en `console.warn`               |

## `root` [#root]

**Tipo** `string` · **Opcional** · **Predeterminado** directorio de trabajo

El proyecto, o un directorio dentro de él, como una de las aplicaciones de un monorepo. Las configuraciones del empaquetador se buscan aquí y en la raíz del proyecto. Los proyectos de inlang se buscan desde aquí hacia arriba, hasta la raíz del monorepo.

## `include` [#include]

**Tipo** `string[]` · **Opcional** · **Predeterminado** todo el proyecto

Rutas o patrones glob que se van a analizar. Una ruta fuera del proyecto se analiza si aparece en la lista (`../shared`). Si una entrada no existe, se notifica mediante una advertencia.

Siempre se omiten, independientemente de lo que indique `include`: `node_modules`, la salida de compilación y del framework, y los archivos que ignora un `.gitignore`.

## `exclude` [#exclude]

**Tipo** `string[]` · **Opcional** · **Predeterminado** `DEFAULT_EXCLUDE`

Rutas o patrones glob que se deben omitir. Si lo defines, reemplaza el valor predeterminado, que omite las pruebas y los archivos de configuración de herramientas:

```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]

**Tipo** `number` · **Opcional** · **Predeterminado** `10`

Líneas de código fuente que se conservan por encima y por debajo de cada uso, como `before` y `after` de su [entrada de metadatos](/docs/integrations/paraglide/reference/metadata-files#format).

## `outdirs` [#outdirs]

**Tipo** `string[]` · **Opcional** · **Predeterminado** detectado

Directorios de salida de Paraglide JS que se usarán sin verificarlos. Si no se especifica esta opción, los directorios de salida se [detectan](/docs/integrations/paraglide/reference/usage-detection#outdirs) automáticamente. Configúrala cuando una advertencia indique que un directorio no se usó como directorio de salida.

## `inlangProjects` [#inlang-projects]

**Tipo** `string[]` · **Opcional** · **Predeterminado** detectado

Directorios de proyectos de inlang, como `project.inlang`. Cada archivo de mensajes de su configuración regional base obtiene un archivo de metadatos. Si se establece, sustituye a la [búsqueda del proyecto correspondiente a cada directorio de salida](/docs/integrations/paraglide/reference/usage-detection#inlang-projects).

## `autoImports` [#auto-imports]

**Tipo** `false | AutoImportOptions` · **Opcional** · **Predeterminado** detectado

Nombres que la aplicación usa sin importarlos. Cada clave es un nombre, y su valor es el módulo que lo exporta (relativo a la raíz del proyecto) o `{ from, export }` cuando se exporta con otro nombre.

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

Las importaciones automáticas de unplugin-auto-import, unplugin-vue-components y Nuxt se leen de sus archivos `.d.ts` generados sin necesidad de esta opción. Con `false` se desactivan tanto la detección como la opción.

## `alias` [#alias]

**Tipo** `AliasOption` · **Opcional** · **Predeterminado** —

Alias de importación, similares al `resolve.alias` de un empaquetador. Puede ser un objeto que asigna cada nombre a su reemplazo, o una lista de `{ find, replacement, exact? }`, donde `find` es una cadena o una `RegExp`. Se comprueban antes que los alias definidos en la configuración del empaquetador.

```ts
await collectContext({
  alias: [
    { find: '~', replacement: '/app/src' }, // ~ y ~/…
    { find: 'config', replacement: '/app/src/config.ts', exact: true }, // solo config (coincidencia exacta)
    { find: /^@ui\/(.*)$/, replacement: '/app/packages/ui/src/$1' },
  ],
});
```

(Consulta [Resolución de importaciones](/docs/integrations/paraglide/guides/resolving-imports)).

## `bundlerConfigs` [#bundler-configs]

**Tipo** `BundlerConfig[]` · **Opcional** · **Predeterminado** `defaultBundlerConfigs`

Configuraciones de empaquetador de las que se leen los alias de importación; por defecto, Vite, webpack y rspack. Solo se lee el primer archivo de configuración que se encuentre. Con `[]` no se lee ninguno. Para añadir uno, consulta [`BundlerConfig`](/docs/integrations/paraglide/reference/extension-api#bundler-configs).

## `rootDirectory` [#root-directory]

**Tipo** `string` · **Opcional** · **Predeterminado** la raíz de la configuración del empaquetador

El directorio a partir del cual se resuelven las rutas relativas a la raíz, como `/src/a.js`, de forma similar a `root` en Vite. Si hay una configuración de Vite, el valor se toma de ella. Si no la hay, las rutas relativas a la raíz se resuelven como rutas del sistema de archivos.

## `conditions` [#conditions]

**Tipo** `string[]` · **Opcional** · **Predeterminado** `["import", "module", "browser", "default"]`

Las condiciones que se usan para seleccionar una entrada de los campos `exports` e `imports` de un paquete.

## `targets` [#targets]

**Tipo** `ParaglideTarget[]` · **Opcional** · **Predeterminado** `defaultTargets`

Indica qué archivos resueltos pertenecen a Paraglide JS y qué representa cada una de sus exportaciones. (Consulta [Targets](/docs/integrations/paraglide/reference/extension-api#targets)).

## `languages` [#languages]

**Tipo** `SourceLanguage[]` · **Opcional** · **Predeterminado** `defaultLanguages`

Formatos de archivo que se analizan además de JavaScript, TypeScript y JSX. (Consulta [Formatos de archivo compatibles](/docs/integrations/paraglide/reference/file-formats) y [Añadir formatos de archivo](/docs/integrations/paraglide/guides/adding-file-formats)).

## `logger` [#logger]

**Tipo** `CollectorLogger` · **Opcional** · **Predeterminado**: advertencias en `console.warn`

Un objeto con `warn(message)` e `info(message)`. Las advertencias indican qué se ha omitido. `info` recibe el resumen y la configuración de la que se leyeron los alias; el logger predeterminado lo descarta.

```ts
await collectContext({ logger: console }); // advertencias y resumen
```

## Ejemplo [#example]

Recopila el contexto de una aplicación dentro de un monorepo, incluido un paquete compartido, antes de traducir:

```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.
