// Copyright (C) 2024, The Duplicati Team // https://duplicati.com, hello@duplicati.com // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. using Duplicati.Library.Localization.Short; namespace Duplicati.Library.Snapshots.Strings { internal static class LinuxSnapshot { public static string ExternalProgramLaunchError(string message, string executable, string arguments) { return LC.L(@"The external command failed to start. Error message: {0} Command: {1} {2}", message, executable, arguments); } public static string ExternalProgramTimeoutError(string executable, string arguments) { return LC.L(@"The external command failed to complete within the set time limit: {0} {1}", executable, arguments); } public static string InvalidFilePathError(string localpath, string snapshotpath) { return LC.L(@"Unable to match local path {0} with any snapshot path: {1}", localpath, snapshotpath); } public static string MountFolderMissingError(string path, string message) { return LC.L(@"Script returned successfully, but the temporary folder {0} does not exist: {1}", path, message); } public static string MountFolderNotRemovedError(string path, string message) { return LC.L(@"Script returned successfully, but the temporary folder {0} still exist: {1}", path, message); } public static string ScriptExitCodeError(int actualcode, int expectedcode, string message) { return LC.L(@"The script returned exit code {0}, but {1} was expected: {2}", actualcode, expectedcode, message); } public static string ScriptOutputError(string parameter, string message) { return LC.L(@"Script returned successfully, but the output was missing the {0} parameter: {1}", parameter, message); } } internal static class USNHelper { public static string PathResolveError { get { return LC.L(@"Unable to determine full file path for USN entry"); } } public static string JournalEntriesDeleted { get { return LC.L(@"USN journal entries were purged since last scan"); } } public static string EmptyResponseError { get { return LC.L(@"Unexpected empty response while enumerating"); } } public static string LinuxNotSupportedError { get { return LC.L(@"USN is not supported on Linux"); } } public static string SafeGuardError { get { return LC.L(@"The number of files returned by USN was zero. This is likely an error. To remedy this, USN has been disabled."); } } public static string UnexpectedPathFormat { get { return LC.L(@"Unexpected path format encountered"); } } public static string UnsupportedUsnVersion { get { return LC.L(@"Unsupported USN journal version."); } } public static string PreviousBackupNoInfo { get { return LC.L(@"Previous backup did not record USN journal info"); } } public static string JournalIdChanged { get { return LC.L(@"USN journal ID changed"); } } public static string NextUsnZero { get { return LC.L(@"Next USN is zero"); } } public static string ConfigHashChanged { get { return LC.L(@"Backup configuration changed"); } } } internal static class WinNativeMethod { public static string MissingBackupPrivilegeError { get { return LC.L(@"Calling process does not have the backup privilege"); } } } }