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