---
title: "verbatra import"
description: "Importa una entrega rellenada (libro, CSV, TSV o XLIFF) de vuelta a los archivos de locale, ejecutando las mismas comprobaciones de seguridad."
type: "reference"
---
# verbatra import

Importa una entrega rellenada (libro, CSV, TSV o XLIFF) de vuelta a los archivos de locale, ejecutando las mismas comprobaciones de seguridad.

Lee una entrega que rellenó un traductor de vuelta a tus archivos de locale. Cada valor pasa por las mismas comprobaciones de integridad que una ejecución automática: los valores que las superan se escriben y [el archivo de bloqueo](https://verbatra.kreitz-webdev.de/es/docs/the-lock-file.md) se actualiza, y los que fallan se retienen y se informan, así que una celda rota nunca llega a un archivo de locale. Una ejecución real también añade las entradas que falten a un `.gitignore` existente, consulta [Entradas de .gitignore](https://verbatra.kreitz-webdev.de/es/docs/cli.md#entradas-de-gitignore).

## Sinopsis [#sinopsis]

```bash
verbatra import <workbook> [flags]
```

- `<workbook>`: la entrega que escribió [`verbatra export`](https://verbatra.kreitz-webdev.de/es/docs/cli/export.md) y rellenó el traductor. Para `xlsx` es el archivo del libro; para `csv`, `tsv`, `xliff2` y `xliff12` es un solo archivo `<locale>.csv`, `<locale>.tsv` o `<locale>.xlf`, o el directorio que contiene un archivo por locale.

## Ejemplos [#ejemplos]

```bash
# import the filled workbook
verbatra import verbatra-translations.xlsx

# validate and report, write nothing
verbatra import verbatra-translations.xlsx --dry-run

# import every locale file in a CSV handoff directory
verbatra import handoff --format csv

# import one XLIFF file back from a CAT tool, naming the reviewer
verbatra import handoff/de.xlf --reviewer "Agency GmbH"
```

## Flags [#flags]

| Flag | Argumento | Por defecto | Efecto |
| --- | --- | --- | --- |
| `--dry-run` | ninguno | desactivado | valida e informa sin escribir archivos de locale ni actualizar el bloqueo |
| `--format` | `<format>` | según la extensión de la ruta: `csv`, `tsv`, `xliff2` para `.xlf` o `.xliff`, si no `xlsx`; para un directorio, según el manifiesto de exportación o los archivos de locale que contiene | `xlsx`, `csv`, `tsv`, `xliff2` o `xliff12`; cualquiera de los dos formatos XLIFF lee ambas versiones |
| `--reviewer` | `<name>` | ninguno | nombre que se registra en cada unidad XLIFF marcada como revisada o final; como máximo 64 caracteres, guardado en el archivo de procedencia versionado |
| `--lock-timeout` | `<seconds>` | `600` | cuánto esperar a un bloqueo de escritura por locale ya tomado; un número entero de `1` a `3600`, si no es un error de uso, salida `2` |

También acepta los [flags globales](https://verbatra.kreitz-webdev.de/es/docs/cli.md#flags-globales) `--cwd`, `--config` y `--json`.

## Comportamiento [#comportamiento]

<Callout type="warn">
Cada valor rellenado que supera las comprobaciones sustituye el valor del archivo de locale, también uno que escribió una persona. Ejecuta primero `--dry-run` para ver qué cambiaría.
</Callout>

### Archivos de locale y restos [#archivos-de-locale-y-restos]

Con `csv` o `tsv` el locale sale del nombre del archivo, así que mantén cada archivo con el nombre exacto con el que se exportó. Un locale de destino configurado sin archivo (o, en un libro, sin hoja) falla con `WORKBOOK_SHEET_MISSING`; nunca se omite en silencio.

Un archivo que quedó de una exportación anterior con una selección de `--locales` más amplia nunca se aplica. El import compara el directorio con el manifiesto de la exportación más reciente y hace fallar ese locale con `HANDOFF_FILE_STALE`. Vuelve a exportar ese locale o borra el archivo. Un directorio sin manifiesto legible (montado a mano o recortado por un archivo comprimido) se lee tal cual, igual que un archivo suelto que nombras directamente.

### Bloqueos de escritura [#bloqueos-de-escritura]

<AvailableFrom version="0.12.0" />

`--lock-timeout` fija cuánto espera un locale a un [bloqueo de escritura](https://verbatra.kreitz-webdev.de/es/docs/the-lock-file.md#el-bloqueo-de-escritura) ocupado antes de fallar con `LOCK_CONTENDED`, igual que en [`verbatra translate`](https://verbatra.kreitz-webdev.de/es/docs/cli/translate.md). La espera ocurre antes de escribir el archivo del locale: un locale que agota el tiempo queda intacto mientras los demás se importan, y el comando sale con `1`. Una vez escrito un archivo, registrarlo en el archivo de bloqueo espera hasta los diez minutos por defecto, diga lo que diga `--lock-timeout`. Una espera de más de un segundo muestra una línea con el bloqueo y quién lo tiene (un registro `lock-wait` con `--json`). `--dry-run` no toma ningún bloqueo, así que nunca espera.

### XLIFF [#xliff]

<AvailableFrom version="0.12.0" />

Un archivo XLIFF se lee con la versión que declara, y un archivo suelto cuyo nombre no es un locale configurado se asigna por el idioma de destino que declara. Una unidad cuyo destino es igual al valor actual no cambia nada; cualquier otro destino pasa por la puerta de integridad como una fila del libro. Una unidad marcada como `reviewed` o `final` (en 1.2 también `signed-off` o `approved="yes"`) se registra como aprobada, con `--reviewer` como nombre, y se informa con el aviso `HANDOFF_REVIEWS_RECORDED`. Una unidad cuyo id no nombra ninguna clave de origen se informa como fila mal formada. Consulta [Entregar a una agencia de traducción](https://verbatra.kreitz-webdev.de/es/docs/translation-agency.md).

### Filas vacías y rotas [#filas-vacías-y-rotas]

Una celda `Translation` vacía nunca hace fallar un locale: la fila se omite, se conserva su línea base del bloqueo y la clave se informa como `unfilled` mientras siga necesitando traducción. Importar una entrega que nadie ha rellenado todavía tiene por tanto éxito y lista cada clave pendiente.

Una sola fila ilegible se informa como fila mal formada, y el resto del locale se importa igualmente. Una entrega demasiado grande o que no se puede analizar en absoluto (por ejemplo, que no es un contenedor xlsx legible) es un error `SOURCE_INVALID` de toda la ejecución cuyo mensaje dice qué le pasaba.

En una entrega CSV, TSV o xlsx, una fila rellenada igual al valor de una clave al día se deja intacta y se informa como sin cambios, no como traducida, una vez que pasa la puerta de integridad <AvailableFrom version="0.13.0" />. Consulta [Traducción manual](https://verbatra.kreitz-webdev.de/es/docs/manual-translation.md#qué-acepta-la-importación).

### Información en el terminal [#información-en-el-terminal]

<AvailableFrom version="0.12.0" />

`import` muestra una línea mientras lee y aplica el archivo. Tras un import limpio sugiere `verbatra check`, y tras `--dry-run` el mismo import sin el flag. Si un locale falla o queda parcial, sugiere el mismo import una vez corregidas las filas rechazadas o, cuando un locale falló con un error que tiene un siguiente paso, ese paso:

```text output
verbatra: importing verbatra-translations.xlsx... done (0.4s)
next: verbatra check (confirm every locale is in sync)
```

Estas líneas van a stderr, y `--quiet` las omite. Consulta [Salida en el terminal](https://verbatra.kreitz-webdev.de/es/docs/cli/output.md#salida-en-el-terminal).

### Salida JSON [#salida-json]

Esquema: [`import-envelope.json`](https://verbatra.kreitz-webdev.de/schema/v1/import-envelope.json) valida el envoltorio completo; [Esquemas](https://verbatra.kreitz-webdev.de/es/docs/cli/output.md#esquemas) enumera los demás.

Con `--json`, el [envoltorio](https://verbatra.kreitz-webdev.de/es/docs/cli/output.md#salida-json) lleva un `RunSummary`, la misma forma que imprime [`verbatra translate`](https://verbatra.kreitz-webdev.de/es/docs/cli/translate.md); [RunSummary](https://verbatra.kreitz-webdev.de/es/docs/sdk/run-summary.md) enumera cada campo.

## Códigos de salida [#códigos-de-salida]

| Código | Significado |
| --- | --- |
| `0` | cada locale de destino salió completo |
| `1` | la ejecución terminó, pero uno o más locales fallaron o quedaron parciales |
| `2` | no se pudo ejecutar: un error de toda la ejecución (configuración, entrega, formato o un archivo de bloqueo corrupto) o un error de uso |
| `130` | interrumpido con Ctrl-C (SIGINT) tras liberar los bloqueos de escritura de la ejecución |
| `143` | detenido con SIGTERM tras liberar los bloqueos de escritura de la ejecución |

<AvailableFrom version="0.9.0" />

El contrato coincide con el de [`verbatra translate`](https://verbatra.kreitz-webdev.de/es/docs/cli/translate.md), así que una entrega manual se bifurca igual en CI: un locale parcial sale con `1`, y un archivo de bloqueo corrupto, o que se corrompe durante el import, detiene toda la ejecución con `2` y deja intactos los locales restantes (los ya aplicados siguen escritos). El contrato que sigue cada comando está en [Códigos de salida](https://verbatra.kreitz-webdev.de/es/docs/cli/output.md#códigos-de-salida).

## Relacionado [#relacionado]

- [Traducción humana](https://verbatra.kreitz-webdev.de/es/docs/manual-translation.md) cubre el ciclo completo de exportar, rellenar e importar y qué puede editar un traductor.
- [Seguridad de la traducción](https://verbatra.kreitz-webdev.de/es/docs/translation-safety.md) explica las comprobaciones que pueden retener un valor.
- [Entregar a una agencia de traducción](https://verbatra.kreitz-webdev.de/es/docs/translation-agency.md) cubre el ciclo XLIFF a través de una herramienta TAO.
- [`verbatra export`](https://verbatra.kreitz-webdev.de/es/docs/cli/export.md) produce la entrega que este comando lee.
