---
title: "verbatra import"
description: "Réimporte une remise remplie (classeur, CSV, TSV ou XLIFF) dans les fichiers de locale, avec les mêmes vérifications de sûreté."
type: "reference"
---
# verbatra import

Réimporte une remise remplie (classeur, CSV, TSV ou XLIFF) dans les fichiers de locale, avec les mêmes vérifications de sûreté.

Relis une remise remplie par un traducteur dans tes fichiers de locale. Chaque valeur passe par les mêmes contrôles d'intégrité qu'une exécution automatisée : les valeurs qui passent sont écrites et [le fichier de verrouillage](https://verbatra.kreitz-webdev.de/fr/docs/the-lock-file.md) est mis à jour, celles qui échouent sont retenues et signalées, si bien qu'une cellule défectueuse n'atterrit jamais dans un fichier de locale. Une vraie exécution ajoute aussi les entrées manquantes à un `.gitignore` existant, voir [Entrées du .gitignore](https://verbatra.kreitz-webdev.de/fr/docs/cli.md#entrées-du-gitignore).

## Synopsis [#synopsis]

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

- `<workbook>` : la remise écrite par [`verbatra export`](https://verbatra.kreitz-webdev.de/fr/docs/cli/export.md) et remplie par le traducteur. Avec `xlsx`, c'est le fichier du classeur ; avec `csv`, `tsv`, `xliff2` et `xliff12`, un seul fichier `<locale>.csv`, `<locale>.tsv` ou `<locale>.xlf`, ou le répertoire qui en contient un par locale.

## Exemples [#exemples]

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

## Options [#options]

| Option | Argument | Défaut | Effet |
| --- | --- | --- | --- |
| `--dry-run` | aucun | désactivé | valide et rapporte sans écrire les fichiers de locale ni mettre à jour le verrou |
| `--format` | `<format>` | d'après l'extension du chemin : `csv`, `tsv`, `xliff2` pour `.xlf` ou `.xliff`, sinon `xlsx` ; pour un répertoire, d'après le manifeste d'export ou les fichiers de locale qu'il contient | `xlsx`, `csv`, `tsv`, `xliff2` ou `xliff12` ; chacun des deux formats XLIFF lit les deux versions |
| `--reviewer` | `<name>` | aucun | nom enregistré sur chaque unité XLIFF marquée relue ou finale ; au plus 64 caractères, stocké dans le fichier de provenance versionné |
| `--lock-timeout` | `<seconds>` | `600` | combien de temps attendre un verrou d'écriture de locale déjà détenu ; un entier de `1` à `3600`, sinon erreur d'utilisation, sortie `2` |

La commande accepte aussi les [options globales](https://verbatra.kreitz-webdev.de/fr/docs/cli.md#options-globales) `--cwd`, `--config` et `--json`.

## Comportement [#comportement]

<Callout type="warn">
Chaque valeur remplie qui passe les contrôles remplace la valeur du fichier de locale, y compris une valeur écrite par une personne. Lance d'abord `--dry-run` pour voir ce qui changerait.
</Callout>

### Fichiers de locale et reliquats [#fichiers-de-locale-et-reliquats]

Avec `csv` ou `tsv`, la locale vient du nom du fichier : garde donc chaque fichier nommé exactement comme à l'export. Une locale cible configurée sans fichier (ou, dans un classeur, sans feuille) échoue avec `WORKBOOK_SHEET_MISSING` ; elle n'est jamais ignorée en silence.

Un fichier resté d'un export précédent avec une sélection `--locales` plus large n'est jamais appliqué. L'import compare le répertoire au manifeste du dernier export et fait échouer une telle locale avec `HANDOFF_FILE_STALE`. Réexporte cette locale ou supprime le fichier. Un répertoire sans manifeste lisible (assemblé à la main ou amputé par une archive) est lu tel quel, tout comme un fichier isolé que tu nommes directement.

### Verrous d'écriture [#verrous-décriture]

<AvailableFrom version="0.12.0" />

`--lock-timeout` fixe combien de temps une locale attend un [verrou d'écriture](https://verbatra.kreitz-webdev.de/fr/docs/the-lock-file.md#le-verrou-décriture) occupé avant d'échouer avec `LOCK_CONTENDED`, exactement comme avec [`verbatra translate`](https://verbatra.kreitz-webdev.de/fr/docs/cli/translate.md). L'attente a lieu avant l'écriture du fichier de la locale : une locale qui dépasse le délai reste intacte pendant que les autres sont importées, et la commande sort avec `1`. Une fois un fichier écrit, son enregistrement dans le fichier de verrouillage attend jusqu'aux dix minutes par défaut, quoi que dise `--lock-timeout`. Une attente de plus d'une seconde affiche une ligne nommant le verrou et son détenteur (un enregistrement `lock-wait` avec `--json`). `--dry-run` ne prend aucun verrou, donc n'attend jamais.

### XLIFF [#xliff]

<AvailableFrom version="0.12.0" />

Un fichier XLIFF est lu dans la version qu'il déclare, et un fichier isolé dont le nom n'est pas une locale configurée est rattaché par la langue cible qu'il déclare. Une unité dont la cible est égale à la valeur actuelle ne change rien ; toute autre cible passe le contrôle d'intégrité comme une ligne de classeur. Une unité marquée `reviewed` ou `final` (en 1.2 aussi `signed-off` ou `approved="yes"`) est enregistrée comme approuvée, avec `--reviewer` comme nom, et signalée par l'avis `HANDOFF_REVIEWS_RECORDED`. Une unité dont l'id ne nomme aucune clé source est signalée comme ligne malformée. Consulte [Confier à une agence de traduction](https://verbatra.kreitz-webdev.de/fr/docs/translation-agency.md).

### Lignes vides et défectueuses [#lignes-vides-et-défectueuses]

Une cellule `Translation` vide ne fait jamais échouer une locale : la ligne est ignorée, sa base du verrou est conservée, et la clé est signalée comme `unfilled` tant qu'elle a encore besoin d'une traduction. Importer une remise que personne n'a encore remplie réussit donc et liste chaque clé en attente.

Une seule ligne illisible est signalée comme ligne malformée, et le reste de la locale est quand même importé. Une remise trop volumineuse ou impossible à analyser (par exemple, pas un conteneur xlsx lisible) est une erreur `SOURCE_INVALID` de toute l'exécution, dont le message dit ce qui n'allait pas.

Dans un fichier CSV, TSV ou xlsx, une ligne remplie égale à la valeur d'une clé à jour est laissée telle quelle et signalée comme inchangée, non traduite, une fois qu'elle passe la barrière d'intégrité <AvailableFrom version="0.13.0" />. Voir [Traduction manuelle](https://verbatra.kreitz-webdev.de/fr/docs/manual-translation.md#ce-que-limport-accepte).

### Retour dans le terminal [#retour-dans-le-terminal]

<AvailableFrom version="0.12.0" />

`import` affiche une ligne pendant qu'il lit et applique le fichier. Après un import propre, il suggère `verbatra check`, et après `--dry-run` le même import sans l'option. Si une locale échoue ou reste partielle, il suggère le même import une fois les lignes refusées corrigées ou, quand une locale a échoué avec une erreur qui a une prochaine étape, cette étape :

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

Ces lignes vont sur stderr, et `--quiet` les supprime. Consulte [Sortie dans le terminal](https://verbatra.kreitz-webdev.de/fr/docs/cli/output.md#sortie-dans-le-terminal).

### Sortie JSON [#sortie-json]

Schéma : [`import-envelope.json`](https://verbatra.kreitz-webdev.de/schema/v1/import-envelope.json) valide l'enveloppe entière ; [Schémas](https://verbatra.kreitz-webdev.de/fr/docs/cli/output.md#schémas) liste les autres.

Avec `--json`, l'[enveloppe](https://verbatra.kreitz-webdev.de/fr/docs/cli/output.md#sortie-json) porte un `RunSummary`, la même forme que celle qu'affiche [`verbatra translate`](https://verbatra.kreitz-webdev.de/fr/docs/cli/translate.md) ; [RunSummary](https://verbatra.kreitz-webdev.de/fr/docs/sdk/run-summary.md) liste chaque champ.

## Codes de sortie [#codes-de-sortie]

| Code | Signification |
| --- | --- |
| `0` | chaque locale cible est sortie complète |
| `1` | l'exécution s'est terminée, mais une ou plusieurs locales ont échoué ou sont restées partielles |
| `2` | impossible de s'exécuter : une erreur globale (configuration, remise, format ou fichier de verrouillage corrompu) ou une erreur d'utilisation |
| `130` | interrompu avec Ctrl-C (SIGINT) après libération des verrous d'écriture de l'exécution |
| `143` | arrêté avec SIGTERM après libération des verrous d'écriture de l'exécution |

<AvailableFrom version="0.9.0" />

Le contrat est celui de [`verbatra translate`](https://verbatra.kreitz-webdev.de/fr/docs/cli/translate.md), donc une remise manuelle se branche de la même façon en CI : une locale partielle sort avec `1`, et un fichier de verrouillage corrompu, ou qui se corrompt pendant l'import, arrête toute l'exécution avec `2` en laissant les locales restantes intactes (celles déjà appliquées restent écrites). Le contrat que suit chaque commande est décrit dans [Codes de sortie](https://verbatra.kreitz-webdev.de/fr/docs/cli/output.md#codes-de-sortie).

## Voir aussi [#voir-aussi]

- [Traduction humaine](https://verbatra.kreitz-webdev.de/fr/docs/manual-translation.md) couvre l'aller-retour complet export, remplissage, import et ce qu'un traducteur peut modifier.
- [Sûreté de la traduction](https://verbatra.kreitz-webdev.de/fr/docs/translation-safety.md) explique les vérifications qui peuvent retenir une valeur.
- [Confier à une agence de traduction](https://verbatra.kreitz-webdev.de/fr/docs/translation-agency.md) couvre l'aller-retour XLIFF via un outil de TAO.
- [`verbatra export`](https://verbatra.kreitz-webdev.de/fr/docs/cli/export.md) produit la remise que cette commande lit.
