Ignorer des clés
La CLI Lingo.dev vous permet d'ignorer des clés de traduction spécifiques afin qu'elles soient complètement exclues du traitement de traduction. Les clés ignorées ne sont pas copiées dans les fichiers cibles et restent intactes lors des opérations CLI.
Lorsque vous ignorez des clés, la CLI les ignore entièrement lors de la découverte de contenu et de la génération de traduction.
Configuration de l'ignorance de clés
Ajoutez ignoredKeys à la configuration de votre bucket dans i18n.json :
{
"locale": {
"source": "en",
"targets": ["es", "fr", "de"]
},
"buckets": {
"json": {
"include": ["locales/[locale].json"],
"ignoredKeys": ["internal/debug", "dev/settings", "temp/cache"]
}
}
}
Le tableau ignoredKeys utilise la notation barre oblique (/) pour spécifier les clés imbriquées et l'astérisque (*) pour correspondre à plusieurs clés.
Fonctionnement de l'ignorance de clés
Lors du traitement de traduction, la CLI Lingo.dev :
- Identifie les clés ignorées à partir de votre configuration
- Les exclut de la découverte de contenu — les clés ignorées ne sont jamais traitées
- Les ignore dans les fichiers cibles — les clés ignorées n'apparaissent pas dans les traductions générées
- Maintient la séparation entre le contenu de développement et de production
Exemple de flux de travail :
// locales/en.json (source)
{
"welcome": "Welcome to our platform",
"system": {
"component": "Lingo.dev CLI",
"version": "1.0.0"
},
"internal": {
"debug": "Debug mode enabled",
"testData": "Sample test content"
}
}
Avec la configuration des clés ignorées :
{
"ignoredKeys": ["internal/debug", "internal/testData"]
}
Traduction espagnole générée :
// locales/es.json (generated)
{
"welcome": "Bienvenido a nuestra plataforma",
"system": {
"component": "Lingo.dev CLI",
"version": "1.0.0"
}
}
Seules les clés non ignorées sont traduites. La section entière internal est exclue des fichiers cibles.
Chemins de clés imbriquées
Utilisez la notation barre oblique (/) pour ignorer des clés à n'importe quelle profondeur :
{
"ignoredKeys": [
"development/logging/level",
"testing/mock/data",
"admin/internal/config"
]
}
Cette notation fonctionne avec des structures imbriquées complexes :
// Source structure
{
"development": {
"logging": {
"level": "verbose"
}
}
}
Le chemin development/logging/level exclut cette configuration de la traduction.
Clés avec des points
La notation barre oblique gère les clés qui contiennent des points dans leurs noms :
// Source with dotted key names
{
"dev": {
"api.mock": "Mock API enabled",
"cache.clear": "Clear cache on startup"
}
}
Ignorez ces clés avec :
{
"ignoredKeys": ["dev/api.mock", "dev/cache.clear"]
}
Plusieurs types de buckets
Différents formats de fichiers peuvent avoir différentes clés ignorées :
{
"buckets": {
"json": {
"include": ["locales/[locale].json"],
"ignoredKeys": ["internal/debug", "dev/settings"]
},
"yaml": {
"include": ["translations/[locale].yml"],
"ignoredKeys": ["test/data", "admin/config"]
}
}
}
Chaque type de bucket maintient sa propre liste de clés ignorées en fonction de la structure du contenu.
Ignorer les clés vs verrouiller les clés
Ignorer les clés et verrouiller les clés servent des objectifs différents :
Ignorer les clés (ignoredKeys) :
- Les clés sont complètement exclues du traitement de traduction
- Les clés ignorées n'apparaissent pas du tout dans les fichiers cibles
- Utilisé pour le développement, les tests ou le contenu interne qui ne doit pas être traduit
Verrouiller les clés (lockedKeys) :
- Les clés sont incluses dans le traitement de traduction mais les valeurs restent inchangées
- Les clés verrouillées apparaissent dans les fichiers cibles avec des valeurs sources identiques
- Utilisé pour les identifiants techniques, les noms de composants ou les valeurs qui doivent rester cohérentes
Exemple de comparaison :
// Source file
{
"welcome": "Welcome",
"system": {
"component": "Lingo.dev Engine"
},
"internal": {
"debug": "Debug enabled"
}
}
// Configuration
{
"lockedKeys": ["system/component"],
"ignoredKeys": ["internal/debug"]
}
// Generated target file
{
"welcome": "Bienvenido",
"system": {
"component": "Lingo.dev Engine"
}
// internal/debug is completely missing
}