---
title: "Choisis ta stack"
description: "Trouve ton framework et copie l'id de format et la commande init qui configurent verbatra pour lui, avec l'organisation habituelle des fichiers de locale."
type: "reference"
---
# Choisis ta stack

Trouve ton framework et copie l'id de format et la commande init qui configurent verbatra pour lui, avec l'organisation habituelle des fichiers de locale.

Trouve ton framework ci-dessous et utilise sa commande `init` à la place de celle du [Démarrage rapide](https://verbatra.kreitz-webdev.de/fr/docs/quickstart.md). Chaque organisation de fichiers est le motif qu'écrit `init` quand il ne trouve aucun fichier de locale ; si tes fichiers existent déjà, `init` détecte où ils se trouvent, et `--path` te permet de fixer le motif toi-même. Le comportement complet de chaque format est sur [Formats](https://verbatra.kreitz-webdev.de/fr/docs/formats.md). Certaines stacks ont aussi un démarrage rapide pas à pas, lié à la fin de leur section.

<StackCards
  labelledBy="page-title"
  cards={[
    { label: "React", icon: "web", mark: "react", formats: ["i18next-json"], href: "#react-avec-i18next" },
    { label: "Next.js", icon: "web", mark: "deviconNextjs", formats: ["next-intl-json"], href: "#nextjs-avec-next-intl" },
    { label: "Vue et Nuxt", icon: "web", mark: "fontawesomeVuejs", formats: ["vue-i18n-json"], href: "#vue-et-nuxt-avec-vue-i18n" },
    { label: "Angular", icon: "web", mark: "angular", formats: ["ngx-translate-json"], href: "#angular-avec-ngx-translate" },
    { label: "Flutter", icon: "mobile", mark: "fontawesomeFlutter", formats: ["arb"], href: "#flutter" },
    { label: "Android", icon: "mobile", mark: "android", formats: ["android-xml"], href: "#android" },
    { label: "iOS et macOS", icon: "mobile", mark: "fontawesomeApple", formats: ["apple-strings", "apple-xcstrings"], href: "#ios-et-macos" },
    { label: "gettext", icon: "po", formats: ["gettext-po"], href: "#gettext" },
    { label: "Java et Spring", icon: "server", mark: "deviconSpring", formats: ["properties"], href: "#java-et-spring" },
    { label: ".NET", icon: "server", mark: "dotnet", formats: ["resx"], href: "#net" },
    { label: "YAML", icon: "yaml", formats: ["yaml"], href: "#yaml" },
    { label: "XLIFF", icon: "xliff", formats: ["xliff"], href: "#xliff" },
    { label: "INI", icon: "ini", formats: ["ini"], href: "#ini" },
    { label: "Autre chose", icon: "custom", formats: [], href: "#autre-chose" },
  ]}
/>

## React avec i18next [#react-avec-i18next]

Pour les projets i18next, react-i18next et next-i18next.

- Format: `i18next-json`
- Fichiers: `locales/{locale}.json`

```bash
npx @verbatra/cli init --format i18next-json --provider gemini --yes
```

Détails: [Les quatre formats JSON](https://verbatra.kreitz-webdev.de/fr/docs/formats.md#les-quatre-formats-json).

Pas à pas: [Démarrage rapide avec React](https://verbatra.kreitz-webdev.de/fr/docs/quickstart/react.md).

## Next.js avec next-intl [#nextjs-avec-next-intl]

Pour les fichiers de messages next-intl, dont les valeurs sont des messages ICU.

- Format: `next-intl-json`
- Fichiers: `messages/{locale}.json`

```bash
npx @verbatra/cli init --format next-intl-json --provider gemini --yes
```

Détails: [Les quatre formats JSON](https://verbatra.kreitz-webdev.de/fr/docs/formats.md#les-quatre-formats-json).

Pas à pas: [Démarrage rapide avec Next.js](https://verbatra.kreitz-webdev.de/fr/docs/quickstart/nextjs.md).

## Vue et Nuxt avec vue-i18n [#vue-et-nuxt-avec-vue-i18n]

Pour vue-i18n, y compris Nuxt I18n, avec des placeholders entre accolades simples et des pluriels séparés par une barre verticale.

- Format: `vue-i18n-json`
- Fichiers: `src/locales/{locale}.json`

```bash
npx @verbatra/cli init --format vue-i18n-json --provider gemini --yes
```

Détails: [Les quatre formats JSON](https://verbatra.kreitz-webdev.de/fr/docs/formats.md#les-quatre-formats-json).

Pas à pas: [Démarrage rapide avec Vue](https://verbatra.kreitz-webdev.de/fr/docs/quickstart/vue.md).

## Angular avec ngx-translate [#angular-avec-ngx-translate]

Pour le JSON de ngx-translate, plat ou imbriqué.

- Format: `ngx-translate-json`
- Fichiers: `src/assets/i18n/{locale}.json`

```bash
npx @verbatra/cli init --format ngx-translate-json --provider gemini --yes
```

Détails: [Les quatre formats JSON](https://verbatra.kreitz-webdev.de/fr/docs/formats.md#les-quatre-formats-json).

Pas à pas: [Démarrage rapide avec Angular](https://verbatra.kreitz-webdev.de/fr/docs/quickstart/angular.md).

## Flutter [#flutter]

Pour les Application Resource Bundles de Flutter. `init` règle aussi `localeStyle: "posix"`, si bien que `pt-BR` s'écrit `app_pt_BR.arb`, le nom que lit `flutter gen-l10n`.

- Format: `arb`
- Fichiers: `lib/l10n/app_{locale}.arb`

```bash
npx @verbatra/cli init --format arb --provider gemini --yes
```

Détails: [ARB](https://verbatra.kreitz-webdev.de/fr/docs/formats.md#arb).

Pas à pas: [Démarrage rapide avec Flutter](https://verbatra.kreitz-webdev.de/fr/docs/quickstart/flutter.md).

## Android [#android]

Pour les ressources `strings.xml`. `init` règle aussi `localeStyle: "android"`, si bien que le jeton devient `values` pour la source et `values-de` pour l'allemand.

- Format: `android-xml`
- Fichiers: `app/src/main/res/{locale}/strings.xml`

```bash
npx @verbatra/cli init --format android-xml --provider gemini --yes
```

Détails: [Android strings.xml](https://verbatra.kreitz-webdev.de/fr/docs/formats.md#android-stringsxml).

## iOS et macOS [#ios-et-macos]

Deux formats, selon la façon dont ton projet stocke ses textes. Pour les fichiers `.strings` avec leurs pluriels `.stringsdict` :

- Format: `apple-strings`
- Fichiers: `{locale}.lproj/Localizable.strings`

```bash
npx @verbatra/cli init --format apple-strings --provider gemini --yes
```

Pour un Xcode String Catalog, un seul fichier qui contient toutes les locales. Crée d'abord le catalogue dans Xcode : verbatra écrit dedans mais ne le crée jamais.

- Format: `apple-xcstrings`
- Fichiers: `{locale}Localizable.xcstrings`

Le motif a besoin du jeton `{locale}`, mais pour un String Catalog il ne donne rien : chaque locale lit et écrit l'unique fichier `Localizable.xcstrings`.

```bash
npx @verbatra/cli init --format apple-xcstrings --provider gemini --yes
```

Détails: [Apple .strings](https://verbatra.kreitz-webdev.de/fr/docs/formats.md#apple-strings) et [Xcode String Catalogs](https://verbatra.kreitz-webdev.de/fr/docs/formats.md#xcode-string-catalogs-xcstrings).

## gettext [#gettext]

Pour les catalogues `.po` et leurs modèles `.pot`, comme dans les projets Python, PHP et C. `init` règle aussi `localeStyle: "posix"`, si bien que `pt-BR` s'écrit `pt_BR`.

- Format: `gettext-po`
- Fichiers: `locales/{locale}/LC_MESSAGES/messages.po`

```bash
npx @verbatra/cli init --format gettext-po --provider gemini --yes
```

Détails: [gettext .po/.pot](https://verbatra.kreitz-webdev.de/fr/docs/formats.md#gettext-popot).

## Java et Spring [#java-et-spring]

Pour les bundles de messages `.properties`. `init` règle aussi `localeStyle: "posix"`, si bien que `pt-BR` s'écrit `messages_pt_BR.properties`.

- Format: `properties`
- Fichiers: `src/main/resources/messages_{locale}.properties`

```bash
npx @verbatra/cli init --format properties --provider gemini --yes
```

Détails: [Properties](https://verbatra.kreitz-webdev.de/fr/docs/formats.md#properties).

## .NET [#net]

Pour les fichiers de ressources `.resx`. Les images, les icônes et les entrées du concepteur restent intactes.

- Format: `resx`
- Fichiers: `Resources/Strings.{locale}.resx`

```bash
npx @verbatra/cli init --format resx --provider gemini --yes
```

Détails: [.NET .resx](https://verbatra.kreitz-webdev.de/fr/docs/formats.md#net-resx).

## YAML [#yaml]

Pour les fichiers de locale YAML imbriqués avec des placeholders à la manière d'i18next, `{{double-brace}}`.

- Format: `yaml`
- Fichiers: `locales/{locale}.yml`

```bash
npx @verbatra/cli init --format yaml --provider gemini --yes
```

Détails: [YAML](https://verbatra.kreitz-webdev.de/fr/docs/formats.md#yaml).

## XLIFF [#xliff]

Pour les documents XLIFF 1.2 et 2.0 produits par `ng extract-i18n` d'Angular, un outil de TAO ou une agence.

- Format: `xliff`
- Fichiers: `locales/{locale}.xlf`

```bash
npx @verbatra/cli init --format xliff --provider gemini --yes
```

Détails: [XLIFF](https://verbatra.kreitz-webdev.de/fr/docs/formats.md#xliff).

## INI [#ini]

Pour les fichiers INI classiques, avec un seul niveau d'en-têtes `[section]`.

- Format: `ini`
- Fichiers: `locales/{locale}.ini`

```bash
npx @verbatra/cli init --format ini --provider gemini --yes
```

Détails: [INI](https://verbatra.kreitz-webdev.de/fr/docs/formats.md#ini).

## Autre chose [#autre-chose]

Un format que verbatra ne fournit pas peut quand même être traduit grâce à un adaptateur que tu écris toi-même. Voir [Écrire un adaptateur de format personnalisé](https://verbatra.kreitz-webdev.de/fr/docs/custom-format-adapters.md).
