---
title: "Elige tu stack"
description: "Encuentra tu framework y copia el id de formato y el comando init que configuran verbatra para él, junto con la estructura habitual de archivos de locale."
type: "reference"
---
# Elige tu stack

Encuentra tu framework y copia el id de formato y el comando init que configuran verbatra para él, junto con la estructura habitual de archivos de locale.

Busca tu framework abajo y usa su comando `init` en lugar del de [Inicio rápido](https://verbatra.kreitz-webdev.de/es/docs/quickstart.md). Cada estructura de archivos es el patrón que escribe `init` cuando no encuentra archivos de locale; si tus archivos ya existen, `init` detecta dónde están, y con `--path` fijas tú el patrón. El comportamiento completo de cada formato está en [Formatos](https://verbatra.kreitz-webdev.de/es/docs/formats.md). Algunos stacks tienen además un inicio rápido paso a paso, enlazado al final de su sección.

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

## React con i18next [#react-con-i18next]

Para proyectos con i18next, react-i18next y next-i18next.

- Formato: `i18next-json`
- Archivos: `locales/{locale}.json`

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

Detalles: [Los cuatro formatos JSON](https://verbatra.kreitz-webdev.de/es/docs/formats.md#los-cuatro-formatos-json).

Paso a paso: [Inicio rápido con React](https://verbatra.kreitz-webdev.de/es/docs/quickstart/react.md).

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

Para archivos de mensajes de next-intl, cuyos valores son mensajes ICU.

- Formato: `next-intl-json`
- Archivos: `messages/{locale}.json`

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

Detalles: [Los cuatro formatos JSON](https://verbatra.kreitz-webdev.de/es/docs/formats.md#los-cuatro-formatos-json).

Paso a paso: [Inicio rápido con Next.js](https://verbatra.kreitz-webdev.de/es/docs/quickstart/nextjs.md).

## Vue y Nuxt con vue-i18n [#vue-y-nuxt-con-vue-i18n]

Para vue-i18n, también en Nuxt I18n, con marcadores de posición entre llaves simples y plurales separados por barra vertical.

- Formato: `vue-i18n-json`
- Archivos: `src/locales/{locale}.json`

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

Detalles: [Los cuatro formatos JSON](https://verbatra.kreitz-webdev.de/es/docs/formats.md#los-cuatro-formatos-json).

Paso a paso: [Inicio rápido con Vue](https://verbatra.kreitz-webdev.de/es/docs/quickstart/vue.md).

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

Para JSON de ngx-translate, plano o anidado.

- Formato: `ngx-translate-json`
- Archivos: `src/assets/i18n/{locale}.json`

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

Detalles: [Los cuatro formatos JSON](https://verbatra.kreitz-webdev.de/es/docs/formats.md#los-cuatro-formatos-json).

Paso a paso: [Inicio rápido con Angular](https://verbatra.kreitz-webdev.de/es/docs/quickstart/angular.md).

## Flutter [#flutter]

Para los Application Resource Bundles de Flutter. `init` también fija `localeStyle: "posix"`, así que `pt-BR` se escribe como `app_pt_BR.arb`, el nombre que lee `flutter gen-l10n`.

- Formato: `arb`
- Archivos: `lib/l10n/app_{locale}.arb`

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

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

Paso a paso: [Inicio rápido con Flutter](https://verbatra.kreitz-webdev.de/es/docs/quickstart/flutter.md).

## Android [#android]

Para recursos `strings.xml`. `init` también fija `localeStyle: "android"`, así que el token se expande a `values` para el origen y a `values-de` para el alemán.

- Formato: `android-xml`
- Archivos: `app/src/main/res/{locale}/strings.xml`

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

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

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

Dos formatos, según cómo guarde tu proyecto sus textos. Para archivos `.strings` con sus plurales en `.stringsdict`:

- Formato: `apple-strings`
- Archivos: `{locale}.lproj/Localizable.strings`

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

Para un Xcode String Catalog, un único archivo con todos los locales. Crea primero el catálogo en Xcode: verbatra escribe en él, pero nunca lo crea.

- Formato: `apple-xcstrings`
- Archivos: `{locale}Localizable.xcstrings`

El patrón necesita el token `{locale}`, pero en un String Catalog se expande a nada: cada locale lee y escribe el único archivo `Localizable.xcstrings`.

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

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

## gettext [#gettext]

Para catálogos `.po` y sus plantillas `.pot`, como los que usan los proyectos en Python, PHP y C. `init` también fija `localeStyle: "posix"`, así que `pt-BR` se escribe como `pt_BR`.

- Formato: `gettext-po`
- Archivos: `locales/{locale}/LC_MESSAGES/messages.po`

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

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

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

Para bundles de mensajes `.properties`. `init` también fija `localeStyle: "posix"`, así que `pt-BR` se escribe como `messages_pt_BR.properties`.

- Formato: `properties`
- Archivos: `src/main/resources/messages_{locale}.properties`

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

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

## .NET [#net]

Para archivos de recursos `.resx`. Las imágenes, los iconos y las entradas del diseñador no se tocan.

- Formato: `resx`
- Archivos: `Resources/Strings.{locale}.resx`

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

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

## YAML [#yaml]

Para archivos de locale YAML anidados con marcadores de posición al estilo de i18next, `{{double-brace}}`.

- Formato: `yaml`
- Archivos: `locales/{locale}.yml`

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

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

## XLIFF [#xliff]

Para documentos XLIFF 1.2 y 2.0 generados por `ng extract-i18n` de Angular, por una herramienta TAO o por una agencia.

- Formato: `xliff`
- Archivos: `locales/{locale}.xlf`

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

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

## INI [#ini]

Para archivos INI clásicos, con un nivel de encabezados `[section]`.

- Formato: `ini`
- Archivos: `locales/{locale}.ini`

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

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

## Otra cosa [#otra-cosa]

Un formato que verbatra no incluye se puede traducir igualmente con un adaptador que escribas tú. Consulta [Escribe un adaptador de formato propio](https://verbatra.kreitz-webdev.de/es/docs/custom-format-adapters.md).
