---
title: "Wähle deinen Stack"
description: "Finde dein Framework und kopiere die Format-ID und den init-Befehl, mit denen du verbatra dafür einrichtest, samt dem üblichen Layout der Locale-Dateien."
type: "reference"
---
# Wähle deinen Stack

Finde dein Framework und kopiere die Format-ID und den init-Befehl, mit denen du verbatra dafür einrichtest, samt dem üblichen Layout der Locale-Dateien.

Such dir unten dein Framework heraus und nimm seinen `init`-Befehl statt des Befehls aus dem [Schnellstart](https://verbatra.kreitz-webdev.de/de/docs/quickstart.md). Jedes Dateilayout ist das Muster, das `init` schreibt, wenn es keine Locale-Dateien findet; gibt es deine Dateien schon, erkennt `init`, wo sie liegen, und mit `--path` legst du das Muster selbst fest. Das vollständige Verhalten jedes Formats steht unter [Formate](https://verbatra.kreitz-webdev.de/de/docs/formats.md). Für manche Stacks gibt es außerdem einen Schnellstart Schritt für Schritt, verlinkt am Ende ihres Abschnitts.

<StackCards
  labelledBy="page-title"
  cards={[
    { label: "React", icon: "web", mark: "react", formats: ["i18next-json"], href: "#react-mit-i18next" },
    { label: "Next.js", icon: "web", mark: "deviconNextjs", formats: ["next-intl-json"], href: "#nextjs-mit-next-intl" },
    { label: "Vue und Nuxt", icon: "web", mark: "fontawesomeVuejs", formats: ["vue-i18n-json"], href: "#vue-und-nuxt-mit-vue-i18n" },
    { label: "Angular", icon: "web", mark: "angular", formats: ["ngx-translate-json"], href: "#angular-mit-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 und macOS", icon: "mobile", mark: "fontawesomeApple", formats: ["apple-strings", "apple-xcstrings"], href: "#ios-und-macos" },
    { label: "gettext", icon: "po", formats: ["gettext-po"], href: "#gettext" },
    { label: "Java und Spring", icon: "server", mark: "deviconSpring", formats: ["properties"], href: "#java-und-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: "Etwas anderes", icon: "custom", formats: [], href: "#etwas-anderes" },
  ]}
/>

## React mit i18next [#react-mit-i18next]

Für Projekte mit i18next, react-i18next und next-i18next.

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

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

Details: [Die vier JSON-Formate](https://verbatra.kreitz-webdev.de/de/docs/formats.md#die-vier-json-formate).

Schritt für Schritt: [Schnellstart mit React](https://verbatra.kreitz-webdev.de/de/docs/quickstart/react.md).

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

Für Nachrichtendateien von next-intl, deren Werte ICU-Nachrichten sind.

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

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

Details: [Die vier JSON-Formate](https://verbatra.kreitz-webdev.de/de/docs/formats.md#die-vier-json-formate).

Schritt für Schritt: [Schnellstart mit Next.js](https://verbatra.kreitz-webdev.de/de/docs/quickstart/nextjs.md).

## Vue und Nuxt mit vue-i18n [#vue-und-nuxt-mit-vue-i18n]

Für vue-i18n, auch in Nuxt I18n, mit Platzhaltern in einfachen geschweiften Klammern und Pluralformen mit senkrechtem Strich.

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

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

Details: [Die vier JSON-Formate](https://verbatra.kreitz-webdev.de/de/docs/formats.md#die-vier-json-formate).

Schritt für Schritt: [Schnellstart mit Vue](https://verbatra.kreitz-webdev.de/de/docs/quickstart/vue.md).

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

Für ngx-translate-JSON, flach oder verschachtelt.

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

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

Details: [Die vier JSON-Formate](https://verbatra.kreitz-webdev.de/de/docs/formats.md#die-vier-json-formate).

Schritt für Schritt: [Schnellstart mit Angular](https://verbatra.kreitz-webdev.de/de/docs/quickstart/angular.md).

## Flutter [#flutter]

Für die Application Resource Bundles von Flutter. `init` setzt außerdem `localeStyle: "posix"`, damit `pt-BR` als `app_pt_BR.arb` geschrieben wird, der Name, den `flutter gen-l10n` liest.

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

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

Details: [ARB](https://verbatra.kreitz-webdev.de/de/docs/formats.md#arb).

Schritt für Schritt: [Schnellstart mit Flutter](https://verbatra.kreitz-webdev.de/de/docs/quickstart/flutter.md).

## Android [#android]

Für `strings.xml`-Ressourcen. `init` setzt außerdem `localeStyle: "android"`, damit das Token für die Quelle zu `values` und für Deutsch zu `values-de` wird.

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

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

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

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

Zwei Formate, je nachdem, wie dein Projekt seine Texte speichert. Für `.strings`-Dateien mit ihren `.stringsdict`-Pluralformen:

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

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

Für einen Xcode String Catalog, eine einzige Datei für alle Locales. Leg den Katalog zuerst in Xcode an: verbatra schreibt hinein, legt ihn aber nie selbst an.

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

Das Muster braucht das Token `{locale}`, aber bei einem String Catalog wird es zu nichts: Jede Locale liest und schreibt die eine Datei `Localizable.xcstrings`.

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

Details: [Apple .strings](https://verbatra.kreitz-webdev.de/de/docs/formats.md#apple-strings) und [Xcode String Catalogs](https://verbatra.kreitz-webdev.de/de/docs/formats.md#xcode-string-catalogs-xcstrings).

## gettext [#gettext]

Für `.po`-Kataloge und ihre `.pot`-Vorlagen, wie sie Python-, PHP- und C-Projekte nutzen. `init` setzt außerdem `localeStyle: "posix"`, damit `pt-BR` als `pt_BR` geschrieben wird.

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

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

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

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

Für `.properties`-Message-Bundles. `init` setzt außerdem `localeStyle: "posix"`, damit `pt-BR` als `messages_pt_BR.properties` geschrieben wird.

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

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

Details: [Properties](https://verbatra.kreitz-webdev.de/de/docs/formats.md#properties).

## .NET [#net]

Für `.resx`-Ressourcendateien. Bilder, Icons und Designer-Einträge bleiben unberührt.

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

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

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

## YAML [#yaml]

Für verschachtelte YAML-Locale-Dateien mit Platzhaltern im i18next-Stil, `{{double-brace}}`.

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

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

Details: [YAML](https://verbatra.kreitz-webdev.de/de/docs/formats.md#yaml).

## XLIFF [#xliff]

Für XLIFF-1.2- und -2.0-Dokumente aus Angulars `ng extract-i18n`, einem CAT-Tool oder von einer Agentur.

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

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

Details: [XLIFF](https://verbatra.kreitz-webdev.de/de/docs/formats.md#xliff).

## INI [#ini]

Für klassische INI-Dateien mit einer Ebene von `[section]`-Überschriften.

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

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

Details: [INI](https://verbatra.kreitz-webdev.de/de/docs/formats.md#ini).

## Etwas anderes [#etwas-anderes]

Ein Format, das verbatra nicht mitbringt, kannst du trotzdem übersetzen, über einen Adapter, den du selbst schreibst. Siehe [Einen eigenen Format-Adapter schreiben](https://verbatra.kreitz-webdev.de/de/docs/custom-format-adapters.md).
