Lingo.dev + composants monofichiers Vue.js

La CLI Lingo.dev prend en charge les composants monofichiers Vue I18n, vous permettant de conserver les traductions à l'intérieur de vos fichiers .vue.

Remarque : si votre application Vue.js utilise des fichiers de locale JSON, utilisez le format .json pour le frontend.

Configuration rapide

Créez un fichier de configuration i18n.json à la racine de votre projet :

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

Cette configuration définit l'anglais comme langue source, cible l'espagnol, le français et l'allemand, et traite les fichiers .vue dans les répertoires src/components et src/views.

Trouver les langues prises en charge

Listez les langues source et cible disponibles :

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

Tout traduire

Exécutez la commande suivante pour traduire tous les composants Vue :

npx lingo.dev@latest run

La CLI analyse vos composants à la recherche de blocs <i18n>, traduit le contenu nouveau ou modifié, et met à jour les traductions sur place.

Fonctionnement avec les composants Vue

Lingo.dev fonctionne directement avec la structure i18n standard 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>

Après traduction, votre composant contiendra toutes les langues cibles :

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

Configuration avancée

Exclure des fichiers

Excluez des composants spécifiques de la traduction :

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

Traduction hybride

Combinez les traductions basées sur les composants et sur les fichiers :

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

Cette configuration conserve les traductions spécifiques aux composants au sein des composants et stocke les traductions globales dans des fichiers JSON séparés.

Pourquoi utiliser cette approche

  • Conserve les traductions avec les composants qui les utilisent
  • Pas besoin d'extraire les chaînes dans des fichiers séparés
  • L'IA comprend le contexte du composant pour de meilleures traductions
  • Ne traduit que ce qui a changé
  • Fonctionne avec les modèles recommandés de Vue I18n

Lingo.dev fournit des traductions pilotées par l'IA tout en maintenant l'architecture basée sur les composants de Vue.