Lingo.dev + Componentes de archivo único de Vue.js

La CLI de Lingo.dev es compatible con componentes de archivo único de Vue I18n, lo que te permite mantener las traducciones dentro de tus archivos .vue.

Nota: Si tu aplicación Vue.js utiliza archivos de localización JSON, utiliza el formato .json para frontend.

Configuración rápida

Crea un archivo de configuración i18n.json en la raíz de tu proyecto:

{
  "version": 1,
  "locale": {
    "source": "en",
    "targets": ["es", "fr", "de"]
  },
  "buckets": {
    "vue-json": {
      "include": ["src/**/*.vue"]
    }
  }
}

Esta configuración establece el inglés como idioma fuente, tiene como objetivos el español, francés y alemán, y procesa todos los archivos .vue en el directorio src.

Encontrar idiomas compatibles

Lista de idiomas fuente y objetivo disponibles:

npx lingo.dev@latest show locale sources
npx lingo.dev@latest show locale targets

Traducir todo

Ejecuta el siguiente comando para traducir todos los componentes Vue:

npx lingo.dev@latest i18n

La CLI escanea tus componentes en busca de bloques <i18n>, traduce el contenido nuevo o modificado y actualiza las traducciones in situ.

Cómo funciona con componentes Vue

Lingo.dev trabaja directamente con la estructura estándar de i18n de Vue:

<template>
  <div>
    <h1>{{ $t("welcome") }}</h1>
    <p>{{ $t("description") }}</p>
  </div>
</template>

<i18n>
{
  "en": {
    "welcome": "Welcome",
    "description": "This is a Vue component"
  }
}
</i18n>

Después de la traducción, tu componente contendrá todos los idiomas objetivo:

<i18n>
{
  "en": {
    "welcome": "Welcome",
    "description": "This is a Vue component"
  },
  "es": {
    "welcome": "Bienvenido",
    "description": "Este es un componente Vue"
  },
  "fr": {
    "welcome": "Bienvenue",
    "description": "Ceci est un composant Vue"
  }
}
</i18n>

Configuración avanzada

Excluir archivos

Excluye componentes específicos de la traducción:

"vue-json": {
  "include": ["src/**/*.vue"],
  "exclude": ["src/components/NoTranslate.vue"]
}

Traducción híbrida

Combina traducciones basadas en componentes y basadas en archivos:

"buckets": {
  "vue-json": {
    "include": ["src/**/*.vue"]
  },
  "json": {
    "include": ["src/locales/[locale].json"]
  }
}

Esta configuración mantiene las traducciones específicas de los componentes dentro de los componentes y almacena las traducciones globales en archivos JSON separados.

Por qué usar este enfoque

  • Mantiene las traducciones con los componentes que las utilizan
  • No es necesario extraer cadenas a archivos separados
  • La IA comprende el contexto del componente para mejores traducciones
  • Solo traduce lo que ha cambiado
  • Funciona con los patrones recomendados de Vue I18n

Lingo.dev proporciona traducciones impulsadas por IA mientras mantiene la arquitectura basada en componentes de Vue.