diff --git a/.gitignore b/.gitignore index 1a092e8..b26bb10 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ build/ node_modules/ coverage/ .idea/ +.vscode/ diff --git a/public/locales/de/translation.json b/public/locales/de/translation.json index 34d3a1e..c377782 100644 --- a/public/locales/de/translation.json +++ b/public/locales/de/translation.json @@ -1,131 +1,170 @@ { - "tab.preferences":"Einstellungen", - "tab.repository":"Repository", - "tab.tasks":"Aufgaben", - "tab.policies":"Richtlinien", - "tab.snapshots":"Snapshots", - - "common.return": "Zurück", - - "task.all":"Alle", - "task.running":"Running", - "task.failed":"Fehlgeschlagen", - "task.loading": "Loading...", - "task.header.time.start": "Startzeit", - "task.header.status": "Status", - "task.header.kind": "Art", - "task.header.description": "Beschreibung", - "task.feedback.search": "Suchen nach Einträgen per Beschreibung", - "task.feedback.entries": "Hier erscheint eine Liste von Aufgaben, sobald Snapshots, Wartungsaufgaben oder Wiederherstellungen durchgeführt werden.", - - "task.status.succeed.after": "Task succeeded after", - "task.status.canceled": "Task canceled after", - "task.status.canceling": "Canceling", - "task.status.error": "Task error", - "task.status.running.for": "Task running for", - - "task.status.started": "Gestartet", - "task.status.finished": "Abgeschlossen", - "task.logs": "Protokoll", - - "task.event.stop": "Stop", - "task.header.counter": "Counter", - "task.header.value": "Value", - - "snapshot.header.actions": "Aktionen", - "snapshot.header.status": "Status", - "snapshot.header.snapshot.next":"Nächster Snapshot", - "snapshot.header.snapshot.last":"Letzter Snapshot", - "snapshot.header.snapshot.size":"Größe", - "snapshot.header.snapshot.owner":"Eigentümer", - "snapshot.header.snapshot.path":"Pfad", - - "snapshot.event.synchronize":"Synchronisieren", - "snapshot.event.snapshot.policy": "Richtlinie", - "snapshot.event.snapshot.now": "Snapshot erstellen", - "snapshot.event.snapshot.pending": "Wartend", - "snapshot.feedback.snapshot.start": "Der Snapshot startet, sobald der vorherige abgeschlossen ist", - "snapshot.event.snapshot.new": "Neuer Snapshot", - - "snapshot.event.restore.task.go": "Go To Restore Task", - "snapshot.event.restore":"Restore", - "snapshot.feedback.restore.destination": "Destination", - "snapshot.feedback.restore.destination.path":"Enter destination path", - "snapshot.feedback.restore.destination.help": "You can also restore to a .zip or .tar file by providing the appropriate extension.", - "snapshot.feedback.restore.skip": "Skip previously restored files and symlinks", - "snapshot.feedback.restore.continue.errors": "Continue on errors", - "snapshot.feedback.restore.continue.errors.help": "When a restore error occurs, attempt to continue instead of failing fast.", - "snapshot.feedback.restore.file.ownership": "Restore file ownership", - "snapshot.feedback.restore.file.permission": "Restore file permissions", - "snapshot.feedback.restore.file.modification.time": "Restore file modification time", - "snapshot.feedback.restore.file.overwrite": "Overwrite files", - "snapshot.feedback.restore.directory.overwrite": "Overwrite directories", - "snapshot.feedback.restore.link.overwrite": "Overwrite symbolic links", - "snapshot.feedback.restore.file.atomically": "Write files atomically", - "snapshot.feedback.restore.file.sparse":"Write sparse files", - - "snapshot.feedback.restore.shallow.depth": "Shallow restore at depth", - "snapshot.feedback.restore.shallow.file.size.minimal": "Minimal file size for shallow restore", - "snapshot.feedback.restore.disable.compression.zip": "Disable ZIP compression", - "snapshot.feedback.restore.disable.compression.zip.help": "Do not compress when restoring to a ZIP file (faster).", - "snapshot.event.restore.begin":"Begin restore", - - "repository.status.initializing": "Initializing repository...", - "repository.status.connected": "Mit Repository verbunden", - "repository.event.connection.cancel":"Cancel connection", - "repository.event.connection.disconnect": "Repository trennen", - "repository.event.description.update": "Update description", - - "repository.feedback.description.required":"Repository description is required", - "repository.feedback.read.only": "Repository is read-only", - "repository.feedback.eco.disabled":"Disabled", - "repository.feedback.compression.internal.supported": "ja", - "repository.feedback.compression.internal.not.supported": "nein", - - "repository.attribute.server.url": "Server URL", - "repository.attribute.config.file": "Konfigurationsdatei", - "repository.attribute.provider": "Anbieter", - "repository.attribute.algorithm.encryption": "Verschlüsselungsalgorithmus", - "repository.attribute.algorithm.hash": "Hash-Algorithmus", - "repository.attribute.algorithm.splitter": "Splitter algorithm", - "repository.attribute.algorithm.eco": "Error correction algorithm", - - "repository.attribute.connected.as": "Verbunden als", - "repository.attribute.compression.internal": "Interne Kompression", - "repository.attribute.format": "Repository format", - "repository.attribute.eco": "Error correction overhead", - - "log.event.hide": "Hide log", - "log.event.show": "Show log", - - "user.interface": "Benuteroberfläche", - "user.interface.appearance":"Erscheinung", - "user.interface.appearance.hint":"Select font size", - "user.interface.appearance.help": "Specifies the appearance of the user interface", - - "user.interface.appearance.small":"klein", - "user.interface.appearance.medium":"mittel", - "user.interface.appearance.large":"groß", - - "user.interface.pagesize.description": "Anzahl an Einträgen", - "user.interface.pagesize.help": "Gibt die Anzahl der Einträge in Listen an", - "user.interface.pagesize.hint": "Anzahl Einträge", - - "user.interface.byte.representation.description":"Select byte representation", - "user.interface.byte.representation.select":"Select byte representation", - "user.interface.byte.representation.help":"Specifies the representation of bytes", - - "user.language":"Sprache", - - "lang.help": "Sets the language for the user interface", - "lang.select": "Select language", - "lang.description": "Select the language", - - "theme.description": "Design", - "theme.select": "Select theme", - "theme.help": "Das aktuell ausgewählte Design", - "theme.dark":"Dunkel", - "theme.light": "Hell", - "theme.pastel": "Pastel", - "theme.ocean":"Ozean" -} \ No newline at end of file + "common.cancel": "Abbrechen", + "common.delete": "Löschen", + "common.delete.confirm": "Löschen bestätigen", + "common.loading": "Wird geladen ...", + "common.return": "Zurück", + "description.event.cancel": "Abbrechen", + "description.event.new": "Geben Sie eine neue Beschreibung ein", + "description.event.remove": "Beschreibung entfernen", + "description.event.update": "Beschreibung aktualisieren", + "description.feedback.description": "Beschreibung des Snapshots", + "feedback.ui.appearance": "Darstellung", + "feedback.ui.appearance-help": "Gibt die Darstellung des Nutzerinterfaces an", + "feedback.ui.appearance-hint": "Select font size", + "feedback.ui.theme-select": "Select theme", + "log.event.hide": "Hide log", + "log.event.show": "Show log", + "pin.event.add": "Pin hinzufügen", + "pin.event.cancel": "Abbrechen", + "pin.event.remove": "Pin entfernen", + "pin.event.snapshot.pin": "Snapshot anheften", + "pin.event.update": "Pin aktualisieren", + "pin.feedback.name": "Name des Pins", + "pin.feedback.standard-text": "Nicht löschen", + "policies.feedback.find.count_one": "{{count}} Richtlinie gefunden, die den Kriterien entspricht", + "policies.feedback.find.count_other": "{{count}} Richtlinien gefunden, die den Kriterien entsprechen", + "policies.feedback.find.none": "Keine Richtlinien gefunden.", + "policies.feedback.find.none.create": "Für das Verzeichnis {{path}} wurde keine Richtlinie gefunden. \nBitte richten Sie eine neue Richtlinie ein.", + "policies.feedback.loading": "Wird geladen ...", + "policies.feedback.path.absolute": "Richtlinien können nur für absolute Pfade definiert werden.", + "policies.feedback.policy.find": "Geben Sie das Verzeichnis ein, um die Richtlinie zu finden oder festzulegen", + "policies.header.actions": "Aktionen", + "policies.header.defined": "Definiert", + "policies.header.host": "Host", + "policies.header.path": "Pfad", + "policies.header.username": "Nutzername", + "policies.kind.all": "Alle Richtlinien", + "policies.kind.applicable": "Anwendbare Richtlinien", + "policies.kind.global": "Globale Richtlinien", + "policies.kind.host": "Richtlinien pro Host", + "policies.kind.local": "Lokale Richtlinien", + "policies.kind.user": "Richtlinien pro Benutzer", + "repository.attribute.algorithm.eco": "Error correction algorithm", + "repository.attribute.algorithm.encryption": "Verschlüsselungsalgorithmus", + "repository.attribute.algorithm.hash": "Hash-Algorithmus", + "repository.attribute.algorithm.splitter": "Splitter algorithm", + "repository.attribute.compression.internal": "Interne Kompression", + "repository.attribute.config.file": "Konfigurationsdatei", + "repository.attribute.connected.as": "Verbunden als", + "repository.attribute.eco": "Error correction overhead", + "repository.attribute.format": "Repository format", + "repository.attribute.provider": "Anbieter", + "repository.attribute.server.url": "Server URL", + "repository.event.connection.cancel": "Cancel connection", + "repository.event.connection.disconnect": "Repository trennen", + "repository.event.description.update": "Update description", + "repository.feedback.compression.internal.not.supported": "nein", + "repository.feedback.compression.internal.supported": "ja", + "repository.feedback.description.required": "Repository description is required", + "repository.feedback.eco.disabled": "Disabled", + "repository.feedback.read.only": "Repository is read-only", + "repository.status.connected": "Mit Repository verbunden", + "repository.status.initializing": "Initializing repository...", + "snapshot.event.create.estimate": "Schätzung", + "snapshot.event.create.now": "Snapshot erstellen", + "snapshot.event.create.path": "Pfad des Schnapshots eingeben", + "snapshot.event.create.path.resolve": "Pfad zur Erstellung des Snapshot muss angegeben werden.", + "snapshot.event.delete.selected_one": "Möchten Sie den ausgewählten {{count}} Snapshot löschen?", + "snapshot.event.delete.selected_other": "Möchten Sie die ausgewählten {{count}} Snapshots löschen?", + "snapshot.event.directory.browse": "Durchsuchen", + "snapshot.event.directory.browsing": "Das Durchsuchen von Verzeichnissen wird in einem Webbrowser nicht unterstützt. \nVerwenden Sie die Kopia-Benutzeroberfläche.", + "snapshot.event.directory.mount": "Als lokales Dateisystem mounten", + "snapshot.event.directory.restore": "Dateien und Verzeichnisse wiederherstellen", + "snapshot.event.directory.unmount": "Aushängen", + "snapshot.event.history.delete.source": "Snapshot-Quelle löschen", + "snapshot.event.history.description.update": "{{description}} – Klicken Sie hier, um die Snapshot-Beschreibung zu aktualisieren.", + "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.selected.delete": "Ausgewählte löschen (", + "snapshot.event.restore": "Restore", + "snapshot.event.restore.begin": "Begin restore", + "snapshot.event.snapshot.new": "Neuer Snapshot", + "snapshot.event.snapshot.pending": "Wartend", + "snapshot.event.snapshot.policy": "Richtlinie", + "snapshot.event.synchronize": "Synchronisieren", + "snapshot.feedback.directory.mount.restore": "Sie können alle unten angezeigten Dateien und Verzeichnisse mounten/wiederherstellen oder Dateien einzeln wiederherstellen.", + "snapshot.feedback.history.display": "Anzeigen", + "snapshot.feedback.history.wipe.all": "Löschen Sie alle Snapshots und die Richtlinie für diese Quelle.", + "snapshot.feedback.restore.continue.errors": "Continue on errors", + "snapshot.feedback.restore.continue.errors.help": "When a restore error occurs, attempt to continue instead of failing fast.", + "snapshot.feedback.restore.destination": "Destination", + "snapshot.feedback.restore.destination.help": "You can also restore to a .zip or .tar file by providing the appropriate extension.", + "snapshot.feedback.restore.destination.path": "Enter destination path", + "snapshot.feedback.restore.directory.overwrite": "Overwrite directories", + "snapshot.feedback.restore.disable.compression.zip": "Disable ZIP compression", + "snapshot.feedback.restore.disable.compression.zip.help": "Do not compress when restoring to a ZIP file (faster).", + "snapshot.feedback.restore.file.atomically": "Write files atomically", + "snapshot.feedback.restore.file.modification.time": "Restore file modification time", + "snapshot.feedback.restore.file.overwrite": "Overwrite files", + "snapshot.feedback.restore.file.ownership": "Restore file ownership", + "snapshot.feedback.restore.file.permission": "Restore file permissions", + "snapshot.feedback.restore.file.sparse": "Write sparse files", + "snapshot.feedback.restore.link.overwrite": "Overwrite symbolic links", + "snapshot.feedback.restore.shallow.depth": "Shallow restore at depth", + "snapshot.feedback.restore.shallow.file.size.minimal": "Minimal file size for shallow restore", + "snapshot.feedback.restore.skip": "Skip previously restored files and symlinks", + "snapshot.feedback.restore.task.go": "Gehen Sie zur Wiederherstellungsaufgabe", + "snapshot.feedback.snapshot.new": "Neuer Snapshot", + "snapshot.feedback.snapshot.start": "Der Snapshot startet, sobald der vorherige abgeschlossen ist", + "snapshot.header.actions": "Aktionen", + "snapshot.header.snapshot.last": "Letzter Snapshot", + "snapshot.header.snapshot.next": "Nächster Snapshot", + "snapshot.header.snapshot.owner": "Eigentümer", + "snapshot.header.snapshot.path": "Pfad", + "snapshot.header.snapshot.size": "Größe", + "snapshot.header.status": "Status", + "snapshot.history.feedack.unfiltered.count_one": "{{count}} einzelnen Schnappschuss anzeigen", + "snapshot.history.feedack.unfiltered.count_other": "{{count}} einzelne Schnappschüsse anzeigen", + "snapshot.history.header.description": "Beschreibung", + "snapshot.history.header.directories": "Ordner", + "snapshot.history.header.files": "Dateien", + "snapshot.history.header.retention": "Beibehaltung", + "snapshot.history.header.root": "Wurzelverzeichnis", + "snapshot.history.header.selected": "Ausgewählt", + "snapshot.history.header.size": "Größe", + "snapshot.history.header.time.start": "Startzeit", + "tab.policies": "Richtlinien", + "tab.preferences": "Einstellungen", + "tab.repository": "Repository", + "tab.snapshots": "Snapshots", + "tab.tasks": "Aufgaben", + "task.all": "Alle", + "task.event.stop": "Stop", + "task.failed": "Fehlgeschlagen", + "task.feedback.entries": "Hier erscheint eine Liste von Aufgaben, sobald Snapshots, Wartungsaufgaben oder Wiederherstellungen durchgeführt werden.", + "task.feedback.search": "Suchen nach Einträgen per Beschreibung", + "task.header.counter": "Counter", + "task.header.description": "Beschreibung", + "task.header.kind": "Art", + "task.header.status": "Status", + "task.header.time.start": "Startzeit", + "task.header.value": "Value", + "task.loading": "Loading...", + "task.logs": "Protokoll", + "task.running": "Running", + "task.status.canceled": "Task canceled after", + "task.status.canceling": "Canceling", + "task.status.error": "Task error", + "task.status.finished": "Abgeschlossen", + "task.status.running.for": "Task running for", + "task.status.started": "Gestartet", + "task.status.succeed.after": "Task succeeded after", + "ui.feedback.byte-representation-description": "Darstellung der Speichergrößen", + "ui.feedback.byte-representation-help": "Gibt die aktuelle Darstellung von Speichergrößen an", + "ui.feedback.byte-representation-select": "Darstellung der Speichgröße auswählen", + "ui.feedback.pagesize-description": "Anzahl an Einträgen", + "ui.feedback.pagesize-help": "Gibt die Anzahl der Einträge in Listen an", + "ui.feedback.pagesize-hint": "Anzahl Einträge", + "ui.feedback.theme-description": "Design", + "ui.feedback.theme-help": "Das aktuell ausgewählte Design", + "ui.value.appearance-large": "groß", + "ui.value.appearance-medium": "mittel", + "ui.value.appearance-small": "klein", + "ui.value.theme-dark": "dunkel", + "ui.value.theme-light": "hell", + "ui.value.theme-ocean": "ozeanisch", + "ui.value.theme-pastel": "pastelfarbend" +} diff --git a/public/locales/en/translation.json b/public/locales/en/translation.json index 2950b2d..281f7da 100644 --- a/public/locales/en/translation.json +++ b/public/locales/en/translation.json @@ -1,132 +1,170 @@ { - "tab.preferences":"Preferences", - "tab.repository":"Repository", - "tab.tasks":"Tasks", - "tab.policies":"Policies", - "tab.snapshots":"Snapshots", - - "common.return": "Return", - - "task.all":"All", - "task.running":"Running", - "task.failed":"Failed", - "task.loading": "Loading...", - "task.header.time.start": "Start time", - "task.header.status": "Status", - "task.header.kind": "Kind", - "task.header.description": "Description", - "task.feedback.search": "Search logs by description", - "task.feedback.entries": "A list of tasks will appear here when you create snapshots, restore, run maintenance, etc.", - - "task.status.succeed.after": "Task succeeded after", - "task.status.canceled": "Task canceled after", - "task.status.canceling": "Canceling", - "task.status.error": "Task error", - "task.status.running.for": "Task running for", - - "task.status.started": "Started", - "task.status.finished": "Finished", - "task.logs": "Logs", - - "task.event.stop": "Stop", - "task.header.counter": "Counter", - "task.header.value": "Value", - - "snapshot.header.actions": "Actions", - "snapshot.header.status": "Status", - "snapshot.header.snapshot.next":"Next Snapshot", - "snapshot.header.snapshot.last":"Last Snapshot", - "snapshot.header.snapshot.size":"Size", - "snapshot.header.snapshot.owner":"Owner", - "snapshot.header.snapshot.path":"Path", - - "snapshot.event.snapshot.now": "Snapshot Now", - "snapshot.event.snapshot.policy": "Policy", - "snapshot.event.snapshot.pending": "Pending", - "snapshot.feedback.snapshot.start": "Snapshot will start after the previous snapshot completes", - "snapshot.event.snapshot.new": "New Snapshot", - - "snapshot.event.synchronize":"Synchronize", - - "snapshot.event.restore.task.go": "Go To Restore Task", - "snapshot.event.restore":"Restore", - "snapshot.feedback.restore.destination": "Destination", - "snapshot.feedback.restore.destination.path":"Enter destination path", - "snapshot.feedback.restore.destination.help": "You can also restore to a .zip or .tar file by providing the appropriate extension.", - "snapshot.feedback.restore.skip": "Skip previously restored files and symlinks", - "snapshot.feedback.restore.continue.errors": "Continue on errors", - "snapshot.feedback.restore.continue.errors.help": "When a restore error occurs, attempt to continue instead of failing fast.", - "snapshot.feedback.restore.file.ownership": "Restore file ownership", - "snapshot.feedback.restore.file.permission": "Restore file permissions", - "snapshot.feedback.restore.file.modification.time": "Restore file modification time", - "snapshot.feedback.restore.file.overwrite": "Overwrite files", - "snapshot.feedback.restore.directory.overwrite": "Overwrite directories", - "snapshot.feedback.restore.link.overwrite": "Overwrite symbolic links", - "snapshot.feedback.restore.file.atomically": "Write files atomically", - "snapshot.feedback.restore.file.sparse":"Write sparse files", - - "snapshot.feedback.restore.shallow.depth": "Shallow restore at depth", - "snapshot.feedback.restore.shallow.file.size.minimal": "Minimal file size for shallow restore", - "snapshot.feedback.restore.disable.compression.zip": "Disable ZIP compression", - "snapshot.feedback.restore.disable.compression.zip.help": "Do not compress when restoring to a ZIP file (faster).", - "snapshot.event.restore.begin":"Begin restore", - - "repository.status.initializing": "Initializing repository...", - "repository.status.connected": "Connected to repository", - "repository.event.connection.cancel":"Cancel connection", - "repository.event.connection.disconnect": "Disconnect from repository", - "repository.event.description.update": "Update description", - - "repository.feedback.description.required":"Repository description is required", - "repository.feedback.read.only": "Repository is read-only", - "repository.feedback.eco.disabled":"Disabled", - "repository.feedback.compression.internal.supported": "yes", - "repository.feedback.compression.internal.not.supported": "no", - - "repository.attribute.server.url": "Server URL", - "repository.attribute.config.file": "Config file", - "repository.attribute.provider": "Provider", - "repository.attribute.algorithm.encryption": "Encryption algorithm", - "repository.attribute.algorithm.hash": "Hash algorithm", - "repository.attribute.algorithm.splitter": "Splitter algorithm", - "repository.attribute.algorithm.eco": "Error correction algorithm", - - "repository.attribute.connected.as": "Connected as", - "repository.attribute.compression.internal": "Internal compression", - "repository.attribute.format": "Repository format", - "repository.attribute.eco": "Error correction overhead", - - "log.event.hide": "Hide log", - "log.event.show": "Show log", - - "user.interface": "User interface", - "user.interface.appearance":"Appearance", - "user.interface.appearance.hint":"Select font size", - "user.interface.appearance.help": "Specifies the appearance of the user interface", - - "user.interface.appearance.small":"small", - "user.interface.appearance.medium":"medium", - "user.interface.appearance.large":"large", - - "user.interface.pagesize.description": "Page size", - "user.interface.pagesize.help": "Specifies the pagination size in tables", - "user.interface.pagesize.hint": "Page size", - - "user.interface.byte.representation.description":"Select byte representation", - "user.interface.byte.representation.select":"Select byte representation", - "user.interface.byte.representation.help":"Specifies the representation of bytes", - - "user.language":"Language", - - "lang.help": "Sets the language for the user interface", - "lang.select": "Select language", - "lang.description": "Select the language", - - "theme.description": "Theme", - "theme.select": "Select theme", - "theme.help": "The current active theme", - "theme.dark":"dark", - "theme.light": "light", - "theme.pastel": "pastel", - "theme.ocean":"ocean" -} \ No newline at end of file + "common.cancel": "Cancel", + "common.delete": "Delete", + "common.delete.confirm": "Confirm Delete", + "common.loading": "Loading ...", + "common.return": "Return", + "description.event.cancel": "Cancel", + "description.event.new": "Enter new description", + "description.event.remove": "Remove Description", + "description.event.update": "Update Description", + "description.feedback.description": "Snapshot Description", + "feedback.ui.appearance": "Appearance", + "feedback.ui.appearance-help": "Specifies the appearance of the user interface", + "feedback.ui.appearance-hint": "Select font size", + "feedback.ui.theme-select": "Select theme", + "log.event.hide": "Hide log", + "log.event.show": "Show log", + "pin.event.add": "Add Pin", + "pin.event.cancel": "Cancel", + "pin.event.remove": "Remove Pin", + "pin.event.snapshot.pin": "Pin Snapshot", + "pin.event.update": "Update Pin", + "pin.feedback.name": "Name of the pin", + "pin.feedback.standard-text": "do-not-delete", + "policies.feedback.find.count_one": "Found {{count}} policy matching the criteria", + "policies.feedback.find.count_other": "Found {{count}} policies matching the criteria", + "policies.feedback.find.none": "No policies found.", + "policies.feedback.find.none.create": " No policy found for directory {{path}}. Please setup a new policy.", + "policies.feedback.loading": "Loading ...", + "policies.feedback.path.absolute": "Policies can only be defined for absolute paths.", + "policies.feedback.policy.find": "Enter directory to find or set policy", + "policies.header.actions": "Actions", + "policies.header.defined": "Defined", + "policies.header.host": "Host", + "policies.header.path": "Path", + "policies.header.username": "Username", + "policies.kind.all": "All policies", + "policies.kind.applicable": "Applicable policies", + "policies.kind.global": "Global policies", + "policies.kind.host": "Per-Host policies", + "policies.kind.local": "Local policies", + "policies.kind.user": "Per-User policies", + "repository.attribute.algorithm.eco": "Error correction algorithm", + "repository.attribute.algorithm.encryption": "Encryption algorithm", + "repository.attribute.algorithm.hash": "Hash algorithm", + "repository.attribute.algorithm.splitter": "Splitter algorithm", + "repository.attribute.compression.internal": "Internal compression", + "repository.attribute.config.file": "Config file", + "repository.attribute.connected.as": "Connected as", + "repository.attribute.eco": "Error correction overhead", + "repository.attribute.format": "Repository format", + "repository.attribute.provider": "Provider", + "repository.attribute.server.url": "Server URL", + "repository.event.connection.cancel": "Cancel connection", + "repository.event.connection.disconnect": "Disconnect from repository", + "repository.event.description.update": "Update description", + "repository.feedback.compression.internal.not.supported": "no", + "repository.feedback.compression.internal.supported": "yes", + "repository.feedback.description.required": "Repository description is required", + "repository.feedback.eco.disabled": "Disabled", + "repository.feedback.read.only": "Repository is read-only", + "repository.status.connected": "Connected to repository", + "repository.status.initializing": "Initializing repository...", + "snapshot.event.create.estimate": "Estimate", + "snapshot.event.create.now": "Snapshot now", + "snapshot.event.create.path": "Enter path to snapshot", + "snapshot.event.create.path.resolve": "Must specify directory to snapshot.", + "snapshot.event.delete.selected_one": "Do you want to delete the selected {{count}} snapshot?", + "snapshot.event.delete.selected_other": "Do you want to delete the selected {{count}} snapshots?", + "snapshot.event.directory.browse": "Browse", + "snapshot.event.directory.browsing": "Directory browsing is not supported in a web browser. Use Kopia UI.", + "snapshot.event.directory.mount": "Mount as Local Filesystem", + "snapshot.event.directory.restore": "Restore files and directories\n", + "snapshot.event.directory.unmount": "Unmount", + "snapshot.event.history.delete.source": "Delete Snapshot Source", + "snapshot.event.history.description.update": "{{description}} - Click to update snapshot description.", + "snapshot.event.history.deselect.all": "Deselect All", + "snapshot.event.history.fetch.snapshots": "Fetch snapshots", + "snapshot.event.history.pin.add": "Add a pin to protect snapshot from deletion", + "snapshot.event.history.select.all": "Select All", + "snapshot.event.history.selected.delete": "Delete Selected (", + "snapshot.event.restore": "Restore", + "snapshot.event.restore.begin": "Begin restore", + "snapshot.event.snapshot.new": "New Snapshot", + "snapshot.event.snapshot.pending": "Pending", + "snapshot.event.snapshot.policy": "Policy", + "snapshot.event.synchronize": "Synchronize", + "snapshot.feedback.directory.mount.restore": "You can mount/restore all the files and directories that you see below or restore files individually.", + "snapshot.feedback.history.display": "Displaying", + "snapshot.feedback.history.wipe.all": "Wipe all snapshots and the policy for this source.", + "snapshot.feedback.restore.continue.errors": "Continue on errors", + "snapshot.feedback.restore.continue.errors.help": "When a restore error occurs, attempt to continue instead of failing fast.", + "snapshot.feedback.restore.destination": "Destination", + "snapshot.feedback.restore.destination.help": "You can also restore to a .zip or .tar file by providing the appropriate extension.", + "snapshot.feedback.restore.destination.path": "Enter destination path", + "snapshot.feedback.restore.directory.overwrite": "Overwrite directories", + "snapshot.feedback.restore.disable.compression.zip": "Disable ZIP compression", + "snapshot.feedback.restore.disable.compression.zip.help": "Do not compress when restoring to a ZIP file (faster).", + "snapshot.feedback.restore.file.atomically": "Write files atomically", + "snapshot.feedback.restore.file.modification.time": "Restore file modification time", + "snapshot.feedback.restore.file.overwrite": "Overwrite files", + "snapshot.feedback.restore.file.ownership": "Restore file ownership", + "snapshot.feedback.restore.file.permission": "Restore file permissions", + "snapshot.feedback.restore.file.sparse": "Write sparse files", + "snapshot.feedback.restore.link.overwrite": "Overwrite symbolic links", + "snapshot.feedback.restore.shallow.depth": "Shallow restore at depth", + "snapshot.feedback.restore.shallow.file.size.minimal": "Minimal file size for shallow restore", + "snapshot.feedback.restore.skip": "Skip previously restored files and symlinks", + "snapshot.feedback.restore.task.go": "Go To Restore Task", + "snapshot.feedback.snapshot.new": "New Snapshot", + "snapshot.feedback.snapshot.start": "Snapshot will start after the previous snapshot completes", + "snapshot.header.actions": "Actions", + "snapshot.header.snapshot.last": "Last Snapshot", + "snapshot.header.snapshot.next": "Next Snapshot", + "snapshot.header.snapshot.owner": "Owner", + "snapshot.header.snapshot.path": "Path", + "snapshot.header.snapshot.size": "Size", + "snapshot.header.status": "Status", + "snapshot.history.feedack.unfiltered.count_one": "Show {{count}} individual snapshot", + "snapshot.history.feedack.unfiltered.count_other": "Show {{count}} individual snapshots", + "snapshot.history.header.description": "Description", + "snapshot.history.header.directories": "Dirs", + "snapshot.history.header.files": "Files", + "snapshot.history.header.retention": "Retention", + "snapshot.history.header.root": "Root", + "snapshot.history.header.selected": "Selected", + "snapshot.history.header.size": "Size", + "snapshot.history.header.time.start": "Start time", + "tab.policies": "Policies", + "tab.preferences": "Preferences", + "tab.repository": "Repository", + "tab.snapshots": "Snapshots", + "tab.tasks": "Tasks", + "task.all": "All", + "task.event.stop": "Stop", + "task.failed": "Failed", + "task.feedback.entries": "A list of tasks will appear here when you create snapshots, restore, run maintenance, etc.", + "task.feedback.search": "Search logs by description", + "task.header.counter": "Counter", + "task.header.description": "Description", + "task.header.kind": "Kind", + "task.header.status": "Status", + "task.header.time.start": "Start time", + "task.header.value": "Value", + "task.loading": "Loading...", + "task.logs": "Logs", + "task.running": "Running", + "task.status.canceled": "Task canceled after", + "task.status.canceling": "Canceling", + "task.status.error": "Task error", + "task.status.finished": "Finished", + "task.status.running.for": "Task running for", + "task.status.started": "Started", + "task.status.succeed.after": "Task succeeded after", + "ui.feedback.byte-representation-description": "Select byte representation", + "ui.feedback.byte-representation-help": "Specifies the representation of bytes", + "ui.feedback.byte-representation-select": "Select byte representation", + "ui.feedback.pagesize-description": "Page size", + "ui.feedback.pagesize-help": "Specifies the pagination size in tables", + "ui.feedback.pagesize-hint": "Page size", + "ui.feedback.theme-description": "Theme", + "ui.feedback.theme-help": "The current active theme", + "ui.value.appearance-large": "large", + "ui.value.appearance-medium": "medium", + "ui.value.appearance-small": "small", + "ui.value.theme-dark": "dark", + "ui.value.theme-light": "light", + "ui.value.theme-ocean": "ocean", + "ui.value.theme-pastel": "pastel" +} diff --git a/public/locales/es/translation.json b/public/locales/es/translation.json index 2e7c0be..17d79b7 100644 --- a/public/locales/es/translation.json +++ b/public/locales/es/translation.json @@ -1,121 +1,170 @@ { - "tab.preferences": "Preferencias", - "tab.repository": "Depósito", - "tab.tasks": "Tareas", - "tab.policies": "Políticas", - "tab.snapshots": "Copias de respaldo", - - "common.return": "Volver", - - "task.all": "Todas", - "task.running": "En ejecución", - "task.failed": "Fallidas", - "task.loading": "Cargando...", - "task.header.time.start": "Hora de inicio", - "task.header.status": "Estado", - "task.header.kind": "Tipo", - "task.header.description": "Descripción", - "task.feedback.search": "Buscar registros por descripción", - "task.feedback.entries": "Aquí aparecerá una lista de tareas cuando crees instantáneas, restaures, ejecutes mantenimiento, etc.", - - "task.status.succeed.after": "La tarea se completó con éxito después de", - "task.status.canceled": "Tarea cancelada después de", - "task.status.canceling": "Cancelando", - "task.status.error": "Error en la tarea", - "task.status.running.for": "Tarea en ejecución durante", - "task.status.started": "Iniciada", - "task.status.finished": "Finalizada", - - "task.logs": "Registros", - "task.event.stop": "Detener", - "task.header.counter": "Contador", - "task.header.value": "Valor", - - "snapshot.header.actions": "Acciones", - "snapshot.header.status": "Estado", - "snapshot.header.snapshot.next": "Siguiente instantánea", - "snapshot.header.snapshot.last": "Última instantánea", - "snapshot.header.snapshot.size": "Tamaño", - "snapshot.header.snapshot.owner": "Dueño", - "snapshot.header.snapshot.path": "Ruta", - "snapshot.event.snapshot.now": "Instantánea ahora", - "snapshot.event.snapshot.policy": "Política", - "snapshot.event.snapshot.pending": "Pendiente", - "snapshot.feedback.snapshot.start": "La instantánea comenzará después de que se complete la instantánea anterior", - "snapshot.event.snapshot.new": "Nueva instantánea", - "snapshot.event.synchronize": "Sincronizar", - - "snapshot.event.restore.task.go": "Ir a la tarea de restauración", - "snapshot.event.restore": "Restaurar", - "snapshot.feedback.restore.destination": "Destino", - "snapshot.feedback.restore.destination.path": "Introducir la ruta de destino", - "snapshot.feedback.restore.destination.help": "También puedes restaurar a un archivo .zip o .tar proporcionando la extensión adecuada.", - "snapshot.feedback.restore.skip": "Saltar archivos y enlaces simbólicos restaurados previamente", - "snapshot.feedback.restore.continue.errors": "Continuar en caso de errores", - "snapshot.feedback.restore.continue.errors.help": "Cuando se produce un error durante la restauración, intenta continuar en lugar de detenerse rápidamente.", - "snapshot.feedback.restore.file.ownership": "Restaurar propiedad de archivos", - "snapshot.feedback.restore.file.permission": "Restaurar permisos de archivos", - "snapshot.feedback.restore.file.modification.time": "Restaurar hora de modificación de archivos", - "snapshot.feedback.restore.file.overwrite": "Sobrescribir archivos", - "snapshot.feedback.restore.directory.overwrite": "Sobrescribir directorios", - "snapshot.feedback.restore.link.overwrite": "Sobrescribir enlaces simbólicos", - "snapshot.feedback.restore.file.atomically": "Escribir archivos atómicamente", - "snapshot.feedback.restore.file.sparse": "Escribir archivos dispersos", - - "snapshot.feedback.restore.shallow.depth": "Restauración superficial a una profundidad específica", - "snapshot.feedback.restore.shallow.file.size.minimal": "Tamaño mínimo de archivo para restauración superficial", - "snapshot.feedback.restore.disable.compression.zip": "Desactivar compresión ZIP", - "snapshot.feedback.restore.disable.compression.zip.help": "No comprimir al restaurar en un archivo ZIP (más rápido).", - "snapshot.event.restore.begin": "Comenzar la restauración", - - "repository.status.initializing": "Inicializando el repositorio...", - "repository.status.connected": "Conectado al repositorio", - "repository.event.connection.cancel": "Cancelar conexión", - "repository.event.connection.disconnect": "Desconectar del repositorio", - "repository.event.description.update": "Actualizar descripción", - "repository.feedback.description.required": "La descripción del repositorio es obligatoria", - "repository.feedback.read.only": "El repositorio es de sólo lectura", - "repository.feedback.eco.disabled": "Deshabilitado", - "repository.feedback.compression.internal.supported": "sí", - "repository.feedback.compression.internal.not.supported": "no", - "repository.attribute.server.url": "URL del servidor", - "repository.attribute.config.file": "Archivo de configuración", - "repository.attribute.provider": "Proveedor", - "repository.attribute.algorithm.encryption": "Algoritmo de cifrado", - "repository.attribute.algorithm.hash": "Algoritmo de hash", - "repository.attribute.algorithm.splitter": "Algoritmo de división", - "repository.attribute.algorithm.eco": "Algoritmo de corrección de errores", - "repository.attribute.connected.as": "Conectado como", - "repository.attribute.compression.internal": "Compresión interna", - "repository.attribute.format": "Formato del repositorio", - "repository.attribute.eco": "Overhead de corrección de errores", - - "log.event.hide": "Ocultar registro", - "log.event.show": "Mostrar registro", - - "user.interface": "Interfaz de usuario", - "user.interface.appearance": "Apariencia", - "user.interface.appearance.hint": "Selecciona el tamaño de letra", - "user.interface.appearance.help": "Especifica la apariencia de la interfaz de usuario", - "user.interface.appearance.small": "pequeño", - "user.interface.appearance.medium": "mediano", - "user.interface.appearance.large": "grande", - "user.interface.pagesize.description": "Tamaño de página", - "user.interface.pagesize.help": "Especifica el tamaño de paginación en las tablas", - "user.interface.pagesize.hint": "Tamaño de página", - "user.interface.byte.representation.description": "Selecciona la representación de bytes", - "user.interface.byte.representation.select": "Selecciona la representación de bytes", - "user.interface.byte.representation.help": "Especifica la representación de bytes", - "user.language": "Idioma", - - "lang.help": "Establece el idioma para la interfaz de usuario", - "lang.select": "Selecciona el idioma", - "lang.description": "Selecciona el idioma", - "theme.description": "Tema", - "theme.select": "Seleccionar tema", - "theme.help": "El tema activo actual", - "theme.dark": "oscuro", - "theme.light": "claro", - "theme.pastel": "pastel", - "theme.ocean": "oceánico" -} \ No newline at end of file + "common.cancel": "Cancelar", + "common.delete": "Borrar", + "common.delete.confirm": "Confirmar eliminación", + "common.loading": "Cargando ...", + "common.return": "Volver", + "description.event.cancel": "Cancelar", + "description.event.new": "Ingrese una nueva descripción", + "description.event.remove": "Eliminar descripción", + "description.event.update": "Descripción de la actualización", + "description.feedback.description": "Descripción de la instantánea", + "feedback.ui.appearance": "Apariencia", + "feedback.ui.appearance-help": "Especifica la apariencia de la interfaz de usuario", + "feedback.ui.appearance-hint": "Selecciona el tamaño de letra", + "feedback.ui.theme-select": "Seleccionar tema", + "log.event.hide": "Ocultar registro", + "log.event.show": "Mostrar registro", + "pin.event.add": "Agregar PIN", + "pin.event.cancel": "Cancelar", + "pin.event.remove": "Quitar pin", + "pin.event.snapshot.pin": "Instantánea de pin", + "pin.event.update": "Actualizar PIN", + "pin.feedback.name": "nombre del pin", + "pin.feedback.standard-text": "no borres", + "policies.feedback.find.count_one": "Se encontró {{count}} política que coincide con los criterios", + "policies.feedback.find.count_other": "Se encontraron {{count}} políticas que coinciden con los criterios", + "policies.feedback.find.none": "No se encontraron políticas.", + "policies.feedback.find.none.create": "No se encontró ninguna política para el directorio {{ruta}}. \nConfigure una nueva política.", + "policies.feedback.loading": "Cargando ...", + "policies.feedback.path.absolute": "Las políticas sólo se pueden definir para rutas absolutas.", + "policies.feedback.policy.find": "Ingrese al directorio para buscar o establecer una política", + "policies.header.actions": "Comportamiento", + "policies.header.defined": "Definido", + "policies.header.host": "Anfitrión", + "policies.header.path": "Camino", + "policies.header.username": "Nombre de usuario", + "policies.kind.all": "Todas las pólizas", + "policies.kind.applicable": "Políticas aplicables", + "policies.kind.global": "Políticas globales", + "policies.kind.host": "Políticas por host", + "policies.kind.local": "Políticas locales", + "policies.kind.user": "Políticas por usuario", + "repository.attribute.algorithm.eco": "Algoritmo de corrección de errores", + "repository.attribute.algorithm.encryption": "Algoritmo de cifrado", + "repository.attribute.algorithm.hash": "Algoritmo de hash", + "repository.attribute.algorithm.splitter": "Algoritmo de división", + "repository.attribute.compression.internal": "Compresión interna", + "repository.attribute.config.file": "Archivo de configuración", + "repository.attribute.connected.as": "Conectado como", + "repository.attribute.eco": "Overhead de corrección de errores", + "repository.attribute.format": "Formato del repositorio", + "repository.attribute.provider": "Proveedor", + "repository.attribute.server.url": "URL del servidor", + "repository.event.connection.cancel": "Cancelar conexión", + "repository.event.connection.disconnect": "Desconectar del repositorio", + "repository.event.description.update": "Actualizar descripción", + "repository.feedback.compression.internal.not.supported": "no", + "repository.feedback.compression.internal.supported": "sí", + "repository.feedback.description.required": "La descripción del repositorio es obligatoria", + "repository.feedback.eco.disabled": "Deshabilitado", + "repository.feedback.read.only": "El repositorio es de sólo lectura", + "repository.status.connected": "Conectado al repositorio", + "repository.status.initializing": "Inicializando el repositorio...", + "snapshot.event.create.estimate": "Estimar", + "snapshot.event.create.now": "Instantánea ahora", + "snapshot.event.create.path": "Ingrese la ruta a la instantánea", + "snapshot.event.create.path.resolve": "Debe especificar el directorio para la instantánea.", + "snapshot.event.delete.selected_one": "¿Quieres eliminar la instantánea {{count}} seleccionada?", + "snapshot.event.delete.selected_other": "¿Quieres eliminar las {{count}} instantáneas seleccionadas?", + "snapshot.event.directory.browse": "Navegar", + "snapshot.event.directory.browsing": "La exploración de directorios no es compatible con un navegador web. \nUtilice la interfaz de usuario de Kopia.", + "snapshot.event.directory.mount": "Montar como sistema de archivos local", + "snapshot.event.directory.restore": "Restaurar archivos y directorios", + "snapshot.event.directory.unmount": "Desmontar", + "snapshot.event.history.delete.source": "Eliminar fuente de instantánea", + "snapshot.event.history.description.update": "{{description}}: haga clic para actualizar la descripción de la instantánea.", + "snapshot.event.history.deselect.all": "Deseleccionar todo", + "snapshot.event.history.fetch.snapshots": "Obtener instantáneas", + "snapshot.event.history.pin.add": "Agregue un pin para proteger la instantánea contra la eliminación", + "snapshot.event.history.select.all": "Seleccionar todo", + "snapshot.event.history.selected.delete": "Eliminar seleccionado (", + "snapshot.event.restore": "Restaurar", + "snapshot.event.restore.begin": "Comenzar la restauración", + "snapshot.event.snapshot.new": "Nueva instantánea", + "snapshot.event.snapshot.pending": "Pendiente", + "snapshot.event.snapshot.policy": "Política", + "snapshot.event.synchronize": "Sincronizar", + "snapshot.feedback.directory.mount.restore": "Puede montar/restaurar todos los archivos y directorios que ve a continuación o restaurar archivos individualmente.", + "snapshot.feedback.history.display": "Mostrando", + "snapshot.feedback.history.wipe.all": "Borre todas las instantáneas y la política de esta fuente.", + "snapshot.feedback.restore.continue.errors": "Continuar en caso de errores", + "snapshot.feedback.restore.continue.errors.help": "Cuando se produce un error durante la restauración, intenta continuar en lugar de detenerse rápidamente.", + "snapshot.feedback.restore.destination": "Destino", + "snapshot.feedback.restore.destination.help": "También puedes restaurar a un archivo .zip o .tar proporcionando la extensión adecuada.", + "snapshot.feedback.restore.destination.path": "Introducir la ruta de destino", + "snapshot.feedback.restore.directory.overwrite": "Sobrescribir directorios", + "snapshot.feedback.restore.disable.compression.zip": "Desactivar compresión ZIP", + "snapshot.feedback.restore.disable.compression.zip.help": "No comprimir al restaurar en un archivo ZIP (más rápido).", + "snapshot.feedback.restore.file.atomically": "Escribir archivos atómicamente", + "snapshot.feedback.restore.file.modification.time": "Restaurar hora de modificación de archivos", + "snapshot.feedback.restore.file.overwrite": "Sobrescribir archivos", + "snapshot.feedback.restore.file.ownership": "Restaurar propiedad de archivos", + "snapshot.feedback.restore.file.permission": "Restaurar permisos de archivos", + "snapshot.feedback.restore.file.sparse": "Escribir archivos dispersos", + "snapshot.feedback.restore.link.overwrite": "Sobrescribir enlaces simbólicos", + "snapshot.feedback.restore.shallow.depth": "Restauración superficial a una profundidad específica", + "snapshot.feedback.restore.shallow.file.size.minimal": "Tamaño mínimo de archivo para restauración superficial", + "snapshot.feedback.restore.skip": "Saltar archivos y enlaces simbólicos restaurados previamente", + "snapshot.feedback.restore.task.go": "Ir a restaurar tarea", + "snapshot.feedback.snapshot.new": "Nueva instantánea", + "snapshot.feedback.snapshot.start": "La instantánea comenzará después de que se complete la instantánea anterior", + "snapshot.header.actions": "Acciones", + "snapshot.header.snapshot.last": "Última instantánea", + "snapshot.header.snapshot.next": "Siguiente instantánea", + "snapshot.header.snapshot.owner": "Dueño", + "snapshot.header.snapshot.path": "Ruta", + "snapshot.header.snapshot.size": "Tamaño", + "snapshot.header.status": "Estado", + "snapshot.history.feedack.unfiltered.count_one": "Mostrar {{count}} instantánea individual", + "snapshot.history.feedack.unfiltered.count_other": "Mostrar {{count}} instantáneas individuales", + "snapshot.history.header.description": "Descripción", + "snapshot.history.header.directories": "directorios", + "snapshot.history.header.files": "Archivos", + "snapshot.history.header.retention": "Retención", + "snapshot.history.header.root": "Raíz", + "snapshot.history.header.selected": "Seleccionado", + "snapshot.history.header.size": "Tamaño", + "snapshot.history.header.time.start": "Hora de inicio", + "tab.policies": "Políticas", + "tab.preferences": "Preferencias", + "tab.repository": "Depósito", + "tab.snapshots": "Copias de respaldo", + "tab.tasks": "Tareas", + "task.all": "Todas", + "task.event.stop": "Detener", + "task.failed": "Fallidas", + "task.feedback.entries": "Aquí aparecerá una lista de tareas cuando crees instantáneas, restaures, ejecutes mantenimiento, etc.", + "task.feedback.search": "Buscar registros por descripción", + "task.header.counter": "Contador", + "task.header.description": "Descripción", + "task.header.kind": "Tipo", + "task.header.status": "Estado", + "task.header.time.start": "Hora de inicio", + "task.header.value": "Valor", + "task.loading": "Cargando...", + "task.logs": "Registros", + "task.running": "En ejecución", + "task.status.canceled": "Tarea cancelada después de", + "task.status.canceling": "Cancelando", + "task.status.error": "Error en la tarea", + "task.status.finished": "Finalizada", + "task.status.running.for": "Tarea en ejecución durante", + "task.status.started": "Iniciada", + "task.status.succeed.after": "La tarea se completó con éxito después de", + "ui.feedback.byte-representation-description": "Selecciona la representación de bytes", + "ui.feedback.byte-representation-help": "Especifica la representación de bytes", + "ui.feedback.byte-representation-select": "Selecciona la representación de bytes", + "ui.feedback.pagesize-description": "Tamaño de página", + "ui.feedback.pagesize-help": "Especifica el tamaño de paginación en las tablas", + "ui.feedback.pagesize-hint": "Tamaño de página", + "ui.feedback.theme-description": "Tema", + "ui.feedback.theme-help": "El tema activo actual", + "ui.value.appearance-large": "grande", + "ui.value.appearance-medium": "mediano", + "ui.value.appearance-small": "pequeño", + "ui.value.theme-dark": "oscuro", + "ui.value.theme-light": "claro", + "ui.value.theme-ocean": "oceánico", + "ui.value.theme-pastel": "pastel" +} diff --git a/public/locales/fr/translation.json b/public/locales/fr/translation.json index 1d7148b..6e14bb7 100644 --- a/public/locales/fr/translation.json +++ b/public/locales/fr/translation.json @@ -1,118 +1,170 @@ { - "tab.preferences": "Préférences", - "tab.repository": "Répertoire", - "tab.tasks": "Tâches", - "tab.policies": "Politiques", - "tab.snapshots": "Instantanés", - - "common.return": "Retour", - - "task.all": "Tous", - "task.running": "En cours", - "task.failed": "Échoué", - "task.loading": "Chargement...", - "task.header.time.start": "Heure de début", - "task.header.status": "Statut", - "task.header.kind": "Type", - "task.header.description": "Description", - "task.feedback.search": "Rechercher des journaux par description", - "task.feedback.entries": "Une liste de tâches apparaîtra ici lorsque vous créerez des instantanés, restaurerez, exécuterez des opérations de maintenance, etc.", - "task.status.succeed.after": "Tâche réussie après", - "task.status.canceled": "Tâche annulée après", - "task.status.canceling": "Annulation en cours", - "task.status.error": "Erreur de tâche", - "task.status.running.for": "Tâche en cours depuis", - "task.status.started": "Démarré", - "task.status.finished": "Terminé", - "task.logs": "Journaux", - "task.event.stop": "Arrêter", - "task.header.counter": "Compteur", - "task.header.value": "Valeur", - - "snapshot.header.actions": "Actions", - "snapshot.header.status": "Statut", - "snapshot.header.snapshot.next": "Instantané suivant", - "snapshot.header.snapshot.last": "Dernier instantané", - "snapshot.header.snapshot.size": "Taille", - "snapshot.header.snapshot.owner": "Propriétaire", - "snapshot.header.snapshot.path": "Chemin", - "snapshot.event.snapshot.now": "Instantané maintenant", - "snapshot.event.snapshot.policy": "Politique", - "snapshot.event.snapshot.pending": "En attente", - "snapshot.feedback.snapshot.start": "L'instantané démarrera après la fin de l'instantané précédent", - "snapshot.event.snapshot.new": "Nouvel instantané", - "snapshot.event.synchronize": "Synchroniser", - - "snapshot.event.restore.task.go": "Aller à la tâche de restauration", - "snapshot.event.restore": "Restaurer", - "snapshot.feedback.restore.destination": "Destination", - "snapshot.feedback.restore.destination.path": "Entrez le chemin de destination", - "snapshot.feedback.restore.destination.help": "Vous pouvez également restaurer vers un fichier .zip ou .tar en fournissant l'extension appropriée.", - "snapshot.feedback.restore.skip": "Ignorer les fichiers et liens symboliques déjà restaurés", - "snapshot.feedback.restore.continue.errors": "Continuer en cas d'erreurs", - "snapshot.feedback.restore.continue.errors.help": "Lorsqu'une erreur de restauration se produit, essayez de continuer au lieu d'échouer rapidement.", - "snapshot.feedback.restore.file.ownership": "Restaurer la propriété des fichiers", - "snapshot.feedback.restore.file.permission": "Restaurer les permissions des fichiers", - "snapshot.feedback.restore.file.modification.time": "Restaurer l'heure de modification des fichiers", - "snapshot.feedback.restore.file.overwrite": "Écraser les fichiers", - "snapshot.feedback.restore.directory.overwrite": "Écraser les répertoires", - "snapshot.feedback.restore.link.overwrite": "Écraser les liens symboliques", - "snapshot.feedback.restore.file.atomically": "Écrire les fichiers de manière atomique", - "snapshot.feedback.restore.file.sparse": "Écrire les fichiers en mode sparse", - - "snapshot.feedback.restore.shallow.depth": "Restauration superficielle à une profondeur spécifique", - "snapshot.feedback.restore.shallow.file.size.minimal": "Taille minimale des fichiers pour une restauration superficielle", - "snapshot.feedback.restore.disable.compression.zip": "Désactiver la compression ZIP", - "snapshot.feedback.restore.disable.compression.zip.help": "Ne pas compresser lors de la restauration vers un fichier ZIP (plus rapide).", - "snapshot.event.restore.begin": "Démarrer la restauration", - - "repository.status.initializing": "Initialisation du répertoire...", - "repository.status.connected": "Connecté au répertoire", - "repository.event.connection.cancel": "Annuler la connexion", - "repository.event.connection.disconnect": "Déconnexion du répertoire", - "repository.event.description.update": "Mettre à jour la description", - "repository.feedback.description.required": "La description du répertoire est obligatoire", - "repository.feedback.read.only": "Le répertoire est en lecture seule", - "repository.feedback.eco.disabled": "Désactivé", - "repository.feedback.compression.internal.supported": "oui", - "repository.feedback.compression.internal.not.supported": "non", - "repository.attribute.server.url": "URL du serveur", - "repository.attribute.config.file": "Fichier de configuration", - "repository.attribute.provider": "Fournisseur", - "repository.attribute.algorithm.encryption": "Algorithme de chiffrement", - "repository.attribute.algorithm.hash": "Algorithme de hachage", - "repository.attribute.algorithm.splitter": "Algorithme de découpage", - "repository.attribute.algorithm.eco": "Algorithme de correction d'erreurs", - "repository.attribute.connected.as": "Connecté en tant que", - "repository.attribute.compression.internal": "Compression interne", - "repository.attribute.format": "Format du répertoire", - "repository.attribute.eco": "Surcoût de correction d'erreurs", - - "log.event.hide": "Masquer le journal", - "log.event.show": "Afficher le journal", - - "user.interface": "Interface utilisateur", - "user.interface.appearance": "Apparence", - "user.interface.appearance.hint": "Sélectionnez la taille de police", - "user.interface.appearance.help": "Spécifie l'apparence de l'interface utilisateur", - "user.interface.appearance.small": "petite", - "user.interface.appearance.medium": "moyenne", - "user.interface.appearance.large": "grande", - "user.interface.pagesize.description": "Taille de la page", - "user.interface.pagesize.help": "Spécifie la taille de pagination dans les tableaux", - "user.interface.pagesize.hint": "Taille de la page", - "user.interface.byte.representation.description": "Sélectionnez la représentation des octets", - "user.interface.byte.representation.select": "Sélectionnez la représentation des octets", - "user.interface.byte.representation.help": "Spécifie la représentation des octets", - "user.language": "Langue", - - "lang.help": "Définit la langue de l'interface utilisateur", - "lang.select": "Sélectionnez la langue", - - "theme.select": "Sélectionnez un thème", - "theme.help": "Le thème actif actuel", - "theme.dark": "sombre", - "theme.light": "clair", - "theme.pastel": "pastel", - "theme.ocean": "océan" -} \ No newline at end of file + "common.cancel": "Annuler", + "common.delete": "Supprimer", + "common.delete.confirm": "Confirmation de la suppression", + "common.loading": "Chargement ...", + "common.return": "Retour", + "description.event.cancel": "Annuler", + "description.event.new": "Entrez une nouvelle description", + "description.event.remove": "Supprimer la description", + "description.event.update": "Description de la mise à jour", + "description.feedback.description": "Description de l'instantané", + "feedback.ui.appearance": "Apparence", + "feedback.ui.appearance-help": "Spécifie l'apparence de l'interface utilisateur", + "feedback.ui.appearance-hint": "Sélectionnez la taille de police", + "feedback.ui.theme-select": "Sélectionnez un thème", + "log.event.hide": "Masquer le journal", + "log.event.show": "Afficher le journal", + "pin.event.add": "Ajouter une épingle", + "pin.event.cancel": "Annuler", + "pin.event.remove": "Supprimer l'épingle", + "pin.event.snapshot.pin": "Épingler un instantané", + "pin.event.update": "Mettre à jour l'épingle", + "pin.feedback.name": "Nom de la broche", + "pin.feedback.standard-text": "ne pas supprimer", + "policies.feedback.find.count_one": "{{count}} politiques correspondant aux critères ont été trouvées", + "policies.feedback.find.count_other": "{{count}} politiques correspondant aux critères ont été trouvées", + "policies.feedback.find.none": "Aucune politique trouvée.", + "policies.feedback.find.none.create": "Aucune stratégie trouvée pour le répertoire {{path}}. \nVeuillez configurer une nouvelle politique.", + "policies.feedback.loading": "Chargement ...", + "policies.feedback.path.absolute": "Les stratégies ne peuvent être définies que pour des chemins absolus.", + "policies.feedback.policy.find": "Entrez dans le répertoire pour rechercher ou définir une politique", + "policies.header.actions": "Actions", + "policies.header.defined": "Défini", + "policies.header.host": "Hôte", + "policies.header.path": "Chemin", + "policies.header.username": "Nom d'utilisateur", + "policies.kind.all": "Toutes les politiques", + "policies.kind.applicable": "Politiques applicables", + "policies.kind.global": "Politiques mondiales", + "policies.kind.host": "Politiques par hôte", + "policies.kind.local": "Politiques locales", + "policies.kind.user": "Politiques par utilisateur", + "repository.attribute.algorithm.eco": "Algorithme de correction d'erreurs", + "repository.attribute.algorithm.encryption": "Algorithme de chiffrement", + "repository.attribute.algorithm.hash": "Algorithme de hachage", + "repository.attribute.algorithm.splitter": "Algorithme de découpage", + "repository.attribute.compression.internal": "Compression interne", + "repository.attribute.config.file": "Fichier de configuration", + "repository.attribute.connected.as": "Connecté en tant que", + "repository.attribute.eco": "Surcoût de correction d'erreurs", + "repository.attribute.format": "Format du répertoire", + "repository.attribute.provider": "Fournisseur", + "repository.attribute.server.url": "URL du serveur", + "repository.event.connection.cancel": "Annuler la connexion", + "repository.event.connection.disconnect": "Déconnexion du répertoire", + "repository.event.description.update": "Mettre à jour la description", + "repository.feedback.compression.internal.not.supported": "non", + "repository.feedback.compression.internal.supported": "oui", + "repository.feedback.description.required": "La description du répertoire est obligatoire", + "repository.feedback.eco.disabled": "Désactivé", + "repository.feedback.read.only": "Le répertoire est en lecture seule", + "repository.status.connected": "Connecté au répertoire", + "repository.status.initializing": "Initialisation du répertoire...", + "snapshot.event.create.estimate": "Estimation", + "snapshot.event.create.now": "Instantané maintenant", + "snapshot.event.create.path": "Entrez le chemin d'accès à l'instantané", + "snapshot.event.create.path.resolve": "Doit spécifier le répertoire dans lequel prendre l'instantané.", + "snapshot.event.delete.selected_one": "Voulez-vous supprimer l'instantané {{count}} sélectionné ?", + "snapshot.event.delete.selected_other": "Voulez-vous supprimer les {{count}} instantanés sélectionnés ?", + "snapshot.event.directory.browse": "Parcourir", + "snapshot.event.directory.browsing": "La navigation dans les répertoires n'est pas prise en charge dans un navigateur Web. \nUtilisez l'interface utilisateur de Kopia.", + "snapshot.event.directory.mount": "Monter en tant que système de fichiers local", + "snapshot.event.directory.restore": "Restaurer des fichiers et des répertoires", + "snapshot.event.directory.unmount": "Démonter", + "snapshot.event.history.delete.source": "Supprimer la source de l'instantané", + "snapshot.event.history.description.update": "{{description}} : cliquez pour mettre à jour la description de l'instantané.", + "snapshot.event.history.deselect.all": "Tout déselectionner", + "snapshot.event.history.fetch.snapshots": "Récupérer des instantanés", + "snapshot.event.history.pin.add": "Ajouter une épingle pour protéger l'instantané de la suppression", + "snapshot.event.history.select.all": "Tout sélectionner", + "snapshot.event.history.selected.delete": "Supprimer sélectionnée (", + "snapshot.event.restore": "Restaurer", + "snapshot.event.restore.begin": "Démarrer la restauration", + "snapshot.event.snapshot.new": "Nouvel instantané", + "snapshot.event.snapshot.pending": "En attente", + "snapshot.event.snapshot.policy": "Politique", + "snapshot.event.synchronize": "Synchroniser", + "snapshot.feedback.directory.mount.restore": "Vous pouvez monter/restaurer tous les fichiers et répertoires que vous voyez ci-dessous ou restaurer les fichiers individuellement.", + "snapshot.feedback.history.display": "Affichage", + "snapshot.feedback.history.wipe.all": "Effacez tous les instantanés et la stratégie de cette source.", + "snapshot.feedback.restore.continue.errors": "Continuer en cas d'erreurs", + "snapshot.feedback.restore.continue.errors.help": "Lorsqu'une erreur de restauration se produit, essayez de continuer au lieu d'échouer rapidement.", + "snapshot.feedback.restore.destination": "Destination", + "snapshot.feedback.restore.destination.help": "Vous pouvez également restaurer vers un fichier .zip ou .tar en fournissant l'extension appropriée.", + "snapshot.feedback.restore.destination.path": "Entrez le chemin de destination", + "snapshot.feedback.restore.directory.overwrite": "Écraser les répertoires", + "snapshot.feedback.restore.disable.compression.zip": "Désactiver la compression ZIP", + "snapshot.feedback.restore.disable.compression.zip.help": "Ne pas compresser lors de la restauration vers un fichier ZIP (plus rapide).", + "snapshot.feedback.restore.file.atomically": "Écrire les fichiers de manière atomique", + "snapshot.feedback.restore.file.modification.time": "Restaurer l'heure de modification des fichiers", + "snapshot.feedback.restore.file.overwrite": "Écraser les fichiers", + "snapshot.feedback.restore.file.ownership": "Restaurer la propriété des fichiers", + "snapshot.feedback.restore.file.permission": "Restaurer les permissions des fichiers", + "snapshot.feedback.restore.file.sparse": "Écrire les fichiers en mode sparse", + "snapshot.feedback.restore.link.overwrite": "Écraser les liens symboliques", + "snapshot.feedback.restore.shallow.depth": "Restauration superficielle à une profondeur spécifique", + "snapshot.feedback.restore.shallow.file.size.minimal": "Taille minimale des fichiers pour une restauration superficielle", + "snapshot.feedback.restore.skip": "Ignorer les fichiers et liens symboliques déjà restaurés", + "snapshot.feedback.restore.task.go": "Aller à la tâche de restauration", + "snapshot.feedback.snapshot.new": "Nouvel instantané", + "snapshot.feedback.snapshot.start": "L'instantané démarrera après la fin de l'instantané précédent", + "snapshot.header.actions": "Actions", + "snapshot.header.snapshot.last": "Dernier instantané", + "snapshot.header.snapshot.next": "Instantané suivant", + "snapshot.header.snapshot.owner": "Propriétaire", + "snapshot.header.snapshot.path": "Chemin", + "snapshot.header.snapshot.size": "Taille", + "snapshot.header.status": "Statut", + "snapshot.history.feedack.unfiltered.count_one": "Afficher {{count}} instantané individuel", + "snapshot.history.feedack.unfiltered.count_other": "Afficher {{count}} instantanés individuels", + "snapshot.history.header.description": "Description", + "snapshot.history.header.directories": "Directeurs", + "snapshot.history.header.files": "Des dossiers", + "snapshot.history.header.retention": "Rétention", + "snapshot.history.header.root": "Racine", + "snapshot.history.header.selected": "Choisi", + "snapshot.history.header.size": "Taille", + "snapshot.history.header.time.start": "Heure de début", + "tab.policies": "Politiques", + "tab.preferences": "Préférences", + "tab.repository": "Répertoire", + "tab.snapshots": "Instantanés", + "tab.tasks": "Tâches", + "task.all": "Tous", + "task.event.stop": "Arrêter", + "task.failed": "Échoué", + "task.feedback.entries": "Une liste de tâches apparaîtra ici lorsque vous créerez des instantanés, restaurerez, exécuterez des opérations de maintenance, etc.", + "task.feedback.search": "Rechercher des journaux par description", + "task.header.counter": "Compteur", + "task.header.description": "Description", + "task.header.kind": "Type", + "task.header.status": "Statut", + "task.header.time.start": "Heure de début", + "task.header.value": "Valeur", + "task.loading": "Chargement...", + "task.logs": "Journaux", + "task.running": "En cours", + "task.status.canceled": "Tâche annulée après", + "task.status.canceling": "Annulation en cours", + "task.status.error": "Erreur de tâche", + "task.status.finished": "Terminé", + "task.status.running.for": "Tâche en cours depuis", + "task.status.started": "Démarré", + "task.status.succeed.after": "Tâche réussie après", + "ui.feedback.byte-representation-description": "Sélectionnez la représentation des octets", + "ui.feedback.byte-representation-help": "Spécifie la représentation des octets", + "ui.feedback.byte-representation-select": "Sélectionnez la représentation des octets", + "ui.feedback.pagesize-description": "Taille de la page", + "ui.feedback.pagesize-help": "Spécifie la taille de pagination dans les tableaux", + "ui.feedback.pagesize-hint": "Taille de la page", + "ui.feedback.theme-description": "Thème", + "ui.feedback.theme-help": "Le thème actif actuel", + "ui.value.appearance-large": "grande", + "ui.value.appearance-medium": "moyenne", + "ui.value.appearance-small": "petite", + "ui.value.theme-dark": "sombre", + "ui.value.theme-light": "clair", + "ui.value.theme-ocean": "océan", + "ui.value.theme-pastel": "pastel" +} diff --git a/public/locales/it/translation.json b/public/locales/it/translation.json index 51831fb..b3912bc 100644 --- a/public/locales/it/translation.json +++ b/public/locales/it/translation.json @@ -1,132 +1,170 @@ { - "tab.preferences": "Preferenze", - "tab.repository": "Repository", - "tab.tasks": "Attività", - "tab.policies": "Politiche", - "tab.snapshots": "Istantanee", - - "common.return": "Ritorno", - - "task.all": "Tutte", - "task.running": "In esecuzione", - "task.failed": "Fallite", - "task.loading": "Caricamento...", - "task.header.time.start": "Ora di inizio", - "task.header.status": "Stato", - "task.header.kind": "Tipo", - "task.header.description": "Descrizione", - "task.feedback.search": "Cerca log per descrizione", - "task.feedback.entries": "Un elenco di attività apparirà qui quando crei istantanee, ripristini, esegui manutenzione, ecc.", - - "task.status.succeed.after": "Attività completata dopo", - "task.status.canceled": "Attività annullata dopo", - "task.status.canceling": "Annullamento in corso", - "task.status.error": "Errore nell'attività", - "task.status.running.for": "Attività in esecuzione da", - - "task.status.started": "Avviata", - "task.status.finished": "Completata", - "task.logs": "Log", - - "task.event.stop": "Arresta", - "task.header.counter": "Contatore", - "task.header.value": "Valore", - - "snapshot.header.actions": "Azioni", - "snapshot.header.status": "Stato", - "snapshot.header.snapshot.next": "Prossima istantanea", - "snapshot.header.snapshot.last": "Ultima istantanea", - "snapshot.header.snapshot.size": "Dimensione", - "snapshot.header.snapshot.owner": "Proprietario", - "snapshot.header.snapshot.path": "Percorso", - - "snapshot.event.snapshot.now": "Crea Istantanea Ora", - "snapshot.event.snapshot.policy": "Politica", - "snapshot.event.snapshot.pending": "In attesa", - "snapshot.feedback.snapshot.start": "L'istantanea inizierà dopo il completamento dell'istantanea precedente", - "snapshot.event.snapshot.new": "Nuova Istantanea", - - "snapshot.event.synchronize":"Sincronizza", - - "snapshot.event.restore.task.go": "Vai alla task di ripristino", - "snapshot.event.restore": "Ripristina", - "snapshot.feedback.restore.destination": "Destinazione", - "snapshot.feedback.restore.destination.path": "Inserisci il percorso di destinazione", - "snapshot.feedback.restore.destination.help": "Puoi anche ripristinare in un file .zip o .tar fornendo l'estensione appropriata.", - "snapshot.feedback.restore.skip": "Salta i file e i collegamenti simbolici già ripristinati in precedenza", - "snapshot.feedback.restore.continue.errors": "Continua in caso di errori", - "snapshot.feedback.restore.continue.errors.help": "Quando si verifica un errore durante il ripristino, prova a continuare invece di interrompere rapidamente.", - "snapshot.feedback.restore.file.ownership": "Ripristina la proprietà dei file", - "snapshot.feedback.restore.file.permission": "Ripristina i permessi dei file", - "snapshot.feedback.restore.file.modification.time": "Ripristina l'orario di modifica dei file", - "snapshot.feedback.restore.file.overwrite": "Sovrascrivi i file", - "snapshot.feedback.restore.directory.overwrite": "Sovrascrivi le directory", - "snapshot.feedback.restore.link.overwrite": "Sovrascrivi i collegamenti simbolici", - "snapshot.feedback.restore.file.atomically": "Scrivi i file atomicamente", - "snapshot.feedback.restore.file.sparse": "Scrivi file sparsi", - - "snapshot.feedback.restore.shallow.depth": "Ripristino superficiale a una profondità specifica", - "snapshot.feedback.restore.shallow.file.size.minimal": "Dimensione minima del file per il ripristino superficiale", - "snapshot.feedback.restore.disable.compression.zip": "Disabilita la compressione ZIP", - "snapshot.feedback.restore.disable.compression.zip.help": "Non comprimere quando si ripristina in un file ZIP (più veloce).", - "snapshot.event.restore.begin": "Inizia il ripristino", - - "repository.status.initializing": "Inizializzazione del repository...", - "repository.status.connected": "Connesso al repository", - "repository.event.connection.cancel":"Annulla connessione", - "repository.event.connection.disconnect": "Disconnetti dal repository", - "repository.event.description.update": "Aggiorna descrizione", - - "repository.feedback.description.required":"La descrizione del repository è obbligatoria", - "repository.feedback.read.only": "Il repository è in sola lettura", - "repository.feedback.eco.disabled":"Disabilitato", - "repository.feedback.compression.internal.supported": "sì", - "repository.feedback.compression.internal.not.supported": "no", - - "repository.attribute.server.url": "URL del server", - "repository.attribute.config.file": "File di configurazione", - "repository.attribute.provider": "Provider", - "repository.attribute.algorithm.encryption": "Algoritmo di crittografia", - "repository.attribute.algorithm.hash": "Algoritmo di hash", - "repository.attribute.algorithm.splitter": "Algoritmo di suddivisione", - "repository.attribute.algorithm.eco": "Algoritmo di correzione degli errori", - - "repository.attribute.connected.as": "Connesso come", - "repository.attribute.compression.internal": "Compressione interna", - "repository.attribute.format": "Formato del repository", - "repository.attribute.eco": "Overhead di correzione degli errori", - - "log.event.hide": "Nascondi log", - "log.event.show": "Mostra log", - - "user.interface": "Interfaccia utente", - "user.interface.appearance":"Aspetto", - "user.interface.appearance.hint":"Seleziona la dimensione del carattere", - "user.interface.appearance.help": "Specifica l'aspetto dell'interfaccia utente", - - "user.interface.appearance.small": "piccolo", - "user.interface.appearance.medium": "medio", - "user.interface.appearance.large": "grande", - - "user.interface.pagesize.description": "Dimensione pagina", - "user.interface.pagesize.help": "Specifica la dimensione di paginazione nelle tabelle", - "user.interface.pagesize.hint": "Dimensione pagina", - - "user.interface.byte.representation.description": "Seleziona la rappresentazione dei byte", - "user.interface.byte.representation.select": "Seleziona la rappresentazione dei byte", - "user.interface.byte.representation.help": "Specifica la rappresentazione dei byte", - - "user.language": "Lingua", - - "lang.help": "Imposta la lingua per l'interfaccia utente", - "lang.select": "Seleziona la lingua", - "lang.description": "Seleziona la lingua", - - "theme.description": "Tema", - "theme.select": "Seleziona il tema", - "theme.help": "Il tema attivo corrente", - "theme.dark": "scuro", - "theme.light": "chiaro", - "theme.pastel": "pastello", - "theme.ocean": "oceano" -} \ No newline at end of file + "common.cancel": "Annulla", + "common.delete": "Eliminare", + "common.delete.confirm": "Conferma cancellazione", + "common.loading": "Caricamento ...", + "common.return": "Ritorno", + "description.event.cancel": "Annulla", + "description.event.new": "Inserisci una nuova descrizione", + "description.event.remove": "Rimuovi descrizione", + "description.event.update": "Descrizione dell'aggiornamento", + "description.feedback.description": "Descrizione dell'istantanea", + "feedback.ui.appearance": "Aspetto", + "feedback.ui.appearance-help": "Specifica l'aspetto dell'interfaccia utente", + "feedback.ui.appearance-hint": "Seleziona la dimensione del carattere", + "feedback.ui.theme-select": "Seleziona il tema", + "log.event.hide": "Nascondi log", + "log.event.show": "Mostra log", + "pin.event.add": "Aggiungi puntina", + "pin.event.cancel": "Annulla", + "pin.event.remove": "Rimuovi perno", + "pin.event.snapshot.pin": "Pin istantanea", + "pin.event.update": "Aggiorna perno", + "pin.feedback.name": "Nome del perno", + "pin.feedback.standard-text": "non cancellare", + "policies.feedback.find.count_one": "Trovata {{count}} policy corrispondente ai criteri", + "policies.feedback.find.count_other": "Trovate {{count}} politiche che corrispondono ai criteri", + "policies.feedback.find.none": "Nessuna politica trovata.", + "policies.feedback.find.none.create": "Nessuna policy trovata per la directory {{path}}. \nImposta una nuova policy.", + "policies.feedback.loading": "Caricamento ...", + "policies.feedback.path.absolute": "Le policy possono essere definite solo per percorsi assoluti.", + "policies.feedback.policy.find": "Inserisci la directory per trovare o impostare la policy", + "policies.header.actions": "Azioni", + "policies.header.defined": "Definito", + "policies.header.host": "Ospite", + "policies.header.path": "Sentiero", + "policies.header.username": "Nome utente", + "policies.kind.all": "Tutte le politiche", + "policies.kind.applicable": "Politiche applicabili", + "policies.kind.global": "Politiche globali", + "policies.kind.host": "Politiche per host", + "policies.kind.local": "Politiche locali", + "policies.kind.user": "Criteri per utente", + "repository.attribute.algorithm.eco": "Algoritmo di correzione degli errori", + "repository.attribute.algorithm.encryption": "Algoritmo di crittografia", + "repository.attribute.algorithm.hash": "Algoritmo di hash", + "repository.attribute.algorithm.splitter": "Algoritmo di suddivisione", + "repository.attribute.compression.internal": "Compressione interna", + "repository.attribute.config.file": "File di configurazione", + "repository.attribute.connected.as": "Connesso come", + "repository.attribute.eco": "Overhead di correzione degli errori", + "repository.attribute.format": "Formato del repository", + "repository.attribute.provider": "Provider", + "repository.attribute.server.url": "URL del server", + "repository.event.connection.cancel": "Annulla connessione", + "repository.event.connection.disconnect": "Disconnetti dal repository", + "repository.event.description.update": "Aggiorna descrizione", + "repository.feedback.compression.internal.not.supported": "no", + "repository.feedback.compression.internal.supported": "sì", + "repository.feedback.description.required": "La descrizione del repository è obbligatoria", + "repository.feedback.eco.disabled": "Disabilitato", + "repository.feedback.read.only": "Il repository è in sola lettura", + "repository.status.connected": "Connesso al repository", + "repository.status.initializing": "Inizializzazione del repository...", + "snapshot.event.create.estimate": "Stima", + "snapshot.event.create.now": "Scatta subito un'istantanea", + "snapshot.event.create.path": "Inserisci il percorso dello snapshot", + "snapshot.event.create.path.resolve": "È necessario specificare la directory in cui eseguire lo snapshot.", + "snapshot.event.delete.selected_one": "Vuoi eliminare lo snapshot {{count}} selezionato?", + "snapshot.event.delete.selected_other": "Vuoi eliminare le istantanee {{count}} selezionate?", + "snapshot.event.directory.browse": "Navigare", + "snapshot.event.directory.browsing": "L'esplorazione delle directory non è supportata in un browser Web. \nUtilizza l'interfaccia utente di Copia.", + "snapshot.event.directory.mount": "Monta come file system locale", + "snapshot.event.directory.restore": "Ripristina file e directory", + "snapshot.event.directory.unmount": "Smonta", + "snapshot.event.history.delete.source": "Elimina origine istantanea", + "snapshot.event.history.description.update": "{{description}}: fai clic per aggiornare la descrizione dell'istantanea.", + "snapshot.event.history.deselect.all": "Deselezionare tutto", + "snapshot.event.history.fetch.snapshots": "Recupera istantanee", + "snapshot.event.history.pin.add": "Aggiungi un segnaposto per proteggere l'istantanea dall'eliminazione", + "snapshot.event.history.select.all": "Seleziona tutto", + "snapshot.event.history.selected.delete": "Elimina selezionato (", + "snapshot.event.restore": "Ripristina", + "snapshot.event.restore.begin": "Inizia il ripristino", + "snapshot.event.snapshot.new": "Nuova Istantanea", + "snapshot.event.snapshot.pending": "In attesa", + "snapshot.event.snapshot.policy": "Politica", + "snapshot.event.synchronize": "Sincronizza", + "snapshot.feedback.directory.mount.restore": "Puoi montare/ripristinare tutti i file e le directory che vedi di seguito o ripristinare i file individualmente.", + "snapshot.feedback.history.display": "Visualizzazione", + "snapshot.feedback.history.wipe.all": "Cancella tutti gli snapshot e la policy per questa origine.", + "snapshot.feedback.restore.continue.errors": "Continua in caso di errori", + "snapshot.feedback.restore.continue.errors.help": "Quando si verifica un errore durante il ripristino, prova a continuare invece di interrompere rapidamente.", + "snapshot.feedback.restore.destination": "Destinazione", + "snapshot.feedback.restore.destination.help": "Puoi anche ripristinare in un file .zip o .tar fornendo l'estensione appropriata.", + "snapshot.feedback.restore.destination.path": "Inserisci il percorso di destinazione", + "snapshot.feedback.restore.directory.overwrite": "Sovrascrivi le directory", + "snapshot.feedback.restore.disable.compression.zip": "Disabilita la compressione ZIP", + "snapshot.feedback.restore.disable.compression.zip.help": "Non comprimere quando si ripristina in un file ZIP (più veloce).", + "snapshot.feedback.restore.file.atomically": "Scrivi i file atomicamente", + "snapshot.feedback.restore.file.modification.time": "Ripristina l'orario di modifica dei file", + "snapshot.feedback.restore.file.overwrite": "Sovrascrivi i file", + "snapshot.feedback.restore.file.ownership": "Ripristina la proprietà dei file", + "snapshot.feedback.restore.file.permission": "Ripristina i permessi dei file", + "snapshot.feedback.restore.file.sparse": "Scrivi file sparsi", + "snapshot.feedback.restore.link.overwrite": "Sovrascrivi i collegamenti simbolici", + "snapshot.feedback.restore.shallow.depth": "Ripristino superficiale a una profondità specifica", + "snapshot.feedback.restore.shallow.file.size.minimal": "Dimensione minima del file per il ripristino superficiale", + "snapshot.feedback.restore.skip": "Salta i file e i collegamenti simbolici già ripristinati in precedenza", + "snapshot.feedback.restore.task.go": "Vai a Ripristina attività", + "snapshot.feedback.snapshot.new": "Nuova istantanea", + "snapshot.feedback.snapshot.start": "L'istantanea inizierà dopo il completamento dell'istantanea precedente", + "snapshot.header.actions": "Azioni", + "snapshot.header.snapshot.last": "Ultima istantanea", + "snapshot.header.snapshot.next": "Prossima istantanea", + "snapshot.header.snapshot.owner": "Proprietario", + "snapshot.header.snapshot.path": "Percorso", + "snapshot.header.snapshot.size": "Dimensione", + "snapshot.header.status": "Stato", + "snapshot.history.feedack.unfiltered.count_one": "Mostra {{count}} istantanea individuale", + "snapshot.history.feedack.unfiltered.count_other": "Mostra {{count}} istantanee individuali", + "snapshot.history.header.description": "Descrizione", + "snapshot.history.header.directories": "Dir", + "snapshot.history.header.files": "File", + "snapshot.history.header.retention": "Ritenzione", + "snapshot.history.header.root": "Radice", + "snapshot.history.header.selected": "Selezionato", + "snapshot.history.header.size": "Misurare", + "snapshot.history.header.time.start": "Ora di inizio", + "tab.policies": "Politiche", + "tab.preferences": "Preferenze", + "tab.repository": "Repository", + "tab.snapshots": "Istantanee", + "tab.tasks": "Attività", + "task.all": "Tutte", + "task.event.stop": "Arresta", + "task.failed": "Fallite", + "task.feedback.entries": "Un elenco di attività apparirà qui quando crei istantanee, ripristini, esegui manutenzione, ecc.", + "task.feedback.search": "Cerca log per descrizione", + "task.header.counter": "Contatore", + "task.header.description": "Descrizione", + "task.header.kind": "Tipo", + "task.header.status": "Stato", + "task.header.time.start": "Ora di inizio", + "task.header.value": "Valore", + "task.loading": "Caricamento...", + "task.logs": "Log", + "task.running": "In esecuzione", + "task.status.canceled": "Attività annullata dopo", + "task.status.canceling": "Annullamento in corso", + "task.status.error": "Errore nell'attività", + "task.status.finished": "Completata", + "task.status.running.for": "Attività in esecuzione da", + "task.status.started": "Avviata", + "task.status.succeed.after": "Attività completata dopo", + "ui.feedback.byte-representation-description": "Seleziona la rappresentazione dei byte", + "ui.feedback.byte-representation-help": "Specifica la rappresentazione dei byte", + "ui.feedback.byte-representation-select": "Seleziona la rappresentazione dei byte", + "ui.feedback.pagesize-description": "Dimensione pagina", + "ui.feedback.pagesize-help": "Specifica la dimensione di paginazione nelle tabelle", + "ui.feedback.pagesize-hint": "Dimensione pagina", + "ui.feedback.theme-description": "Tema", + "ui.feedback.theme-help": "Il tema attivo corrente", + "ui.value.appearance-large": "grande", + "ui.value.appearance-medium": "medio", + "ui.value.appearance-small": "piccolo", + "ui.value.theme-dark": "scuro", + "ui.value.theme-light": "chiaro", + "ui.value.theme-ocean": "oceano", + "ui.value.theme-pastel": "pastello" +} diff --git a/public/locales/jp/translation.json b/public/locales/jp/translation.json index 9afe52a..f970004 100644 --- a/public/locales/jp/translation.json +++ b/public/locales/jp/translation.json @@ -1,132 +1,170 @@ { - "tab.preferences": "設定", - "tab.repository": "リポジトリ", - "tab.tasks": "タスク", - "tab.policies": "ポリシー", - "tab.snapshots": "スナップショット", - - "common.return": "戻る", - - "task.all": "すべて", - "task.running": "実行中", - "task.failed": "失敗", - "task.loading": "読み込み中...", - "task.header.time.start": "開始時刻", - "task.header.status": "ステータス", - "task.header.kind": "種類", - "task.header.description": "説明", - "task.feedback.search": "説明でログを検索", - "task.feedback.entries": "スナップショットを作成したり、復元したり、メンテナンスを実行したりすると、ここにタスクの一覧が表示されます。", - - "task.status.succeed.after": "タスクは成功しました。", - "task.status.canceled": "タスクはキャンセルされました。", - "task.status.canceling": "キャンセル中", - "task.status.error": "タスクエラー", - "task.status.running.for": "タスク実行中", - - "task.status.started": "開始済み", - "task.status.finished": "完了済み", - "task.logs": "ログ", - - "task.event.stop": "停止", - "task.header.counter": "カウンター", - "task.header.value": "値", - - "snapshot.header.actions": "アクション", - "snapshot.header.status": "ステータス", - "snapshot.header.snapshot.next": "次のスナップショット", - "snapshot.header.snapshot.last": "最後のスナップショット", - "snapshot.header.snapshot.size": "サイズ", - "snapshot.header.snapshot.owner": "オーナー", - "snapshot.header.snapshot.path": "パス", - - "snapshot.event.snapshot.now": "スナップショットを作成", - "snapshot.event.snapshot.policy": "ポリシー", - "snapshot.event.snapshot.pending": "保留中", - "snapshot.feedback.snapshot.start": "前のスナップショットが完了した後にスナップショットが開始されます", - "snapshot.event.snapshot.new": "新しいスナップショット", - - "snapshot.event.synchronize": "同期", - - "snapshot.event.restore.task.go": "復元タスクに移動", - "snapshot.event.restore": "復元", - "snapshot.feedback.restore.destination": "宛先", - "snapshot.feedback.restore.destination.path": "宛先パスを入力", - "snapshot.feedback.restore.destination.help": "適切な拡張子を指定することで、.zipまたは.tarファイルにも復元できます。", - "snapshot.feedback.restore.skip": "以前に復元されたファイルとシンボリックリンクをスキップ", - "snapshot.feedback.restore.continue.errors": "エラーが発生した場合に続行", - "snapshot.feedback.restore.continue.errors.help": "復元エラーが発生した場合、即座に失敗せずに続行を試みます。", - "snapshot.feedback.restore.file.ownership": "ファイル所有権を復元", - "snapshot.feedback.restore.file.permission": "ファイルのアクセス権を復元", - "snapshot.feedback.restore.file.modification.time": "ファイルの変更時刻を復元", - "snapshot.feedback.restore.file.overwrite": "ファイルを上書き", - "snapshot.feedback.restore.directory.overwrite": "ディレクトリを上書き", - "snapshot.feedback.restore.link.overwrite": "シンボリックリンクを上書き", - "snapshot.feedback.restore.file.atomically": "ファイルをアトミックに書き込む", - "snapshot.feedback.restore.file.sparse": "スパースファイルを書き込む", - - "snapshot.feedback.restore.shallow.depth": "指定の深さで浅い復元", - "snapshot.feedback.restore.shallow.file.size.minimal": "浅い復元の最小ファイルサイズ", - "snapshot.feedback.restore.disable.compression.zip": "ZIP圧縮を無効にする", - "snapshot.feedback.restore.disable.compression.zip.help": "ZIPファイルへの復元時に圧縮しない(高速)。", - "snapshot.event.restore.begin": "復元を開始", - - "repository.status.initializing": "リポジトリの初期化中...", - "repository.status.connected": "リポジトリに接続済み", - "repository.event.connection.cancel": "接続をキャンセル", - "repository.event.connection.disconnect": "リポジトリから切断", - "repository.event.description.update": "説明を更新", - - "repository.feedback.description.required": "リポジトリの説明は必須です", - "repository.feedback.read.only": "リポジトリは読み取り専用です", - "repository.feedback.eco.disabled": "無効", - "repository.feedback.compression.internal.supported": "はい", - "repository.feedback.compression.internal.not.supported": "いいえ", - - "repository.attribute.server.url": "サーバーのURL", - "repository.attribute.config.file": "設定ファイル", - "repository.attribute.provider": "プロバイダー", - "repository.attribute.algorithm.encryption": "暗号化アルゴリズム", - "repository.attribute.algorithm.hash": "ハッシュアルゴリズム", - "repository.attribute.algorithm.splitter": "分割アルゴリズム", - "repository.attribute.algorithm.eco": "エラー訂正アルゴリズム", - - "repository.attribute.connected.as": "接続されたユーザー", - "repository.attribute.compression.internal": "内部圧縮", - "repository.attribute.format": "リポジトリの形式", - "repository.attribute.eco": "エラー訂正オーバーヘッド", - - "log.event.hide": "ログを非表示", - "log.event.show": "ログを表示", - - "user.interface": "ユーザーインターフェース", - "user.interface.appearance": "外観", - "user.interface.appearance.hint": "フォントサイズを選択", - "user.interface.appearance.help": "ユーザーインターフェースの外観を指定します", - - "user.interface.appearance.small": "小", - "user.interface.appearance.medium": "中", - "user.interface.appearance.large": "大", - - "user.interface.pagesize.description": "ページサイズ", - "user.interface.pagesize.help": "テーブルのページネーションサイズを指定します", - "user.interface.pagesize.hint": "ページサイズ", - - "user.interface.byte.representation.description": "バイトの表現を選択", - "user.interface.byte.representation.select": "バイトの表現を選択", - "user.interface.byte.representation.help": "バイトの表現を指定します", - - "user.language": "言語", - - "lang.help": "ユーザーインターフェースの言語を設定します", - "lang.select": "言語を選択", - "lang.description": "言語を選択してください", - - "theme.description": "テーマ", - "theme.select": "テーマを選択", - "theme.help": "現在のアクティブなテーマ", - "theme.dark": "ダーク", - "theme.light": "ライト", - "theme.pastel": "パステル", - "theme.ocean": "オーシャン" + "common.cancel": "Cancel", + "common.delete": "Delete", + "common.delete.confirm": "Confirm Delete", + "common.loading": "Loading ...", + "common.return": "戻る", + "description.event.cancel": "Cancel", + "description.event.new": "Enter new description", + "description.event.remove": "Remove Description", + "description.event.update": "Update Description", + "description.feedback.description": "Snapshot Description", + "feedback.ui.appearance": "外観", + "feedback.ui.appearance-help": "ユーザーインターフェースの外観を指定します", + "feedback.ui.appearance-hint": "フォントサイズを選択", + "feedback.ui.theme-select": "テーマを選択", + "log.event.hide": "ログを非表示", + "log.event.show": "ログを表示", + "pin.event.add": "Add Pin", + "pin.event.cancel": "Cancel", + "pin.event.remove": "Remove Pin", + "pin.event.snapshot.pin": "Pin Snapshot", + "pin.event.update": "Update Pin", + "pin.feedback.name": "Name of the pin", + "pin.feedback.standard-text": "do-not-delete", + "policies.feedback.find.count_one": "Found {{count}} policy matching the criteria", + "policies.feedback.find.count_other": "Found {{count}} policies matching the criteria", + "policies.feedback.find.none": "No policies found.", + "policies.feedback.find.none.create": "No policy found for directory {{path}}. Please setup a new policy.", + "policies.feedback.loading": "Loading ...", + "policies.feedback.path.absolute": "Policies can only be defined for absolute paths.", + "policies.feedback.policy.find": "Enter directory to find or set policy", + "policies.header.actions": "Actions", + "policies.header.defined": "Defined", + "policies.header.host": "Host", + "policies.header.path": "Path", + "policies.header.username": "Username", + "policies.kind.all": "All policies", + "policies.kind.applicable": "Applicable policies", + "policies.kind.global": "Global policies", + "policies.kind.host": "Per-Host policies", + "policies.kind.local": "Local policies", + "policies.kind.user": "Per-User policies", + "repository.attribute.algorithm.eco": "エラー訂正アルゴリズム", + "repository.attribute.algorithm.encryption": "暗号化アルゴリズム", + "repository.attribute.algorithm.hash": "ハッシュアルゴリズム", + "repository.attribute.algorithm.splitter": "分割アルゴリズム", + "repository.attribute.compression.internal": "内部圧縮", + "repository.attribute.config.file": "設定ファイル", + "repository.attribute.connected.as": "接続されたユーザー", + "repository.attribute.eco": "エラー訂正オーバーヘッド", + "repository.attribute.format": "リポジトリの形式", + "repository.attribute.provider": "プロバイダー", + "repository.attribute.server.url": "サーバーのURL", + "repository.event.connection.cancel": "接続をキャンセル", + "repository.event.connection.disconnect": "リポジトリから切断", + "repository.event.description.update": "説明を更新", + "repository.feedback.compression.internal.not.supported": "いいえ", + "repository.feedback.compression.internal.supported": "はい", + "repository.feedback.description.required": "リポジトリの説明は必須です", + "repository.feedback.eco.disabled": "無効", + "repository.feedback.read.only": "リポジトリは読み取り専用です", + "repository.status.connected": "リポジトリに接続済み", + "repository.status.initializing": "リポジトリの初期化中...", + "snapshot.event.create.estimate": "Estimate", + "snapshot.event.create.now": "Snapshot now", + "snapshot.event.create.path": "Enter path to snapshot", + "snapshot.event.create.path.resolve": "Must specify directory to snapshot.", + "snapshot.event.delete.selected_one": "Do you want to delete the selected {{count}} snapshot?", + "snapshot.event.delete.selected_other": "Do you want to delete the selected {{count}} snapshots?", + "snapshot.event.directory.browse": "Browse", + "snapshot.event.directory.browsing": "Directory browsing is not supported in a web browser. Use Kopia UI.", + "snapshot.event.directory.mount": "Mount as Local Filesystem", + "snapshot.event.directory.restore": "Restore files and directories", + "snapshot.event.directory.unmount": "Unmount", + "snapshot.event.history.delete.source": "Delete Snapshot Source", + "snapshot.event.history.description.update": "{{description}} - Click to update snapshot description.", + "snapshot.event.history.deselect.all": "Deselect All", + "snapshot.event.history.fetch.snapshots": "Fetch snapshots", + "snapshot.event.history.pin.add": "Add a pin to protect snapshot from deletion", + "snapshot.event.history.select.all": "Select All", + "snapshot.event.history.selected.delete": "Delete Selected (", + "snapshot.event.restore": "復元", + "snapshot.event.restore.begin": "復元を開始", + "snapshot.event.snapshot.new": "新しいスナップショット", + "snapshot.event.snapshot.pending": "保留中", + "snapshot.event.snapshot.policy": "ポリシー", + "snapshot.event.synchronize": "同期", + "snapshot.feedback.directory.mount.restore": "You can mount/restore all the files and directories that you see below or restore files individually.", + "snapshot.feedback.history.display": "Displaying", + "snapshot.feedback.history.wipe.all": "Wipe all snapshots and the policy for this source.", + "snapshot.feedback.restore.continue.errors": "エラーが発生した場合に続行", + "snapshot.feedback.restore.continue.errors.help": "復元エラーが発生した場合、即座に失敗せずに続行を試みます。", + "snapshot.feedback.restore.destination": "宛先", + "snapshot.feedback.restore.destination.help": "適切な拡張子を指定することで、.zipまたは.tarファイルにも復元できます。", + "snapshot.feedback.restore.destination.path": "宛先パスを入力", + "snapshot.feedback.restore.directory.overwrite": "ディレクトリを上書き", + "snapshot.feedback.restore.disable.compression.zip": "ZIP圧縮を無効にする", + "snapshot.feedback.restore.disable.compression.zip.help": "ZIPファイルへの復元時に圧縮しない(高速)。", + "snapshot.feedback.restore.file.atomically": "ファイルをアトミックに書き込む", + "snapshot.feedback.restore.file.modification.time": "ファイルの変更時刻を復元", + "snapshot.feedback.restore.file.overwrite": "ファイルを上書き", + "snapshot.feedback.restore.file.ownership": "ファイル所有権を復元", + "snapshot.feedback.restore.file.permission": "ファイルのアクセス権を復元", + "snapshot.feedback.restore.file.sparse": "スパースファイルを書き込む", + "snapshot.feedback.restore.link.overwrite": "シンボリックリンクを上書き", + "snapshot.feedback.restore.shallow.depth": "指定の深さで浅い復元", + "snapshot.feedback.restore.shallow.file.size.minimal": "浅い復元の最小ファイルサイズ", + "snapshot.feedback.restore.skip": "以前に復元されたファイルとシンボリックリンクをスキップ", + "snapshot.feedback.restore.task.go": "Go To Restore Task", + "snapshot.feedback.snapshot.new": "New Snapshot", + "snapshot.feedback.snapshot.start": "前のスナップショットが完了した後にスナップショットが開始されます", + "snapshot.header.actions": "アクション", + "snapshot.header.snapshot.last": "最後のスナップショット", + "snapshot.header.snapshot.next": "次のスナップショット", + "snapshot.header.snapshot.owner": "オーナー", + "snapshot.header.snapshot.path": "パス", + "snapshot.header.snapshot.size": "サイズ", + "snapshot.header.status": "ステータス", + "snapshot.history.feedack.unfiltered.count_one": "Show {{count}} individual snapshot", + "snapshot.history.feedack.unfiltered.count_other": "Show {{count}} individual snapshots", + "snapshot.history.header.description": "Description", + "snapshot.history.header.directories": "Dirs", + "snapshot.history.header.files": "Files", + "snapshot.history.header.retention": "Retention", + "snapshot.history.header.root": "Root", + "snapshot.history.header.selected": "Selected", + "snapshot.history.header.size": "Size", + "snapshot.history.header.time.start": "Start time", + "tab.policies": "ポリシー", + "tab.preferences": "設定", + "tab.repository": "リポジトリ", + "tab.snapshots": "スナップショット", + "tab.tasks": "タスク", + "task.all": "すべて", + "task.event.stop": "停止", + "task.failed": "失敗", + "task.feedback.entries": "スナップショットを作成したり、復元したり、メンテナンスを実行したりすると、ここにタスクの一覧が表示されます。", + "task.feedback.search": "説明でログを検索", + "task.header.counter": "カウンター", + "task.header.description": "説明", + "task.header.kind": "種類", + "task.header.status": "ステータス", + "task.header.time.start": "開始時刻", + "task.header.value": "値", + "task.loading": "読み込み中...", + "task.logs": "ログ", + "task.running": "実行中", + "task.status.canceled": "タスクはキャンセルされました。", + "task.status.canceling": "キャンセル中", + "task.status.error": "タスクエラー", + "task.status.finished": "完了済み", + "task.status.running.for": "タスク実行中", + "task.status.started": "開始済み", + "task.status.succeed.after": "タスクは成功しました。", + "ui.feedback.byte-representation-description": "バイトの表現を選択", + "ui.feedback.byte-representation-help": "バイトの表現を指定します", + "ui.feedback.byte-representation-select": "バイトの表現を選択", + "ui.feedback.pagesize-description": "ページサイズ", + "ui.feedback.pagesize-help": "テーブルのページネーションサイズを指定します", + "ui.feedback.pagesize-hint": "ページサイズ", + "ui.feedback.theme-description": "テーマ", + "ui.feedback.theme-help": "現在のアクティブなテーマ", + "ui.value.appearance-large": "大", + "ui.value.appearance-medium": "中", + "ui.value.appearance-small": "小", + "ui.value.theme-dark": "ダーク", + "ui.value.theme-light": "ライト", + "ui.value.theme-ocean": "オーシャン", + "ui.value.theme-pastel": "パステル" } diff --git a/public/locales/pl/translation.json b/public/locales/pl/translation.json index 44ce0cf..593a972 100644 --- a/public/locales/pl/translation.json +++ b/public/locales/pl/translation.json @@ -1,114 +1,170 @@ { - "tab.preferences":"Ustawienia", - "tab.repository":"Repozytorium", - "tab.tasks":"Zadania", - "tab.policies":"Konfiguracje", - "tab.snapshots":"Kopie", - - "common.return": "Wróć", - - "task.all":"wszystkie", - "task.running":"w toku", - "task.failed":"nieudane", - "task.loading": "Wczytywanie...", - "task.time.start": "Początek", - "task.status": "Status", - "task.kind": "Rodzaj", - "task.description": "Opis", - - "task.status.succeed.after": "Zadanie zakończone po", - "task.status.canceled": "Zadanie anulowane po", - "task.status.canceling": "Anulowanie", - "task.status.error": "Błąd", - "task.status.running.for": "Zadanie w toku od", - - "task.status.started": "Rozpoczęte", - "task.status.finished": "Zakończone", - "task.logs": "Logi", - - "task.event.stop": "Zatrzymaj", - "task.header.counter": "Licznik", - "task.header.value": "Wartość", - - "snapshot.event.restore.task.go": "Przejdź do zadania przywracania", - "snapshot.event.restore": "Przywróć", - "snapshot.feedback.restore.destination": "Cel", - "snapshot.feedback.restore.destination.path": "Wprowadź ścieżkę docelową", - "snapshot.feedback.restore.destination.help": "Możesz również przywrócić do pliku .zip lub .tar, podając odpowiednie rozszerzenie.", - "snapshot.feedback.restore.skip": "Pomiń wcześniej przywrócone pliki i dowiązania symboliczne", - "snapshot.feedback.restore.continue.errors": "Kontynuuj w przypadku błędów", - "snapshot.feedback.restore.continue.errors.help": "Gdy wystąpi błąd przywracania, spróbuj kontynuować zamiast szybko zakończyć.", - "snapshot.feedback.restore.file.ownership": "Przywróć własność plików", - "snapshot.feedback.restore.file.permission": "Przywróć uprawnienia plików", - "snapshot.feedback.restore.file.modification.time": "Przywróć czas modyfikacji plików", - "snapshot.feedback.restore.file.overwrite": "Nadpisz pliki", - "snapshot.feedback.restore.directory.overwrite": "Nadpisz katalogi", - "snapshot.feedback.restore.link.overwrite": "Nadpisz dowiązania symboliczne", - "snapshot.feedback.restore.file.atomically": "Zapisuj pliki atomowo", - "snapshot.feedback.restore.file.sparse": "Zapisuj pliki rzadkie", - - "snapshot.feedback.restore.shallow.depth": "Płytkie przywracanie na określonej głębokości", - "snapshot.feedback.restore.shallow.file.size.minimal": "Minimalny rozmiar pliku dla płytkiego przywracania", - "snapshot.feedback.restore.disable.compression.zip": "Wyłącz kompresję ZIP", - "snapshot.feedback.restore.disable.compression.zip.help": "Nie kompresuj przy przywracaniu do pliku ZIP (szybciej).", - "snapshot.event.restore.begin": "Rozpocznij przywracanie", - - "repository.status.initializing": "Inicjalizacja w toku...", - "repository.status.connected": "Podłączone repoytorium", - "repository.event.connection.cancel":"Przerwij próbę połączenia", - "repository.event.connection.disconnect": "Odłącz od repozytorium", - "repository.event.description.update": "Zmień opis", - - "repository.feedback.description.required":"Opis jest wymagany", - "repository.feedback.read.only": "Repozytorium jest w trybie tylko do odczytu", - "repository.feedback.eco.disabled":"Brak", - "repository.feedback.compression.internal.supported": "yes", - "repository.feedback.compression.internal.not.supported": "no", - - "repository.attribute.server.url": "Adres URL serwera", - "repository.attribute.config.file": "Plik konfiguracyjny", - "repository.attribute.provider": "Provider", - "repository.attribute.algorithm.encryption": "Szyfrowanie", - "repository.attribute.algorithm.hash": "Funkcja haszująca", - "repository.attribute.algorithm.splitter": "Splitter", - "repository.attribute.algorithm.eco": "Korekcja błędów", - - "repository.attribute.connected.as": "Połączony jako", - "repository.attribute.compression.internal": "Wewnętrzna kompresja", - "repository.attribute.format": "Format repozytorium", - "repository.attribute.eco": "Narzut na korekcję błędów", - - "log.event.hide": "Schowaj log", - "log.event.show": "Pokaż log", - - "user.interface": "Interfejs użytkownika", - "user.interface.appearance":"Wielkość tekstu", - "user.interface.appearance.hint":"Rozmiar czcionki", - "user.interface.appearance.help": "Wybierz rodzaj czcionki", - - "user.interface.appearance.small":"mała", - "user.interface.appearance.medium":"średnia", - "user.interface.appearance.large":"duża", - - "user.interface.pagesize.description": "Rozmiar strony wyników", - "user.interface.pagesize.help": "Określa liczbę elementów na stronie wyników", - "user.interface.pagesize.hint": "Rozmiar strony", - - "user.interface.byte.representation.description":"Formatowanie rozmiarów plików", - "user.interface.byte.representation.select":"Wybierz sposób formatowania rozmiarów plików", - "user.interface.byte.representation.help":"Określa w jaki sposób będą wyświetlane rozmiary plików", - - "user.language":"Język", - - "lang.help": "Wybierz język interfejsu użytkownika", - "lang.select": "Wybierz język", - "lang.description": "Wybierz język", - - "theme.description": "Kolorystyka", - "theme.select": "Wybierz schemat kolorów", - "theme.help": "Aktywny schemat kolorów", - "theme.dark":"ciemna", - "theme.light": "jasna", - "theme.pastel": "pastelowa", - "theme.ocean":"oceaniczna" -} \ No newline at end of file + "common.cancel": "Anulować", + "common.delete": "Usuwać", + "common.delete.confirm": "Potwierdź usunięcie", + "common.loading": "Ładowanie ...", + "common.return": "Wróć", + "description.event.cancel": "Anulować", + "description.event.new": "Wprowadź nowy opis", + "description.event.remove": "Usuń opis", + "description.event.update": "Aktualizuj opis", + "description.feedback.description": "Opis migawki", + "feedback.ui.appearance": "Wielkość tekstu", + "feedback.ui.appearance-help": "Wybierz rodzaj czcionki", + "feedback.ui.appearance-hint": "Rozmiar czcionki", + "feedback.ui.theme-select": "Wybierz schemat kolorów", + "log.event.hide": "Schowaj log", + "log.event.show": "Pokaż log", + "pin.event.add": "Dodaj Pin", + "pin.event.cancel": "Anulować", + "pin.event.remove": "Usuń pinezkę", + "pin.event.snapshot.pin": "Przypnij migawkę", + "pin.event.update": "Zaktualizuj Pin", + "pin.feedback.name": "Nazwa pinu", + "pin.feedback.standard-text": "nie kasuj", + "policies.feedback.find.count_one": "Znaleziono {{count}} zasad spełniających kryteria", + "policies.feedback.find.count_other": "Znaleziono {{count}} zasad spełniających kryteria", + "policies.feedback.find.none": "Nie znaleziono zasad.", + "policies.feedback.find.none.create": "Nie znaleziono zasad dla katalogu {{path}}. \nSkonfiguruj nową politykę.", + "policies.feedback.loading": "Ładowanie ...", + "policies.feedback.path.absolute": "Zasady można definiować tylko dla ścieżek bezwzględnych.", + "policies.feedback.policy.find": "Wejdź do katalogu, aby znaleźć lub ustawić politykę", + "policies.header.actions": "działania", + "policies.header.defined": "Zdefiniowane", + "policies.header.host": "Gospodarz", + "policies.header.path": "Ścieżka", + "policies.header.username": "Nazwa użytkownika", + "policies.kind.all": "Wszystkie zasady", + "policies.kind.applicable": "Obowiązujące zasady", + "policies.kind.global": "Polityka globalna", + "policies.kind.host": "Zasady dotyczące poszczególnych hostów", + "policies.kind.local": "Polityka lokalna", + "policies.kind.user": "Zasady dotyczące poszczególnych użytkowników", + "repository.attribute.algorithm.eco": "Korekcja błędów", + "repository.attribute.algorithm.encryption": "Szyfrowanie", + "repository.attribute.algorithm.hash": "Funkcja haszująca", + "repository.attribute.algorithm.splitter": "Splitter", + "repository.attribute.compression.internal": "Wewnętrzna kompresja", + "repository.attribute.config.file": "Plik konfiguracyjny", + "repository.attribute.connected.as": "Połączony jako", + "repository.attribute.eco": "Narzut na korekcję błędów", + "repository.attribute.format": "Format repozytorium", + "repository.attribute.provider": "Provider", + "repository.attribute.server.url": "Adres URL serwera", + "repository.event.connection.cancel": "Przerwij próbę połączenia", + "repository.event.connection.disconnect": "Odłącz od repozytorium", + "repository.event.description.update": "Zmień opis", + "repository.feedback.compression.internal.not.supported": "no", + "repository.feedback.compression.internal.supported": "yes", + "repository.feedback.description.required": "Opis jest wymagany", + "repository.feedback.eco.disabled": "Brak", + "repository.feedback.read.only": "Repozytorium jest w trybie tylko do odczytu", + "repository.status.connected": "Podłączone repoytorium", + "repository.status.initializing": "Inicjalizacja w toku...", + "snapshot.event.create.estimate": "Oszacować", + "snapshot.event.create.now": "Zrzut ekranu teraz", + "snapshot.event.create.path": "Wprowadź ścieżkę do migawki", + "snapshot.event.create.path.resolve": "Należy określić katalog do wykonania migawki.", + "snapshot.event.delete.selected_one": "Czy chcesz usunąć wybraną migawkę {{count}}?", + "snapshot.event.delete.selected_other": "Czy chcesz usunąć wybrane migawki ({{count}})?", + "snapshot.event.directory.browse": "Przeglądać", + "snapshot.event.directory.browsing": "Przeglądanie katalogów nie jest obsługiwane w przeglądarce internetowej. \nUżyj interfejsu Kopia.", + "snapshot.event.directory.mount": "Zamontuj jako lokalny system plików", + "snapshot.event.directory.restore": "Przywróć pliki i katalogi", + "snapshot.event.directory.unmount": "Odmontuj", + "snapshot.event.history.delete.source": "Usuń źródło migawki", + "snapshot.event.history.description.update": "{{description}} - Kliknij, aby zaktualizować opis migawki.", + "snapshot.event.history.deselect.all": "Odznacz wszystkie", + "snapshot.event.history.fetch.snapshots": "Pobieraj migawki", + "snapshot.event.history.pin.add": "Dodaj pinezkę, aby zabezpieczyć migawkę przed usunięciem", + "snapshot.event.history.select.all": "Zaznacz wszystko", + "snapshot.event.history.selected.delete": "Usuń wybrane (", + "snapshot.event.restore": "Przywróć", + "snapshot.event.restore.begin": "Rozpocznij przywracanie", + "snapshot.event.snapshot.new": "Nowy zrzut ekranu", + "snapshot.event.snapshot.pending": "Aż do", + "snapshot.event.snapshot.policy": "Polityka", + "snapshot.event.synchronize": "Synchronizować", + "snapshot.feedback.directory.mount.restore": "Możesz zamontować/przywrócić wszystkie pliki i katalogi widoczne poniżej lub przywrócić pliki pojedynczo.", + "snapshot.feedback.history.display": "Wyświetlanie", + "snapshot.feedback.history.wipe.all": "Wyczyść wszystkie migawki i zasady dla tego źródła.", + "snapshot.feedback.restore.continue.errors": "Kontynuuj w przypadku błędów", + "snapshot.feedback.restore.continue.errors.help": "Gdy wystąpi błąd przywracania, spróbuj kontynuować zamiast szybko zakończyć.", + "snapshot.feedback.restore.destination": "Cel", + "snapshot.feedback.restore.destination.help": "Możesz również przywrócić do pliku .zip lub .tar, podając odpowiednie rozszerzenie.", + "snapshot.feedback.restore.destination.path": "Wprowadź ścieżkę docelową", + "snapshot.feedback.restore.directory.overwrite": "Nadpisz katalogi", + "snapshot.feedback.restore.disable.compression.zip": "Wyłącz kompresję ZIP", + "snapshot.feedback.restore.disable.compression.zip.help": "Nie kompresuj przy przywracaniu do pliku ZIP (szybciej).", + "snapshot.feedback.restore.file.atomically": "Zapisuj pliki atomowo", + "snapshot.feedback.restore.file.modification.time": "Przywróć czas modyfikacji plików", + "snapshot.feedback.restore.file.overwrite": "Nadpisz pliki", + "snapshot.feedback.restore.file.ownership": "Przywróć własność plików", + "snapshot.feedback.restore.file.permission": "Przywróć uprawnienia plików", + "snapshot.feedback.restore.file.sparse": "Zapisuj pliki rzadkie", + "snapshot.feedback.restore.link.overwrite": "Nadpisz dowiązania symboliczne", + "snapshot.feedback.restore.shallow.depth": "Płytkie przywracanie na określonej głębokości", + "snapshot.feedback.restore.shallow.file.size.minimal": "Minimalny rozmiar pliku dla płytkiego przywracania", + "snapshot.feedback.restore.skip": "Pomiń wcześniej przywrócone pliki i dowiązania symboliczne", + "snapshot.feedback.restore.task.go": "Przejdź do przywracania zadania", + "snapshot.feedback.snapshot.new": "Nowy zrzut ekranu", + "snapshot.feedback.snapshot.start": "Migawka rozpocznie się po zakończeniu poprzedniej migawki", + "snapshot.header.actions": "działania", + "snapshot.header.snapshot.last": "Ostatni zrzut ekranu", + "snapshot.header.snapshot.next": "Następna migawka", + "snapshot.header.snapshot.owner": "Właściciel", + "snapshot.header.snapshot.path": "Ścieżka", + "snapshot.header.snapshot.size": "Rozmiar", + "snapshot.header.status": "Status", + "snapshot.history.feedack.unfiltered.count_one": "Pokaż {{count}} indywidualną migawkę", + "snapshot.history.feedack.unfiltered.count_other": "Pokaż {{count}} pojedynczych migawek", + "snapshot.history.header.description": "Opis", + "snapshot.history.header.directories": "Reż", + "snapshot.history.header.files": "Akta", + "snapshot.history.header.retention": "Zatrzymanie", + "snapshot.history.header.root": "Źródło", + "snapshot.history.header.selected": "Wybrany", + "snapshot.history.header.size": "Rozmiar", + "snapshot.history.header.time.start": "Czas rozpoczęcia", + "tab.policies": "Konfiguracje", + "tab.preferences": "Ustawienia", + "tab.repository": "Repozytorium", + "tab.snapshots": "Kopie", + "tab.tasks": "Zadania", + "task.all": "wszystkie", + "task.event.stop": "Zatrzymaj", + "task.failed": "nieudane", + "task.feedback.entries": "Lista zadań pojawi się tutaj podczas tworzenia migawek, przywracania, przeprowadzania konserwacji itp.", + "task.feedback.search": "Szukaj logów według opisu", + "task.header.counter": "Licznik", + "task.header.description": "Opis", + "task.header.kind": "Uprzejmy", + "task.header.status": "Status", + "task.header.time.start": "Czas rozpoczęcia", + "task.header.value": "Wartość", + "task.loading": "Wczytywanie...", + "task.logs": "Logi", + "task.running": "w toku", + "task.status.canceled": "Zadanie anulowane po", + "task.status.canceling": "Anulowanie", + "task.status.error": "Błąd", + "task.status.finished": "Zakończone", + "task.status.running.for": "Zadanie w toku od", + "task.status.started": "Rozpoczęte", + "task.status.succeed.after": "Zadanie zakończone po", + "ui.feedback.byte-representation-description": "Formatowanie rozmiarów plików", + "ui.feedback.byte-representation-help": "Określa w jaki sposób będą wyświetlane rozmiary plików", + "ui.feedback.byte-representation-select": "Wybierz sposób formatowania rozmiarów plików", + "ui.feedback.pagesize-description": "Rozmiar strony wyników", + "ui.feedback.pagesize-help": "Określa liczbę elementów na stronie wyników", + "ui.feedback.pagesize-hint": "Rozmiar strony", + "ui.feedback.theme-description": "Kolorystyka", + "ui.feedback.theme-help": "Aktywny schemat kolorów", + "ui.value.appearance-large": "duża", + "ui.value.appearance-medium": "średnia", + "ui.value.appearance-small": "mała", + "ui.value.theme-dark": "ciemna", + "ui.value.theme-light": "jasna", + "ui.value.theme-ocean": "oceaniczna", + "ui.value.theme-pastel": "pastelowa" +} diff --git a/public/locales/ru/translation.json b/public/locales/ru/translation.json index 9747558..b147e61 100644 --- a/public/locales/ru/translation.json +++ b/public/locales/ru/translation.json @@ -1,132 +1,170 @@ { - "tab.preferences": "Настройки", - "tab.repository": "Репозиторий", - "tab.tasks": "Задачи", - "tab.policies": "Политики", - "tab.snapshots": "Снимки", - - "common.return": "Возврат", - - "task.all": "Все", - "task.running": "Выполняются", - "task.failed": "Не удалось", - "task.loading": "Загрузка...", - "task.header.time.start": "Время начала", - "task.header.status": "Статус", - "task.header.kind": "Тип", - "task.header.description": "Описание", - "task.feedback.search": "Поиск по описанию", - "task.feedback.entries": "Список задач появится здесь при создании снимков, восстановлении, выполнении обслуживания и т. д.", - - "task.status.succeed.after": "Задача успешно завершена после", - "task.status.canceled": "Задача отменена после", - "task.status.canceling": "Отмена", - "task.status.error": "Ошибка задачи", - "task.status.running.for": "Задача выполняется в течение", - - "task.status.started": "Начало", - "task.status.finished": "Завершено", - "task.logs": "Логи", - - "task.event.stop": "Остановить", - "task.header.counter": "Счетчик", - "task.header.value": "Значение", - - "snapshot.header.actions": "Действия", - "snapshot.header.status": "Статус", - "snapshot.header.snapshot.next": "Следующий снимок", - "snapshot.header.snapshot.last": "Последний снимок", - "snapshot.header.snapshot.size": "Размер", - "snapshot.header.snapshot.owner": "Владелец", - "snapshot.header.snapshot.path": "Путь", - - "snapshot.event.snapshot.now": "Сделать снимок сейчас", - "snapshot.event.snapshot.policy": "Политика", - "snapshot.event.snapshot.pending": "Ожидание", - "snapshot.feedback.snapshot.start": "Снимок начнется после завершения предыдущего снимка", - "snapshot.event.snapshot.new": "Новый снимок", - - "snapshot.event.synchronize": "Синхронизировать", - - "snapshot.event.restore.task.go": "Перейти к задаче восстановления", - "snapshot.event.restore": "Восстановить", - "snapshot.feedback.restore.destination": "Назначение", - "snapshot.feedback.restore.destination.path": "Введите путь назначения", - "snapshot.feedback.restore.destination.help": "Вы также можете восстановить в файл .zip или .tar, указав соответствующее расширение.", - "snapshot.feedback.restore.skip": "Пропустить ранее восстановленные файлы и символические ссылки", - "snapshot.feedback.restore.continue.errors": "Продолжить при возникновении ошибок", - "snapshot.feedback.restore.continue.errors.help": "При возникновении ошибки восстановления попробуйте продолжить, а не прекращать операцию.", - "snapshot.feedback.restore.file.ownership": "Восстановить владение файлами", - "snapshot.feedback.restore.file.permission": "Восстановить разрешения файлов", - "snapshot.feedback.restore.file.modification.time": "Восстановить время изменения файлов", - "snapshot.feedback.restore.file.overwrite": "Перезаписать файлы", - "snapshot.feedback.restore.directory.overwrite": "Перезаписать директории", - "snapshot.feedback.restore.link.overwrite": "Перезаписать символические ссылки", - "snapshot.feedback.restore.file.atomically": "Записывать файлы атомарно", - "snapshot.feedback.restore.file.sparse": "Записывать разреженные файлы", - - "snapshot.feedback.restore.shallow.depth": "Поверхностное восстановление на определенной глубине", - "snapshot.feedback.restore.shallow.file.size.minimal": "Минимальный размер файла для поверхностного восстановления", - "snapshot.feedback.restore.disable.compression.zip": "Отключить сжатие ZIP", - "snapshot.feedback.restore.disable.compression.zip.help": "Не сжимать при восстановлении в файл ZIP (быстрее).", - "snapshot.event.restore.begin": "Начать восстановление", - - "repository.status.initializing": "Инициализация репозитория...", - "repository.status.connected": "Подключено к репозиторию", - "repository.event.connection.cancel": "Отменить подключение", - "repository.event.connection.disconnect": "Отключиться от репозитория", - "repository.event.description.update": "Обновить описание", - - "repository.feedback.description.required": "Требуется описание репозитория", - "repository.feedback.read.only": "Репозиторий доступен только для чтения", - "repository.feedback.eco.disabled": "Отключено", - "repository.feedback.compression.internal.supported": "да", - "repository.feedback.compression.internal.not.supported": "нет", - - "repository.attribute.server.url": "URL сервера", - "repository.attribute.config.file": "Файл конфигурации", - "repository.attribute.provider": "Поставщик", - "repository.attribute.algorithm.encryption": "Алгоритм шифрования", - "repository.attribute.algorithm.hash": "Алгоритм хеширования", - "repository.attribute.algorithm.splitter": "Алгоритм разделения", - "repository.attribute.algorithm.eco": "Алгоритм коррекции ошибок", - - "repository.attribute.connected.as": "Подключено как", - "repository.attribute.compression.internal": "Внутреннее сжатие", - "repository.attribute.format": "Формат репозитория", - "repository.attribute.eco": "Коррекция ошибок", - - "log.event.hide": "Скрыть лог", - "log.event.show": "Показать лог", - - "user.interface": "Пользовательский интерфейс", - "user.interface.appearance":"Внешний вид", - "user.interface.appearance.hint":"Выберите размер шрифта", - "user.interface.appearance.help": "Определяет внешний вид пользовательского интерфейса", - - "user.interface.appearance.small":"маленький", - "user.interface.appearance.medium":"средний", - "user.interface.appearance.large":"большой", - - "user.interface.pagesize.description": "Размер страницы", - "user.interface.pagesize.help": "Определяет размер страницы в таблицах", - "user.interface.pagesize.hint": "Размер страницы", - - "user.interface.byte.representation.description":"Выберите представление байта", - "user.interface.byte.representation.select":"Выберите представление байта", - "user.interface.byte.representation.help":"Определяет представление байтов", - - "user.language":"Язык", - - "lang.help": "Устанавливает язык пользовательского интерфейса", - "lang.select": "Выберите язык", - "lang.description": "Выберите язык", - - "theme.description": "Тема", - "theme.select": "Выберите тему", - "theme.help": "Текущая активная тема", - "theme.dark":"темная", - "theme.light": "светлая", - "theme.pastel": "пастельная", - "theme.ocean":"морская" + "common.cancel": "Отмена", + "common.delete": "Удалить", + "common.delete.confirm": "Подтвердите удаление", + "common.loading": "Загрузка...", + "common.return": "Возврат", + "description.event.cancel": "Отмена", + "description.event.new": "Введите новое описание", + "description.event.remove": "Удалить описание", + "description.event.update": "Описание обновления", + "description.feedback.description": "Описание снимка", + "feedback.ui.appearance": "Внешний вид", + "feedback.ui.appearance-help": "Определяет внешний вид пользовательского интерфейса", + "feedback.ui.appearance-hint": "Выберите размер шрифта", + "feedback.ui.theme-select": "Выберите тему", + "log.event.hide": "Скрыть лог", + "log.event.show": "Показать лог", + "pin.event.add": "Добавить пин", + "pin.event.cancel": "Отмена", + "pin.event.remove": "Удалить булавку", + "pin.event.snapshot.pin": "Снимок закрепления", + "pin.event.update": "Обновить пин-код", + "pin.feedback.name": "Название контакта", + "pin.feedback.standard-text": "не удалять", + "policies.feedback.find.count_one": "Найдено {{count}} политики, соответствующей критериям.", + "policies.feedback.find.count_other": "Найдено {{count}} политик, соответствующих критериям.", + "policies.feedback.find.none": "Политики не найдены.", + "policies.feedback.find.none.create": "Политика для каталога {{path}} не найдена. \nПожалуйста, настройте новую политику.", + "policies.feedback.loading": "Загрузка...", + "policies.feedback.path.absolute": "Политики могут быть определены только для абсолютных путей.", + "policies.feedback.policy.find": "Введите каталог, чтобы найти или установить политику", + "policies.header.actions": "Действия", + "policies.header.defined": "Определенный", + "policies.header.host": "Хозяин", + "policies.header.path": "Путь", + "policies.header.username": "Имя пользователя", + "policies.kind.all": "Все политики", + "policies.kind.applicable": "Применимые политики", + "policies.kind.global": "Глобальная политика", + "policies.kind.host": "Политики для каждого хоста", + "policies.kind.local": "Местная политика", + "policies.kind.user": "Политики для каждого пользователя", + "repository.attribute.algorithm.eco": "Алгоритм коррекции ошибок", + "repository.attribute.algorithm.encryption": "Алгоритм шифрования", + "repository.attribute.algorithm.hash": "Алгоритм хеширования", + "repository.attribute.algorithm.splitter": "Алгоритм разделения", + "repository.attribute.compression.internal": "Внутреннее сжатие", + "repository.attribute.config.file": "Файл конфигурации", + "repository.attribute.connected.as": "Подключено как", + "repository.attribute.eco": "Коррекция ошибок", + "repository.attribute.format": "Формат репозитория", + "repository.attribute.provider": "Поставщик", + "repository.attribute.server.url": "URL сервера", + "repository.event.connection.cancel": "Отменить подключение", + "repository.event.connection.disconnect": "Отключиться от репозитория", + "repository.event.description.update": "Обновить описание", + "repository.feedback.compression.internal.not.supported": "нет", + "repository.feedback.compression.internal.supported": "да", + "repository.feedback.description.required": "Требуется описание репозитория", + "repository.feedback.eco.disabled": "Отключено", + "repository.feedback.read.only": "Репозиторий доступен только для чтения", + "repository.status.connected": "Подключено к репозиторию", + "repository.status.initializing": "Инициализация репозитория...", + "snapshot.event.create.estimate": "Оценивать", + "snapshot.event.create.now": "Снимок сейчас", + "snapshot.event.create.path": "Введите путь к снимку", + "snapshot.event.create.path.resolve": "Необходимо указать каталог для снимка.", + "snapshot.event.delete.selected_one": "Вы хотите удалить выбранный снимок {{count}}?", + "snapshot.event.delete.selected_other": "Вы хотите удалить выбранные снимки ({{count}})?", + "snapshot.event.directory.browse": "Просматривать", + "snapshot.event.directory.browsing": "Просмотр каталогов не поддерживается в веб-браузере. \nИспользуйте интерфейс Копиа.", + "snapshot.event.directory.mount": "Монтировать как локальную файловую систему", + "snapshot.event.directory.restore": "Восстановление файлов и каталогов", + "snapshot.event.directory.unmount": "Размонтировать", + "snapshot.event.history.delete.source": "Удалить источник снимка", + "snapshot.event.history.description.update": "{{description}} – нажмите, чтобы обновить описание снимка.", + "snapshot.event.history.deselect.all": "Убрать выделение со всего", + "snapshot.event.history.fetch.snapshots": "Получить снимки", + "snapshot.event.history.pin.add": "Добавьте булавку, чтобы защитить снимок от удаления", + "snapshot.event.history.select.all": "Выбрать все", + "snapshot.event.history.selected.delete": "Удалить выбранное (", + "snapshot.event.restore": "Восстановить", + "snapshot.event.restore.begin": "Начать восстановление", + "snapshot.event.snapshot.new": "Новый снимок", + "snapshot.event.snapshot.pending": "Ожидание", + "snapshot.event.snapshot.policy": "Политика", + "snapshot.event.synchronize": "Синхронизировать", + "snapshot.feedback.directory.mount.restore": "Вы можете смонтировать/восстановить все файлы и каталоги, которые вы видите ниже, или восстановить файлы по отдельности.", + "snapshot.feedback.history.display": "Отображение", + "snapshot.feedback.history.wipe.all": "Сотрите все снимки и политику для этого источника.", + "snapshot.feedback.restore.continue.errors": "Продолжить при возникновении ошибок", + "snapshot.feedback.restore.continue.errors.help": "При возникновении ошибки восстановления попробуйте продолжить, а не прекращать операцию.", + "snapshot.feedback.restore.destination": "Назначение", + "snapshot.feedback.restore.destination.help": "Вы также можете восстановить в файл .zip или .tar, указав соответствующее расширение.", + "snapshot.feedback.restore.destination.path": "Введите путь назначения", + "snapshot.feedback.restore.directory.overwrite": "Перезаписать директории", + "snapshot.feedback.restore.disable.compression.zip": "Отключить сжатие ZIP", + "snapshot.feedback.restore.disable.compression.zip.help": "Не сжимать при восстановлении в файл ZIP (быстрее).", + "snapshot.feedback.restore.file.atomically": "Записывать файлы атомарно", + "snapshot.feedback.restore.file.modification.time": "Восстановить время изменения файлов", + "snapshot.feedback.restore.file.overwrite": "Перезаписать файлы", + "snapshot.feedback.restore.file.ownership": "Восстановить владение файлами", + "snapshot.feedback.restore.file.permission": "Восстановить разрешения файлов", + "snapshot.feedback.restore.file.sparse": "Записывать разреженные файлы", + "snapshot.feedback.restore.link.overwrite": "Перезаписать символические ссылки", + "snapshot.feedback.restore.shallow.depth": "Поверхностное восстановление на определенной глубине", + "snapshot.feedback.restore.shallow.file.size.minimal": "Минимальный размер файла для поверхностного восстановления", + "snapshot.feedback.restore.skip": "Пропустить ранее восстановленные файлы и символические ссылки", + "snapshot.feedback.restore.task.go": "Перейти к задаче восстановления", + "snapshot.feedback.snapshot.new": "Новый снимок", + "snapshot.feedback.snapshot.start": "Снимок начнется после завершения предыдущего снимка", + "snapshot.header.actions": "Действия", + "snapshot.header.snapshot.last": "Последний снимок", + "snapshot.header.snapshot.next": "Следующий снимок", + "snapshot.header.snapshot.owner": "Владелец", + "snapshot.header.snapshot.path": "Путь", + "snapshot.header.snapshot.size": "Размер", + "snapshot.header.status": "Статус", + "snapshot.history.feedack.unfiltered.count_one": "Показать {{count}} отдельный снимок", + "snapshot.history.feedack.unfiltered.count_other": "Показать {{count}} отдельных снимков", + "snapshot.history.header.description": "Описание", + "snapshot.history.header.directories": "Дирс", + "snapshot.history.header.files": "Файлы", + "snapshot.history.header.retention": "Удержание", + "snapshot.history.header.root": "Корень", + "snapshot.history.header.selected": "Выбрано", + "snapshot.history.header.size": "Размер", + "snapshot.history.header.time.start": "Время начала", + "tab.policies": "Политики", + "tab.preferences": "Настройки", + "tab.repository": "Репозиторий", + "tab.snapshots": "Снимки", + "tab.tasks": "Задачи", + "task.all": "Все", + "task.event.stop": "Остановить", + "task.failed": "Не удалось", + "task.feedback.entries": "Список задач появится здесь при создании снимков, восстановлении, выполнении обслуживания и т. д.", + "task.feedback.search": "Поиск по описанию", + "task.header.counter": "Счетчик", + "task.header.description": "Описание", + "task.header.kind": "Тип", + "task.header.status": "Статус", + "task.header.time.start": "Время начала", + "task.header.value": "Значение", + "task.loading": "Загрузка...", + "task.logs": "Логи", + "task.running": "Выполняются", + "task.status.canceled": "Задача отменена после", + "task.status.canceling": "Отмена", + "task.status.error": "Ошибка задачи", + "task.status.finished": "Завершено", + "task.status.running.for": "Задача выполняется в течение", + "task.status.started": "Начало", + "task.status.succeed.after": "Задача успешно завершена после", + "ui.feedback.byte-representation-description": "Выберите представление байта", + "ui.feedback.byte-representation-help": "Определяет представление байтов", + "ui.feedback.byte-representation-select": "Выберите представление байта", + "ui.feedback.pagesize-description": "Размер страницы", + "ui.feedback.pagesize-help": "Определяет размер страницы в таблицах", + "ui.feedback.pagesize-hint": "Размер страницы", + "ui.feedback.theme-description": "Тема", + "ui.feedback.theme-help": "Текущая активная тема", + "ui.value.appearance-large": "большой", + "ui.value.appearance-medium": "средний", + "ui.value.appearance-small": "маленький", + "ui.value.theme-dark": "темная", + "ui.value.theme-light": "светлая", + "ui.value.theme-ocean": "морская", + "ui.value.theme-pastel": "пастельная" } diff --git a/src/pages/Policies.jsx b/src/pages/Policies.jsx index 56676d5..381d833 100644 --- a/src/pages/Policies.jsx +++ b/src/pages/Policies.jsx @@ -13,6 +13,7 @@ import { handleChange } from '../forms'; import { OptionalDirectory } from '../forms/OptionalDirectory' import KopiaTable from '../utils/KopiaTable'; import { CLIEquivalent, compare, isAbsolutePath, ownerName, policyEditorURL, redirect } from '../utils/uiutil'; +import i18n from '../utils/i18n' const applicablePolicies = "Applicable Policies" const localPolicies = "Local Path Policies" @@ -104,7 +105,7 @@ export class Policies extends Component { } if (!isAbsolutePath(this.state.policyPath)) { - alert("Policies can only be defined for absolute paths."); + alert(i18n.t('policies.feedback.path.absolute')); return; } @@ -174,7 +175,7 @@ export class Policies extends Component { return

{error.message}

; } if (isLoading) { - return

Loading ...

; + return

{i18n.t('policies.feedback.loading')}

; } let uniqueOwners = sources.reduce((a, d) => { @@ -230,22 +231,22 @@ export class Policies extends Component { const columns = [{ - Header: 'Username', + Header: i18n.t('policies.header.username'), width: 100, accessor: x => x.target.userName || "*", }, { - Header: 'Host', + Header: i18n.t('policies.header.host'), width: 100, accessor: x => x.target.host || "*", }, { - Header: 'Path', + Header: i18n.t('policies.header.path'), accessor: x => x.target.path || "*", }, { - Header: 'Defined', + Header: i18n.t('policies.header.defined'), accessor: x => this.policySummary(x), }, { id: 'edit', - Header: 'Actions', + Header: i18n.t('policies.header.actions'), width: 50, Cell: x => }] @@ -257,17 +258,17 @@ export class Policies extends Component { -  {this.state.selectedOwner} + {' '}{this.state.selectedOwner} - this.selectOwner(applicablePolicies)}>{applicablePolicies} - this.selectOwner(localPolicies)}>{localPolicies} - this.selectOwner(allPolicies)}>{allPolicies} + this.selectOwner(applicablePolicies)}>{i18n.t('policies.kind.applicable')} + this.selectOwner(localPolicies)}>{i18n.t('policies.kind.local')} + this.selectOwner(allPolicies)}>{i18n.t('policies.kind.all')} - this.selectOwner(globalPolicy)}>{globalPolicy} - this.selectOwner(perUserPolicies)}>{perUserPolicies} - this.selectOwner(perHostPolicies)}>{perHostPolicies} + this.selectOwner(globalPolicy)}>{i18n.t('policies.kind.global')} + this.selectOwner(perUserPolicies)}>{i18n.t('policies.kind.user')} + this.selectOwner(perHostPolicies)}>{i18n.t('policies.kind.host')} {uniqueOwners.map(v => this.selectOwner(v)}>{v})} @@ -275,7 +276,7 @@ export class Policies extends Component { {(this.state.selectedOwner === localPolicies || this.state.selectedOwner === this.state.localSourceName || this.state.selectedOwner === applicablePolicies) ? <> - {OptionalDirectory(this, null, "policyPath", { autoFocus: true, placeholder: "enter directory to find or set policy" })} + {OptionalDirectory(this, null, "policyPath", { autoFocus: true, placeholder: i18n.t('policies.feedback.policy.find') })} @@ -286,11 +287,11 @@ export class Policies extends Component { } {policies.length > 0 ?
-

Found {policies.length} policies matching criteria.

+

{i18n.t('policies.feedback.find.count', { count: policies.length })}

: ((this.state.selectedOwner === localPolicies && this.state.policyPath) ?

- No policy found for directory {this.state.policyPath}. Click Set Policy to define it. -

:

No policies found.

)} + {i18n.t('policies.feedback.find.none.create', { path: this.state.policyPath })} +

:

{i18n.t('policies.feedback.find.none')}

)} ; } diff --git a/src/pages/Preferences.jsx b/src/pages/Preferences.jsx index e1b0ea4..f7bc043 100644 --- a/src/pages/Preferences.jsx +++ b/src/pages/Preferences.jsx @@ -11,40 +11,40 @@ export function Preferences() { return <>
- - setTheme(e.target.value)}> + + + + - {t('theme.help')} + {t('ui.feedback.theme-help')}

- - setByteStringBase(e.target.value)}> - {t('user.interface.byte.representation.help')} + {t('ui.feedback.byte-representation-help')}

- - setFontSize(e.target.value)}> + + + - {t('user.interface.appearance.help')} + {t('feedback.ui.appearance-help')}

- + - {t('user.interface.pagesize.help')} + type='text' placeholder={t('ui.feedback.pagesize-hint')} value={pageSize} disabled={true} /> + {t('ui.feedback.pagesize-help')}
diff --git a/src/pages/Repository.jsx b/src/pages/Repository.jsx index d3d646a..e056ee2 100644 --- a/src/pages/Repository.jsx +++ b/src/pages/Repository.jsx @@ -128,7 +128,7 @@ export class Repository extends Component { } if (this.state.status.initTaskID) { - return <>

 {i18n.t('repository.status.initializing')}

+ return <>

{' '}{i18n.t('repository.status.initializing')}

{this.state.showLog ? <> diff --git a/src/pages/SnapshotCreate.jsx b/src/pages/SnapshotCreate.jsx index 0bc663a..e2fa6f3 100644 --- a/src/pages/SnapshotCreate.jsx +++ b/src/pages/SnapshotCreate.jsx @@ -9,6 +9,7 @@ import { PolicyEditor } from '../components/policy-editor/PolicyEditor'; import { SnapshotEstimation } from '../components/SnapshotEstimation'; import { RequiredDirectory } from '../forms/RequiredDirectory'; import { CLIEquivalent, errorAlert, GoBackButton, redirect } from '../utils/uiutil'; +import i18n from '../utils/i18n' export class SnapshotCreate extends Component { constructor() { @@ -117,7 +118,7 @@ export class SnapshotCreate extends Component { e.preventDefault(); if (!this.state.resolvedSource.path) { - alert('Must specify directory to snapshot.'); + alert(i18n.t('snapshot.event.create.path.resolve')); return } @@ -152,27 +153,27 @@ export class SnapshotCreate extends Component {
-

New Snapshot

+

{i18n.t('snapshot.feedback.snapshot.new')}


- {RequiredDirectory(this, null, "path", { autoFocus: true, placeholder: "enter path to snapshot" })} + {RequiredDirectory(this, null, "path", { autoFocus: true, placeholder: i18n.t('snapshot.event.create.path')})} + onClick={this.estimate}>{i18n.t('snapshot.event.create.estimate')} + onClick={this.snapshotNow}>{i18n.t('snapshot.event.create.now')} {this.state.estimateTaskID && this.state.estimateTaskVisible && diff --git a/src/pages/SnapshotDirectory.jsx b/src/pages/SnapshotDirectory.jsx index bbadb8d..7f051a3 100644 --- a/src/pages/SnapshotDirectory.jsx +++ b/src/pages/SnapshotDirectory.jsx @@ -10,6 +10,7 @@ import { DirectoryItems } from "../components/DirectoryItems"; import { CLIEquivalent } from '../utils/uiutil'; import { DirectoryBreadcrumbs } from "../components/DirectoryBreadcrumbs"; import { UIPreferencesContext } from '../contexts/UIPreferencesContext'; +import i18n from '../utils/i18n'; export class SnapshotDirectory extends Component { constructor() { @@ -91,7 +92,7 @@ export class SnapshotDirectory extends Component { browseMounted() { if (!window.kopiaUI) { - alert('Directory browsing is not supported in a web browser. Use Kopia UI.'); + alert(i18n.t('snapshot.event.directory.browsing')); return; } @@ -124,24 +125,22 @@ export class SnapshotDirectory extends Component { {this.state.mountInfo.path ? <> - + {window.kopiaUI && <> - + } : <> - + }   + href={"/snapshots/dir/" + this.props.match.params.oid + "/restore"}>{i18n.t('snapshot.event.directory.restore')}   - You can mount/restore all the files & directories that you see below or restore files individually. - + {i18n.t('snapshot.feedback.directory.mount.restore')}   diff --git a/src/pages/SnapshotHistory.jsx b/src/pages/SnapshotHistory.jsx index cf6324f..e695b26 100644 --- a/src/pages/SnapshotHistory.jsx +++ b/src/pages/SnapshotHistory.jsx @@ -14,6 +14,7 @@ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import Modal from 'react-bootstrap/Modal'; import { faFileAlt } from '@fortawesome/free-regular-svg-icons'; import { UIPreferencesContext } from '../contexts/UIPreferencesContext'; +import i18n from '../utils/i18n' function pillVariant(tag) { if (tag.startsWith("latest-")) { @@ -249,7 +250,7 @@ export class SnapshotHistory extends Component { originalSnapshotDescription: x.description, }) }} - title={x.description + " - Click to update snapshot description."} + title={i18n.t('snapshot.event.history.description.update', {description: x.description})} className={x.description ? "snapshot-description-set" : "snapshot-description"}>; } @@ -260,10 +261,10 @@ export class SnapshotHistory extends Component { this.setState({ editPinFor: [x.id], originalPinName: "", - newPinName: "do-not-delete", + newPinName: i18n.t('pin.feedback.standard-text'), }); } - } title="Add a pin to protect snapshot from deletion">; + } title={i18n.t('snapshot.event.history.pin.add')}>; } editPin(snap, pin) { @@ -331,13 +332,13 @@ export class SnapshotHistory extends Component { const columns = [{ id: 'selected', - Header: 'Selected', + Header: i18n.t('snapshot.history.header.selected'), width: 20, align: "center", Cell: x =>
this.toggleSelected(x.row.original)} />
, }, { id: 'startTime', - Header: 'Start time', + Header: i18n.t('snapshot.history.header.time.start'), width: 200, accessor: x => { let timestamp = rfc3339TimestampForDisplay(x.startTime); @@ -345,38 +346,38 @@ export class SnapshotHistory extends Component { }, }, { id: 'description', - Header: '', + Header: i18n.t('snapshot.history.header.description'), width: 20, Cell: x => this.descriptionFor(x.row.original), }, { id: 'rootID', - Header: 'Root', + Header: i18n.t('snapshot.history.header.root'), width: "", accessor: x => x.rootID, Cell: x => <>{x.cell.value} {x.row.original.description &&
{x.row.original.description}
}, }, { - Header: 'Retention', + Header: i18n.t('snapshot.history.header.retention'), accessor: 'retention', width: "", Cell: x => {x.cell.value.map(l => {l}{' '})} {x.row.original.pins.map(l => - this.editPin(x.row.original, l)}> {l}{' '} + this.editPin(x.row.original, l)}>{l}{' '} )} {this.newPinFor(x.row.original)} }, { - Header: 'Size', + Header: i18n.t('snapshot.history.header.size'), accessor: 'summary.size', width: 100, Cell: x => sizeWithFailures(x.cell.value, x.row.original.summary, bytesStringBase2), }, { - Header: 'Files', + Header: i18n.t('snapshot.history.header.files'), accessor: 'summary.files', width: 100, }, { - Header: 'Dirs', + Header: i18n.t('snapshot.history.header.directories'), accessor: 'summary.dirs', width: 100, }] @@ -387,30 +388,30 @@ export class SnapshotHistory extends Component { -   + {' '} {snapshots.length > 0 && (selectedElements.length < snapshots.length ? - : - )} -   - {selectedElements.length > 0 && <>  - + : + )} + {' '} + {selectedElements.length > 0 && <>{' '} + } - {snapshots.length === 0 && <>  - + {snapshots.length === 0 && <>{' '} + }
- Displaying {snapshots.length !== unfilteredCount ? snapshots.length + ' out of ' + unfilteredCount : snapshots.length} snapshots of {this.state.userName}@{this.state.host}:{this.state.path} + {i18n.t('snapshot.feedback.history.display')} {snapshots.length !== unfilteredCount ? snapshots.length + ' out of ' + unfilteredCount : snapshots.length} snapshots of{' '}{this.state.userName}@{this.state.host}:{this.state.path}
@@ -421,7 +422,7 @@ export class SnapshotHistory extends Component { @@ -437,17 +438,15 @@ export class SnapshotHistory extends Component { - Confirm Delete + {i18n.t('common.delete.confirm')} <> - {selectedElements.length > 1 ? -

Do you want to delete the selected {selectedElements.length} snapshots?

: -

Do you want to delete the selected snapshot?

} +

{i18n.t('snapshot.event.delete.selected',{count: selectedElements.length})}

{selectedElements.length === snapshots.length && this.setState({ alsoDeleteSource: !this.state.alsoDeleteSource })} @@ -457,19 +456,19 @@ export class SnapshotHistory extends Component {
- - + +
- Snapshot Description + {i18n.t('description.feedback.description')} - Enter new description + {i18n.t('description.event.new')} {this.state.savingSnapshot && } - - {this.state.originalSnapshotDescription && } - + + {this.state.originalSnapshotDescription && } + - Pin Snapshot + {i18n.t('pin.event.snapshot.pin')} - Name of the pin + {i18n.t('pin.feedback.name')} {this.state.savingSnapshot && } - - {this.state.originalPinName && } - + + {this.state.originalPinName && } + ; diff --git a/src/pages/SnapshotRestore.jsx b/src/pages/SnapshotRestore.jsx index 72da735..1b9371b 100644 --- a/src/pages/SnapshotRestore.jsx +++ b/src/pages/SnapshotRestore.jsx @@ -92,7 +92,7 @@ export class SnapshotRestore extends Component { if (this.state.restoreTask) { return

- Go To Restore Task. + {i18n.t('snapshot.feedback.restore.task.go')}.

; } diff --git a/src/pages/Snapshots.jsx b/src/pages/Snapshots.jsx index b5ffdad..4aec6be 100644 --- a/src/pages/Snapshots.jsx +++ b/src/pages/Snapshots.jsx @@ -14,7 +14,7 @@ import { handleChange } from '../forms'; import KopiaTable from '../utils/KopiaTable'; import { CLIEquivalent, compare, errorAlert, ownerName, policyEditorURL, redirect, sizeDisplayName, sizeWithFailures, sourceQueryStringParams } from '../utils/uiutil'; import { UIPreferencesContext } from '../contexts/UIPreferencesContext'; -import i18n from '../utils/i18n' +import i18n from '../utils/i18n'; const localSnapshots = "Local Snapshots" const allSnapshots = "All Snapshots" @@ -135,14 +135,14 @@ export class Snapshots extends Component { ; case "PENDING": return <> -  {i18n.t('snapshot.event.snapshot.pending')} + {' '}{i18n.t('snapshot.event.snapshot.pending')} ; case "UPLOADING": @@ -211,6 +211,11 @@ export class Snapshots extends Component {

; } + navigateTo(path) { + this.props.history.push(path); + } + + render() { let { sources, isLoading, error } = this.state; const { bytesStringBase2 } = this.context @@ -297,7 +302,7 @@ export class Snapshots extends Component { {this.state.multiUser && <> -  {this.state.selectedOwner} + {' '}{this.state.selectedOwner} @@ -309,7 +314,7 @@ export class Snapshots extends Component { } - + diff --git a/src/pages/Task.jsx b/src/pages/Task.jsx index 26013be..1a109a5 100644 --- a/src/pages/Task.jsx +++ b/src/pages/Task.jsx @@ -165,7 +165,7 @@ export class Task extends Component { } if (isLoading) { - return

Loading ...

; + return

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

; } return
diff --git a/src/tests/Language.test.jsx b/src/tests/Language.test.jsx new file mode 100644 index 0000000..2e9f29e --- /dev/null +++ b/src/tests/Language.test.jsx @@ -0,0 +1,28 @@ +import { render, screen } from '@testing-library/react' +import { expect, test } from '@jest/globals'; + +jest.mock('react-i18next', () => ({ + // this mock makes sure any components using the translate hook can use it without a warning being shown + useTranslation: () => { + return { + t: (str) => str, + i18n: { + changeLanguage: () => new Promise(() => {}), + }, + }; + }, + initReactI18next: { + type: '3rdParty', + init: () => {}, + } + })); + +/** + * + */ +describe('Check tranlations', () => { + test('Translations should not have unused keys', () => { + }) +}) + + diff --git a/src/tests/__snapshots__/Preferences.test.js.snap b/src/tests/__snapshots__/Preferences.test.js.snap index b6f90f0..342c90c 100644 --- a/src/tests/__snapshots__/Preferences.test.js.snap +++ b/src/tests/__snapshots__/Preferences.test.js.snap @@ -58,12 +58,12 @@ Object { class="label-description" for="bytesBaseInput" > - user.interface.byte.representation.description + ui.feedback.byte-representation-description - user.interface.appearance.help + ui.feedback.appearance-help
@@ -129,22 +129,21 @@ Object { - user.interface.pagesize.help + ui.feedback.pagesize-help
@@ -204,12 +203,12 @@ Object { class="label-description" for="bytesBaseInput" > - user.interface.byte.representation.description + ui.feedback.byte-representation-description - user.interface.appearance.help + ui.feedback.appearance-help
@@ -275,22 +274,21 @@ Object { - user.interface.pagesize.help + ui.feedback.pagesize-help @@ -407,12 +405,12 @@ Object { class="label-description" for="bytesBaseInput" > - user.interface.byte.representation.description + ui.feedback.byte-representation-description - user.interface.appearance.help + ui.feedback.appearance-help
@@ -478,22 +476,21 @@ Object { - user.interface.pagesize.help + ui.feedback.pagesize-help @@ -553,12 +550,12 @@ Object { class="label-description" for="bytesBaseInput" > - user.interface.byte.representation.description + ui.feedback.byte-representation-description - user.interface.appearance.help + ui.feedback.appearance-help
@@ -624,22 +621,21 @@ Object { - user.interface.pagesize.help + ui.feedback.pagesize-help @@ -756,12 +752,12 @@ Object { class="label-description" for="bytesBaseInput" > - user.interface.byte.representation.description + ui.feedback.byte-representation-description - user.interface.appearance.help + ui.feedback.appearance-help
@@ -827,22 +823,21 @@ Object { - user.interface.pagesize.help + ui.feedback.pagesize-help @@ -902,12 +897,12 @@ Object { class="label-description" for="bytesBaseInput" > - user.interface.byte.representation.description + ui.feedback.byte-representation-description - user.interface.appearance.help + ui.feedback.appearance-help
@@ -973,22 +968,21 @@ Object { - user.interface.pagesize.help + ui.feedback.pagesize-help @@ -1105,12 +1099,12 @@ Object { class="label-description" for="bytesBaseInput" > - user.interface.byte.representation.description + ui.feedback.byte-representation-description - user.interface.appearance.help + ui.feedback.appearance-help
@@ -1176,22 +1170,21 @@ Object { - user.interface.pagesize.help + ui.feedback.pagesize-help @@ -1251,12 +1244,12 @@ Object { class="label-description" for="bytesBaseInput" > - user.interface.byte.representation.description + ui.feedback.byte-representation-description - user.interface.appearance.help + ui.feedback.appearance-help
@@ -1322,22 +1315,21 @@ Object { - user.interface.pagesize.help + ui.feedback.pagesize-help diff --git a/src/utils/i18n.js b/src/utils/i18n.js index 6c09172..a0002f0 100644 --- a/src/utils/i18n.js +++ b/src/utils/i18n.js @@ -1,11 +1,11 @@ import i18n from "i18next"; import { initReactI18next } from "react-i18next"; -import LanguageDetector from 'i18next-browser-languagedetector'; +import detector from 'i18next-browser-languagedetector'; import backend from "i18next-http-backend" i18n .use(backend) - .use(LanguageDetector) + .use(detector) .use(initReactI18next) .init({ lng: "en", @@ -18,7 +18,7 @@ i18n react: { useSuspense: true - } + }, }); export default i18n; \ No newline at end of file