Las claves conservadas se inicializan una sola vez con los valores originales y, a partir de ahí, quedan protegidas frente a actualizaciones automáticas. La CLI nunca las sobrescribe: actúan como marcadores de posición para contenido que requiere traducción manual, como textos legales, contenido de cumplimiento normativo o eslóganes de marketing.
Configuración#
Añade preservedKeys a un bucket en i18n.json:
{
"buckets": {
"json": {
"include": ["locales/[locale].json"],
"preservedKeys": ["legal/privacy", "legal/terms"]
}
}
}Cómo funciona#
Dado este archivo de origen:
{
"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."
}
}En la primera ejecución, la CLI copia las claves conservadas tal cual y traduce todo lo demás:
// 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."
}
}Después de traducir manualmente la sección legal, las siguientes ejecuciones de la CLI dejan intactas tus traducciones.
Conservación de claves vs. bloqueo de claves#
| Conservación de claves | Bloqueo de claves | |
|---|---|---|
| Valor inicial | Valor original como marcador de posición | Valor original (siempre) |
| Cambios manuales | Se conservan de forma permanente | Se sobrescriben con el original en cada ejecución |
| Caso de uso | Textos legales, cumplimiento normativo, traducción manual | Nombres de marca, identificadores técnicos |
Notación de rutas de claves#
Usa la barra inclinada (/) para claves anidadas y el asterisco (*) para comodines:
{ "preservedKeys": ["legal/*", "marketing/tagline"] }