Les clés préservées sont initialisées une seule fois avec les valeurs source, puis protégées des mises à jour automatiques. Le CLI ne les écrase jamais : elles servent de base pour les contenus qui nécessitent une traduction manuelle, comme les textes juridiques, les contenus de conformité ou les slogans marketing.
Configuration#
Ajoutez preservedKeys à un bucket dans i18n.json :
{
"buckets": {
"json": {
"include": ["locales/[locale].json"],
"preservedKeys": ["legal/privacy", "legal/terms"]
}
}
}Fonctionnement#
Prenons ce fichier source :
{
"welcome": "Welcome to our platform",
"legal": {
"privacy": "We respect your privacy and protect your data.",
"terms": "By using this service, you agree to our terms."
}
}Lors de la première exécution, le CLI copie les clés préservées telles quelles et traduit tout le reste :
// locales/es.json (first run)
{
"welcome": "Bienvenido a nuestra plataforma",
"legal": {
"privacy": "We respect your privacy and protect your data.",
"terms": "By using this service, you agree to our terms."
}
}Une fois la section juridique traduite manuellement, les exécutions suivantes du CLI conservent vos traductions intactes.
Préservation des clés vs verrouillage des clés#
| Préservation des clés | Verrouillage des clés | |
|---|---|---|
| Valeur initiale | Valeur source utilisée comme placeholder | Valeur source (toujours) |
| Modifications manuelles | Conservées définitivement | Écrasées par la source à chaque exécution |
| Cas d'usage | Juridique, conformité, traduction manuelle | Noms de marque, identifiants techniques |
Notation des chemins de clés#
Utilisez la barre oblique (/) pour les clés imbriquées et l'astérisque (*) pour les jokers :
{ "preservedKeys": ["legal/*", "marketing/tagline"] }