Verrouillage de clés
Lingo.dev CLI vous permet de verrouiller des clés de traduction spécifiques afin que leurs valeurs restent identiques dans toutes les langues. Lorsque vous verrouillez des clés, le CLI les exclut du traitement de traduction et copie directement les valeurs sources dans tous les fichiers cibles.
Configuration du verrouillage de clés
Ajoutez lockedKeys
à la configuration de votre bucket dans i18n.json
:
{
"locale": {
"source": "en",
"targets": ["es", "fr", "de"]
},
"buckets": {
"json": {
"include": ["locales/[locale].json"],
"lockedKeys": ["system/component", "config/engine", "modules/processor"]
}
}
}
Le tableau lockedKeys
utilise la notation avec barre oblique (/
) pour spécifier les clés imbriquées.
Fonctionnement du verrouillage de clés
Pendant le traitement de traduction, Lingo.dev CLI :
- Identifie les clés verrouillées à partir de votre configuration
- Les exclut de la traduction — le contenu verrouillé n'est jamais envoyé aux modèles d'IA
- Copie les valeurs sources directement dans tous les fichiers cibles
- Maintient la cohérence dans toutes les langues
Exemple de flux de travail :
// locales/en.json (source)
{
"welcome": "Welcome to our platform",
"system": {
"component": "Lingo.dev CLI",
"processor": "Translation Engine"
},
"config": {
"engine": "Lingo.dev Engine"
}
}
Avec la configuration des clés verrouillées :
{
"lockedKeys": ["system/component", "system/processor", "config/engine"]
}
Traduction espagnole générée :
// locales/es.json (générée)
{
"welcome": "Bienvenido a nuestra plataforma",
"system": {
"component": "Lingo.dev CLI",
"processor": "Translation Engine"
},
"config": {
"engine": "Lingo.dev Engine"
}
}
Seul welcome
est traduit, tandis que les clés verrouillées restent identiques à la source.
Sans verrouillage de clés, "Lingo.dev Engine" pourrait être mal traduit en "Motor de Lingo.dev" en espagnol ou "Lingo.devエンジン" en japonais, ce que nous ne voulons pas dans cet exemple.
Chemins de clés imbriqués
Utilisez la notation avec barre oblique (/
) pour verrouiller des clés à n'importe quelle profondeur :
{
"lockedKeys": [
"system/engine/component",
"modules/ai/processor",
"config/translation/handler"
]
}
Cette notation fonctionne avec des structures imbriquées complexes :
// Structure source
{
"system": {
"engine": {
"component": "Lingo.dev Engine"
}
}
}
Le chemin system/engine/component
verrouille la valeur du nom du composant.
Clés avec des points
La notation avec barre oblique gère les clés qui contiennent des points dans leurs noms :
// Source avec des noms de clés à points
{
"modules": {
"ai.translation": "Traduction IA",
"content.processor": "Processeur de contenu"
}
}
Verrouillez ces clés avec :
{
"lockedKeys": ["modules/ai.translation", "modules/content.processor"]
}
Types de buckets multiples
Différents formats de fichiers peuvent avoir différentes clés verrouillées :
{
"buckets": {
"json": {
"include": ["locales/[locale].json"],
"lockedKeys": ["config/engine", "system/component"]
},
"yaml": {
"include": ["translations/[locale].yml"],
"lockedKeys": ["service/name", "module/title"]
}
}
}
Chaque type de bucket maintient sa propre liste de clés verrouillées basée sur la structure du contenu.