Schlüssel ignorieren
Die Lingo.dev CLI ermöglicht es Ihnen, bestimmte Übersetzungsschlüssel zu ignorieren, sodass sie vollständig von der Übersetzungsverarbeitung ausgeschlossen werden. Ignorierte Schlüssel werden nicht in Zieldateien kopiert und bleiben während der CLI-Operationen unberührt.
Wenn Sie Schlüssel ignorieren, überspringt die CLI diese vollständig während der Inhaltserkennung und Übersetzungsgenerierung.
Einrichtung des Schlüssel-Ignorierens
Fügen Sie ignoredKeys zu Ihrer Bucket-Konfiguration in i18n.json hinzu:
{
"locale": {
"source": "en",
"targets": ["es", "fr", "de"]
},
"buckets": {
"json": {
"include": ["locales/[locale].json"],
"ignoredKeys": ["internal/debug", "dev/settings", "temp/cache"]
}
}
}
Das ignoredKeys Array verwendet die Schrägstrich-Notation (/), um verschachtelte Schlüssel anzugeben, und das Sternchen (*), um mehrere Schlüssel zu matchen.
Funktionsweise des Schlüssel-Ignorierens
Während der Übersetzungsverarbeitung führt die Lingo.dev CLI folgende Schritte aus:
- Identifiziert ignorierte Schlüssel aus Ihrer Konfiguration
- Schließt sie von der Inhaltserkennung aus — ignorierte Schlüssel werden niemals verarbeitet
- Überspringt sie in Zieldateien — ignorierte Schlüssel erscheinen nicht in generierten Übersetzungen
- Erhält die Trennung zwischen Entwicklungs- und Produktionsinhalten aufrecht
Beispiel-Workflow:
// 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"
}
}
Mit Konfiguration für ignorierte Schlüssel:
{
"ignoredKeys": ["internal/debug", "internal/testData"]
}
Generierte spanische Übersetzung:
// locales/es.json (generated)
{
"welcome": "Bienvenido a nuestra plataforma",
"system": {
"component": "Lingo.dev CLI",
"version": "1.0.0"
}
}
Nur nicht-ignorierte Schlüssel werden übersetzt. Der gesamte Abschnitt internal wird von den Zieldateien ausgeschlossen.
Verschachtelte Schlüsselpfade
Verwenden Sie die Schrägstrich-Notation (/), um Schlüssel in beliebiger Tiefe zu ignorieren:
{
"ignoredKeys": [
"development/logging/level",
"testing/mock/data",
"admin/internal/config"
]
}
Diese Notation funktioniert mit komplexen verschachtelten Strukturen:
// Source structure
{
"development": {
"logging": {
"level": "verbose"
}
}
}
Der Pfad development/logging/level schließt diese Konfiguration von der Übersetzung aus.
Schlüssel mit Punkten
Die Schrägstrich-Notation verarbeitet Schlüssel, die Punkte in ihren Namen enthalten:
// Source with dotted key names
{
"dev": {
"api.mock": "Mock API enabled",
"cache.clear": "Clear cache on startup"
}
}
Ignorieren Sie diese Schlüssel mit:
{
"ignoredKeys": ["dev/api.mock", "dev/cache.clear"]
}
Mehrere Bucket-Typen
Verschiedene Dateiformate können unterschiedliche ignorierte Schlüssel haben:
{
"buckets": {
"json": {
"include": ["locales/[locale].json"],
"ignoredKeys": ["internal/debug", "dev/settings"]
},
"yaml": {
"include": ["translations/[locale].yml"],
"ignoredKeys": ["test/data", "admin/config"]
}
}
}
Jeder Bucket-Typ verwaltet seine eigene Liste ignorierter Schlüssel basierend auf der Inhaltsstruktur.
Schlüssel ignorieren vs. Schlüssel sperren
Schlüssel ignorieren und Schlüssel sperren dienen unterschiedlichen Zwecken:
Schlüssel ignorieren (ignoredKeys):
- Schlüssel werden vollständig von der Übersetzungsverarbeitung ausgeschlossen
- Ignorierte Schlüssel erscheinen überhaupt nicht in Zieldateien
- Wird für Entwicklung, Tests oder interne Inhalte verwendet, die nicht übersetzt werden sollen
Schlüssel sperren (lockedKeys):
- Schlüssel werden in die Übersetzungsverarbeitung einbezogen, aber die Werte bleiben unverändert
- Gesperrte Schlüssel erscheinen in Zieldateien mit identischen Quellwerten
- Wird für technische Identifikatoren, Komponentennamen oder Werte verwendet, die konsistent bleiben müssen
Beispielvergleich:
// 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
}