diff --git a/client/public/.gitkeep b/client/public/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/client/src/locales/data-de.json b/client/src/locales/data-de.json index 819a36d..941e14f 100644 --- a/client/src/locales/data-de.json +++ b/client/src/locales/data-de.json @@ -1,66 +1,203 @@ { - "home": { "audioSet": "Audioeinstellungen" }, + "connect": { + "ipMissingTitle": "Geräte-IP nicht angegeben", + "ipMissingDesc": "Bitte fügen Sie die Geräte-IP in der Adressleiste hinzu, bevor Sie diese Seite öffnen, zum Beispiel:", + "connecting": "Verbindung zu {ip}…", + "failedTitle": "Verbindung fehlgeschlagen", + "failedDesc": "Überprüfen Sie die Geräte-IP und Ihre Netzwerkverbindung.", + "failedHint": "Geben Sie das Gerät in der URL an, z.B. ?ip=10.0.0.119" + }, + "home": { + "audioSet": "Audioeinstellung", + "systemSet": "System", + "power": "Stromversorgung", + "input": "Eingang", + "output": "Ausgang", + "vu": "VU-Meter", + "powerOffConfirmTitle": "Gerät ausschalten?", + "powerOffConfirmDesc": "Das Gerät wird heruntergefahren und von dieser App getrennt. Möchten Sie fortfahren?", + "powerOffConfirmOk": "Ausschalten", + "powerOffConfirmCancel": "Abbrechen", + "volumeMinConfirmTitle": "Lautstärke auf Minimum setzen?", + "volumeMinConfirmDesc": "Die Lautstärke wird auf den niedrigsten Wert (Stummschaltung) gesetzt. Fortfahren?", + "volumeMinConfirmOk": "Auf Minimum setzen", + "volumeMaxConfirmTitle": "Lautstärke auf Maximum setzen?", + "volumeMaxConfirmDesc": "Die Lautstärke wird auf den höchsten Wert gesetzt. Fortfahren?", + "volumeMaxConfirmOk": "Auf Maximum setzen", + "volumePassthroughLockedToast": "Die Lautstärke ist im Durchleitungsmodus und kann nicht angepasst werden.", + "volumePassthroughLockedHint": "Die Lautstärke ist im Durchleitungsmodus und kann nicht angepasst werden.", + "powerOffToastDemo": "Demomodus: Abschaltbefehl gesendet.", + "powerOffToastSent": "Abschaltbefehl gesendet.", + "doubleClickHint": "Doppelklick zum Eintreten", + "backToLegacy": "Alte Version" + }, + "vuPage": { + "title": "VU-Meter Galerie" + }, + "bottomNav": { + "community": "Community", + "hpEq": "HP-EQ", + "home": "Startseite", + "effects": "Effekte", + "myAi": "Meine KI" + }, + "communityPage": { + "title": "Community", + "intro": "Das Forum öffnet sich am besten in Ihrem Systembrowser. Kopieren Sie den vollständigen Link unten, fügen Sie ihn in die Adressleiste Ihres mobilen Browsers ein und öffnen Sie ihn.", + "copyLink": "Link kopieren", + "toastCopied": "Link kopiert", + "toastCopyFailed": "Kopieren nicht möglich. Halten Sie den Link gedrückt, um ihn manuell zu kopieren." + }, "source": { - "label": "Eingang & Ausgang", + "label": "Eingang/Ausgang", + "pageTitle": "E/A", + "inputSection": "Eingang", + "outputSection": "Ausgang", + "inputOptions": [ + "USB-B", + "USB-C", + "Koaxial", + "Optisch", + "Bluetooth", + "IIS" + ], + "outputOptions": [ + "XLR", + "RCA", + "Kopfhörer", + "XLR/RCA" + ], "input": { - "coaxial": "Koaxial", - "optical": "Optisch", - "bluetooth": "Bluetooth", - "rca": "Analog RCA" + "coaxial": "KOAXIAL", + "optical": "OPTISCH", + "bluetooth": "BLUETOOTH", + "rca": "RCA" }, - "output": { "headset": "Kopfhörer" } + "output": { + "headset": "Kopfhörer" + } }, "effect": { - "lowBass": "Tiefton", - "enterBass": "Mittlerer Ton", - "highBass": "Hochton", - "tone": "Tonhöhe", + "pageTitle": "Effekte", + "selectStyleTitle": "Klangstil auswählen", + "selectCrossfeedTitle": "Crossfeed-Voreinstellung auswählen", + "lowBass": "Bass", + "enterBass": "Mitten", + "highBass": "Höhen", + "tone": "Ton", "loudness": "Lautheit", "threshold": "Schwellenwert", "delayed": "Verzögerung", - "mainframeCase": "Hauptgehäuse", + "mainframeCase": "Hauptlautsprecher", "subwooferUnit": "Subwoofer", "style": { "label": "Stil", "options": [ - { "index": 0, "label": "Klassisch" }, - { "index": 1, "label": "Dance" }, - { "index": 2, "label": "Pop" }, - { "index": 3, "label": "Reggae" }, - { "index": 4, "label": "Live" }, - { "index": 5, "label": "Rock" }, - { "index": 6, "label": "Sanft" }, - { "index": 7, "label": "Elektronisch" }, - { "index": 8, "label": "Club" }, - { "index": 9, "label": "Nur Bass" }, - { "index": 10, "label": "Nur Höhen" }, - { "index": 11, "label": "Kopfhörer" }, - { "index": 12, "label": "Halle" }, - { "index": 13, "label": "Fusion" }, - { "index": 14, "label": "Ska" }, - { "index": 15, "label": "Slow Dance" } + { + "index": 0, + "label": "Klassik" + }, + { + "index": 1, + "label": "Dance" + }, + { + "index": 2, + "label": "Pop" + }, + { + "index": 3, + "label": "Reggae" + }, + { + "index": 4, + "label": "Live" + }, + { + "index": 5, + "label": "Rock" + }, + { + "index": 6, + "label": "Soft" + }, + { + "index": 7, + "label": "Elektronik" + }, + { + "index": 8, + "label": "Club" + }, + { + "index": 9, + "label": "Voller Bass" + }, + { + "index": 10, + "label": "Volle Höhen" + }, + { + "index": 11, + "label": "Kopfhörer" + }, + { + "index": 12, + "label": "Halle" + }, + { + "index": 13, + "label": "Party" + }, + { + "index": 14, + "label": "Ska" + }, + { + "index": 15, + "label": "Slow Rock" + } + ] + }, + "stereoWidth": { + "label": "Stereobreite" + }, + "crossfeed": { + "label": "Crossfeed", + "options": [ + "BS2B Standard (700 Hz, 4,5 dB)", + "BS2B Populär (700 Hz, 6 dB)", + "BS2B Entspannt (650 Hz, 9,5 dB)" ] }, - "stereoWidth": { "label": "Stereobreite" }, - "crossfeed": { "label": "Crossfeed" }, "subwoofer": { - "label": "Subwoofer-Ausgang", - "freq": "Tiefpassfrequenz", - "attenuation": "Dämpfungsrate", - "gain": "Bassverstärkung", + "label": "Subwoofer", + "freq": "Trennfrequenz", + "attenuation": "Dämpfungssteilheit", + "gain": "Verstärkung", "output": { - "label": "Ausgangsmodus", + "label": "Ausgangstyp", "options": [ - { "label": "Mono", "index": 0 }, - { "label": "Stereo", "index": 1 } + { + "label": "Mono(Mix)", + "index": 0 + }, + { + "label": "Stereo", + "index": 1 + } ] } - } + }, + "enableConfirmTitle": "Effekte sind aus", + "enableConfirmDesc": "Effekte sind derzeit deaktiviert. Einschalten?", + "enableConfirmOk": "Einschalten", + "enableConfirmCancel": "Abbrechen" }, "peq": { "Standard": "Standard-Equalizer-Voreinstellung", - "edit": "Mehrfachbearbeitung", - "headset": "Kopfhörermodell hinzufügen", + "edit": "Stapelbearbeitung", + "headset": "Kopfhörer hinzufügen", "preamp": "Vorverstärkung", "filters": { "label": "Filter", @@ -68,105 +205,417 @@ { "index": 0, "title": "LPF", - "desc1": "Tiefpassfilter lässt nur Signale unterhalb", - "desc2": "einer bestimmten Grenzfrequenz durch,", - "desc3": "Hochfrequente Signale werden abgeschwächt.", + "desc1": "Tiefpassfilter, lässt nur Signale ", + "desc2": "unterhalb einer bestimmten Grenzfrequenz passieren, ", + "desc3": "und hochfrequente Signale werden gedämpft.", "img": "LPF.png" }, { "index": 1, "title": "HPF", - "desc1": "Hochpassfilter lässt nur Signale oberhalb", - "desc2": "einer bestimmten Grenzfrequenz durch,", - "desc3": "Niederfrequente Signale werden abgeschwächt.", + "desc1": "Hochpassfilter, lässt nur Signale ", + "desc2": "oberhalb einer bestimmten Grenzfrequenz passieren,", + "desc3": "und niederfrequente Signale werden gedämpft.", "img": "HPF.png" }, { "index": 2, "title": "BPF", "img": "BPF.png", - "desc1": "Bandpassfilter lässt nur Signale in einem", - "desc2": "bestimmten Frequenzbereich durch,", - "desc3": "andere Frequenzen werden abgeschwächt." + "desc1": "Bandpassfilter, lässt nur Signale", + "desc2": "in einem bestimmten Frequenzbereich passieren, ", + "desc3": "und andere Frequenzen werden gedämpft." }, { "index": 3, "title": "NOTCH", "img": "NOTCH.png", - "desc1": "Notch-Filter zur Beseitigung von", - "desc2": "Resonanzen oder Störungen bei bestimmten Frequenzen." + "desc1": "Kerbfilter, zur Eliminierung von Resonanzen", + "desc2": "oder Störsignalen bei bestimmten Frequenzen." }, { "index": 4, "title": "PEAK", "img": "PEAK.png", - "desc1": "Peak-Filter verstärken oder dämpfen", - "desc2": "Signale um eine bestimmte Frequenz herum." + "desc1": "Peak-Filter, verstärkt oder dämpft das ", + "desc2": "Signal um eine bestimmte Frequenz." }, { "index": 5, "title": "LSHELF", "img": "LSHELF.png", - "desc1": "Low-Shelf-Filter zur Verstärkung oder", - "desc2": "Dämpfung tiefer Frequenzen." + "desc1": "Tiefshelf-Filter, zur Verstärkung oder ", + "desc2": "Absenkung von Niederfrequenzsignalen." }, { "index": 5, "title": "HSHELF", "img": "HSHELF.png", - "desc1": "High-Shelf-Filter zur Verstärkung oder", - "desc2": "Dämpfung hoher Frequenzen." + "desc1": "Hochshelf-Filter, zur Verstärkung oder ", + "desc2": "Absenkung von Hochfrequenzsignalen." }, { "index": 6, "title": "APF", "img": "APF.png", - "desc1": "Allpassfilter verändern nur", - "desc2": "die Phase des Signals, nicht die Amplitude." + "desc1": "Allpassfilter, die Amplitude des Ausgangs-", + "desc2": "signals bleibt unverändert, aber die Phase ändert sich." } ] }, "freq": "FREQ", "gain": "GAIN", "q": "Q-Wert", - "loadDeviceBtn": "Laden bestätigen", - "peqNoneItem": "Nicht konfiguriert" + "loadDeviceBtn": "Bestätigen", + "peqNoneItem": "Nicht konfiguriert", + "eqUi": { + "batchEditTitle": "Stapelbearbeitung", + "batchEditHint": "11 Zeilen insgesamt: Zeile 1 ist Preamp, Zeilen 2–11 sind Filter 1–10. Speichern überschreibt die aktuelle Kopfhörer-Voreinstellung.", + "addPresetTitle": "Neue Voreinstellung", + "addPresetNameEmpty": "Name darf nicht leer sein", + "addPresetNameExists": "Dieser Name existiert bereits. Wählen Sie einen anderen.", + "toastAddPresetOk": "Voreinstellung hinzugefügt", + "toastAddPresetFail": "Hinzufügen der Voreinstellung fehlgeschlagen", + "toastPresetLimitReached": "Voreinstellungslimit erreicht ({{max}}). Löschen Sie einige Voreinstellungen, bevor Sie weitere hinzufügen.", + "cancel": "Abbrechen", + "save": "Speichern", + "tabBrands": "Marken", + "tabModels": "Modelle", + "tabTarget": "Ziel", + "searchPlaceholder": "Marke oder Modell suchen", + "searching": "Suche…", + "noSearchResults": "Keine passende Marke oder Modell", + "loading": "Laden…", + "noBrandMatch": "Keine passenden Marken", + "selectBrandFirst": "Wählen Sie zuerst eine Marke im Marken-Tab", + "brandLabel": "Marke:", + "modelFromSearchLabel": "Modell aus Suche:", + "noModelsForBrand": "Keine Modelle für diese Marke", + "targetBrand": "Marke:", + "targetModel": "Modell:", + "targetForm": "Form:", + "formAll": "Alle", + "confirmLoading": "Verarbeitung…", + "confirmButton": "Bestätigen", + "selectModelFirst": "Bitte zuerst ein Modell auswählen", + "noTargets": "Keine Zielkurven verfügbar", + "closeDrawer": "Schließen", + "toastBatchApplied": "Stapelbearbeitung angewendet", + "toastBatchParseError": "Ungültiges Stapelbearbeitungsformat", + "toastBrandsFail": "Laden der Marken fehlgeschlagen", + "toastModelsFail": "Laden der Modelle fehlgeschlagen", + "toastCurveFail": "Laden der Kurve fehlgeschlagen", + "toastNewEqOk": "Neuer Kopfhörer-EQ gespeichert", + "toastTargetSelected": "Ziel ausgewählt: {{name}}", + "deleteConfirm": "Kopfhörer \"{{name}}\" löschen?", + "batchDeleteConfirm": "{{count}} ausgewählte Voreinstellung(en) löschen?", + "deletePresetConfirm": "Voreinstellung \"{{name}}\" löschen?", + "toastRenamed": "Umbenannt", + "toastRenameFail": "Umbenennung fehlgeschlagen", + "renameEmptyName": "Name darf nicht leer sein", + "renameNameExists": "Name existiert bereits", + "toastDeleted": "Kopfhörer entfernt", + "toastDeleteFail": "Löschen des Kopfhörers fehlgeschlagen", + "bassBoost": "Bassverstärkung: fc {{fc}}, q {{q}}, gain {{gain}} dB", + "errMinLines": "Mindestens 11 Zeilen erforderlich (Preamp + 10 Filter)", + "errPreampFirstLine": "Zeile 1 muss wie Preamp:-5.96dB aussehen", + "errPreampValue": "Ungültiger Preamp-Wert", + "errFilterLine": "Zeile {{line}} entspricht nicht dem Filter-Format", + "errFilterNoRange": "Filter Nummer {{no}} ist außerhalb des Bereichs", + "errFilterType": "Ungültiger Typ für Filter {{no}} ({{type}})", + "errFilterNumbers": "Ungültige Zahlen für Filter {{no}}", + "errFilterAll": "Filter 1–10 müssen alle vorhanden sein", + "chartCopyTo": "Kopieren nach {{mode}}", + "chartApplyB": "B anwenden", + "chartSaveB": "B speichern als", + "saveBTitle": "B speichern als", + "toastChartCopied": "Kopiert nach {{mode}}", + "toastApplyBSuccess": "Kurve B auf A angewendet", + "toastApplyBFail": "Anwendung von B fehlgeschlagen", + "toastSaveBOk": "Voreinstellung aus Kurve B gespeichert", + "toastSaveBFail": "Speichern von Kurve B fehlgeschlagen", + "enableConfirmTitle": "HP-EQ ist aus", + "enableConfirmDesc": "HP-EQ ist derzeit deaktiviert. Einschalten?", + "enableConfirmOk": "Einschalten", + "paramInputTitleFreq": "Frequenz einstellen", + "paramInputTitleGain": "Verstärkung einstellen", + "paramInputTitleQ": "Q-Wert einstellen", + "paramInputHintFreq": "Bereich: 20 – 20000 Hz. Verwenden Sie k für kHz (z.B. 9,5k).", + "paramInputHintGain": "Bereich: -15,0 – +15,0 dB", + "paramInputHintQ": "Bereich: 0,10 – 10,00", + "paramInputInvalid": "Geben Sie eine gültige Zahl ein", + "paramInputOutOfRangeFreq": "Frequenz muss zwischen {{min}} und {{max}} Hz liegen", + "paramInputOutOfRangeGain": "Verstärkung muss zwischen {{min}} und {{max}} dB liegen", + "paramInputOutOfRangeQ": "Q muss zwischen {{min}} und {{max}} liegen", + "overwritePresetTitle": "Voreinstellung existiert bereits", + "overwritePresetDesc": "Eine Voreinstellung mit dem Namen \"{{name}}\" existiert bereits. Überschreiben?", + "overwritePresetConfirm": "Überschreiben", + "overwritePresetCancelled": "Abgebrochen", + "shareTitle": "EQ teilen", + "shareSelectHint": "Wählen Sie die zu teilende EQ-Voreinstellung", + "shareConfirm": "Code generieren", + "shareCodeLabel": "Freigabecode", + "shareCopied": "Code kopiert", + "shareGenerating": "Generierung…", + "shareCreateFail": "Generierung des Freigabecodes fehlgeschlagen", + "shareActiveExists": "Sie haben bereits einen aktiven Freigabecode. Bitte versuchen Sie es später erneut.", + "shareInvalidParams": "Ungültige Anfrage. Bitte überprüfen und erneut versuchen.", + "shareSystemError": "Systemfehler. Bitte versuchen Sie es später erneut.", + "shareExpireAt": "Gültig bis", + "importTab": "EQ importieren", + "importCodeHint": "Geben Sie den 5-stelligen Freigabecode ein oder fügen Sie ihn ein", + "importQuery": "Abfrage", + "importQuerying": "Abfrage läuft…", + "importCodeNotFound": "Freigabecode nicht gefunden oder abgelaufen", + "importEqName": "EQ-Name", + "importEqNameHint": "Sie können den Namen anpassen", + "importSourceModel": "Quellgerät", + "importButton": "Importieren", + "importSaving": "Importieren…", + "importSuccess": "EQ erfolgreich importiert", + "importFail": "Import des EQ fehlgeschlagen", + "mySharesTab": "Meine Freigaben", + "mySharesLoading": "Laden…", + "mySharesEmpty": "Noch kein EQ geteilt", + "mySharesCode": "Code", + "mySharesName": "EQ-Name", + "mySharesLoadFail": "Laden der Freigabeliste fehlgeschlagen", + "mySharesDeleteConfirmTitle": "Freigabecode löschen", + "mySharesDeleteConfirmDesc": "Freigabecode {{code}} löschen? Er wird nicht mehr zum Import verfügbar sein.", + "mySharesDeleteConfirmOk": "Löschen", + "mySharesDeleteSuccess": "Freigabecode gelöscht", + "mySharesDeleteFail": "Löschen des Freigabecodes fehlgeschlagen" + }, + "share": "EQ teilen" }, "dac": { - "balance": "Balance Links/Rechts", + "sectionBalanceSensitivity": "Balance & Empfindlichkeit", + "sectionOutput": "Ausgangsmerkmale", + "sectionIisSettings": "IIS-Einstellungen", + "sectionSystemInterface": "System & Schnittstelle", + "balance": "Links-Rechts-Balance", + "sensitivity": "VU-Meter Empfindlichkeit", "filters": { - "label": "Filtercharakteristik", + "label": "Filter", "options": [ - { "index": 0, "label": "Schneller Abfall" }, - { "index": 1, "label": "Langsamer Abfall" }, - { "index": 2, "label": "Kurze Verzögerung, schneller Abfall" }, - { "index": 3, "label": "Kurze Verzögerung, langsamer Abfall" }, - { "index": 4, "label": "Sehr langsamer Abfall" }, - { "index": 5, "label": "Geringe Dispersion, kurze Verzögerung" } + { + "index": 0, + "label": "Steiler Abfall" + }, + { + "index": 1, + "label": "Langsamer Abfall" + }, + { + "index": 2, + "label": "Kurze Verzögerung steiler Abfall" + }, + { + "index": 3, + "label": "Kurze Verzögerung langsamer Abfall" + }, + { + "index": 4, + "label": "De-Emphasis Filter" + }, + { + "index": 5, + "label": "Non-Oversampling" + } ] }, - "headPhoneGain": { + "dacGain": { "label": "Kopfhörerverstärkung", "options": [ - { "index": 0, "label": "Niedrig" }, - { "index": 1, "label": "Mittel" }, - { "index": 2, "label": "Hoch" } + { + "index": 0, + "label": "Niedrig" + }, + { + "index": 1, + "label": "Mittel" + }, + { + "index": 2, + "label": "Hoch" + } ] }, - "volumeStep": "Lautstärkeschritt", - "bootVolume": "Startlautstärke", - "xlr": { - "label": "XLR-Polarität", + "autoImpedance": { + "label": "Automatische Impedanz-Erkennung", "options": [ - { "index": 0, "label": "Normal" }, - { "index": 1, "label": "Invertiert" } + { + "index": 0, + "label": "Aus" + }, + { + "index": 1, + "label": "Ein" + } + ] + }, + "dreMode": { + "label": "Dynamikbereich-Erweiterung", + "options": [ + { + "index": 0, + "label": "Aus" + }, + { + "index": 1, + "label": "Ein" + } + ] + }, + "dacVolumeDirect": { + "label": "Vorverstärker-Lautstärke-Durchleitung", + "options": [ + { + "index": 0, + "label": "Aus" + }, + { + "index": 1, + "label": "0dB" + }, + { + "index": 2, + "label": "-12dB" + } + ] + }, + "dacVolumeDirectConfirm": { + "title0db": "0 dB Durchleitung aktivieren?", + "desc0db": "Der Durchleitungsmodus setzt die Lautstärke auf Maximum und deaktiviert die Lautstärkeregelung.", + "title12db": "-12 dB Durchleitung aktivieren?", + "desc12db": "Der Durchleitungsmodus setzt die Lautstärke auf -12 dB und deaktiviert die Lautstärkeregelung.", + "confirm": "Bestätigen", + "cancel": "Abbrechen" + }, + "volumeStep": "Lautstärkestufe", + "bootVolume": { + "label": "Startlautstärke", + "options": [ + { + "index": 0, + "label": "Standard" + }, + { + "index": 1, + "label": "-5dB" + }, + { + "index": 2, + "label": "-10dB" + }, + { + "index": 3, + "label": "-15dB" + }, + { + "index": 4, + "label": "-20dB" + }, + { + "index": 5, + "label": "-25dB" + }, + { + "index": 6, + "label": "-30dB" + }, + { + "index": 7, + "label": "-35dB" + }, + { + "index": 8, + "label": "-40dB" + }, + { + "index": 9, + "label": "-45dB" + }, + { + "index": 10, + "label": "-50dB" + } + ] + }, + "xlr": { + "label": "XLR-Port-Polarität", + "options": [ + { + "index": 0, + "label": "Normal" + }, + { + "index": 1, + "label": "Invertiert" + } ] }, "arc": { "label": "ARC-Modus", "options": [ - { "index": 0, "label": "ARC" }, - { "index": 1, "label": "EARC" } + { + "index": 0, + "label": "ARC" + }, + { + "index": 1, + "label": "EARC" + } + ] + }, + "mutePolar": { + "label": "Stummschaltungspolarität", + "options": [ + { + "index": 0, + "label": "Niedrig(Stumm)" + }, + { + "index": 1, + "label": "Hoch(Stumm)" + } + ] + }, + "IISMode": { + "label": "IIS-Modus", + "options": [ + { + "index": 0, + "label": "Modus 1" + }, + { + "index": 1, + "label": "Modus 2" + }, + { + "index": 2, + "label": "Modus 3" + }, + { + "index": 3, + "label": "Modus 4" + }, + { + "index": 4, + "label": "Modus 5" + }, + { + "index": 5, + "label": "Modus 6" + }, + { + "index": 6, + "label": "Modus 7" + }, + { + "index": 7, + "label": "Modus 8" + } ] } }, @@ -176,80 +625,183 @@ "screenBrightness": { "label": "Bildschirmhelligkeit", "options": [ - { "index": 0, "label": "Hell" }, - { "index": 1, "label": "Mittel" }, - { "index": 2, "label": "Dunkel" } + { + "index": 0, + "label": "Heller" + }, + { + "index": 1, + "label": "Mittel" + }, + { + "index": 2, + "label": "Dunkler" + } ] }, "sleep": { "label": "Ruhezustand", "options": [ - { "index": 0, "label": "Aus" }, - { "index": 1, "label": "Kein Signal 1 Min" }, - { "index": 2, "label": "Kein Signal 5 Min" }, - { "index": 3, "label": "Kein Signal 10 Min" }, - { "index": 4, "label": "Kein Signal 15 Min" } + { + "index": 0, + "label": "Nie" + }, + { + "index": 1, + "label": "Kein Signal für 1 Minute" + }, + { + "index": 2, + "label": "Kein Signal für 5 Minuten" + }, + { + "index": 3, + "label": "Kein Signal für 10 Minuten" + }, + { + "index": 4, + "label": "Kein Signal für 15 Minuten" + } ] }, "turnOffScreen": { "label": "Bildschirm ausschalten", "options": [ - { "index": 0, "label": "Immer an" }, - { "index": 1, "label": "Keine Aktion 30 Sek" }, - { "index": 2, "label": "Keine Aktion 1 Min" }, - { "index": 3, "label": "Keine Aktion 3 Min" }, - { "index": 4, "label": "Keine Aktion 5 Min" } + { + "index": 0, + "label": "Nie" + }, + { + "index": 1, + "label": "30 Sekunden" + }, + { + "index": 2, + "label": "1 Minute" + }, + { + "index": 3, + "label": "3 Minuten" + }, + { + "index": 4, + "label": "5 Minuten" + } ] }, "knobBrightness": { - "label": "Drehknopfhelligkeit", + "label": "Drehknopf-Helligkeit", "options": [ - { "index": 0, "label": "Aus" }, - { "index": 1, "label": "Hell" }, - { "index": 2, "label": "Mittel" }, - { "index": 3, "label": "Dunkel" } + { + "index": 0, + "label": "Aus" + }, + { + "index": 1, + "label": "Heller" + }, + { + "index": 2, + "label": "Mittel" + }, + { + "index": 3, + "label": "Dunkler" + } ] }, "sleepTime": { "label": "Ruhezustand", "options": [ - { "index": 0, "label": "Aus" }, - { "index": 1, "label": "Kein Signal nach 1 Min." }, - { "index": 2, "label": "Kein Signal nach 5 Min." }, - { "index": 3, "label": "Kein Signal nach 10 Min." } + { + "index": 0, + "label": "Aus" + }, + { + "index": 1, + "label": "Kein Signal nach 1 Min." + }, + { + "index": 2, + "label": "Kein Signal nach 5 Min." + }, + { + "index": 3, + "label": "Kein Signal nach 10 Min." + } ] }, "buttonLight": { - "label": "Drehknopf-Standby-Atemlicht", + "label": "Drehknopf-Atemlicht", "options": [ - { "index": 0, "label": "Ein" }, - { "index": 1, "label": "Aus" } + { + "index": 0, + "label": "Ein" + }, + { + "index": 1, + "label": "Aus" + } ] }, "language": { "label": "Sprache", "options": [ - { "index": 0, "label": "Englisch" }, - { "index": 1, "label": "Chinesisch (traditionell)" }, - { "index": 2, "label": "Chinesisch (vereinfacht)" }, - { "index": 3, "label": "Deutsch" }, - { "index": 4, "label": "Spanisch" }, - { "index": 5, "label": "Französisch" } + { + "index": 0, + "label": "Englisch" + }, + { + "index": 1, + "label": "Traditionelles Chinesisch" + }, + { + "index": 2, + "label": "Vereinfachtes Chinesisch" + } ] }, "Automatic": { - "label": "Automatisch zur Startseite zurückkehren", + "label": "Automatische Rückkehr zur Startseite", "options": [ - { "index": 0, "label": "Aus" }, - { "index": 1, "label": "Keine Aktion 20 Sek" }, - { "index": 2, "label": "Keine Aktion 40 Sek" }, - { "index": 3, "label": "Keine Aktion 60 Sek" } + { + "index": 0, + "label": "Nie" + }, + { + "index": 1, + "label": "20 Sekunden Inaktivität" + }, + { + "index": 2, + "label": "40 Sekunden Inaktivität" + }, + { + "index": 3, + "label": "60 Sekunden Inaktivität" + } ] + }, + "systemPage": { + "sectionDisplay": "Anzeige", + "sectionGeneral": "Allgemein", + "sectionAbout": "Über", + "screenBrightnessDesc": "Gesamte Bildschirmhelligkeit anpassen", + "turnOffScreenDesc": "Zeit bis der Bildschirm nach Inaktivität ausgeschaltet wird", + "knobBrightnessDesc": "Helligkeit der Drehknopf-Indikator-LEDs", + "buttonLightDesc": "Atemlichteffekt am Drehknopf bei gesperrtem Bildschirm", + "languageDesc": "System-Anzeigesprache", + "automaticDesc": "Automatische Rückkehr zum Startbildschirm nach Inaktivität", + "sleepDesc": "Wenn das Gerät in den Ruhe- oder Energiesparmodus wechselt", + "deviceName": "Gerätename", + "firmwareVersion": "Firmware-Version", + "macAddress": "MAC-Adresse", + "deviceIp": "Geräte-IP" } }, "prompt": { "prompt": "Hinweis", - "NotAdded": "Kopfhörer nicht hinzugefügt. Möchten Sie hinzufügen?", + "NotAdded": "Keine Kopfhörer hinzugefügt, möchten Sie Kopfhörer hinzufügen?", "confirm": "Bestätigen", "cancel": "Abbrechen", "save": "Speichern", @@ -257,17 +809,96 @@ "delete": "Löschen", "add": "Hinzufügen", "edit": "Bearbeiten", - "deleteConfirm": "Möchten Sie löschen?", - "saveConfirm": "Speichern bestätigen?", - "HP-EQ": "HP-EQ ist deaktiviert. Aktivieren?", - "Effect": "Effekt ist deaktiviert. Aktivieren?", - "EnableEffectY": "Bestätigen", - "EnableEffectN": "Abbrechen", - "noDelete": "Dieser Eintrag kann nicht gelöscht werden", - "SavePreset": "Neue Voreinstellung speichern", + "deleteConfirm": "Löschen bestätigen", + "saveConfirm": "Speichern bestätigen", + "HP-EQ": "HP-EQ ist deaktiviert, möchten Sie es aktivieren?", + "Effect": "Effekt ist deaktiviert, möchten Sie es aktivieren?", + "EnableEffectY": "Ja", + "EnableEffectN": "Nein", + "noDelete": "Dieses Element kann nicht gelöscht werden", + "SavePreset": "Neue Voreinstellung", "default": "Standard", "invalidData": "Ungültige Daten", "range": "Bereich", - "selectedYet": "Sie haben keine Zielkurve ausgewählt" + "selectedYet": "Zielkurve noch nicht ausgewählt", + "leftChannel": "Linker Kanal", + "rightChannel": "Rechter Kanal" + }, + "ai": { + "title": "Luxsin KI", + "welcomeTitle": "Hallo, ich bin Luxsin KI", + "welcomeDescription": "Ich kann bei der Luxsin X8-Systemkonfiguration, Kopfhörer-Frequenzganganalyse, EQ-Optimierung und fortgeschrittener Audio-Einrichtung helfen.", + "suggestionsLabel": "Versuchen Sie", + "suggestions": [ + { + "title": "EQ-Optimierung", + "prompt": "Optimiere meinen aktuellen EQ für klarere Stimmen und tieferen Bass." + }, + { + "title": "Pop-EQ empfehlen", + "prompt": "Empfehle EQ-Parameter, die für Popmusik geeignet sind." + }, + { + "title": "Gerätestatus prüfen", + "prompt": "Zeige mir die aktuelle Lautstärke, Eingangsquelle und den Ausgangsport." + }, + { + "title": "Eingangsquelle wechseln", + "prompt": "Wechsle die Eingangsquelle auf USB-C." + } + ], + "inputPlaceholder": "Fragen Sie zu Ihrem Gerät, EQ, Effekten…", + "thinking": "Denke…", + "stopped": "(Gestoppt)", + "requestFailed": "Anfrage fehlgeschlagen. Bitte versuchen Sie es später erneut.", + "ariaSend": "Senden", + "ariaStop": "Stopp", + "ariaNewChat": "Neuer Chat", + "ariaHistory": "Verlauf", + "ariaClose": "Schließen", + "ariaFullPage": "Vollbild öffnen", + "ariaHidePanel": "KI-Panel ausblenden", + "ariaRestoreSplit": "Geteilte Ansicht wiederherstellen", + "clearCurrent": "Diesen Chat löschen", + "cleared": "Aktueller Chat gelöscht", + "clearFailed": "Löschen fehlgeschlagen: {message}", + "deviceRequired": "Bitte verbinden Sie zuerst ein Gerät", + "deviceDisconnected": "Gerät getrennt", + "loadHistoryFailed": "Laden des Verlaufs fehlgeschlagen: {message}", + "loadChatFailed": "Laden des Chats fehlgeschlagen: {message}", + "toolResultFailed": "Senden des Tool-Ergebnisses fehlgeschlagen: {message}", + "history": { + "title": "Chat-Verlauf", + "newChat": "Neuen Chat starten", + "empty": "Noch kein Chat-Verlauf", + "current": "Aktuell", + "delete": "Löschen", + "deleteConfirm": "Diesen Chat löschen? Dies kann nicht rückgängig gemacht werden.", + "deleted": "Chat gelöscht", + "deleteFailed": "Löschen fehlgeschlagen: {message}" + }, + "optimize": { + "badge": "Optimierung", + "applied": "Angewendet", + "summary": "{count} Filter · Vorverstärkung {preamp} dB", + "compare": "Vergleichen", + "apply": "Anwenden", + "rollback": "Zurücksetzen", + "applySuccess": "Neuer EQ angewendet", + "rollbackSuccess": "Auf ursprünglichen EQ zurückgesetzt", + "applyFailed": "Vorgang fehlgeschlagen: {message}" + }, + "compareDialog": { + "title": "EQ-Vergleich", + "legendBefore": "Vorher", + "legendAfter": "Nachher", + "legendCurrent": "Aktuell", + "legendAfterApply": "Nach Anwendung", + "legendAfterRollback": "Nach Zurücksetzung", + "close": "Schließen", + "apply": "Diese Optimierung anwenden", + "rollback": "Auf Original zurücksetzen", + "paramSummary": "{count} Filter · Vorverstärkung {preamp} dB" + } } } diff --git a/client/src/locales/data-es.json b/client/src/locales/data-es.json index 880b858..35d480b 100644 --- a/client/src/locales/data-es.json +++ b/client/src/locales/data-es.json @@ -1,255 +1,807 @@ { - "home": { "audioSet": "Configuración de audio" }, + "connect": { + "ipMissingTitle": "IP del dispositivo no especificada", + "ipMissingDesc": "Agregue la IP del dispositivo en la barra de direcciones antes de abrir esta página, por ejemplo:", + "connecting": "Conectando a {ip}…", + "failedTitle": "Conexión fallida", + "failedDesc": "Verifique la IP del dispositivo y su conexión de red.", + "failedHint": "Especifique el dispositivo en la URL, p. ej. ?ip=10.0.0.119" + }, + "home": { + "audioSet": "Configuración de audio", + "systemSet": "Sistema", + "power": "Alimentación", + "input": "Entrada", + "output": "Salida", + "vu": "Medidor VU", + "powerOffConfirmTitle": "¿Apagar el dispositivo?", + "powerOffConfirmDesc": "El dispositivo se apagará y se desconectará de esta aplicación. ¿Desea continuar?", + "powerOffConfirmOk": "Apagar", + "powerOffConfirmCancel": "Cancelar", + "volumeMinConfirmTitle": "¿Poner el volumen al mínimo?", + "volumeMinConfirmDesc": "El volumen se ajustará al nivel más bajo (silencio). ¿Continuar?", + "volumeMinConfirmOk": "Poner al mínimo", + "volumeMaxConfirmTitle": "¿Poner el volumen al máximo?", + "volumeMaxConfirmDesc": "El volumen se ajustará al nivel más alto. ¿Continuar?", + "volumeMaxConfirmOk": "Poner al máximo", + "volumePassthroughLockedToast": "El volumen está en modo de paso directo y no se puede ajustar.", + "volumePassthroughLockedHint": "El volumen está en modo de paso directo y no se puede ajustar.", + "powerOffToastDemo": "Modo demo: comando de apagado enviado.", + "powerOffToastSent": "Comando de apagado enviado.", + "doubleClickHint": "Doble clic para entrar", + "backToLegacy": "Versión anterior" + }, + "vuPage": { + "title": "Galería de medidores VU" + }, + "bottomNav": { + "community": "Comunidad", + "hpEq": "HP-EQ", + "home": "Inicio", + "effects": "Efectos", + "myAi": "Mi IA" + }, + "communityPage": { + "title": "Comunidad", + "intro": "El foro se abre mejor en el navegador de su sistema. Copie el enlace completo a continuación, péguelo en la barra de direcciones de su navegador móvil y ábralo.", + "copyLink": "Copiar enlace", + "toastCopied": "Enlace copiado", + "toastCopyFailed": "No se pudo copiar. Mantenga presionado el enlace para copiarlo manualmente." + }, "source": { "label": "Entrada/Salida", + "pageTitle": "E/S", + "inputSection": "Entrada", + "outputSection": "Salida", + "inputOptions": [ + "USB-B", + "USB-C", + "Coaxial", + "Óptico", + "Bluetooth", + "IIS" + ], + "outputOptions": [ + "XLR", + "RCA", + "Auriculares", + "XLR/RCA" + ], "input": { - "coaxial": "Coaxial", - "optical": "Óptico", - "bluetooth": "Bluetooth", - "rca": "RCA analógico" + "coaxial": "COAXIAL", + "optical": "ÓPTICO", + "bluetooth": "BLUETOOTH", + "rca": "RCA" }, - "output": { "headset": "Auriculares" } + "output": { + "headset": "Auriculares" + } }, "effect": { - "lowBass": "Bajo", - "enterBass": "Medio", - "highBass": "Agudo", + "pageTitle": "Efectos", + "selectStyleTitle": "Seleccionar estilo de sonido", + "selectCrossfeedTitle": "Seleccionar ajuste de crossfeed", + "lowBass": "Graves", + "enterBass": "Medios", + "highBass": "Agudos", "tone": "Tono", "loudness": "Sonoridad", "threshold": "Umbral", "delayed": "Retardo", - "mainframeCase": "Caja principal", + "mainframeCase": "Altavoz principal", "subwooferUnit": "Subwoofer", "style": { "label": "Estilo", "options": [ - { "index": 0, "label": "Clásico" }, - { "index": 1, "label": "Dance" }, - { "index": 2, "label": "Pop" }, - { "index": 3, "label": "Reggae" }, - { "index": 4, "label": "En vivo" }, - { "index": 5, "label": "Rock" }, - { "index": 6, "label": "Suave" }, - { "index": 7, "label": "Electrónica" }, - { "index": 8, "label": "Club" }, - { "index": 9, "label": "Todo Bajo" }, - { "index": 10, "label": "Todo Agudo" }, - { "index": 11, "label": "Auriculares" }, - { "index": 12, "label": "Salón" }, - { "index": 13, "label": "Fusión" }, - { "index": 14, "label": "Ska" }, - { "index": 15, "label": "Slow Shake" } + { + "index": 0, + "label": "Clásico" + }, + { + "index": 1, + "label": "Dance" + }, + { + "index": 2, + "label": "Pop" + }, + { + "index": 3, + "label": "Reggae" + }, + { + "index": 4, + "label": "En vivo" + }, + { + "index": 5, + "label": "Rock" + }, + { + "index": 6, + "label": "Suave" + }, + { + "index": 7, + "label": "Electrónica" + }, + { + "index": 8, + "label": "Club" + }, + { + "index": 9, + "label": "Graves plenos" + }, + { + "index": 10, + "label": "Agudos plenos" + }, + { + "index": 11, + "label": "Auriculares" + }, + { + "index": 12, + "label": "Sala" + }, + { + "index": 13, + "label": "Fiesta" + }, + { + "index": 14, + "label": "Ska" + }, + { + "index": 15, + "label": "Slow rock" + } + ] + }, + "stereoWidth": { + "label": "Ancho estéreo" + }, + "crossfeed": { + "label": "Crossfeed", + "options": [ + "BS2B predeterminado (700 Hz, 4,5 dB)", + "BS2B popular (700 Hz, 6 dB)", + "BS2B relajado (650 Hz, 9,5 dB)" ] }, - "stereoWidth": { "label": "Ancho del escenario sonoro" }, - "crossfeed": { "label": "Realimentación cruzada" }, "subwoofer": { - "label": "Salida de subwoofer", + "label": "Subwoofer", "freq": "Frecuencia de corte", "attenuation": "Pendiente de atenuación", - "gain": "Realce de bajos", + "gain": "Ganancia", "output": { - "label": "Modo de salida", + "label": "Tipo de salida", "options": [ - { "label": "Mono", "index": 0 }, - { "label": "Estéreo", "index": 1 } + { + "label": "Mono(Mix)", + "index": 0 + }, + { + "label": "Estéreo", + "index": 1 + } ] } - } + }, + "enableConfirmTitle": "Los efectos están desactivados", + "enableConfirmDesc": "Los efectos están actualmente desactivados. ¿Activarlos?", + "enableConfirmOk": "Activar", + "enableConfirmCancel": "Cancelar" }, "peq": { - "Standard": "Preajuste de ecualizador estándar", - "edit": "Edición en lote", - "headset": "Agregar modelo de auriculares", - "preamp": "Ganancia total", + "Standard": "Ajuste de ecualizador estándar", + "edit": "Edición por lotes", + "headset": "Agregar auriculares", + "preamp": "Preamplificación", "filters": { "label": "Filtros", "options": [ { "index": 0, "title": "LPF", - "desc1": "Filtro paso bajo, solo permite el paso de", - "desc2": "señales por debajo de cierta frecuencia de corte,", - "desc3": "las señales altas se atenúan.", + "desc1": "Filtro paso bajo, solo permite pasar señales ", + "desc2": "por debajo de cierta frecuencia de corte, ", + "desc3": "y las señales de alta frecuencia se atenúan.", "img": "LPF.png" }, { "index": 1, "title": "HPF", - "desc1": "Filtro paso alto, solo permite el paso de", - "desc2": "señales por encima de cierta frecuencia de corte,", - "desc3": "las señales bajas se atenúan.", + "desc1": "Filtro paso alto, solo permite pasar señales ", + "desc2": "por encima de cierta frecuencia de corte,", + "desc3": "y las señales de baja frecuencia se atenúan.", "img": "HPF.png" }, { "index": 2, "title": "BPF", "img": "BPF.png", - "desc1": "Filtro paso banda, solo permite señales", - "desc2": "dentro de un cierto rango de frecuencias,", - "desc3": "otras frecuencias se atenúan." + "desc1": "Filtro paso banda, solo permite pasar señales", + "desc2": "en un cierto rango de frecuencias, ", + "desc3": "y otras frecuencias se atenúan." }, { "index": 3, "title": "NOTCH", "img": "NOTCH.png", - "desc1": "Filtro de muesca, elimina señales de", - "desc2": "frecuencias específicas." + "desc1": "Filtro de muesca, utilizado para eliminar resonancias", + "desc2": "o señales de interferencia en frecuencias específicas." }, { "index": 4, "title": "PEAK", "img": "PEAK.png", - "desc1": "Filtro de pico, realza o atenúa", - "desc2": "señales cerca de una frecuencia específica." + "desc1": "Filtro de pico, realza o debilita la ", + "desc2": "señal alrededor de cierta frecuencia." }, { "index": 5, "title": "LSHELF", "img": "LSHELF.png", - "desc1": "Filtro de estantería baja, usado para realzar o", - "desc2": "atenuar señales de baja frecuencia." + "desc1": "Filtro de estante bajo, utilizado para ", + "desc2": "reforzar o reducir señales de baja frecuencia." }, { "index": 5, "title": "HSHELF", "img": "HSHELF.png", - "desc1": "Filtro de estantería alta, usado para realzar o", - "desc2": "atenuar señales de alta frecuencia." + "desc1": "Filtro de estante alto, utilizado para ", + "desc2": "reforzar o reducir señales de alta frecuencia." }, { "index": 6, "title": "APF", "img": "APF.png", - "desc1": "Filtro de paso total, no cambia la amplitud", - "desc2": "pero sí la fase de la señal." + "desc1": "Filtro paso todo, la amplitud de la señal de salida", + "desc2": "permanece sin cambios, pero la fase cambia." } ] }, "freq": "FREQ", - "gain": "GANANCIA", + "gain": "GAIN", "q": "Valor Q", - "loadDeviceBtn": "Confirmar carga", - "peqNoneItem": "No configurado" + "loadDeviceBtn": "Confirmar", + "peqNoneItem": "No configurado", + "eqUi": { + "batchEditTitle": "Edición por lotes", + "batchEditHint": "11 líneas en total: la línea 1 es Preamp, las líneas 2–11 son Filtro 1–10. Guardar sobrescribe el ajuste actual de auriculares.", + "addPresetTitle": "Nuevo ajuste", + "addPresetNameEmpty": "El nombre no puede estar vacío", + "addPresetNameExists": "Ese nombre ya existe. Elija otro.", + "toastAddPresetOk": "Ajuste agregado", + "toastAddPresetFail": "Error al agregar el ajuste", + "toastPresetLimitReached": "Límite de ajustes alcanzado ({{max}}). Elimine algunos ajustes antes de agregar más.", + "cancel": "Cancelar", + "save": "Guardar", + "tabBrands": "Marcas", + "tabModels": "Modelos", + "tabTarget": "Objetivo", + "searchPlaceholder": "Buscar marca o modelo", + "searching": "Buscando…", + "noSearchResults": "Ninguna marca o modelo coincide", + "loading": "Cargando…", + "noBrandMatch": "Ninguna marca coincide", + "selectBrandFirst": "Elija primero una marca en la pestaña Marcas", + "brandLabel": "Marca:", + "modelFromSearchLabel": "Modelo desde búsqueda:", + "noModelsForBrand": "No hay modelos para esta marca", + "targetBrand": "Marca:", + "targetModel": "Modelo:", + "targetForm": "Forma:", + "formAll": "Todos", + "confirmLoading": "Procesando…", + "confirmButton": "Confirmar", + "selectModelFirst": "Seleccione primero un modelo", + "noTargets": "No hay curvas objetivo disponibles", + "closeDrawer": "Cerrar", + "toastBatchApplied": "Edición por lotes aplicada", + "toastBatchParseError": "Formato de edición por lotes no válido", + "toastBrandsFail": "Error al cargar las marcas", + "toastModelsFail": "Error al cargar los modelos", + "toastCurveFail": "Error al cargar la curva", + "toastNewEqOk": "Nuevo EQ de auriculares guardado", + "toastTargetSelected": "Objetivo seleccionado: {{name}}", + "deleteConfirm": "¿Eliminar auriculares \"{{name}}\"?", + "batchDeleteConfirm": "¿Eliminar {{count}} ajuste(s) seleccionado(s)?", + "deletePresetConfirm": "¿Eliminar ajuste \"{{name}}\"?", + "toastRenamed": "Renombrado", + "toastRenameFail": "Error al renombrar", + "renameEmptyName": "El nombre no puede estar vacío", + "renameNameExists": "El nombre ya existe", + "toastDeleted": "Auriculares eliminados", + "toastDeleteFail": "Error al eliminar auriculares", + "bassBoost": "Refuerzo de graves: fc {{fc}}, q {{q}}, ganancia {{gain}} dB", + "errMinLines": "Se requieren al menos 11 líneas (Preamp + 10 filtros)", + "errPreampFirstLine": "La línea 1 debe verse como Preamp:-5.96dB", + "errPreampValue": "Valor Preamp no válido", + "errFilterLine": "La línea {{line}} no coincide con el formato de Filtro", + "errFilterNoRange": "El filtro número {{no}} está fuera del rango", + "errFilterType": "Tipo no válido para el filtro {{no}} ({{type}})", + "errFilterNumbers": "Números no válidos para el filtro {{no}}", + "errFilterAll": "Los filtros 1–10 deben estar todos presentes", + "chartCopyTo": "Copiar a {{mode}}", + "chartApplyB": "Aplicar B", + "chartSaveB": "Guardar B como", + "saveBTitle": "Guardar B como", + "toastChartCopied": "Copiado a {{mode}}", + "toastApplyBSuccess": "Curva B aplicada a A", + "toastApplyBFail": "Error al aplicar B", + "toastSaveBOk": "Ajuste guardado desde la curva B", + "toastSaveBFail": "Error al guardar la curva B", + "enableConfirmTitle": "HP-EQ está desactivado", + "enableConfirmDesc": "HP-EQ está actualmente desactivado. ¿Activarlo?", + "enableConfirmOk": "Activar", + "paramInputTitleFreq": "Establecer frecuencia", + "paramInputTitleGain": "Establecer ganancia", + "paramInputTitleQ": "Establecer valor Q", + "paramInputHintFreq": "Rango: 20 – 20000 Hz. Use k para kHz (ej. 9,5k).", + "paramInputHintGain": "Rango: -15,0 – +15,0 dB", + "paramInputHintQ": "Rango: 0,10 – 10,00", + "paramInputInvalid": "Ingrese un número válido", + "paramInputOutOfRangeFreq": "La frecuencia debe estar entre {{min}} y {{max}} Hz", + "paramInputOutOfRangeGain": "La ganancia debe estar entre {{min}} y {{max}} dB", + "paramInputOutOfRangeQ": "Q debe estar entre {{min}} y {{max}}", + "overwritePresetTitle": "El nombre del ajuste ya existe", + "overwritePresetDesc": "Ya existe un ajuste con el nombre \"{{name}}\". ¿Sobrescribirlo?", + "overwritePresetConfirm": "Sobrescribir", + "overwritePresetCancelled": "Cancelado", + "shareTitle": "Compartir EQ", + "shareSelectHint": "Seleccione el ajuste EQ a compartir", + "shareConfirm": "Generar código", + "shareCodeLabel": "Código de compartir", + "shareCopied": "Código copiado", + "shareGenerating": "Generando…", + "shareCreateFail": "Error al generar el código de compartir", + "shareActiveExists": "Ya tiene un código de compartir activo. Inténtelo más tarde.", + "shareInvalidParams": "Solicitud no válida. Verifique e intente de nuevo.", + "shareSystemError": "Error del sistema. Inténtelo más tarde.", + "shareExpireAt": "Caduca el", + "importTab": "Importar EQ", + "importCodeHint": "Ingrese o pegue el código de compartir de 5 caracteres", + "importQuery": "Consultar", + "importQuerying": "Consultando…", + "importCodeNotFound": "Código de compartir no encontrado o caducado", + "importEqName": "Nombre EQ", + "importEqNameHint": "Puede personalizar el nombre", + "importSourceModel": "Dispositivo de origen", + "importButton": "Importar", + "importSaving": "Importando…", + "importSuccess": "EQ importado con éxito", + "importFail": "Error al importar el EQ", + "mySharesTab": "Mis compartidos", + "mySharesLoading": "Cargando…", + "mySharesEmpty": "Aún no hay EQ compartidos", + "mySharesCode": "Código", + "mySharesName": "Nombre EQ", + "mySharesLoadFail": "Error al cargar la lista de compartidos", + "mySharesDeleteConfirmTitle": "Eliminar código de compartir", + "mySharesDeleteConfirmDesc": "¿Eliminar código de compartir {{code}}? Ya no estará disponible para importar.", + "mySharesDeleteConfirmOk": "Eliminar", + "mySharesDeleteSuccess": "Código de compartir eliminado", + "mySharesDeleteFail": "Error al eliminar el código de compartir" + }, + "share": "Compartir EQ" }, "dac": { - "balance": "Balance izquierdo/derecho", + "sectionBalanceSensitivity": "Balance y sensibilidad", + "sectionOutput": "Características de salida", + "sectionIisSettings": "Ajustes IIS", + "sectionSystemInterface": "Sistema e interfaz", + "balance": "Balance izquierda-derecha", + "sensitivity": "Sensibilidad del medidor VU", "filters": { - "label": "Características de filtrado", + "label": "Filtros", "options": [ - { "index": 0, "label": "Descenso rápido" }, - { "index": 1, "label": "Descenso lento" }, - { "index": 2, "label": "Descenso rápido con retardo corto" }, - { "index": 3, "label": "Descenso lento con retardo corto" }, - { "index": 4, "label": "Descenso ultra lento" }, - { "index": 5, "label": "Poca dispersión con retardo corto" } + { + "index": 0, + "label": "Caída abrupta" + }, + { + "index": 1, + "label": "Caída lenta" + }, + { + "index": 2, + "label": "Retardo corto caída abrupta" + }, + { + "index": 3, + "label": "Retardo corto caída lenta" + }, + { + "index": 4, + "label": "Filtro de deemphasis" + }, + { + "index": 5, + "label": "Sin sobremuestreo" + } ] }, - "headPhoneGain": { + "dacGain": { "label": "Ganancia de auriculares", "options": [ - { "index": 0, "label": "Baja" }, - { "index": 1, "label": "Media" }, - { "index": 2, "label": "Alta" } + { + "index": 0, + "label": "Baja" + }, + { + "index": 1, + "label": "Media" + }, + { + "index": 2, + "label": "Alta" + } + ] + }, + "autoImpedance": { + "label": "Detección automática de impedancia", + "options": [ + { + "index": 0, + "label": "Desactivado" + }, + { + "index": 1, + "label": "Activado" + } + ] + }, + "dreMode": { + "label": "Mejora del rango dinámico", + "options": [ + { + "index": 0, + "label": "Desactivado" + }, + { + "index": 1, + "label": "Activado" + } + ] + }, + "dacVolumeDirect": { + "label": "Paso directo de volumen de pre-salida", + "options": [ + { + "index": 0, + "label": "Desactivado" + }, + { + "index": 1, + "label": "0dB" + }, + { + "index": 2, + "label": "-12dB" + } + ] + }, + "dacVolumeDirectConfirm": { + "title0db": "¿Activar paso directo de 0 dB?", + "desc0db": "El modo de paso directo pone el volumen al máximo y desactiva el ajuste de volumen.", + "title12db": "¿Activar paso directo de -12 dB?", + "desc12db": "El modo de paso directo pone el volumen a -12 dB y desactiva el ajuste de volumen.", + "confirm": "Confirmar", + "cancel": "Cancelar" + }, + "volumeStep": "Paso de volumen", + "bootVolume": { + "label": "Volumen de arranque", + "options": [ + { + "index": 0, + "label": "Predeterminado" + }, + { + "index": 1, + "label": "-5dB" + }, + { + "index": 2, + "label": "-10dB" + }, + { + "index": 3, + "label": "-15dB" + }, + { + "index": 4, + "label": "-20dB" + }, + { + "index": 5, + "label": "-25dB" + }, + { + "index": 6, + "label": "-30dB" + }, + { + "index": 7, + "label": "-35dB" + }, + { + "index": 8, + "label": "-40dB" + }, + { + "index": 9, + "label": "-45dB" + }, + { + "index": 10, + "label": "-50dB" + } ] }, - "volumeStep": "Incremento de volumen", - "bootVolume": "Volumen de arranque", "xlr": { "label": "Polaridad del puerto XLR", "options": [ - { "index": 0, "label": "Normal" }, - { "index": 1, "label": "Invertido" } + { + "index": 0, + "label": "Normal" + }, + { + "index": 1, + "label": "Invertido" + } ] }, "arc": { "label": "Modo ARC", "options": [ - { "index": 0, "label": "ARC" }, - { "index": 1, "label": "EARC" } + { + "index": 0, + "label": "ARC" + }, + { + "index": 1, + "label": "EARC" + } + ] + }, + "mutePolar": { + "label": "Polaridad de silencio", + "options": [ + { + "index": 0, + "label": "Bajo(silencio)" + }, + { + "index": 1, + "label": "Alto(silencio)" + } + ] + }, + "IISMode": { + "label": "Modo IIS", + "options": [ + { + "index": 0, + "label": "Modo 1" + }, + { + "index": 1, + "label": "Modo 2" + }, + { + "index": 2, + "label": "Modo 3" + }, + { + "index": 3, + "label": "Modo 4" + }, + { + "index": 4, + "label": "Modo 5" + }, + { + "index": 5, + "label": "Modo 6" + }, + { + "index": 6, + "label": "Modo 7" + }, + { + "index": 7, + "label": "Modo 8" + } ] } }, "settings": { - "vu": "Configuración", + "vu": "Ajustes", "vuMeter": "Medidor VU", "screenBrightness": { - "label": "Brillo de pantalla", + "label": "Brillo de la pantalla", "options": [ - { "index": 0, "label": "Brillante" }, - { "index": 1, "label": "Medio" }, - { "index": 2, "label": "Oscuro" } + { + "index": 0, + "label": "Más brillante" + }, + { + "index": 1, + "label": "Medio" + }, + { + "index": 2, + "label": "Más oscuro" + } ] }, "sleep": { - "label": "Modo de reposo", + "label": "Reposo", "options": [ - { "index": 0, "label": "Apagado" }, - { "index": 1, "label": "Sin señal 1 min" }, - { "index": 2, "label": "Sin señal 5 min" }, - { "index": 3, "label": "Sin señal 10 min" }, - { "index": 4, "label": "Sin señal 15 min" } + { + "index": 0, + "label": "Nunca" + }, + { + "index": 1, + "label": "Sin señal durante 1 minuto" + }, + { + "index": 2, + "label": "Sin señal durante 5 minutos" + }, + { + "index": 3, + "label": "Sin señal durante 10 minutos" + }, + { + "index": 4, + "label": "Sin señal durante 15 minutos" + } ] }, "turnOffScreen": { - "label": "Apagar pantalla", + "label": "Apagar la pantalla", "options": [ - { "index": 0, "label": "Siempre encendida" }, - { "index": 1, "label": "Sin operación 30 s" }, - { "index": 2, "label": "Sin operación 1 min" }, - { "index": 3, "label": "Sin operación 3 min" }, - { "index": 4, "label": "Sin operación 5 min" } + { + "index": 0, + "label": "Nunca" + }, + { + "index": 1, + "label": "30 segundos" + }, + { + "index": 2, + "label": "1 minuto" + }, + { + "index": 3, + "label": "3 minutos" + }, + { + "index": 4, + "label": "5 minutos" + } ] }, "knobBrightness": { - "label": "Brillo del mando", + "label": "Brillo del perilla", "options": [ - { "index": 0, "label": "Apagado" }, - { "index": 1, "label": "Brillante" }, - { "index": 2, "label": "Medio" }, - { "index": 3, "label": "Oscuro" } + { + "index": 0, + "label": "Desactivado" + }, + { + "index": 1, + "label": "Más brillante" + }, + { + "index": 2, + "label": "Medio" + }, + { + "index": 3, + "label": "Más oscuro" + } ] }, "sleepTime": { "label": "Reposo", "options": [ - { "index": 0, "label": "Apagado" }, - { "index": 1, "label": "Sin señal tras 1 min" }, - { "index": 2, "label": "Sin señal tras 5 min" }, - { "index": 3, "label": "Sin señal tras 10 min" } + { + "index": 0, + "label": "Desactivado" + }, + { + "index": 1, + "label": "Sin señal después de 1 min" + }, + { + "index": 2, + "label": "Sin señal después de 5 min" + }, + { + "index": 3, + "label": "Sin señal después de 10 min" + } ] }, "buttonLight": { - "label": "Luz de respiración del mando (pantalla apagada)", + "label": "Luz de respiración de la perilla", "options": [ - { "index": 0, "label": "Encendido" }, - { "index": 1, "label": "Apagado" } + { + "index": 0, + "label": "Activado" + }, + { + "index": 1, + "label": "Desactivado" + } ] }, "language": { "label": "Idioma", "options": [ - { "index": 0, "label": "Inglés" }, - { "index": 1, "label": "Chino Tradicional" }, - { "index": 2, "label": "Chino Simplificado" }, - { "index": 3, "label": "Alemán" }, - { "index": 4, "label": "Español" }, - { "index": 5, "label": "Francés" } + { + "index": 0, + "label": "Inglés" + }, + { + "index": 1, + "label": "Chino tradicional" + }, + { + "index": 2, + "label": "Chino simplificado" + } ] }, "Automatic": { - "label": "Regresar automáticamente al inicio", + "label": "Retorno automático a la página de inicio", "options": [ - { "index": 0, "label": "Desactivado" }, - { "index": 1, "label": "Sin operación 20 s" }, - { "index": 2, "label": "Sin operación 40 s" }, - { "index": 3, "label": "Sin operación 60 s" } + { + "index": 0, + "label": "Nunca" + }, + { + "index": 1, + "label": "20 segundos de inactividad" + }, + { + "index": 2, + "label": "40 segundos de inactividad" + }, + { + "index": 3, + "label": "60 segundos de inactividad" + } ] + }, + "systemPage": { + "sectionDisplay": "Pantalla", + "sectionGeneral": "General", + "sectionAbout": "Acerca de", + "screenBrightnessDesc": "Ajustar el brillo general de la pantalla", + "turnOffScreenDesc": "Tiempo antes de que la pantalla se apague después de inactividad", + "knobBrightnessDesc": "Brillo de los LED indicadores de la perilla", + "buttonLightDesc": "Efecto de luz de respiración en la perilla cuando la pantalla está bloqueada", + "languageDesc": "Idioma de visualización del sistema", + "automaticDesc": "Volver automáticamente a la pantalla de inicio después de un período de inactividad", + "sleepDesc": "Cuando el dispositivo entra en modo de reposo o bajo consumo", + "deviceName": "Nombre del dispositivo", + "firmwareVersion": "Versión de firmware", + "macAddress": "Dirección MAC", + "deviceIp": "IP del dispositivo" } }, "prompt": { "prompt": "Aviso", - "NotAdded": "Auriculares no agregados. ¿Desea agregarlos?", + "NotAdded": "No se han agregado auriculares, ¿desea agregar auriculares?", "confirm": "Confirmar", "cancel": "Cancelar", "save": "Guardar", @@ -257,17 +809,96 @@ "delete": "Eliminar", "add": "Agregar", "edit": "Editar", - "deleteConfirm": "¿Desea eliminar?", - "saveConfirm": "¿Confirmar guardado?", - "HP-EQ": "HP-EQ no está activado. ¿Desea activarlo?", - "Effect": "Effect no está activado. ¿Desea activarlo?", + "deleteConfirm": "Confirmar eliminación", + "saveConfirm": "Confirmar guardado", + "HP-EQ": "HP-EQ está desactivado, ¿desea activarlo?", + "Effect": "El efecto está desactivado, ¿desea activarlo?", "EnableEffectY": "Sí", "EnableEffectN": "No", - "noDelete": "Este elemento no puede eliminarse", - "SavePreset": "Nuevo preajuste", + "noDelete": "Este elemento no se puede eliminar", + "SavePreset": "Nuevo ajuste", "default": "Predeterminado", "invalidData": "Datos no válidos", "range": "Rango", - "selectedYet": "Aún no has seleccionado una curva objetivo" + "selectedYet": "Curva objetivo aún no seleccionada", + "leftChannel": "Canal izquierdo", + "rightChannel": "Canal derecho" + }, + "ai": { + "title": "Luxsin IA", + "welcomeTitle": "Hola, soy Luxsin IA", + "welcomeDescription": "Puedo ayudar con la configuración del sistema Luxsin X8, análisis de respuesta en frecuencia de auriculares, optimización EQ y orientación avanzada de configuración de audio.", + "suggestionsLabel": "Pruebe a preguntar", + "suggestions": [ + { + "title": "Optimización EQ", + "prompt": "Optimiza mi EQ actual para voces más claras y graves más profundos." + }, + { + "title": "Recomendar EQ Pop", + "prompt": "Recomienda un conjunto de parámetros EQ adecuados para música pop." + }, + { + "title": "Verificar estado del dispositivo", + "prompt": "Muéstrame el volumen actual, la fuente de entrada y el puerto de salida." + }, + { + "title": "Cambiar fuente de entrada", + "prompt": "Cambia la fuente de entrada a USB-C." + } + ], + "inputPlaceholder": "Pregunte sobre su dispositivo, EQ, efectos…", + "thinking": "Pensando…", + "stopped": "(Detenido)", + "requestFailed": "Error en la solicitud. Inténtelo más tarde.", + "ariaSend": "Enviar", + "ariaStop": "Detener", + "ariaNewChat": "Nuevo chat", + "ariaHistory": "Historial", + "ariaClose": "Cerrar", + "ariaFullPage": "Abrir pantalla completa", + "ariaHidePanel": "Ocultar panel IA", + "ariaRestoreSplit": "Restaurar vista dividida", + "clearCurrent": "Borrar este chat", + "cleared": "Chat actual borrado", + "clearFailed": "Error al borrar: {message}", + "deviceRequired": "Conecte primero un dispositivo", + "deviceDisconnected": "Dispositivo desconectado", + "loadHistoryFailed": "Error al cargar el historial: {message}", + "loadChatFailed": "Error al cargar el chat: {message}", + "toolResultFailed": "Error al enviar el resultado de la herramienta: {message}", + "history": { + "title": "Historial de chats", + "newChat": "Iniciar un nuevo chat", + "empty": "Aún no hay historial de chats", + "current": "Actual", + "delete": "Eliminar", + "deleteConfirm": "¿Eliminar este chat? Esta acción no se puede deshacer.", + "deleted": "Chat eliminado", + "deleteFailed": "Error al eliminar: {message}" + }, + "optimize": { + "badge": "Optimización", + "applied": "Aplicado", + "summary": "{count} filtros · preamplificación {preamp} dB", + "compare": "Comparar", + "apply": "Aplicar", + "rollback": "Revertir", + "applySuccess": "Nuevo EQ aplicado", + "rollbackSuccess": "Revertido al EQ original", + "applyFailed": "Error en la operación: {message}" + }, + "compareDialog": { + "title": "Comparación EQ", + "legendBefore": "Antes", + "legendAfter": "Después", + "legendCurrent": "Actual", + "legendAfterApply": "Después de aplicar", + "legendAfterRollback": "Después de revertir", + "close": "Cerrar", + "apply": "Aplicar esta optimización", + "rollback": "Revertir al original", + "paramSummary": "{count} filtros · preamplificación {preamp} dB" + } } } diff --git a/client/src/locales/data-fr.json b/client/src/locales/data-fr.json index 4947185..3dabbac 100644 --- a/client/src/locales/data-fr.json +++ b/client/src/locales/data-fr.json @@ -1,172 +1,621 @@ { - "home": { "audioSet": "Paramètres audio" }, + "connect": { + "ipMissingTitle": "IP de l'appareil non spécifiée", + "ipMissingDesc": "Veuillez ajouter l'IP de l'appareil dans la barre d'adresse avant d'ouvrir cette page, par exemple :", + "connecting": "Connexion à {ip}…", + "failedTitle": "Échec de la connexion", + "failedDesc": "Vérifiez l'IP de l'appareil et votre connexion réseau.", + "failedHint": "Spécifiez l'appareil dans l'URL, par ex. ?ip=10.0.0.119" + }, + "home": { + "audioSet": "Réglage audio", + "systemSet": "Système", + "power": "Alimentation", + "input": "Entrée", + "output": "Sortie", + "vu": "VU-mètre", + "powerOffConfirmTitle": "Éteindre l'appareil ?", + "powerOffConfirmDesc": "L'appareil sera éteint et déconnecté de cette application. Voulez-vous continuer ?", + "powerOffConfirmOk": "Éteindre", + "powerOffConfirmCancel": "Annuler", + "volumeMinConfirmTitle": "Mettre le volume au minimum ?", + "volumeMinConfirmDesc": "Le volume sera réglé au niveau le plus bas (muet). Continuer ?", + "volumeMinConfirmOk": "Mettre au minimum", + "volumeMaxConfirmTitle": "Mettre le volume au maximum ?", + "volumeMaxConfirmDesc": "Le volume sera réglé au niveau le plus élevé. Continuer ?", + "volumeMaxConfirmOk": "Mettre au maximum", + "volumePassthroughLockedToast": "Le volume est en mode passage et ne peut pas être ajusté.", + "volumePassthroughLockedHint": "Le volume est en mode passage et ne peut pas être ajusté.", + "powerOffToastDemo": "Mode démo : commande d'extinction envoyée.", + "powerOffToastSent": "Commande d'extinction envoyée.", + "doubleClickHint": "Double-clic pour entrer", + "backToLegacy": "Ancienne version" + }, + "vuPage": { + "title": "Galerie VU-mètre" + }, + "bottomNav": { + "community": "Communauté", + "hpEq": "HP-EQ", + "home": "Accueil", + "effects": "Effets", + "myAi": "Mon IA" + }, + "communityPage": { + "title": "Communauté", + "intro": "Le forum s'ouvre mieux dans le navigateur de votre système. Copiez le lien complet ci-dessous, collez-le dans la barre d'adresse de votre navigateur mobile et ouvrez-le.", + "copyLink": "Copier le lien", + "toastCopied": "Lien copié", + "toastCopyFailed": "Impossible de copier. Appuyez longuement sur le lien pour le copier manuellement." + }, "source": { "label": "Entrée/Sortie", + "pageTitle": "E/S", + "inputSection": "Entrée", + "outputSection": "Sortie", + "inputOptions": [ + "USB-B", + "USB-C", + "Coaxial", + "Optique", + "Bluetooth", + "IIS" + ], + "outputOptions": [ + "XLR", + "RCA", + "Casque", + "XLR/RCA" + ], "input": { - "coaxial": "Coaxial", - "optical": "Optique", - "bluetooth": "Bluetooth", - "rca": "RCA analogique" + "coaxial": "COAXIAL", + "optical": "OPTIQUE", + "bluetooth": "BLUETOOTH", + "rca": "RCA" }, - "output": { "headset": "Casque" } + "output": { + "headset": "Casque" + } }, "effect": { + "pageTitle": "Effets", + "selectStyleTitle": "Sélectionner le style sonore", + "selectCrossfeedTitle": "Sélectionner le préréglage crossfeed", "lowBass": "Basses", "enterBass": "Médiums", "highBass": "Aigus", - "tone": "Ton", - "delayed": "Retard", + "tone": "Tonalité", "loudness": "Sonie", "threshold": "Seuil", - "mainframeCase": "Châssis principal", + "delayed": "Délai", + "mainframeCase": "Haut-parleur principal", "subwooferUnit": "Caisson de basses", "style": { "label": "Style", "options": [ - { "index": 0, "label": "Classique" }, - { "index": 1, "label": "Dance" }, - { "index": 2, "label": "Pop" }, - { "index": 3, "label": "Reggae" }, - { "index": 4, "label": "Live" }, - { "index": 5, "label": "Rock" }, - { "index": 6, "label": "Doux" }, - { "index": 7, "label": "Électronique" }, - { "index": 8, "label": "Club" }, - { "index": 9, "label": "Tout basses" }, - { "index": 10, "label": "Tout aigus" }, - { "index": 11, "label": "Casque" }, - { "index": 12, "label": "Hall" }, - { "index": 13, "label": "Aggrégé" }, - { "index": 14, "label": "Ska" }, - { "index": 15, "label": "Slow" } + { + "index": 0, + "label": "Classique" + }, + { + "index": 1, + "label": "Dance" + }, + { + "index": 2, + "label": "Pop" + }, + { + "index": 3, + "label": "Reggae" + }, + { + "index": 4, + "label": "Live" + }, + { + "index": 5, + "label": "Rock" + }, + { + "index": 6, + "label": "Doux" + }, + { + "index": 7, + "label": "Électronique" + }, + { + "index": 8, + "label": "Club" + }, + { + "index": 9, + "label": "Pleine basse" + }, + { + "index": 10, + "label": "Plein aigu" + }, + { + "index": 11, + "label": "Casque" + }, + { + "index": 12, + "label": "Hall" + }, + { + "index": 13, + "label": "Fête" + }, + { + "index": 14, + "label": "Ska" + }, + { + "index": 15, + "label": "Slow rock" + } + ] + }, + "stereoWidth": { + "label": "Largeur stéréo" + }, + "crossfeed": { + "label": "Crossfeed", + "options": [ + "BS2B défaut (700 Hz, 4,5 dB)", + "BS2B populaire (700 Hz, 6 dB)", + "BS2B relax (650 Hz, 9,5 dB)" ] }, - "stereoWidth": { "label": "Largeur stéréo" }, - "crossfeed": { "label": "Crossfeed" }, "subwoofer": { - "label": "Sortie caisson de basses", + "label": "Caisson de basses", "freq": "Fréquence de coupure", "attenuation": "Pente d'atténuation", - "gain": "Renforcement basses", + "gain": "Gain", "output": { - "label": "Mode de sortie", + "label": "Type de sortie", "options": [ - { "label": "Mono", "index": 0 }, - { "label": "Stéréo", "index": 1 } + { + "label": "Mono(Mix)", + "index": 0 + }, + { + "label": "Stéréo", + "index": 1 + } ] } - } + }, + "enableConfirmTitle": "Les effets sont désactivés", + "enableConfirmDesc": "Les effets sont actuellement désactivés. Les activer ?", + "enableConfirmOk": "Activer", + "enableConfirmCancel": "Annuler" }, "peq": { - "Standard": "Préréglages EQ standard", - "edit": "Édition groupée", - "headset": "Ajouter modèle casque", - "preamp": "Gain global", + "Standard": "Préréglage d'égaliseur standard", + "edit": "Édition par lot", + "headset": "Ajouter un casque", + "preamp": "Préampli", "filters": { "label": "Filtres", "options": [ { "index": 0, "title": "LPF", - "desc1": "Filtre passe-bas, ne laisse passer que", - "desc2": "les signaux en dessous d'une certaine", - "desc3": "fréquence de coupure, atténue les aigus.", + "desc1": "Filtre passe-bas, ne laisse passer que les signaux ", + "desc2": "en dessous d'une certaine fréquence de coupure, ", + "desc3": "et les signaux haute fréquence sont atténués.", "img": "LPF.png" }, { "index": 1, "title": "HPF", - "desc1": "Filtre passe-haut, ne laisse passer que", - "desc2": "les signaux au-dessus d'une certaine", - "desc3": "fréquence de coupure, atténue les basses.", + "desc1": "Filtre passe-haut, ne laisse passer que les signaux ", + "desc2": "au-dessus d'une certaine fréquence de coupure,", + "desc3": "et les signaux basse fréquence sont atténués.", "img": "HPF.png" }, { "index": 2, "title": "BPF", "img": "BPF.png", - "desc1": "Filtre passe-bande, ne laisse passer", - "desc2": "qu'une plage de fréquences spécifique,", - "desc3": "atténue les autres fréquences." + "desc1": "Filtre passe-bande, ne laisse passer que les signaux", + "desc2": "dans une certaine plage de fréquences, ", + "desc3": "et les autres fréquences sont atténuées." }, { "index": 3, "title": "NOTCH", "img": "NOTCH.png", - "desc1": "Filtre coupe-bande, élimine les", - "desc2": "résonances ou interférences spécifiques." + "desc1": "Filtre coupe-bande, utilisé pour éliminer la résonance", + "desc2": "ou les signaux d'interférence à des fréquences spécifiques." }, { "index": 4, "title": "PEAK", "img": "PEAK.png", - "desc1": "Filtre peak, amplifie ou atténue", - "desc2": "les signaux autour d'une fréquence." + "desc1": "Filtre de pic, renforce ou affaiblit le ", + "desc2": "signal autour d'une certaine fréquence." }, { "index": 5, "title": "LSHELF", "img": "LSHELF.png", - "desc1": "Étage bas, renforce ou atténue", - "desc2": "les fréquences basses." + "desc1": "Filtre en plateau bas, utilisé pour ", + "desc2": "renforcer ou réduire les signaux basse fréquence." }, { "index": 5, "title": "HSHELF", "img": "HSHELF.png", - "desc1": "Étage haut, renforce ou atténue", - "desc2": "les fréquences hautes." + "desc1": "Filtre en plateau haut, utilisé pour ", + "desc2": "renforcer ou réduire les signaux haute fréquence." }, { "index": 6, "title": "APF", "img": "APF.png", - "desc1": "Filtre passe-tout, conserve l'amplitude", - "desc2": "mais modifie la phase du signal." + "desc1": "Filtre passe-tout, l'amplitude du signal de sortie", + "desc2": "reste inchangée, mais la phase change." } ] }, "freq": "FREQ", "gain": "GAIN", - "q": "Facteur Q", - "loadDeviceBtn": "Charger", - "peqNoneItem": "Non configuré" + "q": "Valeur Q", + "loadDeviceBtn": "Confirmer", + "peqNoneItem": "Non configuré", + "eqUi": { + "batchEditTitle": "Édition par lot", + "batchEditHint": "11 lignes au total : la ligne 1 est Preamp, les lignes 2–11 sont Filtre 1–10. Sauvegarder écrase le préréglage actuel du casque.", + "addPresetTitle": "Nouveau préréglage", + "addPresetNameEmpty": "Le nom ne peut pas être vide", + "addPresetNameExists": "Ce nom existe déjà. Choisissez-en un autre.", + "toastAddPresetOk": "Préréglage ajouté", + "toastAddPresetFail": "Échec de l'ajout du préréglage", + "toastPresetLimitReached": "Limite de préréglages atteinte ({{max}}). Supprimez des préréglages avant d'en ajouter.", + "cancel": "Annuler", + "save": "Sauvegarder", + "tabBrands": "Marques", + "tabModels": "Modèles", + "tabTarget": "Cible", + "searchPlaceholder": "Rechercher une marque ou un modèle", + "searching": "Recherche…", + "noSearchResults": "Aucune marque ou modèle correspondant", + "loading": "Chargement…", + "noBrandMatch": "Aucune marque correspondante", + "selectBrandFirst": "Choisissez d'abord une marque dans l'onglet Marques", + "brandLabel": "Marque :", + "modelFromSearchLabel": "Modèle depuis la recherche :", + "noModelsForBrand": "Aucun modèle pour cette marque", + "targetBrand": "Marque :", + "targetModel": "Modèle :", + "targetForm": "Forme :", + "formAll": "Tous", + "confirmLoading": "Traitement…", + "confirmButton": "Confirmer", + "selectModelFirst": "Veuillez d'abord sélectionner un modèle", + "noTargets": "Aucune courbe cible disponible", + "closeDrawer": "Fermer", + "toastBatchApplied": "Édition par lot appliquée", + "toastBatchParseError": "Format d'édition par lot invalide", + "toastBrandsFail": "Échec du chargement des marques", + "toastModelsFail": "Échec du chargement des modèles", + "toastCurveFail": "Échec du chargement de la courbe", + "toastNewEqOk": "Nouveau EQ casque sauvegardé", + "toastTargetSelected": "Cible sélectionnée : {{name}}", + "deleteConfirm": "Supprimer le casque \"{{name}}\" ?", + "batchDeleteConfirm": "Supprimer {{count}} préréglage(s) sélectionné(s) ?", + "deletePresetConfirm": "Supprimer le préréglage \"{{name}}\" ?", + "toastRenamed": "Renommé", + "toastRenameFail": "Échec du renommage", + "renameEmptyName": "Le nom ne peut pas être vide", + "renameNameExists": "Le nom existe déjà", + "toastDeleted": "Casque supprimé", + "toastDeleteFail": "Échec de la suppression du casque", + "bassBoost": "Renforcement basses : fc {{fc}}, q {{q}}, gain {{gain}} dB", + "errMinLines": "Au moins 11 lignes requises (Preamp + 10 filtres)", + "errPreampFirstLine": "La ligne 1 doit ressembler à Preamp:-5.96dB", + "errPreampValue": "Valeur Preamp invalide", + "errFilterLine": "La ligne {{line}} ne correspond pas au format Filtre", + "errFilterNoRange": "Le filtre numéro {{no}} est hors plage", + "errFilterType": "Type invalide pour le filtre {{no}} ({{type}})", + "errFilterNumbers": "Nombres invalides pour le filtre {{no}}", + "errFilterAll": "Les filtres 1–10 doivent tous être présents", + "chartCopyTo": "Copier vers {{mode}}", + "chartApplyB": "Appliquer B", + "chartSaveB": "Sauvegarder B sous", + "saveBTitle": "Sauvegarder B sous", + "toastChartCopied": "Copié vers {{mode}}", + "toastApplyBSuccess": "Courbe B appliquée à A", + "toastApplyBFail": "Échec de l'application de B", + "toastSaveBOk": "Préréglage sauvegardé depuis la courbe B", + "toastSaveBFail": "Échec de la sauvegarde de la courbe B", + "enableConfirmTitle": "HP-EQ est désactivé", + "enableConfirmDesc": "HP-EQ est actuellement désactivé. L'activer ?", + "enableConfirmOk": "Activer", + "paramInputTitleFreq": "Régler la fréquence", + "paramInputTitleGain": "Régler le gain", + "paramInputTitleQ": "Régler la valeur Q", + "paramInputHintFreq": "Plage : 20 – 20000 Hz. Utilisez k pour kHz (ex. 9,5k).", + "paramInputHintGain": "Plage : -15,0 – +15,0 dB", + "paramInputHintQ": "Plage : 0,10 – 10,00", + "paramInputInvalid": "Entrez un nombre valide", + "paramInputOutOfRangeFreq": "La fréquence doit être entre {{min}} et {{max}} Hz", + "paramInputOutOfRangeGain": "Le gain doit être entre {{min}} et {{max}} dB", + "paramInputOutOfRangeQ": "Q doit être entre {{min}} et {{max}}", + "overwritePresetTitle": "Le nom du préréglage existe déjà", + "overwritePresetDesc": "Un préréglage nommé \"{{name}}\" existe déjà. L'écraser ?", + "overwritePresetConfirm": "Écraser", + "overwritePresetCancelled": "Annulé", + "shareTitle": "Partager EQ", + "shareSelectHint": "Sélectionnez le préréglage EQ à partager", + "shareConfirm": "Générer le code", + "shareCodeLabel": "Code de partage", + "shareCopied": "Code copié", + "shareGenerating": "Génération…", + "shareCreateFail": "Échec de la génération du code de partage", + "shareActiveExists": "Vous avez déjà un code de partage actif. Veuillez réessayer plus tard.", + "shareInvalidParams": "Requête invalide. Veuillez vérifier et réessayer.", + "shareSystemError": "Erreur système. Veuillez réessayer plus tard.", + "shareExpireAt": "Expire le", + "importTab": "Importer EQ", + "importCodeHint": "Entrez ou collez le code de partage à 5 caractères", + "importQuery": "Requête", + "importQuerying": "Requête en cours…", + "importCodeNotFound": "Code de partage introuvable ou expiré", + "importEqName": "Nom EQ", + "importEqNameHint": "Vous pouvez personnaliser le nom", + "importSourceModel": "Appareil source", + "importButton": "Importer", + "importSaving": "Importation…", + "importSuccess": "EQ importé avec succès", + "importFail": "Échec de l'importation de l'EQ", + "mySharesTab": "Mes partages", + "mySharesLoading": "Chargement…", + "mySharesEmpty": "Aucun EQ partagé pour le moment", + "mySharesCode": "Code", + "mySharesName": "Nom EQ", + "mySharesLoadFail": "Échec du chargement de la liste des partages", + "mySharesDeleteConfirmTitle": "Supprimer le code de partage", + "mySharesDeleteConfirmDesc": "Supprimer le code de partage {{code}} ? Il ne sera plus disponible à l'importation.", + "mySharesDeleteConfirmOk": "Supprimer", + "mySharesDeleteSuccess": "Code de partage supprimé", + "mySharesDeleteFail": "Échec de la suppression du code de partage" + }, + "share": "Partager EQ" }, "dac": { - "balance": "Balance L/R", + "sectionBalanceSensitivity": "Balance et sensibilité", + "sectionOutput": "Caractéristiques de sortie", + "sectionIisSettings": "Paramètres IIS", + "sectionSystemInterface": "Système et interface", + "balance": "Balance gauche-droite", + "sensitivity": "Sensibilité VU-mètre", "filters": { - "label": "Caractéristiques filtre", + "label": "Filtres", "options": [ - { "index": 0, "label": "Déclin rapide" }, - { "index": 1, "label": "Déclin lent" }, - { "index": 2, "label": "Déclin rapide court délai" }, - { "index": 3, "label": "Déclin lent court délai" }, - { "index": 4, "label": "Déclin très lent" }, - { "index": 5, "label": "Court délai faible dispersion" } + { + "index": 0, + "label": "Coupure rapide" + }, + { + "index": 1, + "label": "Coupure lente" + }, + { + "index": 2, + "label": "Court délai coupure rapide" + }, + { + "index": 3, + "label": "Court délai coupure lente" + }, + { + "index": 4, + "label": "Filtre de désaccentuation" + }, + { + "index": 5, + "label": "Non-suréchantillonnage" + } ] }, - "headPhoneGain": { + "dacGain": { "label": "Gain casque", "options": [ - { "index": 0, "label": "Faible" }, - { "index": 1, "label": "Moyen" }, - { "index": 2, "label": "Élevé" } + { + "index": 0, + "label": "Faible" + }, + { + "index": 1, + "label": "Moyen" + }, + { + "index": 2, + "label": "Élevé" + } ] }, - "volumeStep": "Pas volume", - "bootVolume": "Volume démarrage", - "xlr": { - "label": "Polarité XLR", + "autoImpedance": { + "label": "Détection automatique d'impédance", "options": [ - { "index": 0, "label": "Normal" }, - { "index": 1, "label": "Inversé" } + { + "index": 0, + "label": "Désactivé" + }, + { + "index": 1, + "label": "Activé" + } + ] + }, + "dreMode": { + "label": "Amélioration de la plage dynamique", + "options": [ + { + "index": 0, + "label": "Désactivé" + }, + { + "index": 1, + "label": "Activé" + } + ] + }, + "dacVolumeDirect": { + "label": "Passage de volume pré-sortie", + "options": [ + { + "index": 0, + "label": "Désactivé" + }, + { + "index": 1, + "label": "0dB" + }, + { + "index": 2, + "label": "-12dB" + } + ] + }, + "dacVolumeDirectConfirm": { + "title0db": "Activer le passage 0 dB ?", + "desc0db": "Le mode passage met le volume au maximum et désactive le réglage du volume.", + "title12db": "Activer le passage -12 dB ?", + "desc12db": "Le mode passage met le volume à -12 dB et désactive le réglage du volume.", + "confirm": "Confirmer", + "cancel": "Annuler" + }, + "volumeStep": "Pas de volume", + "bootVolume": { + "label": "Volume de démarrage", + "options": [ + { + "index": 0, + "label": "Par défaut" + }, + { + "index": 1, + "label": "-5dB" + }, + { + "index": 2, + "label": "-10dB" + }, + { + "index": 3, + "label": "-15dB" + }, + { + "index": 4, + "label": "-20dB" + }, + { + "index": 5, + "label": "-25dB" + }, + { + "index": 6, + "label": "-30dB" + }, + { + "index": 7, + "label": "-35dB" + }, + { + "index": 8, + "label": "-40dB" + }, + { + "index": 9, + "label": "-45dB" + }, + { + "index": 10, + "label": "-50dB" + } + ] + }, + "xlr": { + "label": "Polarité du port XLR", + "options": [ + { + "index": 0, + "label": "Normal" + }, + { + "index": 1, + "label": "Inversé" + } ] }, "arc": { "label": "Mode ARC", "options": [ - { "index": 0, "label": "ARC" }, - { "index": 1, "label": "eARC" } + { + "index": 0, + "label": "ARC" + }, + { + "index": 1, + "label": "EARC" + } + ] + }, + "mutePolar": { + "label": "Polarité de sourdine", + "options": [ + { + "index": 0, + "label": "Bas(sourdine)" + }, + { + "index": 1, + "label": "Haut(sourdine)" + } + ] + }, + "IISMode": { + "label": "Mode IIS", + "options": [ + { + "index": 0, + "label": "Mode 1" + }, + { + "index": 1, + "label": "Mode 2" + }, + { + "index": 2, + "label": "Mode 3" + }, + { + "index": 3, + "label": "Mode 4" + }, + { + "index": 4, + "label": "Mode 5" + }, + { + "index": 5, + "label": "Mode 6" + }, + { + "index": 6, + "label": "Mode 7" + }, + { + "index": 7, + "label": "Mode 8" + } ] } }, @@ -174,100 +623,282 @@ "vu": "Paramètres", "vuMeter": "VU-mètre", "screenBrightness": { - "label": "Luminosité écran", + "label": "Luminosité de l'écran", "options": [ - { "index": 0, "label": "Élevée" }, - { "index": 1, "label": "Moyenne" }, - { "index": 2, "label": "Faible" } + { + "index": 0, + "label": "Plus lumineux" + }, + { + "index": 1, + "label": "Moyen" + }, + { + "index": 2, + "label": "Plus sombre" + } ] }, "sleep": { "label": "Veille", "options": [ - { "index": 0, "label": "Désactivée" }, - { "index": 1, "label": "1 min sans signal" }, - { "index": 2, "label": "5 min sans signal" }, - { "index": 3, "label": "10 min sans signal" }, - { "index": 4, "label": "15 min sans signal" } + { + "index": 0, + "label": "Jamais" + }, + { + "index": 1, + "label": "Pas de signal pendant 1 minute" + }, + { + "index": 2, + "label": "Pas de signal pendant 5 minutes" + }, + { + "index": 3, + "label": "Pas de signal pendant 10 minutes" + }, + { + "index": 4, + "label": "Pas de signal pendant 15 minutes" + } ] }, "turnOffScreen": { - "label": "Éteindre écran", + "label": "Éteindre l'écran", "options": [ - { "index": 0, "label": "Toujours allumé" }, - { "index": 1, "label": "30s inactivité" }, - { "index": 2, "label": "1 min inactivité" }, - { "index": 3, "label": "3 min inactivité" }, - { "index": 4, "label": "5 min inactivité" } + { + "index": 0, + "label": "Jamais" + }, + { + "index": 1, + "label": "30 secondes" + }, + { + "index": 2, + "label": "1 minute" + }, + { + "index": 3, + "label": "3 minutes" + }, + { + "index": 4, + "label": "5 minutes" + } ] }, "knobBrightness": { - "label": "Luminosité bouton", + "label": "Luminosité du bouton", "options": [ - { "index": 0, "label": "Désactivée" }, - { "index": 1, "label": "Élevée" }, - { "index": 2, "label": "Moyenne" }, - { "index": 3, "label": "Faible" } + { + "index": 0, + "label": "Désactivé" + }, + { + "index": 1, + "label": "Plus lumineux" + }, + { + "index": 2, + "label": "Moyen" + }, + { + "index": 3, + "label": "Plus sombre" + } ] }, "sleepTime": { "label": "Veille", "options": [ - { "index": 0, "label": "Désactivé" }, - { "index": 1, "label": "Aucun signal après 1 min" }, - { "index": 2, "label": "Aucun signal après 5 min" }, - { "index": 3, "label": "Aucun signal après 10 min" } + { + "index": 0, + "label": "Désactivé" + }, + { + "index": 1, + "label": "Pas de signal après 1 min" + }, + { + "index": 2, + "label": "Pas de signal après 5 min" + }, + { + "index": 3, + "label": "Pas de signal après 10 min" + } ] }, "buttonLight": { - "label": "Lumière respiratoire du bouton (écran éteint)", + "label": "Lumière respirante du bouton", "options": [ - { "index": 0, "label": "Activé" }, - { "index": 1, "label": "Désactivé" } + { + "index": 0, + "label": "Activé" + }, + { + "index": 1, + "label": "Désactivé" + } ] }, "language": { "label": "Langue", "options": [ - { "index": 0, "label": "Anglais" }, - { "index": 1, "label": "Chinois (Traditionnel)" }, - { "index": 2, "label": "Chinois (Simplifié)" }, - { "index": 3, "label": "Allemand" }, - { "index": 4, "label": "Espagnol" }, - { "index": 5, "label": "Français" } + { + "index": 0, + "label": "Anglais" + }, + { + "index": 1, + "label": "Chinois traditionnel" + }, + { + "index": 2, + "label": "Chinois simplifié" + } ] }, "Automatic": { - "label": "Retour auto. accueil", + "label": "Retour automatique à la page d'accueil", "options": [ - { "index": 0, "label": "Désactivé" }, - { "index": 1, "label": "20s inactivité" }, - { "index": 2, "label": "40s inactivité" }, - { "index": 3, "label": "60s inactivité" } + { + "index": 0, + "label": "Jamais" + }, + { + "index": 1, + "label": "20 secondes d'inactivité" + }, + { + "index": 2, + "label": "40 secondes d'inactivité" + }, + { + "index": 3, + "label": "60 secondes d'inactivité" + } ] + }, + "systemPage": { + "sectionDisplay": "Affichage", + "sectionGeneral": "Général", + "sectionAbout": "À propos", + "screenBrightnessDesc": "Ajuster la luminosité globale de l'écran", + "turnOffScreenDesc": "Délai avant l'extinction de l'écran après inactivité", + "knobBrightnessDesc": "Luminosité des LED indicatrices du bouton", + "buttonLightDesc": "Effet de lumière respirante sur le bouton lorsque l'écran est verrouillé", + "languageDesc": "Langue d'affichage du système", + "automaticDesc": "Retour automatique à l'écran d'accueil après une période d'inactivité", + "sleepDesc": "Quand l'appareil passe en mode veille ou basse consommation", + "deviceName": "Nom de l'appareil", + "firmwareVersion": "Version du firmware", + "macAddress": "Adresse MAC", + "deviceIp": "IP de l'appareil" } }, "prompt": { - "prompt": "Avertissement", - "NotAdded": "Aucun casque ajouté. Ajouter un casque ?", + "prompt": "Invite", + "NotAdded": "Aucun casque ajouté, souhaitez-vous ajouter un casque ?", "confirm": "Confirmer", "cancel": "Annuler", - "save": "Enregistrer", + "save": "Sauvegarder", "reset": "Réinitialiser", "delete": "Supprimer", "add": "Ajouter", - "edit": "Éditer", - "deleteConfirm": "Confirmer la suppression ?", - "saveConfirm": "Confirmer l'enregistrement ?", - "HP-EQ": "HP-EQ désactivé, activer ?", - "Effect": "Effet désactivé, activer ?", - "EnableEffectY": "Confirmer", - "EnableEffectN": "Annuler", - "noDelete": "Impossible de supprimer", + "edit": "Modifier", + "deleteConfirm": "Confirmer la suppression", + "saveConfirm": "Confirmer la sauvegarde", + "HP-EQ": "HP-EQ est désactivé, voulez-vous l'activer ?", + "Effect": "L'effet est désactivé, voulez-vous l'activer ?", + "EnableEffectY": "Oui", + "EnableEffectN": "Non", + "noDelete": "Cet élément ne peut pas être supprimé", "SavePreset": "Nouveau préréglage", "default": "Par défaut", "invalidData": "Données invalides", "range": "Plage", - "selectedYet": "Aucune courbe cible sélectionnée" + "selectedYet": "Courbe cible pas encore sélectionnée", + "leftChannel": "Canal gauche", + "rightChannel": "Canal droit" + }, + "ai": { + "title": "Luxsin IA", + "welcomeTitle": "Bonjour, je suis Luxsin IA", + "welcomeDescription": "Je peux vous aider avec la configuration du système Luxsin X8, l'analyse de la réponse en fréquence des casques, l'optimisation EQ et les conseils avancés de configuration audio.", + "suggestionsLabel": "Essayez de demander", + "suggestions": [ + { + "title": "Optimisation EQ", + "prompt": "Optimise mon EQ actuel pour des voix plus claires et des basses plus profondes." + }, + { + "title": "Recommander EQ Pop", + "prompt": "Recommande un ensemble de paramètres EQ adaptés à la musique pop." + }, + { + "title": "Vérifier l'état de l'appareil", + "prompt": "Montre-moi le volume actuel, la source d'entrée et le port de sortie." + }, + { + "title": "Changer la source d'entrée", + "prompt": "Change la source d'entrée vers USB-C." + } + ], + "inputPlaceholder": "Posez des questions sur votre appareil, EQ, effets…", + "thinking": "Réflexion…", + "stopped": "(Arrêté)", + "requestFailed": "Échec de la requête. Veuillez réessayer plus tard.", + "ariaSend": "Envoyer", + "ariaStop": "Arrêter", + "ariaNewChat": "Nouveau chat", + "ariaHistory": "Historique", + "ariaClose": "Fermer", + "ariaFullPage": "Ouvrir en plein écran", + "ariaHidePanel": "Masquer le panneau IA", + "ariaRestoreSplit": "Restaurer la vue partagée", + "clearCurrent": "Effacer ce chat", + "cleared": "Chat actuel effacé", + "clearFailed": "Échec de l'effacement : {message}", + "deviceRequired": "Veuillez d'abord connecter un appareil", + "deviceDisconnected": "Appareil déconnecté", + "loadHistoryFailed": "Échec du chargement de l'historique : {message}", + "loadChatFailed": "Échec du chargement du chat : {message}", + "toolResultFailed": "Échec de l'envoi du résultat de l'outil : {message}", + "history": { + "title": "Historique des chats", + "newChat": "Démarrer un nouveau chat", + "empty": "Pas encore d'historique de chat", + "current": "Actuel", + "delete": "Supprimer", + "deleteConfirm": "Supprimer ce chat ? Cette action est irréversible.", + "deleted": "Chat supprimé", + "deleteFailed": "Échec de la suppression : {message}" + }, + "optimize": { + "badge": "Optimisation", + "applied": "Appliqué", + "summary": "{count} filtres · préampli {preamp} dB", + "compare": "Comparer", + "apply": "Appliquer", + "rollback": "Annuler", + "applySuccess": "Nouvel EQ appliqué", + "rollbackSuccess": "Retour à l'EQ d'origine", + "applyFailed": "Échec de l'opération : {message}" + }, + "compareDialog": { + "title": "Comparaison EQ", + "legendBefore": "Avant", + "legendAfter": "Après", + "legendCurrent": "Actuel", + "legendAfterApply": "Après application", + "legendAfterRollback": "Après annulation", + "close": "Fermer", + "apply": "Appliquer cette optimisation", + "rollback": "Retour à l'original", + "paramSummary": "{count} filtres · préampli {preamp} dB" + } } }