Schlüsselsperrung
Die Lingo.dev CLI ermöglicht es Ihnen, bestimmte Übersetzungsschlüssel zu sperren, damit deren Werte in allen Sprachen identisch bleiben. Wenn Sie Schlüssel sperren, schließt die CLI diese von der Übersetzungsverarbeitung aus und kopiert die Quellwerte direkt in alle Zieldateien.
Einrichtung der Schlüsselsperrung
Fügen Sie lockedKeys
zu Ihrer Bucket-Konfiguration in i18n.json
hinzu:
{
"locale": {
"source": "en",
"targets": ["es", "fr", "de"]
},
"buckets": {
"json": {
"include": ["locales/[locale].json"],
"lockedKeys": ["system/component", "config/engine", "modules/processor"]
}
}
}
Das Array lockedKeys
verwendet die Vorwärtsschrägstrich-Notation (/
), um verschachtelte Schlüssel anzugeben.
Funktionsweise der Schlüsselsperrung
Während der Übersetzungsverarbeitung führt die Lingo.dev CLI folgende Schritte durch:
- Identifizierung gesperrter Schlüssel aus Ihrer Konfiguration
- Ausschluss von der Übersetzung — gesperrte Inhalte werden niemals an KI-Modelle gesendet
- Kopieren der Quellwerte direkt in alle Zieldateien
- Aufrechterhaltung der Konsistenz über alle Sprachen hinweg
Beispiel-Workflow:
// locales/en.json (Quelle)
{
"welcome": "Welcome to our platform",
"system": {
"component": "Lingo.dev CLI",
"processor": "Translation Engine"
},
"config": {
"engine": "Lingo.dev Engine"
}
}
Mit Konfiguration für gesperrte Schlüssel:
{
"lockedKeys": ["system/component", "system/processor", "config/engine"]
}
Generierte spanische Übersetzung:
// locales/es.json (generiert)
{
"welcome": "Bienvenido a nuestra plataforma",
"system": {
"component": "Lingo.dev CLI",
"processor": "Translation Engine"
},
"config": {
"engine": "Lingo.dev Engine"
}
}
Nur welcome
wird übersetzt, während gesperrte Schlüssel identisch zur Quelle bleiben.
Ohne Schlüsselsperrung könnte "Lingo.dev Engine" fälschlicherweise als "Motor de Lingo.dev" ins Spanische oder als "Lingo.devエンジン" ins Japanische übersetzt werden, was in diesem Beispiel nicht erwünscht ist.
Verschachtelte Schlüsselpfade
Verwenden Sie die Vorwärtsschrägstrich-Notation (/
), um Schlüssel in beliebiger Tiefe zu sperren:
{
"lockedKeys": [
"system/engine/component",
"modules/ai/processor",
"config/translation/handler"
]
}
Diese Notation funktioniert mit komplexen verschachtelten Strukturen:
// Quellstruktur
{
"system": {
"engine": {
"component": "Lingo.dev Engine"
}
}
}
Der Pfad system/engine/component
sperrt den Wert des Komponentennamens.
Schlüssel mit Punkten
Die Schrägstrich-Notation behandelt Schlüssel, die Punkte in ihren Namen enthalten:
// Quelle mit Schlüsselnamen, die Punkte enthalten
{
"modules": {
"ai.translation": "KI-Übersetzung",
"content.processor": "Inhaltsverarbeitung"
}
}
Sperren Sie diese Schlüssel mit:
{
"lockedKeys": ["modules/ai.translation", "modules/content.processor"]
}
Mehrere Bucket-Typen
Verschiedene Dateiformate können unterschiedliche gesperrte Schlüssel haben:
{
"buckets": {
"json": {
"include": ["locales/[locale].json"],
"lockedKeys": ["config/engine", "system/component"]
},
"yaml": {
"include": ["translations/[locale].yml"],
"lockedKeys": ["service/name", "module/title"]
}
}
}
Jeder Bucket-Typ verwaltet seine eigene Liste gesperrter Schlüssel basierend auf der Inhaltsstruktur.