mirror of
https://github.com/jamiepine/voicebox.git
synced 2026-10-03 17:15:19 -07:00
feat(i18n): localize EffectsChainEditor and built-in preset names
- Effect type labels (Chorus/Flanger, Reverb, Delay, Compressor, Gain,
High-Pass, Low-Pass, Pitch Shift) and every param label (LFO speed,
Modulation depth, Threshold, Ratio, etc.) go through
`effects.types.<type>.{label,params.<param>}` with the backend string
as defaultValue fallback.
- Chain-level controls: "Load preset…", "Add effect…", "Clear",
Power/Remove button titles.
- Built-in preset names + descriptions (Robotic, Radio, Echo Chamber,
Deep Voice) are translated client-side; user-created presets keep
their original names.
Backend keeps returning English — frontend intercepts and translates
via key lookup, defaulting to the backend string so unknown
effects/params don't break.
Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
This commit is contained in:
co-authored by
Claude Opus 4.7
parent
2b7973df8b
commit
2e962f6599
@@ -90,6 +90,95 @@
|
||||
"deleteFailed": "Failed to delete",
|
||||
"previewFailed": "Preview failed",
|
||||
"nameRequired": "Name required"
|
||||
},
|
||||
"chain": {
|
||||
"loadPreset": "Load preset…",
|
||||
"addEffect": "Add effect…",
|
||||
"clear": "Clear",
|
||||
"enable": "Enable",
|
||||
"disable": "Disable",
|
||||
"remove": "Remove"
|
||||
},
|
||||
"types": {
|
||||
"chorus": {
|
||||
"label": "Chorus / Flanger",
|
||||
"params": {
|
||||
"rate_hz": "LFO speed (Hz)",
|
||||
"depth": "Modulation depth",
|
||||
"feedback": "Feedback amount",
|
||||
"centre_delay_ms": "Centre delay (ms)",
|
||||
"mix": "Wet/dry mix"
|
||||
}
|
||||
},
|
||||
"reverb": {
|
||||
"label": "Reverb",
|
||||
"params": {
|
||||
"room_size": "Room size",
|
||||
"damping": "High frequency damping",
|
||||
"wet_level": "Wet level",
|
||||
"dry_level": "Dry level",
|
||||
"width": "Stereo width"
|
||||
}
|
||||
},
|
||||
"delay": {
|
||||
"label": "Delay",
|
||||
"params": {
|
||||
"delay_seconds": "Delay time (seconds)",
|
||||
"feedback": "Feedback amount",
|
||||
"mix": "Wet/dry mix"
|
||||
}
|
||||
},
|
||||
"compressor": {
|
||||
"label": "Compressor",
|
||||
"params": {
|
||||
"threshold_db": "Threshold (dB)",
|
||||
"ratio": "Compression ratio",
|
||||
"attack_ms": "Attack time (ms)",
|
||||
"release_ms": "Release time (ms)"
|
||||
}
|
||||
},
|
||||
"gain": {
|
||||
"label": "Gain",
|
||||
"params": {
|
||||
"gain_db": "Gain (dB)"
|
||||
}
|
||||
},
|
||||
"highpass": {
|
||||
"label": "High-Pass Filter",
|
||||
"params": {
|
||||
"cutoff_frequency_hz": "Cutoff frequency (Hz)"
|
||||
}
|
||||
},
|
||||
"lowpass": {
|
||||
"label": "Low-Pass Filter",
|
||||
"params": {
|
||||
"cutoff_frequency_hz": "Cutoff frequency (Hz)"
|
||||
}
|
||||
},
|
||||
"pitch_shift": {
|
||||
"label": "Pitch Shift",
|
||||
"params": {
|
||||
"semitones": "Semitones to shift"
|
||||
}
|
||||
}
|
||||
},
|
||||
"builtinPresets": {
|
||||
"Robotic": {
|
||||
"name": "Robotic",
|
||||
"description": "Metallic robotic voice (flanger with slow LFO and high feedback)"
|
||||
},
|
||||
"Radio": {
|
||||
"name": "Radio",
|
||||
"description": "Thin AM-radio voice with band-pass filtering and light compression"
|
||||
},
|
||||
"Echo Chamber": {
|
||||
"name": "Echo Chamber",
|
||||
"description": "Spacious reverb with trailing echo"
|
||||
},
|
||||
"Deep Voice": {
|
||||
"name": "Deep Voice",
|
||||
"description": "Lower pitch with added warmth"
|
||||
}
|
||||
}
|
||||
},
|
||||
"stories": {
|
||||
|
||||
Reference in New Issue
Block a user