diff --git a/.vscode/settings.json b/.vscode/settings.json index d45150a..08bec04 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -18,5 +18,10 @@ "feedback.task.estimate-results", "feedback.provider.required-either-known-host-data", "feedback.provider.required-either-key-file" - ] + ], + "i18n-ally.extract.ignoredByFiles": { + "src\\components\\policy-editor\\PolicyEditor.jsx": [ + "Do not cross filesystem boundaries when creating a snapshot" + ] + } } \ No newline at end of file diff --git a/public/locales/de/translation.json b/public/locales/de/translation.json index 9052c01..5e1a30c 100644 --- a/public/locales/de/translation.json +++ b/public/locales/de/translation.json @@ -28,6 +28,7 @@ "feedback.header.actions": "Aktionen", "feedback.header.defined": "Definiert", "feedback.header.directories": "Verzeichnisse", + "feedback.header.effective": "Angewandt", "feedback.header.files": "Dateien", "feedback.header.host": "Host", "feedback.header.modification-last": "Letzte Änderung", @@ -37,6 +38,75 @@ "feedback.header.username": "Nutzername", "feedback.pin.name": "Name des Pins", "feedback.pin.standard-text": "Nicht löschen", + "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", + "feedback.policy.compression.maximal-file-size": "Maximale Dateigröße", + "feedback.policy.compression.maximal-file-size-help": "Dateien, deren Größe den angegebenen Wert überschreitet, werden nicht komprimiert", + "feedback.policy.compression.maximal-file-size-hint": "Maximale Dateigröße in Bytes", + "feedback.policy.compression.minimal-file-size": "Mindestdateigröße", + "feedback.policy.compression.minimal-file-size-help": "Dateien, die kleiner als der angegebene Wert sind, werden nicht komprimiert", + "feedback.policy.compression.minimal-file-size-hint": "Mindestdateigröße in Bytes", + "feedback.policy.compression.never-compress-extensions": "Keine Komprimierung von Datei-Erweiterungen", + "feedback.policy.compression.never-compress-extensions-help": "Die folgenden Dateierweiterungen, werden nicht kompromiert (eine Erweiterung pro Zeile)", + "feedback.policy.compression.never-compress-extensions-hint": "z.B. *.mp4", + "feedback.policy.compression.only-compress-extensions": "Komprimieren Sie nur Erweiterungen", + "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.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.", + "feedback.policy.error-handling.ignore-file-errors": "Dateifehler ignorieren", + "feedback.policy.error-handling.ignore-file-errors-help": "Dateilesefehler werden als nicht schwerwiegend behandelt.", + "feedback.policy.error-handling.ignore-unknown-directories": "Unbekannte Verzeichniseinträge ignorieren", + "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-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", + "feedback.policy.files.ignore-rule-files-from-parent-directories-help": "Wenn diese Option festgelegt ist, werden die Dateien, die Ignorierungsregeln angeben (.kopiaignore usw.), aus dem übergeordneten Verzeichnis ignoriert", + "feedback.policy.files.ignore-rule-files-help": "Liste zusätzlicher Dateien mit Ignorierregeln (jede Datei konfiguriert Ignorierungsregeln für das Verzeichnis und seine Unterverzeichnisse)", + "feedback.policy.files.ignore-rule-files-hint": "z.B. .kopiaignore", + "feedback.policy.files.ignore-rules-from-parent-directories": "Regeln aus übergeordneten Verzeichnissen ignorieren", + "feedback.policy.files.ignore-rules-from-parent-directories-help": "Wenn diese Option festgelegt ist, werden Ignorierregeln aus dem übergeordneten Verzeichnis ignoriert", + "feedback.policy.files.ignore-well-known-cache-directories": "Bekannte Cache-Verzeichnisse ignorieren", + "feedback.policy.files.ignore-well-known-cache-directories-help": "Ignorieren Sie Verzeichnisse, die CACHEDIR.TAG und ähnliches enthalten", + "feedback.policy.files.scan-only-one-filesystem": "Scannen Sie nur ein Dateisystem", + "feedback.policy.files.scan-only-one-filesystem-help": "Überschreiten Sie beim Erstellen eines Snapshots keine Dateisystemgrenzen", + "feedback.policy.header.compression": "Kompression", + "feedback.policy.header.error-handling": "Fehlerbehandlung", + "feedback.policy.header.files": "Dateien", + "feedback.policy.header.folder-actions": "Ordneraktionen", + "feedback.policy.header.logging": "Protokollierung", + "feedback.policy.header.other": "Andere", + "feedback.policy.header.scheduling": "Terminplanung", + "feedback.policy.header.snapshot-action": "Snapshot-Aktionen", + "feedback.policy.header.snapshot-retention": "Snapshot-Aufbewahrung", + "feedback.policy.header.upload": "Hochladen", + "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", + "feedback.policy.retention.daily-snapshot-retain": "Täglich", + "feedback.policy.retention.daily-snapshot-retain-help": "Gibt an, wie viele tägliche Snapshots pro Quelle aufbewahrt werden sollen. \nDer neueste Schnappschuss jedes Tages wird beibehalten", + "feedback.policy.retention.daily-snapshot-retain-hint": "Anzahl der täglichen Snapshots", + "feedback.policy.retention.hourly-snapshot-retain": "Stündlich", + "feedback.policy.retention.hourly-snapshot-retain-help": "Gibt an, wie viele stündliche Snapshots pro Quelle aufbewahrt werden sollen. \nDer neueste Snapshot jeder Stunde wird beibehalten", + "feedback.policy.retention.hourly-snapshot-retain-hint": "Anzahl der stündlichen Snapshots", + "feedback.policy.retention.ignore-identical-snapshots": "Ignorieren Sie identische Snapshots", + "feedback.policy.retention.ignore-identical-snapshots-help": "Speichern Sie KEINEN Snapshot, wenn keine Dateien geändert wurden", + "feedback.policy.retention.keep-latest-help": "Anzahl der neuesten Schnappschüsse", + "feedback.policy.retention.latest-snapshot-retain": "Neueste Schnappschüsse", + "feedback.policy.retention.latest-snapshot-retain-help": "Anzahl der aktuellsten Snapshots, die pro Quelle aufbewahrt werden sollen", + "feedback.policy.retention.monthly-snapshot-retain": "Monatlich", + "feedback.policy.retention.monthly-snapshot-retain-help": "Wie viele monatliche Snapshots pro Quelle aufbewahrt werden sollen. \nDer neueste Snapshot jedes Kalendermonats bleibt erhalten", + "feedback.policy.retention.monthly-snapshot-retain-hint": "Anzahl der monatlichen Snapshots", + "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.timeout-help": "Timeout in Sekunden, bevor Kopia den Prozess abbricht", "feedback.provider.azure-blob-storage": "Azure Blob Storage", "feedback.provider.backblaze-b2": "Backblaze B2", "feedback.provider.google-cloud-storage": "Google Cloud-Speicher", @@ -313,6 +383,11 @@ "value.log.details-10-maximum-details": "10 - maximale Details", "value.log.details-5-normal-details": "5 - normale Details", "value.log.details-inherit-from-parent": "(vom übergeordneten Element erben)", + "value.policy.async": "Asynchron ausführen, Fehler ignorieren", + "value.policy.essential": "Muss gelingen", + "value.policy.inherent-from-parent": "Vom Elternteil erben", + "value.policy.none": "keine Angabe", + "value.policy.optional": "Fehler ignorieren", "value.provider.s3.http-connection-insecure": "HTTP-Verbindung verwenden (unsicher)", "value.provider.s3.no-tls-verification": "TLS-Zertifikat nicht überprüfen", "value.repository.format.latest": "Neuestes Format", @@ -326,6 +401,6 @@ "value.ui.theme-light": "hell", "value.ui.theme-ocean": "ozeanisch", "value.ui.theme-pastel": "pastelfarbend", - "value.validation.optional-no": "NEIN", + "value.validation.optional-no": "nein", "value.validation.optional-yes": "Ja" } diff --git a/public/locales/en/translation.json b/public/locales/en/translation.json index 51bc49d..575a3d0 100644 --- a/public/locales/en/translation.json +++ b/public/locales/en/translation.json @@ -28,6 +28,7 @@ "feedback.header.actions": "Actions", "feedback.header.defined": "Defined", "feedback.header.directories": "Directories", + "feedback.header.effective": "Effective", "feedback.header.files": "Files", "feedback.header.host": "Host", "feedback.header.modification-last": "Last Modification", @@ -37,6 +38,75 @@ "feedback.header.username": "Username", "feedback.pin.name": "Name of the pin", "feedback.pin.standard-text": "do-not-delete", + "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", + "feedback.policy.compression.maximal-file-size": "Maximum file size", + "feedback.policy.compression.maximal-file-size-help": "Files whose size exceeds the provided value will not be compressed", + "feedback.policy.compression.maximal-file-size-hint": "Maximum file size in bytes", + "feedback.policy.compression.minimal-file-size": "Minimum File Size", + "feedback.policy.compression.minimal-file-size-help": "Files that are smaller than the provided value will not be compressed", + "feedback.policy.compression.minimal-file-size-hint": "minimum file size in bytes", + "feedback.policy.compression.never-compress-extensions": "Never compress extensions", + "feedback.policy.compression.never-compress-extensions-help": "Never compress the following file extensions (one extension per line)", + "feedback.policy.compression.never-compress-extensions-hint": "e.g. *.mp4", + "feedback.policy.compression.only-compress-extensions": "Only compress extensions", + "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.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.", + "feedback.policy.error-handling.ignore-file-errors": "Ignore File Errors", + "feedback.policy.error-handling.ignore-file-errors-help": "Treat file read errors as non-fatal.", + "feedback.policy.error-handling.ignore-unknown-directories": "Ignore Unknown Directory Entries", + "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-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", + "feedback.policy.files.ignore-rule-files-from-parent-directories-help": "When set, the files specifying ignore rules (.kopiaignore, etc.) from the parent directory are ignored", + "feedback.policy.files.ignore-rule-files-help": "List of additional files containing ignore rules (each file configures ignore rules for the directory and its subdirectories)", + "feedback.policy.files.ignore-rule-files-hint": "e.g. .kopiaignore", + "feedback.policy.files.ignore-rules-from-parent-directories": "Ignore Rules From Parent Directories", + "feedback.policy.files.ignore-rules-from-parent-directories-help": "When set, ignore rules from the parent directory are ignored", + "feedback.policy.files.ignore-well-known-cache-directories": "Ignore Well-Known Cache Directories", + "feedback.policy.files.ignore-well-known-cache-directories-help": "Ignore directories containing CACHEDIR.TAG and similar", + "feedback.policy.files.scan-only-one-filesystem": "Scan only one filesystem", + "feedback.policy.files.scan-only-one-filesystem-help": "Do not cross filesystem boundaries when creating a snapshot", + "feedback.policy.header.compression": "Compression", + "feedback.policy.header.error-handling": "Error Handling", + "feedback.policy.header.files": "Files", + "feedback.policy.header.folder-actions": "Folder Actions", + "feedback.policy.header.logging": "Logging", + "feedback.policy.header.other": "Other", + "feedback.policy.header.scheduling": "Scheduling", + "feedback.policy.header.snapshot-action": "Snapshot Actions", + "feedback.policy.header.snapshot-retention": "Snapshot Retention", + "feedback.policy.header.upload": "Upload", + "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", + "feedback.policy.retention.daily-snapshot-retain": "Daily", + "feedback.policy.retention.daily-snapshot-retain-help": "How many daily snapshots to retain per source. The latest snapshot from each day will be retained", + "feedback.policy.retention.daily-snapshot-retain-hint": "Number of daily snapshots", + "feedback.policy.retention.hourly-snapshot-retain": "Hourly", + "feedback.policy.retention.hourly-snapshot-retain-help": "How many hourly snapshots to retain per source. The latest snapshot from each hour will be retained", + "feedback.policy.retention.hourly-snapshot-retain-hint": "number of hourly snapshots", + "feedback.policy.retention.ignore-identical-snapshots": "Ignore Identical Snapshots", + "feedback.policy.retention.ignore-identical-snapshots-help": "Do NOT save a snapshot when no files have been changed", + "feedback.policy.retention.keep-latest-help": "number of latest snapshots", + "feedback.policy.retention.latest-snapshot-retain": "Latest Snapshots", + "feedback.policy.retention.latest-snapshot-retain-help": "Number of the most recent snapshots to retain per source", + "feedback.policy.retention.monthly-snapshot-retain": "Monthly", + "feedback.policy.retention.monthly-snapshot-retain-help": "How many monthly snapshots to retain per source. The latest snapshot from each calendar month will be retained", + "feedback.policy.retention.monthly-snapshot-retain-hint": "Number of monthly snapshots", + "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.timeout-help": "Timeout in seconds before Kopia kills the process", "feedback.provider.azure-blob-storage": "Azure Blob Storage", "feedback.provider.backblaze-b2": "Backblaze B2", "feedback.provider.google-cloud-storage": "Google Cloud Storage", @@ -44,6 +114,7 @@ "feedback.provider.local-directory-or-nas": "Local Directory or NAS", "feedback.provider.rclone-remote": "Rclone Remote", "feedback.provider.required-either-key-file": "One of Password, Key File or Key Data is required.", + "feedback.provider.required-either-known-host-data": "Either Known Hosts File or Known Hosts Data is required, but not both.", "feedback.provider.s3-or-compatible-storage": "Amazon S3 or Compatible Storage", "feedback.provider.sftp-server": "SFTP Server", "feedback.provider.use-repository-token": "Use Repository Token", @@ -312,6 +383,11 @@ "value.log.details-10-maximum-details": "10 - maximum details", "value.log.details-5-normal-details": "5 - normal details", "value.log.details-inherit-from-parent": "(inherit from parent)", + "value.policy.async": "Run asynchronously, ignore failures", + "value.policy.essential": "Must succeed", + "value.policy.inherent-from-parent": "inherit from parent", + "value.policy.none": "none", + "value.policy.optional": "Ignore failures", "value.provider.s3.http-connection-insecure": "Use HTTP connection (insecure)", "value.provider.s3.no-tls-verification": "Do not verify TLS certificate", "value.repository.format.latest": "Latest format", @@ -326,6 +402,5 @@ "value.ui.theme-ocean": "ocean", "value.ui.theme-pastel": "pastel", "value.validation.optional-no": "no", - "value.validation.optional-yes": "yes", - "feedback.provider.required-either-known-host-data": "Either Known Hosts File or Known Hosts Data is required, but not both." + "value.validation.optional-yes": "yes" } diff --git a/public/locales/es/translation.json b/public/locales/es/translation.json index 1a77655..d1e6c2c 100644 --- a/public/locales/es/translation.json +++ b/public/locales/es/translation.json @@ -28,6 +28,7 @@ "feedback.header.actions": "Comportamiento", "feedback.header.defined": "Definido", "feedback.header.directories": "Directorios", + "feedback.header.effective": "Eficaz", "feedback.header.files": "Archivos", "feedback.header.host": "Anfitrión", "feedback.header.modification-last": "Última modificación", @@ -37,6 +38,75 @@ "feedback.header.username": "Nombre de usuario", "feedback.pin.name": "nombre del pin", "feedback.pin.standard-text": "no borres", + "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.", + "feedback.policy.compression.maximal-file-size": "Tamaño máximo de archivo", + "feedback.policy.compression.maximal-file-size-help": "Los archivos cuyo tamaño exceda el valor proporcionado no se comprimirán", + "feedback.policy.compression.maximal-file-size-hint": "Tamaño máximo de archivo en bytes", + "feedback.policy.compression.minimal-file-size": "Tamaño mínimo de archivo", + "feedback.policy.compression.minimal-file-size-help": "Los archivos que sean más pequeños que el valor proporcionado no se comprimirán", + "feedback.policy.compression.minimal-file-size-hint": "tamaño mínimo de archivo en bytes", + "feedback.policy.compression.never-compress-extensions": "Nunca comprimir extensiones", + "feedback.policy.compression.never-compress-extensions-help": "Nunca comprima las siguientes extensiones de archivo (una extensión por línea)", + "feedback.policy.compression.never-compress-extensions-hint": "p.ej. *.mp4", + "feedback.policy.compression.only-compress-extensions": "Solo comprimir extensiones", + "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.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.", + "feedback.policy.error-handling.ignore-file-errors": "Ignorar errores de archivos", + "feedback.policy.error-handling.ignore-file-errors-help": "Trate los errores de lectura de archivos como no fatales.", + "feedback.policy.error-handling.ignore-unknown-directories": "Ignorar entradas de directorio desconocidas", + "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-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", + "feedback.policy.files.ignore-rule-files-from-parent-directories-help": "Cuando se establece, los archivos que especifican reglas de ignorar (.kopiaignore, etc.) del directorio principal se ignoran", + "feedback.policy.files.ignore-rule-files-help": "Lista de archivos adicionales que contienen reglas de ignorar (cada archivo configura reglas de ignorar para el directorio y sus subdirectorios)", + "feedback.policy.files.ignore-rule-files-hint": "p.ej. .kopiaignore", + "feedback.policy.files.ignore-rules-from-parent-directories": "Ignorar reglas de directorios principales", + "feedback.policy.files.ignore-rules-from-parent-directories-help": "Cuando se establece, se ignoran las reglas de ignorar del directorio principal.", + "feedback.policy.files.ignore-well-known-cache-directories": "Ignorar directorios de caché conocidos", + "feedback.policy.files.ignore-well-known-cache-directories-help": "Ignorar directorios que contengan CACHEDIR.TAG y similares", + "feedback.policy.files.scan-only-one-filesystem": "Escanea solo un sistema de archivos", + "feedback.policy.files.scan-only-one-filesystem-help": "No cruce los límites del sistema de archivos al crear una instantánea", + "feedback.policy.header.compression": "Compresión", + "feedback.policy.header.error-handling": "Manejo de errores", + "feedback.policy.header.files": "Archivos", + "feedback.policy.header.folder-actions": "Acciones de carpeta", + "feedback.policy.header.logging": "Inicio sesión", + "feedback.policy.header.other": "Otro", + "feedback.policy.header.scheduling": "Planificación", + "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.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", + "feedback.policy.retention.daily-snapshot-retain": "A diario", + "feedback.policy.retention.daily-snapshot-retain-help": "Cuántas instantáneas diarias conservar por fuente. \nSe conservará la última instantánea de cada día.", + "feedback.policy.retention.daily-snapshot-retain-hint": "Número de instantáneas diarias", + "feedback.policy.retention.hourly-snapshot-retain": "Cada hora", + "feedback.policy.retention.hourly-snapshot-retain-help": "Cuántas instantáneas por hora conservar por fuente. \nSe conservará la última instantánea de cada hora.", + "feedback.policy.retention.hourly-snapshot-retain-hint": "número de instantáneas por hora", + "feedback.policy.retention.ignore-identical-snapshots": "Ignorar instantáneas idénticas", + "feedback.policy.retention.ignore-identical-snapshots-help": "NO guarde una instantánea cuando no se hayan modificado archivos", + "feedback.policy.retention.keep-latest-help": "número de instantáneas más recientes", + "feedback.policy.retention.latest-snapshot-retain": "Últimas instantáneas", + "feedback.policy.retention.latest-snapshot-retain-help": "Número de instantáneas más recientes para conservar por fuente", + "feedback.policy.retention.monthly-snapshot-retain": "Mensual", + "feedback.policy.retention.monthly-snapshot-retain-help": "Cuántas instantáneas mensuales conservar por fuente. \nSe conservará la última instantánea de cada mes calendario.", + "feedback.policy.retention.monthly-snapshot-retain-hint": "Número de instantáneas mensuales", + "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.timeout-help": "Tiempo de espera en segundos antes de que Kopia finalice el proceso", "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", @@ -313,6 +383,11 @@ "value.log.details-10-maximum-details": "10 - detalles máximos", "value.log.details-5-normal-details": "5 - detalles normales", "value.log.details-inherit-from-parent": "(heredado de los padres)", + "value.policy.async": "Ejecutar de forma asíncrona, ignorar los fallos", + "value.policy.essential": "debe tener éxito", + "value.policy.inherent-from-parent": "heredar de los padres", + "value.policy.none": "ninguno", + "value.policy.optional": "ignorar los fracasos", "value.provider.s3.http-connection-insecure": "Usar conexión HTTP (insegura)", "value.provider.s3.no-tls-verification": "No verificar el certificado TLS", "value.repository.format.latest": "Último formato", @@ -326,6 +401,6 @@ "value.ui.theme-light": "claro", "value.ui.theme-ocean": "oceánico", "value.ui.theme-pastel": "pastel", - "value.validation.optional-no": "No", + "value.validation.optional-no": "no", "value.validation.optional-yes": "Sí" } diff --git a/public/locales/fr/translation.json b/public/locales/fr/translation.json index a0feaf1..098929f 100644 --- a/public/locales/fr/translation.json +++ b/public/locales/fr/translation.json @@ -28,6 +28,7 @@ "feedback.header.actions": "Actions", "feedback.header.defined": "Défini", "feedback.header.directories": "Annuaires", + "feedback.header.effective": "Efficace", "feedback.header.files": "Des dossiers", "feedback.header.host": "Hôte", "feedback.header.modification-last": "Dernière modification", @@ -37,6 +38,75 @@ "feedback.header.username": "Nom d'utilisateur", "feedback.pin.name": "Nom de la broche", "feedback.pin.standard-text": "ne pas supprimer", + "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.", + "feedback.policy.compression.maximal-file-size": "Taille maximale du fichier", + "feedback.policy.compression.maximal-file-size-help": "Les fichiers dont la taille dépasse la valeur fournie ne seront pas compressés", + "feedback.policy.compression.maximal-file-size-hint": "Taille maximale du fichier en octets", + "feedback.policy.compression.minimal-file-size": "Taille minimale du fichier", + "feedback.policy.compression.minimal-file-size-help": "Les fichiers plus petits que la valeur fournie ne seront pas compressés", + "feedback.policy.compression.minimal-file-size-hint": "taille minimale du fichier en octets", + "feedback.policy.compression.never-compress-extensions": "Ne compressez jamais les extensions", + "feedback.policy.compression.never-compress-extensions-help": "Ne compressez jamais les extensions de fichiers suivantes (une extension par ligne)", + "feedback.policy.compression.never-compress-extensions-hint": "par exemple. *.mp4", + "feedback.policy.compression.only-compress-extensions": "Compresser uniquement les extensions", + "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.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.", + "feedback.policy.error-handling.ignore-file-errors": "Ignorer les erreurs de fichiers", + "feedback.policy.error-handling.ignore-file-errors-help": "Traitez les erreurs de lecture de fichiers comme non fatales.", + "feedback.policy.error-handling.ignore-unknown-directories": "Ignorer les entrées de répertoire inconnues", + "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-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", + "feedback.policy.files.ignore-rule-files-from-parent-directories-help": "Lorsqu'il est défini, les fichiers spécifiant les règles d'ignorer (.kopiaignore, etc.) du répertoire parent sont ignorés", + "feedback.policy.files.ignore-rule-files-help": "Liste de fichiers supplémentaires contenant des règles d'ignorance (chaque fichier configure les règles d'ignorance pour le répertoire et ses sous-répertoires)", + "feedback.policy.files.ignore-rule-files-hint": "par exemple. .kopiaignore", + "feedback.policy.files.ignore-rules-from-parent-directories": "Ignorer les règles des répertoires parents", + "feedback.policy.files.ignore-rules-from-parent-directories-help": "Lorsqu'elles sont définies, les règles d'ignorance du répertoire parent sont ignorées", + "feedback.policy.files.ignore-well-known-cache-directories": "Ignorer les répertoires de cache bien connus", + "feedback.policy.files.ignore-well-known-cache-directories-help": "Ignorer les répertoires contenant CACHEDIR.TAG et similaires", + "feedback.policy.files.scan-only-one-filesystem": "Analyser un seul système de fichiers", + "feedback.policy.files.scan-only-one-filesystem-help": "Ne franchissez pas les limites du système de fichiers lors de la création d'un instantané", + "feedback.policy.header.compression": "Compression", + "feedback.policy.header.error-handling": "La gestion des erreurs", + "feedback.policy.header.files": "Des dossiers", + "feedback.policy.header.folder-actions": "Actions sur les dossiers", + "feedback.policy.header.logging": "Enregistrement", + "feedback.policy.header.other": "Autre", + "feedback.policy.header.scheduling": "Planification", + "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.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", + "feedback.policy.retention.daily-snapshot-retain": "Tous les jours", + "feedback.policy.retention.daily-snapshot-retain-help": "Combien d’instantanés quotidiens conserver par source. \nLe dernier instantané de chaque jour sera conservé", + "feedback.policy.retention.daily-snapshot-retain-hint": "Nombre d'instantanés quotidiens", + "feedback.policy.retention.hourly-snapshot-retain": "Horaire", + "feedback.policy.retention.hourly-snapshot-retain-help": "Combien d’instantanés horaires conserver par source. \nLe dernier instantané de chaque heure sera conservé", + "feedback.policy.retention.hourly-snapshot-retain-hint": "nombre d'instantanés horaires", + "feedback.policy.retention.ignore-identical-snapshots": "Ignorer les instantanés identiques", + "feedback.policy.retention.ignore-identical-snapshots-help": "Ne PAS enregistrer un instantané lorsqu'aucun fichier n'a été modifié", + "feedback.policy.retention.keep-latest-help": "nombre de derniers instantanés", + "feedback.policy.retention.latest-snapshot-retain": "Derniers instantanés", + "feedback.policy.retention.latest-snapshot-retain-help": "Nombre d'instantanés les plus récents à conserver par source", + "feedback.policy.retention.monthly-snapshot-retain": "Mensuel", + "feedback.policy.retention.monthly-snapshot-retain-help": "Combien d’instantanés mensuels conserver par source. \nLe dernier instantané de chaque mois civil sera conservé", + "feedback.policy.retention.monthly-snapshot-retain-hint": "Nombre d'instantanés mensuels", + "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.timeout-help": "Délai d'attente en secondes avant que Kopia ne tue le processus", "feedback.provider.azure-blob-storage": "Stockage Blob Azure", "feedback.provider.backblaze-b2": "Backblaze B2", "feedback.provider.google-cloud-storage": "Stockage Google Cloud", @@ -313,6 +383,11 @@ "value.log.details-10-maximum-details": "10 - détails maximum", "value.log.details-5-normal-details": "5 - détails normaux", "value.log.details-inherit-from-parent": "(hériter du parent)", + "value.policy.async": "Exécutez de manière asynchrone, ignorez les échecs", + "value.policy.essential": "Doit réussir", + "value.policy.inherent-from-parent": "hériter du parent", + "value.policy.none": "aucun", + "value.policy.optional": "Ignorer les échecs", "value.provider.s3.http-connection-insecure": "Utiliser une connexion HTTP (non sécurisée)", "value.provider.s3.no-tls-verification": "Ne pas vérifier le certificat TLS", "value.repository.format.latest": "Dernier format", @@ -326,6 +401,6 @@ "value.ui.theme-light": "clair", "value.ui.theme-ocean": "océan", "value.ui.theme-pastel": "pastel", - "value.validation.optional-no": "Non", + "value.validation.optional-no": "non", "value.validation.optional-yes": "Oui" } diff --git a/public/locales/it/translation.json b/public/locales/it/translation.json index 470e8c4..6d6bd89 100644 --- a/public/locales/it/translation.json +++ b/public/locales/it/translation.json @@ -28,6 +28,7 @@ "feedback.header.actions": "Azioni", "feedback.header.defined": "Definito", "feedback.header.directories": "Directory", + "feedback.header.effective": "Efficace", "feedback.header.files": "File", "feedback.header.host": "Ospite", "feedback.header.modification-last": "Ultima modifica", @@ -37,6 +38,75 @@ "feedback.header.username": "Nome utente", "feedback.pin.name": "Nome del perno", "feedback.pin.standard-text": "non cancellare", + "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", + "feedback.policy.compression.maximal-file-size": "Dimensione massima del file", + "feedback.policy.compression.maximal-file-size-help": "I file la cui dimensione supera il valore fornito non verranno compressi", + "feedback.policy.compression.maximal-file-size-hint": "Dimensione massima del file in byte", + "feedback.policy.compression.minimal-file-size": "Dimensione minima del file", + "feedback.policy.compression.minimal-file-size-help": "I file più piccoli del valore fornito non verranno compressi", + "feedback.policy.compression.minimal-file-size-hint": "dimensione minima del file in byte", + "feedback.policy.compression.never-compress-extensions": "Non comprimere mai le estensioni", + "feedback.policy.compression.never-compress-extensions-help": "Non comprimere mai le seguenti estensioni di file (un'estensione per riga)", + "feedback.policy.compression.never-compress-extensions-hint": "per esempio. *.mp4", + "feedback.policy.compression.only-compress-extensions": "Comprimi solo le estensioni", + "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.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.", + "feedback.policy.error-handling.ignore-file-errors": "Ignora gli errori dei file", + "feedback.policy.error-handling.ignore-file-errors-help": "Considera gli errori di lettura dei file come non fatali.", + "feedback.policy.error-handling.ignore-unknown-directories": "Ignora le voci della directory sconosciute", + "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-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", + "feedback.policy.files.ignore-rule-files-from-parent-directories-help": "Quando impostato, i file che specificano le regole di ignora (.kopiaignore, ecc.) dalla directory principale vengono ignorati", + "feedback.policy.files.ignore-rule-files-help": "Elenco di file aggiuntivi contenenti regole di ignoranza (ogni file configura le regole di ignoranza per la directory e le sue sottodirectory)", + "feedback.policy.files.ignore-rule-files-hint": "per esempio. .kopiaignore", + "feedback.policy.files.ignore-rules-from-parent-directories": "Ignora le regole delle directory principali", + "feedback.policy.files.ignore-rules-from-parent-directories-help": "Se impostato, le regole di ignora dalla directory principale vengono ignorate", + "feedback.policy.files.ignore-well-known-cache-directories": "Ignora le directory della cache ben note", + "feedback.policy.files.ignore-well-known-cache-directories-help": "Ignorare le directory contenenti CACHEDIR.TAG e simili", + "feedback.policy.files.scan-only-one-filesystem": "Scansiona solo un filesystem", + "feedback.policy.files.scan-only-one-filesystem-help": "Non oltrepassare i limiti del file system durante la creazione di uno snapshot", + "feedback.policy.header.compression": "Compressione", + "feedback.policy.header.error-handling": "Gestione degli errori", + "feedback.policy.header.files": "File", + "feedback.policy.header.folder-actions": "Azioni delle cartelle", + "feedback.policy.header.logging": "Registrazione", + "feedback.policy.header.other": "Altro", + "feedback.policy.header.scheduling": "Pianificazione", + "feedback.policy.header.snapshot-action": "Azioni istantanee", + "feedback.policy.header.snapshot-retention": "Conservazione delle istantanee", + "feedback.policy.header.upload": "Caricamento", + "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", + "feedback.policy.retention.daily-snapshot-retain": "Quotidiano", + "feedback.policy.retention.daily-snapshot-retain-help": "Numero di snapshot giornalieri conservare per origine. \nVerrà conservata l'ultima istantanea di ogni giorno", + "feedback.policy.retention.daily-snapshot-retain-hint": "Numero di snapshot giornalieri", + "feedback.policy.retention.hourly-snapshot-retain": "Ogni ora", + "feedback.policy.retention.hourly-snapshot-retain-help": "Numero di snapshot orari da conservare per origine. \nVerrà conservata l'ultima istantanea di ogni ora", + "feedback.policy.retention.hourly-snapshot-retain-hint": "numero di snapshot orari", + "feedback.policy.retention.ignore-identical-snapshots": "Ignora istantanee identiche", + "feedback.policy.retention.ignore-identical-snapshots-help": "NON salvare un'istantanea quando nessun file è stato modificato", + "feedback.policy.retention.keep-latest-help": "numero di istantanee più recenti", + "feedback.policy.retention.latest-snapshot-retain": "Ultime istantanee", + "feedback.policy.retention.latest-snapshot-retain-help": "Numero degli snapshot più recenti da conservare per origine", + "feedback.policy.retention.monthly-snapshot-retain": "Mensile", + "feedback.policy.retention.monthly-snapshot-retain-help": "Quanti snapshot mensili conservare per origine. \nVerrà conservata l'ultima istantanea di ogni mese di calendario", + "feedback.policy.retention.monthly-snapshot-retain-hint": "Numero di snapshot mensili", + "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.timeout-help": "Timeout in secondi prima che Kopia interrompa il processo", "feedback.provider.azure-blob-storage": "Archiviazione BLOB di Azure", "feedback.provider.backblaze-b2": "Backblaze B2", "feedback.provider.google-cloud-storage": "Archiviazione Google Cloud", @@ -313,6 +383,11 @@ "value.log.details-10-maximum-details": "10 - dettagli massimi", "value.log.details-5-normal-details": "5 - dettagli normali", "value.log.details-inherit-from-parent": "(eredita dal genitore)", + "value.policy.async": "Esegui in modo asincrono, ignora gli errori", + "value.policy.essential": "Deve avere successo", + "value.policy.inherent-from-parent": "ereditare dal genitore", + "value.policy.none": "nessuno", + "value.policy.optional": "Ignora i fallimenti", "value.provider.s3.http-connection-insecure": "Utilizza connessione HTTP (non sicura)", "value.provider.s3.no-tls-verification": "Non verificare il certificato TLS", "value.repository.format.latest": "Ultimo formato", @@ -326,6 +401,6 @@ "value.ui.theme-light": "chiaro", "value.ui.theme-ocean": "oceano", "value.ui.theme-pastel": "pastello", - "value.validation.optional-no": "NO", + "value.validation.optional-no": "no", "value.validation.optional-yes": "SÌ" } diff --git a/public/locales/jp/translation.json b/public/locales/jp/translation.json index 97b4871..2ae05dd 100644 --- a/public/locales/jp/translation.json +++ b/public/locales/jp/translation.json @@ -28,6 +28,7 @@ "feedback.header.actions": "Actions", "feedback.header.defined": "Defined", "feedback.header.directories": "Directories", + "feedback.header.effective": "Effective", "feedback.header.files": "Files", "feedback.header.host": "Host", "feedback.header.modification-last": "Last Modification", @@ -37,6 +38,75 @@ "feedback.header.username": "Username", "feedback.pin.name": "Name of the pin", "feedback.pin.standard-text": "do-not-delete", + "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", + "feedback.policy.compression.maximal-file-size": "Maximum file size", + "feedback.policy.compression.maximal-file-size-help": "Files whose size exceeds the provided value will not be compressed", + "feedback.policy.compression.maximal-file-size-hint": "Maximum file size in bytes", + "feedback.policy.compression.minimal-file-size": "Minimum File Size", + "feedback.policy.compression.minimal-file-size-help": "Files that are smaller than the provided value will not be compressed", + "feedback.policy.compression.minimal-file-size-hint": "minimum file size in bytes", + "feedback.policy.compression.never-compress-extensions": "Never compress extensions", + "feedback.policy.compression.never-compress-extensions-help": "Never compress the following file extensions (one extension per line)", + "feedback.policy.compression.never-compress-extensions-hint": "e.g. *.mp4", + "feedback.policy.compression.only-compress-extensions": "Only compress extensions", + "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.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.", + "feedback.policy.error-handling.ignore-file-errors": "Ignore File Errors", + "feedback.policy.error-handling.ignore-file-errors-help": "Treat file read errors as non-fatal.", + "feedback.policy.error-handling.ignore-unknown-directories": "Ignore Unknown Directory Entries", + "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-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", + "feedback.policy.files.ignore-rule-files-from-parent-directories-help": "When set, the files specifying ignore rules (.kopiaignore, etc.) from the parent directory are ignored", + "feedback.policy.files.ignore-rule-files-help": "List of additional files containing ignore rules (each file configures ignore rules for the directory and its subdirectories)", + "feedback.policy.files.ignore-rule-files-hint": "e.g. .kopiaignore", + "feedback.policy.files.ignore-rules-from-parent-directories": "Ignore Rules From Parent Directories", + "feedback.policy.files.ignore-rules-from-parent-directories-help": "When set, ignore rules from the parent directory are ignored", + "feedback.policy.files.ignore-well-known-cache-directories": "Ignore Well-Known Cache Directories", + "feedback.policy.files.ignore-well-known-cache-directories-help": "Ignore directories containing CACHEDIR.TAG and similar", + "feedback.policy.files.scan-only-one-filesystem": "Scan only one filesystem", + "feedback.policy.files.scan-only-one-filesystem-help": "Do not cross filesystem boundaries when creating a snapshot", + "feedback.policy.header.compression": "Compression", + "feedback.policy.header.error-handling": "Error Handling", + "feedback.policy.header.files": "Files", + "feedback.policy.header.folder-actions": "Folder Actions", + "feedback.policy.header.logging": "Logging", + "feedback.policy.header.other": "Other", + "feedback.policy.header.scheduling": "Scheduling", + "feedback.policy.header.snapshot-action": "Snapshot Actions", + "feedback.policy.header.snapshot-retention": "Snapshot Retention", + "feedback.policy.header.upload": "Upload", + "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", + "feedback.policy.retention.daily-snapshot-retain": "Daily", + "feedback.policy.retention.daily-snapshot-retain-help": "How many daily snapshots to retain per source. The latest snapshot from each day will be retained", + "feedback.policy.retention.daily-snapshot-retain-hint": "Number of daily snapshots", + "feedback.policy.retention.hourly-snapshot-retain": "Hourly", + "feedback.policy.retention.hourly-snapshot-retain-help": "How many hourly snapshots to retain per source. The latest snapshot from each hour will be retained", + "feedback.policy.retention.hourly-snapshot-retain-hint": "number of hourly snapshots", + "feedback.policy.retention.ignore-identical-snapshots": "Ignore Identical Snapshots", + "feedback.policy.retention.ignore-identical-snapshots-help": "Do NOT save a snapshot when no files have been changed", + "feedback.policy.retention.keep-latest-help": "number of latest snapshots", + "feedback.policy.retention.latest-snapshot-retain": "Latest Snapshots", + "feedback.policy.retention.latest-snapshot-retain-help": "Number of the most recent snapshots to retain per source", + "feedback.policy.retention.monthly-snapshot-retain": "Monthly", + "feedback.policy.retention.monthly-snapshot-retain-help": "How many monthly snapshots to retain per source. The latest snapshot from each calendar month will be retained", + "feedback.policy.retention.monthly-snapshot-retain-hint": "Number of monthly snapshots", + "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.timeout-help": "Timeout in seconds before Kopia kills the process", "feedback.provider.azure-blob-storage": "Azure Blob Storage", "feedback.provider.backblaze-b2": "Backblaze B2", "feedback.provider.google-cloud-storage": "Google Cloud Storage", @@ -313,6 +383,11 @@ "value.log.details-10-maximum-details": "10 - maximum details", "value.log.details-5-normal-details": "5 - normal details", "value.log.details-inherit-from-parent": "(inherit from parent)", + "value.policy.async": "Run asynchronously, ignore failures", + "value.policy.essential": "Must succeed", + "value.policy.inherent-from-parent": "inherit from parent", + "value.policy.none": "none", + "value.policy.optional": "Ignore failures", "value.provider.s3.http-connection-insecure": "Use HTTP connection (insecure)", "value.provider.s3.no-tls-verification": "Do not verify TLS certificate", "value.repository.format.latest": "Latest format", diff --git a/public/locales/pl/translation.json b/public/locales/pl/translation.json index 5421e41..32a3f18 100644 --- a/public/locales/pl/translation.json +++ b/public/locales/pl/translation.json @@ -28,6 +28,7 @@ "feedback.header.actions": "działania", "feedback.header.defined": "Zdefiniowane", "feedback.header.directories": "Katalogi", + "feedback.header.effective": "Skuteczny", "feedback.header.files": "Akta", "feedback.header.host": "Gospodarz", "feedback.header.modification-last": "Ostatnia modyfikacja", @@ -37,6 +38,75 @@ "feedback.header.username": "Nazwa użytkownika", "feedback.pin.name": "Nazwa pinu", "feedback.pin.standard-text": "nie kasuj", + "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", + "feedback.policy.compression.maximal-file-size": "Maksymalny rozmiar pliku", + "feedback.policy.compression.maximal-file-size-help": "Pliki, których rozmiar przekracza podaną wartość, nie zostaną skompresowane", + "feedback.policy.compression.maximal-file-size-hint": "Maksymalny rozmiar pliku w bajtach", + "feedback.policy.compression.minimal-file-size": "Minimalny rozmiar pliku", + "feedback.policy.compression.minimal-file-size-help": "Pliki mniejsze niż podana wartość nie zostaną skompresowane", + "feedback.policy.compression.minimal-file-size-hint": "minimalny rozmiar pliku w bajtach", + "feedback.policy.compression.never-compress-extensions": "Nigdy nie kompresuj rozszerzeń", + "feedback.policy.compression.never-compress-extensions-help": "Nigdy nie kompresuj następujących rozszerzeń plików (jedno rozszerzenie w linii)", + "feedback.policy.compression.never-compress-extensions-hint": "np. *.mp4", + "feedback.policy.compression.only-compress-extensions": "Kompresuj tylko rozszerzenia", + "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.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.", + "feedback.policy.error-handling.ignore-file-errors": "Ignoruj ​​​​błędy plików", + "feedback.policy.error-handling.ignore-file-errors-help": "Traktuj błędy odczytu plików jako niekrytyczne.", + "feedback.policy.error-handling.ignore-unknown-directories": "Ignoruj ​​nieznane wpisy w katalogu", + "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-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", + "feedback.policy.files.ignore-rule-files-from-parent-directories-help": "Po ustawieniu, pliki określające reguły ignorowania (.kopiaignore itp.) z katalogu nadrzędnego są ignorowane", + "feedback.policy.files.ignore-rule-files-help": "Lista dodatkowych plików zawierających reguły ignorowania (każdy plik konfiguruje reguły ignorowania dla katalogu i jego podkatalogów)", + "feedback.policy.files.ignore-rule-files-hint": "np. .kopiaignore", + "feedback.policy.files.ignore-rules-from-parent-directories": "Ignoruj ​​reguły z katalogów nadrzędnych", + "feedback.policy.files.ignore-rules-from-parent-directories-help": "Po ustawieniu reguły ignorowania z katalogu nadrzędnego są ignorowane", + "feedback.policy.files.ignore-well-known-cache-directories": "Ignoruj ​​dobrze znane katalogi pamięci podręcznej", + "feedback.policy.files.ignore-well-known-cache-directories-help": "Ignoruj ​​katalogi zawierające CACHEDIR.TAG i podobne", + "feedback.policy.files.scan-only-one-filesystem": "Skanuj tylko jeden system plików", + "feedback.policy.files.scan-only-one-filesystem-help": "Podczas tworzenia migawki nie przekraczaj granic systemu plików", + "feedback.policy.header.compression": "Kompresja", + "feedback.policy.header.error-handling": "Obsługa błędów", + "feedback.policy.header.files": "Akta", + "feedback.policy.header.folder-actions": "Akcje folderów", + "feedback.policy.header.logging": "Logowanie", + "feedback.policy.header.other": "Inny", + "feedback.policy.header.scheduling": "Planowanie", + "feedback.policy.header.snapshot-action": "Akcje migawki", + "feedback.policy.header.snapshot-retention": "Przechowywanie migawek", + "feedback.policy.header.upload": "Wgrywać", + "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", + "feedback.policy.retention.daily-snapshot-retain": "Codziennie", + "feedback.policy.retention.daily-snapshot-retain-help": "Liczba codziennych migawek przechowywanych dla każdego źródła. \nNajnowsza migawka z każdego dnia zostanie zachowana", + "feedback.policy.retention.daily-snapshot-retain-hint": "Liczba codziennych migawek", + "feedback.policy.retention.hourly-snapshot-retain": "Cogodzinny", + "feedback.policy.retention.hourly-snapshot-retain-help": "Ile godzinnych migawek zachować na źródło. \nNajnowsza migawka z każdej godziny zostanie zachowana", + "feedback.policy.retention.hourly-snapshot-retain-hint": "liczba godzinnych migawek", + "feedback.policy.retention.ignore-identical-snapshots": "Ignoruj ​​identyczne migawki", + "feedback.policy.retention.ignore-identical-snapshots-help": "NIE zapisuj migawki, jeśli żadne pliki nie zostały zmienione", + "feedback.policy.retention.keep-latest-help": "liczba najnowszych migawek", + "feedback.policy.retention.latest-snapshot-retain": "Najnowsze migawki", + "feedback.policy.retention.latest-snapshot-retain-help": "Liczba najnowszych migawek do zachowania dla każdego źródła", + "feedback.policy.retention.monthly-snapshot-retain": "Miesięczny", + "feedback.policy.retention.monthly-snapshot-retain-help": "Liczba miesięcznych migawek przechowywanych dla każdego źródła. \nZachowana zostanie najnowsza migawka z każdego miesiąca kalendarzowego", + "feedback.policy.retention.monthly-snapshot-retain-hint": "Liczba miesięcznych migawek", + "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.timeout-help": "Limit czasu w sekundach, zanim Kopia zabije proces", "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", @@ -313,6 +383,11 @@ "value.log.details-10-maximum-details": "10 - maksimum szczegółów", "value.log.details-5-normal-details": "5 - normalne szczegóły", "value.log.details-inherit-from-parent": "(dziedzicz po rodzicu)", + "value.policy.async": "Uruchom asynchronicznie, ignoruj ​​awarie", + "value.policy.essential": "Musi się udać", + "value.policy.inherent-from-parent": "dziedziczyć od rodziców", + "value.policy.none": "nic", + "value.policy.optional": "Ignoruj ​​niepowodzenia", "value.provider.s3.http-connection-insecure": "Użyj połączenia HTTP (niepewne)", "value.provider.s3.no-tls-verification": "Nie weryfikuj certyfikatu TLS", "value.repository.format.latest": "Najnowszy format", @@ -326,6 +401,6 @@ "value.ui.theme-light": "jasna", "value.ui.theme-ocean": "oceaniczna", "value.ui.theme-pastel": "pastelowa", - "value.validation.optional-no": "NIE", + "value.validation.optional-no": "nie", "value.validation.optional-yes": "Tak" } diff --git a/public/locales/ru/translation.json b/public/locales/ru/translation.json index e45ca0b..dda4111 100644 --- a/public/locales/ru/translation.json +++ b/public/locales/ru/translation.json @@ -28,6 +28,7 @@ "feedback.header.actions": "Действия", "feedback.header.defined": "Определенный", "feedback.header.directories": "Каталоги", + "feedback.header.effective": "Эффективный", "feedback.header.files": "Файлы", "feedback.header.host": "Хозяин", "feedback.header.modification-last": "Последнее изменение", @@ -37,6 +38,75 @@ "feedback.header.username": "Имя пользователя", "feedback.pin.name": "Название контакта", "feedback.pin.standard-text": "не удалять", + "feedback.policy.command-mode-help": "Необходимое (должно быть успешным; поведение по умолчанию), необязательное (сбои допускаются) или асинхронное (Kopia запускает действие, но не ждет его завершения).", + "feedback.policy.compression.compression-algorithm": "Алгоритм сжатия", + "feedback.policy.compression.compression-algorithm-help": "Укажите алгоритм сжатия, который будет использоваться при создании снимков файлов в этом каталоге и подкаталогах.", + "feedback.policy.compression.maximal-file-size": "Максимальный размер файла", + "feedback.policy.compression.maximal-file-size-help": "Файлы, размер которых превышает указанное значение, не будут сжаты.", + "feedback.policy.compression.maximal-file-size-hint": "Максимальный размер файла в байтах", + "feedback.policy.compression.minimal-file-size": "Минимальный размер файла", + "feedback.policy.compression.minimal-file-size-help": "Файлы размером меньше указанного значения не будут сжаты.", + "feedback.policy.compression.minimal-file-size-hint": "минимальный размер файла в байтах", + "feedback.policy.compression.never-compress-extensions": "Никогда не сжимайте расширения", + "feedback.policy.compression.never-compress-extensions-help": "Никогда не сжимайте следующие расширения файлов (по одному расширению в строке)", + "feedback.policy.compression.never-compress-extensions-hint": "например *.mp4", + "feedback.policy.compression.only-compress-extensions": "Сжимать только расширения", + "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.error-delete-policy": "Ошибка удаления политики.", + "feedback.policy.error-handling.ignore-directory-errors": "Игнорировать ошибки каталога", + "feedback.policy.error-handling.ignore-directory-errors-help": "Считайте ошибки чтения каталога нефатальными.", + "feedback.policy.error-handling.ignore-file-errors": "Игнорировать ошибки файлов", + "feedback.policy.error-handling.ignore-file-errors-help": "Считайте ошибки чтения файлов нефатальными.", + "feedback.policy.error-handling.ignore-unknown-directories": "Игнорировать неизвестные записи каталога", + "feedback.policy.error-handling.ignore-unknown-directories-help": "Считайте нераспознанные/неподдерживаемые записи каталога нефатальными ошибками.", + "feedback.policy.error-saving-policy": "Ошибка сохранения политики.", + "feedback.policy.files.ignore-files": "Игнорировать файлы", + "feedback.policy.files.ignore-files-hint": "например /file.txt", + "feedback.policy.files.ignore-rule-files": "Игнорировать файлы правил", + "feedback.policy.files.ignore-rule-files-from-parent-directories": "Игнорировать файлы правил из родительских каталогов", + "feedback.policy.files.ignore-rule-files-from-parent-directories-help": "Если этот параметр установлен, файлы, определяющие правила игнорирования (.kopiaignore и т. д.), из родительского каталога игнорируются.", + "feedback.policy.files.ignore-rule-files-help": "Список дополнительных файлов, содержащих правила игнорирования (каждый файл настраивает правила игнорирования для каталога и его подкаталогов)", + "feedback.policy.files.ignore-rule-files-hint": "например .kopiaignore", + "feedback.policy.files.ignore-rules-from-parent-directories": "Игнорировать правила из родительских каталогов", + "feedback.policy.files.ignore-rules-from-parent-directories-help": "Если установлено, игнорируются правила из родительского каталога.", + "feedback.policy.files.ignore-well-known-cache-directories": "Игнорировать известные каталоги кэша", + "feedback.policy.files.ignore-well-known-cache-directories-help": "Игнорировать каталоги, содержащие CACHEDIR.TAG и подобные.", + "feedback.policy.files.scan-only-one-filesystem": "Сканировать только одну файловую систему", + "feedback.policy.files.scan-only-one-filesystem-help": "Не пересекайте границы файловой системы при создании моментального снимка.", + "feedback.policy.header.compression": "Сжатие", + "feedback.policy.header.error-handling": "Обработка ошибок", + "feedback.policy.header.files": "Файлы", + "feedback.policy.header.folder-actions": "Действия с папками", + "feedback.policy.header.logging": "Ведение журнала", + "feedback.policy.header.other": "Другой", + "feedback.policy.header.scheduling": "Планирование", + "feedback.policy.header.snapshot-action": "Действия со снимками", + "feedback.policy.header.snapshot-retention": "Хранение моментальных снимков", + "feedback.policy.header.upload": "Загрузить", + "feedback.policy.retention.annual-snapshot-retain": "Ежегодный", + "feedback.policy.retention.annual-snapshot-retain-help": "Сколько ежегодных снимков следует сохранять для каждого источника. \nПоследний снимок за каждый календарный год будет сохранен.", + "feedback.policy.retention.annual-snapshot-retain-hint": "Количество ежегодных снимков", + "feedback.policy.retention.daily-snapshot-retain": "Ежедневно", + "feedback.policy.retention.daily-snapshot-retain-help": "Сколько ежедневных снимков следует сохранять для каждого источника. \nПоследний снимок каждого дня будет сохранен.", + "feedback.policy.retention.daily-snapshot-retain-hint": "Количество ежедневных снимков", + "feedback.policy.retention.hourly-snapshot-retain": "Ежечасно", + "feedback.policy.retention.hourly-snapshot-retain-help": "Сколько снимков в час сохранять для каждого источника. \nПоследний снимок каждого часа будет сохранен.", + "feedback.policy.retention.hourly-snapshot-retain-hint": "количество снимков в час", + "feedback.policy.retention.ignore-identical-snapshots": "Игнорировать идентичные снимки", + "feedback.policy.retention.ignore-identical-snapshots-help": "НЕ сохраняйте снимок, если файлы не были изменены.", + "feedback.policy.retention.keep-latest-help": "количество последних снимков", + "feedback.policy.retention.latest-snapshot-retain": "Последние снимки", + "feedback.policy.retention.latest-snapshot-retain-help": "Количество последних снимков, которые необходимо сохранить, для каждого источника", + "feedback.policy.retention.monthly-snapshot-retain": "Ежемесячно", + "feedback.policy.retention.monthly-snapshot-retain-help": "Сколько ежемесячных снимков следует сохранять для каждого источника. \nПоследний снимок за каждый календарный месяц будет сохранен.", + "feedback.policy.retention.monthly-snapshot-retain-hint": "Количество ежемесячных снимков", + "feedback.policy.retention.weekly-snapshot-retain": "Еженедельно", + "feedback.policy.retention.weekly-snapshot-retain-help": "Сколько еженедельных снимков сохранять для каждого источника. \nПоследний снимок каждой недели будет сохранен.", + "feedback.policy.retention.weekly-snapshot-retain-hint": "Количество еженедельных снимков", + "feedback.policy.timeout-help": "Тайм-аут в секундах, прежде чем Копия завершит процесс", "feedback.provider.azure-blob-storage": "Хранилище BLOB-объектов Azure", "feedback.provider.backblaze-b2": "Бэкблэйз Б2", "feedback.provider.google-cloud-storage": "Облачное хранилище Google", @@ -313,6 +383,11 @@ "value.log.details-10-maximum-details": "10 - максимум деталей", "value.log.details-5-normal-details": "5 - нормальные детали", "value.log.details-inherit-from-parent": "(наследовать от родителя)", + "value.policy.async": "Запускать асинхронно, игнорировать сбои", + "value.policy.essential": "Должен добиться успеха", + "value.policy.inherent-from-parent": "наследовать от родителя", + "value.policy.none": "никто", + "value.policy.optional": "Игнорировать неудачи", "value.provider.s3.http-connection-insecure": "Использовать HTTP-соединение (небезопасно)", "value.provider.s3.no-tls-verification": "Не проверять сертификат TLS", "value.repository.format.latest": "Последний формат", diff --git a/src/components/policy-editor/ActionRowMode.jsx b/src/components/policy-editor/ActionRowMode.jsx index 43600de..3b52391 100644 --- a/src/components/policy-editor/ActionRowMode.jsx +++ b/src/components/policy-editor/ActionRowMode.jsx @@ -5,18 +5,19 @@ import { stateProperty } from '../../forms'; import { LabelColumn } from './LabelColumn'; import { WideValueColumn } from './WideValueColumn'; import { EffectiveValue } from './EffectiveValue'; +import i18n from '../../utils/i18n' export function ActionRowMode(component, action) { return - + - - - + + + {EffectiveValue(component, action)} diff --git a/src/components/policy-editor/ActionRowTimeout.jsx b/src/components/policy-editor/ActionRowTimeout.jsx index fbbf341..b0cd44d 100644 --- a/src/components/policy-editor/ActionRowTimeout.jsx +++ b/src/components/policy-editor/ActionRowTimeout.jsx @@ -4,10 +4,11 @@ import { OptionalNumberField } from '../../forms/OptionalNumberField'; import { LabelColumn } from './LabelColumn'; import { WideValueColumn } from './WideValueColumn'; import { EffectiveValue } from './EffectiveValue'; +import i18n from '../../utils/i18n'; export function ActionRowTimeout(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 b61554e..6a10633 100644 --- a/src/components/policy-editor/PolicyEditor.jsx +++ b/src/components/policy-editor/PolicyEditor.jsx @@ -29,6 +29,7 @@ import { SectionHeaderRow } from './SectionHeaderRow'; import { ActionRowScript } from './ActionRowScript'; import { ActionRowTimeout } from './ActionRowTimeout'; import { ActionRowMode } from './ActionRowMode'; +import i18n from '../../utils/i18n'; export class PolicyEditor extends Component { constructor() { @@ -117,7 +118,7 @@ export class PolicyEditor extends Component { } if (p.userName === this.props.userName && p.host === this.props.host && p.path === this.props.path) { - return "(Defined by this policy)"; + return i18n.t('feedback.policy.defined-by-this-policy'); } return <>Defined by {PolicyEditorLink(p)}; @@ -212,7 +213,7 @@ export class PolicyEditor extends Component { this.props.close(); }).catch(error => { this.setState({ saving: false }); - errorAlert(error, 'Error saving policy'); + errorAlert(error, i18n.t('feedback.policy.error-saving-policy')); }); } catch (e) { errorAlert(e); @@ -221,14 +222,14 @@ export class PolicyEditor extends Component { } deletePolicy() { - if (window.confirm('Are you sure you want to delete this policy?')) { + if (window.confirm(i18n.t('feedback.policy.confirm-delete-policy'))) { this.setState({ saving: true }); axios.delete(this.policyURL(this.props)).then(result => { this.props.close(); }).catch(error => { this.setState({ saving: false }); - errorAlert(error, 'Error deleting policy'); + errorAlert(error, i18n.t('feedback.policy.error-delete-policy')); }); } } @@ -248,155 +249,155 @@ export class PolicyEditor extends Component { } if (isLoading) { - return

Loading ...

; + return

{i18n.t('common.loading')}

; } return <>
- + -  Snapshot Retention + {i18n.t('feedback.policy.header.snapshot-retention')} - - {OptionalNumberField(this, null, "policy.retention.keepLatest", { placeholder: "# of latest snapshots" })} + + {OptionalNumberField(this, null, "policy.retention.keepLatest", { placeholder: i18n.t('feedback.policy.retention.keep-latest-help') })} {EffectiveValue(this, "retention.keepLatest")} - - {OptionalNumberField(this, null, "policy.retention.keepHourly", { placeholder: "# of hourly snapshots" })} + + {OptionalNumberField(this, null, "policy.retention.keepHourly", { placeholder: i18n.t('feedback.policy.retention.hourly-snapshot-retain-hint') })} {EffectiveValue(this, "retention.keepHourly")} - - {OptionalNumberField(this, null, "policy.retention.keepDaily", { placeholder: "# of daily snapshots" })} + + {OptionalNumberField(this, null, "policy.retention.keepDaily", { placeholder: i18n.t('feedback.policy.retention.daily-snapshot-retain-hint') })} {EffectiveValue(this, "retention.keepDaily")} - - {OptionalNumberField(this, null, "policy.retention.keepWeekly", { placeholder: "# of weekly snapshots" })} + + {OptionalNumberField(this, null, "policy.retention.keepWeekly", { placeholder: i18n.t('feedback.policy.retention.weekly-snapshot-retain-hint') })} {EffectiveValue(this, "retention.keepWeekly")} - - {OptionalNumberField(this, null, "policy.retention.keepMonthly", { placeholder: "# of monthly snapshots" })} + + {OptionalNumberField(this, null, "policy.retention.keepMonthly", { placeholder: i18n.t('feedback.policy.retention.monthly-snapshot-retain-hint') })} {EffectiveValue(this, "retention.keepMonthly")} - - {OptionalNumberField(this, null, "policy.retention.keepAnnual", { placeholder: "# of annual snapshots" })} + + {OptionalNumberField(this, null, "policy.retention.keepAnnual", { placeholder: i18n.t('feedback.policy.retention.annual-snapshot-retain-hint') })} {EffectiveValue(this, "retention.keepAnnual")} - - {OptionalBoolean(this, null, "policy.retention.ignoreIdenticalSnapshots", "inherit from parent")} + + {OptionalBoolean(this, null, "policy.retention.ignoreIdenticalSnapshots", i18n.t('value.policy.inherent-from-parent'))} {EffectiveValue(this, "retention.ignoreIdenticalSnapshots")} -  Files + {i18n.t('feedback.policy.header.files')} - List of file and directory names to ignore.
(See documentation on ignoring files).} /> - {StringList(this, "policy.files.ignore", { placeholder: "e.g. /file.txt" })} + 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")}
- + {RequiredBoolean(this, "", "policy.files.noParentIgnore")} - - {StringList(this, "policy.files.ignoreDotFiles", { placeholder: "e.g. .kopiaignore" })} + + {StringList(this, "policy.files.ignoreDotFiles", { placeholder: i18n.t('feedback.policy.files.ignore-rule-files-hint') })} {EffectiveTextAreaValue(this, "files.ignoreDotFiles")} - + {RequiredBoolean(this, "", "policy.files.noParentDotFiles")} - - {OptionalBoolean(this, null, "policy.files.ignoreCacheDirs", "inherit from parent")} + + {OptionalBoolean(this, null, "policy.files.ignoreCacheDirs", i18n.t('value.policy.inherent-from-parent'))} {EffectiveBooleanValue(this, "files.ignoreCacheDirs")} - - {OptionalBoolean(this, null, "policy.files.oneFileSystem", "inherit from parent")} + + {OptionalBoolean(this, null, "policy.files.oneFileSystem", i18n.t('value.policy.inherent-from-parent'))} {EffectiveBooleanValue(this, "files.oneFileSystem")}
-  Error Handling + {i18n.t('feedback.policy.header.error-handling')} - - {OptionalBoolean(this, null, "policy.errorHandling.ignoreDirectoryErrors", "inherit 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", "inherit 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", "inherit from parent")} + + {OptionalBoolean(this, null, "policy.errorHandling.ignoreUnknownTypes", i18n.t('value.policy.inherent-from-parent') )} {EffectiveBooleanValue(this, "errorHandling.ignoreUnknownTypes")} -  Compression + {i18n.t('feedback.policy.header.compression')} - + - + {this.state.algorithms && this.state.algorithms.compression.map(x => toAlgorithmOption(x, ""))} {EffectiveValue(this, "compression.compressorName")} - - {OptionalNumberField(this, "", "policy.compression.minSize", { placeholder: "minimum file size in bytes" })} + + {OptionalNumberField(this, "", "policy.compression.minSize", { placeholder: i18n.t('feedback.policy.compression.minimal-file-size-hint') })} {EffectiveValue(this, "compression.minSize")} - - {OptionalNumberField(this, "", "policy.compression.maxSize", { placeholder: "maximum file size in bytes" })} + + {OptionalNumberField(this, "", "policy.compression.maxSize", { placeholder: i18n.t('feedback.policy.compression.maximal-file-size-hint') })} {EffectiveValue(this, "compression.maxSize")} - + - {StringList(this, "policy.compression.onlyCompress", { placeholder: "e.g. *.txt" })} + {StringList(this, "policy.compression.onlyCompress", { placeholder: i18n.t('feedback.policy.compression.only-compress-extensions-hint') })} {EffectiveTextAreaValue(this, "compression.onlyCompress")} - + - {StringList(this, "policy.compression.neverCompress", { placeholder: "e.g. *.mp4" })} + {StringList(this, "policy.compression.neverCompress", { placeholder: i18n.t('feedback.policy.compression.never-compress-extensions-hint') })} {EffectiveTextAreaValue(this, "compression.neverCompress")} -  Scheduling + {i18n.t('feedback.policy.header.scheduling')} @@ -459,7 +460,7 @@ export class PolicyEditor extends Component { -  Upload + {i18n.t('feedback.policy.header.upload')} @@ -476,7 +477,7 @@ export class PolicyEditor extends Component { -  Snapshot Actions + {i18n.t('feedback.policy.header.snapshot-action')} {ActionRowScript(this, "actions.beforeSnapshotRoot.script", "Before Snapshot", "Script to run before snapshot")} @@ -489,7 +490,7 @@ export class PolicyEditor extends Component { -  Folder Actions + {i18n.t('feedback.policy.header.folder-actions')} {ActionRowScript(this, "actions.beforeFolder.script", "Before Folder", "Script to run before folder")} @@ -502,7 +503,7 @@ export class PolicyEditor extends Component { -  Logging + {i18n.t('feedback.policy.header.logging')} @@ -550,7 +551,7 @@ export class PolicyEditor extends Component { -  Other + {i18n.t('feedback.policy.header.other')} @@ -568,7 +569,7 @@ export class PolicyEditor extends Component {
- +
{!this.props.embedded && } {!this.state.isNew && !this.props.embedded && <>  diff --git a/src/components/policy-editor/SectionHeaderRow.jsx b/src/components/policy-editor/SectionHeaderRow.jsx index 568a14a..c3fe3df 100644 --- a/src/components/policy-editor/SectionHeaderRow.jsx +++ b/src/components/policy-editor/SectionHeaderRow.jsx @@ -3,11 +3,12 @@ import Row from 'react-bootstrap/Row'; import { LabelColumn } from './LabelColumn'; import { ValueColumn } from './ValueColumn'; import { EffectiveValueColumn } from './EffectiveValueColumn'; +import i18n from '../../utils/i18n'; export function SectionHeaderRow() { return -
Defined
-
Effective
+
{i18n.t('feedback.header.defined')}
+
{i18n.t('feedback.header.effective')}
; } diff --git a/src/css/App.css b/src/css/App.css index eba0edf..65b1f0e 100644 --- a/src/css/App.css +++ b/src/css/App.css @@ -195,6 +195,13 @@ body { border: 1px solid rgba(0,0,0,.125); } +#kopia .policy-icon { + margin-left: 0; + margin-right:0.5em; + height: 1.25em; + width: 1.25em; +} + .popover { max-width: 1000px; }