meta.json

Qu'est-ce que le fichier meta.json ? Comment est-il utilisé ?

Introduction

meta.json est un fichier que le Compilateur Lingo.dev génère lors de la compilation. Il suit tout le contenu traduisible découvert dans une application React, servant d'inventaire qui relie l'analyse au moment de la compilation avec la traduction à l'exécution.

Remarque : Toutes les modifications apportées au fichier meta.json doivent être validées dans le dépôt.

Exemple de fichier

Voici un exemple d'un fichier meta.json (très minimaliste) :

{
  "version": 0.1,
  "files": {
    "components/hero.tsx": {
      "scopes": {
        "3/declaration/body/0/argument/1/1": {
          "type": "element",
          "hash": "a1b2c3d4e5f6...",
          "context": "",
          "skip": false,
          "overrides": {},
          "content": "Welcome to our app"
        }
      }
    }
  }
}

Pour comprendre la signification de toutes les propriétés, consultez Propriétés du schéma.

Emplacement du fichier

Par défaut, le fichier meta.json est généré dans un répertoire src/lingo, relatif à l'emplacement de la configuration du compilateur (par exemple, un fichier vite.config.ts).

Pour savoir comment personnaliser cet emplacement, consultez Options du compilateur.

Propriétés du schéma

Cette section décrit toutes les propriétés présentes dans un fichier meta.json.

version

Identifiant de version du schéma utilisé pour la vérification de compatibilité et les migrations futures.

  • Type : number
  • Obligatoire : Oui

files

Objet conteneur qui organise tous les scopes traduisibles par leurs chemins de fichiers source. Chaque clé représente un chemin relatif depuis la racine source (par exemple, "components/hero.tsx", "pages/home.jsx").

  • Type : object
  • Obligatoire : Oui

files[filePath].scopes

Conteneur pour tout le contenu traduisible découvert dans le fichier source spécifique. Chaque clé est un identifiant basé sur l'AST qui identifie de manière unique un élément de contenu traduisible dans le fichier.

  • Type : object
  • Obligatoire : Oui

files[filePath].scopes[astKey].type

Indique si le contenu traduisible provient du contenu d'un élément JSX ou de la valeur d'un attribut JSX.

  • Type : "element" | "attribute"
  • Obligatoire : Oui

files[filePath].scopes[astKey].hash

Hachage SHA-256 du contenu source utilisé pour la détection des modifications. Lorsque le contenu source change, ce hachage change également, indiquant qu'une retraduction peut être nécessaire.

  • Type: string
  • Obligatoire: Oui

files[filePath].scopes[astKey].context

Informations contextuelles pour aider les traducteurs à comprendre l'objectif ou l'emplacement du contenu.

  • Type: string
  • Obligatoire: Non

files[filePath].scopes[astKey].skip

Indicateur signalant si ce contenu doit être exclu de la traduction.

  • Type: boolean
  • Obligatoire: Oui

files[filePath].scopes[astKey].overrides

Substitutions de traduction spécifiques à la locale qui contournent le processus normal de traduction. Utile pour les noms de marque, les termes techniques ou les traductions personnalisées.

  • Type: object
  • Obligatoire: Oui

files[filePath].scopes[astKey].content

Le texte source réel qui nécessite une traduction, extrait de vos composants React.

  • Type: string
  • Obligatoire: Oui