diff --git a/.vscode/settings.json b/.vscode/settings.json index 08bec04..7bc1d54 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -17,11 +17,28 @@ "feedback.provider.sftp-server", "feedback.task.estimate-results", "feedback.provider.required-either-known-host-data", - "feedback.provider.required-either-key-file" + "feedback.provider.required-either-key-file", + "feedback.policy.files.ignore-files-help", + "feedback.policy.scheduling.cron-help" ], "i18n-ally.extract.ignoredByFiles": { "src\\components\\policy-editor\\PolicyEditor.jsx": [ "Do not cross filesystem boundaries when creating a snapshot" + ], + "src\\components\\policy-editor\\UpcomingSnapshotTimes.jsx": [ + "L LT" + ], + "src\\contexts\\UIPreferencesContext.tsx": [ + "(prefers-color-scheme: dark)" + ], + "src\\pages\\Policies.jsx": [ + "policy list" ] - } + }, + "i18n-ally.extract.ignored": [ + " (", + " (", + ")", + ")" + ] } \ No newline at end of file diff --git a/public/locales/de/translation.json b/public/locales/de/translation.json index 5e1a30c..c1bf1ad 100644 --- a/public/locales/de/translation.json +++ b/public/locales/de/translation.json @@ -8,6 +8,8 @@ "common.next": "Weiter", "common.return": "Zurück", "enter-object-name-prefix-or-leave-empty-hint": "Geben Sie das Präfix für den Objektnamen ein oder lassen Sie es leer", + "event.cli.copy-to-clipboard": "In die Zwischenablage kopieren", + "event.cli.show-cli-equivalent": "Klicken Sie, um das CLI-Äquivalent anzuzeigen", "event.description.cancel": "Abbrechen", "event.description.new": "Geben Sie eine neue Beschreibung ein", "event.description.remove": "Beschreibung entfernen", @@ -19,14 +21,21 @@ "event.pin.remove": "Pin entfernen", "event.pin.snapshot-pin": "Snapshot anheften", "event.pin.update": "Pin aktualisieren", + "event.policy.delete": "Richtlinie löschen", + "event.policy.edit": "Bearbeiten", + "event.policy.save": "Richtlinie speichern", + "event.policy.set": "Richtlinie festlegen", "event.repository.advanced-options-hide": "Erweiterte Optionen ausblenden", "event.repository.advanced-options.show": "Erweiterte Optionen anzeigen", "event.repository.connect-to-repository": "Mit Repository verbinden", "event.repository.create-repository": "Repository erstellen", + "event.task.cancel": "Aufgabe abbrechen", "feedback.description.modal-title": "Beschreibung des Snapshots", + "feedback.error.common": "Fehler", "feedback.error.connection": "Verbindungsfehler:", "feedback.header.actions": "Aktionen", "feedback.header.defined": "Definiert", + "feedback.header.details": "Details", "feedback.header.directories": "Verzeichnisse", "feedback.header.effective": "Angewandt", "feedback.header.files": "Dateien", @@ -38,6 +47,16 @@ "feedback.header.username": "Nutzername", "feedback.pin.name": "Name des Pins", "feedback.pin.standard-text": "Nicht löschen", + "feedback.policy.action.command-mode": "Befehlsmodus", + "feedback.policy.actions.after-folder": "Nach dem Ordner", + "feedback.policy.actions.after-folder-help": "Skript zur Ausführung nach dem Ordner", + "feedback.policy.actions.after-snapshot": "Nach dem Schnappschuss", + "feedback.policy.actions.after-snapshot-help": "Skript, das nach dem Snapshot ausgeführt wird", + "feedback.policy.actions.before-folder": "Vor dem Ordner", + "feedback.policy.actions.before-folder-help": "Skript, das vor dem Ordner ausgeführt werden soll", + "feedback.policy.actions.before-snapshot": "Vor dem Schnappschuss", + "feedback.policy.actions.before-snapshot-help": "Skript, das vor dem Snapshot ausgeführt werden soll", + "feedback.policy.actions.timeout": "Auszeit", "feedback.policy.command-mode-help": "Wesentlich (muss erfolgreich sein; Standardverhalten), optional (Fehler werden toleriert) oder asynchron (Kopia startet die Aktion, wartet aber nicht auf deren Abschluss)", "feedback.policy.compression.compression-algorithm": "Komprimierungsalgorithmus", "feedback.policy.compression.compression-algorithm-help": "Geben Sie den Komprimierungsalgorithmus an, der beim Erstellen von Snapshots von Dateien in diesem Verzeichnis und Unterverzeichnissen verwendet werden soll", @@ -54,7 +73,8 @@ "feedback.policy.compression.only-compress-extensions-help": "Komprimieren Sie nur Dateien mit den folgenden Dateierweiterungen (eine Erweiterung pro Zeile)", "feedback.policy.compression.only-compress-extensions-hint": "z.B. *.txt", "feedback.policy.confirm-delete-policy": "Sind Sie sicher, dass Sie diese Richtlinie löschen möchten?", - "feedback.policy.defined-by-this-policy": "(Definiert durch diese Richtlinie)", + "feedback.policy.defined-by": "Definiert durch", + "feedback.policy.defined-by-this-policy": "Definiert durch diese Richtlinie", "feedback.policy.error-delete-policy": "Fehler beim Löschen der Richtlinie", "feedback.policy.error-handling.ignore-directory-errors": "Verzeichnisfehler ignorieren", "feedback.policy.error-handling.ignore-directory-errors-help": "Verzeichnislesefehler werden als nicht schwerwiegend behandelt.", @@ -64,6 +84,7 @@ "feedback.policy.error-handling.ignore-unknown-directories-help": "Nicht erkannte/nicht unterstützte Verzeichniseinträge werden als nicht schwerwiegende Fehler behandelt.", "feedback.policy.error-saving-policy": "Fehler beim Speichern der Richtlinie", "feedback.policy.files.ignore-files": "Dateien ignorieren", + "feedback.policy.files.ignore-files-help": "Liste der zu ignorierenden Datei- und Verzeichnisnamen.
Siehe Dokumentation zum Ignorieren von Dateien.", "feedback.policy.files.ignore-files-hint": "z.B. /file.txt", "feedback.policy.files.ignore-rule-files": "Regeldateien ignorieren", "feedback.policy.files.ignore-rule-files-from-parent-directories": "Regeldateien aus übergeordneten Verzeichnissen ignorieren", @@ -86,6 +107,22 @@ "feedback.policy.header.snapshot-action": "Snapshot-Aktionen", "feedback.policy.header.snapshot-retention": "Snapshot-Aufbewahrung", "feedback.policy.header.upload": "Hochladen", + "feedback.policy.logging.cache-hit": "Cache-Treffer", + "feedback.policy.logging.cache-hit-help": "Protokollieren Sie die Ausführlichkeit, wenn ein Cache verwendet wird, anstatt die Datei hochzuladen", + "feedback.policy.logging.cache-miss": "Cache-Fehler", + "feedback.policy.logging.cache-miss-help": "Protokollausführlichkeit, wenn ein Cache nicht verwendet werden kann und eine Datei gehasht werden muss", + "feedback.policy.logging.directory-ignored": "Verzeichnis ignoriert", + "feedback.policy.logging.directory-ignored-help": "Protokollieren Sie die Ausführlichkeit, wenn ein Verzeichnis ignoriert wird", + "feedback.policy.logging.directory-snapshotted": "Verzeichnis-Snapshot erstellt", + "feedback.policy.logging.directory-snapshotted-help": "Protokollieren Sie die Ausführlichkeit, wenn ein Verzeichnis-Snapshot erstellt wird", + "feedback.policy.logging.file-ignored": "Datei ignoriert", + "feedback.policy.logging.file-ignored-help": "Protokollieren Sie die Ausführlichkeit, wenn eine Datei, ein symbolischer Link usw. ignoriert wird", + "feedback.policy.logging.file-snapshotted": "Datei-Snapshot erstellt", + "feedback.policy.logging.file-snapshotted-help": "Protokollieren Sie die Ausführlichkeit, wenn eine Datei, ein symbolischer Link usw. als Snapshot erstellt wird", + "feedback.policy.other.disable-parent-policy-evaluation": "Deaktivieren Sie die Evaluierung der übergeordneten Richtlinien", + "feedback.policy.other.disable-parent-policy-evaluation-help": "Verhindert, dass sich übergeordnete Richtlinien auf dieses Verzeichnis und seine Unterverzeichnisse auswirken", + "feedback.policy.other.json-representation": "JSON-Darstellung", + "feedback.policy.other.json-representation-help": "Dies ist die interne Darstellung einer Richtlinie", "feedback.policy.retention.annual-snapshot-retain": "Jährlich", "feedback.policy.retention.annual-snapshot-retain-help": "Wie viele jährliche Snapshots pro Quelle aufbewahrt werden sollen. \nDer neueste Snapshot jedes Kalenderjahres wird aufbewahrt", "feedback.policy.retention.annual-snapshot-retain-hint": "Anzahl der jährlichen Schnappschüsse", @@ -106,7 +143,31 @@ "feedback.policy.retention.weekly-snapshot-retain": "Wöchentlich", "feedback.policy.retention.weekly-snapshot-retain-help": "Gibt an, wie viele wöchentliche Snapshots pro Quelle aufbewahrt werden sollen. \nDer neueste Schnappschuss jeder Woche wird beibehalten", "feedback.policy.retention.weekly-snapshot-retain-hint": "Anzahl der wöchentlichen Snapshots", + "feedback.policy.scheduling.cron-expressions": "Cron-Ausdrücke", + "feedback.policy.scheduling.cron-expressions-hint": "Minute Stunde Tag Monat Wochentag #Kommentar", + "feedback.policy.scheduling.cron-help": "Snapshot-Zeitpläne mit UNIX-Crontab-Syntax (einer pro Zeile):
Siehe Details zum unterstützten Format.", + "feedback.policy.scheduling.manual-snapshots-only": "Nur manuelle Snapshots", + "feedback.policy.scheduling.manual-snapshots-only-help": "Schnappschüsse nur manuell erstellen (geplante Schnappschüsse werden deaktiviert)", + "feedback.policy.scheduling.missed-snapshots-startup": "Führen Sie beim Start verpasste Snapshots aus", + "feedback.policy.scheduling.missed-snapshots-startup-help": "Führen Sie alle verpassten Snapshots sofort aus, wenn Kopia startet (nur relevant für Time-of-Day-Snapshots).", + "feedback.policy.scheduling.no-upcoming-snapshots": "Keine bevorstehenden Schnappschüsse", + "feedback.policy.scheduling.snapshot-frequency": "Häufigkeit der Snapshots", + "feedback.policy.scheduling.snapshot-frequency-help": "Gibt an, wie oft Snapshots in KopiaUI oder Kopia-Server erstellt werden sollen (hat außerhalb des Servermodus keine Auswirkung)", + "feedback.policy.scheduling.times-of-day": "Tageszeiten", + "feedback.policy.scheduling.times-of-day-help": "Schnappschüsse zu den angegebenen Tageszeiten erstellen (24-Stunden-Format)", + "feedback.policy.scheduling.times-of-day-hint": "z.B. 17:00", + "feedback.policy.scheduling.upcoming": "Bevorstehend", + "feedback.policy.scheduling.upcoming-snapshots": "Kommende Schnappschüsse", + "feedback.policy.scheduling.upcoming-snapshots-help": "Zeiten bevorstehender Snapshots, berechnet auf Grundlage von Richtlinienparametern", + "feedback.policy.time-of-day.invalid": "Ungültige Tageszeit: {{tod}}", "feedback.policy.timeout-help": "Timeout in Sekunden, bevor Kopia den Prozess abbricht", + "feedback.policy.upload.maximum-parallel-file-reads": "Maximale parallele Dateilesevorgänge", + "feedback.policy.upload.maximum-parallel-file-reads-help": "Maximale Anzahl von Dateien, die parallel gelesen werden (standardmäßig die Anzahl der logischen Prozessoren)", + "feedback.policy.upload.maximum-parallel-file-reads-hint": "Maximale Anzahl paralleler Dateilesevorgänge", + "feedback.policy.upload.maximum-parallel-snapshots": "Maximale parallele Snapshots", + "feedback.policy.upload.maximum-parallel-snapshots-help": "Maximale Anzahl von Snapshots, die gleichzeitig hochgeladen werden können", + "feedback.policy.upload.maximum-parallel-snapshots-hint-set": "Maximale Anzahl paralleler Snapshots", + "feedback.policy.upload.maximum-parallel-snapshots-hint-unset": "muss mithilfe einer globalen, Benutzer- oder Hostrichtlinie angegeben werden", "feedback.provider.azure-blob-storage": "Azure Blob Storage", "feedback.provider.backblaze-b2": "Backblaze B2", "feedback.provider.google-cloud-storage": "Google Cloud-Speicher", @@ -138,13 +199,18 @@ "feedback.repository.repository-description-help": "Hilft bei der Unterscheidung zwischen mehreren verbundenen Repositorys", "feedback.repository.repository-description-hint": "Geben Sie eine Repository-Beschreibung ein", "feedback.repository.repository-token-enter": "Geben Sie das Repository-Token ein", + "feedback.snapshot.status.overdue": "überfällig", "feedback.tab.policies": "Richtlinien", "feedback.tab.preferences": "Einstellungen", "feedback.tab.repository": "Repository", "feedback.tab.repository-is-not-connected": "Das Repository ist nicht verbunden", "feedback.tab.snapshots": "Snapshots", "feedback.tab.tasks": "Aufgaben", + "feedback.task.canceled-after": "Abgebrochen nach", "feedback.task.estimate-results": "{{description}} Bytes: {{bytes}} ({{bytes.excluded}} exkludiert) Files: {{files}} ({{files.excluded}} exkludiert) Directories: {{directories}} ({{directories.excluded}} exkludiert) Errors: {{errors}} ({{errors.ignored}} ignoriert)", + "feedback.task.failed-after": "Fehlgeschlagen nach", + "feedback.task.finished-in": "Abgeschlossen in", + "feedback.task.running-for": "Läuft seit", "feedback.task.total": "Gesamt", "feedback.ui.appearance": "Darstellung", "feedback.ui.appearance-help": "Gibt die Darstellung des Nutzerinterfaces an", @@ -283,7 +349,7 @@ "snapshot.event.history.deselect.all": "Alle abwählen", "snapshot.event.history.fetch.snapshots": "Schnappschüsse abrufen", "snapshot.event.history.pin.add": "Fügen Sie eine PIN hinzu, um den Snapshot vor dem Löschen zu schützen", - "snapshot.event.history.select.all": "Wählen Sie Alle", + "snapshot.event.history.select.all": "Alle auswählen", "snapshot.event.history.selected.delete": "Ausgewählte löschen (", "snapshot.event.restore": "Restore", "snapshot.event.restore.begin": "Begin restore", @@ -378,6 +444,8 @@ "validation.provider.user": "Benutzer", "validation.provider.user-hint": "Nutzername", "value.algorithm.eco-disabled": "Deaktiviert", + "value.algorithm.suffix-not-recommended": "(NICHT EMPFOHLEN)", + "value.algorithm.suffix-recommended": "(EMPFOHLEN)", "value.log.details-0-no-output": "0 - keine Ausgabe", "value.log.details-1-minimal-details": "1 – minimale Details", "value.log.details-10-maximum-details": "10 - maximale Details", @@ -392,6 +460,14 @@ "value.provider.s3.no-tls-verification": "TLS-Zertifikat nicht überprüfen", "value.repository.format.latest": "Neuestes Format", "value.repository.format.legacy": "Legacy-Format kompatibel mit v0.8", + "value.snapshot-frequency.10-minutes": "alle 10 Minuten", + "value.snapshot-frequency.12-hours": "alle 12 Stunden", + "value.snapshot-frequency.15-minutes": "alle 15 Minuten", + "value.snapshot-frequency.20-minutes": "alle 20 Minuten", + "value.snapshot-frequency.3-hours": "alle 3 Stunden", + "value.snapshot-frequency.30-minutes": "alle 30 Minuten", + "value.snapshot-frequency.6-hours": "alle 6 Stunden", + "value.snapshot-frequency.hour": "jede Stunde", "value.ui.appearance-large": "groß", "value.ui.appearance-medium": "mittel", "value.ui.appearance-small": "klein", diff --git a/public/locales/en/translation.json b/public/locales/en/translation.json index 575a3d0..3b04eb6 100644 --- a/public/locales/en/translation.json +++ b/public/locales/en/translation.json @@ -8,6 +8,8 @@ "common.next": "Next", "common.return": "Return", "enter-object-name-prefix-or-leave-empty-hint": "Enter object name prefix or leave empty", + "event.cli.copy-to-clipboard": "Copy to clipboard", + "event.cli.show-cli-equivalent": "Click to show CLI equivalent", "event.description.cancel": "Cancel", "event.description.new": "Enter new description", "event.description.remove": "Remove Description", @@ -19,14 +21,21 @@ "event.pin.remove": "Remove Pin", "event.pin.snapshot-pin": "Pin Snapshot", "event.pin.update": "Update Pin", + "event.policy.delete": "Delete policy", + "event.policy.edit": "Edit", + "event.policy.save": "Save policy", + "event.policy.set": "Set policy", "event.repository.advanced-options-hide": "Hide Advanced Options", "event.repository.advanced-options.show": "Show Advanced Options", "event.repository.connect-to-repository": "Connect to repository", "event.repository.create-repository": "Create repository", + "event.task.cancel": "Cancel task", "feedback.description.modal-title": "Snapshot Description", + "feedback.error.common": "Error", "feedback.error.connection": "Connect Error:", "feedback.header.actions": "Actions", "feedback.header.defined": "Defined", + "feedback.header.details": "Details", "feedback.header.directories": "Directories", "feedback.header.effective": "Effective", "feedback.header.files": "Files", @@ -38,6 +47,16 @@ "feedback.header.username": "Username", "feedback.pin.name": "Name of the pin", "feedback.pin.standard-text": "do-not-delete", + "feedback.policy.action.command-mode": "Command Mode", + "feedback.policy.actions.after-folder": "After Folder", + "feedback.policy.actions.after-folder-help": "Script to run after folder", + "feedback.policy.actions.after-snapshot": "After Snapshot", + "feedback.policy.actions.after-snapshot-help": "Script to run after snapshot", + "feedback.policy.actions.before-folder": "Before Folder", + "feedback.policy.actions.before-folder-help": "Script to run before folder", + "feedback.policy.actions.before-snapshot": "Before Snapshot", + "feedback.policy.actions.before-snapshot-help": "Script to run before snapshot", + "feedback.policy.actions.timeout": "Timeout", "feedback.policy.command-mode-help": "Essential (must succeed; default behavior), optional (failures are tolerated), or async (Kopia will start the action but not wait for it to finish)", "feedback.policy.compression.compression-algorithm": "Compression Algorithm", "feedback.policy.compression.compression-algorithm-help": "Specify compression algorithm to use when snapshotting files in this directory and subdirectories", @@ -54,7 +73,8 @@ "feedback.policy.compression.only-compress-extensions-help": "Only compress files with the following file extensions (one extension per line)", "feedback.policy.compression.only-compress-extensions-hint": "e.g. *.txt", "feedback.policy.confirm-delete-policy": "Are you sure you want to delete this policy?", - "feedback.policy.defined-by-this-policy": "(Defined by this policy)", + "feedback.policy.defined-by": "Defined by", + "feedback.policy.defined-by-this-policy": "Defined by this policy", "feedback.policy.error-delete-policy": "Error deleting policy", "feedback.policy.error-handling.ignore-directory-errors": "Ignore Directory Errors", "feedback.policy.error-handling.ignore-directory-errors-help": "Treat directory read errors as non-fatal.", @@ -64,6 +84,7 @@ "feedback.policy.error-handling.ignore-unknown-directories-help": "Treat unrecognized/unsupported directory entries as non-fatal errors.", "feedback.policy.error-saving-policy": "Error saving policy", "feedback.policy.files.ignore-files": "Ignore Files", + "feedback.policy.files.ignore-files-help": "List of file and directory names to ignore.
See documentation on ignoring files.", "feedback.policy.files.ignore-files-hint": "e.g. /file.txt", "feedback.policy.files.ignore-rule-files": "Ignore Rule Files", "feedback.policy.files.ignore-rule-files-from-parent-directories": "Ignore Rule Files From Parent Directories", @@ -86,6 +107,22 @@ "feedback.policy.header.snapshot-action": "Snapshot Actions", "feedback.policy.header.snapshot-retention": "Snapshot Retention", "feedback.policy.header.upload": "Upload", + "feedback.policy.logging.cache-hit": "Cache hit", + "feedback.policy.logging.cache-hit-help": "Log verbosity when a cache is used instead of uploading the file", + "feedback.policy.logging.cache-miss": "Cache miss", + "feedback.policy.logging.cache-miss-help": "Log verbosity when a cache cannot be used and a file must be hashed", + "feedback.policy.logging.directory-ignored": "Directory ignored", + "feedback.policy.logging.directory-ignored-help": "Log verbosity when a directory is ignored", + "feedback.policy.logging.directory-snapshotted": "Directory snapshotted", + "feedback.policy.logging.directory-snapshotted-help": "Log verbosity when a directory is snapshotted", + "feedback.policy.logging.file-ignored": "File ignored", + "feedback.policy.logging.file-ignored-help": "Log verbosity when a file, symbolic link, etc. is ignored", + "feedback.policy.logging.file-snapshotted": "File snapshotted", + "feedback.policy.logging.file-snapshotted-help": "Log verbosity when a file, symbolic link, etc. is snapshotted", + "feedback.policy.other.disable-parent-policy-evaluation": "Disable Parent Policy Evaluation", + "feedback.policy.other.disable-parent-policy-evaluation-help": "Prevents any parent policies from affecting this directory and its subdirectories", + "feedback.policy.other.json-representation": "JSON Representation", + "feedback.policy.other.json-representation-help": "This is the internal representation of a policy", "feedback.policy.retention.annual-snapshot-retain": "Annual", "feedback.policy.retention.annual-snapshot-retain-help": "How many annual snapshots to retain per source. The latest snapshot from each calendar year will be retained", "feedback.policy.retention.annual-snapshot-retain-hint": "Number of annual snapshots", @@ -106,7 +143,31 @@ "feedback.policy.retention.weekly-snapshot-retain": "Weekly", "feedback.policy.retention.weekly-snapshot-retain-help": "How many weekly snapshots to retain per source. The latest snapshot from each week will be retained", "feedback.policy.retention.weekly-snapshot-retain-hint": "Number of weekly snapshots", + "feedback.policy.scheduling.cron-expressions": "Cron Expressions", + "feedback.policy.scheduling.cron-expressions-hint": "minute hour day month weekday #comment", + "feedback.policy.scheduling.cron-help": "Snapshot schedules using UNIX crontab syntax (one per line):
See supported format details.", + "feedback.policy.scheduling.manual-snapshots-only": "Manual Snapshots Only", + "feedback.policy.scheduling.manual-snapshots-only-help": "Only create snapshots manually (disables scheduled snapshots)", + "feedback.policy.scheduling.missed-snapshots-startup": "Run Missed Snapshots on Startup", + "feedback.policy.scheduling.missed-snapshots-startup-help": "Immediately run any missed snapshots when kopia starts (only relevant for Time-of-day snapshots)", + "feedback.policy.scheduling.no-upcoming-snapshots": "No upcoming snapshots", + "feedback.policy.scheduling.snapshot-frequency": "Snapshot Frequency", + "feedback.policy.scheduling.snapshot-frequency-help": "How frequently to create snapshots in KopiaUI or Kopia server (has no effect outside of the server mode)", + "feedback.policy.scheduling.times-of-day": "Times Of Day", + "feedback.policy.scheduling.times-of-day-help": "Create snapshots at the specified times of day (24hr format)", + "feedback.policy.scheduling.times-of-day-hint": "e.g. 17:00", + "feedback.policy.scheduling.upcoming": "Upcoming", + "feedback.policy.scheduling.upcoming-snapshots": "Upcoming Snapshots", + "feedback.policy.scheduling.upcoming-snapshots-help": "Times of upcoming snapshots calculated based on policy parameters", + "feedback.policy.time-of-day.invalid": "Invalid time of day: {{tod}}", "feedback.policy.timeout-help": "Timeout in seconds before Kopia kills the process", + "feedback.policy.upload.maximum-parallel-file-reads": "Maximum Parallel File Reads", + "feedback.policy.upload.maximum-parallel-file-reads-help": "Maximum number of files that will be read in parallel (defaults to the number of logical processors)", + "feedback.policy.upload.maximum-parallel-file-reads-hint": "max number of parallel file reads", + "feedback.policy.upload.maximum-parallel-snapshots": "Maximum Parallel Snapshots", + "feedback.policy.upload.maximum-parallel-snapshots-help": "Maximum number of snapshots that can be uploaded simultaneously", + "feedback.policy.upload.maximum-parallel-snapshots-hint-set": "max number of parallel snapshots", + "feedback.policy.upload.maximum-parallel-snapshots-hint-unset": "must be specified using global, user, or host policy", "feedback.provider.azure-blob-storage": "Azure Blob Storage", "feedback.provider.backblaze-b2": "Backblaze B2", "feedback.provider.google-cloud-storage": "Google Cloud Storage", @@ -138,13 +199,18 @@ "feedback.repository.repository-description-help": "Helps to distinguish between multiple connected repositories", "feedback.repository.repository-description-hint": "Enter repository description", "feedback.repository.repository-token-enter": "Enter Repository Token", + "feedback.snapshot.status.overdue": "overdue", "feedback.tab.policies": "Policies", "feedback.tab.preferences": "Preferences", "feedback.tab.repository": "Repository", "feedback.tab.repository-is-not-connected": "Repository is not connected", "feedback.tab.snapshots": "Snapshots", "feedback.tab.tasks": "Tasks", + "feedback.task.canceled-after": "Canceled after", "feedback.task.estimate-results": "{{description}} Bytes: {{bytes}} ({{bytes.excluded}} excluded) Files: {{files}} ({{files.excluded}} excluded) Directories: {{directories}} ({{directories.excluded}} excluded) Errors: {{errors}} ({{errors.ignored}} ignored)", + "feedback.task.failed-after": "Failed after", + "feedback.task.finished-in": "Finished in", + "feedback.task.running-for": "Running for", "feedback.task.total": "Total", "feedback.ui.appearance": "Appearance", "feedback.ui.appearance-help": "Specifies the appearance of the user interface", @@ -378,6 +444,8 @@ "validation.provider.user": "User", "validation.provider.user-hint": "User name", "value.algorithm.eco-disabled": "Disabled", + "value.algorithm.suffix-not-recommended": "(NOT RECOMMENDED)", + "value.algorithm.suffix-recommended": "(RECOMMENDED)", "value.log.details-0-no-output": "0 - no output", "value.log.details-1-minimal-details": "1 - minimal details", "value.log.details-10-maximum-details": "10 - maximum details", @@ -392,6 +460,14 @@ "value.provider.s3.no-tls-verification": "Do not verify TLS certificate", "value.repository.format.latest": "Latest format", "value.repository.format.legacy": "Legacy format compatible with v0.8", + "value.snapshot-frequency.10-minutes": "every 10 minutes", + "value.snapshot-frequency.12-hours": "every 12 hours", + "value.snapshot-frequency.15-minutes": "every 15 minutes", + "value.snapshot-frequency.20-minutes": "every 20 minutes", + "value.snapshot-frequency.3-hours": "every 3 hours", + "value.snapshot-frequency.30-minutes": "every 30 minutes", + "value.snapshot-frequency.6-hours": "every 6 hours", + "value.snapshot-frequency.hour": "every hour", "value.ui.appearance-large": "large", "value.ui.appearance-medium": "medium", "value.ui.appearance-small": "small", diff --git a/public/locales/es/translation.json b/public/locales/es/translation.json index d1e6c2c..2e5c85e 100644 --- a/public/locales/es/translation.json +++ b/public/locales/es/translation.json @@ -8,6 +8,8 @@ "common.next": "Próximo", "common.return": "Volver", "enter-object-name-prefix-or-leave-empty-hint": "Introduzca el prefijo del nombre del objeto o déjelo vacío", + "event.cli.copy-to-clipboard": "Copiar al portapapeles", + "event.cli.show-cli-equivalent": "Haga clic para mostrar el equivalente de CLI", "event.description.cancel": "Cancelar", "event.description.new": "Ingrese una nueva descripción", "event.description.remove": "Eliminar descripción", @@ -19,14 +21,21 @@ "event.pin.remove": "Quitar pin", "event.pin.snapshot-pin": "Instantánea de pin", "event.pin.update": "Actualizar PIN", + "event.policy.delete": "Eliminar política", + "event.policy.edit": "Editar", + "event.policy.save": "Guardar política", + "event.policy.set": "Establecer política", "event.repository.advanced-options-hide": "Ocultar opciones avanzadas", "event.repository.advanced-options.show": "Mostrar opciones avanzadas", "event.repository.connect-to-repository": "Conectarse al repositorio", "event.repository.create-repository": "Crear repositorio", + "event.task.cancel": "Cancelar tarea", "feedback.description.modal-title": "Descripción de la instantánea", + "feedback.error.common": "Error", "feedback.error.connection": "Error de conexión:", "feedback.header.actions": "Comportamiento", "feedback.header.defined": "Definido", + "feedback.header.details": "Detalles", "feedback.header.directories": "Directorios", "feedback.header.effective": "Eficaz", "feedback.header.files": "Archivos", @@ -38,6 +47,16 @@ "feedback.header.username": "Nombre de usuario", "feedback.pin.name": "nombre del pin", "feedback.pin.standard-text": "no borres", + "feedback.policy.action.command-mode": "Modo de comando", + "feedback.policy.actions.after-folder": "Después de la carpeta", + "feedback.policy.actions.after-folder-help": "Script para ejecutar después de la carpeta", + "feedback.policy.actions.after-snapshot": "Después de la instantánea", + "feedback.policy.actions.after-snapshot-help": "Script para ejecutar después de la instantánea", + "feedback.policy.actions.before-folder": "Antes de la carpeta", + "feedback.policy.actions.before-folder-help": "Script para ejecutar antes de la carpeta", + "feedback.policy.actions.before-snapshot": "Antes de la instantánea", + "feedback.policy.actions.before-snapshot-help": "Script para ejecutar antes de la instantánea", + "feedback.policy.actions.timeout": "Se acabó el tiempo", "feedback.policy.command-mode-help": "Esencial (debe tener éxito; comportamiento predeterminado), opcional (se toleran los errores) o asíncrono (Kopia iniciará la acción pero no esperará a que finalice)", "feedback.policy.compression.compression-algorithm": "Algoritmo de compresión", "feedback.policy.compression.compression-algorithm-help": "Especifique el algoritmo de compresión que se utilizará al tomar instantáneas de archivos en este directorio y subdirectorios.", @@ -54,7 +73,8 @@ "feedback.policy.compression.only-compress-extensions-help": "Comprima únicamente archivos con las siguientes extensiones de archivo (una extensión por línea)", "feedback.policy.compression.only-compress-extensions-hint": "p.ej. *.txt", "feedback.policy.confirm-delete-policy": "¿Está seguro de que desea eliminar esta política?", - "feedback.policy.defined-by-this-policy": "(Definido por esta política)", + "feedback.policy.defined-by": "Definido por", + "feedback.policy.defined-by-this-policy": "Definido por esta política", "feedback.policy.error-delete-policy": "Error al eliminar la política", "feedback.policy.error-handling.ignore-directory-errors": "Ignorar errores de directorio", "feedback.policy.error-handling.ignore-directory-errors-help": "Trate los errores de lectura de directorio como no fatales.", @@ -64,6 +84,7 @@ "feedback.policy.error-handling.ignore-unknown-directories-help": "Trate las entradas de directorio no reconocidas/no admitidas como errores no fatales.", "feedback.policy.error-saving-policy": "Error al guardar la política", "feedback.policy.files.ignore-files": "Ignorar archivos", + "feedback.policy.files.ignore-files-help": "Lista de nombres de archivos y directorios para ignorar.
Consulte la documentación sobre cómo ignorar archivos.", "feedback.policy.files.ignore-files-hint": "p.ej. /archivo.txt", "feedback.policy.files.ignore-rule-files": "Ignorar archivos de reglas", "feedback.policy.files.ignore-rule-files-from-parent-directories": "Ignorar archivos de reglas de directorios principales", @@ -86,6 +107,22 @@ "feedback.policy.header.snapshot-action": "Acciones de instantáneas", "feedback.policy.header.snapshot-retention": "Retención de instantáneas", "feedback.policy.header.upload": "Subir", + "feedback.policy.logging.cache-hit": "Golpe de caché", + "feedback.policy.logging.cache-hit-help": "Registrar detalle cuando se utiliza un caché en lugar de cargar el archivo", + "feedback.policy.logging.cache-miss": "Falta de caché", + "feedback.policy.logging.cache-miss-help": "Detalle del registro cuando no se puede usar un caché y se debe aplicar hash a un archivo", + "feedback.policy.logging.directory-ignored": "Directorio ignorado", + "feedback.policy.logging.directory-ignored-help": "Registrar detalle cuando se ignora un directorio", + "feedback.policy.logging.directory-snapshotted": "Directorio fotografiado", + "feedback.policy.logging.directory-snapshotted-help": "Registrar la detalle cuando se toma una instantánea de un directorio", + "feedback.policy.logging.file-ignored": "Archivo ignorado", + "feedback.policy.logging.file-ignored-help": "Registrar la detalle cuando se ignora un archivo, enlace simbólico, etc.", + "feedback.policy.logging.file-snapshotted": "Archivo capturado", + "feedback.policy.logging.file-snapshotted-help": "Registre la detalle cuando se toma una instantánea de un archivo, enlace simbólico, etc.", + "feedback.policy.other.disable-parent-policy-evaluation": "Deshabilitar la evaluación de la política principal", + "feedback.policy.other.disable-parent-policy-evaluation-help": "Evita que las políticas principales afecten a este directorio y sus subdirectorios", + "feedback.policy.other.json-representation": "Representación JSON", + "feedback.policy.other.json-representation-help": "Esta es la representación interna de una política.", "feedback.policy.retention.annual-snapshot-retain": "Anual", "feedback.policy.retention.annual-snapshot-retain-help": "Cuántas instantáneas anuales conservar por fuente. \nSe conservará la última instantánea de cada año calendario.", "feedback.policy.retention.annual-snapshot-retain-hint": "Número de instantáneas anuales", @@ -106,7 +143,31 @@ "feedback.policy.retention.weekly-snapshot-retain": "Semanalmente", "feedback.policy.retention.weekly-snapshot-retain-help": "Cuántas instantáneas semanales conservar por fuente. \nSe conservará la última instantánea de cada semana.", "feedback.policy.retention.weekly-snapshot-retain-hint": "Número de instantáneas semanales", + "feedback.policy.scheduling.cron-expressions": "Expresiones cron", + "feedback.policy.scheduling.cron-expressions-hint": "minuto hora día mes día laborable", + "feedback.policy.scheduling.cron-help": "Programaciones de instantáneas utilizando la sintaxis crontab de UNIX (una por línea):
Consulte detalles de los formatos admitidos.", + "feedback.policy.scheduling.manual-snapshots-only": "Solo instantáneas manuales", + "feedback.policy.scheduling.manual-snapshots-only-help": "Cree instantáneas solo manualmente (deshabilita las instantáneas programadas)", + "feedback.policy.scheduling.missed-snapshots-startup": "Ejecute instantáneas perdidas al iniciar", + "feedback.policy.scheduling.missed-snapshots-startup-help": "Ejecute inmediatamente cualquier instantánea perdida cuando se inicie kopia (solo relevante para instantáneas de la hora del día)", + "feedback.policy.scheduling.no-upcoming-snapshots": "No hay instantáneas próximas", + "feedback.policy.scheduling.snapshot-frequency": "Frecuencia de instantáneas", + "feedback.policy.scheduling.snapshot-frequency-help": "Con qué frecuencia crear instantáneas en KopiaUI o el servidor Kopia (no tiene efecto fuera del modo servidor)", + "feedback.policy.scheduling.times-of-day": "Tiempos del Día", + "feedback.policy.scheduling.times-of-day-help": "Cree instantáneas a las horas especificadas del día (formato de 24 horas)", + "feedback.policy.scheduling.times-of-day-hint": "p.ej. 17:00", + "feedback.policy.scheduling.upcoming": "Próximo", + "feedback.policy.scheduling.upcoming-snapshots": "Próximas instantáneas", + "feedback.policy.scheduling.upcoming-snapshots-help": "Horarios de las próximas instantáneas calculados en función de los parámetros de la política", + "feedback.policy.time-of-day.invalid": "Hora del día no válida: {{tod}}", "feedback.policy.timeout-help": "Tiempo de espera en segundos antes de que Kopia finalice el proceso", + "feedback.policy.upload.maximum-parallel-file-reads": "Lecturas máximas de archivos paralelos", + "feedback.policy.upload.maximum-parallel-file-reads-help": "Número máximo de archivos que se leerán en paralelo (el valor predeterminado es el número de procesadores lógicos)", + "feedback.policy.upload.maximum-parallel-file-reads-hint": "número máximo de lecturas de archivos paralelos", + "feedback.policy.upload.maximum-parallel-snapshots": "Instantáneas paralelas máximas", + "feedback.policy.upload.maximum-parallel-snapshots-help": "Número máximo de instantáneas que se pueden cargar simultáneamente", + "feedback.policy.upload.maximum-parallel-snapshots-hint-set": "número máximo de instantáneas paralelas", + "feedback.policy.upload.maximum-parallel-snapshots-hint-unset": "debe especificarse mediante la política global, de usuario o de host", "feedback.provider.azure-blob-storage": "Almacenamiento de blobs de Azure", "feedback.provider.backblaze-b2": "Resplandor B2", "feedback.provider.google-cloud-storage": "Almacenamiento en la nube de Google", @@ -138,13 +199,18 @@ "feedback.repository.repository-description-help": "Ayuda a distinguir entre múltiples repositorios conectados", "feedback.repository.repository-description-hint": "Ingrese la descripción del repositorio", "feedback.repository.repository-token-enter": "Ingrese el token del repositorio", + "feedback.snapshot.status.overdue": "atrasado", "feedback.tab.policies": "Políticas", "feedback.tab.preferences": "Preferencias", "feedback.tab.repository": "Depósito", "feedback.tab.repository-is-not-connected": "El repositorio no está conectado", "feedback.tab.snapshots": "Copias de respaldo", "feedback.tab.tasks": "Tareas", + "feedback.task.canceled-after": "Cancelado después", "feedback.task.estimate-results": "{{description}} Bytes: {{bytes}} ({{bytes.excluded}} excluido) Files: {{files}} ({{files.excluded}} excluido) Directories: {{directories}} ({{directories.excluded}} excluido) Errors: {{errors}} ({{errors.ignored}} ignorado)", + "feedback.task.failed-after": "falló después", + "feedback.task.finished-in": "Terminado en", + "feedback.task.running-for": "Corriendo para", "feedback.task.total": "Total", "feedback.ui.appearance": "Apariencia", "feedback.ui.appearance-help": "Especifica la apariencia de la interfaz de usuario", @@ -378,6 +444,8 @@ "validation.provider.user": "Usuario", "validation.provider.user-hint": "Nombre de usuario", "value.algorithm.eco-disabled": "Desactivado", + "value.algorithm.suffix-not-recommended": "(NO RECOMENDADO)", + "value.algorithm.suffix-recommended": "(RECOMENDADO)", "value.log.details-0-no-output": "0 - sin salida", "value.log.details-1-minimal-details": "1 - detalles mínimos", "value.log.details-10-maximum-details": "10 - detalles máximos", @@ -392,6 +460,14 @@ "value.provider.s3.no-tls-verification": "No verificar el certificado TLS", "value.repository.format.latest": "Último formato", "value.repository.format.legacy": "Formato heredado compatible con v0.8", + "value.snapshot-frequency.10-minutes": "cada 10 minutos", + "value.snapshot-frequency.12-hours": "cada 12 horas", + "value.snapshot-frequency.15-minutes": "cada 15 minutos", + "value.snapshot-frequency.20-minutes": "cada 20 minutos", + "value.snapshot-frequency.3-hours": "cada 3 horas", + "value.snapshot-frequency.30-minutes": "cada 30 minutos", + "value.snapshot-frequency.6-hours": "cada 6 horas", + "value.snapshot-frequency.hour": "cada hora", "value.ui.appearance-large": "grande", "value.ui.appearance-medium": "mediano", "value.ui.appearance-small": "pequeño", diff --git a/public/locales/fr/translation.json b/public/locales/fr/translation.json index 098929f..226dd83 100644 --- a/public/locales/fr/translation.json +++ b/public/locales/fr/translation.json @@ -8,6 +8,8 @@ "common.next": "Suivant", "common.return": "Retour", "enter-object-name-prefix-or-leave-empty-hint": "Entrez le préfixe du nom de l'objet ou laissez vide", + "event.cli.copy-to-clipboard": "Copier dans le presse-papier", + "event.cli.show-cli-equivalent": "Cliquez pour afficher l'équivalent CLI", "event.description.cancel": "Annuler", "event.description.new": "Entrez une nouvelle description", "event.description.remove": "Supprimer la description", @@ -19,14 +21,21 @@ "event.pin.remove": "Supprimer l'épingle", "event.pin.snapshot-pin": "Épingler un instantané", "event.pin.update": "Mettre à jour l'épingle", + "event.policy.delete": "Supprimer la stratégie", + "event.policy.edit": "Modifier", + "event.policy.save": "Enregistrer la politique", + "event.policy.set": "Définir la politique", "event.repository.advanced-options-hide": "Masquer les options avancées", "event.repository.advanced-options.show": "Montrer les options avancées", "event.repository.connect-to-repository": "Se connecter au référentiel", "event.repository.create-repository": "Créer un référentiel", + "event.task.cancel": "Annuler la tâche", "feedback.description.modal-title": "Description de l'instantané", + "feedback.error.common": "Erreur", "feedback.error.connection": "Erreur de connexion :", "feedback.header.actions": "Actions", "feedback.header.defined": "Défini", + "feedback.header.details": "Détails", "feedback.header.directories": "Annuaires", "feedback.header.effective": "Efficace", "feedback.header.files": "Des dossiers", @@ -38,6 +47,16 @@ "feedback.header.username": "Nom d'utilisateur", "feedback.pin.name": "Nom de la broche", "feedback.pin.standard-text": "ne pas supprimer", + "feedback.policy.action.command-mode": "Mode commande", + "feedback.policy.actions.after-folder": "Après le dossier", + "feedback.policy.actions.after-folder-help": "Script à exécuter après le dossier", + "feedback.policy.actions.after-snapshot": "Après l'instantané", + "feedback.policy.actions.after-snapshot-help": "Script à exécuter après l'instantané", + "feedback.policy.actions.before-folder": "Avant le dossier", + "feedback.policy.actions.before-folder-help": "Script à exécuter avant le dossier", + "feedback.policy.actions.before-snapshot": "Avant l'instantané", + "feedback.policy.actions.before-snapshot-help": "Script à exécuter avant l'instantané", + "feedback.policy.actions.timeout": "Temps mort", "feedback.policy.command-mode-help": "Essentiel (doit réussir ; comportement par défaut), facultatif (les échecs sont tolérés) ou asynchrone (Kopia démarrera l'action mais n'attendra pas qu'elle se termine)", "feedback.policy.compression.compression-algorithm": "Algorithme de compression", "feedback.policy.compression.compression-algorithm-help": "Spécifiez l'algorithme de compression à utiliser lors de la capture instantanée des fichiers dans ce répertoire et ses sous-répertoires.", @@ -54,7 +73,8 @@ "feedback.policy.compression.only-compress-extensions-help": "Compressez uniquement les fichiers avec les extensions de fichiers suivantes (une extension par ligne)", "feedback.policy.compression.only-compress-extensions-hint": "par exemple. *.txt", "feedback.policy.confirm-delete-policy": "Êtes-vous sûr de vouloir supprimer cette stratégie ?", - "feedback.policy.defined-by-this-policy": "(Défini par cette politique)", + "feedback.policy.defined-by": "Défini par", + "feedback.policy.defined-by-this-policy": "Défini par cette politique", "feedback.policy.error-delete-policy": "Erreur lors de la suppression de la stratégie", "feedback.policy.error-handling.ignore-directory-errors": "Ignorer les erreurs de répertoire", "feedback.policy.error-handling.ignore-directory-errors-help": "Traitez les erreurs de lecture de répertoire comme non fatales.", @@ -64,6 +84,7 @@ "feedback.policy.error-handling.ignore-unknown-directories-help": "Traitez les entrées de répertoire non reconnues/non prises en charge comme des erreurs non fatales.", "feedback.policy.error-saving-policy": "Politique d'enregistrement des erreurs", "feedback.policy.files.ignore-files": "Ignorer les fichiers", + "feedback.policy.files.ignore-files-help": "Liste des noms de fichiers et de répertoires à ignorer.
Voir la documentation sur l'ignorance des fichiers.", "feedback.policy.files.ignore-files-hint": "par exemple. /fichier.txt", "feedback.policy.files.ignore-rule-files": "Ignorer les fichiers de règles", "feedback.policy.files.ignore-rule-files-from-parent-directories": "Ignorer les fichiers de règles des répertoires parents", @@ -86,6 +107,22 @@ "feedback.policy.header.snapshot-action": "Actions d'instantané", "feedback.policy.header.snapshot-retention": "Conservation des instantanés", "feedback.policy.header.upload": "Télécharger", + "feedback.policy.logging.cache-hit": "Accès au cache", + "feedback.policy.logging.cache-hit-help": "Consigner la verbosité lorsqu'un cache est utilisé au lieu de télécharger le fichier", + "feedback.policy.logging.cache-miss": "Manque de cache", + "feedback.policy.logging.cache-miss-help": "Enregistrer la verbosité lorsqu'un cache ne peut pas être utilisé et qu'un fichier doit être haché", + "feedback.policy.logging.directory-ignored": "Répertoire ignoré", + "feedback.policy.logging.directory-ignored-help": "Consigner la verbosité lorsqu'un répertoire est ignoré", + "feedback.policy.logging.directory-snapshotted": "Répertoire instantané", + "feedback.policy.logging.directory-snapshotted-help": "Consigner la verbosité lorsqu'un répertoire est instantané", + "feedback.policy.logging.file-ignored": "Fichier ignoré", + "feedback.policy.logging.file-ignored-help": "Consigner la verbosité lorsqu'un fichier, un lien symbolique, etc. est ignoré", + "feedback.policy.logging.file-snapshotted": "Fichier instantané", + "feedback.policy.logging.file-snapshotted-help": "Consigner la verbosité lorsqu'un fichier, un lien symbolique, etc. est capturé", + "feedback.policy.other.disable-parent-policy-evaluation": "Désactiver l'évaluation de la stratégie parentale", + "feedback.policy.other.disable-parent-policy-evaluation-help": "Empêche toute stratégie parent d'affecter ce répertoire et ses sous-répertoires", + "feedback.policy.other.json-representation": "Représentation JSON", + "feedback.policy.other.json-representation-help": "C'est la représentation interne d'une politique", "feedback.policy.retention.annual-snapshot-retain": "Annuel", "feedback.policy.retention.annual-snapshot-retain-help": "Combien d’instantanés annuels conserver par source. \nLe dernier instantané de chaque année civile sera conservé", "feedback.policy.retention.annual-snapshot-retain-hint": "Nombre d'instantanés annuels", @@ -106,7 +143,31 @@ "feedback.policy.retention.weekly-snapshot-retain": "Hebdomadaire", "feedback.policy.retention.weekly-snapshot-retain-help": "Combien d’instantanés hebdomadaires conserver par source. \nLe dernier instantané de chaque semaine sera conservé", "feedback.policy.retention.weekly-snapshot-retain-hint": "Nombre d'instantanés hebdomadaires", + "feedback.policy.scheduling.cron-expressions": "Expressions Cron", + "feedback.policy.scheduling.cron-expressions-hint": "minute heure jour mois jour de la semaine", + "feedback.policy.scheduling.cron-help": "Planifications d'instantanés utilisant la syntaxe crontab UNIX (une par ligne) :
Voir les détails sur les formats pris en charge.", + "feedback.policy.scheduling.manual-snapshots-only": "Instantanés manuels uniquement", + "feedback.policy.scheduling.manual-snapshots-only-help": "Créez uniquement des instantanés manuellement (désactive les instantanés planifiés)", + "feedback.policy.scheduling.missed-snapshots-startup": "Exécuter des instantanés manqués au démarrage", + "feedback.policy.scheduling.missed-snapshots-startup-help": "Exécutez immédiatement tous les instantanés manqués au démarrage de kopia (uniquement pertinent pour les instantanés d'heure)", + "feedback.policy.scheduling.no-upcoming-snapshots": "Aucun instantané à venir", + "feedback.policy.scheduling.snapshot-frequency": "Fréquence des instantanés", + "feedback.policy.scheduling.snapshot-frequency-help": "À quelle fréquence créer des instantanés dans KopiaUI ou le serveur Kopia (n'a aucun effet en dehors du mode serveur)", + "feedback.policy.scheduling.times-of-day": "Heures du jour", + "feedback.policy.scheduling.times-of-day-help": "Créez des instantanés aux heures spécifiées de la journée (format 24 heures)", + "feedback.policy.scheduling.times-of-day-hint": "par exemple. 17h00", + "feedback.policy.scheduling.upcoming": "A venir", + "feedback.policy.scheduling.upcoming-snapshots": "Instantanés à venir", + "feedback.policy.scheduling.upcoming-snapshots-help": "Heures des instantanés à venir calculées en fonction des paramètres de politique", + "feedback.policy.time-of-day.invalid": "Heure de la journée non valide : {{tod}}", "feedback.policy.timeout-help": "Délai d'attente en secondes avant que Kopia ne tue le processus", + "feedback.policy.upload.maximum-parallel-file-reads": "Nombre maximal de lectures de fichiers parallèles", + "feedback.policy.upload.maximum-parallel-file-reads-help": "Nombre maximum de fichiers qui seront lus en parallèle (par défaut, le nombre de processeurs logiques)", + "feedback.policy.upload.maximum-parallel-file-reads-hint": "nombre maximum de lectures de fichiers parallèles", + "feedback.policy.upload.maximum-parallel-snapshots": "Nombre maximal d'instantanés parallèles", + "feedback.policy.upload.maximum-parallel-snapshots-help": "Nombre maximum d'instantanés pouvant être téléchargés simultanément", + "feedback.policy.upload.maximum-parallel-snapshots-hint-set": "nombre maximum d'instantanés parallèles", + "feedback.policy.upload.maximum-parallel-snapshots-hint-unset": "doit être spécifié à l'aide d'une stratégie globale, utilisateur ou hôte", "feedback.provider.azure-blob-storage": "Stockage Blob Azure", "feedback.provider.backblaze-b2": "Backblaze B2", "feedback.provider.google-cloud-storage": "Stockage Google Cloud", @@ -138,13 +199,18 @@ "feedback.repository.repository-description-help": "Aide à distinguer plusieurs référentiels connectés", "feedback.repository.repository-description-hint": "Entrez la description du référentiel", "feedback.repository.repository-token-enter": "Entrez le jeton de référentiel", + "feedback.snapshot.status.overdue": "en retard", "feedback.tab.policies": "Politiques", "feedback.tab.preferences": "Préférences", "feedback.tab.repository": "Répertoire", "feedback.tab.repository-is-not-connected": "Le référentiel n'est pas connecté", "feedback.tab.snapshots": "Instantanés", "feedback.tab.tasks": "Tâches", + "feedback.task.canceled-after": "Annulé après", "feedback.task.estimate-results": "{{description}} Bytes: {{bytes}} ({{bytes.excluded}} exclu) Files: {{files}} ({{files.excluded}} exclu) Directories: {{directories}} ({{directories.excluded}} exclu) Errors: {{errors}} ({{errors.ignored}} ignoré)", + "feedback.task.failed-after": "Échec après", + "feedback.task.finished-in": "Terminé en", + "feedback.task.running-for": "Courir pour", "feedback.task.total": "Total", "feedback.ui.appearance": "Apparence", "feedback.ui.appearance-help": "Spécifie l'apparence de l'interface utilisateur", @@ -378,6 +444,8 @@ "validation.provider.user": "Utilisateur", "validation.provider.user-hint": "Nom d'utilisateur", "value.algorithm.eco-disabled": "Désactivé", + "value.algorithm.suffix-not-recommended": "(NON RECOMMANDÉ)", + "value.algorithm.suffix-recommended": "(RECOMMANDÉ)", "value.log.details-0-no-output": "0 - aucune sortie", "value.log.details-1-minimal-details": "1 - détails minimes", "value.log.details-10-maximum-details": "10 - détails maximum", @@ -392,6 +460,14 @@ "value.provider.s3.no-tls-verification": "Ne pas vérifier le certificat TLS", "value.repository.format.latest": "Dernier format", "value.repository.format.legacy": "Format hérité compatible avec la v0.8", + "value.snapshot-frequency.10-minutes": "toutes les 10 minutes", + "value.snapshot-frequency.12-hours": "toutes les 12 heures", + "value.snapshot-frequency.15-minutes": "toutes les 15 minutes", + "value.snapshot-frequency.20-minutes": "toutes les 20 minutes", + "value.snapshot-frequency.3-hours": "toutes les 3 heures", + "value.snapshot-frequency.30-minutes": "toutes les 30 minutes", + "value.snapshot-frequency.6-hours": "toutes les 6 heures", + "value.snapshot-frequency.hour": "Toutes les heures", "value.ui.appearance-large": "grande", "value.ui.appearance-medium": "moyenne", "value.ui.appearance-small": "petite", diff --git a/public/locales/it/translation.json b/public/locales/it/translation.json index 6d6bd89..02a5430 100644 --- a/public/locales/it/translation.json +++ b/public/locales/it/translation.json @@ -8,6 +8,8 @@ "common.next": "Prossimo", "common.return": "Ritorno", "enter-object-name-prefix-or-leave-empty-hint": "Inserisci il prefisso del nome dell'oggetto o lascia vuoto", + "event.cli.copy-to-clipboard": "Copia negli appunti", + "event.cli.show-cli-equivalent": "Fare clic per mostrare l'equivalente CLI", "event.description.cancel": "Annulla", "event.description.new": "Inserisci una nuova descrizione", "event.description.remove": "Rimuovi descrizione", @@ -19,14 +21,21 @@ "event.pin.remove": "Rimuovi perno", "event.pin.snapshot-pin": "Pin istantanea", "event.pin.update": "Aggiorna perno", + "event.policy.delete": "Elimina politica", + "event.policy.edit": "Modificare", + "event.policy.save": "Salva politica", + "event.policy.set": "Imposta la politica", "event.repository.advanced-options-hide": "Nascondi opzioni avanzate", "event.repository.advanced-options.show": "Mostra opzioni avanzate", "event.repository.connect-to-repository": "Connettiti al deposito", "event.repository.create-repository": "Crea archivio", + "event.task.cancel": "Annulla attività", "feedback.description.modal-title": "Descrizione dell'istantanea", + "feedback.error.common": "Errore", "feedback.error.connection": "Errore di connessione:", "feedback.header.actions": "Azioni", "feedback.header.defined": "Definito", + "feedback.header.details": "Dettagli", "feedback.header.directories": "Directory", "feedback.header.effective": "Efficace", "feedback.header.files": "File", @@ -38,6 +47,16 @@ "feedback.header.username": "Nome utente", "feedback.pin.name": "Nome del perno", "feedback.pin.standard-text": "non cancellare", + "feedback.policy.action.command-mode": "Modalità di comando", + "feedback.policy.actions.after-folder": "Dopo la cartella", + "feedback.policy.actions.after-folder-help": "Script da eseguire dopo la cartella", + "feedback.policy.actions.after-snapshot": "Dopo l'istantanea", + "feedback.policy.actions.after-snapshot-help": "Script da eseguire dopo lo snapshot", + "feedback.policy.actions.before-folder": "Prima della cartella", + "feedback.policy.actions.before-folder-help": "Script da eseguire prima della cartella", + "feedback.policy.actions.before-snapshot": "Prima dell'istantanea", + "feedback.policy.actions.before-snapshot-help": "Script da eseguire prima dello snapshot", + "feedback.policy.actions.timeout": "Tempo scaduto", "feedback.policy.command-mode-help": "Essenziale (deve avere successo; comportamento predefinito), facoltativo (gli errori sono tollerati) o asincrono (Kopia avvierà l'azione ma non aspetterà che finisca)", "feedback.policy.compression.compression-algorithm": "Algoritmo di compressione", "feedback.policy.compression.compression-algorithm-help": "Specificare l'algoritmo di compressione da utilizzare durante lo snapshot dei file in questa directory e nelle sottodirectory", @@ -54,7 +73,8 @@ "feedback.policy.compression.only-compress-extensions-help": "Comprimi solo file con le seguenti estensioni di file (un'estensione per riga)", "feedback.policy.compression.only-compress-extensions-hint": "per esempio. *.txt", "feedback.policy.confirm-delete-policy": "Sei sicuro di voler eliminare questa politica?", - "feedback.policy.defined-by-this-policy": "(Definito da questa politica)", + "feedback.policy.defined-by": "Definito da", + "feedback.policy.defined-by-this-policy": "Definito da questa politica", "feedback.policy.error-delete-policy": "Errore durante l'eliminazione della policy", "feedback.policy.error-handling.ignore-directory-errors": "Ignora gli errori della directory", "feedback.policy.error-handling.ignore-directory-errors-help": "Trattare gli errori di lettura della directory come non fatali.", @@ -64,6 +84,7 @@ "feedback.policy.error-handling.ignore-unknown-directories-help": "Trattare le voci di directory non riconosciute/non supportate come errori non irreversibili.", "feedback.policy.error-saving-policy": "Errore durante il salvataggio della norma", "feedback.policy.files.ignore-files": "Ignora file", + "feedback.policy.files.ignore-files-help": "Elenco di nomi di file e directory da ignorare.
Vedi la documentazione su come ignorare i file.", "feedback.policy.files.ignore-files-hint": "per esempio. /file.txt", "feedback.policy.files.ignore-rule-files": "Ignora file di regole", "feedback.policy.files.ignore-rule-files-from-parent-directories": "Ignora i file delle regole dalle directory principali", @@ -86,6 +107,22 @@ "feedback.policy.header.snapshot-action": "Azioni istantanee", "feedback.policy.header.snapshot-retention": "Conservazione delle istantanee", "feedback.policy.header.upload": "Caricamento", + "feedback.policy.logging.cache-hit": "Hit della cache", + "feedback.policy.logging.cache-hit-help": "Registra la verbosità quando viene utilizzata una cache invece di caricare il file", + "feedback.policy.logging.cache-miss": "Mancata cache", + "feedback.policy.logging.cache-miss-help": "Registra la verbosità quando non è possibile utilizzare una cache ed è necessario sottoporre ad hashing un file", + "feedback.policy.logging.directory-ignored": "Directory ignorata", + "feedback.policy.logging.directory-ignored-help": "Registra la verbosità quando una directory viene ignorata", + "feedback.policy.logging.directory-snapshotted": "Directory istantanea", + "feedback.policy.logging.directory-snapshotted-help": "Registra la verbosità quando viene eseguito lo snapshot di una directory", + "feedback.policy.logging.file-ignored": "File ignorato", + "feedback.policy.logging.file-ignored-help": "Registra la verbosità quando un file, un collegamento simbolico, ecc. viene ignorato", + "feedback.policy.logging.file-snapshotted": "File istantaneo", + "feedback.policy.logging.file-snapshotted-help": "Registra la verbosità quando viene eseguito lo snapshot di un file, di un collegamento simbolico e così via", + "feedback.policy.other.disable-parent-policy-evaluation": "Disabilita la valutazione della policy principale", + "feedback.policy.other.disable-parent-policy-evaluation-help": "Impedisce che eventuali policy principali influenzino questa directory e le relative sottodirectory", + "feedback.policy.other.json-representation": "Rappresentazione JSON", + "feedback.policy.other.json-representation-help": "Questa è la rappresentazione interna di una politica", "feedback.policy.retention.annual-snapshot-retain": "Annuale", "feedback.policy.retention.annual-snapshot-retain-help": "Numero di snapshot annuali da conservare per origine. \nVerrà conservata l'ultima istantanea di ogni anno solare", "feedback.policy.retention.annual-snapshot-retain-hint": "Numero di snapshot annuali", @@ -106,7 +143,31 @@ "feedback.policy.retention.weekly-snapshot-retain": "settimanalmente", "feedback.policy.retention.weekly-snapshot-retain-help": "Numero di snapshot settimanali da conservare per origine. \nVerrà conservata l'ultima istantanea di ogni settimana", "feedback.policy.retention.weekly-snapshot-retain-hint": "Numero di snapshot settimanali", + "feedback.policy.scheduling.cron-expressions": "Espressioni Cron", + "feedback.policy.scheduling.cron-expressions-hint": "minuto ora giorno mese giorno feriale", + "feedback.policy.scheduling.cron-help": "Pianificazioni di istantanee utilizzando la sintassi crontab UNIX (una per riga):
Vedi dettagli sui formati supportati.", + "feedback.policy.scheduling.manual-snapshots-only": "Solo istantanee manuali", + "feedback.policy.scheduling.manual-snapshots-only-help": "Crea istantanee solo manualmente (disabilita le istantanee pianificate)", + "feedback.policy.scheduling.missed-snapshots-startup": "Esegui le istantanee perse all'avvio", + "feedback.policy.scheduling.missed-snapshots-startup-help": "Esegui immediatamente eventuali istantanee perse all'avvio di Kopia (rilevante solo per le istantanee dell'ora del giorno)", + "feedback.policy.scheduling.no-upcoming-snapshots": "Nessuna istantanea imminente", + "feedback.policy.scheduling.snapshot-frequency": "Frequenza dell'istantanea", + "feedback.policy.scheduling.snapshot-frequency-help": "La frequenza con cui creare istantanee in KopiaUI o nel server Kopia (non ha effetto al di fuori della modalità server)", + "feedback.policy.scheduling.times-of-day": "Momenti della giornata", + "feedback.policy.scheduling.times-of-day-help": "Crea istantanee alle ore del giorno specificate (formato 24 ore)", + "feedback.policy.scheduling.times-of-day-hint": "per esempio. 17:00", + "feedback.policy.scheduling.upcoming": "Prossimamente", + "feedback.policy.scheduling.upcoming-snapshots": "Prossime istantanee", + "feedback.policy.scheduling.upcoming-snapshots-help": "Tempi degli snapshot imminenti calcolati in base ai parametri della policy", + "feedback.policy.time-of-day.invalid": "Ora del giorno non valida: {{tod}}", "feedback.policy.timeout-help": "Timeout in secondi prima che Kopia interrompa il processo", + "feedback.policy.upload.maximum-parallel-file-reads": "Numero massimo di letture di file parallele", + "feedback.policy.upload.maximum-parallel-file-reads-help": "Numero massimo di file che verranno letti in parallelo (il valore predefinito è il numero di processori logici)", + "feedback.policy.upload.maximum-parallel-file-reads-hint": "numero massimo di letture di file parallele", + "feedback.policy.upload.maximum-parallel-snapshots": "Numero massimo di istantanee parallele", + "feedback.policy.upload.maximum-parallel-snapshots-help": "Numero massimo di snapshot che possono essere caricati contemporaneamente", + "feedback.policy.upload.maximum-parallel-snapshots-hint-set": "numero massimo di snapshot paralleli", + "feedback.policy.upload.maximum-parallel-snapshots-hint-unset": "deve essere specificato utilizzando la policy globale, utente o host", "feedback.provider.azure-blob-storage": "Archiviazione BLOB di Azure", "feedback.provider.backblaze-b2": "Backblaze B2", "feedback.provider.google-cloud-storage": "Archiviazione Google Cloud", @@ -138,13 +199,18 @@ "feedback.repository.repository-description-help": "Aiuta a distinguere tra più repository connessi", "feedback.repository.repository-description-hint": "Inserisci la descrizione del repository", "feedback.repository.repository-token-enter": "Inserisci il token del repository", + "feedback.snapshot.status.overdue": "in ritardo", "feedback.tab.policies": "Politiche", "feedback.tab.preferences": "Preferenze", "feedback.tab.repository": "Repository", "feedback.tab.repository-is-not-connected": "Il repository non è connesso", "feedback.tab.snapshots": "Istantanee", "feedback.tab.tasks": "Attività", + "feedback.task.canceled-after": "Annullato dopo", "feedback.task.estimate-results": "{{description}} Bytes: {{bytes}} ({{bytes.excluded}} escluso) Files: {{files}} ({{files.excluded}} escluso) Directories: {{directories}} ({{directories.excluded}} escluso) Errors: {{errors}} ({{errors.ignored}} ignorato)", + "feedback.task.failed-after": "Fallito dopo", + "feedback.task.finished-in": "Finito tra", + "feedback.task.running-for": "Correre per", "feedback.task.total": "Totale", "feedback.ui.appearance": "Aspetto", "feedback.ui.appearance-help": "Specifica l'aspetto dell'interfaccia utente", @@ -378,6 +444,8 @@ "validation.provider.user": "Utente", "validation.provider.user-hint": "Nome utente", "value.algorithm.eco-disabled": "Disabilitato", + "value.algorithm.suffix-not-recommended": "(NON CONSIGLIATO)", + "value.algorithm.suffix-recommended": "(CONSIGLIATO)", "value.log.details-0-no-output": "0 - nessuna uscita", "value.log.details-1-minimal-details": "1 - dettagli minimi", "value.log.details-10-maximum-details": "10 - dettagli massimi", @@ -392,6 +460,14 @@ "value.provider.s3.no-tls-verification": "Non verificare il certificato TLS", "value.repository.format.latest": "Ultimo formato", "value.repository.format.legacy": "Formato legacy compatibile con v0.8", + "value.snapshot-frequency.10-minutes": "ogni 10 minuti", + "value.snapshot-frequency.12-hours": "ogni 12 ore", + "value.snapshot-frequency.15-minutes": "ogni 15 minuti", + "value.snapshot-frequency.20-minutes": "ogni 20 minuti", + "value.snapshot-frequency.3-hours": "ogni 3 ore", + "value.snapshot-frequency.30-minutes": "ogni 30 minuti", + "value.snapshot-frequency.6-hours": "ogni 6 ore", + "value.snapshot-frequency.hour": "ogni ora", "value.ui.appearance-large": "grande", "value.ui.appearance-medium": "medio", "value.ui.appearance-small": "piccolo", diff --git a/public/locales/jp/translation.json b/public/locales/jp/translation.json index 2ae05dd..8ad2a6b 100644 --- a/public/locales/jp/translation.json +++ b/public/locales/jp/translation.json @@ -8,6 +8,8 @@ "common.next": "Next", "common.return": "戻る", "enter-object-name-prefix-or-leave-empty-hint": "Enter object name prefix or leave empty", + "event.cli.copy-to-clipboard": "Copy to clipboard", + "event.cli.show-cli-equivalent": "Click to show CLI equivalent", "event.description.cancel": "Cancel", "event.description.new": "Enter new description", "event.description.remove": "Remove Description", @@ -19,14 +21,21 @@ "event.pin.remove": "Remove Pin", "event.pin.snapshot-pin": "Pin Snapshot", "event.pin.update": "Update Pin", + "event.policy.delete": "Delete policy", + "event.policy.edit": "Edit", + "event.policy.save": "Save policy", + "event.policy.set": "Set policy", "event.repository.advanced-options-hide": "Hide Advanced Options", "event.repository.advanced-options.show": "Show Advanced Options", "event.repository.connect-to-repository": "Connect to repository", "event.repository.create-repository": "Create repository", + "event.task.cancel": "Cancel task", "feedback.description.modal-title": "Snapshot Description", + "feedback.error.common": "Error", "feedback.error.connection": "Connect Error:", "feedback.header.actions": "Actions", "feedback.header.defined": "Defined", + "feedback.header.details": "Details", "feedback.header.directories": "Directories", "feedback.header.effective": "Effective", "feedback.header.files": "Files", @@ -38,6 +47,16 @@ "feedback.header.username": "Username", "feedback.pin.name": "Name of the pin", "feedback.pin.standard-text": "do-not-delete", + "feedback.policy.action.command-mode": "Command Mode", + "feedback.policy.actions.after-folder": "After Folder", + "feedback.policy.actions.after-folder-help": "Script to run after folder", + "feedback.policy.actions.after-snapshot": "After Snapshot", + "feedback.policy.actions.after-snapshot-help": "Script to run after snapshot", + "feedback.policy.actions.before-folder": "Before Folder", + "feedback.policy.actions.before-folder-help": "Script to run before folder", + "feedback.policy.actions.before-snapshot": "Before Snapshot", + "feedback.policy.actions.before-snapshot-help": "Script to run before snapshot", + "feedback.policy.actions.timeout": "Timeout", "feedback.policy.command-mode-help": "Essential (must succeed; default behavior), optional (failures are tolerated), or async (Kopia will start the action but not wait for it to finish)", "feedback.policy.compression.compression-algorithm": "Compression Algorithm", "feedback.policy.compression.compression-algorithm-help": "Specify compression algorithm to use when snapshotting files in this directory and subdirectories", @@ -54,7 +73,8 @@ "feedback.policy.compression.only-compress-extensions-help": "Only compress files with the following file extensions (one extension per line)", "feedback.policy.compression.only-compress-extensions-hint": "e.g. *.txt", "feedback.policy.confirm-delete-policy": "Are you sure you want to delete this policy?", - "feedback.policy.defined-by-this-policy": "(Defined by this policy)", + "feedback.policy.defined-by": "Defined by", + "feedback.policy.defined-by-this-policy": "Defined by this policy", "feedback.policy.error-delete-policy": "Error deleting policy", "feedback.policy.error-handling.ignore-directory-errors": "Ignore Directory Errors", "feedback.policy.error-handling.ignore-directory-errors-help": "Treat directory read errors as non-fatal.", @@ -64,6 +84,7 @@ "feedback.policy.error-handling.ignore-unknown-directories-help": "Treat unrecognized/unsupported directory entries as non-fatal errors.", "feedback.policy.error-saving-policy": "Error saving policy", "feedback.policy.files.ignore-files": "Ignore Files", + "feedback.policy.files.ignore-files-help": "List of file and directory names to ignore.
See documentation on ignoring files.", "feedback.policy.files.ignore-files-hint": "e.g. /file.txt", "feedback.policy.files.ignore-rule-files": "Ignore Rule Files", "feedback.policy.files.ignore-rule-files-from-parent-directories": "Ignore Rule Files From Parent Directories", @@ -86,6 +107,22 @@ "feedback.policy.header.snapshot-action": "Snapshot Actions", "feedback.policy.header.snapshot-retention": "Snapshot Retention", "feedback.policy.header.upload": "Upload", + "feedback.policy.logging.cache-hit": "Cache hit", + "feedback.policy.logging.cache-hit-help": "Log verbosity when a cache is used instead of uploading the file", + "feedback.policy.logging.cache-miss": "Cache miss", + "feedback.policy.logging.cache-miss-help": "Log verbosity when a cache cannot be used and a file must be hashed", + "feedback.policy.logging.directory-ignored": "Directory ignored", + "feedback.policy.logging.directory-ignored-help": "Log verbosity when a directory is ignored", + "feedback.policy.logging.directory-snapshotted": "Directory snapshotted", + "feedback.policy.logging.directory-snapshotted-help": "Log verbosity when a directory is snapshotted", + "feedback.policy.logging.file-ignored": "File ignored", + "feedback.policy.logging.file-ignored-help": "Log verbosity when a file, symbolic link, etc. is ignored", + "feedback.policy.logging.file-snapshotted": "File snapshotted", + "feedback.policy.logging.file-snapshotted-help": "Log verbosity when a file, symbolic link, etc. is snapshotted", + "feedback.policy.other.disable-parent-policy-evaluation": "Disable Parent Policy Evaluation", + "feedback.policy.other.disable-parent-policy-evaluation-help": "Prevents any parent policies from affecting this directory and its subdirectories", + "feedback.policy.other.json-representation": "JSON Representation", + "feedback.policy.other.json-representation-help": "This is the internal representation of a policy", "feedback.policy.retention.annual-snapshot-retain": "Annual", "feedback.policy.retention.annual-snapshot-retain-help": "How many annual snapshots to retain per source. The latest snapshot from each calendar year will be retained", "feedback.policy.retention.annual-snapshot-retain-hint": "Number of annual snapshots", @@ -106,7 +143,31 @@ "feedback.policy.retention.weekly-snapshot-retain": "Weekly", "feedback.policy.retention.weekly-snapshot-retain-help": "How many weekly snapshots to retain per source. The latest snapshot from each week will be retained", "feedback.policy.retention.weekly-snapshot-retain-hint": "Number of weekly snapshots", + "feedback.policy.scheduling.cron-expressions": "Cron Expressions", + "feedback.policy.scheduling.cron-expressions-hint": "minute hour day month weekday", + "feedback.policy.scheduling.cron-help": "Snapshot schedules using UNIX crontab syntax (one per line):
See supported format details.", + "feedback.policy.scheduling.manual-snapshots-only": "Manual Snapshots Only", + "feedback.policy.scheduling.manual-snapshots-only-help": "Only create snapshots manually (disables scheduled snapshots)", + "feedback.policy.scheduling.missed-snapshots-startup": "Run Missed Snapshots on Startup", + "feedback.policy.scheduling.missed-snapshots-startup-help": "Immediately run any missed snapshots when kopia starts (only relevant for Time-of-day snapshots)", + "feedback.policy.scheduling.no-upcoming-snapshots": "No upcoming snapshots", + "feedback.policy.scheduling.snapshot-frequency": "Snapshot Frequency", + "feedback.policy.scheduling.snapshot-frequency-help": "How frequently to create snapshots in KopiaUI or Kopia server (has no effect outside of the server mode)", + "feedback.policy.scheduling.times-of-day": "Times Of Day", + "feedback.policy.scheduling.times-of-day-help": "Create snapshots at the specified times of day (24hr format)", + "feedback.policy.scheduling.times-of-day-hint": "e.g. 17:00", + "feedback.policy.scheduling.upcoming": "Upcoming", + "feedback.policy.scheduling.upcoming-snapshots": "Upcoming Snapshots", + "feedback.policy.scheduling.upcoming-snapshots-help": "Times of upcoming snapshots calculated based on policy parameters", + "feedback.policy.time-of-day.invalid": "Invalid time of day: {{tod}}", "feedback.policy.timeout-help": "Timeout in seconds before Kopia kills the process", + "feedback.policy.upload.maximum-parallel-file-reads": "Maximum Parallel File Reads", + "feedback.policy.upload.maximum-parallel-file-reads-help": "Maximum number of files that will be read in parallel (defaults to the number of logical processors)", + "feedback.policy.upload.maximum-parallel-file-reads-hint": "max number of parallel file reads", + "feedback.policy.upload.maximum-parallel-snapshots": "Maximum Parallel Snapshots", + "feedback.policy.upload.maximum-parallel-snapshots-help": "Maximum number of snapshots that can be uploaded simultaneously", + "feedback.policy.upload.maximum-parallel-snapshots-hint-set": "max number of parallel snapshots", + "feedback.policy.upload.maximum-parallel-snapshots-hint-unset": "must be specified using global, user, or host policy", "feedback.provider.azure-blob-storage": "Azure Blob Storage", "feedback.provider.backblaze-b2": "Backblaze B2", "feedback.provider.google-cloud-storage": "Google Cloud Storage", @@ -138,13 +199,18 @@ "feedback.repository.repository-description-help": "Helps to distinguish between multiple connected repositories", "feedback.repository.repository-description-hint": "Enter repository description", "feedback.repository.repository-token-enter": "Enter Repository Token", + "feedback.snapshot.status.overdue": "overdue", "feedback.tab.policies": "ポリシー", "feedback.tab.preferences": "設定", "feedback.tab.repository": "リポジトリ", "feedback.tab.repository-is-not-connected": "Repository is not connected", "feedback.tab.snapshots": "スナップショット", "feedback.tab.tasks": "タスク", + "feedback.task.canceled-after": "Canceled after", "feedback.task.estimate-results": "{{description}} Bytes: {{bytes}} ({{bytes.excluded}} excluded) Files: {{files}} ({{files.excluded}} excluded) Directories: {{directories}} ({{directories.excluded}} excluded) Errors: {{errors}} ({{errors.ignored}} ignored)", + "feedback.task.failed-after": "Failed after", + "feedback.task.finished-in": "Finished in", + "feedback.task.running-for": "Running for", "feedback.task.total": "Total", "feedback.ui.appearance": "外観", "feedback.ui.appearance-help": "ユーザーインターフェースの外観を指定します", @@ -378,6 +444,8 @@ "validation.provider.user": "User", "validation.provider.user-hint": "User name", "value.algorithm.eco-disabled": "Disabled", + "value.algorithm.suffix-not-recommended": "(NOT RECOMMENDED)", + "value.algorithm.suffix-recommended": "(RECOMMENDED)", "value.log.details-0-no-output": "0 - no output", "value.log.details-1-minimal-details": "1 - minimal details", "value.log.details-10-maximum-details": "10 - maximum details", @@ -392,6 +460,14 @@ "value.provider.s3.no-tls-verification": "Do not verify TLS certificate", "value.repository.format.latest": "Latest format", "value.repository.format.legacy": "Legacy format compatible with v0.8", + "value.snapshot-frequency.10-minutes": "every 10 minutes", + "value.snapshot-frequency.12-hours": "every 12 hours", + "value.snapshot-frequency.15-minutes": "every 15 minutes", + "value.snapshot-frequency.20-minutes": "every 20 minutes", + "value.snapshot-frequency.3-hours": "every 3 hours", + "value.snapshot-frequency.30-minutes": "every 30 minutes", + "value.snapshot-frequency.6-hours": "every 6 hours", + "value.snapshot-frequency.hour": "every hour", "value.ui.appearance-large": "大", "value.ui.appearance-medium": "中", "value.ui.appearance-small": "小", diff --git a/public/locales/pl/translation.json b/public/locales/pl/translation.json index 32a3f18..06a1172 100644 --- a/public/locales/pl/translation.json +++ b/public/locales/pl/translation.json @@ -8,6 +8,8 @@ "common.next": "Następny", "common.return": "Wróć", "enter-object-name-prefix-or-leave-empty-hint": "Wprowadź przedrostek nazwy obiektu lub pozostaw puste", + "event.cli.copy-to-clipboard": "Skopiuj do schowka", + "event.cli.show-cli-equivalent": "Kliknij, aby wyświetlić odpowiednik CLI", "event.description.cancel": "Anulować", "event.description.new": "Wprowadź nowy opis", "event.description.remove": "Usuń opis", @@ -19,14 +21,21 @@ "event.pin.remove": "Usuń pinezkę", "event.pin.snapshot-pin": "Przypnij migawkę", "event.pin.update": "Zaktualizuj Pin", + "event.policy.delete": "Usuń politykę", + "event.policy.edit": "Edytować", + "event.policy.save": "Zapisz politykę", + "event.policy.set": "Ustaw politykę", "event.repository.advanced-options-hide": "Ukryj opcje zaawansowane", "event.repository.advanced-options.show": "Pokaż ustawienia zaawansowane", "event.repository.connect-to-repository": "Połącz się z repozytorium", "event.repository.create-repository": "Utwórz repozytorium", + "event.task.cancel": "Anuluj zadanie", "feedback.description.modal-title": "Opis migawki", + "feedback.error.common": "Błąd", "feedback.error.connection": "Błąd połączenia:", "feedback.header.actions": "działania", "feedback.header.defined": "Zdefiniowane", + "feedback.header.details": "Detale", "feedback.header.directories": "Katalogi", "feedback.header.effective": "Skuteczny", "feedback.header.files": "Akta", @@ -38,6 +47,16 @@ "feedback.header.username": "Nazwa użytkownika", "feedback.pin.name": "Nazwa pinu", "feedback.pin.standard-text": "nie kasuj", + "feedback.policy.action.command-mode": "Tryb poleceń", + "feedback.policy.actions.after-folder": "Po folderze", + "feedback.policy.actions.after-folder-help": "Skrypt uruchamiany po folderze", + "feedback.policy.actions.after-snapshot": "Po migawce", + "feedback.policy.actions.after-snapshot-help": "Skrypt uruchamiany po zrobieniu migawki", + "feedback.policy.actions.before-folder": "Przed folderem", + "feedback.policy.actions.before-folder-help": "Skrypt uruchamiany przed folderem", + "feedback.policy.actions.before-snapshot": "Przed zrzutem ekranu", + "feedback.policy.actions.before-snapshot-help": "Skrypt uruchamiany przed wykonaniem migawki", + "feedback.policy.actions.timeout": "Koniec czasu", "feedback.policy.command-mode-help": "Niezbędny (musi zakończyć się sukcesem; zachowanie domyślne), opcjonalny (awarie są tolerowane) lub asynchroniczny (Kopia rozpocznie akcję, ale nie będzie czekać na jej zakończenie)", "feedback.policy.compression.compression-algorithm": "Algorytm kompresji", "feedback.policy.compression.compression-algorithm-help": "Określ algorytm kompresji, który będzie używany podczas tworzenia migawek plików w tym katalogu i podkatalogach", @@ -54,7 +73,8 @@ "feedback.policy.compression.only-compress-extensions-help": "Kompresuj tylko pliki z następującymi rozszerzeniami (jedno rozszerzenie w linii)", "feedback.policy.compression.only-compress-extensions-hint": "np. *.tekst", "feedback.policy.confirm-delete-policy": "Czy na pewno chcesz usunąć tę politykę?", - "feedback.policy.defined-by-this-policy": "(Określone w tej polityce)", + "feedback.policy.defined-by": "Określony przez", + "feedback.policy.defined-by-this-policy": "Zdefiniowane w tej polityce", "feedback.policy.error-delete-policy": "Błąd podczas usuwania zasady", "feedback.policy.error-handling.ignore-directory-errors": "Ignoruj ​​​​błędy katalogu", "feedback.policy.error-handling.ignore-directory-errors-help": "Traktuj błędy odczytu katalogu jako niekrytyczne.", @@ -64,6 +84,7 @@ "feedback.policy.error-handling.ignore-unknown-directories-help": "Traktuj nierozpoznane/nieobsługiwane wpisy katalogu jako błędy niekrytyczne.", "feedback.policy.error-saving-policy": "Błąd podczas zapisywania zasad", "feedback.policy.files.ignore-files": "Ignoruj ​​pliki", + "feedback.policy.files.ignore-files-help": "Lista nazw plików i katalogów do zignorowania.
Zobacz dokumentację dotyczącą ignorowania plików.", "feedback.policy.files.ignore-files-hint": "np. /plik.txt", "feedback.policy.files.ignore-rule-files": "Ignoruj ​​pliki reguł", "feedback.policy.files.ignore-rule-files-from-parent-directories": "Ignoruj ​​pliki reguł z katalogów nadrzędnych", @@ -86,6 +107,22 @@ "feedback.policy.header.snapshot-action": "Akcje migawki", "feedback.policy.header.snapshot-retention": "Przechowywanie migawek", "feedback.policy.header.upload": "Wgrywać", + "feedback.policy.logging.cache-hit": "Trafienie w pamięć podręczną", + "feedback.policy.logging.cache-hit-help": "Szczegółowość dziennika, gdy zamiast przesyłania pliku używana jest pamięć podręczna", + "feedback.policy.logging.cache-miss": "Brak pamięci podręcznej", + "feedback.policy.logging.cache-miss-help": "Szczegółowość dziennika, gdy nie można użyć pamięci podręcznej i plik musi zostać zaszyfrowany", + "feedback.policy.logging.directory-ignored": "Katalog zignorowany", + "feedback.policy.logging.directory-ignored-help": "Rejestruj szczegółowość, gdy katalog jest ignorowany", + "feedback.policy.logging.directory-snapshotted": "Zrzut katalogu", + "feedback.policy.logging.directory-snapshotted-help": "Szczegółowość dziennika podczas tworzenia migawki katalogu", + "feedback.policy.logging.file-ignored": "Plik zignorowany", + "feedback.policy.logging.file-ignored-help": "Rejestruj szczegółowość, gdy plik, łącze symboliczne itp. jest ignorowane", + "feedback.policy.logging.file-snapshotted": "Zrzut pliku", + "feedback.policy.logging.file-snapshotted-help": "Rejestruj szczegółowość zapisu pliku, łącza symbolicznego itp", + "feedback.policy.other.disable-parent-policy-evaluation": "Wyłącz ocenę zasad nadrzędnych", + "feedback.policy.other.disable-parent-policy-evaluation-help": "Zapobiega wpływowi zasad nadrzędnych na ten katalog i jego podkatalogi", + "feedback.policy.other.json-representation": "Reprezentacja JSON", + "feedback.policy.other.json-representation-help": "Jest to wewnętrzna reprezentacja polityki", "feedback.policy.retention.annual-snapshot-retain": "Coroczny", "feedback.policy.retention.annual-snapshot-retain-help": "Liczba rocznych migawek przechowywanych dla każdego źródła. \nZachowana zostanie najnowsza migawka z każdego roku kalendarzowego", "feedback.policy.retention.annual-snapshot-retain-hint": "Liczba rocznych migawek", @@ -106,7 +143,31 @@ "feedback.policy.retention.weekly-snapshot-retain": "Co tydzień", "feedback.policy.retention.weekly-snapshot-retain-help": "Liczba cotygodniowych migawek przechowywanych dla każdego źródła. \nNajnowsza migawka z każdego tygodnia zostanie zachowana", "feedback.policy.retention.weekly-snapshot-retain-hint": "Liczba cotygodniowych migawek", + "feedback.policy.scheduling.cron-expressions": "Wyrażenia Crona", + "feedback.policy.scheduling.cron-expressions-hint": "minuta godzina dzień miesiąc dzień powszedni", + "feedback.policy.scheduling.cron-help": "Harmonogramy zrzutów ekranu przy użyciu składni crontab UNIX (po jednym w wierszu):
Zobacz szczegóły dotyczące obsługiwanych formatów.", + "feedback.policy.scheduling.manual-snapshots-only": "Tylko ręczne migawki", + "feedback.policy.scheduling.manual-snapshots-only-help": "Twórz migawki tylko ręcznie (wyłącza zaplanowane migawki)", + "feedback.policy.scheduling.missed-snapshots-startup": "Uruchom pominięte migawki podczas uruchamiania", + "feedback.policy.scheduling.missed-snapshots-startup-help": "Natychmiast uruchom wszelkie pominięte migawki po rozpoczęciu kopiowania (dotyczy tylko migawek aktualnych)", + "feedback.policy.scheduling.no-upcoming-snapshots": "Brak nadchodzących migawek", + "feedback.policy.scheduling.snapshot-frequency": "Częstotliwość migawki", + "feedback.policy.scheduling.snapshot-frequency-help": "Jak często tworzyć migawki na serwerze KopiaUI lub Kopia (nie ma wpływu poza trybem serwera)", + "feedback.policy.scheduling.times-of-day": "Pory dnia", + "feedback.policy.scheduling.times-of-day-help": "Twórz migawki o określonych porach dnia (format 24-godzinny)", + "feedback.policy.scheduling.times-of-day-hint": "np. 17:00", + "feedback.policy.scheduling.upcoming": "Nadchodzące", + "feedback.policy.scheduling.upcoming-snapshots": "Nadchodzące migawki", + "feedback.policy.scheduling.upcoming-snapshots-help": "Czasy nadchodzących migawek obliczone na podstawie parametrów zasad", + "feedback.policy.time-of-day.invalid": "Nieprawidłowa godzina: {{tod}}", "feedback.policy.timeout-help": "Limit czasu w sekundach, zanim Kopia zabije proces", + "feedback.policy.upload.maximum-parallel-file-reads": "Maksymalne równoległe odczyty plików", + "feedback.policy.upload.maximum-parallel-file-reads-help": "Maksymalna liczba plików, które będą odczytywane równolegle (domyślnie jest to liczba procesorów logicznych)", + "feedback.policy.upload.maximum-parallel-file-reads-hint": "maksymalna liczba równoległych odczytów plików", + "feedback.policy.upload.maximum-parallel-snapshots": "Maksymalnie równoległe migawki", + "feedback.policy.upload.maximum-parallel-snapshots-help": "Maksymalna liczba migawek, które można przesłać jednocześnie", + "feedback.policy.upload.maximum-parallel-snapshots-hint-set": "maksymalna liczba równoległych migawek", + "feedback.policy.upload.maximum-parallel-snapshots-hint-unset": "należy określić przy użyciu zasad globalnych, użytkownika lub hosta", "feedback.provider.azure-blob-storage": "Magazyn obiektów Blob platformy Azure", "feedback.provider.backblaze-b2": "Blask wsteczny B2", "feedback.provider.google-cloud-storage": "Magazyn w chmurze Google", @@ -138,13 +199,18 @@ "feedback.repository.repository-description-help": "Pomaga rozróżnić wiele połączonych repozytoriów", "feedback.repository.repository-description-hint": "Wprowadź opis repozytorium", "feedback.repository.repository-token-enter": "Wprowadź token repozytorium", + "feedback.snapshot.status.overdue": "zaległy", "feedback.tab.policies": "Konfiguracje", "feedback.tab.preferences": "Ustawienia", "feedback.tab.repository": "Repozytorium", "feedback.tab.repository-is-not-connected": "Repozytorium nie jest połączone", "feedback.tab.snapshots": "Kopie", "feedback.tab.tasks": "Zadania", + "feedback.task.canceled-after": "Anulowano po", "feedback.task.estimate-results": "{{description}} Bytes: {{bytes}} ({{bytes.excluded}} wyłączony) Files: {{files}} ({{files.excluded}} wyłączony) Directories: {{directories}} ({{directories.excluded}} wyłączony) Errors: {{errors}} ({{errors.ignored}} ignorowany)", + "feedback.task.failed-after": "Nie udało się po", + "feedback.task.finished-in": "Skończono w", + "feedback.task.running-for": "Biegać dla", "feedback.task.total": "Całkowity", "feedback.ui.appearance": "Wielkość tekstu", "feedback.ui.appearance-help": "Wybierz rodzaj czcionki", @@ -378,6 +444,8 @@ "validation.provider.user": "Użytkownik", "validation.provider.user-hint": "Nazwa użytkownika", "value.algorithm.eco-disabled": "Wyłączony", + "value.algorithm.suffix-not-recommended": "(NIEPOLECANE)", + "value.algorithm.suffix-recommended": "(ZALECANA)", "value.log.details-0-no-output": "0 - brak wyjścia", "value.log.details-1-minimal-details": "1 - minimalne szczegóły", "value.log.details-10-maximum-details": "10 - maksimum szczegółów", @@ -392,6 +460,14 @@ "value.provider.s3.no-tls-verification": "Nie weryfikuj certyfikatu TLS", "value.repository.format.latest": "Najnowszy format", "value.repository.format.legacy": "Starszy format zgodny z wersją 0.8", + "value.snapshot-frequency.10-minutes": "co 10 minut", + "value.snapshot-frequency.12-hours": "co 12 godzin", + "value.snapshot-frequency.15-minutes": "co 15 minut", + "value.snapshot-frequency.20-minutes": "co 20 minut", + "value.snapshot-frequency.3-hours": "co 3 godziny", + "value.snapshot-frequency.30-minutes": "co 30 minut", + "value.snapshot-frequency.6-hours": "co 6 godzin", + "value.snapshot-frequency.hour": "co godzinę", "value.ui.appearance-large": "duża", "value.ui.appearance-medium": "średnia", "value.ui.appearance-small": "mała", diff --git a/public/locales/ru/translation.json b/public/locales/ru/translation.json index dda4111..86c2fdc 100644 --- a/public/locales/ru/translation.json +++ b/public/locales/ru/translation.json @@ -8,6 +8,8 @@ "common.next": "Следующий", "common.return": "Возврат", "enter-object-name-prefix-or-leave-empty-hint": "Введите префикс имени объекта или оставьте пустым.", + "event.cli.copy-to-clipboard": "Скопировать в буфер обмена", + "event.cli.show-cli-equivalent": "Нажмите, чтобы показать эквивалент CLI", "event.description.cancel": "Отмена", "event.description.new": "Введите новое описание", "event.description.remove": "Удалить описание", @@ -19,14 +21,21 @@ "event.pin.remove": "Удалить булавку", "event.pin.snapshot-pin": "Снимок закрепления", "event.pin.update": "Обновить пин-код", + "event.policy.delete": "Удалить политику", + "event.policy.edit": "Редактировать", + "event.policy.save": "Сохранить политику", + "event.policy.set": "Установить политику", "event.repository.advanced-options-hide": "Скрыть дополнительные параметры", "event.repository.advanced-options.show": "Показать дополнительные параметры", "event.repository.connect-to-repository": "Подключиться к репозиторию", "event.repository.create-repository": "Создать репозиторий", + "event.task.cancel": "Отменить задачу", "feedback.description.modal-title": "Описание снимка", + "feedback.error.common": "Ошибка", "feedback.error.connection": "Ошибка подключения:", "feedback.header.actions": "Действия", "feedback.header.defined": "Определенный", + "feedback.header.details": "Подробности", "feedback.header.directories": "Каталоги", "feedback.header.effective": "Эффективный", "feedback.header.files": "Файлы", @@ -38,6 +47,16 @@ "feedback.header.username": "Имя пользователя", "feedback.pin.name": "Название контакта", "feedback.pin.standard-text": "не удалять", + "feedback.policy.action.command-mode": "Командный режим", + "feedback.policy.actions.after-folder": "После папки", + "feedback.policy.actions.after-folder-help": "Скрипт для запуска после папки", + "feedback.policy.actions.after-snapshot": "После снимка", + "feedback.policy.actions.after-snapshot-help": "Скрипт для запуска после снимка", + "feedback.policy.actions.before-folder": "Перед папкой", + "feedback.policy.actions.before-folder-help": "Скрипт для запуска перед папкой", + "feedback.policy.actions.before-snapshot": "Перед снимком", + "feedback.policy.actions.before-snapshot-help": "Скрипт для запуска перед снимком", + "feedback.policy.actions.timeout": "Тайм-аут", "feedback.policy.command-mode-help": "Необходимое (должно быть успешным; поведение по умолчанию), необязательное (сбои допускаются) или асинхронное (Kopia запускает действие, но не ждет его завершения).", "feedback.policy.compression.compression-algorithm": "Алгоритм сжатия", "feedback.policy.compression.compression-algorithm-help": "Укажите алгоритм сжатия, который будет использоваться при создании снимков файлов в этом каталоге и подкаталогах.", @@ -54,7 +73,8 @@ "feedback.policy.compression.only-compress-extensions-help": "Сжимайте только файлы со следующими расширениями (по одному расширению в строке)", "feedback.policy.compression.only-compress-extensions-hint": "например *.текст", "feedback.policy.confirm-delete-policy": "Вы уверены, что хотите удалить эту политику?", - "feedback.policy.defined-by-this-policy": "(Определено настоящей политикой)", + "feedback.policy.defined-by": "Определяется", + "feedback.policy.defined-by-this-policy": "Определено этой политикой", "feedback.policy.error-delete-policy": "Ошибка удаления политики.", "feedback.policy.error-handling.ignore-directory-errors": "Игнорировать ошибки каталога", "feedback.policy.error-handling.ignore-directory-errors-help": "Считайте ошибки чтения каталога нефатальными.", @@ -64,6 +84,7 @@ "feedback.policy.error-handling.ignore-unknown-directories-help": "Считайте нераспознанные/неподдерживаемые записи каталога нефатальными ошибками.", "feedback.policy.error-saving-policy": "Ошибка сохранения политики.", "feedback.policy.files.ignore-files": "Игнорировать файлы", + "feedback.policy.files.ignore-files-help": "Список имен файлов и каталогов, которые следует игнорировать.
См. документацию по игнорированию файлов.", "feedback.policy.files.ignore-files-hint": "например /file.txt", "feedback.policy.files.ignore-rule-files": "Игнорировать файлы правил", "feedback.policy.files.ignore-rule-files-from-parent-directories": "Игнорировать файлы правил из родительских каталогов", @@ -86,6 +107,22 @@ "feedback.policy.header.snapshot-action": "Действия со снимками", "feedback.policy.header.snapshot-retention": "Хранение моментальных снимков", "feedback.policy.header.upload": "Загрузить", + "feedback.policy.logging.cache-hit": "Попадание в кэш", + "feedback.policy.logging.cache-hit-help": "Подробность журнала, когда вместо загрузки файла используется кеш", + "feedback.policy.logging.cache-miss": "Промах в кэше", + "feedback.policy.logging.cache-miss-help": "Подробность журнала, когда кеш нельзя использовать и файл необходимо хешировать", + "feedback.policy.logging.directory-ignored": "Каталог игнорируется", + "feedback.policy.logging.directory-ignored-help": "Подробность журнала, когда каталог игнорируется", + "feedback.policy.logging.directory-snapshotted": "Снимок каталога", + "feedback.policy.logging.directory-snapshotted-help": "Подробность журнала при создании снимка каталога", + "feedback.policy.logging.file-ignored": "Файл игнорируется", + "feedback.policy.logging.file-ignored-help": "Подробность журнала, когда файл, символическая ссылка и т. д. игнорируются", + "feedback.policy.logging.file-snapshotted": "Снимок файла", + "feedback.policy.logging.file-snapshotted-help": "Подробность журнала при создании моментального снимка файла, символической ссылки и т. д.", + "feedback.policy.other.disable-parent-policy-evaluation": "Отключить оценку родительской политики", + "feedback.policy.other.disable-parent-policy-evaluation-help": "Предотвращает влияние родительских политик на этот каталог и его подкаталоги.", + "feedback.policy.other.json-representation": "JSON-представление", + "feedback.policy.other.json-representation-help": "Это внутреннее представление политики", "feedback.policy.retention.annual-snapshot-retain": "Ежегодный", "feedback.policy.retention.annual-snapshot-retain-help": "Сколько ежегодных снимков следует сохранять для каждого источника. \nПоследний снимок за каждый календарный год будет сохранен.", "feedback.policy.retention.annual-snapshot-retain-hint": "Количество ежегодных снимков", @@ -106,7 +143,31 @@ "feedback.policy.retention.weekly-snapshot-retain": "Еженедельно", "feedback.policy.retention.weekly-snapshot-retain-help": "Сколько еженедельных снимков сохранять для каждого источника. \nПоследний снимок каждой недели будет сохранен.", "feedback.policy.retention.weekly-snapshot-retain-hint": "Количество еженедельных снимков", + "feedback.policy.scheduling.cron-expressions": "Выражения Крон", + "feedback.policy.scheduling.cron-expressions-hint": "минута час день месяц будний день", + "feedback.policy.scheduling.cron-help": "Расписания моментальных снимков с использованием синтаксиса crontab UNIX (по одному на строку):
см. подробности о поддерживаемом формате.", + "feedback.policy.scheduling.manual-snapshots-only": "Только снимки вручную", + "feedback.policy.scheduling.manual-snapshots-only-help": "Создавайте снимки только вручную (отключает запланированные снимки)", + "feedback.policy.scheduling.missed-snapshots-startup": "Запуск пропущенных снимков при запуске", + "feedback.policy.scheduling.missed-snapshots-startup-help": "Немедленно запускайте все пропущенные снимки при запуске kopia (актуально только для снимков по времени).", + "feedback.policy.scheduling.no-upcoming-snapshots": "Нет предстоящих снимков", + "feedback.policy.scheduling.snapshot-frequency": "Частота снимков", + "feedback.policy.scheduling.snapshot-frequency-help": "Как часто создавать снимки на сервере KopiaUI или Kopia (не влияет вне режима сервера)", + "feedback.policy.scheduling.times-of-day": "Время суток", + "feedback.policy.scheduling.times-of-day-help": "Создание снимков в указанное время суток (24-часовой формат)", + "feedback.policy.scheduling.times-of-day-hint": "например 17:00", + "feedback.policy.scheduling.upcoming": "Предстоящие", + "feedback.policy.scheduling.upcoming-snapshots": "Предстоящие снимки", + "feedback.policy.scheduling.upcoming-snapshots-help": "Время предстоящих снимков рассчитывается на основе параметров политики.", + "feedback.policy.time-of-day.invalid": "Неверное время суток: {{tod}}", "feedback.policy.timeout-help": "Тайм-аут в секундах, прежде чем Копия завершит процесс", + "feedback.policy.upload.maximum-parallel-file-reads": "Максимальное параллельное чтение файлов", + "feedback.policy.upload.maximum-parallel-file-reads-help": "Максимальное количество файлов, которые будут читаться параллельно (по умолчанию равно количеству логических процессоров).", + "feedback.policy.upload.maximum-parallel-file-reads-hint": "максимальное количество параллельных чтений файлов", + "feedback.policy.upload.maximum-parallel-snapshots": "Максимальное количество параллельных снимков", + "feedback.policy.upload.maximum-parallel-snapshots-help": "Максимальное количество снимков, которые можно загрузить одновременно", + "feedback.policy.upload.maximum-parallel-snapshots-hint-set": "максимальное количество параллельных снимков", + "feedback.policy.upload.maximum-parallel-snapshots-hint-unset": "должно быть указано с использованием глобальной, пользовательской или хостовой политики.", "feedback.provider.azure-blob-storage": "Хранилище BLOB-объектов Azure", "feedback.provider.backblaze-b2": "Бэкблэйз Б2", "feedback.provider.google-cloud-storage": "Облачное хранилище Google", @@ -138,13 +199,18 @@ "feedback.repository.repository-description-help": "Помогает различать несколько подключенных репозиториев.", "feedback.repository.repository-description-hint": "Введите описание репозитория", "feedback.repository.repository-token-enter": "Введите токен репозитория", + "feedback.snapshot.status.overdue": "просроченный", "feedback.tab.policies": "Политики", "feedback.tab.preferences": "Настройки", "feedback.tab.repository": "Репозиторий", "feedback.tab.repository-is-not-connected": "Репозиторий не подключен", "feedback.tab.snapshots": "Снимки", "feedback.tab.tasks": "Задачи", + "feedback.task.canceled-after": "Отменено после", "feedback.task.estimate-results": "{{description}} Bytes: {{bytes}} ({{bytes.excluded}} исключено) Files: {{files}} ({{files.excluded}} исключено) Directories: {{directories}} ({{directories.excluded}} исключено) Errors: {{errors}} ({{errors.ignored}} проигнорировал)", + "feedback.task.failed-after": "Не удалось после", + "feedback.task.finished-in": "Закончено через", + "feedback.task.running-for": "Бег за", "feedback.task.total": "Общий", "feedback.ui.appearance": "Внешний вид", "feedback.ui.appearance-help": "Определяет внешний вид пользовательского интерфейса", @@ -378,6 +444,8 @@ "validation.provider.user": "Пользователь", "validation.provider.user-hint": "Имя пользователя", "value.algorithm.eco-disabled": "Неполноценный", + "value.algorithm.suffix-not-recommended": "(НЕ РЕКОМЕНДУЕТСЯ)", + "value.algorithm.suffix-recommended": "(РЕКОМЕНДУЕМЫЕ)", "value.log.details-0-no-output": "0 - нет вывода", "value.log.details-1-minimal-details": "1 - минимум деталей", "value.log.details-10-maximum-details": "10 - максимум деталей", @@ -392,6 +460,14 @@ "value.provider.s3.no-tls-verification": "Не проверять сертификат TLS", "value.repository.format.latest": "Последний формат", "value.repository.format.legacy": "Устаревший формат, совместимый с версией 0.8.", + "value.snapshot-frequency.10-minutes": "каждые 10 минут", + "value.snapshot-frequency.12-hours": "каждые 12 часов", + "value.snapshot-frequency.15-minutes": "каждые 15 минут", + "value.snapshot-frequency.20-minutes": "каждые 20 минут", + "value.snapshot-frequency.3-hours": "каждые 3 часа", + "value.snapshot-frequency.30-minutes": "каждые 30 минут", + "value.snapshot-frequency.6-hours": "каждые 6 часов", + "value.snapshot-frequency.hour": "каждый час", "value.ui.appearance-large": "большой", "value.ui.appearance-medium": "средний", "value.ui.appearance-small": "маленький", diff --git a/src/components/policy-editor/ActionRowMode.jsx b/src/components/policy-editor/ActionRowMode.jsx index 3b52391..3c186ef 100644 --- a/src/components/policy-editor/ActionRowMode.jsx +++ b/src/components/policy-editor/ActionRowMode.jsx @@ -9,7 +9,7 @@ import i18n from '../../utils/i18n' export function ActionRowMode(component, action) { return - + - + {OptionalNumberField(component, "", "policy." + action, {})} {EffectiveValue(component, action)} ; diff --git a/src/components/policy-editor/PolicyEditor.jsx b/src/components/policy-editor/PolicyEditor.jsx index 6a10633..3319804 100644 --- a/src/components/policy-editor/PolicyEditor.jsx +++ b/src/components/policy-editor/PolicyEditor.jsx @@ -30,6 +30,7 @@ import { ActionRowScript } from './ActionRowScript'; import { ActionRowTimeout } from './ActionRowTimeout'; import { ActionRowMode } from './ActionRowMode'; import i18n from '../../utils/i18n'; +import { Trans } from 'react-i18next'; export class PolicyEditor extends Component { constructor() { @@ -121,7 +122,7 @@ export class PolicyEditor extends Component { return i18n.t('feedback.policy.defined-by-this-policy'); } - return <>Defined by {PolicyEditorLink(p)}; + return <>{i18n.t('feedback.policy.defined-by')} {PolicyEditorLink(p)}; } getAndValidatePolicy() { @@ -147,7 +148,7 @@ export class PolicyEditor extends Component { for (const tod of l) { if (typeof (tod) !== "object") { // unparsed - throw Error("invalid time of day: '" + tod + "'") + throw Error(i18n.t('feedback.policy.time-of-day.invalid', { 'tod': tod })) } } @@ -301,7 +302,7 @@ export class PolicyEditor extends Component { - List of file and directory names to ignore.
(See documentation on ignoring files).} /> + }} />} /> {StringList(this, "policy.files.ignore", { placeholder: i18n.t('feedback.policy.files.ignore-files-hint') })} {EffectiveTextAreaValue(this, "files.ignore")}
@@ -338,17 +339,17 @@ export class PolicyEditor extends Component { - {OptionalBoolean(this, null, "policy.errorHandling.ignoreDirectoryErrors", i18n.t('value.policy.inherent-from-parent') )} + {OptionalBoolean(this, null, "policy.errorHandling.ignoreDirectoryErrors", i18n.t('value.policy.inherent-from-parent'))} {EffectiveBooleanValue(this, "errorHandling.ignoreDirectoryErrors")} - {OptionalBoolean(this, null, "policy.errorHandling.ignoreFileErrors", i18n.t('value.policy.inherent-from-parent') )} + {OptionalBoolean(this, null, "policy.errorHandling.ignoreFileErrors", i18n.t('value.policy.inherent-from-parent'))} {EffectiveBooleanValue(this, "errorHandling.ignoreFileErrors")} - {OptionalBoolean(this, null, "policy.errorHandling.ignoreUnknownTypes", i18n.t('value.policy.inherent-from-parent') )} + {OptionalBoolean(this, null, "policy.errorHandling.ignoreUnknownTypes", i18n.t('value.policy.inherent-from-parent'))} {EffectiveBooleanValue(this, "errorHandling.ignoreUnknownTypes")}
@@ -401,56 +402,55 @@ export class PolicyEditor extends Component { - + this.handleChange(e, valueToNumber)} value={stateProperty(this, "policy.scheduling.intervalSeconds")}> - - - - - - - - + + + + + + + + {EffectiveValue(this, "scheduling.intervalSeconds")} - + - {TimesOfDayList(this, "policy.scheduling.timeOfDay", { placeholder: "e.g. 17:00" })} + {TimesOfDayList(this, "policy.scheduling.timeOfDay", { placeholder: i18n.t('feedback.policy.scheduling.times-of-day-hint') })} {EffectiveTimesOfDayValue(this, "scheduling.timeOfDay")} - Snapshot schedules using UNIX crontab syntax (one per line): -
See supported format details.} /> + }} />} /> - {StringList(this, "policy.scheduling.cron", { placeholder: "minute hour day month weekday #comment" })} + {StringList(this, "policy.scheduling.cron", { placeholder: i18n.t('feedback.policy.scheduling.cron-expressions-hint') })} {EffectiveListValue(this, "scheduling.cron")}
- + - {OptionalBoolean(this, "", "policy.scheduling.runMissed", "inherit from parent")} + {OptionalBoolean(this, "", "policy.scheduling.runMissed", i18n.t('value.policy.inherent-from-parent'))} {EffectiveBooleanValue(this, "scheduling.runMissed")} - + - {OptionalBoolean(this, "", "policy.scheduling.manual", "inherit from parent")} + {OptionalBoolean(this, "", "policy.scheduling.manual", i18n.t('value.policy.inherent-from-parent'))} {EffectiveBooleanValue(this, "scheduling.manual")} - + @@ -464,14 +464,14 @@ export class PolicyEditor extends Component { - - {OptionalNumberField(this, "", "policy.upload.maxParallelSnapshots", { placeholder: !this.props.path ? "max number of parallel snapshots" : "must be specified using global, user, or host policy", disabled: !!this.props.path })} + + {OptionalNumberField(this, "", "policy.upload.maxParallelSnapshots", { placeholder: !this.props.path ? i18n.t('feedback.policy.upload.maximum-parallel-snapshots-hint-set') : i18n.t('feedback.policy.upload.maximum-parallel-snapshots-hint-unset'), disabled: !!this.props.path })} {EffectiveValue(this, "upload.maxParallelSnapshots")} - - {OptionalNumberField(this, "", "policy.upload.maxParallelFileReads", { placeholder: "max number of parallel file reads" })} + + {OptionalNumberField(this, "", "policy.upload.maxParallelFileReads", { placeholder: i18n.t('feedback.policy.upload.maximum-parallel-file-reads-hint') })} {EffectiveValue(this, "upload.maxParallelFileReads")} @@ -480,11 +480,11 @@ export class PolicyEditor extends Component { {i18n.t('feedback.policy.header.snapshot-action')} - {ActionRowScript(this, "actions.beforeSnapshotRoot.script", "Before Snapshot", "Script to run before snapshot")} + {ActionRowScript(this, "actions.beforeSnapshotRoot.script", i18n.t('feedback.policy.actions.before-snapshot'), i18n.t('feedback.policy.actions.before-snapshot-help'))} {ActionRowTimeout(this, "actions.beforeSnapshotRoot.timeout")} {ActionRowMode(this, "actions.beforeSnapshotRoot.mode")}
- {ActionRowScript(this, "actions.afterSnapshotRoot.script", "After Snapshot", "Script to run after snapshot")} + {ActionRowScript(this, "actions.afterSnapshotRoot.script", i18n.t('feedback.policy.actions.after-snapshot'), i18n.t('feedback.policy.actions.after-snapshot-help'))} {ActionRowTimeout(this, "actions.afterSnapshotRoot.timeout")} {ActionRowMode(this, "actions.afterSnapshotRoot.mode")}
@@ -493,11 +493,11 @@ export class PolicyEditor extends Component { {i18n.t('feedback.policy.header.folder-actions')} - {ActionRowScript(this, "actions.beforeFolder.script", "Before Folder", "Script to run before folder")} + {ActionRowScript(this, "actions.beforeFolder.script", i18n.t('feedback.policy.actions.before-folder'), i18n.t('feedback.policy.actions.before-folder-help'))} {ActionRowTimeout(this, "actions.beforeFolder.timeout")} {ActionRowMode(this, "actions.beforeFolder.mode")}
- {ActionRowScript(this, "actions.afterFolder.script", "After Folder", "Script to run after folder")} + {ActionRowScript(this, "actions.afterFolder.script", i18n.t('feedback.policy.actions.after-folder'), i18n.t('feedback.policy.actions.after-folder-help'))} {ActionRowTimeout(this, "actions.afterFolder.timeout")} {ActionRowMode(this, "actions.afterFolder.mode")}
@@ -507,42 +507,42 @@ export class PolicyEditor extends Component { - + {LogDetailSelector(this, "policy.logging.directories.snapshotted")} {EffectiveValue(this, "logging.directories.snapshotted")} - + {LogDetailSelector(this, "policy.logging.directories.ignored")} {EffectiveValue(this, "logging.directories.ignored")} - + {LogDetailSelector(this, "policy.logging.entries.snapshotted")} {EffectiveValue(this, "logging.entries.snapshotted")} - + {LogDetailSelector(this, "policy.logging.entries.ignored")} {EffectiveValue(this, "logging.entries.ignored")} - + {LogDetailSelector(this, "policy.logging.entries.cacheHit")} {EffectiveValue(this, "logging.entries.cacheHit")} - + {LogDetailSelector(this, "policy.logging.entries.cacheMiss")} @@ -554,13 +554,13 @@ export class PolicyEditor extends Component { {i18n.t('feedback.policy.header.other')} - + {RequiredBoolean(this, "", "policy.noParent")} - +
{JSON.stringify(this.state.policy, null, 4)}
                                     
@@ -570,9 +570,9 @@ export class PolicyEditor extends Component {
- {!this.props.embedded && } + {!this.props.embedded && } {!this.state.isNew && !this.props.embedded && <>  - + } {this.state.saving && <>   diff --git a/src/components/policy-editor/UpcomingSnapshotTimes.jsx b/src/components/policy-editor/UpcomingSnapshotTimes.jsx index b528589..969ed35 100644 --- a/src/components/policy-editor/UpcomingSnapshotTimes.jsx +++ b/src/components/policy-editor/UpcomingSnapshotTimes.jsx @@ -1,6 +1,7 @@ import moment from 'moment'; import React from 'react'; import { LabelColumn } from './LabelColumn'; +import i18n from '../../utils/i18n'; export function UpcomingSnapshotTimes(resolved) { if (!resolved) { @@ -14,11 +15,11 @@ export function UpcomingSnapshotTimes(resolved) { const times = resolved.upcomingSnapshotTimes; if (!times) { - return ; + return ; } return <> - +
    {times.map(x =>
  • {moment(x).format('L LT')} ({moment(x).fromNow()})
  • )} diff --git a/src/pages/Policies.jsx b/src/pages/Policies.jsx index 97680eb..1edb8c5 100644 --- a/src/pages/Policies.jsx +++ b/src/pages/Policies.jsx @@ -248,7 +248,7 @@ export class Policies extends Component { id: 'edit', Header: i18n.t('feedback.header.actions'), width: 50, - Cell: x => + Cell: x => }] return <> @@ -279,7 +279,7 @@ export class Policies extends Component { {OptionalDirectory(this, null, "policyPath", { autoFocus: true, placeholder: i18n.t('policies.feedback.policy.find') })} - + : } diff --git a/src/pages/Repository.jsx b/src/pages/Repository.jsx index e8ecd47..114d7b5 100644 --- a/src/pages/Repository.jsx +++ b/src/pages/Repository.jsx @@ -134,7 +134,7 @@ export class Repository extends Component { : }
    - + ; } diff --git a/src/pages/Snapshots.jsx b/src/pages/Snapshots.jsx index 4aec6be..b1f79c6 100644 --- a/src/pages/Snapshots.jsx +++ b/src/pages/Snapshots.jsx @@ -167,7 +167,7 @@ export class Snapshots extends Component { return <>  {totals}   - {x.row.original.currentTask && Details} + {x.row.original.currentTask && {i18n.t('feedback.header.details')}} ; default: @@ -206,7 +206,7 @@ export class Snapshots extends Component { return

    {moment(x.cell.value).fromNow()} {moment(x.cell.value).isBefore(moment()) && <>   - overdue + {i18n.t('feedback.snapshot.status.overdue')} }

    ; } diff --git a/src/tests/PolicyEditor.test.jsx b/src/tests/PolicyEditor.test.jsx index c27e461..9ceedb2 100644 --- a/src/tests/PolicyEditor.test.jsx +++ b/src/tests/PolicyEditor.test.jsx @@ -5,6 +5,7 @@ import { MemoryRouter } from 'react-router-dom'; import { setupAPIMock } from '../tests/api_mocks'; import moment from 'moment'; import { changeControlValue, simulateClick } from '../tests/testutils'; +import i18n from '../utils/i18n'; // Mockup for the server let serverMock; @@ -144,7 +145,7 @@ it('e2e', async () => { // this will trigger resolve and will update effective field: "(Defined by this policy)" await waitFor(() => expect(getByTestId("effective-retention.keepLatest").value).toBe("44")); - await waitFor(() => expect(getByTestId("definition-retention.keepLatest").innerHTML).toEqual("(Defined by this policy)")); + await waitFor(() => expect(getByTestId("definition-retention.keepLatest").innerHTML).toEqual(i18n.t('feedback.policy.defined-by-this-policy'))); simulateClick(getByTestId('button-save')); await waitFor(() => expect(serverMock.history.put.length).toEqual(1)); diff --git a/src/utils/uiutil.jsx b/src/utils/uiutil.jsx index 7595829..6bd820f 100644 --- a/src/utils/uiutil.jsx +++ b/src/utils/uiutil.jsx @@ -273,19 +273,19 @@ export function taskStatusSymbol(task) { switch (st) { case "RUNNING": return <> - Running for {dur} + {i18n.t('feedback.task.running-for')} {dur} case "SUCCESS": - return

    Finished in {dur}

    ; + return

    {i18n.t('feedback.task.finished-in')} {dur}

    ; case "FAILED": - return

    Failed after {dur}

    ; + return

    {i18n.t('feedback.task.failed-after')} {dur}

    ; case "CANCELED": - return

    Canceled after {dur}

    ; + return

    {i18n.t('feedback.task.canceled-after')} {dur}

    ; default: return st; @@ -353,7 +353,7 @@ export function isAbsolutePath(p) { export function errorAlert(err, prefix) { if (!prefix) { - prefix = "Error" + prefix = i18n.t('feedback.error.common') } prefix += ": "; @@ -393,8 +393,8 @@ export function CLIEquivalent(props) { return <> - - {visible && } + + {visible && } {visible && } ; @@ -404,11 +404,11 @@ export function toAlgorithmOption(x, defaultID) { let text = x.id; if (x.id === defaultID) { - text = x.id + " (RECOMMENDED)"; + text = x.id + i18n.t('value.algorithm.suffix-recommended'); } if (x.deprecated) { - text = x.id + " (NOT RECOMMENDED)"; + text = x.id + i18n.t('value.algorithm.suffix-not-recommended'); } return ;