diff --git a/Aaru.CommonTypes b/Aaru.CommonTypes
index 98ad79055..f548cf43a 160000
--- a/Aaru.CommonTypes
+++ b/Aaru.CommonTypes
@@ -1 +1 @@
-Subproject commit 98ad790557e004346ca6d8da59cd863e1e1f145e
+Subproject commit f548cf43a2d44ca5ff563220c030dc2bf0b0c030
diff --git a/Aaru.Filesystems/AODOS.cs b/Aaru.Filesystems/AODOS.cs
index 05dd66252..bf3542efb 100644
--- a/Aaru.Filesystems/AODOS.cs
+++ b/Aaru.Filesystems/AODOS.cs
@@ -49,6 +49,7 @@ namespace Aaru.Filesystems;
/// Implements detection of the AO-DOS filesystem
public sealed class AODOS : IFilesystem
{
+ const string FS_TYPE = "aodos";
readonly byte[] _identifier =
{
0x20, 0x41, 0x4F, 0x2D, 0x44, 0x4F, 0x53, 0x20
@@ -56,13 +57,13 @@ public sealed class AODOS : IFilesystem
///
public FileSystemType XmlFsType { get; private set; }
///
- public string Name => "Alexander Osipov DOS file system";
+ public string Name => Localization.AODOS_Name;
///
public Guid Id => new("668E5039-9DDD-442A-BE1B-A315D6E38E26");
///
public Encoding Encoding { get; private set; }
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
///
public bool Identify(IMediaImage imagePlugin, Partition partition)
@@ -104,11 +105,11 @@ public sealed class AODOS : IFilesystem
var sbInformation = new StringBuilder();
- sbInformation.AppendLine("Alexander Osipov DOS file system");
+ sbInformation.AppendLine(Localization.Alexander_Osipov_DOS_file_system);
XmlFsType = new FileSystemType
{
- Type = "Alexander Osipov DOS file system",
+ Type = FS_TYPE,
Clusters = imagePlugin.Info.Sectors,
ClusterSize = imagePlugin.Info.SectorSize,
Files = bb.files,
@@ -119,10 +120,11 @@ public sealed class AODOS : IFilesystem
Bootable = true
};
- sbInformation.AppendFormat("{0} files on volume", bb.files).AppendLine();
- sbInformation.AppendFormat("{0} used sectors on volume", bb.usedSectors).AppendLine();
+ sbInformation.AppendFormat(Localization._0_files_on_volume, bb.files).AppendLine();
+ sbInformation.AppendFormat(Localization._0_used_sectors_on_volume, bb.usedSectors).AppendLine();
- sbInformation.AppendFormat("Disk name: {0}", StringHandlers.CToString(bb.volumeLabel, Encoding)).AppendLine();
+ sbInformation.AppendFormat(Localization.Disk_name_0, StringHandlers.CToString(bb.volumeLabel, Encoding)).
+ AppendLine();
information = sbInformation.ToString();
}
diff --git a/Aaru.Filesystems/APFS.cs b/Aaru.Filesystems/APFS.cs
index f5741b4d9..c1c041dda 100644
--- a/Aaru.Filesystems/APFS.cs
+++ b/Aaru.Filesystems/APFS.cs
@@ -55,11 +55,11 @@ public sealed class APFS : IFilesystem
///
public Encoding Encoding { get; private set; }
///
- public string Name => "Apple File System";
+ public string Name => Localization.APFS_Name;
///
public Guid Id => new("A4060F9D-2909-42E2-9D95-DB31FA7EA797");
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
///
public bool Identify(IMediaImage imagePlugin, Partition partition)
@@ -116,12 +116,12 @@ public sealed class APFS : IFilesystem
if(nxSb.magic != APFS_CONTAINER_MAGIC)
return;
- sbInformation.AppendLine("Apple File System");
+ sbInformation.AppendLine(Localization.Apple_File_System);
sbInformation.AppendLine();
- sbInformation.AppendFormat("{0} bytes per block", nxSb.blockSize).AppendLine();
+ sbInformation.AppendFormat(Localization._0_bytes_per_block, nxSb.blockSize).AppendLine();
- sbInformation.AppendFormat("Container has {0} bytes in {1} blocks", nxSb.containerBlocks * nxSb.blockSize,
- nxSb.containerBlocks).AppendLine();
+ sbInformation.AppendFormat(Localization.Container_has_0_bytes_in_1_blocks,
+ nxSb.containerBlocks * nxSb.blockSize, nxSb.containerBlocks).AppendLine();
information = sbInformation.ToString();
@@ -130,10 +130,12 @@ public sealed class APFS : IFilesystem
Bootable = false,
Clusters = nxSb.containerBlocks,
ClusterSize = nxSb.blockSize,
- Type = "Apple File System"
+ Type = FS_TYPE
};
}
+ const string FS_TYPE = "apfs";
+
[StructLayout(LayoutKind.Sequential, Pack = 1)]
readonly struct ContainerSuperBlock
{
diff --git a/Aaru.Filesystems/Aaru.Filesystems.csproj b/Aaru.Filesystems/Aaru.Filesystems.csproj
index 61615b97c..0e598b3af 100644
--- a/Aaru.Filesystems/Aaru.Filesystems.csproj
+++ b/Aaru.Filesystems/Aaru.Filesystems.csproj
@@ -58,6 +58,7 @@
+
@@ -86,6 +87,11 @@
+
+ True
+ True
+ Localization.resx
+
@@ -238,5 +244,9 @@
LICENSE.LGPL
+
+ ResXFileCodeGenerator
+ Localization.Designer.cs
+
\ No newline at end of file
diff --git a/Aaru.Filesystems/Aaru.Filesystems.csproj.DotSettings b/Aaru.Filesystems/Aaru.Filesystems.csproj.DotSettings
index 6199a2f50..e7d8621d0 100644
--- a/Aaru.Filesystems/Aaru.Filesystems.csproj.DotSettings
+++ b/Aaru.Filesystems/Aaru.Filesystems.csproj.DotSettings
@@ -1,6 +1,6 @@
-
+
True
True
True
@@ -19,5 +19,7 @@
x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=iso9660_005Cconsts/@EntryIndexedValue">True
True
+ True
True
\ No newline at end of file
diff --git a/Aaru.Filesystems/Acorn.cs b/Aaru.Filesystems/Acorn.cs
index de35d40bc..9de849f43 100644
--- a/Aaru.Filesystems/Acorn.cs
+++ b/Aaru.Filesystems/Acorn.cs
@@ -66,16 +66,18 @@ public sealed class AcornADFS : IFilesystem
/// Old directory format magic number, "Hugo"
const uint OLD_DIR_MAGIC = 0x6F677548;
+ const string FS_TYPE = "adfs";
+
///
public FileSystemType XmlFsType { get; private set; }
///
- public string Name => "Acorn Advanced Disc Filing System";
+ public string Name => Localization.AcornADFS_Name;
///
public Guid Id => new("BAFC1E50-9C64-4CD3-8400-80628CC27AFA");
///
public Encoding Encoding { get; private set; }
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
// TODO: BBC Master hard disks are untested...
///
@@ -362,7 +364,7 @@ public sealed class AcornADFS : IFilesystem
Bootable = oldMap1.boot != 0, // Or not?
Clusters = bytes / imagePlugin.Info.SectorSize,
ClusterSize = imagePlugin.Info.SectorSize,
- Type = "Acorn Advanced Disc Filing System"
+ Type = FS_TYPE
};
if(ArrayHelpers.ArrayIsNullOrEmpty(namebytes))
@@ -446,18 +448,18 @@ public sealed class AcornADFS : IFilesystem
}
}
- sbInformation.AppendLine("Acorn Advanced Disc Filing System");
+ sbInformation.AppendLine(Localization.Acorn_Advanced_Disc_Filing_System);
sbInformation.AppendLine();
- sbInformation.AppendFormat("{0} bytes per sector", imagePlugin.Info.SectorSize).AppendLine();
- sbInformation.AppendFormat("Volume has {0} bytes", bytes).AppendLine();
+ sbInformation.AppendFormat(Localization._0_bytes_per_sector, imagePlugin.Info.SectorSize).AppendLine();
+ sbInformation.AppendFormat(Localization.Volume_has_0_bytes, bytes).AppendLine();
- sbInformation.AppendFormat("Volume name: {0}", StringHandlers.CToString(namebytes, Encoding)).
+ sbInformation.AppendFormat(Localization.Volume_name_0, StringHandlers.CToString(namebytes, Encoding)).
AppendLine();
if(oldMap1.discId > 0)
{
XmlFsType.VolumeSerial = $"{oldMap1.discId:X4}";
- sbInformation.AppendFormat("Volume ID: {0:X4}", oldMap1.discId).AppendLine();
+ sbInformation.AppendFormat(Localization.Volume_ID_0_X4, oldMap1.discId).AppendLine();
}
if(!ArrayHelpers.ArrayIsNullOrEmpty(namebytes))
@@ -565,34 +567,34 @@ public sealed class AcornADFS : IFilesystem
XmlFsType = new FileSystemType();
- sbInformation.AppendLine("Acorn Advanced Disc Filing System");
+ sbInformation.AppendLine(Localization.Acorn_Advanced_Disc_Filing_System);
sbInformation.AppendLine();
- sbInformation.AppendFormat("Version {0}", drSb.format_version).AppendLine();
- sbInformation.AppendFormat("{0} bytes per sector", 1 << drSb.log2secsize).AppendLine();
- sbInformation.AppendFormat("{0} sectors per track", drSb.spt).AppendLine();
- sbInformation.AppendFormat("{0} heads", drSb.heads).AppendLine();
- sbInformation.AppendFormat("Density code: {0}", drSb.density).AppendLine();
- sbInformation.AppendFormat("Skew: {0}", drSb.skew).AppendLine();
- sbInformation.AppendFormat("Boot option: {0}", drSb.bootoption).AppendLine();
+ sbInformation.AppendFormat(Localization.Version_0, drSb.format_version).AppendLine();
+ sbInformation.AppendFormat(Localization._0_bytes_per_sector, 1 << drSb.log2secsize).AppendLine();
+ sbInformation.AppendFormat(Localization._0_sectors_per_track, drSb.spt).AppendLine();
+ sbInformation.AppendFormat(Localization._0_heads, drSb.heads).AppendLine();
+ sbInformation.AppendFormat(Localization.Density_code_0, drSb.density).AppendLine();
+ sbInformation.AppendFormat(Localization.Skew_0, drSb.skew).AppendLine();
+ sbInformation.AppendFormat(Localization.Boot_option_0, drSb.bootoption).AppendLine();
// TODO: What the hell is this field refering to?
- sbInformation.AppendFormat("Root starts at frag {0}", drSb.root).AppendLine();
+ sbInformation.AppendFormat(Localization.Root_starts_at_frag_0, drSb.root).AppendLine();
//sbInformation.AppendFormat("Root is {0} bytes long", drSb.root_size).AppendLine();
- sbInformation.AppendFormat("Volume has {0} bytes in {1} zones", bytes, zones).AppendLine();
- sbInformation.AppendFormat("Volume flags: 0x{0:X4}", drSb.flags).AppendLine();
+ sbInformation.AppendFormat(Localization.Volume_has_0_bytes_in_1_zones, bytes, zones).AppendLine();
+ sbInformation.AppendFormat(Localization.Volume_flags_0_X4, drSb.flags).AppendLine();
if(drSb.disc_id > 0)
{
XmlFsType.VolumeSerial = $"{drSb.disc_id:X4}";
- sbInformation.AppendFormat("Volume ID: {0:X4}", drSb.disc_id).AppendLine();
+ sbInformation.AppendFormat(Localization.Volume_ID_0_X4, drSb.disc_id).AppendLine();
}
if(!ArrayHelpers.ArrayIsNullOrEmpty(drSb.disc_name))
{
string discname = StringHandlers.CToString(drSb.disc_name, Encoding);
XmlFsType.VolumeName = discname;
- sbInformation.AppendFormat("Volume name: {0}", discname).AppendLine();
+ sbInformation.AppendFormat(Localization.Volume_name_0, discname).AppendLine();
}
information = sbInformation.ToString();
@@ -600,7 +602,7 @@ public sealed class AcornADFS : IFilesystem
XmlFsType.Bootable |= drSb.bootoption != 0; // Or not?
XmlFsType.Clusters = bytes / (ulong)(1 << drSb.log2secsize);
XmlFsType.ClusterSize = (uint)(1 << drSb.log2secsize);
- XmlFsType.Type = "Acorn Advanced Disc Filing System";
+ XmlFsType.Type = FS_TYPE;
}
static byte AcornMapChecksum(byte[] data, int length)
diff --git a/Aaru.Filesystems/AmigaDOS.cs b/Aaru.Filesystems/AmigaDOS.cs
index 075bd4638..9a6c577d3 100644
--- a/Aaru.Filesystems/AmigaDOS.cs
+++ b/Aaru.Filesystems/AmigaDOS.cs
@@ -55,16 +55,21 @@ public sealed class AmigaDOSPlugin : IFilesystem
const uint TYPE_HEADER = 2;
const uint SUBTYPE_ROOT = 1;
+ const string FS_TYPE_OFS = "aofs";
+ const string FS_TYPE_FFS = "affs";
+ const string FS_TYPE_OFS2 = "aofs2";
+ const string FS_TYPE_FFS2 = "affs2";
+
///
public FileSystemType XmlFsType { get; private set; }
///
- public string Name => "Amiga DOS filesystem";
+ public string Name => Localization.AmigaDOSPlugin_Name;
///
public Guid Id => new("3c882400-208c-427d-a086-9119852a1bc7");
///
public Encoding Encoding { get; private set; }
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
///
public bool Identify(IMediaImage imagePlugin, Partition partition)
@@ -118,7 +123,7 @@ public sealed class AmigaDOSPlugin : IFilesystem
if(bsum == bblk.checksum)
{
bRootPtr = bblk.root_ptr + partition.Start;
- AaruConsole.DebugWriteLine("AmigaDOS plugin", "Bootblock points to {0} as Rootblock", bRootPtr);
+ AaruConsole.DebugWriteLine("AmigaDOS plugin", Localization.Bootblock_points_to_0_as_Rootblock, bRootPtr);
}
ulong[] rootPtrs =
@@ -134,7 +139,7 @@ public sealed class AmigaDOSPlugin : IFilesystem
// So to handle even number of sectors
foreach(ulong rootPtr in rootPtrs.Where(rootPtr => rootPtr < partition.End && rootPtr >= partition.Start))
{
- AaruConsole.DebugWriteLine("AmigaDOS plugin", "Searching for Rootblock in sector {0}", rootPtr);
+ AaruConsole.DebugWriteLine("AmigaDOS plugin", Localization.Searching_for_Rootblock_in_sector_0, rootPtr);
errno = imagePlugin.ReadSector(rootPtr, out sector);
@@ -211,7 +216,7 @@ public sealed class AmigaDOSPlugin : IFilesystem
if(bsum == bootBlk.checksum)
{
bRootPtr = bootBlk.root_ptr + partition.Start;
- AaruConsole.DebugWriteLine("AmigaDOS plugin", "Bootblock points to {0} as Rootblock", bRootPtr);
+ AaruConsole.DebugWriteLine("AmigaDOS plugin", Localization.Bootblock_points_to_0_as_Rootblock, bRootPtr);
}
ulong[] rootPtrs =
@@ -231,7 +236,7 @@ public sealed class AmigaDOSPlugin : IFilesystem
// So to handle even number of sectors
foreach(ulong rootPtr in rootPtrs.Where(rootPtr => rootPtr < partition.End && rootPtr >= partition.Start))
{
- AaruConsole.DebugWriteLine("AmigaDOS plugin", "Searching for Rootblock in sector {0}", rootPtr);
+ AaruConsole.DebugWriteLine("AmigaDOS plugin", Localization.Searching_for_Rootblock_in_sector_0, rootPtr);
errno = imagePlugin.ReadSector(rootPtr, out rootBlockSector);
@@ -300,91 +305,92 @@ public sealed class AmigaDOSPlugin : IFilesystem
switch(bootBlk.diskType & 0xFF)
{
case 0:
- sbInformation.Append("Amiga Original File System");
- XmlFsType.Type = "Amiga OFS";
+ sbInformation.Append(Localization.Amiga_Original_File_System);
+ XmlFsType.Type = FS_TYPE_OFS;
break;
case 1:
- sbInformation.Append("Amiga Fast File System");
- XmlFsType.Type = "Amiga FFS";
+ sbInformation.Append(Localization.Amiga_Fast_File_System);
+ XmlFsType.Type = FS_TYPE_FFS;
break;
case 2:
- sbInformation.Append("Amiga Original File System with international characters");
- XmlFsType.Type = "Amiga OFS";
+ sbInformation.Append(Localization.Amiga_Original_File_System_with_international_characters);
+ XmlFsType.Type = FS_TYPE_OFS;
break;
case 3:
- sbInformation.Append("Amiga Fast File System with international characters");
- XmlFsType.Type = "Amiga FFS";
+ sbInformation.Append(Localization.Amiga_Fast_File_System_with_international_characters);
+ XmlFsType.Type = FS_TYPE_FFS;
break;
case 4:
- sbInformation.Append("Amiga Original File System with directory cache");
- XmlFsType.Type = "Amiga OFS";
+ sbInformation.Append(Localization.Amiga_Original_File_System_with_directory_cache);
+ XmlFsType.Type = FS_TYPE_OFS;
break;
case 5:
- sbInformation.Append("Amiga Fast File System with directory cache");
- XmlFsType.Type = "Amiga FFS";
+ sbInformation.Append(Localization.Amiga_Fast_File_System_with_directory_cache);
+ XmlFsType.Type = FS_TYPE_FFS;
break;
case 6:
- sbInformation.Append("Amiga Original File System with long filenames");
- XmlFsType.Type = "Amiga OFS2";
+ sbInformation.Append(Localization.Amiga_Original_File_System_with_long_filenames);
+ XmlFsType.Type = FS_TYPE_OFS2;
break;
case 7:
- sbInformation.Append("Amiga Fast File System with long filenames");
- XmlFsType.Type = "Amiga FFS2";
+ sbInformation.Append(Localization.Amiga_Fast_File_System_with_long_filenames);
+ XmlFsType.Type = FS_TYPE_FFS2;
break;
}
if((bootBlk.diskType & 0x6D754600) == 0x6D754600)
- sbInformation.Append(", with multi-user patches");
+ sbInformation.Append(Localization.with_multi_user_patches);
sbInformation.AppendLine();
- sbInformation.AppendFormat("Volume name: {0}", diskName).AppendLine();
+ sbInformation.AppendFormat(Localization.Volume_name_0, diskName).AppendLine();
if(bootBlk.checksum == bsum)
{
var sha1Ctx = new Sha1Context();
sha1Ctx.Update(bootBlk.bootCode);
- sbInformation.AppendLine("Volume is bootable");
- sbInformation.AppendFormat("Boot code SHA1 is {0}", sha1Ctx.End()).AppendLine();
+ sbInformation.AppendLine(Localization.Volume_is_bootable);
+ sbInformation.AppendFormat(Localization.Boot_code_SHA1_0, sha1Ctx.End()).AppendLine();
}
if(rootBlk.bitmapFlag == 0xFFFFFFFF)
- sbInformation.AppendLine("Volume bitmap is valid");
+ sbInformation.AppendLine(Localization.Volume_bitmap_is_valid);
if(rootBlk.bitmapExtensionBlock != 0x00000000 &&
rootBlk.bitmapExtensionBlock != 0xFFFFFFFF)
- sbInformation.AppendFormat("Bitmap extension at block {0}", rootBlk.bitmapExtensionBlock).AppendLine();
+ sbInformation.AppendFormat(Localization.Bitmap_extension_at_block_0, rootBlk.bitmapExtensionBlock).
+ AppendLine();
if((bootBlk.diskType & 0xFF) == 4 ||
(bootBlk.diskType & 0xFF) == 5)
- sbInformation.AppendFormat("Directory cache starts at block {0}", rootBlk.extension).AppendLine();
+ sbInformation.AppendFormat(Localization.Directory_cache_starts_at_block_0, rootBlk.extension).AppendLine();
ulong blocks = (partition.End - partition.Start + 1) * imagePlugin.Info.SectorSize / blockSize;
- sbInformation.AppendFormat("Volume block size is {0} bytes", blockSize).AppendLine();
- sbInformation.AppendFormat("Volume has {0} blocks", blocks).AppendLine();
+ sbInformation.AppendFormat(Localization.Volume_block_size_is_0_bytes, blockSize).AppendLine();
+ sbInformation.AppendFormat(Localization.Volume_has_0_blocks, blocks).AppendLine();
- sbInformation.AppendFormat("Volume created on {0}",
+ sbInformation.AppendFormat(Localization.Volume_created_on_0,
DateHandlers.AmigaToDateTime(rootBlk.cDays, rootBlk.cMins, rootBlk.cTicks)).
AppendLine();
- sbInformation.AppendFormat("Volume last modified on {0}",
+ sbInformation.AppendFormat(Localization.Volume_last_modified_on_0,
DateHandlers.AmigaToDateTime(rootBlk.vDays, rootBlk.vMins, rootBlk.vTicks)).
AppendLine();
- sbInformation.AppendFormat("Volume root directory last modified on on {0}",
+ sbInformation.AppendFormat(Localization.Volume_root_directory_last_modified_on_0,
DateHandlers.AmigaToDateTime(rootBlk.rDays, rootBlk.rMins, rootBlk.rTicks)).
AppendLine();
- sbInformation.AppendFormat("Root block checksum is 0x{0:X8}", rootBlk.checksum).AppendLine();
+ sbInformation.AppendFormat(Localization.Root_block_checksum_is_0, rootBlk.checksum).AppendLine();
information = sbInformation.ToString();
XmlFsType.CreationDate = DateHandlers.AmigaToDateTime(rootBlk.cDays, rootBlk.cMins, rootBlk.cTicks);
diff --git a/Aaru.Filesystems/AppleCommon/Info.cs b/Aaru.Filesystems/AppleCommon/Info.cs
index 5beb6dd22..c150315d9 100644
--- a/Aaru.Filesystems/AppleCommon/Info.cs
+++ b/Aaru.Filesystems/AppleCommon/Info.cs
@@ -51,59 +51,63 @@ static partial class AppleCommon
return null;
var sb = new StringBuilder();
- sb.AppendLine("Boot Block:");
+ sb.AppendLine(Localization.Boot_Block);
if((bb.bbVersion & 0x8000) > 0)
{
- sb.AppendLine("Boot block is in new format.");
+ sb.AppendLine(Localization.Boot_block_is_in_new_format);
if((bb.bbVersion & 0x4000) > 0)
{
- sb.AppendLine("Boot block should be executed.");
+ sb.AppendLine(Localization.Boot_block_should_be_executed);
if((bb.bbVersion & 0x2000) > 0)
- sb.AppendFormat("System heap will be extended by {0} bytes and a {1} fraction of the available RAM",
- bb.bbSysHeapExtra, bb.bbSysHeapFract).AppendLine();
+ sb.
+ AppendFormat(Localization.System_heap_will_be_extended_by_0_bytes_and_a_1_fraction_of_the_available_RAM,
+ bb.bbSysHeapExtra, bb.bbSysHeapFract).AppendLine();
}
}
else if((bb.bbVersion & 0xFF) == 0x0D)
- sb.AppendLine("Boot block should be executed.");
+ sb.AppendLine(Localization.Boot_block_should_be_executed);
switch(bb.bbPageFlags)
{
case > 0:
- sb.AppendLine("Allocate secondary sound buffer at boot.");
+ sb.AppendLine(Localization.Allocate_secondary_sound_buffer_at_boot);
break;
case < 0:
- sb.AppendLine("Allocate secondary sound and video buffers at boot.");
+ sb.AppendLine(Localization.Allocate_secondary_sound_and_video_buffers_at_boot);
break;
}
- sb.AppendFormat("System filename: {0}", StringHandlers.PascalToString(bb.bbSysName, encoding)).AppendLine();
-
- sb.AppendFormat("Finder filename: {0}", StringHandlers.PascalToString(bb.bbShellName, encoding)).AppendLine();
-
- sb.AppendFormat("Debugger filename: {0}", StringHandlers.PascalToString(bb.bbDbg1Name, encoding)).AppendLine();
-
- sb.AppendFormat("Disassembler filename: {0}", StringHandlers.PascalToString(bb.bbDbg2Name, encoding)).
+ sb.AppendFormat(Localization.System_filename_0, StringHandlers.PascalToString(bb.bbSysName, encoding)).
AppendLine();
- sb.AppendFormat("Startup screen filename: {0}", StringHandlers.PascalToString(bb.bbScreenName, encoding)).
+ sb.AppendFormat(Localization.Finder_filename_0, StringHandlers.PascalToString(bb.bbShellName, encoding)).
AppendLine();
- sb.AppendFormat("First program to execute at boot: {0}",
+ sb.AppendFormat(Localization.Debugger_filename_0, StringHandlers.PascalToString(bb.bbDbg1Name, encoding)).
+ AppendLine();
+
+ sb.AppendFormat(Localization.Disassembler_filename_0, StringHandlers.PascalToString(bb.bbDbg2Name, encoding)).
+ AppendLine();
+
+ sb.AppendFormat(Localization.Startup_screen_filename_0,
+ StringHandlers.PascalToString(bb.bbScreenName, encoding)).AppendLine();
+
+ sb.AppendFormat(Localization.First_program_to_execute_at_boot_0,
StringHandlers.PascalToString(bb.bbHelloName, encoding)).AppendLine();
- sb.AppendFormat("Clipboard filename: {0}", StringHandlers.PascalToString(bb.bbScrapName, encoding)).
+ sb.AppendFormat(Localization.Clipboard_filename_0, StringHandlers.PascalToString(bb.bbScrapName, encoding)).
AppendLine();
- sb.AppendFormat("Maximum opened files: {0}", bb.bbCntFCBs * 4).AppendLine();
- sb.AppendFormat("Event queue size: {0}", bb.bbCntEvts).AppendLine();
- sb.AppendFormat("Heap size with 128KiB of RAM: {0} bytes", bb.bb128KSHeap).AppendLine();
- sb.AppendFormat("Heap size with 256KiB of RAM: {0} bytes", bb.bb256KSHeap).AppendLine();
- sb.AppendFormat("Heap size with 512KiB of RAM or more: {0} bytes", bb.bbSysHeapSize).AppendLine();
+ sb.AppendFormat(Localization.Maximum_opened_files_0, bb.bbCntFCBs * 4).AppendLine();
+ sb.AppendFormat(Localization.Event_queue_size_0, bb.bbCntEvts).AppendLine();
+ sb.AppendFormat(Localization.Heap_size_with_128KiB_of_RAM_0_bytes, bb.bb128KSHeap).AppendLine();
+ sb.AppendFormat(Localization.Heap_size_with_256KiB_of_RAM_0_bytes, bb.bb256KSHeap).AppendLine();
+ sb.AppendFormat(Localization.Heap_size_with_512KiB_of_RAM_or_more_0_bytes, bb.bbSysHeapSize).AppendLine();
return sb.ToString();
}
diff --git a/Aaru.Filesystems/AppleDOS/AppleDOS.cs b/Aaru.Filesystems/AppleDOS/AppleDOS.cs
index 77f95c983..71cede07b 100644
--- a/Aaru.Filesystems/AppleDOS/AppleDOS.cs
+++ b/Aaru.Filesystems/AppleDOS/AppleDOS.cs
@@ -42,27 +42,29 @@ namespace Aaru.Filesystems;
/// Implements the Apple DOS 3 filesystem
public sealed partial class AppleDOS : IReadOnlyFilesystem
{
- bool _debug;
- IMediaImage _device;
- bool _mounted;
- int _sectorsPerTrack;
- ulong _start;
- ulong _totalFileEntries;
- bool _track1UsedByFiles;
- bool _track2UsedByFiles;
- uint _usedSectors;
- Vtoc _vtoc;
+ // Do not translate
+ const string FS_TYPE = "appledos";
+ bool _debug;
+ IMediaImage _device;
+ bool _mounted;
+ int _sectorsPerTrack;
+ ulong _start;
+ ulong _totalFileEntries;
+ bool _track1UsedByFiles;
+ bool _track2UsedByFiles;
+ uint _usedSectors;
+ Vtoc _vtoc;
///
public FileSystemType XmlFsType { get; private set; }
///
public Encoding Encoding { get; private set; }
///
- public string Name => "Apple DOS File System";
+ public string Name => Localization.AppleDOS_Name;
///
public Guid Id => new("8658A1E9-B2E7-4BCC-9638-157A31B0A700\n");
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
///
public IEnumerable<(string name, Type type, string description)> SupportedOptions =>
diff --git a/Aaru.Filesystems/AppleDOS/Info.cs b/Aaru.Filesystems/AppleDOS/Info.cs
index 95c834648..cf1857e19 100644
--- a/Aaru.Filesystems/AppleDOS/Info.cs
+++ b/Aaru.Filesystems/AppleDOS/Info.cs
@@ -83,20 +83,21 @@ public sealed partial class AppleDOS
_vtoc = Marshal.ByteArrayToStructureLittleEndian(vtocB);
- sb.AppendLine("Apple DOS File System");
+ sb.AppendLine(Localization.AppleDOS_Name);
sb.AppendLine();
- sb.AppendFormat("Catalog starts at sector {0} of track {1}", _vtoc.catalogSector, _vtoc.catalogTrack).
+ sb.AppendFormat(Localization.Catalog_starts_at_sector_0_of_track_1, _vtoc.catalogSector, _vtoc.catalogTrack).
AppendLine();
- sb.AppendFormat("File system initialized by DOS release {0}", _vtoc.dosRelease).AppendLine();
- sb.AppendFormat("Disk volume number {0}", _vtoc.volumeNumber).AppendLine();
- sb.AppendFormat("Sectors allocated at most in track {0}", _vtoc.lastAllocatedSector).AppendLine();
- sb.AppendFormat("{0} tracks in volume", _vtoc.tracks).AppendLine();
- sb.AppendFormat("{0} sectors per track", _vtoc.sectorsPerTrack).AppendLine();
- sb.AppendFormat("{0} bytes per sector", _vtoc.bytesPerSector).AppendLine();
+ sb.AppendFormat(Localization.File_system_initialized_by_DOS_release_0, _vtoc.dosRelease).AppendLine();
+ sb.AppendFormat(Localization.Disk_volume_number_0, _vtoc.volumeNumber).AppendLine();
+ sb.AppendFormat(Localization.Sectors_allocated_at_most_in_track_0, _vtoc.lastAllocatedSector).AppendLine();
+ sb.AppendFormat(Localization._0_tracks_in_volume, _vtoc.tracks).AppendLine();
+ sb.AppendFormat(Localization._0_sectors_per_track, _vtoc.sectorsPerTrack).AppendLine();
+ sb.AppendFormat(Localization._0_bytes_per_sector, _vtoc.bytesPerSector).AppendLine();
- sb.AppendFormat("Track allocation is {0}", _vtoc.allocationDirection > 0 ? "forward" : "reverse").AppendLine();
+ sb.AppendLine(_vtoc.allocationDirection > 0 ? Localization.Track_allocation_is_forward
+ : Localization.Track_allocation_is_reverse);
information = sb.ToString();
@@ -105,7 +106,7 @@ public sealed partial class AppleDOS
Bootable = true,
Clusters = imagePlugin.Info.Sectors,
ClusterSize = imagePlugin.Info.SectorSize,
- Type = "Apple DOS"
+ Type = FS_TYPE
};
}
}
\ No newline at end of file
diff --git a/Aaru.Filesystems/AppleDOS/Super.cs b/Aaru.Filesystems/AppleDOS/Super.cs
index ff0d91bab..06e6cbee7 100644
--- a/Aaru.Filesystems/AppleDOS/Super.cs
+++ b/Aaru.Filesystems/AppleDOS/Super.cs
@@ -56,21 +56,21 @@ public sealed partial class AppleDOS
if(_device.Info.Sectors != 455 &&
_device.Info.Sectors != 560)
{
- AaruConsole.DebugWriteLine("Apple DOS plugin", "Incorrect device size.");
+ AaruConsole.DebugWriteLine("Apple DOS plugin", Localization.Incorrect_device_size);
return ErrorNumber.InOutError;
}
if(_start > 0)
{
- AaruConsole.DebugWriteLine("Apple DOS plugin", "Partitions are not supported.");
+ AaruConsole.DebugWriteLine("Apple DOS plugin", Localization.Partitions_are_not_supported);
return ErrorNumber.InOutError;
}
if(_device.Info.SectorSize != 256)
{
- AaruConsole.DebugWriteLine("Apple DOS plugin", "Incorrect sector size.");
+ AaruConsole.DebugWriteLine("Apple DOS plugin", Localization.Incorrect_sector_size);
return ErrorNumber.InOutError;
}
@@ -93,7 +93,7 @@ public sealed partial class AppleDOS
if(error != ErrorNumber.NoError)
{
- AaruConsole.DebugWriteLine("Apple DOS plugin", "Unable to read catalog.");
+ AaruConsole.DebugWriteLine("Apple DOS plugin", Localization.Unable_to_read_catalog);
return error;
}
@@ -102,7 +102,7 @@ public sealed partial class AppleDOS
if(error != ErrorNumber.NoError)
{
- AaruConsole.DebugWriteLine("Apple DOS plugin", "Unable cache all files.");
+ AaruConsole.DebugWriteLine("Apple DOS plugin", Localization.Unable_cache_all_files);
return error;
}
@@ -116,7 +116,7 @@ public sealed partial class AppleDOS
Files = (ulong)_catalogCache.Count,
FilesSpecified = true,
FreeClustersSpecified = true,
- Type = "Apple DOS"
+ Type = FS_TYPE
};
XmlFsType.FreeClusters = XmlFsType.Clusters - _usedSectors;
@@ -152,7 +152,7 @@ public sealed partial class AppleDOS
FilenameLength = 30,
Files = (ulong)_catalogCache.Count,
PluginId = Id,
- Type = "Apple DOS"
+ Type = FS_TYPE
};
stat.FreeFiles = _totalFileEntries - stat.Files;
diff --git a/Aaru.Filesystems/AppleHFS/AppleHFS.cs b/Aaru.Filesystems/AppleHFS/AppleHFS.cs
index a2578d0c4..dc4e1b8f3 100644
--- a/Aaru.Filesystems/AppleHFS/AppleHFS.cs
+++ b/Aaru.Filesystems/AppleHFS/AppleHFS.cs
@@ -49,9 +49,9 @@ public sealed partial class AppleHFS : IFilesystem
///
public Encoding Encoding { get; private set; }
///
- public string Name => "Apple Hierarchical File System";
+ public string Name => Localization.Name_Apple_Hierarchical_File_System;
///
public Guid Id => new("36405F8D-0D26-6ECC-0BBB-1D5225FF404F");
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
}
\ No newline at end of file
diff --git a/Aaru.Filesystems/AppleHFS/Consts.cs b/Aaru.Filesystems/AppleHFS/Consts.cs
index dd6302262..2ce1f3b09 100644
--- a/Aaru.Filesystems/AppleHFS/Consts.cs
+++ b/Aaru.Filesystems/AppleHFS/Consts.cs
@@ -51,4 +51,7 @@ public sealed partial class AppleHFS
const uint kCatalogFileCnid = 4;
/// File number of the bad allocation block file.
const uint kBadBlocksFileCnid = 5;
+
+ // Do not translate
+ const string FS_TYPE = "hfs";
}
\ No newline at end of file
diff --git a/Aaru.Filesystems/AppleHFS/Info.cs b/Aaru.Filesystems/AppleHFS/Info.cs
index 5b1f1b0b1..05793d160 100644
--- a/Aaru.Filesystems/AppleHFS/Info.cs
+++ b/Aaru.Filesystems/AppleHFS/Info.cs
@@ -169,111 +169,111 @@ public sealed partial class AppleHFS
MasterDirectoryBlock mdb = Marshal.ByteArrayToStructureBigEndian(mdbSector);
- sb.AppendLine("Apple Hierarchical File System");
+ sb.AppendLine(Localization.Name_Apple_Hierarchical_File_System);
sb.AppendLine();
if(apmFromHddOnCd)
- sb.AppendLine("HFS uses 512 bytes/sector while device uses 2048 bytes/sector.").AppendLine();
+ sb.AppendLine(Localization.HFS_uses_512_bytes_sector_while_device_uses_2048_bytes_sector).AppendLine();
- sb.AppendLine("Master Directory Block:");
- sb.AppendFormat("Creation date: {0}", DateHandlers.MacToDateTime(mdb.drCrDate)).AppendLine();
- sb.AppendFormat("Last modification date: {0}", DateHandlers.MacToDateTime(mdb.drLsMod)).AppendLine();
+ sb.AppendLine(Localization.Master_Directory_Block);
+ sb.AppendFormat(Localization.Creation_date_0, DateHandlers.MacToDateTime(mdb.drCrDate)).AppendLine();
+ sb.AppendFormat(Localization.Last_modification_date_0, DateHandlers.MacToDateTime(mdb.drLsMod)).AppendLine();
if(mdb.drVolBkUp > 0)
{
- sb.AppendFormat("Last backup date: {0}", DateHandlers.MacToDateTime(mdb.drVolBkUp)).AppendLine();
- sb.AppendFormat("Backup sequence number: {0}", mdb.drVSeqNum).AppendLine();
+ sb.AppendFormat(Localization.Last_backup_date_0, DateHandlers.MacToDateTime(mdb.drVolBkUp)).AppendLine();
+ sb.AppendFormat(Localization.Backup_sequence_number_0, mdb.drVSeqNum).AppendLine();
}
else
- sb.AppendLine("Volume has never been backed up");
+ sb.AppendLine(Localization.Volume_has_never_been_backed_up);
if(mdb.drAtrb.HasFlag(AppleCommon.VolumeAttributes.HardwareLock))
- sb.AppendLine("Volume is locked by hardware.");
+ sb.AppendLine(Localization.Volume_is_locked_by_hardware);
- sb.AppendLine(mdb.drAtrb.HasFlag(AppleCommon.VolumeAttributes.Unmounted) ? "Volume was unmonted."
- : "Volume is mounted.");
+ sb.AppendLine(mdb.drAtrb.HasFlag(AppleCommon.VolumeAttributes.Unmounted) ? Localization.Volume_was_unmonted
+ : Localization.Volume_is_mounted);
if(mdb.drAtrb.HasFlag(AppleCommon.VolumeAttributes.SparedBadBlocks))
- sb.AppendLine("Volume has spared bad blocks.");
+ sb.AppendLine(Localization.Volume_has_spared_bad_blocks);
if(mdb.drAtrb.HasFlag(AppleCommon.VolumeAttributes.DoesNotNeedCache))
- sb.AppendLine("Volume does not need cache.");
+ sb.AppendLine(Localization.Volume_does_not_need_cache);
if(mdb.drAtrb.HasFlag(AppleCommon.VolumeAttributes.BootInconsistent))
- sb.AppendLine("Boot volume is inconsistent.");
+ sb.AppendLine(Localization.Boot_volume_is_inconsistent);
if(mdb.drAtrb.HasFlag(AppleCommon.VolumeAttributes.ReusedIds))
- sb.AppendLine("There are reused CNIDs.");
+ sb.AppendLine(Localization.There_are_reused_CNIDs);
if(mdb.drAtrb.HasFlag(AppleCommon.VolumeAttributes.Journaled))
- sb.AppendLine("Volume is journaled.");
+ sb.AppendLine(Localization.Volume_is_journaled);
if(mdb.drAtrb.HasFlag(AppleCommon.VolumeAttributes.Inconsistent))
- sb.AppendLine("Volume is seriously inconsistent.");
+ sb.AppendLine(Localization.Volume_is_seriously_inconsistent);
if(mdb.drAtrb.HasFlag(AppleCommon.VolumeAttributes.SoftwareLock))
- sb.AppendLine("Volume is locked by software.");
+ sb.AppendLine(Localization.Volume_is_locked_by_software);
- sb.AppendFormat("{0} files on root directory", mdb.drNmFls).AppendLine();
- sb.AppendFormat("{0} directories on root directory", mdb.drNmRtDirs).AppendLine();
- sb.AppendFormat("{0} files on volume", mdb.drFilCnt).AppendLine();
- sb.AppendFormat("{0} directories on volume", mdb.drDirCnt).AppendLine();
- sb.AppendFormat("Volume write count: {0}", mdb.drWrCnt).AppendLine();
+ sb.AppendFormat(Localization._0_files_on_root_directory, mdb.drNmFls).AppendLine();
+ sb.AppendFormat(Localization._0_directories_on_root_directory, mdb.drNmRtDirs).AppendLine();
+ sb.AppendFormat(Localization._0_files_on_volume, mdb.drFilCnt).AppendLine();
+ sb.AppendFormat(Localization._0_directories_on_volume, mdb.drDirCnt).AppendLine();
+ sb.AppendFormat(Localization.Volume_write_count_0, mdb.drWrCnt).AppendLine();
- sb.AppendFormat("Volume bitmap starting sector (in 512-bytes): {0}", mdb.drVBMSt).AppendLine();
- sb.AppendFormat("Next allocation block: {0}.", mdb.drAllocPtr).AppendLine();
- sb.AppendFormat("{0} volume allocation blocks.", mdb.drNmAlBlks).AppendLine();
- sb.AppendFormat("{0} bytes per allocation block.", mdb.drAlBlkSiz).AppendLine();
- sb.AppendFormat("{0} bytes to allocate when extending a file.", mdb.drClpSiz).AppendLine();
- sb.AppendFormat("{0} bytes to allocate when extending a Extents B-Tree.", mdb.drXTClpSiz).AppendLine();
- sb.AppendFormat("{0} bytes to allocate when extending a Catalog B-Tree.", mdb.drCTClpSiz).AppendLine();
- sb.AppendFormat("Sector of first allocation block: {0}", mdb.drAlBlSt).AppendLine();
- sb.AppendFormat("Next unused CNID: {0}", mdb.drNxtCNID).AppendLine();
- sb.AppendFormat("{0} unused allocation blocks.", mdb.drFreeBks).AppendLine();
+ sb.AppendFormat(Localization.Volume_bitmap_starting_sector_in_512_bytes_0, mdb.drVBMSt).AppendLine();
+ sb.AppendFormat(Localization.Next_allocation_block_0, mdb.drAllocPtr).AppendLine();
+ sb.AppendFormat(Localization._0_volume_allocation_blocks, mdb.drNmAlBlks).AppendLine();
+ sb.AppendFormat(Localization._0_bytes_per_allocation_block, mdb.drAlBlkSiz).AppendLine();
+ sb.AppendFormat(Localization._0_bytes_to_allocate_when_extending_a_file, mdb.drClpSiz).AppendLine();
+ sb.AppendFormat(Localization._0_bytes_to_allocate_when_extending_a_Extents_B_Tree, mdb.drXTClpSiz).AppendLine();
+ sb.AppendFormat(Localization._0_bytes_to_allocate_when_extending_a_Catalog_B_Tree, mdb.drCTClpSiz).AppendLine();
+ sb.AppendFormat(Localization.Sector_of_first_allocation_block_0, mdb.drAlBlSt).AppendLine();
+ sb.AppendFormat(Localization.Next_unused_CNID_0, mdb.drNxtCNID).AppendLine();
+ sb.AppendFormat(Localization._0_unused_allocation_blocks, mdb.drFreeBks).AppendLine();
- sb.AppendFormat("{0} bytes in the Extents B-Tree", mdb.drXTFlSize).AppendLine();
- sb.AppendFormat("{0} bytes in the Catalog B-Tree", mdb.drCTFlSize).AppendLine();
+ sb.AppendFormat(Localization._0_bytes_in_the_Extents_B_Tree, mdb.drXTFlSize).AppendLine();
+ sb.AppendFormat(Localization._0_bytes_in_the_Catalog_B_Tree, mdb.drCTFlSize).AppendLine();
- sb.AppendFormat("Volume name: {0}", StringHandlers.PascalToString(mdb.drVN, Encoding)).AppendLine();
+ sb.AppendFormat(Localization.Volume_name_0, StringHandlers.PascalToString(mdb.drVN, Encoding)).AppendLine();
- sb.AppendLine("Finder info:");
- sb.AppendFormat("CNID of bootable system's directory: {0}", mdb.drFndrInfo0).AppendLine();
- sb.AppendFormat("CNID of first-run application's directory: {0}", mdb.drFndrInfo1).AppendLine();
- sb.AppendFormat("CNID of previously opened directory: {0}", mdb.drFndrInfo2).AppendLine();
- sb.AppendFormat("CNID of bootable Mac OS 8 or 9 directory: {0}", mdb.drFndrInfo3).AppendLine();
- sb.AppendFormat("CNID of bootable Mac OS X directory: {0}", mdb.drFndrInfo5).AppendLine();
+ sb.AppendLine(Localization.Finder_info);
+ sb.AppendFormat(Localization.CNID_of_bootable_system_directory_0, mdb.drFndrInfo0).AppendLine();
+ sb.AppendFormat(Localization.CNID_of_first_run_application_directory_0, mdb.drFndrInfo1).AppendLine();
+ sb.AppendFormat(Localization.CNID_of_previously_opened_directory_0, mdb.drFndrInfo2).AppendLine();
+ sb.AppendFormat(Localization.CNID_of_bootable_Mac_OS_8_or_9_directory_0, mdb.drFndrInfo3).AppendLine();
+ sb.AppendFormat(Localization.CNID_of_bootable_Mac_OS_X_directory_0, mdb.drFndrInfo5).AppendLine();
if(mdb.drFndrInfo6 != 0 &&
mdb.drFndrInfo7 != 0)
- sb.AppendFormat("Mac OS X Volume ID: {0:X8}{1:X8}", mdb.drFndrInfo6, mdb.drFndrInfo7).AppendLine();
+ sb.AppendFormat(Localization.Mac_OS_X_Volume_ID_0_1, mdb.drFndrInfo6, mdb.drFndrInfo7).AppendLine();
if(mdb.drEmbedSigWord == AppleCommon.HFSP_MAGIC)
{
- sb.AppendLine("Volume wraps a HFS+ volume.");
- sb.AppendFormat("Starting block of the HFS+ volume: {0}", mdb.xdrStABNt).AppendLine();
- sb.AppendFormat("Allocations blocks of the HFS+ volume: {0}", mdb.xdrNumABlks).AppendLine();
+ sb.AppendLine(Localization.Volume_wraps_a_HFS_Plus_volume);
+ sb.AppendFormat(Localization.Starting_block_of_the_HFS_Plus_volume_0, mdb.xdrStABNt).AppendLine();
+ sb.AppendFormat(Localization.Allocations_blocks_of_the_HFS_Plus_volume_0, mdb.xdrNumABlks).AppendLine();
}
else
{
- sb.AppendFormat("{0} blocks in volume cache", mdb.drVCSize).AppendLine();
- sb.AppendFormat("{0} blocks in volume bitmap cache", mdb.drVBMCSize).AppendLine();
- sb.AppendFormat("{0} blocks in volume common cache", mdb.drCtlCSize).AppendLine();
+ sb.AppendFormat(Localization._0_blocks_in_volume_cache, mdb.drVCSize).AppendLine();
+ sb.AppendFormat(Localization._0_blocks_in_volume_bitmap_cache, mdb.drVBMCSize).AppendLine();
+ sb.AppendFormat(Localization._0_blocks_in_volume_common_cache, mdb.drCtlCSize).AppendLine();
}
string bootBlockInfo = AppleCommon.GetBootBlockInformation(bbSector, Encoding);
if(bootBlockInfo != null)
{
- sb.AppendLine("Volume is bootable.");
+ sb.AppendLine(Localization.Volume_is_bootable);
sb.AppendLine();
sb.AppendLine(bootBlockInfo);
}
else if(mdb.drFndrInfo0 != 0 ||
mdb.drFndrInfo3 != 0 ||
mdb.drFndrInfo5 != 0)
- sb.AppendLine("Volume is bootable.");
+ sb.AppendLine(Localization.Volume_is_bootable);
else
- sb.AppendLine("Volume is not bootable.");
+ sb.AppendLine(Localization.Volume_is_not_bootable);
information = sb.ToString();
@@ -309,7 +309,7 @@ public sealed partial class AppleHFS
XmlFsType.ModificationDateSpecified = true;
}
- XmlFsType.Type = "HFS";
+ XmlFsType.Type = FS_TYPE;
XmlFsType.VolumeName = StringHandlers.PascalToString(mdb.drVN, Encoding);
if(mdb.drFndrInfo6 != 0 &&
diff --git a/Aaru.Filesystems/AppleHFSPlus.cs b/Aaru.Filesystems/AppleHFSPlus.cs
index 18dbb8c28..63007379c 100644
--- a/Aaru.Filesystems/AppleHFSPlus.cs
+++ b/Aaru.Filesystems/AppleHFSPlus.cs
@@ -47,16 +47,18 @@ namespace Aaru.Filesystems;
/// Implements detection of Apple Hierarchical File System Plus (HFS+)
public sealed class AppleHFSPlus : IFilesystem
{
+ const string FS_TYPE_HFSP = "hfsplus";
+ const string FS_TYPE_HFSX = "hfsx";
///
public FileSystemType XmlFsType { get; private set; }
///
public Encoding Encoding { get; private set; }
///
- public string Name => "Apple HFS+ filesystem";
+ public string Name => Localization.AppleHFSPlus_Name;
///
public Guid Id => new("36405F8D-0D26-6EBE-436F-62F0586B4F08");
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
///
public bool Identify(IMediaImage imagePlugin, Partition partition)
@@ -181,17 +183,17 @@ public sealed class AppleHFSPlus : IFilesystem
switch(vh.signature)
{
case 0x482B:
- sb.AppendLine("HFS+ filesystem.");
+ sb.AppendLine(Localization.HFS_filesystem);
break;
case 0x4858:
- sb.AppendLine("HFSX filesystem.");
+ sb.AppendLine(Localization.HFSX_filesystem);
break;
}
if(wrapped)
- sb.AppendLine("Volume is wrapped inside an HFS volume.");
+ sb.AppendLine(Localization.Volume_is_wrapped_inside_an_HFS_volume);
byte[] tmp = new byte[0x400];
Array.Copy(vhSector, 0x400, tmp, 0, 0x400);
@@ -201,76 +203,80 @@ public sealed class AppleHFSPlus : IFilesystem
if(vh.version is 4 or 5)
{
- sb.AppendFormat("Filesystem version is {0}.", vh.version).AppendLine();
+ sb.AppendFormat(Localization.Filesystem_version_is_0, vh.version).AppendLine();
if((vh.attributes & 0x80) == 0x80)
- sb.AppendLine("Volume is locked on hardware.");
+ sb.AppendLine(Localization.Volume_is_locked_on_hardware);
if((vh.attributes & 0x100) == 0x100)
- sb.AppendLine("Volume is unmounted.");
+ sb.AppendLine(Localization.Volume_is_unmounted);
if((vh.attributes & 0x200) == 0x200)
- sb.AppendLine("There are bad blocks in the extents file.");
+ sb.AppendLine(Localization.There_are_bad_blocks_in_the_extents_file);
if((vh.attributes & 0x400) == 0x400)
- sb.AppendLine("Volume does not require cache.");
+ sb.AppendLine(Localization.Volume_does_not_require_cache);
if((vh.attributes & 0x800) == 0x800)
- sb.AppendLine("Volume state is inconsistent.");
+ sb.AppendLine(Localization.Volume_state_is_inconsistent);
if((vh.attributes & 0x1000) == 0x1000)
- sb.AppendLine("CNIDs are reused.");
+ sb.AppendLine(Localization.There_are_reused_CNIDs);
if((vh.attributes & 0x2000) == 0x2000)
- sb.AppendLine("Volume is journaled.");
+ sb.AppendLine(Localization.Volume_is_journaled);
if((vh.attributes & 0x8000) == 0x8000)
- sb.AppendLine("Volume is locked on software.");
+ sb.AppendLine(Localization.Volume_is_locked_on_software);
- sb.AppendFormat("Implementation that last mounted the volume: \"{0}\".",
+ sb.AppendFormat(Localization.Implementation_that_last_mounted_the_volume_0,
Encoding.ASCII.GetString(vh.lastMountedVersion)).AppendLine();
if((vh.attributes & 0x2000) == 0x2000)
- sb.AppendFormat("Journal starts at allocation block {0}.", vh.journalInfoBlock).AppendLine();
+ sb.AppendFormat(Localization.Journal_starts_at_allocation_block_0, vh.journalInfoBlock).AppendLine();
- sb.AppendFormat("Creation date: {0}", DateHandlers.MacToDateTime(vh.createDate)).AppendLine();
- sb.AppendFormat("Last modification date: {0}", DateHandlers.MacToDateTime(vh.modifyDate)).AppendLine();
+ sb.AppendFormat(Localization.Creation_date_0, DateHandlers.MacToDateTime(vh.createDate)).AppendLine();
+
+ sb.AppendFormat(Localization.Last_modification_date_0, DateHandlers.MacToDateTime(vh.modifyDate)).
+ AppendLine();
if(vh.backupDate > 0)
- sb.AppendFormat("Last backup date: {0}", DateHandlers.MacToDateTime(vh.backupDate)).AppendLine();
+ sb.AppendFormat(Localization.Last_backup_date_0, DateHandlers.MacToDateTime(vh.backupDate)).
+ AppendLine();
else
- sb.AppendLine("Volume has never been backed up");
+ sb.AppendLine(Localization.Volume_has_never_been_backed_up);
if(vh.backupDate > 0)
- sb.AppendFormat("Last check date: {0}", DateHandlers.MacToDateTime(vh.checkedDate)).AppendLine();
+ sb.AppendFormat(Localization.Last_check_date_0, DateHandlers.MacToDateTime(vh.checkedDate)).
+ AppendLine();
else
- sb.AppendLine("Volume has never been checked up");
+ sb.AppendLine(Localization.Volume_has_never_been_checked_up);
- sb.AppendFormat("{0} files on volume.", vh.fileCount).AppendLine();
- sb.AppendFormat("{0} folders on volume.", vh.folderCount).AppendLine();
- sb.AppendFormat("{0} bytes per allocation block.", vh.blockSize).AppendLine();
- sb.AppendFormat("{0} allocation blocks.", vh.totalBlocks).AppendLine();
- sb.AppendFormat("{0} free blocks.", vh.freeBlocks).AppendLine();
- sb.AppendFormat("Next allocation block: {0}.", vh.nextAllocation).AppendLine();
- sb.AppendFormat("Resource fork clump size: {0} bytes.", vh.rsrcClumpSize).AppendLine();
- sb.AppendFormat("Data fork clump size: {0} bytes.", vh.dataClumpSize).AppendLine();
- sb.AppendFormat("Next unused CNID: {0}.", vh.nextCatalogID).AppendLine();
- sb.AppendFormat("Volume has been mounted writable {0} times.", vh.writeCount).AppendLine();
- sb.AppendFormat("Allocation File is {0} bytes.", vh.allocationFile_logicalSize).AppendLine();
- sb.AppendFormat("Extents File is {0} bytes.", vh.extentsFile_logicalSize).AppendLine();
- sb.AppendFormat("Catalog File is {0} bytes.", vh.catalogFile_logicalSize).AppendLine();
- sb.AppendFormat("Attributes File is {0} bytes.", vh.attributesFile_logicalSize).AppendLine();
- sb.AppendFormat("Startup File is {0} bytes.", vh.startupFile_logicalSize).AppendLine();
- sb.AppendLine("Finder info:");
- sb.AppendFormat("CNID of bootable system's directory: {0}", vh.drFndrInfo0).AppendLine();
- sb.AppendFormat("CNID of first-run application's directory: {0}", vh.drFndrInfo1).AppendLine();
- sb.AppendFormat("CNID of previously opened directory: {0}", vh.drFndrInfo2).AppendLine();
- sb.AppendFormat("CNID of bootable Mac OS 8 or 9 directory: {0}", vh.drFndrInfo3).AppendLine();
- sb.AppendFormat("CNID of bootable Mac OS X directory: {0}", vh.drFndrInfo5).AppendLine();
+ sb.AppendFormat(Localization._0_files_on_volume, vh.fileCount).AppendLine();
+ sb.AppendFormat(Localization._0_folders_on_volume, vh.folderCount).AppendLine();
+ sb.AppendFormat(Localization._0_bytes_per_allocation_block, vh.blockSize).AppendLine();
+ sb.AppendFormat(Localization._0_allocation_blocks, vh.totalBlocks).AppendLine();
+ sb.AppendFormat(Localization._0_free_blocks, vh.freeBlocks).AppendLine();
+ sb.AppendFormat(Localization.Next_allocation_block_0, vh.nextAllocation).AppendLine();
+ sb.AppendFormat(Localization.Resource_fork_clump_size_0_bytes, vh.rsrcClumpSize).AppendLine();
+ sb.AppendFormat(Localization.Data_fork_clump_size_0_bytes, vh.dataClumpSize).AppendLine();
+ sb.AppendFormat(Localization.Next_unused_CNID_0, vh.nextCatalogID).AppendLine();
+ sb.AppendFormat(Localization.Volume_has_been_mounted_writable_0_times, vh.writeCount).AppendLine();
+ sb.AppendFormat(Localization.Allocation_File_is_0_bytes, vh.allocationFile_logicalSize).AppendLine();
+ sb.AppendFormat(Localization.Extents_File_is_0_bytes, vh.extentsFile_logicalSize).AppendLine();
+ sb.AppendFormat(Localization.Catalog_File_is_0_bytes, vh.catalogFile_logicalSize).AppendLine();
+ sb.AppendFormat(Localization.Attributes_File_is_0_bytes, vh.attributesFile_logicalSize).AppendLine();
+ sb.AppendFormat(Localization.Startup_File_is_0_bytes, vh.startupFile_logicalSize).AppendLine();
+ sb.AppendLine(Localization.Finder_info);
+ sb.AppendFormat(Localization.CNID_of_bootable_system_directory_0, vh.drFndrInfo0).AppendLine();
+ sb.AppendFormat(Localization.CNID_of_first_run_application_directory_0, vh.drFndrInfo1).AppendLine();
+ sb.AppendFormat(Localization.CNID_of_previously_opened_directory_0, vh.drFndrInfo2).AppendLine();
+ sb.AppendFormat(Localization.CNID_of_bootable_Mac_OS_8_or_9_directory_0, vh.drFndrInfo3).AppendLine();
+ sb.AppendFormat(Localization.CNID_of_bootable_Mac_OS_X_directory_0, vh.drFndrInfo5).AppendLine();
if(vh.drFndrInfo6 != 0 &&
vh.drFndrInfo7 != 0)
- sb.AppendFormat("Mac OS X Volume ID: {0:X8}{1:X8}", vh.drFndrInfo6, vh.drFndrInfo7).AppendLine();
+ sb.AppendFormat(Localization.Mac_OS_X_Volume_ID_0_1, vh.drFndrInfo6, vh.drFndrInfo7).AppendLine();
XmlFsType = new FileSystemType();
@@ -304,8 +310,8 @@ public sealed class AppleHFSPlus : IFilesystem
XmlFsType.Type = vh.signature switch
{
- 0x482B => "HFS+",
- 0x4858 => "HFSX",
+ 0x482B => FS_TYPE_HFSP,
+ 0x4858 => FS_TYPE_HFSX,
_ => XmlFsType.Type
};
@@ -317,8 +323,8 @@ public sealed class AppleHFSPlus : IFilesystem
}
else
{
- sb.AppendFormat("Filesystem version is {0}.", vh.version).AppendLine();
- sb.AppendLine("This version is not supported yet.");
+ sb.AppendFormat(Localization.Filesystem_version_is_0, vh.version).AppendLine();
+ sb.AppendLine(Localization.This_version_is_not_supported_yet);
}
information = sb.ToString();
diff --git a/Aaru.Filesystems/AppleMFS/AppleMFS.cs b/Aaru.Filesystems/AppleMFS/AppleMFS.cs
index 85d8222a5..492c2c112 100644
--- a/Aaru.Filesystems/AppleMFS/AppleMFS.cs
+++ b/Aaru.Filesystems/AppleMFS/AppleMFS.cs
@@ -65,13 +65,13 @@ public sealed partial class AppleMFS : IReadOnlyFilesystem
///
public FileSystemType XmlFsType { get; private set; }
///
- public string Name => "Apple Macintosh File System";
+ public string Name => Localization.AppleMFS_Name;
///
public Guid Id => new("36405F8D-0D26-4066-6538-5DBF5D065C3A");
///
public Encoding Encoding { get; private set; }
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
// TODO: Implement Finder namespace (requires decoding Desktop database)
///
diff --git a/Aaru.Filesystems/AppleMFS/Consts.cs b/Aaru.Filesystems/AppleMFS/Consts.cs
index c796b7431..32984068f 100644
--- a/Aaru.Filesystems/AppleMFS/Consts.cs
+++ b/Aaru.Filesystems/AppleMFS/Consts.cs
@@ -48,4 +48,7 @@ public sealed partial class AppleMFS
const int BMAP_FREE = 0;
const int BMAP_LAST = 1;
const int BMAP_DIR = 0xFFF;
+
+ // Do not translate
+ const string FS_TYPE = "mfs";
}
\ No newline at end of file
diff --git a/Aaru.Filesystems/AppleMFS/File.cs b/Aaru.Filesystems/AppleMFS/File.cs
index 373768aa4..906ec2bd5 100644
--- a/Aaru.Filesystems/AppleMFS/File.cs
+++ b/Aaru.Filesystems/AppleMFS/File.cs
@@ -379,7 +379,7 @@ public sealed partial class AppleMFS
if(_blockMap[nextBlock] == BMAP_FREE)
{
- AaruConsole.ErrorWriteLine("File truncated at block {0}", nextBlock);
+ AaruConsole.ErrorWriteLine(Localization.File_truncated_at_block_0, nextBlock);
break;
}
diff --git a/Aaru.Filesystems/AppleMFS/Info.cs b/Aaru.Filesystems/AppleMFS/Info.cs
index c96484735..2f9c9914b 100644
--- a/Aaru.Filesystems/AppleMFS/Info.cs
+++ b/Aaru.Filesystems/AppleMFS/Info.cs
@@ -103,57 +103,57 @@ public sealed partial class AppleMFS
Array.Copy(mdbSector, 0x024, variableSize, 0, mdb.drVNSiz + 1);
mdb.drVN = StringHandlers.PascalToString(variableSize, Encoding);
- sb.AppendLine("Apple Macintosh File System");
+ sb.AppendLine(Localization.AppleMFS_Name);
sb.AppendLine();
- sb.AppendLine("Master Directory Block:");
- sb.AppendFormat("Creation date: {0}", DateHandlers.MacToDateTime(mdb.drCrDate)).AppendLine();
- sb.AppendFormat("Last backup date: {0}", DateHandlers.MacToDateTime(mdb.drLsBkUp)).AppendLine();
+ sb.AppendLine(Localization.Master_Directory_Block);
+ sb.AppendFormat(Localization.Creation_date_0, DateHandlers.MacToDateTime(mdb.drCrDate)).AppendLine();
+ sb.AppendFormat(Localization.Last_backup_date_0, DateHandlers.MacToDateTime(mdb.drLsBkUp)).AppendLine();
if(mdb.drAtrb.HasFlag(AppleCommon.VolumeAttributes.HardwareLock))
- sb.AppendLine("Volume is locked by hardware.");
+ sb.AppendLine(Localization.Volume_is_locked_by_hardware);
- sb.AppendLine(mdb.drAtrb.HasFlag(AppleCommon.VolumeAttributes.Unmounted) ? "Volume was unmonted."
- : "Volume is mounted.");
+ sb.AppendLine(mdb.drAtrb.HasFlag(AppleCommon.VolumeAttributes.Unmounted) ? Localization.Volume_was_unmonted
+ : Localization.Volume_is_mounted);
if(mdb.drAtrb.HasFlag(AppleCommon.VolumeAttributes.SparedBadBlocks))
- sb.AppendLine("Volume has spared bad blocks.");
+ sb.AppendLine(Localization.Volume_has_spared_bad_blocks);
if(mdb.drAtrb.HasFlag(AppleCommon.VolumeAttributes.DoesNotNeedCache))
- sb.AppendLine("Volume does not need cache.");
+ sb.AppendLine(Localization.Volume_does_not_need_cache);
if(mdb.drAtrb.HasFlag(AppleCommon.VolumeAttributes.BootInconsistent))
- sb.AppendLine("Boot volume is inconsistent.");
+ sb.AppendLine(Localization.Boot_volume_is_inconsistent);
if(mdb.drAtrb.HasFlag(AppleCommon.VolumeAttributes.ReusedIds))
- sb.AppendLine("There are reused CNIDs.");
+ sb.AppendLine(Localization.There_are_reused_CNIDs);
if(mdb.drAtrb.HasFlag(AppleCommon.VolumeAttributes.Inconsistent))
- sb.AppendLine("Volume is seriously inconsistent.");
+ sb.AppendLine(Localization.Volume_is_seriously_inconsistent);
if(mdb.drAtrb.HasFlag(AppleCommon.VolumeAttributes.SoftwareLock))
- sb.AppendLine("Volume is locked by software.");
+ sb.AppendLine(Localization.Volume_is_locked_by_software);
- sb.AppendFormat("{0} files on volume", mdb.drNmFls).AppendLine();
- sb.AppendFormat("First directory sector: {0}", mdb.drDirSt).AppendLine();
- sb.AppendFormat("{0} sectors in directory.", mdb.drBlLen).AppendLine();
- sb.AppendFormat("{0} volume allocation blocks.", mdb.drNmAlBlks + 1).AppendLine();
- sb.AppendFormat("Size of allocation blocks: {0} bytes", mdb.drAlBlkSiz).AppendLine();
- sb.AppendFormat("{0} bytes to allocate.", mdb.drClpSiz).AppendLine();
- sb.AppendFormat("First allocation block (#2) starts in sector {0}.", mdb.drAlBlSt).AppendLine();
- sb.AppendFormat("Next unused file number: {0}", mdb.drNxtFNum).AppendLine();
- sb.AppendFormat("{0} unused allocation blocks.", mdb.drFreeBks).AppendLine();
- sb.AppendFormat("Volume name: {0}", mdb.drVN).AppendLine();
+ sb.AppendFormat(Localization._0_files_on_volume, mdb.drNmFls).AppendLine();
+ sb.AppendFormat(Localization.First_directory_sector_0, mdb.drDirSt).AppendLine();
+ sb.AppendFormat(Localization._0_sectors_in_directory, mdb.drBlLen).AppendLine();
+ sb.AppendFormat(Localization._0_volume_allocation_blocks, mdb.drNmAlBlks + 1).AppendLine();
+ sb.AppendFormat(Localization.Size_of_allocation_blocks_0_bytes, mdb.drAlBlkSiz).AppendLine();
+ sb.AppendFormat(Localization._0_bytes_to_allocate, mdb.drClpSiz).AppendLine();
+ sb.AppendFormat(Localization.First_allocation_block_number_two_starts_in_sector_0, mdb.drAlBlSt).AppendLine();
+ sb.AppendFormat(Localization.Next_unused_file_number_0, mdb.drNxtFNum).AppendLine();
+ sb.AppendFormat(Localization._0_unused_allocation_blocks, mdb.drFreeBks).AppendLine();
+ sb.AppendFormat(Localization.Volume_name_0, mdb.drVN).AppendLine();
string bootBlockInfo = AppleCommon.GetBootBlockInformation(bbSector, Encoding);
if(bootBlockInfo != null)
{
- sb.AppendLine("Volume is bootable.");
+ sb.AppendLine(Localization.Volume_is_bootable);
sb.AppendLine();
sb.AppendLine(bootBlockInfo);
}
else
- sb.AppendLine("Volume is not bootable.");
+ sb.AppendLine(Localization.Volume_is_not_bootable);
information = sb.ToString();
@@ -179,7 +179,7 @@ public sealed partial class AppleMFS
XmlFsType.FilesSpecified = true;
XmlFsType.FreeClusters = mdb.drFreeBks;
XmlFsType.FreeClustersSpecified = true;
- XmlFsType.Type = "MFS";
+ XmlFsType.Type = FS_TYPE;
XmlFsType.VolumeName = mdb.drVN;
}
}
\ No newline at end of file
diff --git a/Aaru.Filesystems/AppleMFS/Super.cs b/Aaru.Filesystems/AppleMFS/Super.cs
index a99c36a70..346d15805 100644
--- a/Aaru.Filesystems/AppleMFS/Super.cs
+++ b/Aaru.Filesystems/AppleMFS/Super.cs
@@ -204,7 +204,7 @@ public sealed partial class AppleMFS
XmlFsType.FilesSpecified = true;
XmlFsType.FreeClusters = _volMdb.drFreeBks;
XmlFsType.FreeClustersSpecified = true;
- XmlFsType.Type = "MFS";
+ XmlFsType.Type = FS_TYPE;
XmlFsType.VolumeName = _volMdb.drVN;
return ErrorNumber.NoError;
@@ -232,7 +232,7 @@ public sealed partial class AppleMFS
Files = _volMdb.drNmFls,
FreeBlocks = _volMdb.drFreeBks,
PluginId = Id,
- Type = "Apple MFS"
+ Type = FS_TYPE
};
stat.FreeFiles = uint.MaxValue - stat.Files;
diff --git a/Aaru.Filesystems/AtheOS.cs b/Aaru.Filesystems/AtheOS.cs
index cdc369b4c..25e821a18 100644
--- a/Aaru.Filesystems/AtheOS.cs
+++ b/Aaru.Filesystems/AtheOS.cs
@@ -62,11 +62,11 @@ public sealed class AtheOS : IFilesystem
///
public Encoding Encoding { get; private set; }
///
- public string Name => "AtheOS Filesystem";
+ public string Name => Localization.AtheOS_Name;
///
public Guid Id => new("AAB2C4F1-DC07-49EE-A948-576CC51B58C5");
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
///
public bool Identify(IMediaImage imagePlugin, Partition partition)
@@ -123,51 +123,51 @@ public sealed class AtheOS : IFilesystem
SuperBlock afsSb = Marshal.ByteArrayToStructureLittleEndian(sbSector);
- sb.AppendLine("Atheos filesystem");
+ sb.AppendLine(Localization.Atheos_filesystem);
if(afsSb.flags == 1)
- sb.AppendLine("Filesystem is read-only");
+ sb.AppendLine(Localization.Filesystem_is_read_only);
- sb.AppendFormat("Volume name: {0}", StringHandlers.CToString(afsSb.name, Encoding)).AppendLine();
- sb.AppendFormat("{0} bytes per block", afsSb.block_size).AppendLine();
+ sb.AppendFormat(Localization.Volume_name_0, StringHandlers.CToString(afsSb.name, Encoding)).AppendLine();
+ sb.AppendFormat(Localization._0_bytes_per_block, afsSb.block_size).AppendLine();
- sb.AppendFormat("{0} blocks in volume ({1} bytes)", afsSb.num_blocks, afsSb.num_blocks * afsSb.block_size).
+ sb.AppendFormat(Localization._0_blocks_in_volume_1_bytes, afsSb.num_blocks,
+ afsSb.num_blocks * afsSb.block_size).AppendLine();
+
+ sb.AppendFormat(Localization._0_used_blocks_1_bytes, afsSb.used_blocks, afsSb.used_blocks * afsSb.block_size).
AppendLine();
- sb.AppendFormat("{0} used blocks ({1} bytes)", afsSb.used_blocks, afsSb.used_blocks * afsSb.block_size).
- AppendLine();
+ sb.AppendFormat(Localization._0_bytes_per_i_node, afsSb.inode_size).AppendLine();
- sb.AppendFormat("{0} bytes per i-node", afsSb.inode_size).AppendLine();
-
- sb.AppendFormat("{0} blocks per allocation group ({1} bytes)", afsSb.blocks_per_ag,
+ sb.AppendFormat(Localization._0_blocks_per_allocation_group_1_bytes, afsSb.blocks_per_ag,
afsSb.blocks_per_ag * afsSb.block_size).AppendLine();
- sb.AppendFormat("{0} allocation groups in volume", afsSb.num_ags).AppendLine();
+ sb.AppendFormat(Localization._0_allocation_groups_in_volume, afsSb.num_ags).AppendLine();
- sb.AppendFormat("Journal resides in block {0} of allocation group {1} and runs for {2} blocks ({3} bytes)",
+ sb.AppendFormat(Localization.Journal_resides_in_block_0_of_allocation_group_1_and_runs_for_2_blocks_3_bytes,
afsSb.log_blocks_start, afsSb.log_blocks_ag, afsSb.log_blocks_len,
afsSb.log_blocks_len * afsSb.block_size).AppendLine();
- sb.AppendFormat("Journal starts in byte {0} and has {1} bytes in {2} blocks", afsSb.log_start, afsSb.log_size,
- afsSb.log_valid_blocks).AppendLine();
+ sb.AppendFormat(Localization.Journal_starts_in_byte_0_and_has_1_bytes_in_2_blocks, afsSb.log_start,
+ afsSb.log_size, afsSb.log_valid_blocks).AppendLine();
sb.
- AppendFormat("Root folder's i-node resides in block {0} of allocation group {1} and runs for {2} blocks ({3} bytes)",
+ AppendFormat(Localization.Root_folder_s_i_node_resides_in_block_0_of_allocation_group_1_and_runs_for_2_blocks_3_bytes,
afsSb.root_dir_start, afsSb.root_dir_ag, afsSb.root_dir_len,
afsSb.root_dir_len * afsSb.block_size).AppendLine();
sb.
- AppendFormat("Directory containing files scheduled for deletion's i-node resides in block {0} of allocation group {1} and runs for {2} blocks ({3} bytes)",
+ AppendFormat(Localization.Directory_containing_files_scheduled_for_deletion_i_node_resides_in_block_0_of_allocation_group_1_and_runs_for_2_blocks_3_bytes,
afsSb.deleted_start, afsSb.deleted_ag, afsSb.deleted_len,
afsSb.deleted_len * afsSb.block_size).AppendLine();
sb.
- AppendFormat("Indices' i-node resides in block {0} of allocation group {1} and runs for {2} blocks ({3} bytes)",
+ AppendFormat(Localization.Indices_i_node_resides_in_block_0_of_allocation_group_1_and_runs_for_2_blocks_3_bytes,
afsSb.indices_start, afsSb.indices_ag, afsSb.indices_len,
afsSb.indices_len * afsSb.block_size).AppendLine();
- sb.AppendFormat("{0} blocks for bootloader ({1} bytes)", afsSb.boot_size, afsSb.boot_size * afsSb.block_size).
- AppendLine();
+ sb.AppendFormat(Localization._0_blocks_for_bootloader_1_bytes, afsSb.boot_size,
+ afsSb.boot_size * afsSb.block_size).AppendLine();
information = sb.ToString();
@@ -178,11 +178,13 @@ public sealed class AtheOS : IFilesystem
Dirty = false,
FreeClusters = (ulong)(afsSb.num_blocks - afsSb.used_blocks),
FreeClustersSpecified = true,
- Type = "AtheOS filesystem",
+ Type = FS_TYPE,
VolumeName = StringHandlers.CToString(afsSb.name, Encoding)
};
}
+ const string FS_TYPE = "atheos";
+
/// Be superblock
[StructLayout(LayoutKind.Sequential, Pack = 1)]
readonly struct SuperBlock
diff --git a/Aaru.Filesystems/Authors.cs b/Aaru.Filesystems/Authors.cs
new file mode 100644
index 000000000..713c4ba04
--- /dev/null
+++ b/Aaru.Filesystems/Authors.cs
@@ -0,0 +1,37 @@
+// /***************************************************************************
+// Aaru Data Preservation Suite
+// ----------------------------------------------------------------------------
+//
+// Filename : Authors.cs
+// Author(s) : Natalia Portillo
+//
+// Component : Aaru.Filesystems.
+//
+// --[ License ] --------------------------------------------------------------
+//
+// This library is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as
+// published by the Free Software Foundation; either version 2.1 of the
+// License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, see .
+//
+// ----------------------------------------------------------------------------
+// Copyright © 2011-2022 Natalia Portillo
+// ****************************************************************************/
+
+using System.Diagnostics.CodeAnalysis;
+
+namespace Aaru.Filesystems;
+
+[SuppressMessage("ReSharper", "InconsistentNaming")]
+static class Authors
+{
+ internal const string NataliaPortillo = "Natalia Portillo";
+}
\ No newline at end of file
diff --git a/Aaru.Filesystems/BFS.cs b/Aaru.Filesystems/BFS.cs
index d02a05051..dabf79c59 100644
--- a/Aaru.Filesystems/BFS.cs
+++ b/Aaru.Filesystems/BFS.cs
@@ -68,11 +68,11 @@ public sealed class BeFS : IFilesystem
///
public Encoding Encoding { get; private set; }
///
- public string Name => "Be Filesystem";
+ public string Name => Localization.BeFS_Name;
///
public Guid Id => new("dc8572b3-b6ad-46e4-8de9-cbe123ff6672");
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
///
public bool Identify(IMediaImage imagePlugin, Partition partition)
@@ -170,7 +170,7 @@ public sealed class BeFS : IFilesystem
besb = littleEndian ? Marshal.ByteArrayToStructureLittleEndian(sbSector)
: Marshal.ByteArrayToStructureBigEndian(sbSector);
- sb.AppendLine(littleEndian ? "Little-endian BeFS" : "Big-endian BeFS");
+ sb.AppendLine(littleEndian ? Localization.Little_endian_BeFS : Localization.Big_endian_BeFS);
if(besb.magic1 != BEFS_MAGIC1 ||
besb.fs_byte_order != BEFS_ENDIAN ||
@@ -180,65 +180,69 @@ public sealed class BeFS : IFilesystem
besb.indices_len != 1 ||
1 << (int)besb.block_shift != besb.block_size)
{
- sb.AppendLine("Superblock seems corrupt, following information may be incorrect");
- sb.AppendFormat("Magic 1: 0x{0:X8} (Should be 0x42465331)", besb.magic1).AppendLine();
- sb.AppendFormat("Magic 2: 0x{0:X8} (Should be 0xDD121031)", besb.magic2).AppendLine();
- sb.AppendFormat("Magic 3: 0x{0:X8} (Should be 0x15B6830E)", besb.magic3).AppendLine();
+ sb.AppendLine(Localization.Superblock_seems_corrupt_following_information_may_be_incorrect);
+ sb.AppendFormat(Localization.Magic_one_0_Should_be_0x42465331, besb.magic1).AppendLine();
+ sb.AppendFormat(Localization.Magic_two_0_Should_be_0xDD121031, besb.magic2).AppendLine();
+ sb.AppendFormat(Localization.Magic_three_0_Should_be_0x15B6830E, besb.magic3).AppendLine();
- sb.AppendFormat("Filesystem endianness: 0x{0:X8} (Should be 0x42494745)", besb.fs_byte_order).AppendLine();
+ sb.AppendFormat(Localization.Filesystem_endianness_0_Should_be_0x42494745, besb.fs_byte_order).AppendLine();
- sb.AppendFormat("Root folder's i-node size: {0} blocks (Should be 1)", besb.root_dir_len).AppendLine();
- sb.AppendFormat("Indices' i-node size: {0} blocks (Should be 1)", besb.indices_len).AppendLine();
+ sb.AppendFormat(Localization.Root_folder_i_node_size_0_blocks_Should_be_one, besb.root_dir_len).
+ AppendLine();
- sb.AppendFormat("1 << block_shift == block_size => 1 << {0} == {1} (Should be {2})", besb.block_shift,
- 1 << (int)besb.block_shift, besb.block_size).AppendLine();
+ sb.AppendFormat(Localization.Indices_i_node_size_0_blocks_Should_be_one, besb.indices_len).AppendLine();
+
+ sb.AppendFormat(Localization.blockshift_0_1_should_be_2, besb.block_shift, 1 << (int)besb.block_shift,
+ besb.block_size).AppendLine();
}
switch(besb.flags)
{
case BEFS_CLEAN:
- sb.AppendLine(besb.log_start == besb.log_end ? "Filesystem is clean" : "Filesystem is dirty");
+ sb.AppendLine(besb.log_start == besb.log_end ? Localization.Filesystem_is_clean
+ : Localization.Filesystem_is_dirty);
break;
case BEFS_DIRTY:
- sb.AppendLine("Filesystem is dirty");
+ sb.AppendLine(Localization.Filesystem_is_dirty);
break;
default:
- sb.AppendFormat("Unknown flags: {0:X8}", besb.flags).AppendLine();
+ sb.AppendFormat(Localization.Unknown_flags_0_X8, besb.flags).AppendLine();
break;
}
- sb.AppendFormat("Volume name: {0}", StringHandlers.CToString(besb.name, Encoding)).AppendLine();
- sb.AppendFormat("{0} bytes per block", besb.block_size).AppendLine();
+ sb.AppendFormat(Localization.Volume_name_0, StringHandlers.CToString(besb.name, Encoding)).AppendLine();
+ sb.AppendFormat(Localization._0_bytes_per_block, besb.block_size).AppendLine();
- sb.AppendFormat("{0} blocks in volume ({1} bytes)", besb.num_blocks, besb.num_blocks * besb.block_size).
+ sb.AppendFormat(Localization._0_blocks_in_volume_1_bytes, besb.num_blocks, besb.num_blocks * besb.block_size).
AppendLine();
- sb.AppendFormat("{0} used blocks ({1} bytes)", besb.used_blocks, besb.used_blocks * besb.block_size).
+ sb.AppendFormat(Localization._0_used_blocks_1_bytes, besb.used_blocks, besb.used_blocks * besb.block_size).
AppendLine();
- sb.AppendFormat("{0} bytes per i-node", besb.inode_size).AppendLine();
+ sb.AppendFormat(Localization._0_bytes_per_i_node, besb.inode_size).AppendLine();
- sb.AppendFormat("{0} blocks per allocation group ({1} bytes)", besb.blocks_per_ag,
+ sb.AppendFormat(Localization._0_blocks_per_allocation_group_1_bytes, besb.blocks_per_ag,
besb.blocks_per_ag * besb.block_size).AppendLine();
- sb.AppendFormat("{0} allocation groups in volume", besb.num_ags).AppendLine();
+ sb.AppendFormat(Localization._0_allocation_groups_in_volume, besb.num_ags).AppendLine();
- sb.AppendFormat("Journal resides in block {0} of allocation group {1} and runs for {2} blocks ({3} bytes)",
+ sb.AppendFormat(Localization.Journal_resides_in_block_0_of_allocation_group_1_and_runs_for_2_blocks_3_bytes,
besb.log_blocks_start, besb.log_blocks_ag, besb.log_blocks_len,
besb.log_blocks_len * besb.block_size).AppendLine();
- sb.AppendFormat("Journal starts in byte {0} and ends in byte {1}", besb.log_start, besb.log_end).AppendLine();
+ sb.AppendFormat(Localization.Journal_starts_in_byte_0_and_ends_in_byte_1, besb.log_start, besb.log_end).
+ AppendLine();
sb.
- AppendFormat("Root folder's i-node resides in block {0} of allocation group {1} and runs for {2} blocks ({3} bytes)",
+ AppendFormat(Localization.Root_folder_s_i_node_resides_in_block_0_of_allocation_group_1_and_runs_for_2_blocks_3_bytes,
besb.root_dir_start, besb.root_dir_ag, besb.root_dir_len, besb.root_dir_len * besb.block_size).
AppendLine();
sb.
- AppendFormat("Indices' i-node resides in block {0} of allocation group {1} and runs for {2} blocks ({3} bytes)",
+ AppendFormat(Localization.Indices_i_node_resides_in_block_0_of_allocation_group_1_and_runs_for_2_blocks_3_bytes,
besb.indices_start, besb.indices_ag, besb.indices_len, besb.indices_len * besb.block_size).
AppendLine();
@@ -251,11 +255,13 @@ public sealed class BeFS : IFilesystem
Dirty = besb.flags == BEFS_DIRTY,
FreeClusters = (ulong)(besb.num_blocks - besb.used_blocks),
FreeClustersSpecified = true,
- Type = "BeFS",
+ Type = FS_TYPE,
VolumeName = StringHandlers.CToString(besb.name, Encoding)
};
}
+ const string FS_TYPE = "befs";
+
/// Be superblock
[StructLayout(LayoutKind.Sequential, Pack = 1)]
struct SuperBlock
diff --git a/Aaru.Filesystems/BTRFS.cs b/Aaru.Filesystems/BTRFS.cs
index a05243799..0befa17a5 100644
--- a/Aaru.Filesystems/BTRFS.cs
+++ b/Aaru.Filesystems/BTRFS.cs
@@ -49,16 +49,18 @@ public sealed class BTRFS : IFilesystem
/// BTRFS magic "_BHRfS_M"
const ulong BTRFS_MAGIC = 0x4D5F53665248425F;
+ const string FS_TYPE = "btrfs";
+
///
public FileSystemType XmlFsType { get; private set; }
///
public Encoding Encoding { get; private set; }
///
- public string Name => "B-tree file system";
+ public string Name => Localization.BTRFS_Name;
///
public Guid Id => new("C904CF15-5222-446B-B7DB-02EAC5D781B3");
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
///
public bool Identify(IMediaImage imagePlugin, Partition partition)
@@ -175,27 +177,27 @@ public sealed class BTRFS : IFilesystem
AaruConsole.DebugWriteLine("BTRFS Plugin", "btrfsSb.dev_item.uuid = {0}", btrfsSb.dev_item.uuid);
AaruConsole.DebugWriteLine("BTRFS Plugin", "btrfsSb.label = {0}", btrfsSb.label);
- sbInformation.AppendLine("B-tree filesystem");
- sbInformation.AppendFormat("UUID: {0}", btrfsSb.uuid).AppendLine();
- sbInformation.AppendFormat("This superblock resides on physical block {0}", btrfsSb.pba).AppendLine();
- sbInformation.AppendFormat("Root tree starts at LBA {0}", btrfsSb.root_lba).AppendLine();
- sbInformation.AppendFormat("Chunk tree starts at LBA {0}", btrfsSb.chunk_lba).AppendLine();
- sbInformation.AppendFormat("Log tree starts at LBA {0}", btrfsSb.log_lba).AppendLine();
+ sbInformation.AppendLine(Localization.B_tree_filesystem);
+ sbInformation.AppendFormat(Localization.UUID_0, btrfsSb.uuid).AppendLine();
+ sbInformation.AppendFormat(Localization.This_superblock_resides_on_physical_block_0, btrfsSb.pba).AppendLine();
+ sbInformation.AppendFormat(Localization.Root_tree_starts_at_LBA_0, btrfsSb.root_lba).AppendLine();
+ sbInformation.AppendFormat(Localization.Chunk_tree_starts_at_LBA_0, btrfsSb.chunk_lba).AppendLine();
+ sbInformation.AppendFormat(Localization.Log_tree_starts_at_LBA_0, btrfsSb.log_lba).AppendLine();
- sbInformation.AppendFormat("Volume has {0} bytes spanned in {1} devices", btrfsSb.total_bytes,
+ sbInformation.AppendFormat(Localization.Volume_has_0_bytes_spanned_in_1_devices, btrfsSb.total_bytes,
btrfsSb.num_devices).AppendLine();
- sbInformation.AppendFormat("Volume has {0} bytes used", btrfsSb.bytes_used).AppendLine();
- sbInformation.AppendFormat("{0} bytes/sector", btrfsSb.sectorsize).AppendLine();
- sbInformation.AppendFormat("{0} bytes/node", btrfsSb.nodesize).AppendLine();
- sbInformation.AppendFormat("{0} bytes/leaf", btrfsSb.leafsize).AppendLine();
- sbInformation.AppendFormat("{0} bytes/stripe", btrfsSb.stripesize).AppendLine();
- sbInformation.AppendFormat("Flags: 0x{0:X}", btrfsSb.flags).AppendLine();
- sbInformation.AppendFormat("Compatible flags: 0x{0:X}", btrfsSb.compat_flags).AppendLine();
- sbInformation.AppendFormat("Read-only compatible flags: 0x{0:X}", btrfsSb.compat_ro_flags).AppendLine();
- sbInformation.AppendFormat("Incompatible flags: 0x{0:X}", btrfsSb.incompat_flags).AppendLine();
- sbInformation.AppendFormat("Device's UUID: {0}", btrfsSb.dev_item.uuid).AppendLine();
- sbInformation.AppendFormat("Volume label: {0}", btrfsSb.label).AppendLine();
+ sbInformation.AppendFormat(Localization.Volume_has_0_bytes_used, btrfsSb.bytes_used).AppendLine();
+ sbInformation.AppendFormat(Localization._0_bytes_sector, btrfsSb.sectorsize).AppendLine();
+ sbInformation.AppendFormat(Localization._0_bytes_node, btrfsSb.nodesize).AppendLine();
+ sbInformation.AppendFormat(Localization._0_bytes_leaf, btrfsSb.leafsize).AppendLine();
+ sbInformation.AppendFormat(Localization._0_bytes_stripe, btrfsSb.stripesize).AppendLine();
+ sbInformation.AppendFormat(Localization.Flags_0, btrfsSb.flags).AppendLine();
+ sbInformation.AppendFormat(Localization.Compatible_flags_0, btrfsSb.compat_flags).AppendLine();
+ sbInformation.AppendFormat(Localization.Read_only_compatible_flags_0, btrfsSb.compat_ro_flags).AppendLine();
+ sbInformation.AppendFormat(Localization.Incompatible_flags_0, btrfsSb.incompat_flags).AppendLine();
+ sbInformation.AppendFormat(Localization.Device_UUID_0, btrfsSb.dev_item.uuid).AppendLine();
+ sbInformation.AppendFormat(Localization.Volume_label_0, btrfsSb.label).AppendLine();
information = sbInformation.ToString();
@@ -207,7 +209,7 @@ public sealed class BTRFS : IFilesystem
VolumeName = btrfsSb.label,
VolumeSerial = $"{btrfsSb.uuid}",
VolumeSetIdentifier = $"{btrfsSb.dev_item.device_uuid}",
- Type = Name
+ Type = FS_TYPE
};
XmlFsType.FreeClusters = XmlFsType.Clusters - (btrfsSb.bytes_used / btrfsSb.sectorsize);
diff --git a/Aaru.Filesystems/CBM.cs b/Aaru.Filesystems/CBM.cs
index 2a436de95..fb1f84285 100644
--- a/Aaru.Filesystems/CBM.cs
+++ b/Aaru.Filesystems/CBM.cs
@@ -48,16 +48,17 @@ namespace Aaru.Filesystems;
/// Implements detection of the filesystem used in 8-bit Commodore microcomputers
public sealed class CBM : IFilesystem
{
+ const string FS_TYPE = "cbmfs";
///
public FileSystemType XmlFsType { get; private set; }
///
- public string Name => "Commodore file system";
+ public string Name => Localization.CBM_Name;
///
public Guid Id => new("D104744E-A376-450C-BAC0-1347C93F983B");
///
public Encoding Encoding { get; private set; }
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
///
public bool Identify(IMediaImage imagePlugin, Partition partition)
@@ -114,11 +115,11 @@ public sealed class CBM : IFilesystem
var sbInformation = new StringBuilder();
- sbInformation.AppendLine("Commodore file system");
+ sbInformation.AppendLine(Localization.Commodore_file_system);
XmlFsType = new FileSystemType
{
- Type = "Commodore file system",
+ Type = FS_TYPE,
Clusters = imagePlugin.Info.Sectors,
ClusterSize = 256
};
@@ -132,27 +133,28 @@ public sealed class CBM : IFilesystem
Header cbmHdr = Marshal.ByteArrayToStructureLittleEndian(sector);
- sbInformation.AppendFormat("Directory starts at track {0} sector {1}", cbmHdr.directoryTrack,
+ sbInformation.AppendFormat(Localization.Directory_starts_at_track_0_sector_1, cbmHdr.directoryTrack,
cbmHdr.directorySector).AppendLine();
- sbInformation.AppendFormat("Disk DOS Version: {0}", Encoding.ASCII.GetString(new[]
+ sbInformation.AppendFormat(Localization.Disk_DOS_Version_0, Encoding.ASCII.GetString(new[]
{
cbmHdr.diskDosVersion
})).AppendLine();
- sbInformation.AppendFormat("DOS Version: {0}", Encoding.ASCII.GetString(new[]
+ sbInformation.AppendFormat(Localization.DOS_Version_0, Encoding.ASCII.GetString(new[]
{
cbmHdr.dosVersion
})).AppendLine();
- sbInformation.AppendFormat("Disk Version: {0}", Encoding.ASCII.GetString(new[]
+ sbInformation.AppendFormat(Localization.Disk_Version_0, Encoding.ASCII.GetString(new[]
{
cbmHdr.diskVersion
})).AppendLine();
- sbInformation.AppendFormat("Disk ID: {0}", cbmHdr.diskId).AppendLine();
+ sbInformation.AppendFormat(Localization.Disk_ID_0, cbmHdr.diskId).AppendLine();
- sbInformation.AppendFormat("Disk name: {0}", StringHandlers.CToString(cbmHdr.name, Encoding)).AppendLine();
+ sbInformation.AppendFormat(Localization.Disk_name_0, StringHandlers.CToString(cbmHdr.name, Encoding)).
+ AppendLine();
XmlFsType.VolumeName = StringHandlers.CToString(cbmHdr.name, Encoding);
XmlFsType.VolumeSerial = $"{cbmHdr.diskId}";
@@ -166,20 +168,21 @@ public sealed class CBM : IFilesystem
BAM cbmBam = Marshal.ByteArrayToStructureLittleEndian(sector);
- sbInformation.AppendFormat("Directory starts at track {0} sector {1}", cbmBam.directoryTrack,
+ sbInformation.AppendFormat(Localization.Directory_starts_at_track_0_sector_1, cbmBam.directoryTrack,
cbmBam.directorySector).AppendLine();
- sbInformation.AppendFormat("Disk DOS type: {0}",
+ sbInformation.AppendFormat(Localization.Disk_DOS_type_0,
Encoding.ASCII.GetString(BitConverter.GetBytes(cbmBam.dosType))).AppendLine();
- sbInformation.AppendFormat("DOS Version: {0}", Encoding.ASCII.GetString(new[]
+ sbInformation.AppendFormat(Localization.DOS_Version_0, Encoding.ASCII.GetString(new[]
{
cbmBam.dosVersion
})).AppendLine();
- sbInformation.AppendFormat("Disk ID: {0}", cbmBam.diskId).AppendLine();
+ sbInformation.AppendFormat(Localization.Disk_ID_0, cbmBam.diskId).AppendLine();
- sbInformation.AppendFormat("Disk name: {0}", StringHandlers.CToString(cbmBam.name, Encoding)).AppendLine();
+ sbInformation.AppendFormat(Localization.Disk_name_0, StringHandlers.CToString(cbmBam.name, Encoding)).
+ AppendLine();
XmlFsType.VolumeName = StringHandlers.CToString(cbmBam.name, Encoding);
XmlFsType.VolumeSerial = $"{cbmBam.diskId}";
diff --git a/Aaru.Filesystems/CPM/CPM.cs b/Aaru.Filesystems/CPM/CPM.cs
index 2f6dbb89e..809ce4388 100644
--- a/Aaru.Filesystems/CPM/CPM.cs
+++ b/Aaru.Filesystems/CPM/CPM.cs
@@ -86,11 +86,11 @@ public sealed partial class CPM : IReadOnlyFilesystem
///
public Encoding Encoding { get; private set; }
///
- public string Name => "CP/M File System";
+ public string Name => Localization.CPM_Name;
///
public Guid Id => new("AA2B8585-41DF-4E3B-8A35-D1A935E2F8A1");
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
///
public IEnumerable<(string name, Type type, string description)> SupportedOptions =>
diff --git a/Aaru.Filesystems/CPM/Consts.cs b/Aaru.Filesystems/CPM/Consts.cs
index a021bf068..1f34f46b7 100644
--- a/Aaru.Filesystems/CPM/Consts.cs
+++ b/Aaru.Filesystems/CPM/Consts.cs
@@ -36,6 +36,9 @@ namespace Aaru.Filesystems;
public sealed partial class CPM
{
+ // Do not translate
+ const string FS_TYPE = "cpmfs";
+
/// Enumerates the format identification byte used by CP/M-86
enum FormatByte : byte
{
diff --git a/Aaru.Filesystems/CPM/Info.cs b/Aaru.Filesystems/CPM/Info.cs
index 668ea897b..41849d0c8 100644
--- a/Aaru.Filesystems/CPM/Info.cs
+++ b/Aaru.Filesystems/CPM/Info.cs
@@ -301,7 +301,7 @@ public sealed partial class CPM
_workingDefinition.skew = 2;
_workingDefinition.sofs = 0;
- AaruConsole.DebugWriteLine("CP/M Plugin", "Found Amstrad superblock.");
+ AaruConsole.DebugWriteLine("CP/M Plugin", Localization.Found_Amstrad_superblock);
}
}
}
@@ -369,7 +369,7 @@ public sealed partial class CPM
imagePlugin.ReadSectors(firstDirectorySector + partition.Start, directoryLength,
out directory);
- AaruConsole.DebugWriteLine("CP/M Plugin", "Found CP/M-86 hard disk superblock.");
+ AaruConsole.DebugWriteLine("CP/M Plugin", Localization.Found_CPM_86_hard_disk_superblock);
// Build a CP/M disk definition
_workingDefinition = new CpmDefinition
@@ -889,7 +889,7 @@ public sealed partial class CPM
imagePlugin.ReadSectors(firstDirectorySector86 + partition.Start, directoryLength,
out directory);
- AaruConsole.DebugWriteLine("CP/M Plugin", "Found CP/M-86 floppy identifier.");
+ AaruConsole.DebugWriteLine("CP/M Plugin", Localization.Found_CPM_86_floppy_identifier);
}
}
}
@@ -899,7 +899,7 @@ public sealed partial class CPM
{
if(CheckDir(directory))
{
- AaruConsole.DebugWriteLine("CP/M Plugin", "First directory block seems correct.");
+ AaruConsole.DebugWriteLine("CP/M Plugin", Localization.First_directory_block_seems_correct);
return true;
}
@@ -911,13 +911,13 @@ public sealed partial class CPM
if(!_cpmFound)
{
// Load all definitions
- AaruConsole.DebugWriteLine("CP/M Plugin", "Trying to load definitions.");
+ AaruConsole.DebugWriteLine("CP/M Plugin", Localization.Trying_to_load_definitions);
if(LoadDefinitions() &&
_definitions?.definitions != null &&
_definitions.definitions.Count > 0)
{
- AaruConsole.DebugWriteLine("CP/M Plugin", "Trying all known definitions.");
+ AaruConsole.DebugWriteLine("CP/M Plugin", Localization.Trying_all_known_definitions);
foreach(CpmDefinition def in from def in _definitions.definitions let sectors =
(ulong)(def.cylinders * def.sides * def.sectorsPerTrack)
@@ -925,7 +925,7 @@ public sealed partial class CPM
def.bytesPerSector == imagePlugin.Info.SectorSize select def)
{
// Definition seems to describe current disk, at least, same number of volume sectors and bytes per sector
- AaruConsole.DebugWriteLine("CP/M Plugin", "Trying definition \"{0}\"", def.comment);
+ AaruConsole.DebugWriteLine("CP/M Plugin", Localization.Trying_definition_0, def.comment);
ulong offset;
if(def.sofs != 0)
@@ -977,7 +977,8 @@ public sealed partial class CPM
StringComparison.InvariantCultureIgnoreCase) == 0)
{
AaruConsole.DebugWriteLine("CP/M Plugin",
- "Don't know how to handle COLUMBIA ordering, not proceeding with this definition.");
+ Localization.
+ Dont_know_how_to_handle_COLUMBIA_ordering_not_proceeding_with_this_definition);
continue;
}
@@ -987,14 +988,16 @@ public sealed partial class CPM
0)
{
AaruConsole.DebugWriteLine("CP/M Plugin",
- "Don't know how to handle EAGLE ordering, not proceeding with this definition.");
+ Localization.
+ Don_know_how_to_handle_EAGLE_ordering_not_proceeding_with_this_definition);
continue;
}
else
{
AaruConsole.DebugWriteLine("CP/M Plugin",
- "Unknown order type \"{0}\", not proceeding with this definition.",
+ Localization.
+ Unknown_order_type_0_not_proceeding_with_this_definition,
def.order);
continue;
@@ -1021,7 +1024,8 @@ public sealed partial class CPM
if(def.evenOdd)
AaruConsole.DebugWriteLine("CP/M Plugin",
- "Definition contains EVEN-ODD field, with unknown meaning, detection may be wrong.");
+ Localization.
+ Definition_contains_EVEN_ODD_field_with_unknown_meaning_detection_may_be_wrong);
// Complement of the directory bytes if needed
if(def.complement)
@@ -1031,7 +1035,7 @@ public sealed partial class CPM
// Check the directory
if(CheckDir(directory))
{
- AaruConsole.DebugWriteLine("CP/M Plugin", "Definition \"{0}\" has a correct directory",
+ AaruConsole.DebugWriteLine("CP/M Plugin", Localization.Definition_0_has_a_correct_directory,
def.comment);
// Build a Disc Parameter Block
@@ -1146,23 +1150,23 @@ public sealed partial class CPM
return;
var sb = new StringBuilder();
- sb.AppendLine("CP/M filesystem");
+ sb.AppendLine(Localization.CPM_filesystem);
if(!string.IsNullOrEmpty(_workingDefinition.comment))
- sb.AppendFormat("Identified as {0}", _workingDefinition.comment).AppendLine();
+ sb.AppendFormat(Localization.Identified_as_0, _workingDefinition.comment).AppendLine();
- sb.AppendFormat("Volume block is {0} bytes", 128 << _dpb.bsh).AppendLine();
+ sb.AppendFormat(Localization.Volume_block_is_0_bytes, 128 << _dpb.bsh).AppendLine();
if(_dpb.dsm > 0)
- sb.AppendFormat("Volume contains {0} blocks ({1} bytes)", _dpb.dsm, _dpb.dsm * (128 << _dpb.bsh)).
+ sb.AppendFormat(Localization.Volume_contains_0_blocks_1_bytes, _dpb.dsm, _dpb.dsm * (128 << _dpb.bsh)).
AppendLine();
- sb.AppendFormat("Volume contains {0} directory entries", _dpb.drm + 1).AppendLine();
+ sb.AppendFormat(Localization.Volume_contains_0_directory_entries, _dpb.drm + 1).AppendLine();
if(_workingDefinition.sofs > 0)
- sb.AppendFormat("Volume reserves {0} sectors for system", _workingDefinition.sofs).AppendLine();
+ sb.AppendFormat(Localization.Volume_reserves_0_sectors_for_system, _workingDefinition.sofs).AppendLine();
else
- sb.AppendFormat("Volume reserves {1} tracks ({0} sectors) for system",
+ sb.AppendFormat(Localization.Volume_reserves_1_tracks_0_sectors_for_system,
_workingDefinition.ofs * _workingDefinition.sectorsPerTrack, _workingDefinition.ofs).
AppendLine();
@@ -1171,7 +1175,7 @@ public sealed partial class CPM
int interleaveSide1 = _workingDefinition.side1.sectorIds[1] - _workingDefinition.side1.sectorIds[0];
if(interleaveSide1 > 1)
- sb.AppendFormat("Side 0 uses {0}:1 software interleaving", interleaveSide1).AppendLine();
+ sb.AppendFormat(Localization.Side_zero_uses_0_one_software_interleaving, interleaveSide1).AppendLine();
}
if(_workingDefinition.sides == 2)
@@ -1181,28 +1185,30 @@ public sealed partial class CPM
int interleaveSide2 = _workingDefinition.side2.sectorIds[1] - _workingDefinition.side2.sectorIds[0];
if(interleaveSide2 > 1)
- sb.AppendFormat("Side 1 uses {0}:1 software interleaving", interleaveSide2).AppendLine();
+ sb.AppendFormat(Localization.Side_one_uses_0_one_software_interleaving, interleaveSide2).
+ AppendLine();
}
switch(_workingDefinition.order)
{
case "SIDES":
- sb.AppendLine("Head changes after each whole track");
+ sb.AppendLine(Localization.Head_changes_after_each_whole_track);
break;
case "CYLINDERS":
- sb.AppendLine("Head changes after whole side");
+ sb.AppendLine(Localization.Head_changes_after_whole_side);
break;
default:
- sb.AppendFormat("Unknown how {0} side ordering works", _workingDefinition.order).AppendLine();
+ sb.AppendFormat(Localization.Unknown_how_0_side_ordering_works, _workingDefinition.order).
+ AppendLine();
break;
}
}
if(_workingDefinition.skew > 0)
- sb.AppendFormat("Device uses {0}:1 hardware interleaving", _workingDefinition.skew).AppendLine();
+ sb.AppendFormat(Localization.Device_uses_0_one_hardware_interleaving, _workingDefinition.skew).AppendLine();
if(_workingDefinition.sofs > 0)
sb.AppendFormat("BSH {0} BLM {1} EXM {2} DSM {3} DRM {4} AL0 {5:X2}H AL1 {6:X2}H SOFS {7}", _dpb.bsh,
@@ -1214,19 +1220,21 @@ public sealed partial class CPM
AppendLine();
if(_label != null)
- sb.AppendFormat("Volume label {0}", _label).AppendLine();
+ sb.AppendFormat(Localization.Volume_label_0, _label).AppendLine();
if(_standardTimestamps)
- sb.AppendLine("Volume uses standard CP/M timestamps");
+ sb.AppendLine(Localization.Volume_uses_standard_CPM_timestamps);
if(_thirdPartyTimestamps)
- sb.AppendLine("Volume uses third party timestamps");
+ sb.AppendLine(Localization.Volume_uses_third_party_timestamps);
if(_labelCreationDate != null)
- sb.AppendFormat("Volume created on {0}", DateHandlers.CpmToDateTime(_labelCreationDate)).AppendLine();
+ sb.AppendFormat(Localization.Volume_created_on_0, DateHandlers.CpmToDateTime(_labelCreationDate)).
+ AppendLine();
if(_labelUpdateDate != null)
- sb.AppendFormat("Volume updated on {0}", DateHandlers.CpmToDateTime(_labelUpdateDate)).AppendLine();
+ sb.AppendFormat(Localization.Volume_updated_on_0, DateHandlers.CpmToDateTime(_labelUpdateDate)).
+ AppendLine();
XmlFsType = new FileSystemType();
XmlFsType.Bootable |= _workingDefinition.sofs > 0 || _workingDefinition.ofs > 0;
@@ -1249,7 +1257,7 @@ public sealed partial class CPM
XmlFsType.ModificationDateSpecified = true;
}
- XmlFsType.Type = "CP/M";
+ XmlFsType.Type = FS_TYPE;
XmlFsType.VolumeName = _label;
information = sb.ToString();
diff --git a/Aaru.Filesystems/CPM/Super.cs b/Aaru.Filesystems/CPM/Super.cs
index ad9983162..dc74438dc 100644
--- a/Aaru.Filesystems/CPM/Super.cs
+++ b/Aaru.Filesystems/CPM/Super.cs
@@ -105,7 +105,7 @@ public sealed partial class CPM
_workingDefinition.side1.sectorIds.Length + _workingDefinition.side2.sectorIds.Length;
// TODO: Implement CYLINDERS ordering
- AaruConsole.DebugWriteLine("CP/M Plugin", "CYLINDERS ordering not yet implemented.");
+ AaruConsole.DebugWriteLine("CP/M Plugin", Localization.CYLINDERS_ordering_not_yet_implemented);
return ErrorNumber.NotImplemented;
}
@@ -115,7 +115,8 @@ public sealed partial class CPM
0)
{
AaruConsole.DebugWriteLine("CP/M Plugin",
- "Don't know how to handle COLUMBIA ordering, not proceeding with this definition.");
+ Localization.
+ Dont_know_how_to_handle_COLUMBIA_ordering_not_proceeding_with_this_definition);
return ErrorNumber.NotImplemented;
}
@@ -124,14 +125,15 @@ public sealed partial class CPM
else if(string.Compare(_workingDefinition.order, "EAGLE", StringComparison.InvariantCultureIgnoreCase) == 0)
{
AaruConsole.DebugWriteLine("CP/M Plugin",
- "Don't know how to handle EAGLE ordering, not proceeding with this definition.");
+ Localization.
+ Don_know_how_to_handle_EAGLE_ordering_not_proceeding_with_this_definition);
return ErrorNumber.NotImplemented;
}
else
{
AaruConsole.DebugWriteLine("CP/M Plugin",
- "Unknown order type \"{0}\", not proceeding with this definition.",
+ Localization.Unknown_order_type_0_not_proceeding_with_this_definition,
_workingDefinition.order);
return ErrorNumber.NotSupported;
@@ -144,7 +146,7 @@ public sealed partial class CPM
if(_workingDefinition.sides == 1 ||
string.Compare(_workingDefinition.order, "SIDES", StringComparison.InvariantCultureIgnoreCase) == 0)
{
- AaruConsole.DebugWriteLine("CP/M Plugin", "Deinterleaving whole volume.");
+ AaruConsole.DebugWriteLine("CP/M Plugin", Localization.Deinterleaving_whole_volume);
for(int p = 0; p <= (int)(partition.End - partition.Start); p++)
{
@@ -169,7 +171,7 @@ public sealed partial class CPM
int sectorsPerBlock = 0;
Dictionary allocationBlocks = new();
- AaruConsole.DebugWriteLine("CP/M Plugin", "Creating allocation blocks.");
+ AaruConsole.DebugWriteLine("CP/M Plugin", Localization.Creating_allocation_blocks);
// For each volume sector
for(ulong a = 0; a < (ulong)deinterleavedSectors.Count; a++)
@@ -204,7 +206,7 @@ public sealed partial class CPM
allocationBlocks.Add(blockNo++, sector);
}
- AaruConsole.DebugWriteLine("CP/M Plugin", "Reading directory.");
+ AaruConsole.DebugWriteLine("CP/M Plugin", Localization.Reading_directory);
int dirOff;
int dirSectors = (_dpb.drm + 1) * 32 / _workingDefinition.bytesPerSector;
@@ -243,7 +245,7 @@ public sealed partial class CPM
_labelUpdateDate = null;
_passwordCache = new Dictionary();
- AaruConsole.DebugWriteLine("CP/M Plugin", "Traversing directory.");
+ AaruConsole.DebugWriteLine("CP/M Plugin", Localization.Traversing_directory);
// For each directory entry
for(int dOff = 0; dOff < directory.Length; dOff += 32)
@@ -777,7 +779,7 @@ public sealed partial class CPM
_cpmStat.Files = (ulong)_fileCache.Count;
_cpmStat.FreeBlocks = _cpmStat.Blocks - (ulong)usedBlocks;
_cpmStat.PluginId = Id;
- _cpmStat.Type = "CP/M filesystem";
+ _cpmStat.Type = FS_TYPE;
// Generate XML info
XmlFsType = new FileSystemType
@@ -788,7 +790,7 @@ public sealed partial class CPM
FilesSpecified = true,
FreeClusters = _cpmStat.FreeBlocks,
FreeClustersSpecified = true,
- Type = "CP/M filesystem"
+ Type = FS_TYPE
};
if(_labelCreationDate != null)
diff --git a/Aaru.Filesystems/Cram.cs b/Aaru.Filesystems/Cram.cs
index acb96b153..1aefaf761 100644
--- a/Aaru.Filesystems/Cram.cs
+++ b/Aaru.Filesystems/Cram.cs
@@ -59,11 +59,11 @@ public sealed class Cram : IFilesystem
///
public Encoding Encoding { get; private set; }
///
- public string Name => "Cram filesystem";
+ public string Name => Localization.Cram_Name;
///
public Guid Id => new("F8F6E46F-7A2A-48E3-9C0A-46AF4DC29E09");
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
///
public bool Identify(IMediaImage imagePlugin, Partition partition)
@@ -111,20 +111,23 @@ public sealed class Cram : IFilesystem
var sbInformation = new StringBuilder();
- sbInformation.AppendLine("Cram file system");
- sbInformation.AppendLine(littleEndian ? "Little-endian" : "Big-endian");
- sbInformation.AppendFormat("Volume edition {0}", crSb.edition).AppendLine();
- sbInformation.AppendFormat("Volume name: {0}", StringHandlers.CToString(crSb.name, Encoding)).AppendLine();
- sbInformation.AppendFormat("Volume has {0} bytes", crSb.size).AppendLine();
- sbInformation.AppendFormat("Volume has {0} blocks", crSb.blocks).AppendLine();
- sbInformation.AppendFormat("Volume has {0} files", crSb.files).AppendLine();
+ sbInformation.AppendLine(Localization.Cram_file_system);
+ sbInformation.AppendLine(littleEndian ? Localization.Little_endian : Localization.Big_endian);
+ sbInformation.AppendFormat(Localization.Volume_edition_0, crSb.edition).AppendLine();
+
+ sbInformation.AppendFormat(Localization.Volume_name_0, StringHandlers.CToString(crSb.name, Encoding)).
+ AppendLine();
+
+ sbInformation.AppendFormat(Localization.Volume_has_0_bytes, crSb.size).AppendLine();
+ sbInformation.AppendFormat(Localization.Volume_has_0_blocks, crSb.blocks).AppendLine();
+ sbInformation.AppendFormat(Localization.Volume_has_0_files, crSb.files).AppendLine();
information = sbInformation.ToString();
XmlFsType = new FileSystemType
{
VolumeName = StringHandlers.CToString(crSb.name, Encoding),
- Type = "Cram file system",
+ Type = FS_TYPE,
Clusters = crSb.blocks,
Files = crSb.files,
FilesSpecified = true,
@@ -133,6 +136,8 @@ public sealed class Cram : IFilesystem
};
}
+ const string FS_TYPE = "cramfs";
+
enum CramCompression : ushort
{
Zlib = 1, Lzma = 2, Lzo = 3,
diff --git a/Aaru.Filesystems/ECMA67.cs b/Aaru.Filesystems/ECMA67.cs
index b4d315a0e..65c56fa6b 100644
--- a/Aaru.Filesystems/ECMA67.cs
+++ b/Aaru.Filesystems/ECMA67.cs
@@ -46,6 +46,7 @@ namespace Aaru.Filesystems;
/// Implements detection of the filesystem described in ECMA-67
public sealed class ECMA67 : IFilesystem
{
+ const string FS_TYPE = "ecma67";
readonly byte[] _magic =
{
0x56, 0x4F, 0x4C
@@ -54,13 +55,13 @@ public sealed class ECMA67 : IFilesystem
///
public Encoding Encoding { get; private set; }
///
- public string Name => "ECMA-67";
+ public string Name => Localization.ECMA67_Name;
///
public Guid Id => new("62A2D44A-CBC1-4377-B4B6-28C5C92034A1");
///
public FileSystemType XmlFsType { get; private set; }
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
///
public bool Identify(IMediaImage imagePlugin, Partition partition)
@@ -98,14 +99,16 @@ public sealed class ECMA67 : IFilesystem
VolumeLabel vol = Marshal.ByteArrayToStructureLittleEndian(sector);
- sbInformation.AppendLine("ECMA-67");
+ sbInformation.AppendLine(Localization.ECMA_67);
- sbInformation.AppendFormat("Volume name: {0}", Encoding.ASCII.GetString(vol.volumeIdentifier)).AppendLine();
- sbInformation.AppendFormat("Volume owner: {0}", Encoding.ASCII.GetString(vol.owner)).AppendLine();
+ sbInformation.AppendFormat(Localization.Volume_name_0, Encoding.ASCII.GetString(vol.volumeIdentifier)).
+ AppendLine();
+
+ sbInformation.AppendFormat(Localization.Volume_owner_0, Encoding.ASCII.GetString(vol.owner)).AppendLine();
XmlFsType = new FileSystemType
{
- Type = "ECMA-67",
+ Type = FS_TYPE,
ClusterSize = 256,
Clusters = partition.End - partition.Start + 1,
VolumeName = Encoding.ASCII.GetString(vol.volumeIdentifier)
diff --git a/Aaru.Filesystems/EFS.cs b/Aaru.Filesystems/EFS.cs
index 8a2f0f020..8883cbb67 100644
--- a/Aaru.Filesystems/EFS.cs
+++ b/Aaru.Filesystems/EFS.cs
@@ -51,16 +51,18 @@ public sealed class EFS : IFilesystem
const uint EFS_MAGIC = 0x00072959;
const uint EFS_MAGIC_NEW = 0x0007295A;
+ const string FS_TYPE = "efs";
+
///
public FileSystemType XmlFsType { get; private set; }
///
public Encoding Encoding { get; private set; }
///
- public string Name => "Extent File System Plugin";
+ public string Name => Localization.EFS_Name;
///
public Guid Id => new("52A43F90-9AF3-4391-ADFE-65598DEEABAB");
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
///
public bool Identify(IMediaImage imagePlugin, Partition partition)
@@ -90,8 +92,8 @@ public sealed class EFS : IFilesystem
Superblock sb = Marshal.ByteArrayToStructureBigEndian(sbpiece);
- AaruConsole.DebugWriteLine("EFS plugin", "magic at 0x{0:X3} = 0x{1:X8} (expected 0x{2:X8} or 0x{3:X8})",
- 0x200, sb.sb_magic, EFS_MAGIC, EFS_MAGIC_NEW);
+ AaruConsole.DebugWriteLine("EFS plugin", Localization.magic_at_0_equals_1_expected_2_or_3, 0x200,
+ sb.sb_magic, EFS_MAGIC, EFS_MAGIC_NEW);
if(sb.sb_magic is EFS_MAGIC or EFS_MAGIC_NEW)
return true;
@@ -113,8 +115,8 @@ public sealed class EFS : IFilesystem
Superblock sb = Marshal.ByteArrayToStructureBigEndian(sector);
- AaruConsole.DebugWriteLine("EFS plugin", "magic at {0} = 0x{1:X8} (expected 0x{2:X8} or 0x{3:X8})", 1,
- sb.sb_magic, EFS_MAGIC, EFS_MAGIC_NEW);
+ AaruConsole.DebugWriteLine("EFS plugin", Localization.magic_at_0_equals_1_expected_2_or_3, 1, sb.sb_magic,
+ EFS_MAGIC, EFS_MAGIC_NEW);
if(sb.sb_magic is EFS_MAGIC or EFS_MAGIC_NEW)
return true;
@@ -156,8 +158,8 @@ public sealed class EFS : IFilesystem
efsSb = Marshal.ByteArrayToStructureBigEndian(sbpiece);
- AaruConsole.DebugWriteLine("EFS plugin", "magic at 0x{0:X3} = 0x{1:X8} (expected 0x{2:X8} or 0x{3:X8})",
- 0x200, efsSb.sb_magic, EFS_MAGIC, EFS_MAGIC_NEW);
+ AaruConsole.DebugWriteLine("EFS plugin", Localization.magic_at_0_X3_equals_1_expected_2_or_3, 0x200,
+ efsSb.sb_magic, EFS_MAGIC, EFS_MAGIC_NEW);
}
else
{
@@ -176,7 +178,7 @@ public sealed class EFS : IFilesystem
efsSb = Marshal.ByteArrayToStructureBigEndian(sector);
- AaruConsole.DebugWriteLine("EFS plugin", "magic at {0} = 0x{1:X8} (expected 0x{2:X8} or 0x{3:X8})", 1,
+ AaruConsole.DebugWriteLine("EFS plugin", Localization.magic_at_0_equals_1_expected_2_or_3, 1,
efsSb.sb_magic, EFS_MAGIC, EFS_MAGIC_NEW);
}
@@ -186,44 +188,44 @@ public sealed class EFS : IFilesystem
var sb = new StringBuilder();
- sb.AppendLine("SGI extent filesystem");
+ sb.AppendLine(Localization.SGI_extent_filesystem);
if(efsSb.sb_magic == EFS_MAGIC_NEW)
- sb.AppendLine("New version");
+ sb.AppendLine(Localization.New_version);
- sb.AppendFormat("Filesystem size: {0} basic blocks", efsSb.sb_size).AppendLine();
- sb.AppendFormat("First cylinder group starts at block {0}", efsSb.sb_firstcg).AppendLine();
- sb.AppendFormat("Cylinder group size: {0} basic blocks", efsSb.sb_cgfsize).AppendLine();
- sb.AppendFormat("{0} inodes per cylinder group", efsSb.sb_cgisize).AppendLine();
- sb.AppendFormat("{0} sectors per track", efsSb.sb_sectors).AppendLine();
- sb.AppendFormat("{0} heads per cylinder", efsSb.sb_heads).AppendLine();
- sb.AppendFormat("{0} cylinder groups", efsSb.sb_ncg).AppendLine();
- sb.AppendFormat("Volume created on {0}", DateHandlers.UnixToDateTime(efsSb.sb_time)).AppendLine();
- sb.AppendFormat("{0} bytes on bitmap", efsSb.sb_bmsize).AppendLine();
- sb.AppendFormat("{0} free blocks", efsSb.sb_tfree).AppendLine();
- sb.AppendFormat("{0} free inodes", efsSb.sb_tinode).AppendLine();
+ sb.AppendFormat(Localization.Filesystem_size_0_basic_blocks, efsSb.sb_size).AppendLine();
+ sb.AppendFormat(Localization.First_cylinder_group_starts_at_block_0, efsSb.sb_firstcg).AppendLine();
+ sb.AppendFormat(Localization.Cylinder_group_size_0_basic_blocks, efsSb.sb_cgfsize).AppendLine();
+ sb.AppendFormat(Localization._0_inodes_per_cylinder_group, efsSb.sb_cgisize).AppendLine();
+ sb.AppendFormat(Localization._0_sectors_per_track, efsSb.sb_sectors).AppendLine();
+ sb.AppendFormat(Localization._0_heads_per_cylinder, efsSb.sb_heads).AppendLine();
+ sb.AppendFormat(Localization._0_cylinder_groups, efsSb.sb_ncg).AppendLine();
+ sb.AppendFormat(Localization.Volume_created_on_0, DateHandlers.UnixToDateTime(efsSb.sb_time)).AppendLine();
+ sb.AppendFormat(Localization._0_bytes_on_bitmap, efsSb.sb_bmsize).AppendLine();
+ sb.AppendFormat(Localization._0_free_blocks, efsSb.sb_tfree).AppendLine();
+ sb.AppendFormat(Localization._0_free_inodes, efsSb.sb_tinode).AppendLine();
if(efsSb.sb_bmblock > 0)
- sb.AppendFormat("Bitmap resides at block {0}", efsSb.sb_bmblock).AppendLine();
+ sb.AppendFormat(Localization.Bitmap_resides_at_block_0, efsSb.sb_bmblock).AppendLine();
if(efsSb.sb_replsb > 0)
- sb.AppendFormat("Replacement superblock resides at block {0}", efsSb.sb_replsb).AppendLine();
+ sb.AppendFormat(Localization.Replacement_superblock_resides_at_block_0, efsSb.sb_replsb).AppendLine();
if(efsSb.sb_lastinode > 0)
- sb.AppendFormat("Last inode allocated: {0}", efsSb.sb_lastinode).AppendLine();
+ sb.AppendFormat(Localization.Last_inode_allocated_0, efsSb.sb_lastinode).AppendLine();
if(efsSb.sb_dirty > 0)
- sb.AppendLine("Volume is dirty");
+ sb.AppendLine(Localization.Volume_is_dirty);
- sb.AppendFormat("Checksum: 0x{0:X8}", efsSb.sb_checksum).AppendLine();
- sb.AppendFormat("Volume name: {0}", StringHandlers.CToString(efsSb.sb_fname, Encoding)).AppendLine();
- sb.AppendFormat("Volume pack: {0}", StringHandlers.CToString(efsSb.sb_fpack, Encoding)).AppendLine();
+ sb.AppendFormat(Localization.Checksum_0_X8, efsSb.sb_checksum).AppendLine();
+ sb.AppendFormat(Localization.Volume_name_0, StringHandlers.CToString(efsSb.sb_fname, Encoding)).AppendLine();
+ sb.AppendFormat(Localization.Volume_pack_0, StringHandlers.CToString(efsSb.sb_fpack, Encoding)).AppendLine();
information = sb.ToString();
XmlFsType = new FileSystemType
{
- Type = "Extent File System",
+ Type = FS_TYPE,
ClusterSize = 512,
Clusters = (ulong)efsSb.sb_size,
FreeClusters = (ulong)efsSb.sb_tfree,
diff --git a/Aaru.Filesystems/F2FS.cs b/Aaru.Filesystems/F2FS.cs
index 319cb8c7a..9131b6347 100644
--- a/Aaru.Filesystems/F2FS.cs
+++ b/Aaru.Filesystems/F2FS.cs
@@ -62,11 +62,11 @@ public sealed class F2FS : IFilesystem
///
public Encoding Encoding { get; private set; }
///
- public string Name => "F2FS Plugin";
+ public string Name => Localization.F2FS_Name;
///
public Guid Id => new("82B0920F-5F0D-4063-9F57-ADE0AE02ECE5");
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
///
public bool Identify(IMediaImage imagePlugin, Partition partition)
@@ -135,36 +135,36 @@ public sealed class F2FS : IFilesystem
var sb = new StringBuilder();
- sb.AppendLine("F2FS filesystem");
- sb.AppendFormat("Version {0}.{1}", f2fsSb.major_ver, f2fsSb.minor_ver).AppendLine();
- sb.AppendFormat("{0} bytes per sector", 1 << (int)f2fsSb.log_sectorsize).AppendLine();
+ sb.AppendLine(Localization.F2FS_filesystem);
+ sb.AppendFormat(Localization.Version_0_1, f2fsSb.major_ver, f2fsSb.minor_ver).AppendLine();
+ sb.AppendFormat(Localization._0_bytes_per_sector, 1 << (int)f2fsSb.log_sectorsize).AppendLine();
- sb.AppendFormat("{0} sectors ({1} bytes) per block", 1 << (int)f2fsSb.log_sectors_per_block,
- 1 << (int)f2fsSb.log_blocksize).AppendLine();
+ sb.AppendFormat(Localization._0_sectors_1_bytes_per_block, 1 << (int)f2fsSb.log_sectors_per_block,
+ 1 << (int)f2fsSb.log_blocksize).AppendLine();
- sb.AppendFormat("{0} blocks per segment", f2fsSb.log_blocks_per_seg).AppendLine();
- sb.AppendFormat("{0} blocks in volume", f2fsSb.block_count).AppendLine();
- sb.AppendFormat("{0} segments per section", f2fsSb.segs_per_sec).AppendLine();
- sb.AppendFormat("{0} sections per zone", f2fsSb.secs_per_zone).AppendLine();
- sb.AppendFormat("{0} sections", f2fsSb.section_count).AppendLine();
- sb.AppendFormat("{0} segments", f2fsSb.segment_count).AppendLine();
- sb.AppendFormat("Root directory resides on inode {0}", f2fsSb.root_ino).AppendLine();
- sb.AppendFormat("Volume UUID: {0}", f2fsSb.uuid).AppendLine();
+ sb.AppendFormat(Localization._0_blocks_per_segment, f2fsSb.log_blocks_per_seg).AppendLine();
+ sb.AppendFormat(Localization._0_blocks_in_volume, f2fsSb.block_count).AppendLine();
+ sb.AppendFormat(Localization._0_segments_per_section, f2fsSb.segs_per_sec).AppendLine();
+ sb.AppendFormat(Localization._0_sections_per_zone, f2fsSb.secs_per_zone).AppendLine();
+ sb.AppendFormat(Localization._0_sections, f2fsSb.section_count).AppendLine();
+ sb.AppendFormat(Localization._0_segments, f2fsSb.segment_count).AppendLine();
+ sb.AppendFormat(Localization.Root_directory_resides_on_inode_0, f2fsSb.root_ino).AppendLine();
+ sb.AppendFormat(Localization.Volume_UUID_0, f2fsSb.uuid).AppendLine();
- sb.AppendFormat("Volume name: {0}", StringHandlers.CToString(f2fsSb.volume_name, Encoding.Unicode, true)).
+ sb.AppendFormat(Localization.Volume_name_0,
+ StringHandlers.CToString(f2fsSb.volume_name, Encoding.Unicode, true)).AppendLine();
+
+ sb.AppendFormat(Localization.Volume_last_mounted_on_kernel_version_0, StringHandlers.CToString(f2fsSb.version)).
AppendLine();
- sb.AppendFormat("Volume last mounted on kernel version: {0}", StringHandlers.CToString(f2fsSb.version)).
- AppendLine();
-
- sb.AppendFormat("Volume created on kernel version: {0}", StringHandlers.CToString(f2fsSb.init_version)).
+ sb.AppendFormat(Localization.Volume_created_on_kernel_version_0, StringHandlers.CToString(f2fsSb.init_version)).
AppendLine();
information = sb.ToString();
XmlFsType = new FileSystemType
{
- Type = "F2FS filesystem",
+ Type = FS_TYPE,
SystemIdentifier = Encoding.ASCII.GetString(f2fsSb.version),
Clusters = f2fsSb.block_count,
ClusterSize = (uint)(1 << (int)f2fsSb.log_blocksize),
@@ -174,6 +174,8 @@ public sealed class F2FS : IFilesystem
};
}
+ const string FS_TYPE = "f2fs";
+
[StructLayout(LayoutKind.Sequential, Pack = 1), SuppressMessage("ReSharper", "InconsistentNaming")]
readonly struct Superblock
{
diff --git a/Aaru.Filesystems/FAT/BPB.cs b/Aaru.Filesystems/FAT/BPB.cs
index df2409c05..32d4f99fb 100644
--- a/Aaru.Filesystems/FAT/BPB.cs
+++ b/Aaru.Filesystems/FAT/BPB.cs
@@ -82,7 +82,7 @@ public sealed partial class FAT
if(useHumanBpb)
{
- AaruConsole.DebugWriteLine("FAT plugin", "Using Human68k BPB");
+ AaruConsole.DebugWriteLine("FAT plugin", Localization.Using_Human68k_BPB);
fakeBpb.jump = humanBpb.jump;
fakeBpb.oem_name = humanBpb.oem_name;
@@ -190,7 +190,7 @@ public sealed partial class FAT
fat32Bpb is { spfat: 0, signature: 0x29 } &&
Encoding.ASCII.GetString(fat32Bpb.fs_type) == "FAT32 ")
{
- AaruConsole.DebugWriteLine("FAT plugin", "Using FAT32 BPB");
+ AaruConsole.DebugWriteLine("FAT plugin", Localization.Using_FAT32_BPB);
minBootNearJump = 0x58;
return BpbKind.LongFat32;
@@ -200,7 +200,7 @@ public sealed partial class FAT
correctSpcFat32Short &&
shortFat32Bpb is { fats_no: <= 2, sectors: 0 } and { spfat: 0, signature: 0x28 })
{
- AaruConsole.DebugWriteLine("FAT plugin", "Using short FAT32 BPB");
+ AaruConsole.DebugWriteLine("FAT plugin", Localization.Using_short_FAT32_BPB);
minBootNearJump = 0x57;
@@ -214,7 +214,7 @@ public sealed partial class FAT
msxBpb.spfat > 0 &&
Encoding.ASCII.GetString(msxBpb.vol_id) == "VOL_ID")
{
- AaruConsole.DebugWriteLine("FAT plugin", "Using MSX BPB");
+ AaruConsole.DebugWriteLine("FAT plugin", Localization.Using_MSX_BPB);
useMsxBpb = true;
}
else if(bitsInBpsApricot == 1 &&
@@ -224,7 +224,7 @@ public sealed partial class FAT
apricotBpb.mainBPB.spfat > 0 &&
apricotBpb.partitionCount == 0)
{
- AaruConsole.DebugWriteLine("FAT plugin", "Using Apricot BPB");
+ AaruConsole.DebugWriteLine("FAT plugin", Localization.Using_Apricot_BPB);
useApricotBpb = true;
}
else if(bitsInBpsDos40 == 1 &&
@@ -238,13 +238,13 @@ public sealed partial class FAT
if(ebpb.big_sectors <= partition.End - partition.Start + 1)
if(ebpb.signature == 0x29 || andosOemCorrect)
{
- AaruConsole.DebugWriteLine("FAT plugin", "Using DOS 4.0 BPB");
+ AaruConsole.DebugWriteLine("FAT plugin", Localization.Using_DOS_4_0_BPB);
useExtendedBpb = true;
minBootNearJump = 0x3C;
}
else
{
- AaruConsole.DebugWriteLine("FAT plugin", "Using DOS 3.4 BPB");
+ AaruConsole.DebugWriteLine("FAT plugin", Localization.Using_DOS_3_4_BPB);
userShortExtendedBpb = true;
minBootNearJump = 0x29;
}
@@ -252,13 +252,13 @@ public sealed partial class FAT
else if(ebpb.sectors <= partition.End - partition.Start + 1)
if(ebpb.signature == 0x29 || andosOemCorrect)
{
- AaruConsole.DebugWriteLine("FAT plugin", "Using DOS 4.0 BPB");
+ AaruConsole.DebugWriteLine("FAT plugin", Localization.Using_DOS_4_0_BPB);
useExtendedBpb = true;
minBootNearJump = 0x3C;
}
else
{
- AaruConsole.DebugWriteLine("FAT plugin", "Using DOS 3.4 BPB");
+ AaruConsole.DebugWriteLine("FAT plugin", Localization.Using_DOS_3_4_BPB);
userShortExtendedBpb = true;
minBootNearJump = 0x29;
}
@@ -273,7 +273,7 @@ public sealed partial class FAT
dos33Bpb.big_sectors > 0 &&
dos33Bpb.big_sectors <= partition.End - partition.Start + 1)
{
- AaruConsole.DebugWriteLine("FAT plugin", "Using DOS 3.3 BPB");
+ AaruConsole.DebugWriteLine("FAT plugin", Localization.Using_DOS_3_3_BPB);
useDos33Bpb = true;
minBootNearJump = 0x22;
}
@@ -286,12 +286,12 @@ public sealed partial class FAT
Encoding.ASCII.GetString(dos33Bpb.oem_name) != "NEXT ") ||
partition.Type is "GEM" or "BGM")
{
- AaruConsole.DebugWriteLine("FAT plugin", "Using Atari BPB");
+ AaruConsole.DebugWriteLine("FAT plugin", Localization.Using_Atari_BPB);
useAtariBpb = true;
}
else
{
- AaruConsole.DebugWriteLine("FAT plugin", "Using DOS 3.3 BPB");
+ AaruConsole.DebugWriteLine("FAT plugin", Localization.Using_DOS_3_3_BPB);
useDos33Bpb = true;
minBootNearJump = 0x22;
}
@@ -300,7 +300,7 @@ public sealed partial class FAT
if(dos32Bpb.hsectors <= partition.Start &&
dos32Bpb.hsectors + dos32Bpb.sectors == dos32Bpb.total_sectors)
{
- AaruConsole.DebugWriteLine("FAT plugin", "Using DOS 3.2 BPB");
+ AaruConsole.DebugWriteLine("FAT plugin", Localization.Using_DOS_3_2_BPB);
useDos32Bpb = true;
minBootNearJump = 0x1E;
}
@@ -310,12 +310,12 @@ public sealed partial class FAT
(atariBpb.jump[0] == 0xE9 && atariBpb.jump[1] == 0x00 &&
Encoding.ASCII.GetString(dos33Bpb.oem_name) != "NEXT "))
{
- AaruConsole.DebugWriteLine("FAT plugin", "Using Atari BPB");
+ AaruConsole.DebugWriteLine("FAT plugin", Localization.Using_Atari_BPB);
useAtariBpb = true;
}
else
{
- AaruConsole.DebugWriteLine("FAT plugin", "Using DOS 3.0 BPB");
+ AaruConsole.DebugWriteLine("FAT plugin", Localization.Using_DOS_3_0_BPB);
useDos3Bpb = true;
minBootNearJump = 0x1C;
}
@@ -325,12 +325,12 @@ public sealed partial class FAT
(atariBpb.jump[0] == 0xE9 && atariBpb.jump[1] == 0x00 &&
Encoding.ASCII.GetString(dos33Bpb.oem_name) != "NEXT "))
{
- AaruConsole.DebugWriteLine("FAT plugin", "Using Atari BPB");
+ AaruConsole.DebugWriteLine("FAT plugin", Localization.Using_Atari_BPB);
useAtariBpb = true;
}
else
{
- AaruConsole.DebugWriteLine("FAT plugin", "Using DOS 2.0 BPB");
+ AaruConsole.DebugWriteLine("FAT plugin", Localization.Using_DOS_2_0_BPB);
useDos2Bpb = true;
minBootNearJump = 0x16;
}
@@ -400,7 +400,7 @@ public sealed partial class FAT
fat1Sector0[1] == 0xFF &&
validRootDir)
{
- AaruConsole.DebugWriteLine("FAT plugin", "Using DEC Rainbow hardcoded BPB.");
+ AaruConsole.DebugWriteLine("FAT plugin", Localization.Using_DEC_Rainbow_hardcoded_BPB);
fakeBpb.bps = 512;
fakeBpb.spc = 1;
fakeBpb.rsectors = 20;
@@ -440,7 +440,7 @@ public sealed partial class FAT
case 0xE5:
if(imagePlugin.Info is { Sectors: 2002, SectorSize: 128 })
{
- AaruConsole.DebugWriteLine("FAT plugin", "Using hardcoded BPB.");
+ AaruConsole.DebugWriteLine("FAT plugin", Localization.Using_hardcoded_BPB);
fakeBpb.bps = 128;
fakeBpb.spc = 4;
fakeBpb.rsectors = 1;
@@ -459,7 +459,7 @@ public sealed partial class FAT
switch(imagePlugin.Info.Sectors)
{
case 4004 when imagePlugin.Info.SectorSize == 128:
- AaruConsole.DebugWriteLine("FAT plugin", "Using hardcoded BPB.");
+ AaruConsole.DebugWriteLine("FAT plugin", Localization.Using_hardcoded_BPB);
fakeBpb.bps = 128;
fakeBpb.spc = 4;
fakeBpb.rsectors = 4;
@@ -474,7 +474,7 @@ public sealed partial class FAT
break;
case 2002 when imagePlugin.Info.SectorSize == 128:
- AaruConsole.DebugWriteLine("FAT plugin", "Using hardcoded BPB.");
+ AaruConsole.DebugWriteLine("FAT plugin", Localization.Using_hardcoded_BPB);
fakeBpb.bps = 128;
fakeBpb.spc = 4;
fakeBpb.rsectors = 4;
@@ -495,7 +495,7 @@ public sealed partial class FAT
switch(imagePlugin.Info.Sectors)
{
case 320 when imagePlugin.Info.SectorSize == 512:
- AaruConsole.DebugWriteLine("FAT plugin", "Using hardcoded BPB for 5.25\" SSDD.");
+ AaruConsole.DebugWriteLine("FAT plugin", Localization.Using_hardcoded_BPB_for_5_25_SSDD);
fakeBpb.bps = 512;
fakeBpb.spc = 1;
fakeBpb.rsectors = 1;
@@ -510,7 +510,7 @@ public sealed partial class FAT
break;
case 2002 when imagePlugin.Info.SectorSize == 128:
- AaruConsole.DebugWriteLine("FAT plugin", "Using hardcoded BPB.");
+ AaruConsole.DebugWriteLine("FAT plugin", Localization.Using_hardcoded_BPB);
fakeBpb.bps = 128;
fakeBpb.spc = 4;
fakeBpb.rsectors = 1;
@@ -525,7 +525,7 @@ public sealed partial class FAT
break;
case 1232 when imagePlugin.Info.SectorSize == 1024:
- AaruConsole.DebugWriteLine("FAT plugin", "Using hardcoded BPB.");
+ AaruConsole.DebugWriteLine("FAT plugin", Localization.Using_hardcoded_BPB);
fakeBpb.bps = 1024;
fakeBpb.spc = 1;
fakeBpb.rsectors = 1;
@@ -540,7 +540,7 @@ public sealed partial class FAT
break;
case 616 when imagePlugin.Info.SectorSize == 1024:
- AaruConsole.DebugWriteLine("FAT plugin", "Using hardcoded BPB.");
+ AaruConsole.DebugWriteLine("FAT plugin", Localization.Using_hardcoded_BPB);
fakeBpb.bps = 1024;
fakeBpb.spc = 1;
fakeBpb.rsectors = 1;
@@ -554,7 +554,7 @@ public sealed partial class FAT
break;
case 720 when imagePlugin.Info.SectorSize == 128:
- AaruConsole.DebugWriteLine("FAT plugin", "Using hardcoded BPB.");
+ AaruConsole.DebugWriteLine("FAT plugin", Localization.Using_hardcoded_BPB);
fakeBpb.bps = 128;
fakeBpb.spc = 2;
fakeBpb.rsectors = 54;
@@ -569,7 +569,7 @@ public sealed partial class FAT
break;
case 640 when imagePlugin.Info.SectorSize == 512:
- AaruConsole.DebugWriteLine("FAT plugin", "Using hardcoded BPB for 5.25\" DSDD.");
+ AaruConsole.DebugWriteLine("FAT plugin", Localization.Using_hardcoded_BPB_for_5_25_DSDD);
fakeBpb.bps = 512;
fakeBpb.spc = 2;
fakeBpb.rsectors = 1;
@@ -589,7 +589,7 @@ public sealed partial class FAT
case 0xFF:
if(imagePlugin.Info is { Sectors: 640, SectorSize: 512 })
{
- AaruConsole.DebugWriteLine("FAT plugin", "Using hardcoded BPB for 5.25\" DSDD.");
+ AaruConsole.DebugWriteLine("FAT plugin", Localization.Using_hardcoded_BPB_for_5_25_DSDD);
fakeBpb.bps = 512;
fakeBpb.spc = 2;
fakeBpb.rsectors = 1;
diff --git a/Aaru.Filesystems/FAT/Consts.cs b/Aaru.Filesystems/FAT/Consts.cs
index 8e553a6b1..09de66205 100644
--- a/Aaru.Filesystems/FAT/Consts.cs
+++ b/Aaru.Filesystems/FAT/Consts.cs
@@ -220,4 +220,9 @@ public sealed partial class FAT
/// FAT32.IFS >= 0.97 indicator for critical EAs present
CriticalEa = 0x80
}
+
+ const string FS_TYPE_FAT_PLUS = "fatplus";
+ const string FS_TYPE_FAT32 = "fat32";
+ const string FS_TYPE_FAT16 = "fat16";
+ const string FS_TYPE_FAT12 = "fat12";
}
\ No newline at end of file
diff --git a/Aaru.Filesystems/FAT/Dir.cs b/Aaru.Filesystems/FAT/Dir.cs
index b12ad3e2d..aed204cd5 100644
--- a/Aaru.Filesystems/FAT/Dir.cs
+++ b/Aaru.Filesystems/FAT/Dir.cs
@@ -247,7 +247,7 @@ public sealed partial class FAT
if(name == "" &&
extension == "")
{
- AaruConsole.DebugWriteLine("FAT filesystem", "Found empty filename in {0}", path);
+ AaruConsole.DebugWriteLine("FAT filesystem", Localization.Found_empty_filename_in_0, path);
if(!_debug ||
dirent is { size: > 0, start_cluster: 0 })
diff --git a/Aaru.Filesystems/FAT/FAT.cs b/Aaru.Filesystems/FAT/FAT.cs
index 4f87c9684..e2e7909eb 100644
--- a/Aaru.Filesystems/FAT/FAT.cs
+++ b/Aaru.Filesystems/FAT/FAT.cs
@@ -72,11 +72,11 @@ public sealed partial class FAT : IReadOnlyFilesystem
///
public Encoding Encoding { get; private set; }
///
- public string Name => "Microsoft File Allocation Table";
+ public string Name => Localization.FAT_Name;
///
public Guid Id => new("33513B2C-0D26-0D2D-32C3-79D8611158E0");
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
///
public IEnumerable<(string name, Type type, string description)> SupportedOptions =>
@@ -86,19 +86,19 @@ public sealed partial class FAT : IReadOnlyFilesystem
public Dictionary Namespaces => new()
{
{
- "dos", "DOS (8.3 all uppercase)"
+ "dos", Localization.DOS_8_3_all_uppercase
},
{
- "nt", "Windows NT (8.3 mixed case)"
+ "nt", Localization.Windows_NT_8_3_mixed_case
},
{
- "os2", "OS/2 .LONGNAME extended attribute"
+ "os2", Localization.OS2_LONGNAME_extended_attribute
},
{
- "ecs", "Use LFN when available with fallback to .LONGNAME (default)"
+ "ecs", Localization.Use_LFN_when_available_with_fallback_to_LONGNAME_default
},
{
- "lfn", "Long file names"
+ "lfn", Localization.Long_file_names
}
};
diff --git a/Aaru.Filesystems/FAT/Info.cs b/Aaru.Filesystems/FAT/Info.cs
index 65cf289b3..a7777f04c 100644
--- a/Aaru.Filesystems/FAT/Info.cs
+++ b/Aaru.Filesystems/FAT/Info.cs
@@ -407,7 +407,7 @@ public sealed partial class FAT
fat2SectorNo == 0)
return false;
- AaruConsole.DebugWriteLine("FAT plugin", "2nd fat starts at = {0}", fat2SectorNo);
+ AaruConsole.DebugWriteLine("FAT plugin", Localization.Second_fat_starts_at_0, fat2SectorNo);
errno = imagePlugin.ReadSector(fat2SectorNo, out byte[] fat2Sector);
@@ -489,95 +489,99 @@ public sealed partial class FAT
if(fat32Bpb.version != 0)
{
- sb.AppendLine("FAT+");
- XmlFsType.Type = "FAT+";
+ sb.AppendLine(Localization.FAT_Plus);
+ XmlFsType.Type = FS_TYPE_FAT_PLUS;
}
else
{
- sb.AppendLine("Microsoft FAT32");
- XmlFsType.Type = "FAT32";
+ sb.AppendLine(Localization.Microsoft_FAT32);
+ XmlFsType.Type = FS_TYPE_FAT32;
}
if(fat32Bpb.oem_name != null)
if(fat32Bpb.oem_name[5] == 0x49 &&
fat32Bpb.oem_name[6] == 0x48 &&
fat32Bpb.oem_name[7] == 0x43)
- sb.AppendLine("Volume has been modified by Windows 9x/Me Volume Tracker.");
+ sb.AppendLine(Localization.Volume_has_been_modified_by_Windows_9x_Me_Volume_Tracker);
else
XmlFsType.SystemIdentifier = StringHandlers.CToString(fat32Bpb.oem_name);
if(!string.IsNullOrEmpty(XmlFsType.SystemIdentifier))
- sb.AppendFormat("OEM Name: {0}", XmlFsType.SystemIdentifier.Trim()).AppendLine();
+ sb.AppendFormat(Localization.OEM_name_0, XmlFsType.SystemIdentifier.Trim()).AppendLine();
- sb.AppendFormat("{0} bytes per sector.", fat32Bpb.bps).AppendLine();
- sb.AppendFormat("{0} sectors per cluster.", fat32Bpb.spc).AppendLine();
+ sb.AppendFormat(Localization._0_bytes_per_sector, fat32Bpb.bps).AppendLine();
+ sb.AppendFormat(Localization._0_sectors_per_cluster, fat32Bpb.spc).AppendLine();
XmlFsType.ClusterSize = (uint)(fat32Bpb.bps * fat32Bpb.spc);
- sb.AppendFormat("{0} sectors reserved between BPB and FAT.", fat32Bpb.rsectors).AppendLine();
+ sb.AppendFormat(Localization._0_sectors_reserved_between_BPB_and_FAT, fat32Bpb.rsectors).AppendLine();
if(fat32Bpb is { big_sectors: 0, signature: 0x28 })
{
- sb.AppendFormat("{0} sectors on volume ({1} bytes).", shortFat32Bpb.huge_sectors,
+ sb.AppendFormat(Localization._0_sectors_on_volume_1_bytes, shortFat32Bpb.huge_sectors,
shortFat32Bpb.huge_sectors * shortFat32Bpb.bps).AppendLine();
XmlFsType.Clusters = shortFat32Bpb.huge_sectors / shortFat32Bpb.spc;
}
else if(fat32Bpb.sectors == 0)
{
- sb.AppendFormat("{0} sectors on volume ({1} bytes).", fat32Bpb.big_sectors,
+ sb.AppendFormat(Localization._0_sectors_on_volume_1_bytes, fat32Bpb.big_sectors,
fat32Bpb.big_sectors * fat32Bpb.bps).AppendLine();
XmlFsType.Clusters = fat32Bpb.big_sectors / fat32Bpb.spc;
}
else
{
- sb.AppendFormat("{0} sectors on volume ({1} bytes).", fat32Bpb.sectors,
+ sb.AppendFormat(Localization._0_sectors_on_volume_1_bytes, fat32Bpb.sectors,
fat32Bpb.sectors * fat32Bpb.bps).AppendLine();
XmlFsType.Clusters = (ulong)(fat32Bpb.sectors / fat32Bpb.spc);
}
- sb.AppendFormat("{0} clusters on volume.", XmlFsType.Clusters).AppendLine();
- sb.AppendFormat("Media descriptor: 0x{0:X2}", fat32Bpb.media).AppendLine();
- sb.AppendFormat("{0} sectors per FAT.", fat32Bpb.big_spfat).AppendLine();
- sb.AppendFormat("{0} sectors per track.", fat32Bpb.sptrk).AppendLine();
- sb.AppendFormat("{0} heads.", fat32Bpb.heads).AppendLine();
- sb.AppendFormat("{0} hidden sectors before BPB.", fat32Bpb.hsectors).AppendLine();
- sb.AppendFormat("Cluster of root directory: {0}", fat32Bpb.root_cluster).AppendLine();
- sb.AppendFormat("Sector of FSINFO structure: {0}", fat32Bpb.fsinfo_sector).AppendLine();
- sb.AppendFormat("Sector of backup FAT32 parameter block: {0}", fat32Bpb.backup_sector).AppendLine();
- sb.AppendFormat("Drive number: 0x{0:X2}", fat32Bpb.drive_no).AppendLine();
- sb.AppendFormat("Volume Serial Number: 0x{0:X8}", fat32Bpb.serial_no).AppendLine();
+ sb.AppendFormat(Localization._0_clusters_on_volume, XmlFsType.Clusters).AppendLine();
+ sb.AppendFormat(Localization.Media_descriptor_0, fat32Bpb.media).AppendLine();
+ sb.AppendFormat(Localization._0_sectors_per_FAT, fat32Bpb.big_spfat).AppendLine();
+ sb.AppendFormat(Localization._0_sectors_per_track, fat32Bpb.sptrk).AppendLine();
+ sb.AppendFormat(Localization._0_heads, fat32Bpb.heads).AppendLine();
+ sb.AppendFormat(Localization._0_hidden_sectors_before_BPB, fat32Bpb.hsectors).AppendLine();
+ sb.AppendFormat(Localization.Cluster_of_root_directory_0, fat32Bpb.root_cluster).AppendLine();
+ sb.AppendFormat(Localization.Sector_of_FSINFO_structure_0, fat32Bpb.fsinfo_sector).AppendLine();
+
+ sb.AppendFormat(Localization.Sector_of_backup_FAT32_parameter_block_0, fat32Bpb.backup_sector).
+ AppendLine();
+
+ sb.AppendFormat(Localization.Drive_number_0, fat32Bpb.drive_no).AppendLine();
+ sb.AppendFormat(Localization.Volume_Serial_Number_0, fat32Bpb.serial_no).AppendLine();
XmlFsType.VolumeSerial = $"{fat32Bpb.serial_no:X8}";
if((fat32Bpb.flags & 0xF8) == 0x00)
{
if((fat32Bpb.flags & 0x01) == 0x01)
{
- sb.AppendLine("Volume should be checked on next mount.");
+ sb.AppendLine(Localization.Volume_should_be_checked_on_next_mount);
XmlFsType.Dirty = true;
}
if((fat32Bpb.flags & 0x02) == 0x02)
- sb.AppendLine("Disk surface should be on next mount.");
+ sb.AppendLine(Localization.Disk_surface_should_be_on_next_mount);
}
if((fat32Bpb.mirror_flags & 0x80) == 0x80)
- sb.AppendFormat("FATs are out of sync. FAT #{0} is in use.", fat32Bpb.mirror_flags & 0xF).
+ sb.AppendFormat(Localization.FATs_are_out_of_sync_FAT_0_is_in_use, fat32Bpb.mirror_flags & 0xF).
AppendLine();
else
- sb.AppendLine("All copies of FAT are the same.");
+ sb.AppendLine(Localization.All_copies_of_FAT_are_the_same);
if((fat32Bpb.mirror_flags & 0x6F20) == 0x6F20)
- sb.AppendLine("DR-DOS will boot this FAT32 using CHS.");
+ sb.AppendLine(Localization.DR_DOS_will_boot_this_FAT32_using_CHS);
else if((fat32Bpb.mirror_flags & 0x4F20) == 0x4F20)
- sb.AppendLine("DR-DOS will boot this FAT32 using LBA.");
+ sb.AppendLine(Localization.DR_DOS_will_boot_this_FAT32_using_LBA);
if(fat32Bpb.signature == 0x29)
{
XmlFsType.VolumeName = StringHandlers.SpacePaddedToString(fat32Bpb.volume_label, Encoding);
XmlFsType.VolumeName = XmlFsType.VolumeName?.Replace("\0", "");
- sb.AppendFormat("Filesystem type: {0}", Encoding.ASCII.GetString(fat32Bpb.fs_type)).AppendLine();
+ sb.AppendFormat(Localization.Filesystem_type_0, Encoding.ASCII.GetString(fat32Bpb.fs_type)).
+ AppendLine();
bootChk = Sha1Context.Data(fat32Bpb.boot_code, out _);
}
@@ -615,13 +619,13 @@ public sealed partial class FAT
{
if(fsInfo.free_clusters < 0xFFFFFFFF)
{
- sb.AppendFormat("{0} free clusters", fsInfo.free_clusters).AppendLine();
+ sb.AppendFormat(Localization._0_free_clusters, fsInfo.free_clusters).AppendLine();
XmlFsType.FreeClusters = fsInfo.free_clusters;
XmlFsType.FreeClustersSpecified = true;
}
if(fsInfo.last_cluster is > 2 and < 0xFFFFFFFF)
- sb.AppendFormat("Last allocated cluster {0}", fsInfo.last_cluster).AppendLine();
+ sb.AppendFormat(Localization.Last_allocated_cluster_0, fsInfo.last_cluster).AppendLine();
}
}
@@ -642,13 +646,13 @@ public sealed partial class FAT
XmlFsType.Bootable = true;
var atariSb = new StringBuilder();
- atariSb.AppendFormat("cmdload will be loaded with value {0:X4}h",
+ atariSb.AppendFormat(Localization.cmdload_will_be_loaded_with_value_0,
BigEndianBitConverter.ToUInt16(bpbSector, 0x01E)).AppendLine();
- atariSb.AppendFormat("Boot program will be loaded at address {0:X4}h", atariBpb.ldaaddr).
+ atariSb.AppendFormat(Localization.Boot_program_will_be_loaded_at_address_0, atariBpb.ldaaddr).
AppendLine();
- atariSb.AppendFormat("FAT and directory will be cached at address {0:X4}h", atariBpb.fatbuf).
+ atariSb.AppendFormat(Localization.FAT_and_directory_will_be_cached_at_address_0, atariBpb.fatbuf).
AppendLine();
if(atariBpb.ldmode == 0)
@@ -666,10 +670,10 @@ public sealed partial class FAT
else
filename = fname + "." + extension;
- atariSb.AppendFormat("Boot program resides in file \"{0}\"", filename).AppendLine();
+ atariSb.AppendFormat(Localization.Boot_program_resides_in_file_0, filename).AppendLine();
}
else
- atariSb.AppendFormat("Boot program starts in sector {0} and is {1} sectors long ({2} bytes)",
+ atariSb.AppendFormat(Localization.Boot_program_starts_in_sector_0_and_is_1_sectors_long_2_bytes,
atariBpb.ssect, atariBpb.sectcnt, atariBpb.sectcnt * atariBpb.bps).
AppendLine();
@@ -785,35 +789,35 @@ public sealed partial class FAT
switch(bpbKind)
{
case BpbKind.Atari:
- sb.AppendLine("Atari FAT12");
+ sb.AppendLine(Localization.Atari_FAT12);
break;
case BpbKind.Apricot:
- sb.AppendLine("Apricot FAT12");
+ sb.AppendLine(Localization.Apricot_FAT12);
break;
case BpbKind.Human:
- sb.AppendLine("Human68k FAT12");
+ sb.AppendLine(Localization.Human68k_FAT12);
break;
default:
- sb.AppendLine("Microsoft FAT12");
+ sb.AppendLine(Localization.Microsoft_FAT12);
break;
}
- XmlFsType.Type = "FAT12";
+ XmlFsType.Type = FS_TYPE_FAT12;
}
else if(isFat16)
{
sb.AppendLine(bpbKind switch
{
- BpbKind.Atari => "Atari FAT16",
- BpbKind.Human => "Human68k FAT16",
- _ => "Microsoft FAT16"
+ BpbKind.Atari => Localization.Atari_FAT16,
+ BpbKind.Human => Localization.Human68k_FAT16,
+ _ => Localization.Microsoft_FAT16
});
- XmlFsType.Type = "FAT16";
+ XmlFsType.Type = FS_TYPE_FAT12;
}
if(bpbKind == BpbKind.Atari)
@@ -821,7 +825,7 @@ public sealed partial class FAT
if(atariBpb.serial_no[0] == 0x49 &&
atariBpb.serial_no[1] == 0x48 &&
atariBpb.serial_no[2] == 0x43)
- sb.AppendLine("Volume has been modified by Windows 9x/Me Volume Tracker.");
+ sb.AppendLine(Localization.Volume_has_been_modified_by_Windows_9x_Me_Volume_Tracker);
else
XmlFsType.VolumeSerial = $"{atariBpb.serial_no[0]:X2}{atariBpb.serial_no[1]:X2}{
atariBpb.serial_no[2]:X2}";
@@ -836,7 +840,7 @@ public sealed partial class FAT
if(fakeBpb.oem_name[5] == 0x49 &&
fakeBpb.oem_name[6] == 0x48 &&
fakeBpb.oem_name[7] == 0x43)
- sb.AppendLine("Volume has been modified by Windows 9x/Me Volume Tracker.");
+ sb.AppendLine(Localization.Volume_has_been_modified_by_Windows_9x_Me_Volume_Tracker);
else
XmlFsType.SystemIdentifier = fakeBpb.oem_name[0] switch
{
@@ -868,74 +872,76 @@ public sealed partial class FAT
}
if(XmlFsType.SystemIdentifier != null)
- sb.AppendFormat("OEM Name: {0}", XmlFsType.SystemIdentifier.Trim()).AppendLine();
+ sb.AppendFormat(Localization.OEM_name_0, XmlFsType.SystemIdentifier.Trim()).AppendLine();
- sb.AppendFormat("{0} bytes per sector.", fakeBpb.bps).AppendLine();
+ sb.AppendFormat(Localization._0_bytes_per_sector, fakeBpb.bps).AppendLine();
if(bpbKind != BpbKind.Human)
if(fakeBpb.sectors == 0)
- sb.AppendFormat("{0} sectors on volume ({1} bytes).", fakeBpb.big_sectors,
+ sb.AppendFormat(Localization._0_sectors_on_volume_1_bytes, fakeBpb.big_sectors,
fakeBpb.big_sectors * fakeBpb.bps).AppendLine();
else
- sb.AppendFormat("{0} sectors on volume ({1} bytes).", fakeBpb.sectors,
+ sb.AppendFormat(Localization._0_sectors_on_volume_1_bytes, fakeBpb.sectors,
fakeBpb.sectors * fakeBpb.bps).AppendLine();
else
- sb.AppendFormat("{0} sectors on volume ({1} bytes).",
+ sb.AppendFormat(Localization._0_sectors_on_volume_1_bytes,
clusters * humanBpb.bpc / imagePlugin.Info.SectorSize, clusters * humanBpb.bpc).
AppendLine();
XmlFsType.Clusters = clusters;
- sb.AppendFormat("{0} sectors per cluster.", fakeBpb.spc).AppendLine();
- sb.AppendFormat("{0} clusters on volume.", XmlFsType.Clusters).AppendLine();
+ sb.AppendFormat(Localization._0_sectors_per_cluster, fakeBpb.spc).AppendLine();
+ sb.AppendFormat(Localization._0_clusters_on_volume, XmlFsType.Clusters).AppendLine();
XmlFsType.ClusterSize = (uint)(fakeBpb.bps * fakeBpb.spc);
- sb.AppendFormat("{0} sectors reserved between BPB and FAT.", fakeBpb.rsectors).AppendLine();
- sb.AppendFormat("{0} FATs.", fakeBpb.fats_no).AppendLine();
- sb.AppendFormat("{0} entries on root directory.", fakeBpb.root_ent).AppendLine();
+ sb.AppendFormat(Localization._0_sectors_reserved_between_BPB_and_FAT, fakeBpb.rsectors).AppendLine();
+ sb.AppendFormat(Localization._0_FATs, fakeBpb.fats_no).AppendLine();
+ sb.AppendFormat(Localization._0_entries_on_root_directory, fakeBpb.root_ent).AppendLine();
if(fakeBpb.media > 0)
- sb.AppendFormat("Media descriptor: 0x{0:X2}", fakeBpb.media).AppendLine();
+ sb.AppendFormat(Localization.Media_descriptor_0, fakeBpb.media).AppendLine();
- sb.AppendFormat("{0} sectors per FAT.", fakeBpb.spfat).AppendLine();
+ sb.AppendFormat(Localization._0_sectors_per_FAT, fakeBpb.spfat).AppendLine();
if(fakeBpb.sptrk is > 0 and < 64 &&
fakeBpb.heads is > 0 and < 256)
{
- sb.AppendFormat("{0} sectors per track.", fakeBpb.sptrk).AppendLine();
- sb.AppendFormat("{0} heads.", fakeBpb.heads).AppendLine();
+ sb.AppendFormat(Localization._0_sectors_per_track, fakeBpb.sptrk).AppendLine();
+ sb.AppendFormat(Localization._0_heads, fakeBpb.heads).AppendLine();
}
if(fakeBpb.hsectors <= partition.Start)
- sb.AppendFormat("{0} hidden sectors before BPB.", fakeBpb.hsectors).AppendLine();
+ sb.AppendFormat(Localization._0_hidden_sectors_before_BPB, fakeBpb.hsectors).AppendLine();
if(fakeBpb.signature is 0x28 or 0x29 || andosOemCorrect)
{
- sb.AppendFormat("Drive number: 0x{0:X2}", fakeBpb.drive_no).AppendLine();
+ sb.AppendFormat(Localization.Drive_number_0, fakeBpb.drive_no).AppendLine();
if(XmlFsType.VolumeSerial != null)
- sb.AppendFormat("Volume Serial Number: {0}", XmlFsType.VolumeSerial).AppendLine();
+ sb.AppendFormat(Localization.Volume_Serial_Number_0, XmlFsType.VolumeSerial).AppendLine();
if((fakeBpb.flags & 0xF8) == 0x00)
{
if((fakeBpb.flags & 0x01) == 0x01)
{
- sb.AppendLine("Volume should be checked on next mount.");
+ sb.AppendLine(Localization.Volume_should_be_checked_on_next_mount);
XmlFsType.Dirty = true;
}
if((fakeBpb.flags & 0x02) == 0x02)
- sb.AppendLine("Disk surface should be on next mount.");
+ sb.AppendLine(Localization.Disk_surface_should_be_on_next_mount);
}
if(fakeBpb.signature == 0x29 || andosOemCorrect)
{
XmlFsType.VolumeName = StringHandlers.SpacePaddedToString(fakeBpb.volume_label, Encoding);
XmlFsType.VolumeName = XmlFsType.VolumeName?.Replace("\0", "");
- sb.AppendFormat("Filesystem type: {0}", Encoding.ASCII.GetString(fakeBpb.fs_type)).AppendLine();
+
+ sb.AppendFormat(Localization.Filesystem_type_0, Encoding.ASCII.GetString(fakeBpb.fs_type)).
+ AppendLine();
}
}
else if(bpbKind == BpbKind.Atari &&
XmlFsType.VolumeSerial != null)
- sb.AppendFormat("Volume Serial Number: {0}", XmlFsType.VolumeSerial).AppendLine();
+ sb.AppendFormat(Localization.Volume_Serial_Number_0, XmlFsType.VolumeSerial).AppendLine();
bootChk = Sha1Context.Data(fakeBpb.boot_code, out _);
@@ -1028,26 +1034,26 @@ public sealed partial class FAT
XmlFsType.CreationDate = XmlFsType.CreationDate.AddMilliseconds(entry.ctime_ms * 10);
XmlFsType.CreationDateSpecified = true;
- sb.AppendFormat("Volume created on {0}", XmlFsType.CreationDate).AppendLine();
+ sb.AppendFormat(Localization.Volume_created_on_0, XmlFsType.CreationDate).AppendLine();
}
if(entry is { mtime: > 0, mdate: > 0 })
{
XmlFsType.ModificationDate = DateHandlers.DosToDateTime(entry.mdate, entry.mtime);
XmlFsType.ModificationDateSpecified = true;
- sb.AppendFormat("Volume last modified on {0}", XmlFsType.ModificationDate).AppendLine();
+ sb.AppendFormat(Localization.Volume_last_modified_on_0, XmlFsType.ModificationDate).AppendLine();
}
if(entry.adate > 0)
- sb.AppendFormat("Volume last accessed on {0:d}", DateHandlers.DosToDateTime(entry.adate, 0)).
- AppendLine();
+ sb.AppendFormat(Localization.Volume_last_accessed_on_0_d,
+ DateHandlers.DosToDateTime(entry.adate, 0)).AppendLine();
break;
}
}
if(!string.IsNullOrEmpty(XmlFsType.VolumeName))
- sb.AppendFormat("Volume label: {0}", XmlFsType.VolumeName).AppendLine();
+ sb.AppendFormat(Localization.Volume_label_0, XmlFsType.VolumeName).AppendLine();
if(XmlFsType.Bootable)
{
@@ -1076,14 +1082,14 @@ public sealed partial class FAT
}
}
- sb.AppendLine("Volume is bootable");
- sb.AppendFormat("Boot code's SHA1: {0}", bootChk).AppendLine();
+ sb.AppendLine(Localization.Volume_is_bootable);
+ sb.AppendFormat(Localization.Boot_code_SHA1_0, bootChk).AppendLine();
string bootName = _knownBootHashes.FirstOrDefault(t => t.hash == bootChk).name;
if(string.IsNullOrWhiteSpace(bootName))
- sb.AppendLine("Unknown boot code.");
+ sb.AppendLine(Localization.Unknown_boot_code);
else
- sb.AppendFormat("Boot code corresponds to {0}", bootName).AppendLine();
+ sb.AppendFormat(Localization.Boot_code_corresponds_to_0, bootName).AppendLine();
}
information = sb.ToString();
diff --git a/Aaru.Filesystems/FAT/Super.cs b/Aaru.Filesystems/FAT/Super.cs
index 3d43a6b76..f1b835cda 100644
--- a/Aaru.Filesystems/FAT/Super.cs
+++ b/Aaru.Filesystems/FAT/Super.cs
@@ -97,7 +97,7 @@ public sealed partial class FAT
default: return ErrorNumber.InvalidArgument;
}
- AaruConsole.DebugWriteLine("FAT plugin", "Reading BPB");
+ AaruConsole.DebugWriteLine("FAT plugin", Localization.Reading_BPB);
uint sectorsPerBpb = imagePlugin.Info.SectorSize < 512 ? 512 / imagePlugin.Info.SectorSize : 1;
@@ -166,7 +166,7 @@ public sealed partial class FAT
fat32Bpb.sptrk /= 4;
}
- XmlFsType.Type = fat32Bpb.version != 0 ? "FAT+" : "FAT32";
+ XmlFsType.Type = fat32Bpb.version != 0 ? FS_TYPE_FAT_PLUS : FS_TYPE_FAT32;
if(fat32Bpb.oem_name != null &&
(fat32Bpb.oem_name[5] != 0x49 || fat32Bpb.oem_name[6] != 0x48 || fat32Bpb.oem_name[7] != 0x43))
@@ -377,9 +377,9 @@ public sealed partial class FAT
}
if(_fat12)
- XmlFsType.Type = "FAT12";
+ XmlFsType.Type = FS_TYPE_FAT12;
else if(_fat16)
- XmlFsType.Type = "FAT16";
+ XmlFsType.Type = FS_TYPE_FAT16;
if(bpbKind == BpbKind.Atari)
{
@@ -702,7 +702,7 @@ public sealed partial class FAT
if(name == "" &&
extension == "")
{
- AaruConsole.DebugWriteLine("FAT filesystem", "Found empty filename in root directory");
+ AaruConsole.DebugWriteLine("FAT filesystem", Localization.Found_empty_filename_in_root_directory);
if(!_debug ||
entry is { size: > 0, start_cluster: 0 })
@@ -773,49 +773,15 @@ public sealed partial class FAT
switch(bpbKind)
{
- case BpbKind.Hardcoded:
- _statfs.Type = $"Microsoft FAT{(_fat16 ? "16" : "12")}";
-
- break;
- case BpbKind.Atari:
- _statfs.Type = $"Atari FAT{(_fat16 ? "16" : "12")}";
-
- break;
- case BpbKind.Msx:
- _statfs.Type = $"MSX FAT{(_fat16 ? "16" : "12")}";
-
- break;
- case BpbKind.Dos2:
- case BpbKind.Dos3:
- case BpbKind.Dos32:
- case BpbKind.Dos33:
- case BpbKind.ShortExtended:
- case BpbKind.Extended:
- _statfs.Type = $"Microsoft FAT{(_fat16 ? "16" : "12")}";
-
- break;
case BpbKind.ShortFat32:
case BpbKind.LongFat32:
- _statfs.Type = XmlFsType.Type == "FAT+" ? "FAT+" : "Microsoft FAT32";
+ _statfs.Type = XmlFsType.Type == FS_TYPE_FAT_PLUS ? FS_TYPE_FAT_PLUS : FS_TYPE_FAT32;
break;
- case BpbKind.Andos:
- _statfs.Type = $"ANDOS FAT{(_fat16 ? "16" : "12")}";
+ default:
+ _statfs.Type = _fat16 ? FS_TYPE_FAT16 : FS_TYPE_FAT12;
break;
- case BpbKind.Apricot:
- _statfs.Type = $"Apricot FAT{(_fat16 ? "16" : "12")}";
-
- break;
- case BpbKind.DecRainbow:
- _statfs.Type = $"DEC FAT{(_fat16 ? "16" : "12")}";
-
- break;
- case BpbKind.Human:
- _statfs.Type = $"Human68k FAT{(_fat16 ? "16" : "12")}";
-
- break;
- default: throw new ArgumentOutOfRangeException();
}
_bytesPerCluster = _sectorsPerCluster * imagePlugin.Info.SectorSize;
@@ -827,7 +793,7 @@ public sealed partial class FAT
if(_fat12)
{
- AaruConsole.DebugWriteLine("FAT plugin", "Reading FAT12");
+ AaruConsole.DebugWriteLine("FAT plugin", Localization.Reading_FAT12);
errno = imagePlugin.ReadSectors(_fatFirstSector, _sectorsPerFat, out byte[] fatBytes);
@@ -880,14 +846,14 @@ public sealed partial class FAT
}
else if(_fat16)
{
- AaruConsole.DebugWriteLine("FAT plugin", "Reading FAT16");
+ AaruConsole.DebugWriteLine("FAT plugin", Localization.Reading_FAT16);
errno = imagePlugin.ReadSectors(_fatFirstSector, _sectorsPerFat, out byte[] fatBytes);
if(errno != ErrorNumber.NoError)
return errno;
- AaruConsole.DebugWriteLine("FAT plugin", "Casting FAT");
+ AaruConsole.DebugWriteLine("FAT plugin", Localization.Casting_FAT);
firstFatEntries = MemoryMarshal.Cast(fatBytes).ToArray();
errno = imagePlugin.ReadSectors(_fatFirstSector + _sectorsPerFat, _sectorsPerFat, out fatBytes);
@@ -895,7 +861,7 @@ public sealed partial class FAT
if(errno != ErrorNumber.NoError)
return errno;
- AaruConsole.DebugWriteLine("FAT plugin", "Casting FAT");
+ AaruConsole.DebugWriteLine("FAT plugin", Localization.Casting_FAT);
secondFatEntries = MemoryMarshal.Cast(fatBytes).ToArray();
if(firstFatEntries.Any(entry => entry < FAT16_RESERVED && entry > _statfs.Blocks))
diff --git a/Aaru.Filesystems/FATX/Consts.cs b/Aaru.Filesystems/FATX/Consts.cs
index 41b9f591b..702450838 100644
--- a/Aaru.Filesystems/FATX/Consts.cs
+++ b/Aaru.Filesystems/FATX/Consts.cs
@@ -59,6 +59,9 @@ public sealed partial class XboxFatPlugin
const ushort FAT16_RESERVED = 0xFFF0;
const ushort FAT_RESERVED = 1;
+ // Do not translate
+ const string FS_TYPE = "fatx";
+
[Flags]
enum Attributes : byte
{
diff --git a/Aaru.Filesystems/FATX/FATX.cs b/Aaru.Filesystems/FATX/FATX.cs
index df419242b..7511c16bc 100644
--- a/Aaru.Filesystems/FATX/FATX.cs
+++ b/Aaru.Filesystems/FATX/FATX.cs
@@ -66,11 +66,11 @@ public sealed partial class XboxFatPlugin : IReadOnlyFilesystem
///
public Encoding Encoding { get; private set; }
///
- public string Name => "FATX Filesystem Plugin";
+ public string Name => Localization.XboxFatPlugin_Name;
///
public Guid Id => new("ED27A721-4A17-4649-89FD-33633B46E228");
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
///
public ErrorNumber ListXAttr(string path, out List xattrs)
diff --git a/Aaru.Filesystems/FATX/Info.cs b/Aaru.Filesystems/FATX/Info.cs
index f8af50f4b..c70e49be9 100644
--- a/Aaru.Filesystems/FATX/Info.cs
+++ b/Aaru.Filesystems/FATX/Info.cs
@@ -88,28 +88,28 @@ public sealed partial class XboxFatPlugin
var sb = new StringBuilder();
- sb.AppendLine("FATX filesystem");
+ sb.AppendLine(Localization.FATX_filesystem);
- sb.AppendFormat("{0} logical sectors ({1} bytes) per physical sector", logicalSectorsPerPhysicalSectors,
+ sb.AppendFormat(Localization._0_logical_sectors_1_bytes_per_physical_sector, logicalSectorsPerPhysicalSectors,
logicalSectorsPerPhysicalSectors * imagePlugin.Info.SectorSize).AppendLine();
- sb.AppendFormat("{0} sectors ({1} bytes) per cluster", fatxSb.sectorsPerCluster,
+ sb.AppendFormat(Localization._0_sectors_1_bytes_per_cluster, fatxSb.sectorsPerCluster,
fatxSb.sectorsPerCluster * logicalSectorsPerPhysicalSectors * imagePlugin.Info.SectorSize).
AppendLine();
- sb.AppendFormat("Root directory starts on cluster {0}", fatxSb.rootDirectoryCluster).AppendLine();
+ sb.AppendFormat(Localization.Root_directory_starts_on_cluster_0, fatxSb.rootDirectoryCluster).AppendLine();
string volumeLabel = StringHandlers.CToString(fatxSb.volumeLabel,
bigEndian ? Encoding.BigEndianUnicode : Encoding.Unicode, true);
- sb.AppendFormat("Volume label: {0}", volumeLabel).AppendLine();
- sb.AppendFormat("Volume serial: {0:X8}", fatxSb.id).AppendLine();
+ sb.AppendFormat(Localization.Volume_label_0, volumeLabel).AppendLine();
+ sb.AppendFormat(Localization.Volume_serial_0_X8, fatxSb.id).AppendLine();
information = sb.ToString();
XmlFsType = new FileSystemType
{
- Type = "FATX filesystem",
+ Type = FS_TYPE,
ClusterSize = (uint)(fatxSb.sectorsPerCluster * logicalSectorsPerPhysicalSectors *
imagePlugin.Info.SectorSize),
VolumeName = volumeLabel,
diff --git a/Aaru.Filesystems/FATX/Super.cs b/Aaru.Filesystems/FATX/Super.cs
index 98d62e429..e8d3b8b61 100644
--- a/Aaru.Filesystems/FATX/Super.cs
+++ b/Aaru.Filesystems/FATX/Super.cs
@@ -63,7 +63,7 @@ public sealed partial class XboxFatPlugin
if(imagePlugin.Info.SectorSize < 512)
return ErrorNumber.InvalidArgument;
- AaruConsole.DebugWriteLine("Xbox FAT plugin", "Reading superblock");
+ AaruConsole.DebugWriteLine("Xbox FAT plugin", Localization.Reading_superblock);
ErrorNumber errno = imagePlugin.ReadSector(partition.Start, out byte[] sector);
@@ -82,7 +82,8 @@ public sealed partial class XboxFatPlugin
return ErrorNumber.InvalidArgument;
AaruConsole.DebugWriteLine("Xbox FAT plugin",
- _littleEndian ? "Filesystem is little endian" : "Filesystem is big endian");
+ _littleEndian ? Localization.Filesystem_is_little_endian
+ : Localization.Filesystem_is_big_endian);
int logicalSectorsPerPhysicalSectors = partition.Offset == 0 && _littleEndian ? 8 : 1;
@@ -95,7 +96,7 @@ public sealed partial class XboxFatPlugin
XmlFsType = new FileSystemType
{
- Type = "FATX filesystem",
+ Type = Localization.FATX_filesystem,
ClusterSize = (uint)(_superblock.sectorsPerCluster * logicalSectorsPerPhysicalSectors *
imagePlugin.Info.SectorSize),
VolumeName = volumeLabel,
@@ -137,7 +138,7 @@ public sealed partial class XboxFatPlugin
if(_statfs.Blocks > MAX_XFAT16_CLUSTERS)
{
- AaruConsole.DebugWriteLine("Xbox FAT plugin", "Reading FAT32");
+ AaruConsole.DebugWriteLine("Xbox FAT plugin", Localization.Reading_FAT32);
fatSize = (uint)((_statfs.Blocks + 1) * sizeof(uint) / imagePlugin.Info.SectorSize);
@@ -151,14 +152,14 @@ public sealed partial class XboxFatPlugin
fatSize = (uint)(fatClusters * 4096 / imagePlugin.Info.SectorSize);
- AaruConsole.DebugWriteLine("Xbox FAT plugin", "FAT is {0} sectors", fatSize);
+ AaruConsole.DebugWriteLine("Xbox FAT plugin", Localization.FAT_is_0_sectors, fatSize);
errno = imagePlugin.ReadSectors(_fatStartSector, fatSize, out buffer);
if(errno != ErrorNumber.NoError)
return errno;
- AaruConsole.DebugWriteLine("Xbox FAT plugin", "Casting FAT");
+ AaruConsole.DebugWriteLine("Xbox FAT plugin", Localization.Casting_FAT);
_fat32 = MemoryMarshal.Cast(buffer).ToArray();
if(!_littleEndian)
@@ -172,7 +173,7 @@ public sealed partial class XboxFatPlugin
}
else
{
- AaruConsole.DebugWriteLine("Xbox FAT plugin", "Reading FAT16");
+ AaruConsole.DebugWriteLine("Xbox FAT plugin", Localization.Reading_FAT16);
fatSize = (uint)((_statfs.Blocks + 1) * sizeof(ushort) / imagePlugin.Info.SectorSize);
@@ -186,14 +187,14 @@ public sealed partial class XboxFatPlugin
fatSize = (uint)(fatClusters * 4096 / imagePlugin.Info.SectorSize);
- AaruConsole.DebugWriteLine("Xbox FAT plugin", "FAT is {0} sectors", fatSize);
+ AaruConsole.DebugWriteLine("Xbox FAT plugin", Localization.FAT_is_0_sectors, fatSize);
errno = imagePlugin.ReadSectors(_fatStartSector, fatSize, out buffer);
if(errno != ErrorNumber.NoError)
return errno;
- AaruConsole.DebugWriteLine("Xbox FAT plugin", "Casting FAT");
+ AaruConsole.DebugWriteLine("Xbox FAT plugin", Localization.Casting_FAT);
_fat16 = MemoryMarshal.Cast(buffer).ToArray();
if(!_littleEndian)
@@ -222,7 +223,7 @@ public sealed partial class XboxFatPlugin
byte[] rootDirectoryBuffer = new byte[_bytesPerCluster * rootDirectoryClusters.Length];
- AaruConsole.DebugWriteLine("Xbox FAT plugin", "Reading root directory");
+ AaruConsole.DebugWriteLine("Xbox FAT plugin", Localization.Reading_root_directory);
for(int i = 0; i < rootDirectoryClusters.Length; i++)
{
diff --git a/Aaru.Filesystems/FFS.cs b/Aaru.Filesystems/FFS.cs
index 22901338a..e62565295 100644
--- a/Aaru.Filesystems/FFS.cs
+++ b/Aaru.Filesystems/FFS.cs
@@ -101,11 +101,11 @@ public sealed class FFSPlugin : IFilesystem
///
public Encoding Encoding { get; private set; }
///
- public string Name => "BSD Fast File System (aka UNIX File System, UFS)";
+ public string Name => Localization.FFSPlugin_Name;
///
public Guid Id => new("CC90D342-05DB-48A8-988C-C1FE000034A3");
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
///
public bool Identify(IMediaImage imagePlugin, Partition partition)
@@ -152,6 +152,9 @@ public sealed class FFSPlugin : IFilesystem
}
}
+ const string FS_TYPE_UFS = "ufs";
+ const string FS_TYPE_UFS2 = "ufs2";
+
///
public void GetInformation(IMediaImage imagePlugin, Partition partition, out string information, Encoding encoding)
{
@@ -207,7 +210,7 @@ public sealed class FFSPlugin : IFilesystem
if(magic == 0)
{
- information = "Not a UFS filesystem, I shouldn't have arrived here!";
+ information = Localization.Not_a_UFS_filesystem_I_shouldnt_have_arrived_here;
return;
}
@@ -217,45 +220,45 @@ public sealed class FFSPlugin : IFilesystem
switch(magic)
{
case UFS_MAGIC:
- sbInformation.AppendLine("UFS filesystem");
- XmlFsType.Type = "UFS";
+ sbInformation.AppendLine(Localization.UFS_filesystem);
+ XmlFsType.Type = FS_TYPE_UFS;
break;
case UFS_CIGAM:
- sbInformation.AppendLine("Big-endian UFS filesystem");
- XmlFsType.Type = "UFS";
+ sbInformation.AppendLine(Localization.Big_endian_UFS_filesystem);
+ XmlFsType.Type = FS_TYPE_UFS;
break;
case UFS_MAGIC_BW:
- sbInformation.AppendLine("BorderWare UFS filesystem");
- XmlFsType.Type = "UFS";
+ sbInformation.AppendLine(Localization.BorderWare_UFS_filesystem);
+ XmlFsType.Type = FS_TYPE_UFS;
break;
case UFS_CIGAM_BW:
- sbInformation.AppendLine("Big-endian BorderWare UFS filesystem");
- XmlFsType.Type = "UFS";
+ sbInformation.AppendLine(Localization.Big_endian_BorderWare_UFS_filesystem);
+ XmlFsType.Type = FS_TYPE_UFS;
break;
case UFS2_MAGIC:
- sbInformation.AppendLine("UFS2 filesystem");
- XmlFsType.Type = "UFS2";
+ sbInformation.AppendLine(Localization.UFS2_filesystem);
+ XmlFsType.Type = FS_TYPE_UFS2;
break;
case UFS2_CIGAM:
- sbInformation.AppendLine("Big-endian UFS2 filesystem");
- XmlFsType.Type = "UFS2";
+ sbInformation.AppendLine(Localization.Big_endian_UFS2_filesystem);
+ XmlFsType.Type = FS_TYPE_UFS2;
break;
case UFS_BAD_MAGIC:
- sbInformation.AppendLine("Incompletely initialized UFS filesystem");
- sbInformation.AppendLine("BEWARE!!! Following information may be completely wrong!");
- XmlFsType.Type = "UFS";
+ sbInformation.AppendLine(Localization.Incompletely_initialized_UFS_filesystem);
+ sbInformation.AppendLine(Localization.BEWARE_Following_information_may_be_completely_wrong);
+ XmlFsType.Type = FS_TYPE_UFS;
break;
case UFS_BAD_CIGAM:
- sbInformation.AppendLine("Incompletely initialized big-endian UFS filesystem");
- sbInformation.AppendLine("BEWARE!!! Following information may be completely wrong!");
- XmlFsType.Type = "UFS";
+ sbInformation.AppendLine(Localization.Incompletely_initialized_big_endian_UFS_filesystem);
+ sbInformation.AppendLine(Localization.BEWARE_Following_information_may_be_completely_wrong);
+ XmlFsType.Type = FS_TYPE_UFS;
break;
}
@@ -382,214 +385,224 @@ public sealed class FFSPlugin : IFilesystem
if(!fs_type_ufs2)
{
- sbInformation.AppendLine("There are a lot of variants of UFS using overlapped values on same fields");
+ sbInformation.AppendLine(Localization.
+ There_are_a_lot_of_variants_of_UFS_using_overlapped_values_on_same_fields);
- sbInformation.
- AppendLine("I will try to guess which one it is, but unless it's UFS2, I may be surely wrong");
+ sbInformation.AppendLine(Localization.
+ I_will_try_to_guess_which_one_it_is_but_unless_its_UFS2_I_may_be_surely_wrong);
}
if(fs_type_42bsd)
- sbInformation.AppendLine("Guessed as 42BSD FFS");
+ sbInformation.AppendLine(Localization.Guessed_as_42BSD_FFS);
if(fs_type_43bsd)
- sbInformation.AppendLine("Guessed as 43BSD FFS");
+ sbInformation.AppendLine(Localization.Guessed_as_43BSD_FFS);
if(fs_type_44bsd)
- sbInformation.AppendLine("Guessed as 44BSD FFS");
+ sbInformation.AppendLine(Localization.Guessed_as_44BSD_FFS);
if(fs_type_sun)
- sbInformation.AppendLine("Guessed as SunOS FFS");
+ sbInformation.AppendLine(Localization.Guessed_as_SunOS_FFS);
if(fs_type_sun86)
- sbInformation.AppendLine("Guessed as SunOS/x86 FFS");
+ sbInformation.AppendLine(Localization.Guessed_as_SunOS_x86_FFS);
if(fs_type_ufs)
- sbInformation.AppendLine("Guessed as UFS");
+ sbInformation.AppendLine(Localization.Guessed_as_UFS);
if(fs_type_42bsd)
- sbInformation.AppendFormat("Linked list of filesystems: 0x{0:X8}", sb.fs_link).AppendLine();
+ sbInformation.AppendFormat(Localization.Linked_list_of_filesystems_0, sb.fs_link).AppendLine();
- sbInformation.AppendFormat("Superblock LBA: {0}", sb.fs_sblkno).AppendLine();
- sbInformation.AppendFormat("Cylinder-block LBA: {0}", sb.fs_cblkno).AppendLine();
- sbInformation.AppendFormat("inode-block LBA: {0}", sb.fs_iblkno).AppendLine();
- sbInformation.AppendFormat("First data block LBA: {0}", sb.fs_dblkno).AppendLine();
- sbInformation.AppendFormat("Cylinder group offset in cylinder: {0}", sb.fs_old_cgoffset).AppendLine();
+ sbInformation.AppendFormat(Localization.Superblock_LBA_0, sb.fs_sblkno).AppendLine();
+ sbInformation.AppendFormat(Localization.Cylinder_block_LBA_0, sb.fs_cblkno).AppendLine();
+ sbInformation.AppendFormat(Localization.inode_block_LBA_0, sb.fs_iblkno).AppendLine();
+ sbInformation.AppendFormat(Localization.First_data_block_LBA_0, sb.fs_dblkno).AppendLine();
+ sbInformation.AppendFormat(Localization.Cylinder_group_offset_in_cylinder_0, sb.fs_old_cgoffset).AppendLine();
- sbInformation.AppendFormat("Volume last written on {0}", DateHandlers.UnixToDateTime(sb.fs_old_time)).
+ sbInformation.AppendFormat(Localization.Volume_last_written_on_0, DateHandlers.UnixToDateTime(sb.fs_old_time)).
AppendLine();
XmlFsType.ModificationDate = DateHandlers.UnixToDateTime(sb.fs_old_time);
XmlFsType.ModificationDateSpecified = true;
- sbInformation.AppendFormat("{0} blocks in volume ({1} bytes)", sb.fs_old_size,
+ sbInformation.AppendFormat(Localization._0_blocks_in_volume_1_bytes, sb.fs_old_size,
(long)sb.fs_old_size * sb.fs_fsize).AppendLine();
XmlFsType.Clusters = (ulong)sb.fs_old_size;
XmlFsType.ClusterSize = (uint)sb.fs_fsize;
- sbInformation.AppendFormat("{0} data blocks in volume ({1} bytes)", sb.fs_old_dsize,
+ sbInformation.AppendFormat(Localization._0_data_blocks_in_volume_1_bytes, sb.fs_old_dsize,
(long)sb.fs_old_dsize * sb.fs_fsize).AppendLine();
- sbInformation.AppendFormat("{0} cylinder groups in volume", sb.fs_ncg).AppendLine();
- sbInformation.AppendFormat("{0} bytes in a basic block", sb.fs_bsize).AppendLine();
- sbInformation.AppendFormat("{0} bytes in a frag block", sb.fs_fsize).AppendLine();
- sbInformation.AppendFormat("{0} frags in a block", sb.fs_frag).AppendLine();
- sbInformation.AppendFormat("{0}% of blocks must be free", sb.fs_minfree).AppendLine();
- sbInformation.AppendFormat("{0}ms for optimal next block", sb.fs_old_rotdelay).AppendLine();
+ sbInformation.AppendFormat(Localization._0_cylinder_groups_in_volume, sb.fs_ncg).AppendLine();
+ sbInformation.AppendFormat(Localization._0_bytes_in_a_basic_block, sb.fs_bsize).AppendLine();
+ sbInformation.AppendFormat(Localization._0_bytes_in_a_frag_block, sb.fs_fsize).AppendLine();
+ sbInformation.AppendFormat(Localization._0_frags_in_a_block, sb.fs_frag).AppendLine();
+ sbInformation.AppendFormat(Localization._0_of_blocks_must_be_free, sb.fs_minfree).AppendLine();
+ sbInformation.AppendFormat(Localization._0_ms_for_optimal_next_block, sb.fs_old_rotdelay).AppendLine();
- sbInformation.AppendFormat("disk rotates {0} times per second ({1}rpm)", sb.fs_old_rps, sb.fs_old_rps * 60).
- AppendLine();
+ sbInformation.
+ AppendFormat(Localization.Disk_rotates_0_times_per_second_1_rpm, sb.fs_old_rps, sb.fs_old_rps * 60).
+ AppendLine();
/* sbInformation.AppendFormat("fs_bmask: 0x{0:X8}", sb.fs_bmask).AppendLine();
sbInformation.AppendFormat("fs_fmask: 0x{0:X8}", sb.fs_fmask).AppendLine();
sbInformation.AppendFormat("fs_bshift: 0x{0:X8}", sb.fs_bshift).AppendLine();
sbInformation.AppendFormat("fs_fshift: 0x{0:X8}", sb.fs_fshift).AppendLine();*/
- sbInformation.AppendFormat("{0} contiguous blocks at maximum", sb.fs_maxcontig).AppendLine();
- sbInformation.AppendFormat("{0} blocks per cylinder group at maximum", sb.fs_maxbpg).AppendLine();
- sbInformation.AppendFormat("Superblock is {0} bytes", sb.fs_sbsize).AppendLine();
- sbInformation.AppendFormat("NINDIR: 0x{0:X8}", sb.fs_nindir).AppendLine();
- sbInformation.AppendFormat("INOPB: 0x{0:X8}", sb.fs_inopb).AppendLine();
- sbInformation.AppendFormat("NSPF: 0x{0:X8}", sb.fs_old_nspf).AppendLine();
+ sbInformation.AppendFormat(Localization._0_contiguous_blocks_at_maximum, sb.fs_maxcontig).AppendLine();
+ sbInformation.AppendFormat(Localization._0_blocks_per_cylinder_group_at_maximum, sb.fs_maxbpg).AppendLine();
+ sbInformation.AppendFormat(Localization.Superblock_is_0_bytes, sb.fs_sbsize).AppendLine();
+ sbInformation.AppendFormat(Localization.NINDIR_0, sb.fs_nindir).AppendLine();
+ sbInformation.AppendFormat(Localization.INOPB_0, sb.fs_inopb).AppendLine();
+ sbInformation.AppendFormat(Localization.NSPF_0, sb.fs_old_nspf).AppendLine();
switch(sb.fs_optim)
{
case 0:
- sbInformation.AppendLine("Filesystem will minimize allocation time");
+ sbInformation.AppendLine(Localization.Filesystem_will_minimize_allocation_time);
break;
case 1:
- sbInformation.AppendLine("Filesystem will minimize volume fragmentation");
+ sbInformation.AppendLine(Localization.Filesystem_will_minimize_volume_fragmentation);
break;
default:
- sbInformation.AppendFormat("Unknown optimization value: 0x{0:X8}", sb.fs_optim).AppendLine();
+ sbInformation.AppendFormat(Localization.Unknown_optimization_value_0, sb.fs_optim).AppendLine();
break;
}
if(fs_type_sun)
- sbInformation.AppendFormat("{0} sectors/track", sb.fs_old_npsect).AppendLine();
+ sbInformation.AppendFormat(Localization._0_sectors_track, sb.fs_old_npsect).AppendLine();
else if(fs_type_sun86)
- sbInformation.AppendFormat("Volume state on {0}", DateHandlers.UnixToDateTime(sb.fs_old_npsect)).
+ sbInformation.AppendFormat(Localization.Volume_state_on_0, DateHandlers.UnixToDateTime(sb.fs_old_npsect)).
AppendLine();
- sbInformation.AppendFormat("Hardware sector interleave: {0}", sb.fs_old_interleave).AppendLine();
- sbInformation.AppendFormat("Sector 0 skew: {0}/track", sb.fs_old_trackskew).AppendLine();
+ sbInformation.AppendFormat(Localization.Hardware_sector_interleave_0, sb.fs_old_interleave).AppendLine();
+ sbInformation.AppendFormat(Localization.Sector_zero_skew_0_track, sb.fs_old_trackskew).AppendLine();
switch(fs_type_43bsd)
{
case false when sb is { fs_id_1: > 0, fs_id_2: > 0 }:
- sbInformation.AppendFormat("Volume ID: 0x{0:X8}{1:X8}", sb.fs_id_1, sb.fs_id_2).AppendLine();
+ sbInformation.AppendFormat(Localization.Volume_ID_0_X8_1_X8, sb.fs_id_1, sb.fs_id_2).AppendLine();
break;
case true when sb is { fs_id_1: > 0, fs_id_2: > 0 }:
- sbInformation.AppendFormat("{0} µsec for head switch", sb.fs_id_1).AppendLine();
- sbInformation.AppendFormat("{0} µsec for track-to-track seek", sb.fs_id_2).AppendLine();
+ sbInformation.AppendFormat(Localization._0_µsec_for_head_switch, sb.fs_id_1).AppendLine();
+ sbInformation.AppendFormat(Localization._0_µsec_for_track_to_track_seek, sb.fs_id_2).AppendLine();
break;
}
- sbInformation.AppendFormat("Cylinder group summary LBA: {0}", sb.fs_old_csaddr).AppendLine();
- sbInformation.AppendFormat("{0} bytes in cylinder group summary", sb.fs_cssize).AppendLine();
- sbInformation.AppendFormat("{0} bytes in cylinder group", sb.fs_cgsize).AppendLine();
- sbInformation.AppendFormat("{0} tracks/cylinder", sb.fs_old_ntrak).AppendLine();
- sbInformation.AppendFormat("{0} sectors/track", sb.fs_old_nsect).AppendLine();
- sbInformation.AppendFormat("{0} sectors/cylinder", sb.fs_old_spc).AppendLine();
- sbInformation.AppendFormat("{0} cylinder in volume", sb.fs_old_ncyl).AppendLine();
- sbInformation.AppendFormat("{0} cylinders/group", sb.fs_old_cpg).AppendLine();
- sbInformation.AppendFormat("{0} inodes per cylinder group", sb.fs_ipg).AppendLine();
- sbInformation.AppendFormat("{0} blocks per group", sb.fs_fpg / sb.fs_frag).AppendLine();
- sbInformation.AppendFormat("{0} directories", sb.fs_old_cstotal.cs_ndir).AppendLine();
+ sbInformation.AppendFormat(Localization.Cylinder_group_summary_LBA_0, sb.fs_old_csaddr).AppendLine();
+ sbInformation.AppendFormat(Localization._0_bytes_in_cylinder_group_summary, sb.fs_cssize).AppendLine();
+ sbInformation.AppendFormat(Localization._0_bytes_in_cylinder_group, sb.fs_cgsize).AppendLine();
+ sbInformation.AppendFormat(Localization._0_tracks_cylinder, sb.fs_old_ntrak).AppendLine();
+ sbInformation.AppendFormat(Localization._0_sectors_track, sb.fs_old_nsect).AppendLine();
+ sbInformation.AppendFormat(Localization._0_sectors_cylinder, sb.fs_old_spc).AppendLine();
+ sbInformation.AppendFormat(Localization._0_cylinders_in_volume, sb.fs_old_ncyl).AppendLine();
+ sbInformation.AppendFormat(Localization._0_cylinders_group, sb.fs_old_cpg).AppendLine();
+ sbInformation.AppendFormat(Localization._0_inodes_per_cylinder_group, sb.fs_ipg).AppendLine();
+ sbInformation.AppendFormat(Localization._0_blocks_per_group, sb.fs_fpg / sb.fs_frag).AppendLine();
+ sbInformation.AppendFormat(Localization._0_directories, sb.fs_old_cstotal.cs_ndir).AppendLine();
- sbInformation.AppendFormat("{0} free blocks ({1} bytes)", sb.fs_old_cstotal.cs_nbfree,
+ sbInformation.AppendFormat(Localization._0_free_blocks_1_bytes, sb.fs_old_cstotal.cs_nbfree,
(long)sb.fs_old_cstotal.cs_nbfree * sb.fs_fsize).AppendLine();
XmlFsType.FreeClusters = (ulong)sb.fs_old_cstotal.cs_nbfree;
XmlFsType.FreeClustersSpecified = true;
- sbInformation.AppendFormat("{0} free inodes", sb.fs_old_cstotal.cs_nifree).AppendLine();
- sbInformation.AppendFormat("{0} free frags", sb.fs_old_cstotal.cs_nffree).AppendLine();
+ sbInformation.AppendFormat(Localization._0_free_inodes, sb.fs_old_cstotal.cs_nifree).AppendLine();
+ sbInformation.AppendFormat(Localization._0_free_frags, sb.fs_old_cstotal.cs_nffree).AppendLine();
if(sb.fs_fmod == 1)
{
- sbInformation.AppendLine("Superblock is under modification");
+ sbInformation.AppendLine(Localization.Superblock_is_under_modification);
XmlFsType.Dirty = true;
}
if(sb.fs_clean == 1)
- sbInformation.AppendLine("Volume is clean");
+ sbInformation.AppendLine(Localization.Volume_is_clean);
if(sb.fs_ronly == 1)
- sbInformation.AppendLine("Volume is read-only");
+ sbInformation.AppendLine(Localization.Volume_is_read_only);
- sbInformation.AppendFormat("Volume flags: 0x{0:X2}", sb.fs_flags).AppendLine();
+ sbInformation.AppendFormat(Localization.Volume_flags_0_X2, sb.fs_flags).AppendLine();
if(fs_type_ufs)
- sbInformation.AppendFormat("Volume last mounted on \"{0}\"", StringHandlers.CToString(sb.fs_fsmnt)).
+ sbInformation.AppendFormat(Localization.Volume_last_mounted_at_0, StringHandlers.CToString(sb.fs_fsmnt)).
AppendLine();
else if(fs_type_ufs2)
{
- sbInformation.AppendFormat("Volume last mounted on \"{0}\"", StringHandlers.CToString(sb.fs_fsmnt)).
+ sbInformation.AppendFormat(Localization.Volume_last_mounted_at_0, StringHandlers.CToString(sb.fs_fsmnt)).
AppendLine();
- sbInformation.AppendFormat("Volume name: \"{0}\"", StringHandlers.CToString(sb.fs_volname)).AppendLine();
+ sbInformation.AppendFormat(Localization.Volume_name_0, StringHandlers.CToString(sb.fs_volname)).
+ AppendLine();
XmlFsType.VolumeName = StringHandlers.CToString(sb.fs_volname);
- sbInformation.AppendFormat("Volume ID: 0x{0:X16}", sb.fs_swuid).AppendLine();
+ sbInformation.AppendFormat(Localization.Volume_ID_0_X16, sb.fs_swuid).AppendLine();
//xmlFSType.VolumeSerial = string.Format("{0:X16}", sb.fs_swuid);
- sbInformation.AppendFormat("Last searched cylinder group: {0}", sb.fs_cgrotor).AppendLine();
- sbInformation.AppendFormat("{0} contiguously allocated directories", sb.fs_contigdirs).AppendLine();
- sbInformation.AppendFormat("Standard superblock LBA: {0}", sb.fs_sblkno).AppendLine();
- sbInformation.AppendFormat("{0} directories", sb.fs_cstotal.cs_ndir).AppendLine();
+ sbInformation.AppendFormat(Localization.Last_searched_cylinder_group_0, sb.fs_cgrotor).AppendLine();
- sbInformation.AppendFormat("{0} free blocks ({1} bytes)", sb.fs_cstotal.cs_nbfree,
+ sbInformation.AppendFormat(Localization._0_contiguously_allocated_directories, sb.fs_contigdirs).
+ AppendLine();
+
+ sbInformation.AppendFormat(Localization.Standard_superblock_LBA_0, sb.fs_sblkno).AppendLine();
+ sbInformation.AppendFormat(Localization._0_directories, sb.fs_cstotal.cs_ndir).AppendLine();
+
+ sbInformation.AppendFormat(Localization._0_free_blocks_1_bytes, sb.fs_cstotal.cs_nbfree,
sb.fs_cstotal.cs_nbfree * sb.fs_fsize).AppendLine();
XmlFsType.FreeClusters = (ulong)sb.fs_cstotal.cs_nbfree;
XmlFsType.FreeClustersSpecified = true;
- sbInformation.AppendFormat("{0} free inodes", sb.fs_cstotal.cs_nifree).AppendLine();
- sbInformation.AppendFormat("{0} free frags", sb.fs_cstotal.cs_nffree).AppendLine();
- sbInformation.AppendFormat("{0} free clusters", sb.fs_cstotal.cs_numclusters).AppendLine();
+ sbInformation.AppendFormat(Localization._0_free_inodes, sb.fs_cstotal.cs_nifree).AppendLine();
+ sbInformation.AppendFormat(Localization._0_free_frags, sb.fs_cstotal.cs_nffree).AppendLine();
+ sbInformation.AppendFormat(Localization._0_free_clusters, sb.fs_cstotal.cs_numclusters).AppendLine();
- sbInformation.AppendFormat("Volume last written on {0}", DateHandlers.UnixToDateTime(sb.fs_time)).
+ sbInformation.AppendFormat(Localization.Volume_last_written_on_0, DateHandlers.UnixToDateTime(sb.fs_time)).
AppendLine();
XmlFsType.ModificationDate = DateHandlers.UnixToDateTime(sb.fs_time);
XmlFsType.ModificationDateSpecified = true;
- sbInformation.AppendFormat("{0} blocks ({1} bytes)", sb.fs_size, sb.fs_size * sb.fs_fsize).AppendLine();
+ sbInformation.AppendFormat(Localization._0_blocks_1_bytes, sb.fs_size, sb.fs_size * sb.fs_fsize).
+ AppendLine();
XmlFsType.Clusters = (ulong)sb.fs_size;
- sbInformation.AppendFormat("{0} data blocks ({1} bytes)", sb.fs_dsize, sb.fs_dsize * sb.fs_fsize).
+ sbInformation.AppendFormat(Localization._0_data_blocks_1_bytes, sb.fs_dsize, sb.fs_dsize * sb.fs_fsize).
AppendLine();
- sbInformation.AppendFormat("Cylinder group summary area LBA: {0}", sb.fs_csaddr).AppendLine();
- sbInformation.AppendFormat("{0} blocks pending of being freed", sb.fs_pendingblocks).AppendLine();
- sbInformation.AppendFormat("{0} inodes pending of being freed", sb.fs_pendinginodes).AppendLine();
+ sbInformation.AppendFormat(Localization.Cylinder_group_summary_area_LBA_0, sb.fs_csaddr).AppendLine();
+ sbInformation.AppendFormat(Localization._0_blocks_pending_of_being_freed, sb.fs_pendingblocks).AppendLine();
+ sbInformation.AppendFormat(Localization._0_inodes_pending_of_being_freed, sb.fs_pendinginodes).AppendLine();
}
if(fs_type_sun)
- sbInformation.AppendFormat("Volume state on {0}", DateHandlers.UnixToDateTime(sb.fs_old_npsect)).
+ sbInformation.AppendFormat(Localization.Volume_state_on_0, DateHandlers.UnixToDateTime(sb.fs_old_npsect)).
AppendLine();
else if(fs_type_sun86)
- sbInformation.AppendFormat("{0} sectors/track", sb.fs_state).AppendLine();
+ sbInformation.AppendFormat(Localization._0_sectors_track, sb.fs_state).AppendLine();
else if(fs_type_44bsd)
{
- sbInformation.AppendFormat("{0} blocks on cluster summary array", sb.fs_contigsumsize).AppendLine();
+ sbInformation.AppendFormat(Localization._0_blocks_on_cluster_summary_array, sb.fs_contigsumsize).
+ AppendLine();
- sbInformation.AppendFormat("Maximum length of a symbolic link: {0}", sb.fs_maxsymlinklen).AppendLine();
+ sbInformation.AppendFormat(Localization.Maximum_length_of_a_symbolic_link_0, sb.fs_maxsymlinklen).
+ AppendLine();
- sbInformation.AppendFormat("A file can be {0} bytes at max", sb.fs_maxfilesize).AppendLine();
+ sbInformation.AppendFormat(Localization.A_file_can_be_0_bytes_at_max, sb.fs_maxfilesize).AppendLine();
- sbInformation.AppendFormat("Volume state on {0}", DateHandlers.UnixToDateTime(sb.fs_state)).AppendLine();
+ sbInformation.AppendFormat(Localization.Volume_state_on_0, DateHandlers.UnixToDateTime(sb.fs_state)).
+ AppendLine();
}
if(sb.fs_old_nrpos > 0)
- sbInformation.AppendFormat("{0} rotational positions", sb.fs_old_nrpos).AppendLine();
+ sbInformation.AppendFormat(Localization._0_rotational_positions, sb.fs_old_nrpos).AppendLine();
if(sb.fs_old_rotbloff > 0)
- sbInformation.AppendFormat("{0} blocks per rotation", sb.fs_old_rotbloff).AppendLine();
+ sbInformation.AppendFormat(Localization._0_blocks_per_rotation, sb.fs_old_rotbloff).AppendLine();
information = sbInformation.ToString();
}
diff --git a/Aaru.Filesystems/Fossil.cs b/Aaru.Filesystems/Fossil.cs
index b616b232e..6a2c4a1d3 100644
--- a/Aaru.Filesystems/Fossil.cs
+++ b/Aaru.Filesystems/Fossil.cs
@@ -53,16 +53,18 @@ public sealed class Fossil : IFilesystem
// Fossil header starts at 128KiB
const ulong HEADER_POS = 128 * 1024;
+ const string FS_TYPE = "fossil";
+
///
public FileSystemType XmlFsType { get; private set; }
///
public Encoding Encoding { get; private set; }
///
- public string Name => "Fossil Filesystem Plugin";
+ public string Name => Localization.Fossil_Name;
///
public Guid Id => new("932BF104-43F6-494F-973C-45EF58A51DA9");
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
///
public bool Identify(IMediaImage imagePlugin, Partition partition)
@@ -79,8 +81,7 @@ public sealed class Fossil : IFilesystem
Header hdr = Marshal.ByteArrayToStructureBigEndian(sector);
- AaruConsole.DebugWriteLine("Fossil plugin", "magic at 0x{0:X8} (expected 0x{1:X8})", hdr.magic,
- FOSSIL_HDR_MAGIC);
+ AaruConsole.DebugWriteLine("Fossil plugin", Localization.magic_at_0_expected_1, hdr.magic, FOSSIL_HDR_MAGIC);
return hdr.magic == FOSSIL_HDR_MAGIC;
}
@@ -104,24 +105,23 @@ public sealed class Fossil : IFilesystem
Header hdr = Marshal.ByteArrayToStructureBigEndian(sector);
- AaruConsole.DebugWriteLine("Fossil plugin", "magic at 0x{0:X8} (expected 0x{1:X8})", hdr.magic,
- FOSSIL_HDR_MAGIC);
+ AaruConsole.DebugWriteLine("Fossil plugin", Localization.magic_at_0_expected_1, hdr.magic, FOSSIL_HDR_MAGIC);
var sb = new StringBuilder();
- sb.AppendLine("Fossil");
- sb.AppendFormat("Filesystem version {0}", hdr.version).AppendLine();
- sb.AppendFormat("{0} bytes per block", hdr.blockSize).AppendLine();
- sb.AppendFormat("Superblock resides in block {0}", hdr.super).AppendLine();
- sb.AppendFormat("Labels resides in block {0}", hdr.label).AppendLine();
- sb.AppendFormat("Data starts at block {0}", hdr.data).AppendLine();
- sb.AppendFormat("Volume has {0} blocks", hdr.end).AppendLine();
+ sb.AppendLine(Localization.Fossil_filesystem);
+ sb.AppendFormat(Localization.Filesystem_version_0, hdr.version).AppendLine();
+ sb.AppendFormat(Localization._0_bytes_per_block, hdr.blockSize).AppendLine();
+ sb.AppendFormat(Localization.Superblock_resides_in_block_0, hdr.super).AppendLine();
+ sb.AppendFormat(Localization.Labels_resides_in_block_0, hdr.label).AppendLine();
+ sb.AppendFormat(Localization.Data_starts_at_block_0, hdr.data).AppendLine();
+ sb.AppendFormat(Localization.Volume_has_0_blocks, hdr.end).AppendLine();
ulong sbLocation = (hdr.super * (hdr.blockSize / imagePlugin.Info.SectorSize)) + partition.Start;
XmlFsType = new FileSystemType
{
- Type = "Fossil filesystem",
+ Type = FS_TYPE,
ClusterSize = hdr.blockSize,
Clusters = hdr.end
};
@@ -131,18 +131,17 @@ public sealed class Fossil : IFilesystem
imagePlugin.ReadSector(sbLocation, out sector);
SuperBlock fsb = Marshal.ByteArrayToStructureBigEndian(sector);
- AaruConsole.DebugWriteLine("Fossil plugin", "magic 0x{0:X8} (expected 0x{1:X8})", fsb.magic,
- FOSSIL_SB_MAGIC);
+ AaruConsole.DebugWriteLine("Fossil plugin", Localization.magic_0_expected_1, fsb.magic, FOSSIL_SB_MAGIC);
if(fsb.magic == FOSSIL_SB_MAGIC)
{
- sb.AppendFormat("Epoch low {0}", fsb.epochLow).AppendLine();
- sb.AppendFormat("Epoch high {0}", fsb.epochHigh).AppendLine();
- sb.AppendFormat("Next QID {0}", fsb.qid).AppendLine();
- sb.AppendFormat("Active root block {0}", fsb.active).AppendLine();
- sb.AppendFormat("Next root block {0}", fsb.next).AppendLine();
- sb.AppendFormat("Current root block {0}", fsb.current).AppendLine();
- sb.AppendFormat("Volume label: \"{0}\"", StringHandlers.CToString(fsb.name, Encoding)).AppendLine();
+ sb.AppendFormat(Localization.Epoch_low_0, fsb.epochLow).AppendLine();
+ sb.AppendFormat(Localization.Epoch_high_0, fsb.epochHigh).AppendLine();
+ sb.AppendFormat(Localization.Next_QID_0, fsb.qid).AppendLine();
+ sb.AppendFormat(Localization.Active_root_block_0, fsb.active).AppendLine();
+ sb.AppendFormat(Localization.Next_root_block_0, fsb.next).AppendLine();
+ sb.AppendFormat(Localization.Current_root_block_0, fsb.current).AppendLine();
+ sb.AppendFormat(Localization.Volume_label_0, StringHandlers.CToString(fsb.name, Encoding)).AppendLine();
XmlFsType.VolumeName = StringHandlers.CToString(fsb.name, Encoding);
}
}
diff --git a/Aaru.Filesystems/HAMMER.cs b/Aaru.Filesystems/HAMMER.cs
index 7d75ef7a9..04a6d6e58 100644
--- a/Aaru.Filesystems/HAMMER.cs
+++ b/Aaru.Filesystems/HAMMER.cs
@@ -57,16 +57,18 @@ public sealed class HAMMER : IFilesystem
const uint HAMMER_VOLHDR_SIZE = 1928;
const int HAMMER_BIGBLOCK_SIZE = 8192 * 1024;
+ const string FS_TYPE = "hammer";
+
///
public FileSystemType XmlFsType { get; private set; }
///
public Encoding Encoding { get; private set; }
///
- public string Name => "HAMMER Filesystem";
+ public string Name => Localization.HAMMER_Name;
///
public Guid Id => new("91A188BF-5FD7-4677-BBD3-F59EBA9C864D");
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
///
public bool Identify(IMediaImage imagePlugin, Partition partition)
@@ -113,40 +115,42 @@ public sealed class HAMMER : IFilesystem
? Marshal.ByteArrayToStructureLittleEndian(sbSector)
: Marshal.ByteArrayToStructureBigEndian(sbSector);
- sb.AppendLine("HAMMER filesystem");
+ sb.AppendLine(Localization.HAMMER_filesystem);
- sb.AppendFormat("Volume version: {0}", superBlock.vol_version).AppendLine();
+ sb.AppendFormat(Localization.Volume_version_0, superBlock.vol_version).AppendLine();
- sb.AppendFormat("Volume {0} of {1} on this filesystem", superBlock.vol_no + 1, superBlock.vol_count).
+ sb.AppendFormat(Localization.Volume_0_of_1_on_this_filesystem, superBlock.vol_no + 1, superBlock.vol_count).
AppendLine();
- sb.AppendFormat("Volume name: {0}", StringHandlers.CToString(superBlock.vol_label, Encoding)).AppendLine();
- sb.AppendFormat("Volume serial: {0}", superBlock.vol_fsid).AppendLine();
- sb.AppendFormat("Filesystem type: {0}", superBlock.vol_fstype).AppendLine();
- sb.AppendFormat("Boot area starts at {0}", superBlock.vol_bot_beg).AppendLine();
- sb.AppendFormat("Memory log starts at {0}", superBlock.vol_mem_beg).AppendLine();
- sb.AppendFormat("First volume buffer starts at {0}", superBlock.vol_buf_beg).AppendLine();
- sb.AppendFormat("Volume ends at {0}", superBlock.vol_buf_end).AppendLine();
+ sb.AppendFormat(Localization.Volume_name_0, StringHandlers.CToString(superBlock.vol_label, Encoding)).
+ AppendLine();
+
+ sb.AppendFormat(Localization.Volume_serial_0, superBlock.vol_fsid).AppendLine();
+ sb.AppendFormat(Localization.Filesystem_type_0, superBlock.vol_fstype).AppendLine();
+ sb.AppendFormat(Localization.Boot_area_starts_at_0, superBlock.vol_bot_beg).AppendLine();
+ sb.AppendFormat(Localization.Memory_log_starts_at_0, superBlock.vol_mem_beg).AppendLine();
+ sb.AppendFormat(Localization.First_volume_buffer_starts_at_0, superBlock.vol_buf_beg).AppendLine();
+ sb.AppendFormat(Localization.Volume_ends_at_0, superBlock.vol_buf_end).AppendLine();
XmlFsType = new FileSystemType
{
Clusters = partition.Size / HAMMER_BIGBLOCK_SIZE,
ClusterSize = HAMMER_BIGBLOCK_SIZE,
Dirty = false,
- Type = "HAMMER",
+ Type = FS_TYPE,
VolumeName = StringHandlers.CToString(superBlock.vol_label, Encoding),
VolumeSerial = superBlock.vol_fsid.ToString()
};
if(superBlock.vol_no == superBlock.vol_rootvol)
{
- sb.AppendFormat("Filesystem contains {0} \"big-blocks\" ({1} bytes)", superBlock.vol0_stat_bigblocks,
+ sb.AppendFormat(Localization.Filesystem_contains_0_big_blocks_1_bytes, superBlock.vol0_stat_bigblocks,
superBlock.vol0_stat_bigblocks * HAMMER_BIGBLOCK_SIZE).AppendLine();
- sb.AppendFormat("Filesystem has {0} \"big-blocks\" free ({1} bytes)", superBlock.vol0_stat_freebigblocks,
+ sb.AppendFormat(Localization.Filesystem_has_0_big_blocks_free_1_bytes, superBlock.vol0_stat_freebigblocks,
superBlock.vol0_stat_freebigblocks * HAMMER_BIGBLOCK_SIZE).AppendLine();
- sb.AppendFormat("Filesystem has {0} inode used", superBlock.vol0_stat_inodes).AppendLine();
+ sb.AppendFormat(Localization.Filesystem_has_0_inodes_used, superBlock.vol0_stat_inodes).AppendLine();
XmlFsType.Clusters = (ulong)superBlock.vol0_stat_bigblocks;
XmlFsType.FreeClusters = (ulong)superBlock.vol0_stat_freebigblocks;
diff --git a/Aaru.Filesystems/HPFS.cs b/Aaru.Filesystems/HPFS.cs
index 9bc47fd2a..8947536b2 100644
--- a/Aaru.Filesystems/HPFS.cs
+++ b/Aaru.Filesystems/HPFS.cs
@@ -48,16 +48,17 @@ namespace Aaru.Filesystems;
/// Implements detection of IBM's High Performance File System (HPFS)
public sealed class HPFS : IFilesystem
{
+ const string FS_TYPE = "hpfs";
///
public FileSystemType XmlFsType { get; private set; }
///
public Encoding Encoding { get; private set; }
///
- public string Name => "OS/2 High Performance File System";
+ public string Name => Localization.HPFS_Name;
///
public Guid Id => new("33513B2C-f590-4acb-8bf2-0b1d5e19dec5");
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
///
public bool Identify(IMediaImage imagePlugin, Partition partition)
@@ -117,123 +118,124 @@ public sealed class HPFS : IFilesystem
sp.magic1 != 0xF9911849 ||
sp.magic2 != 0xFA5229C5)
{
- sb.AppendLine("This may not be HPFS, following information may be not correct.");
- sb.AppendFormat("File system type: \"{0}\" (Should be \"HPFS \")", bpb.fs_type).AppendLine();
- sb.AppendFormat("Superblock magic1: 0x{0:X8} (Should be 0xF995E849)", hpfsSb.magic1).AppendLine();
- sb.AppendFormat("Superblock magic2: 0x{0:X8} (Should be 0xFA53E9C5)", hpfsSb.magic2).AppendLine();
- sb.AppendFormat("Spareblock magic1: 0x{0:X8} (Should be 0xF9911849)", sp.magic1).AppendLine();
- sb.AppendFormat("Spareblock magic2: 0x{0:X8} (Should be 0xFA5229C5)", sp.magic2).AppendLine();
+ sb.AppendLine(Localization.This_may_not_be_HPFS_following_information_may_be_not_correct);
+ sb.AppendFormat(Localization.File_system_type_0_Should_be_HPFS, bpb.fs_type).AppendLine();
+ sb.AppendFormat(Localization.Superblock_magic1_0_Should_be_0xF995E849, hpfsSb.magic1).AppendLine();
+ sb.AppendFormat(Localization.Superblock_magic2_0_Should_be_0xFA53E9C5, hpfsSb.magic2).AppendLine();
+ sb.AppendFormat(Localization.Spareblock_magic1_0_Should_be_0xF9911849, sp.magic1).AppendLine();
+ sb.AppendFormat(Localization.Spareblock_magic2_0_Should_be_0xFA5229C5, sp.magic2).AppendLine();
}
- sb.AppendFormat("OEM name: {0}", StringHandlers.CToString(bpb.oem_name)).AppendLine();
- sb.AppendFormat("{0} bytes per sector", bpb.bps).AppendLine();
+ sb.AppendFormat(Localization.OEM_name_0, StringHandlers.CToString(bpb.oem_name)).AppendLine();
+ sb.AppendFormat(Localization._0_bytes_per_sector, bpb.bps).AppendLine();
// sb.AppendFormat("{0} sectors per cluster", hpfs_bpb.spc).AppendLine();
// sb.AppendFormat("{0} reserved sectors", hpfs_bpb.rsectors).AppendLine();
// sb.AppendFormat("{0} FATs", hpfs_bpb.fats_no).AppendLine();
// sb.AppendFormat("{0} entries on root directory", hpfs_bpb.root_ent).AppendLine();
// sb.AppendFormat("{0} mini sectors on volume", hpfs_bpb.sectors).AppendLine();
- sb.AppendFormat("Media descriptor: 0x{0:X2}", bpb.media).AppendLine();
+ sb.AppendFormat(Localization.Media_descriptor_0, bpb.media).AppendLine();
// sb.AppendFormat("{0} sectors per FAT", hpfs_bpb.spfat).AppendLine();
// sb.AppendFormat("{0} sectors per track", hpfs_bpb.sptrk).AppendLine();
// sb.AppendFormat("{0} heads", hpfs_bpb.heads).AppendLine();
- sb.AppendFormat("{0} sectors hidden before BPB", bpb.hsectors).AppendLine();
+ sb.AppendFormat(Localization._0_sectors_hidden_before_BPB, bpb.hsectors).AppendLine();
- sb.AppendFormat("{0} sectors on volume ({1} bytes)", hpfsSb.sectors, hpfsSb.sectors * bpb.bps).AppendLine();
+ sb.AppendFormat(Localization._0_sectors_on_volume_1_bytes, hpfsSb.sectors, hpfsSb.sectors * bpb.bps).
+ AppendLine();
// sb.AppendFormat("{0} sectors on volume ({1} bytes)", hpfs_bpb.big_sectors, hpfs_bpb.big_sectors * hpfs_bpb.bps).AppendLine();
- sb.AppendFormat("BIOS Drive Number: 0x{0:X2}", bpb.drive_no).AppendLine();
- sb.AppendFormat("NT Flags: 0x{0:X2}", bpb.nt_flags).AppendLine();
- sb.AppendFormat("Signature: 0x{0:X2}", bpb.signature).AppendLine();
- sb.AppendFormat("Serial number: 0x{0:X8}", bpb.serial_no).AppendLine();
- sb.AppendFormat("Volume label: {0}", StringHandlers.CToString(bpb.volume_label, Encoding)).AppendLine();
+ sb.AppendFormat(Localization.BIOS_drive_number_0, bpb.drive_no).AppendLine();
+ sb.AppendFormat(Localization.NT_Flags_0, bpb.nt_flags).AppendLine();
+ sb.AppendFormat(Localization.Signature_0, bpb.signature).AppendLine();
+ sb.AppendFormat(Localization.Serial_number_0, bpb.serial_no).AppendLine();
+ sb.AppendFormat(Localization.Volume_label_0, StringHandlers.CToString(bpb.volume_label, Encoding)).AppendLine();
// sb.AppendFormat("Filesystem type: \"{0}\"", hpfs_bpb.fs_type).AppendLine();
DateTime lastChk = DateHandlers.UnixToDateTime(hpfsSb.last_chkdsk);
DateTime lastOptim = DateHandlers.UnixToDateTime(hpfsSb.last_optim);
- sb.AppendFormat("HPFS version: {0}", hpfsSb.version).AppendLine();
- sb.AppendFormat("Functional version: {0}", hpfsSb.func_version).AppendLine();
- sb.AppendFormat("Sector of root directory FNode: {0}", hpfsSb.root_fnode).AppendLine();
- sb.AppendFormat("{0} sectors are marked bad", hpfsSb.badblocks).AppendLine();
- sb.AppendFormat("Sector of free space bitmaps: {0}", hpfsSb.bitmap_lsn).AppendLine();
- sb.AppendFormat("Sector of bad blocks list: {0}", hpfsSb.badblock_lsn).AppendLine();
+ sb.AppendFormat(Localization.HPFS_version_0, hpfsSb.version).AppendLine();
+ sb.AppendFormat(Localization.Functional_version_0, hpfsSb.func_version).AppendLine();
+ sb.AppendFormat(Localization.Sector_of_root_directory_FNode_0, hpfsSb.root_fnode).AppendLine();
+ sb.AppendFormat(Localization._0_sectors_are_marked_bad, hpfsSb.badblocks).AppendLine();
+ sb.AppendFormat(Localization.Sector_of_free_space_bitmaps_0, hpfsSb.bitmap_lsn).AppendLine();
+ sb.AppendFormat(Localization.Sector_of_bad_blocks_list_0, hpfsSb.badblock_lsn).AppendLine();
if(hpfsSb.last_chkdsk > 0)
- sb.AppendFormat("Date of last integrity check: {0}", lastChk).AppendLine();
+ sb.AppendFormat(Localization.Date_of_last_integrity_check_0, lastChk).AppendLine();
else
- sb.AppendLine("Filesystem integrity has never been checked");
+ sb.AppendLine(Localization.Filesystem_integrity_has_never_been_checked);
if(hpfsSb.last_optim > 0)
- sb.AppendFormat("Date of last optimization {0}", lastOptim).AppendLine();
+ sb.AppendFormat(Localization.Date_of_last_optimization_0, lastOptim).AppendLine();
else
- sb.AppendLine("Filesystem has never been optimized");
+ sb.AppendLine(Localization.Filesystem_has_never_been_optimized);
- sb.AppendFormat("Directory band has {0} sectors", hpfsSb.dband_sectors).AppendLine();
- sb.AppendFormat("Directory band starts at sector {0}", hpfsSb.dband_start).AppendLine();
- sb.AppendFormat("Directory band ends at sector {0}", hpfsSb.dband_last).AppendLine();
- sb.AppendFormat("Sector of directory band bitmap: {0}", hpfsSb.dband_bitmap).AppendLine();
- sb.AppendFormat("Sector of ACL directory: {0}", hpfsSb.acl_start).AppendLine();
+ sb.AppendFormat(Localization.Directory_band_has_0_sectors, hpfsSb.dband_sectors).AppendLine();
+ sb.AppendFormat(Localization.Directory_band_starts_at_sector_0, hpfsSb.dband_start).AppendLine();
+ sb.AppendFormat(Localization.Directory_band_ends_at_sector_0, hpfsSb.dband_last).AppendLine();
+ sb.AppendFormat(Localization.Sector_of_directory_band_bitmap_0, hpfsSb.dband_bitmap).AppendLine();
+ sb.AppendFormat(Localization.Sector_of_ACL_directory_0, hpfsSb.acl_start).AppendLine();
- sb.AppendFormat("Sector of Hotfix directory: {0}", sp.hotfix_start).AppendLine();
- sb.AppendFormat("{0} used Hotfix entries", sp.hotfix_used).AppendLine();
- sb.AppendFormat("{0} total Hotfix entries", sp.hotfix_entries).AppendLine();
- sb.AppendFormat("{0} free spare DNodes", sp.spare_dnodes_free).AppendLine();
- sb.AppendFormat("{0} total spare DNodes", sp.spare_dnodes).AppendLine();
- sb.AppendFormat("Sector of codepage directory: {0}", sp.codepage_lsn).AppendLine();
- sb.AppendFormat("{0} codepages used in the volume", sp.codepages).AppendLine();
- sb.AppendFormat("SuperBlock CRC32: {0:X8}", sp.sb_crc32).AppendLine();
- sb.AppendFormat("SpareBlock CRC32: {0:X8}", sp.sp_crc32).AppendLine();
+ sb.AppendFormat(Localization.Sector_of_Hotfix_directory_0, sp.hotfix_start).AppendLine();
+ sb.AppendFormat(Localization._0_used_Hotfix_entries, sp.hotfix_used).AppendLine();
+ sb.AppendFormat(Localization._0_total_Hotfix_entries, sp.hotfix_entries).AppendLine();
+ sb.AppendFormat(Localization._0_free_spare_DNodes, sp.spare_dnodes_free).AppendLine();
+ sb.AppendFormat(Localization._0_total_spare_DNodes, sp.spare_dnodes).AppendLine();
+ sb.AppendFormat(Localization.Sector_of_codepage_directory_0, sp.codepage_lsn).AppendLine();
+ sb.AppendFormat(Localization._0_codepages_used_in_the_volume, sp.codepages).AppendLine();
+ sb.AppendFormat(Localization.SuperBlock_CRC32_0, sp.sb_crc32).AppendLine();
+ sb.AppendFormat(Localization.SpareBlock_CRC32_0, sp.sp_crc32).AppendLine();
- sb.AppendLine("Flags:");
- sb.AppendLine((sp.flags1 & 0x01) == 0x01 ? "Filesystem is dirty." : "Filesystem is clean.");
+ sb.AppendLine(Localization.Flags);
+ sb.AppendLine((sp.flags1 & 0x01) == 0x01 ? Localization.Filesystem_is_dirty : Localization.Filesystem_is_clean);
if((sp.flags1 & 0x02) == 0x02)
- sb.AppendLine("Spare directory blocks are in use");
+ sb.AppendLine(Localization.Spare_directory_blocks_are_in_use);
if((sp.flags1 & 0x04) == 0x04)
- sb.AppendLine("Hotfixes are in use");
+ sb.AppendLine(Localization.Hotfixes_are_in_use);
if((sp.flags1 & 0x08) == 0x08)
- sb.AppendLine("Disk contains bad sectors");
+ sb.AppendLine(Localization.Disk_contains_bad_sectors);
if((sp.flags1 & 0x10) == 0x10)
- sb.AppendLine("Disk has a bad bitmap");
+ sb.AppendLine(Localization.Disk_has_a_bad_bitmap);
if((sp.flags1 & 0x20) == 0x20)
- sb.AppendLine("Filesystem was formatted fast");
+ sb.AppendLine(Localization.Filesystem_was_formatted_fast);
if((sp.flags1 & 0x40) == 0x40)
- sb.AppendLine("Unknown flag 0x40 on flags1 is active");
+ sb.AppendLine(Localization.Unknown_flag_0x40_on_flags1_is_active);
if((sp.flags1 & 0x80) == 0x80)
- sb.AppendLine("Filesystem has been mounted by an old IFS");
+ sb.AppendLine(Localization.Filesystem_has_been_mounted_by_an_old_IFS);
if((sp.flags2 & 0x01) == 0x01)
- sb.AppendLine("Install DASD limits");
+ sb.AppendLine(Localization.Install_DASD_limits);
if((sp.flags2 & 0x02) == 0x02)
- sb.AppendLine("Resync DASD limits");
+ sb.AppendLine(Localization.Resync_DASD_limits);
if((sp.flags2 & 0x04) == 0x04)
- sb.AppendLine("DASD limits are operational");
+ sb.AppendLine(Localization.DASD_limits_are_operational);
if((sp.flags2 & 0x08) == 0x08)
- sb.AppendLine("Multimedia is active");
+ sb.AppendLine(Localization.Multimedia_is_active);
if((sp.flags2 & 0x10) == 0x10)
- sb.AppendLine("DCE ACLs are active");
+ sb.AppendLine(Localization.DCE_ACLs_are_active);
if((sp.flags2 & 0x20) == 0x20)
- sb.AppendLine("DASD limits are dirty");
+ sb.AppendLine(Localization.DASD_limits_are_dirty);
if((sp.flags2 & 0x40) == 0x40)
- sb.AppendLine("Unknown flag 0x40 on flags2 is active");
+ sb.AppendLine(Localization.Unknown_flag_0x40_on_flags2_is_active);
if((sp.flags2 & 0x80) == 0x80)
- sb.AppendLine("Unknown flag 0x80 on flags2 is active");
+ sb.AppendLine(Localization.Unknown_flag_0x80_on_flags2_is_active);
XmlFsType = new FileSystemType();
@@ -245,14 +247,14 @@ public sealed class HPFS : IFilesystem
{
XmlFsType.Bootable = true;
string bootChk = Sha1Context.Data(bpb.boot_code, out byte[] _);
- sb.AppendLine("Volume is bootable");
- sb.AppendFormat("Boot code's SHA1: {0}", bootChk).AppendLine();
+ sb.AppendLine(Localization.Volume_is_bootable);
+ sb.AppendFormat(Localization.Boot_code_SHA1_0, bootChk).AppendLine();
}
XmlFsType.Dirty |= (sp.flags1 & 0x01) == 0x01;
XmlFsType.Clusters = hpfsSb.sectors;
XmlFsType.ClusterSize = bpb.bps;
- XmlFsType.Type = "HPFS";
+ XmlFsType.Type = FS_TYPE;
XmlFsType.VolumeName = StringHandlers.CToString(bpb.volume_label, Encoding);
XmlFsType.VolumeSerial = $"{bpb.serial_no:X8}";
XmlFsType.SystemIdentifier = StringHandlers.CToString(bpb.oem_name);
diff --git a/Aaru.Filesystems/HPOFS/Consts.cs b/Aaru.Filesystems/HPOFS/Consts.cs
index 1825c849c..b34d0dab4 100644
--- a/Aaru.Filesystems/HPOFS/Consts.cs
+++ b/Aaru.Filesystems/HPOFS/Consts.cs
@@ -46,4 +46,7 @@ public sealed partial class HPOFS
{
0x56, 0x4F, 0x4C, 0x49, 0x4E, 0x46, 0x4F, 0x20
};
+
+ // Do not translate
+ const string FS_TYPE = "hpofs";
}
\ No newline at end of file
diff --git a/Aaru.Filesystems/HPOFS/HPOFS.cs b/Aaru.Filesystems/HPOFS/HPOFS.cs
index a9235ee4f..607ed1e36 100644
--- a/Aaru.Filesystems/HPOFS/HPOFS.cs
+++ b/Aaru.Filesystems/HPOFS/HPOFS.cs
@@ -48,9 +48,9 @@ public sealed partial class HPOFS : IFilesystem
///
public Encoding Encoding { get; private set; }
///
- public string Name => "High Performance Optical File System";
+ public string Name => Localization.HPOFS_Name;
///
public Guid Id => new("1b72dcd5-d031-4757-8a9f-8d2fb18c59e2");
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
}
\ No newline at end of file
diff --git a/Aaru.Filesystems/HPOFS/Info.cs b/Aaru.Filesystems/HPOFS/Info.cs
index 72ca903cd..e435f034f 100644
--- a/Aaru.Filesystems/HPOFS/Info.cs
+++ b/Aaru.Filesystems/HPOFS/Info.cs
@@ -179,35 +179,38 @@ public sealed partial class HPOFS
AaruConsole.DebugWriteLine("HPOFS Plugin", "vib.filler is empty? = {0}",
ArrayHelpers.ArrayIsNullOrEmpty(vib.filler));
- sb.AppendLine("High Performance Optical File System");
- sb.AppendFormat("OEM name: {0}", StringHandlers.SpacePaddedToString(bpb.oem_name)).AppendLine();
- sb.AppendFormat("{0} bytes per sector", bpb.bps).AppendLine();
- sb.AppendFormat("{0} sectors per cluster", bpb.spc).AppendLine();
- sb.AppendFormat("Media descriptor: 0x{0:X2}", bpb.media).AppendLine();
- sb.AppendFormat("{0} sectors per track", bpb.sptrk).AppendLine();
- sb.AppendFormat("{0} heads", bpb.heads).AppendLine();
- sb.AppendFormat("{0} sectors hidden before BPB", bpb.hsectors).AppendLine();
- sb.AppendFormat("{0} sectors on volume ({1} bytes)", mib.sectors, mib.sectors * bpb.bps).AppendLine();
- sb.AppendFormat("BIOS Drive Number: 0x{0:X2}", bpb.drive_no).AppendLine();
- sb.AppendFormat("Serial number: 0x{0:X8}", mib.serial).AppendLine();
+ sb.AppendLine(Localization.HPOFS_Name);
+ sb.AppendFormat(Localization.OEM_name_0, StringHandlers.SpacePaddedToString(bpb.oem_name)).AppendLine();
+ sb.AppendFormat(Localization._0_bytes_per_sector, bpb.bps).AppendLine();
+ sb.AppendFormat(Localization._0_sectors_per_cluster, bpb.spc).AppendLine();
+ sb.AppendFormat(Localization.Media_descriptor_0, bpb.media).AppendLine();
+ sb.AppendFormat(Localization._0_sectors_per_track, bpb.sptrk).AppendLine();
+ sb.AppendFormat(Localization._0_heads, bpb.heads).AppendLine();
+ sb.AppendFormat(Localization._0_sectors_hidden_before_BPB, bpb.hsectors).AppendLine();
+ sb.AppendFormat(Localization._0_sectors_on_volume_1_bytes, mib.sectors, mib.sectors * bpb.bps).AppendLine();
+ sb.AppendFormat(Localization.BIOS_drive_number_0, bpb.drive_no).AppendLine();
+ sb.AppendFormat(Localization.Serial_number_0, mib.serial).AppendLine();
- sb.AppendFormat("Volume label: {0}", StringHandlers.SpacePaddedToString(mib.volumeLabel, Encoding)).
+ sb.AppendFormat(Localization.Volume_label_0, StringHandlers.SpacePaddedToString(mib.volumeLabel, Encoding)).
AppendLine();
- sb.AppendFormat("Volume comment: {0}", StringHandlers.SpacePaddedToString(mib.comment, Encoding)).AppendLine();
-
- sb.AppendFormat("Volume owner: {0}", StringHandlers.SpacePaddedToString(vib.owner, Encoding)).AppendLine();
-
- sb.AppendFormat("Volume created on {0}", DateHandlers.DosToDateTime(mib.creationDate, mib.creationTime)).
+ sb.AppendFormat(Localization.Volume_comment_0, StringHandlers.SpacePaddedToString(mib.comment, Encoding)).
AppendLine();
- sb.AppendFormat("Volume uses {0} codepage {1}",
- mib.codepageType is > 0 and < 3 ? mib.codepageType == 2 ? "EBCDIC" : "ASCII" : "Unknown",
- mib.codepage).AppendLine();
+ sb.AppendFormat(Localization.Volume_owner_0, StringHandlers.SpacePaddedToString(vib.owner, Encoding)).
+ AppendLine();
- sb.AppendFormat("RPS level: {0}", mib.rps).AppendLine();
- sb.AppendFormat("Filesystem version: {0}.{1}", mib.major, mib.minor).AppendLine();
- sb.AppendFormat("Volume can be filled up to {0}%", vib.percentFull).AppendLine();
+ sb.AppendFormat(Localization.Volume_created_on_0,
+ DateHandlers.DosToDateTime(mib.creationDate, mib.creationTime)).AppendLine();
+
+ sb.AppendFormat(Localization.Volume_uses_0_codepage_1,
+ mib.codepageType is > 0 and < 3
+ ? mib.codepageType == 2 ? Localization.EBCDIC : Localization.ASCII
+ : Localization.Unknown_codepage, mib.codepage).AppendLine();
+
+ sb.AppendFormat(Localization.RPS_level_0, mib.rps).AppendLine();
+ sb.AppendFormat(Localization.Filesystem_version_0_1, mib.major, mib.minor).AppendLine();
+ sb.AppendFormat(Localization.Volume_can_be_filled_up_to_0, vib.percentFull).AppendLine();
XmlFsType = new FileSystemType
{
@@ -216,7 +219,7 @@ public sealed partial class HPOFS
CreationDate = DateHandlers.DosToDateTime(mib.creationDate, mib.creationTime),
CreationDateSpecified = true,
DataPreparerIdentifier = StringHandlers.SpacePaddedToString(vib.owner, Encoding),
- Type = "HPOFS",
+ Type = FS_TYPE,
VolumeName = StringHandlers.SpacePaddedToString(mib.volumeLabel, Encoding),
VolumeSerial = $"{mib.serial:X8}",
SystemIdentifier = StringHandlers.SpacePaddedToString(bpb.oem_name)
diff --git a/Aaru.Filesystems/ISO9660/Consts/Internal.cs b/Aaru.Filesystems/ISO9660/Consts/Internal.cs
index 1d5ba627b..e21c8f352 100644
--- a/Aaru.Filesystems/ISO9660/Consts/Internal.cs
+++ b/Aaru.Filesystems/ISO9660/Consts/Internal.cs
@@ -47,4 +47,8 @@ public sealed partial class ISO9660
Normal, Vms, Joliet,
Rrip, Romeo
}
+
+ const string FS_TYPE_HSF = "hfs";
+ const string FS_TYPE_CDI = "cdi";
+ const string FS_TYPE_ISO = "iso9660";
}
\ No newline at end of file
diff --git a/Aaru.Filesystems/ISO9660/File.cs b/Aaru.Filesystems/ISO9660/File.cs
index 26432a978..6fbbde98d 100644
--- a/Aaru.Filesystems/ISO9660/File.cs
+++ b/Aaru.Filesystems/ISO9660/File.cs
@@ -156,7 +156,7 @@ public sealed partial class ISO9660
}
catch(Exception e)
{
- AaruConsole.DebugWriteLine("ISO9660 plugin", "Exception reading CD-i audio file");
+ AaruConsole.DebugWriteLine("ISO9660 plugin", Localization.Exception_reading_CD_i_audio_file);
AaruConsole.DebugWriteLine("ISO9660 plugin", "{0}", e);
return ErrorNumber.UnexpectedException;
diff --git a/Aaru.Filesystems/ISO9660/ISO9660.cs b/Aaru.Filesystems/ISO9660/ISO9660.cs
index c53680b94..80af9a4c8 100644
--- a/Aaru.Filesystems/ISO9660/ISO9660.cs
+++ b/Aaru.Filesystems/ISO9660/ISO9660.cs
@@ -71,7 +71,7 @@ public sealed partial class ISO9660 : IReadOnlyFilesystem
///
public Guid Id => new("d812f4d3-c357-400d-90fd-3b22ef786aa8");
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
///
public IEnumerable<(string name, Type type, string description)> SupportedOptions =>
diff --git a/Aaru.Filesystems/ISO9660/Info.cs b/Aaru.Filesystems/ISO9660/Info.cs
index cc05fd7bd..4a2ccd4af 100644
--- a/Aaru.Filesystems/ISO9660/Info.cs
+++ b/Aaru.Filesystems/ISO9660/Info.cs
@@ -134,10 +134,10 @@ public sealed partial class ISO9660
while(true)
{
- AaruConsole.DebugWriteLine("ISO9660 plugin", "Processing VD loop no. {0}", counter);
+ AaruConsole.DebugWriteLine("ISO9660 plugin", Localization.Processing_VD_loop_no_0, counter);
// Seek to Volume Descriptor
- AaruConsole.DebugWriteLine("ISO9660 plugin", "Reading sector {0}", 16 + counter + partition.Start);
+ AaruConsole.DebugWriteLine("ISO9660 plugin", Localization.Reading_sector_0, 16 + counter + partition.Start);
errno = imagePlugin.ReadSector(16 + counter + partition.Start, out byte[] vdSectorTmp);
if(errno != ErrorNumber.NoError)
@@ -178,7 +178,7 @@ public sealed partial class ISO9660
{
bvd = Marshal.ByteArrayToStructureLittleEndian(vdSector, hsOff, 2048 - hsOff);
- bootSpec = "Unknown";
+ bootSpec = Localization.Unknown_specification;
if(Encoding.GetString(bvd.Value.system_id)[..23] == "EL TORITO SPECIFICATION")
{
@@ -219,7 +219,7 @@ public sealed partial class ISO9660
jolietvd = svd;
else
AaruConsole.WriteLine("ISO9660 plugin",
- "Found unknown supplementary volume descriptor");
+ Localization.Found_unknown_supplementary_volume_descriptor);
}
else
evd = true;
@@ -247,7 +247,7 @@ public sealed partial class ISO9660
hsvd == null &&
fsvd == null)
{
- information = "ERROR: Could not find primary volume descriptor";
+ information = Localization.ERROR_Could_not_find_primary_volume_descriptor;
return;
}
@@ -513,9 +513,9 @@ public sealed partial class ISO9660
if(refareas.Count > 0)
{
- suspInformation.AppendLine("----------------------------------------");
- suspInformation.AppendLine("SYSTEM USE SHARING PROTOCOL INFORMATION:");
- suspInformation.AppendLine("----------------------------------------");
+ suspInformation.AppendLine(Localization.SYSTEM_USE_SHARING_PROTOCOL_INFORMATION_border);
+ suspInformation.AppendLine(Localization.SYSTEM_USE_SHARING_PROTOCOL_INFORMATION);
+ suspInformation.AppendLine(Localization.SYSTEM_USE_SHARING_PROTOCOL_INFORMATION_border);
counter = 1;
@@ -529,10 +529,10 @@ public sealed partial class ISO9660
string extSrc = Encoding.GetString(erb, Marshal.SizeOf() + er.id_len + er.des_len,
er.src_len);
- suspInformation.AppendFormat("Extension: {0}", counter).AppendLine();
- suspInformation.AppendFormat("\tID: {0}, version {1}", extId, er.ext_ver).AppendLine();
- suspInformation.AppendFormat("\tDescription: {0}", extDes).AppendLine();
- suspInformation.AppendFormat("\tSource: {0}", extSrc).AppendLine();
+ suspInformation.AppendFormat(Localization.Extension_0, counter).AppendLine();
+ suspInformation.AppendFormat("\t" + Localization.ID_0_version_1, extId, er.ext_ver).AppendLine();
+ suspInformation.AppendFormat("\t" + Localization.Description_0, extDes).AppendLine();
+ suspInformation.AppendFormat("\t" + Localization.Source_0, extSrc).AppendLine();
counter++;
}
}
@@ -546,134 +546,146 @@ public sealed partial class ISO9660
Saturn.IPBin? saturn = Saturn.DecodeIPBin(ipbinSector);
Dreamcast.IPBin? dreamcast = Dreamcast.DecodeIPBin(ipbinSector);
- string fsFormat;
-
if(highSierraInfo)
- fsFormat = "High Sierra Format";
+ isoMetadata.AppendLine(Localization.High_Sierra_Format_file_system);
else if(cdiInfo)
- fsFormat = "CD-i";
+ isoMetadata.AppendLine(Localization.CD_i_file_system);
else
- fsFormat = "ISO9660";
-
- isoMetadata.AppendFormat("{0} file system", fsFormat).AppendLine();
+ isoMetadata.AppendLine(Localization.ISO9660_file_system);
if(xaExtensions)
- isoMetadata.AppendLine("CD-ROM XA extensions present.");
+ isoMetadata.AppendLine(Localization.CD_ROM_XA_extensions_present);
if(amiga)
- isoMetadata.AppendLine("Amiga extensions present.");
+ isoMetadata.AppendLine(Localization.Amiga_extensions_present);
if(apple)
- isoMetadata.AppendLine("Apple extensions present.");
+ isoMetadata.AppendLine(Localization.Apple_extensions_present);
if(jolietvd != null)
- isoMetadata.AppendLine("Joliet extensions present.");
+ isoMetadata.AppendLine(Localization.Joliet_extensions_present);
if(susp)
- isoMetadata.AppendLine("System Use Sharing Protocol present.");
+ isoMetadata.AppendLine(Localization.System_Use_Sharing_Protocol_present);
if(rrip)
- isoMetadata.AppendLine("Rock Ridge Interchange Protocol present.");
+ isoMetadata.AppendLine(Localization.Rock_Ridge_Interchange_Protocol_present);
if(aaip)
- isoMetadata.AppendLine("Arbitrary Attribute Interchange Protocol present.");
+ isoMetadata.AppendLine(Localization.Arbitrary_Attribute_Interchange_Protocol_present);
if(ziso)
- isoMetadata.AppendLine("zisofs compression present.");
+ isoMetadata.AppendLine(Localization.zisofs_compression_present);
if(evd)
- isoMetadata.AppendLine("Contains Enhanced Volume Descriptor.");
+ isoMetadata.AppendLine(Localization.Contains_Enhanced_Volume_Descriptor);
if(vpd)
- isoMetadata.AppendLine("Contains Volume Partition Descriptor.");
+ isoMetadata.AppendLine(Localization.Contains_Volume_Partition_Descriptor);
if(bvd != null)
- isoMetadata.AppendFormat("Disc bootable following {0} specifications.", bootSpec).AppendLine();
+ isoMetadata.AppendFormat(Localization.Disc_bootable_following_0_specifications, bootSpec).AppendLine();
if(segaCd != null)
{
- isoMetadata.AppendLine("This is a SegaCD / MegaCD disc.");
+ isoMetadata.AppendLine(Localization.This_is_a_SegaCD_MegaCD_disc);
isoMetadata.AppendLine(CD.Prettify(segaCd));
}
if(saturn != null)
{
- isoMetadata.AppendLine("This is a Sega Saturn disc.");
+ isoMetadata.AppendLine(Localization.This_is_a_Sega_Saturn_disc);
isoMetadata.AppendLine(Saturn.Prettify(saturn));
}
if(dreamcast != null)
{
- isoMetadata.AppendLine("This is a Sega Dreamcast disc.");
+ isoMetadata.AppendLine(Localization.This_is_a_Sega_Dreamcast_disc);
isoMetadata.AppendLine(Dreamcast.Prettify(dreamcast));
}
- isoMetadata.AppendFormat("{0}------------------------------", cdiInfo ? "---------------" : "").AppendLine();
+ if(cdiInfo)
+ {
+ isoMetadata.AppendLine(Localization.FILE_STRUCTURE_VOLUME_DESCRIPTOR_INFORMATION_border);
+ isoMetadata.AppendLine(Localization.FILE_STRUCTURE_VOLUME_DESCRIPTOR_INFORMATION);
+ isoMetadata.AppendLine(Localization.FILE_STRUCTURE_VOLUME_DESCRIPTOR_INFORMATION_border);
+ }
+ else
+ {
+ isoMetadata.AppendLine(Localization.VOLUME_DESCRIPTOR_INFORMATION_border);
+ isoMetadata.AppendLine(Localization.VOLUME_DESCRIPTOR_INFORMATION);
+ isoMetadata.AppendLine(Localization.VOLUME_DESCRIPTOR_INFORMATION_border);
+ }
- isoMetadata.AppendFormat("{0}VOLUME DESCRIPTOR INFORMATION:", cdiInfo ? "FILE STRUCTURE " : "").AppendLine();
+ isoMetadata.AppendFormat(Localization.System_identifier_0, decodedVd.SystemIdentifier).AppendLine();
+ isoMetadata.AppendFormat(Localization.Volume_identifier_0, decodedVd.VolumeIdentifier).AppendLine();
+ isoMetadata.AppendFormat(Localization.Volume_set_identifier_0, decodedVd.VolumeSetIdentifier).AppendLine();
+ isoMetadata.AppendFormat(Localization.Publisher_identifier_0, decodedVd.PublisherIdentifier).AppendLine();
- isoMetadata.AppendFormat("{0}------------------------------", cdiInfo ? "---------------" : "").AppendLine();
+ isoMetadata.AppendFormat(Localization.Data_preparer_identifier_0, decodedVd.DataPreparerIdentifier).
+ AppendLine();
- isoMetadata.AppendFormat("System identifier: {0}", decodedVd.SystemIdentifier).AppendLine();
- isoMetadata.AppendFormat("Volume identifier: {0}", decodedVd.VolumeIdentifier).AppendLine();
- isoMetadata.AppendFormat("Volume set identifier: {0}", decodedVd.VolumeSetIdentifier).AppendLine();
- isoMetadata.AppendFormat("Publisher identifier: {0}", decodedVd.PublisherIdentifier).AppendLine();
- isoMetadata.AppendFormat("Data preparer identifier: {0}", decodedVd.DataPreparerIdentifier).AppendLine();
- isoMetadata.AppendFormat("Application identifier: {0}", decodedVd.ApplicationIdentifier).AppendLine();
- isoMetadata.AppendFormat("Volume creation date: {0}", decodedVd.CreationTime).AppendLine();
+ isoMetadata.AppendFormat(Localization.Application_identifier_0, decodedVd.ApplicationIdentifier).AppendLine();
+ isoMetadata.AppendFormat(Localization.Volume_creation_date_0, decodedVd.CreationTime).AppendLine();
if(decodedVd.HasModificationTime)
- isoMetadata.AppendFormat("Volume modification date: {0}", decodedVd.ModificationTime).AppendLine();
+ isoMetadata.AppendFormat(Localization.Volume_modification_date_0, decodedVd.ModificationTime).AppendLine();
else
- isoMetadata.AppendFormat("Volume has not been modified.").AppendLine();
+ isoMetadata.AppendFormat(Localization.Volume_has_not_been_modified).AppendLine();
if(decodedVd.HasExpirationTime)
- isoMetadata.AppendFormat("Volume expiration date: {0}", decodedVd.ExpirationTime).AppendLine();
+ isoMetadata.AppendFormat(Localization.Volume_expiration_date_0, decodedVd.ExpirationTime).AppendLine();
else
- isoMetadata.AppendFormat("Volume does not expire.").AppendLine();
+ isoMetadata.AppendFormat(Localization.Volume_does_not_expire).AppendLine();
if(decodedVd.HasEffectiveTime)
- isoMetadata.AppendFormat("Volume effective date: {0}", decodedVd.EffectiveTime).AppendLine();
+ isoMetadata.AppendFormat(Localization.Volume_effective_date_0, decodedVd.EffectiveTime).AppendLine();
else
- isoMetadata.AppendFormat("Volume has always been effective.").AppendLine();
+ isoMetadata.AppendFormat(Localization.Volume_has_always_been_effective).AppendLine();
- isoMetadata.AppendFormat("Volume has {0} blocks of {1} bytes each", decodedVd.Blocks, decodedVd.BlockSize).
- AppendLine();
+ isoMetadata.
+ AppendFormat(Localization.Volume_has_0_blocks_of_1_bytes_each, decodedVd.Blocks, decodedVd.BlockSize).
+ AppendLine();
if(jolietvd != null)
{
- isoMetadata.AppendLine("-------------------------------------");
- isoMetadata.AppendLine("JOLIET VOLUME DESCRIPTOR INFORMATION:");
- isoMetadata.AppendLine("-------------------------------------");
- isoMetadata.AppendFormat("System identifier: {0}", decodedJolietVd.SystemIdentifier).AppendLine();
- isoMetadata.AppendFormat("Volume identifier: {0}", decodedJolietVd.VolumeIdentifier).AppendLine();
+ isoMetadata.AppendLine(Localization.JOLIET_VOLUME_DESCRIPTOR_INFORMATION_border);
+ isoMetadata.AppendLine(Localization.JOLIET_VOLUME_DESCRIPTOR_INFORMATION);
+ isoMetadata.AppendLine(Localization.JOLIET_VOLUME_DESCRIPTOR_INFORMATION_border);
+ isoMetadata.AppendFormat(Localization.System_identifier_0, decodedJolietVd.SystemIdentifier).AppendLine();
+ isoMetadata.AppendFormat(Localization.Volume_identifier_0, decodedJolietVd.VolumeIdentifier).AppendLine();
- isoMetadata.AppendFormat("Volume set identifier: {0}", decodedJolietVd.VolumeSetIdentifier).AppendLine();
-
- isoMetadata.AppendFormat("Publisher identifier: {0}", decodedJolietVd.PublisherIdentifier).AppendLine();
-
- isoMetadata.AppendFormat("Data preparer identifier: {0}", decodedJolietVd.DataPreparerIdentifier).
+ isoMetadata.AppendFormat(Localization.Volume_set_identifier_0, decodedJolietVd.VolumeSetIdentifier).
AppendLine();
- isoMetadata.AppendFormat("Application identifier: {0}", decodedJolietVd.ApplicationIdentifier).AppendLine();
+ isoMetadata.AppendFormat(Localization.Publisher_identifier_0, decodedJolietVd.PublisherIdentifier).
+ AppendLine();
- isoMetadata.AppendFormat("Volume creation date: {0}", decodedJolietVd.CreationTime).AppendLine();
+ isoMetadata.AppendFormat(Localization.Data_preparer_identifier_0, decodedJolietVd.DataPreparerIdentifier).
+ AppendLine();
+
+ isoMetadata.AppendFormat(Localization.Application_identifier_0, decodedJolietVd.ApplicationIdentifier).
+ AppendLine();
+
+ isoMetadata.AppendFormat(Localization.Volume_creation_date_0, decodedJolietVd.CreationTime).AppendLine();
if(decodedJolietVd.HasModificationTime)
- isoMetadata.AppendFormat("Volume modification date: {0}", decodedJolietVd.ModificationTime).
+ isoMetadata.AppendFormat(Localization.Volume_modification_date_0, decodedJolietVd.ModificationTime).
AppendLine();
else
- isoMetadata.AppendFormat("Volume has not been modified.").AppendLine();
+ isoMetadata.AppendFormat(Localization.Volume_has_not_been_modified).AppendLine();
if(decodedJolietVd.HasExpirationTime)
- isoMetadata.AppendFormat("Volume expiration date: {0}", decodedJolietVd.ExpirationTime).AppendLine();
+ isoMetadata.AppendFormat(Localization.Volume_expiration_date_0, decodedJolietVd.ExpirationTime).
+ AppendLine();
else
- isoMetadata.AppendFormat("Volume does not expire.").AppendLine();
+ isoMetadata.AppendFormat(Localization.Volume_does_not_expire).AppendLine();
if(decodedJolietVd.HasEffectiveTime)
- isoMetadata.AppendFormat("Volume effective date: {0}", decodedJolietVd.EffectiveTime).AppendLine();
+ isoMetadata.AppendFormat(Localization.Volume_effective_date_0, decodedJolietVd.EffectiveTime).
+ AppendLine();
else
- isoMetadata.AppendFormat("Volume has always been effective.").AppendLine();
+ isoMetadata.AppendFormat(Localization.Volume_has_always_been_effective).AppendLine();
}
if(torito != null)
@@ -714,60 +726,63 @@ public sealed partial class ISO9660
imagePlugin.ReadSectors(initialEntry.load_rba + partition.Start, initialEntry.sector_count,
out bootImage);
- isoMetadata.AppendLine("----------------------");
- isoMetadata.AppendLine("EL TORITO INFORMATION:");
- isoMetadata.AppendLine("----------------------");
+ isoMetadata.AppendLine(Localization.EL_TORITO_INFORMATION_border);
+ isoMetadata.AppendLine(Localization.EL_TORITO_INFORMATION);
+ isoMetadata.AppendLine(Localization.EL_TORITO_INFORMATION_border);
- isoMetadata.AppendLine("Initial entry:");
- isoMetadata.AppendFormat("\tDeveloper ID: {0}", Encoding.GetString(valentry.developer_id)).AppendLine();
+ isoMetadata.AppendLine(Localization.Initial_entry);
+
+ isoMetadata.AppendFormat("\t" + Localization.Developer_ID_0, Encoding.GetString(valentry.developer_id)).
+ AppendLine();
if(initialEntry.bootable == ElToritoIndicator.Bootable)
{
- isoMetadata.AppendFormat("\tBootable on {0}", valentry.platform_id).AppendLine();
+ isoMetadata.AppendFormat("\t" + Localization.Bootable_on_0, valentry.platform_id).AppendLine();
- isoMetadata.AppendFormat("\tBootable image starts at sector {0} and runs for {1} sectors",
+ isoMetadata.AppendFormat("\t" + Localization.Bootable_image_starts_at_sector_0_and_runs_for_1_sectors,
initialEntry.load_rba, initialEntry.sector_count).AppendLine();
if(valentry.platform_id == ElToritoPlatform.x86)
- isoMetadata.AppendFormat("\tBootable image will be loaded at segment {0:X4}h",
+ isoMetadata.AppendFormat("\t" + Localization.Bootable_image_will_be_loaded_at_segment_0,
initialEntry.load_seg == 0 ? 0x7C0 : initialEntry.load_seg).AppendLine();
else
- isoMetadata.AppendFormat("\tBootable image will be loaded at 0x{0:X8}",
+ isoMetadata.AppendFormat("\t" + Localization.Bootable_image_will_be_loaded_at_0,
(uint)initialEntry.load_seg * 10).AppendLine();
switch(initialEntry.boot_type)
{
case ElToritoEmulation.None:
- isoMetadata.AppendLine("\tImage uses no emulation");
+ isoMetadata.AppendLine("\t" + Localization.Image_uses_no_emulation);
break;
case ElToritoEmulation.Md2Hd:
- isoMetadata.AppendLine("\tImage emulates a 5.25\" high-density (MD2HD, 1.2Mb) floppy");
+ isoMetadata.AppendLine("\t" + Localization.Image_emulates_a_high_density_MD2HD_floppy);
break;
case ElToritoEmulation.Mf2Hd:
- isoMetadata.AppendLine("\tImage emulates a 3.5\" high-density (MF2HD, 1.44Mb) floppy");
+ isoMetadata.AppendLine("\t" + Localization.Image_emulates_a_high_density_MF2HD_floppy);
break;
case ElToritoEmulation.Mf2Ed:
- isoMetadata.AppendLine("\tImage emulates a 3.5\" extra-density (MF2ED, 2.88Mb) floppy");
+ isoMetadata.AppendLine("\t" + Localization.Image_emulates_a_extra_density_MF2ED_floppy);
break;
default:
- isoMetadata.AppendFormat("\tImage uses unknown emulation type {0}",
+ isoMetadata.AppendFormat("\t" + Localization.Image_uses_unknown_emulation_type_0,
(byte)initialEntry.boot_type).AppendLine();
break;
}
- isoMetadata.AppendFormat("\tSystem type: 0x{0:X2}", initialEntry.system_type).AppendLine();
+ isoMetadata.AppendFormat("\t" + Localization.System_type_0, initialEntry.system_type).AppendLine();
if(bootImage != null)
- isoMetadata.AppendFormat("\tBootable image's SHA1: {0}", Sha1Context.Data(bootImage, out _)).
- AppendLine();
+ isoMetadata.
+ AppendFormat("\t" + Localization.Bootable_image_SHA1_0, Sha1Context.Data(bootImage, out _)).
+ AppendLine();
}
else
- isoMetadata.AppendLine("\tNot bootable");
+ isoMetadata.AppendLine("\t" + Localization.Not_bootable);
toritoOff += EL_TORITO_ENTRY_SIZE;
@@ -783,10 +798,11 @@ public sealed partial class ISO9660
toritoOff += EL_TORITO_ENTRY_SIZE;
- isoMetadata.AppendFormat("Boot section {0}:", sectionCounter);
+ isoMetadata.AppendFormat(Localization.Boot_section_0, sectionCounter);
- isoMetadata.AppendFormat("\tSection ID: {0}", Encoding.GetString(sectionHeader.identifier)).
- AppendLine();
+ isoMetadata.
+ AppendFormat("\t" + Localization.Section_ID_0, Encoding.GetString(sectionHeader.identifier)).
+ AppendLine();
for(int entryCounter = 1; entryCounter <= sectionHeader.entries && toritoOff < vdSector.Length;
entryCounter++)
@@ -797,7 +813,7 @@ public sealed partial class ISO9660
toritoOff += EL_TORITO_ENTRY_SIZE;
- isoMetadata.AppendFormat("\tEntry {0}:", entryCounter);
+ isoMetadata.AppendFormat("\t" + Localization.Entry_0, entryCounter);
if(sectionEntry.bootable == ElToritoIndicator.Bootable)
{
@@ -807,66 +823,69 @@ public sealed partial class ISO9660
imagePlugin.ReadSectors(sectionEntry.load_rba + partition.Start, sectionEntry.sector_count,
out bootImage);
- isoMetadata.AppendFormat("\t\tBootable on {0}", sectionHeader.platform_id).AppendLine();
+ isoMetadata.AppendFormat("\t\t" + Localization.Bootable_on_0, sectionHeader.platform_id).
+ AppendLine();
- isoMetadata.AppendFormat("\t\tBootable image starts at sector {0} and runs for {1} sectors",
- sectionEntry.load_rba, sectionEntry.sector_count).AppendLine();
+ isoMetadata.
+ AppendFormat("\t\t" + Localization.Bootable_image_starts_at_sector_0_and_runs_for_1_sectors,
+ sectionEntry.load_rba, sectionEntry.sector_count).AppendLine();
if(valentry.platform_id == ElToritoPlatform.x86)
- isoMetadata.AppendFormat("\t\tBootable image will be loaded at segment {0:X4}h",
+ isoMetadata.AppendFormat("\t\t" + Localization.Bootable_image_will_be_loaded_at_segment_0,
sectionEntry.load_seg == 0 ? 0x7C0 : sectionEntry.load_seg).
AppendLine();
else
- isoMetadata.AppendFormat("\t\tBootable image will be loaded at 0x{0:X8}",
+ isoMetadata.AppendFormat("\t\t" + Localization.Bootable_image_will_be_loaded_at_0,
(uint)sectionEntry.load_seg * 10).AppendLine();
switch((ElToritoEmulation)((byte)sectionEntry.boot_type & 0xF))
{
case ElToritoEmulation.None:
- isoMetadata.AppendLine("\t\tImage uses no emulation");
+ isoMetadata.AppendLine("\t\t" + Localization.Image_uses_no_emulation);
break;
case ElToritoEmulation.Md2Hd:
- isoMetadata.
- AppendLine("\t\tImage emulates a 5.25\" high-density (MD2HD, 1.2Mb) floppy");
+ isoMetadata.AppendLine("\t\t" + Localization.
+ Image_emulates_a_high_density_MD2HD_floppy);
break;
case ElToritoEmulation.Mf2Hd:
- isoMetadata.
- AppendLine("\t\tImage emulates a 3.5\" high-density (MF2HD, 1.44Mb) floppy");
+ isoMetadata.AppendLine("\t\t" + Localization.
+ Image_emulates_a_high_density_MF2HD_floppy);
break;
case ElToritoEmulation.Mf2Ed:
- isoMetadata.
- AppendLine("\t\tImage emulates a 3.5\" extra-density (MF2ED, 2.88Mb) floppy");
+ isoMetadata.AppendLine("\t\t" + Localization.
+ Image_emulates_a_extra_density_MF2ED_floppy);
break;
default:
- isoMetadata.AppendFormat("\t\tImage uses unknown emulation type {0}",
+ isoMetadata.AppendFormat("\t\t" + Localization.Image_uses_unknown_emulation_type_0,
(byte)initialEntry.boot_type).AppendLine();
break;
}
- isoMetadata.AppendFormat("\t\tSelection criteria type: {0}",
+ isoMetadata.AppendFormat("\t\t" + Localization.Selection_criteria_type_0,
sectionEntry.selection_criteria_type).AppendLine();
- isoMetadata.AppendFormat("\t\tSystem type: 0x{0:X2}", sectionEntry.system_type).AppendLine();
+ isoMetadata.AppendFormat("\t\t" + Localization.System_type_0, sectionEntry.system_type).
+ AppendLine();
if(bootImage != null)
- isoMetadata.AppendFormat("\t\tBootable image's SHA1: {0}",
+ isoMetadata.AppendFormat("\t\t" + Localization.Bootable_image_SHA1_0,
Sha1Context.Data(bootImage, out _)).AppendLine();
}
else
- isoMetadata.AppendLine("\t\tNot bootable");
+ isoMetadata.AppendLine("\t\t" + Localization.Not_bootable);
var flags = (ElToritoFlags)((byte)sectionEntry.boot_type & 0xF0);
if(flags.HasFlag(ElToritoFlags.ATAPI))
- isoMetadata.AppendLine("\t\tImage contains ATAPI drivers");
+ isoMetadata.AppendLine("\t\t" + Localization.Image_contains_ATAPI_drivers);
if(flags.HasFlag(ElToritoFlags.SCSI))
- isoMetadata.AppendLine("\t\tImage contains SCSI drivers");
+ isoMetadata.AppendLine("\t\t" + Localization.Image_contains_SCSI_drivers);
if(!flags.HasFlag(ElToritoFlags.Continued))
continue;
@@ -894,7 +913,12 @@ public sealed partial class ISO9660
if(refareas.Count > 0)
isoMetadata.Append(suspInformation);
- XmlFsType.Type = fsFormat;
+ if(_highSierra)
+ XmlFsType.Type = FS_TYPE_HSF;
+ else if(_cdi)
+ XmlFsType.Type = FS_TYPE_CDI;
+ else
+ XmlFsType.Type = FS_TYPE_ISO;
if(jolietvd != null)
{
diff --git a/Aaru.Filesystems/ISO9660/Mode2.cs b/Aaru.Filesystems/ISO9660/Mode2.cs
index 679217f8a..5307282d9 100644
--- a/Aaru.Filesystems/ISO9660/Mode2.cs
+++ b/Aaru.Filesystems/ISO9660/Mode2.cs
@@ -71,17 +71,20 @@ public sealed partial class ISO9660
switch(data.Length)
{
case 2048:
- AaruConsole.DebugWriteLine("ISO9660 Plugin", "Sector {0}, Cooked, Mode 0/1 / Mode 2 Form 1",
+ AaruConsole.DebugWriteLine("ISO9660 Plugin",
+ Localization.tor_Sector_0_Cooked_Mode_zero_one_Mode_two_Form_one,
realSector);
break;
case 2324:
- AaruConsole.DebugWriteLine("ISO9660 Plugin", "Sector {0}, Cooked, Mode 2 Form 2", realSector);
+ AaruConsole.DebugWriteLine("ISO9660 Plugin", Localization.tor_Sector_0_Cooked_Mode_two_Form_two,
+ realSector);
break;
case 2336:
AaruConsole.DebugWriteLine("ISO9660 Plugin",
- "Sector {0}, Cooked, Mode 2 Form {1}, File Number {2}, Channel Number {3}, Submode {4}, Coding Information {5}",
+ Localization.
+ tor_Sector_0_Cooked_Mode_two_Form_1_File_Number_2_Channel_Number_3_Submode_4_Coding_Information_5,
realSector,
((Mode2Submode)data[2]).HasFlag(Mode2Submode.Form2) ? 2 : 1, data[0],
data[1], (Mode2Submode)data[2], data[3]);
@@ -90,17 +93,18 @@ public sealed partial class ISO9660
case 2352 when data[0] != 0x00 || data[1] != 0xFF || data[2] != 0xFF || data[3] != 0xFF ||
data[4] != 0xFF || data[5] != 0xFF || data[6] != 0xFF || data[7] != 0xFF ||
data[8] != 0xFF || data[9] != 0xFF || data[10] != 0xFF || data[11] != 0x00:
- AaruConsole.DebugWriteLine("ISO9660 Plugin", "Sector {0}, Raw, Audio", realSector);
+ AaruConsole.DebugWriteLine("ISO9660 Plugin", Localization.tor_Sector_0_Raw_Audio, realSector);
break;
case 2352 when data[15] != 2:
- AaruConsole.DebugWriteLine("ISO9660 Plugin", "Sector {0} ({1:X2}:{2:X2}:{3:X2}), Raw, Mode {4}",
+ AaruConsole.DebugWriteLine("ISO9660 Plugin", Localization.tor_Sector_0_1_2_3_Raw_Mode_4,
realSector, data[12], data[13], data[14], data[15]);
break;
case 2352:
AaruConsole.DebugWriteLine("ISO9660 Plugin",
- "Sector {0} ({1:X2}:{2:X2}:{3:X2}), Raw, Mode 2 Form {4}, File Number {5}, Channel Number {6}, Submode {7}, Coding Information {8}",
+ Localization.
+ tor_Sector_0_1_2_3_Raw_Mode_two_Form_4_File_Number_5_Channel_Number_6_Submode_7_Coding_Information_8,
realSector, data[12], data[13], data[14],
((Mode2Submode)data[18]).HasFlag(Mode2Submode.Form2) ? 2 : 1,
data[16], data[17], (Mode2Submode)data[18], data[19]);
@@ -142,18 +146,20 @@ public sealed partial class ISO9660
switch(data.Length)
{
case 2048:
- AaruConsole.DebugWriteLine("ISO9660 Plugin", "Sector {0}, Cooked, Mode 0/1 / Mode 2 Form 1",
+ AaruConsole.DebugWriteLine("ISO9660 Plugin",
+ Localization.tor_Sector_0_Cooked_Mode_zero_one_Mode_two_Form_one,
dstSector);
break;
case 2324:
- AaruConsole.DebugWriteLine("ISO9660 Plugin", "Sector {0}, Cooked, Mode 2 Form 2",
- dstSector);
+ AaruConsole.DebugWriteLine("ISO9660 Plugin",
+ Localization.tor_Sector_0_Cooked_Mode_two_Form_two, dstSector);
break;
case 2336:
AaruConsole.DebugWriteLine("ISO9660 Plugin",
- "Sector {0}, Cooked, Mode 2 Form {1}, File Number {2}, Channel Number {3}, Submode {4}, Coding Information {5}",
+ Localization.
+ tor_Sector_0_Cooked_Mode_two_Form_1_File_Number_2_Channel_Number_3_Submode_4_Coding_Information_5,
dstSector,
((Mode2Submode)data[2]).HasFlag(Mode2Submode.Form2) ? 2 : 1,
data[0], data[1], (Mode2Submode)data[2], data[3]);
@@ -162,18 +168,19 @@ public sealed partial class ISO9660
case 2352 when data[0] != 0x00 || data[1] != 0xFF || data[2] != 0xFF || data[3] != 0xFF ||
data[4] != 0xFF || data[5] != 0xFF || data[6] != 0xFF || data[7] != 0xFF ||
data[8] != 0xFF || data[9] != 0xFF || data[10] != 0xFF || data[11] != 0x00:
- AaruConsole.DebugWriteLine("ISO9660 Plugin", "Sector {0}, Raw, Audio", dstSector);
+ AaruConsole.DebugWriteLine("ISO9660 Plugin", Localization.tor_Sector_0_Raw_Audio,
+ dstSector);
break;
case 2352 when data[15] != 2:
- AaruConsole.DebugWriteLine("ISO9660 Plugin",
- "Sector {0} ({1:X2}:{2:X2}:{3:X2}), Raw, Mode {4}", dstSector,
- data[12], data[13], data[14], data[15]);
+ AaruConsole.DebugWriteLine("ISO9660 Plugin", Localization.tor_Sector_0_1_2_3_Raw_Mode_4,
+ dstSector, data[12], data[13], data[14], data[15]);
break;
case 2352:
AaruConsole.DebugWriteLine("ISO9660 Plugin",
- "Sector {0} ({1:X2}:{2:X2}:{3:X2}), Raw, Mode 2 Form {4}, File Number {5}, Channel Number {6}, Submode {7}, Coding Information {8}",
+ Localization.
+ tor_Sector_0_1_2_3_Raw_Mode_two_Form_4_File_Number_5_Channel_Number_6_Submode_7_Coding_Information_8,
dstSector, data[12], data[13], data[14],
((Mode2Submode)data[18]).HasFlag(Mode2Submode.Form2) ? 2 : 1,
data[16], data[17], (Mode2Submode)data[18], data[19]);
diff --git a/Aaru.Filesystems/ISO9660/PathTable.cs b/Aaru.Filesystems/ISO9660/PathTable.cs
index e306bbfad..cec55f415 100644
--- a/Aaru.Filesystems/ISO9660/PathTable.cs
+++ b/Aaru.Filesystems/ISO9660/PathTable.cs
@@ -44,7 +44,7 @@ public sealed partial class ISO9660
data.Length == 0)
return null;
- List table = new List();
+ List table = new();
int off = 0;
@@ -90,7 +90,7 @@ public sealed partial class ISO9660
if(data is null)
return null;
- List table = new List();
+ List table = new();
int off = 0;
diff --git a/Aaru.Filesystems/ISO9660/Super.cs b/Aaru.Filesystems/ISO9660/Super.cs
index 88d5df999..1e096d2ef 100644
--- a/Aaru.Filesystems/ISO9660/Super.cs
+++ b/Aaru.Filesystems/ISO9660/Super.cs
@@ -135,10 +135,10 @@ public sealed partial class ISO9660
while(true)
{
- AaruConsole.DebugWriteLine("ISO9660 plugin", "Processing VD loop no. {0}", counter);
+ AaruConsole.DebugWriteLine("ISO9660 plugin", Localization.Processing_VD_loop_no_0, counter);
// Seek to Volume Descriptor
- AaruConsole.DebugWriteLine("ISO9660 plugin", "Reading sector {0}", 16 + counter + partition.Start);
+ AaruConsole.DebugWriteLine("ISO9660 plugin", Localization.Reading_sector_0, 16 + counter + partition.Start);
errno = imagePlugin.ReadSector(16 + counter + partition.Start, out byte[] vdSectorTmp);
if(errno != ErrorNumber.NoError)
@@ -215,7 +215,7 @@ public sealed partial class ISO9660
jolietvd = svd;
else
AaruConsole.DebugWriteLine("ISO9660 plugin",
- "Found unknown supplementary volume descriptor");
+ Localization.Found_unknown_supplementary_volume_descriptor);
if(_debug)
svdSectors.Add(16 + counter + partition.Start);
@@ -258,7 +258,7 @@ public sealed partial class ISO9660
hsvd == null &&
fsvd == null)
{
- AaruConsole.ErrorWriteLine("ERROR: Could not find primary volume descriptor");
+ AaruConsole.ErrorWriteLine(Localization.ERROR_Could_not_find_primary_volume_descriptor);
return ErrorNumber.InvalidArgument;
}
@@ -294,7 +294,7 @@ public sealed partial class ISO9660
if(errno != ErrorNumber.NoError)
pathTableData = null;
- fsFormat = "High Sierra Format";
+ fsFormat = FS_TYPE_HSF;
pathTableMsbLocation = hsvd.Value.mandatory_path_table_msb;
pathTableLsbLocation = hsvd.Value.mandatory_path_table_lsb;
@@ -308,7 +308,7 @@ public sealed partial class ISO9660
if(errno != ErrorNumber.NoError)
pathTableData = null;
- fsFormat = "CD-i";
+ fsFormat = FS_TYPE_CDI;
pathTableMsbLocation = fsvd.Value.path_table_addr;
@@ -325,7 +325,7 @@ public sealed partial class ISO9660
if(errno != ErrorNumber.NoError)
pathTableData = null;
- fsFormat = "ISO9660";
+ fsFormat = FS_TYPE_ISO;
pathTableMsbLocation = pvd.Value.type_m_path_table;
pathTableLsbLocation = pvd.Value.type_l_path_table;
@@ -368,7 +368,8 @@ public sealed partial class ISO9660
rootLocation != _pathTable[0].Extent)
{
AaruConsole.DebugWriteLine("ISO9660 plugin",
- "Path table and PVD do not point to the same location for the root directory!");
+ Localization.
+ Path_table_and_PVD_do_not_point_to_the_same_location_for_the_root_directory);
errno = ReadSector(rootLocation, out byte[] firstRootSector);
@@ -397,7 +398,8 @@ public sealed partial class ISO9660
if(pvdWrongRoot)
{
AaruConsole.DebugWriteLine("ISO9660 plugin",
- "PVD does not point to correct root directory, checking path table...");
+ Localization.
+ PVD_does_not_point_to_correct_root_directory_checking_path_table);
bool pathTableWrongRoot = false;
@@ -424,7 +426,7 @@ public sealed partial class ISO9660
if(pathTableWrongRoot)
{
- AaruConsole.ErrorWriteLine("Cannot find root directory...");
+ AaruConsole.ErrorWriteLine(Localization.Cannot_find_root_directory);
return ErrorNumber.InvalidArgument;
}
diff --git a/Aaru.Filesystems/JFS.cs b/Aaru.Filesystems/JFS.cs
index c91509f94..a3e8b5792 100644
--- a/Aaru.Filesystems/JFS.cs
+++ b/Aaru.Filesystems/JFS.cs
@@ -52,16 +52,18 @@ public sealed class JFS : IFilesystem
const uint JFS_BOOT_BLOCKS_SIZE = 0x8000;
const uint JFS_MAGIC = 0x3153464A;
+ const string FS_TYPE = "jfs";
+
///
public FileSystemType XmlFsType { get; private set; }
///
public Encoding Encoding { get; private set; }
///
- public string Name => "JFS Plugin";
+ public string Name => Localization.JFS_Name;
///
public Guid Id => new("D3BE2A41-8F28-4055-94DC-BB6C72A0E9C4");
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
///
public bool Identify(IMediaImage imagePlugin, Partition partition)
@@ -101,96 +103,96 @@ public sealed class JFS : IFilesystem
SuperBlock jfsSb = Marshal.ByteArrayToStructureLittleEndian(sector);
- sb.AppendLine("JFS filesystem");
- sb.AppendFormat("Version {0}", jfsSb.s_version).AppendLine();
- sb.AppendFormat("{0} blocks of {1} bytes", jfsSb.s_size, jfsSb.s_bsize).AppendLine();
- sb.AppendFormat("{0} blocks per allocation group", jfsSb.s_agsize).AppendLine();
+ sb.AppendLine(Localization.JFS_filesystem);
+ sb.AppendFormat(Localization.Version_0, jfsSb.s_version).AppendLine();
+ sb.AppendFormat(Localization._0_blocks_of_1_bytes, jfsSb.s_size, jfsSb.s_bsize).AppendLine();
+ sb.AppendFormat(Localization._0_blocks_per_allocation_group, jfsSb.s_agsize).AppendLine();
if(jfsSb.s_flags.HasFlag(Flags.Unicode))
- sb.AppendLine("Volume uses Unicode for directory entries");
+ sb.AppendLine(Localization.Volume_uses_Unicode_for_directory_entries);
if(jfsSb.s_flags.HasFlag(Flags.RemountRO))
- sb.AppendLine("Volume remounts read-only on error");
+ sb.AppendLine(Localization.Volume_remounts_read_only_on_error);
if(jfsSb.s_flags.HasFlag(Flags.Continue))
- sb.AppendLine("Volume continues on error");
+ sb.AppendLine(Localization.Volume_continues_on_error);
if(jfsSb.s_flags.HasFlag(Flags.Panic))
- sb.AppendLine("Volume panics on error");
+ sb.AppendLine(Localization.Volume_panics_on_error);
if(jfsSb.s_flags.HasFlag(Flags.UserQuota))
- sb.AppendLine("Volume has user quotas enabled");
+ sb.AppendLine(Localization.Volume_has_user_quotas_enabled);
if(jfsSb.s_flags.HasFlag(Flags.GroupQuota))
- sb.AppendLine("Volume has group quotas enabled");
+ sb.AppendLine(Localization.Volume_has_group_quotas_enabled);
if(jfsSb.s_flags.HasFlag(Flags.NoJournal))
- sb.AppendLine("Volume is not using any journal");
+ sb.AppendLine(Localization.Volume_is_not_using_any_journal);
if(jfsSb.s_flags.HasFlag(Flags.Discard))
- sb.AppendLine("Volume sends TRIM/UNMAP commands to underlying device");
+ sb.AppendLine(Localization.Volume_sends_TRIM_UNMAP_commands_to_underlying_device);
if(jfsSb.s_flags.HasFlag(Flags.GroupCommit))
- sb.AppendLine("Volume commits in groups of 1");
+ sb.AppendLine(Localization.Volume_commits_in_groups_of_1);
if(jfsSb.s_flags.HasFlag(Flags.LazyCommit))
- sb.AppendLine("Volume commits lazy");
+ sb.AppendLine(Localization.Volume_commits_lazy);
if(jfsSb.s_flags.HasFlag(Flags.Temporary))
- sb.AppendLine("Volume does not commit to log");
+ sb.AppendLine(Localization.Volume_does_not_commit_to_log);
if(jfsSb.s_flags.HasFlag(Flags.InlineLog))
- sb.AppendLine("Volume has log withing itself");
+ sb.AppendLine(Localization.Volume_has_log_withing_itself);
if(jfsSb.s_flags.HasFlag(Flags.InlineMoving))
- sb.AppendLine("Volume has log withing itself and is moving it out");
+ sb.AppendLine(Localization.Volume_has_log_withing_itself_and_is_moving_it_out);
if(jfsSb.s_flags.HasFlag(Flags.BadSAIT))
- sb.AppendLine("Volume has bad current secondary ait");
+ sb.AppendLine(Localization.Volume_has_bad_current_secondary_ait);
if(jfsSb.s_flags.HasFlag(Flags.Sparse))
- sb.AppendLine("Volume supports sparse files");
+ sb.AppendLine(Localization.Volume_supports_sparse_files);
if(jfsSb.s_flags.HasFlag(Flags.DASDEnabled))
- sb.AppendLine("Volume has DASD limits enabled");
+ sb.AppendLine(Localization.Volume_has_DASD_limits_enabled);
if(jfsSb.s_flags.HasFlag(Flags.DASDPrime))
- sb.AppendLine("Volume primes DASD on boot");
+ sb.AppendLine(Localization.Volume_primes_DASD_on_boot);
if(jfsSb.s_flags.HasFlag(Flags.SwapBytes))
- sb.AppendLine("Volume is in a big-endian system");
+ sb.AppendLine(Localization.Volume_is_in_a_big_endian_system);
if(jfsSb.s_flags.HasFlag(Flags.DirIndex))
- sb.AppendLine("Volume has persistent indexes");
+ sb.AppendLine(Localization.Volume_has_persistent_indexes);
if(jfsSb.s_flags.HasFlag(Flags.Linux))
- sb.AppendLine("Volume supports Linux");
+ sb.AppendLine(Localization.Volume_supports_Linux);
if(jfsSb.s_flags.HasFlag(Flags.DFS))
- sb.AppendLine("Volume supports DCE DFS LFS");
+ sb.AppendLine(Localization.Volume_supports_DCE_DFS_LFS);
if(jfsSb.s_flags.HasFlag(Flags.OS2))
- sb.AppendLine("Volume supports OS/2, and is case insensitive");
+ sb.AppendLine(Localization.Volume_supports_OS2_and_is_case_insensitive);
if(jfsSb.s_flags.HasFlag(Flags.AIX))
- sb.AppendLine("Volume supports AIX");
+ sb.AppendLine(Localization.Volume_supports_AIX);
if(jfsSb.s_state != 0)
- sb.AppendLine("Volume is dirty");
+ sb.AppendLine(Localization.Volume_is_dirty);
- sb.AppendFormat("Volume was last updated on {0}",
+ sb.AppendFormat(Localization.Volume_was_last_updated_on_0_,
DateHandlers.UnixUnsignedToDateTime(jfsSb.s_time.tv_sec, jfsSb.s_time.tv_nsec)).AppendLine();
if(jfsSb.s_version == 1)
- sb.AppendFormat("Volume name: {0}", StringHandlers.CToString(jfsSb.s_fpack, Encoding)).AppendLine();
+ sb.AppendFormat(Localization.Volume_name_0, StringHandlers.CToString(jfsSb.s_fpack, Encoding)).AppendLine();
else
- sb.AppendFormat("Volume name: {0}", StringHandlers.CToString(jfsSb.s_label, Encoding)).AppendLine();
+ sb.AppendFormat(Localization.Volume_name_0, StringHandlers.CToString(jfsSb.s_label, Encoding)).AppendLine();
- sb.AppendFormat("Volume UUID: {0}", jfsSb.s_uuid).AppendLine();
+ sb.AppendFormat(Localization.Volume_UUID_0, jfsSb.s_uuid).AppendLine();
XmlFsType = new FileSystemType
{
- Type = "JFS filesystem",
+ Type = FS_TYPE,
Clusters = jfsSb.s_size,
ClusterSize = jfsSb.s_bsize,
Bootable = true,
diff --git a/Aaru.Filesystems/LIF.cs b/Aaru.Filesystems/LIF.cs
index 11924610a..3d048f5dc 100644
--- a/Aaru.Filesystems/LIF.cs
+++ b/Aaru.Filesystems/LIF.cs
@@ -50,16 +50,18 @@ public sealed class LIF : IFilesystem
{
const uint LIF_MAGIC = 0x8000;
+ const string FS_TYPE = "hplif";
+
///
public FileSystemType XmlFsType { get; private set; }
///
public Encoding Encoding { get; private set; }
///
- public string Name => "HP Logical Interchange Format Plugin";
+ public string Name => Localization.LIF_Name;
///
public Guid Id => new("41535647-77A5-477B-9206-DA727ACDC704");
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
///
public bool Identify(IMediaImage imagePlugin, Partition partition)
@@ -73,7 +75,7 @@ public sealed class LIF : IFilesystem
return false;
SystemBlock lifSb = Marshal.ByteArrayToStructureBigEndian(sector);
- AaruConsole.DebugWriteLine("LIF plugin", "magic 0x{0:X8} (expected 0x{1:X8})", lifSb.magic, LIF_MAGIC);
+ AaruConsole.DebugWriteLine("LIF plugin", Localization.magic_0_expected_1, lifSb.magic, LIF_MAGIC);
return lifSb.magic == LIF_MAGIC;
}
@@ -99,24 +101,24 @@ public sealed class LIF : IFilesystem
var sb = new StringBuilder();
- sb.AppendLine("HP Logical Interchange Format");
- sb.AppendFormat("Directory starts at cluster {0}", lifSb.directoryStart).AppendLine();
- sb.AppendFormat("LIF identifier: {0}", lifSb.lifId).AppendLine();
- sb.AppendFormat("Directory size: {0} clusters", lifSb.directorySize).AppendLine();
- sb.AppendFormat("LIF version: {0}", lifSb.lifVersion).AppendLine();
+ sb.AppendLine(Localization.HP_Logical_Interchange_Format);
+ sb.AppendFormat(Localization.Directory_starts_at_cluster_0, lifSb.directoryStart).AppendLine();
+ sb.AppendFormat(Localization.LIF_identifier_0, lifSb.lifId).AppendLine();
+ sb.AppendFormat(Localization.Directory_size_0_clusters, lifSb.directorySize).AppendLine();
+ sb.AppendFormat(Localization.LIF_version_0, lifSb.lifVersion).AppendLine();
// How is this related to volume size? I have only CDs to test and makes no sense there
- sb.AppendFormat("{0} tracks", lifSb.tracks).AppendLine();
- sb.AppendFormat("{0} heads", lifSb.heads).AppendLine();
- sb.AppendFormat("{0} sectors", lifSb.sectors).AppendLine();
- sb.AppendFormat("Volume name: {0}", StringHandlers.CToString(lifSb.volumeLabel, Encoding)).AppendLine();
- sb.AppendFormat("Volume created on {0}", DateHandlers.LifToDateTime(lifSb.creationDate)).AppendLine();
+ sb.AppendFormat(Localization._0_tracks, lifSb.tracks).AppendLine();
+ sb.AppendFormat(Localization._0_heads, lifSb.heads).AppendLine();
+ sb.AppendFormat(Localization._0_sectors, lifSb.sectors).AppendLine();
+ sb.AppendFormat(Localization.Volume_name_0, StringHandlers.CToString(lifSb.volumeLabel, Encoding)).AppendLine();
+ sb.AppendFormat(Localization.Volume_created_on_0, DateHandlers.LifToDateTime(lifSb.creationDate)).AppendLine();
information = sb.ToString();
XmlFsType = new FileSystemType
{
- Type = "HP Logical Interchange Format",
+ Type = FS_TYPE,
ClusterSize = 256,
Clusters = partition.Size / 256,
CreationDate = DateHandlers.LifToDateTime(lifSb.creationDate),
diff --git a/Aaru.Filesystems/LisaFS/Consts.cs b/Aaru.Filesystems/LisaFS/Consts.cs
index 2406994f5..d2765f6bd 100644
--- a/Aaru.Filesystems/LisaFS/Consts.cs
+++ b/Aaru.Filesystems/LisaFS/Consts.cs
@@ -110,4 +110,6 @@ public sealed partial class LisaFS
/// Erased?
KilledObject = 15
}
+
+ const string FS_TYPE = "lisafs";
}
\ No newline at end of file
diff --git a/Aaru.Filesystems/LisaFS/File.cs b/Aaru.Filesystems/LisaFS/File.cs
index f4011872b..8b62cdef8 100644
--- a/Aaru.Filesystems/LisaFS/File.cs
+++ b/Aaru.Filesystems/LisaFS/File.cs
@@ -438,7 +438,7 @@ public sealed partial class LisaFS
{
if(_fileSizeCache.TryGetValue(fileId, out int realSize))
if(realSize > temp.Length)
- AaruConsole.ErrorWriteLine("File {0} gets truncated.", fileId);
+ AaruConsole.ErrorWriteLine(Localization.File_0_gets_truncated, fileId);
buf = temp;
diff --git a/Aaru.Filesystems/LisaFS/Info.cs b/Aaru.Filesystems/LisaFS/Info.cs
index 1931f8d19..dcd1b0fed 100644
--- a/Aaru.Filesystems/LisaFS/Info.cs
+++ b/Aaru.Filesystems/LisaFS/Info.cs
@@ -68,7 +68,7 @@ public sealed partial class LisaFS
DecodeTag(tag, out LisaTag.PriamTag searchTag);
- AaruConsole.DebugWriteLine("LisaFS plugin", "Sector {0}, file ID 0x{1:X4}", i, searchTag.FileId);
+ AaruConsole.DebugWriteLine("LisaFS plugin", Localization.Sector_0_file_ID_1, i, searchTag.FileId);
if(beforeMddf == -1 &&
searchTag.FileId == FILEID_LOADER_SIGNED)
@@ -92,7 +92,7 @@ public sealed partial class LisaFS
datasize = BigEndianBitConverter.ToUInt16(sector, 0x7E)
};
- AaruConsole.DebugWriteLine("LisaFS plugin", "Current sector = {0}", i);
+ AaruConsole.DebugWriteLine("LisaFS plugin", Localization.Current_sector_0, i);
AaruConsole.DebugWriteLine("LisaFS plugin", "mddf.mddf_block = {0}", infoMddf.mddf_block);
AaruConsole.DebugWriteLine("LisaFS plugin", "Disk size = {0} sectors", imagePlugin.Info.Sectors);
AaruConsole.DebugWriteLine("LisaFS plugin", "mddf.vol_size = {0} sectors", infoMddf.vol_size);
@@ -155,7 +155,7 @@ public sealed partial class LisaFS
DecodeTag(tag, out LisaTag.PriamTag searchTag);
- AaruConsole.DebugWriteLine("LisaFS plugin", "Sector {0}, file ID 0x{1:X4}", i, searchTag.FileId);
+ AaruConsole.DebugWriteLine("LisaFS plugin", Localization.Sector_0_file_ID_1, i, searchTag.FileId);
if(beforeMddf == -1 &&
searchTag.FileId == FILEID_LOADER_SIGNED)
@@ -330,55 +330,55 @@ public sealed partial class LisaFS
break;
default:
- sb.AppendFormat("Unknown LisaFS version {0}", infoMddf.fsversion).AppendLine();
+ sb.AppendFormat(Localization.Unknown_LisaFS_version_0, infoMddf.fsversion).AppendLine();
break;
}
- sb.AppendFormat("Volume name: \"{0}\"", infoMddf.volname).AppendLine();
- sb.AppendFormat("Volume password: \"{0}\"", infoMddf.password).AppendLine();
- sb.AppendFormat("Volume ID: 0x{0:X16}", infoMddf.volid).AppendLine();
- sb.AppendFormat("Backup volume ID: 0x{0:X16}", infoMddf.backup_volid).AppendLine();
+ sb.AppendFormat(Localization.Volume_name_0, infoMddf.volname).AppendLine();
+ sb.AppendFormat(Localization.Volume_password_0, infoMddf.password).AppendLine();
+ sb.AppendFormat(Localization.Volume_ID_0_X16, infoMddf.volid).AppendLine();
+ sb.AppendFormat(Localization.Backup_volume_ID_0, infoMddf.backup_volid).AppendLine();
- sb.AppendFormat("Master copy ID: 0x{0:X8}", infoMddf.master_copy_id).AppendLine();
+ sb.AppendFormat(Localization.Master_copy_ID_0, infoMddf.master_copy_id).AppendLine();
- sb.AppendFormat("Volume is number {0} of {1}", infoMddf.volnum, infoMddf.vol_sequence).AppendLine();
+ sb.AppendFormat(Localization.Volume_is_number_0_of_1, infoMddf.volnum, infoMddf.vol_sequence).AppendLine();
- sb.AppendFormat("Serial number of Lisa computer that created this volume: {0}", infoMddf.machine_id).
- AppendLine();
+ sb.AppendFormat(Localization.Serial_number_of_Lisa_computer_that_created_this_volume_0,
+ infoMddf.machine_id).AppendLine();
- sb.AppendFormat("Serial number of Lisa computer that can use this volume's software {0}",
+ sb.AppendFormat(Localization.Serial_number_of_Lisa_computer_that_can_use_this_volume_software_0,
infoMddf.serialization).AppendLine();
- sb.AppendFormat("Volume created on {0}", infoMddf.dtvc).AppendLine();
- sb.AppendFormat("Some timestamp, says {0}", infoMddf.dtcc).AppendLine();
- sb.AppendFormat("Volume backed up on {0}", infoMddf.dtvb).AppendLine();
- sb.AppendFormat("Volume scavenged on {0}", infoMddf.dtvs).AppendLine();
- sb.AppendFormat("MDDF is in block {0}", infoMddf.mddf_block + beforeMddf).AppendLine();
- sb.AppendFormat("There are {0} reserved blocks before volume", beforeMddf).AppendLine();
- sb.AppendFormat("{0} blocks minus one", infoMddf.volsize_minus_one).AppendLine();
+ sb.AppendFormat(Localization.Volume_created_on_0, infoMddf.dtvc).AppendLine();
+ sb.AppendFormat(Localization.Volume_catalog_created_on_0, infoMddf.dtcc).AppendLine();
+ sb.AppendFormat(Localization.Volume_backed_up_on_0, infoMddf.dtvb).AppendLine();
+ sb.AppendFormat(Localization.Volume_scavenged_on_0, infoMddf.dtvs).AppendLine();
+ sb.AppendFormat(Localization.MDDF_is_in_block_0, infoMddf.mddf_block + beforeMddf).AppendLine();
+ sb.AppendFormat(Localization.There_are_0_reserved_blocks_before_volume, beforeMddf).AppendLine();
+ sb.AppendFormat(Localization._0_blocks_minus_one, infoMddf.volsize_minus_one).AppendLine();
- sb.AppendFormat("{0} blocks minus one minus MDDF offset", infoMddf.volsize_minus_mddf_minus_one).
+ sb.AppendFormat(Localization._0_blocks_minus_one_minus_MDDF_offset, infoMddf.volsize_minus_mddf_minus_one).
AppendLine();
- sb.AppendFormat("{0} blocks in volume", infoMddf.vol_size).AppendLine();
- sb.AppendFormat("{0} bytes per sector (uncooked)", infoMddf.blocksize).AppendLine();
- sb.AppendFormat("{0} bytes per sector", infoMddf.datasize).AppendLine();
- sb.AppendFormat("{0} blocks per cluster", infoMddf.clustersize).AppendLine();
- sb.AppendFormat("{0} blocks in filesystem", infoMddf.fs_size).AppendLine();
- sb.AppendFormat("{0} files in volume", infoMddf.filecount).AppendLine();
- sb.AppendFormat("{0} blocks free", infoMddf.freecount).AppendLine();
- sb.AppendFormat("{0} bytes in LisaInfo", infoMddf.label_size).AppendLine();
- sb.AppendFormat("Filesystem overhead: {0}", infoMddf.fs_overhead).AppendLine();
- sb.AppendFormat("Scavenger result code: 0x{0:X8}", infoMddf.result_scavenge).AppendLine();
- sb.AppendFormat("Boot code: 0x{0:X8}", infoMddf.boot_code).AppendLine();
- sb.AppendFormat("Boot environment: 0x{0:X8}", infoMddf.boot_environ).AppendLine();
- sb.AppendFormat("Overmount stamp: 0x{0:X16}", infoMddf.overmount_stamp).AppendLine();
+ sb.AppendFormat(Localization._0_blocks_in_volume, infoMddf.vol_size).AppendLine();
+ sb.AppendFormat(Localization._0_bytes_per_sector_uncooked, infoMddf.blocksize).AppendLine();
+ sb.AppendFormat(Localization._0_bytes_per_sector, infoMddf.datasize).AppendLine();
+ sb.AppendFormat(Localization._0_blocks_per_cluster, infoMddf.clustersize).AppendLine();
+ sb.AppendFormat(Localization._0_blocks_in_filesystem, infoMddf.fs_size).AppendLine();
+ sb.AppendFormat(Localization._0_files_in_volume, infoMddf.filecount).AppendLine();
+ sb.AppendFormat(Localization._0_blocks_free, infoMddf.freecount).AppendLine();
+ sb.AppendFormat(Localization._0_bytes_in_LisaInfo, infoMddf.label_size).AppendLine();
+ sb.AppendFormat(Localization.Filesystem_overhead_0, infoMddf.fs_overhead).AppendLine();
+ sb.AppendFormat(Localization.Scavenger_result_code_0, infoMddf.result_scavenge).AppendLine();
+ sb.AppendFormat(Localization.Boot_code_0, infoMddf.boot_code).AppendLine();
+ sb.AppendFormat(Localization.Boot_environment_0, infoMddf.boot_environ).AppendLine();
+ sb.AppendFormat(Localization.Overmount_stamp_0, infoMddf.overmount_stamp).AppendLine();
- sb.AppendFormat("S-Records start at {0} and spans for {1} blocks",
+ sb.AppendFormat(Localization.S_Records_start_at_0_and_spans_for_1_blocks,
infoMddf.srec_ptr + infoMddf.mddf_block + beforeMddf, infoMddf.srec_len).AppendLine();
- sb.AppendLine(infoMddf.vol_left_mounted == 0 ? "Volume is clean" : "Volume is dirty");
+ sb.AppendLine(infoMddf.vol_left_mounted == 0 ? Localization.Volume_is_clean : Localization.Volume_is_dirty);
information = sb.ToString();
@@ -404,7 +404,7 @@ public sealed partial class LisaFS
XmlFsType.FilesSpecified = true;
XmlFsType.FreeClusters = infoMddf.freecount;
XmlFsType.FreeClustersSpecified = true;
- XmlFsType.Type = "LisaFS";
+ XmlFsType.Type = FS_TYPE;
XmlFsType.VolumeName = infoMddf.volname;
XmlFsType.VolumeSerial = $"{infoMddf.volid:X16}";
diff --git a/Aaru.Filesystems/LisaFS/LisaFS.cs b/Aaru.Filesystems/LisaFS/LisaFS.cs
index 279cc1342..1bb73171a 100644
--- a/Aaru.Filesystems/LisaFS/LisaFS.cs
+++ b/Aaru.Filesystems/LisaFS/LisaFS.cs
@@ -61,7 +61,7 @@ public sealed partial class LisaFS : IReadOnlyFilesystem
///
public FileSystemType XmlFsType { get; private set; }
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
// TODO: Implement Lisa 7/7 namespace (needs decoding {!CATALOG} file)
///
diff --git a/Aaru.Filesystems/LisaFS/Super.cs b/Aaru.Filesystems/LisaFS/Super.cs
index 813d78946..fdd7cd0e9 100644
--- a/Aaru.Filesystems/LisaFS/Super.cs
+++ b/Aaru.Filesystems/LisaFS/Super.cs
@@ -61,7 +61,7 @@ public sealed partial class LisaFS
// However with some effort the code may be modified to ignore them.
if(_device.Info.ReadableSectorTags?.Contains(SectorTagType.AppleSectorTag) != true)
{
- AaruConsole.DebugWriteLine("LisaFS plugin", "Underlying device does not support Lisa tags");
+ AaruConsole.DebugWriteLine("LisaFS plugin", Localization.Underlying_device_does_not_support_Lisa_tags);
return ErrorNumber.InOutError;
}
@@ -69,7 +69,7 @@ public sealed partial class LisaFS
// Minimal LisaOS disk is 3.5" single sided double density, 800 sectors
if(_device.Info.Sectors < 800)
{
- AaruConsole.DebugWriteLine("LisaFS plugin", "Device is too small");
+ AaruConsole.DebugWriteLine("LisaFS plugin", Localization.Device_is_too_small);
return ErrorNumber.InOutError;
}
@@ -87,7 +87,7 @@ public sealed partial class LisaFS
DecodeTag(tag, out LisaTag.PriamTag searchTag);
- AaruConsole.DebugWriteLine("LisaFS plugin", "Sector {0}, file ID 0x{1:X4}", i, searchTag.FileId);
+ AaruConsole.DebugWriteLine("LisaFS plugin", Localization.Sector_0_file_ID_1, i, searchTag.FileId);
if(_volumePrefix == _device.Info.Sectors &&
searchTag.FileId == FILEID_LOADER_SIGNED)
@@ -194,7 +194,7 @@ public sealed partial class LisaFS
_mddf.blocksize < _device.Info.SectorSize ||
_mddf.datasize != _device.Info.SectorSize)
{
- AaruConsole.DebugWriteLine("LisaFS plugin", "Incorrect MDDF found");
+ AaruConsole.DebugWriteLine("LisaFS plugin", Localization.Incorrect_MDDF_found);
return ErrorNumber.InvalidArgument;
}
@@ -203,19 +203,20 @@ public sealed partial class LisaFS
switch(_mddf.fsversion)
{
case LISA_V1:
- AaruConsole.DebugWriteLine("LisaFS plugin", "Mounting LisaFS v1");
+ AaruConsole.DebugWriteLine("LisaFS plugin", Localization.Mounting_LisaFS_v1);
break;
case LISA_V2:
- AaruConsole.DebugWriteLine("LisaFS plugin", "Mounting LisaFS v2");
+ AaruConsole.DebugWriteLine("LisaFS plugin", Localization.Mounting_LisaFS_v2);
break;
case LISA_V3:
- AaruConsole.DebugWriteLine("LisaFS plugin", "Mounting LisaFS v3");
+ AaruConsole.DebugWriteLine("LisaFS plugin", Localization.Mounting_LisaFS_v3);
break;
default:
- AaruConsole.ErrorWriteLine("Cannot mount LisaFS version {0}", _mddf.fsversion.ToString());
+ AaruConsole.ErrorWriteLine(Localization.Cannot_mount_LisaFS_version_0,
+ _mddf.fsversion.ToString());
return ErrorNumber.NotSupported;
}
@@ -243,7 +244,7 @@ public sealed partial class LisaFS
if(error != ErrorNumber.NoError)
{
- AaruConsole.ErrorWriteLine("Error {0} reading S-Records file.", error);
+ AaruConsole.ErrorWriteLine(Localization.Error_0_reading_S_Records_file, error);
return error;
}
@@ -260,7 +261,7 @@ public sealed partial class LisaFS
if(error != ErrorNumber.NoError)
{
- AaruConsole.DebugWriteLine("LisaFS plugin", "Cannot read Catalog File, error {0}",
+ AaruConsole.DebugWriteLine("LisaFS plugin", Localization.Cannot_read_Catalog_File_error_0,
error.ToString());
_mounted = false;
@@ -275,7 +276,7 @@ public sealed partial class LisaFS
if(error != ErrorNumber.NoError)
{
- AaruConsole.DebugWriteLine("LisaFS plugin", "Unable to read boot blocks");
+ AaruConsole.DebugWriteLine("LisaFS plugin", Localization.Unable_to_read_boot_blocks);
_mounted = false;
return error;
@@ -285,7 +286,7 @@ public sealed partial class LisaFS
if(error != ErrorNumber.NoError)
{
- AaruConsole.DebugWriteLine("LisaFS plugin", "Unable to read boot loader");
+ AaruConsole.DebugWriteLine("LisaFS plugin", Localization.Unable_to_read_boot_loader);
_mounted = false;
return error;
@@ -295,7 +296,7 @@ public sealed partial class LisaFS
if(error != ErrorNumber.NoError)
{
- AaruConsole.DebugWriteLine("LisaFS plugin", "Unable to read MDDF");
+ AaruConsole.DebugWriteLine("LisaFS plugin", Localization.Unable_to_read_MDDF);
_mounted = false;
return error;
@@ -305,7 +306,7 @@ public sealed partial class LisaFS
if(error != ErrorNumber.NoError)
{
- AaruConsole.DebugWriteLine("LisaFS plugin", "Unable to read volume bitmap");
+ AaruConsole.DebugWriteLine("LisaFS plugin", Localization.Unable_to_read_volume_bitmap);
_mounted = false;
return error;
@@ -315,7 +316,7 @@ public sealed partial class LisaFS
if(error != ErrorNumber.NoError)
{
- AaruConsole.DebugWriteLine("LisaFS plugin", "Unable to read S-Records file");
+ AaruConsole.DebugWriteLine("LisaFS plugin", Localization.Unable_to_read_S_Records_file);
_mounted = false;
return error;
@@ -345,20 +346,20 @@ public sealed partial class LisaFS
XmlFsType.FilesSpecified = true;
XmlFsType.FreeClusters = _mddf.freecount;
XmlFsType.FreeClustersSpecified = true;
- XmlFsType.Type = "LisaFS";
+ XmlFsType.Type = FS_TYPE;
XmlFsType.VolumeName = _mddf.volname;
XmlFsType.VolumeSerial = $"{_mddf.volid:X16}";
return ErrorNumber.NoError;
}
- AaruConsole.DebugWriteLine("LisaFS plugin", "Not a Lisa filesystem");
+ AaruConsole.DebugWriteLine("LisaFS plugin", Localization.Not_a_Lisa_filesystem);
return ErrorNumber.NotSupported;
}
catch(Exception ex)
{
- AaruConsole.ErrorWriteLine("Exception {0}, {1}, {2}", ex.Message, ex.InnerException, ex.StackTrace);
+ AaruConsole.ErrorWriteLine(Localization.Exception_0_1_2, ex.Message, ex.InnerException, ex.StackTrace);
return ErrorNumber.InOutError;
}
diff --git a/Aaru.Filesystems/Localization/Localization.Designer.cs b/Aaru.Filesystems/Localization/Localization.Designer.cs
new file mode 100644
index 000000000..aa0a7ec68
--- /dev/null
+++ b/Aaru.Filesystems/Localization/Localization.Designer.cs
@@ -0,0 +1,7441 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace Aaru.Filesystems {
+ using System;
+
+
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+ [System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Localization {
+
+ private static System.Resources.ResourceManager resourceMan;
+
+ private static System.Globalization.CultureInfo resourceCulture;
+
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Localization() {
+ }
+
+ [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static System.Resources.ResourceManager ResourceManager {
+ get {
+ if (object.Equals(null, resourceMan)) {
+ System.Resources.ResourceManager temp = new System.Resources.ResourceManager("Aaru.Filesystems.Localization.Localization", typeof(Localization).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+
+ internal static string Boot_Block {
+ get {
+ return ResourceManager.GetString("Boot_Block", resourceCulture);
+ }
+ }
+
+ internal static string Boot_block_is_in_new_format {
+ get {
+ return ResourceManager.GetString("Boot_block_is_in_new_format", resourceCulture);
+ }
+ }
+
+ internal static string Boot_block_should_be_executed {
+ get {
+ return ResourceManager.GetString("Boot_block_should_be_executed", resourceCulture);
+ }
+ }
+
+ internal static string System_heap_will_be_extended_by_0_bytes_and_a_1_fraction_of_the_available_RAM {
+ get {
+ return ResourceManager.GetString("System_heap_will_be_extended_by_0_bytes_and_a_1_fraction_of_the_available_RAM", resourceCulture);
+ }
+ }
+
+ internal static string Allocate_secondary_sound_buffer_at_boot {
+ get {
+ return ResourceManager.GetString("Allocate_secondary_sound_buffer_at_boot", resourceCulture);
+ }
+ }
+
+ internal static string Allocate_secondary_sound_and_video_buffers_at_boot {
+ get {
+ return ResourceManager.GetString("Allocate_secondary_sound_and_video_buffers_at_boot", resourceCulture);
+ }
+ }
+
+ internal static string System_filename_0 {
+ get {
+ return ResourceManager.GetString("System_filename_0", resourceCulture);
+ }
+ }
+
+ internal static string Finder_filename_0 {
+ get {
+ return ResourceManager.GetString("Finder_filename_0", resourceCulture);
+ }
+ }
+
+ internal static string Debugger_filename_0 {
+ get {
+ return ResourceManager.GetString("Debugger_filename_0", resourceCulture);
+ }
+ }
+
+ internal static string Disassembler_filename_0 {
+ get {
+ return ResourceManager.GetString("Disassembler_filename_0", resourceCulture);
+ }
+ }
+
+ internal static string Startup_screen_filename_0 {
+ get {
+ return ResourceManager.GetString("Startup_screen_filename_0", resourceCulture);
+ }
+ }
+
+ internal static string First_program_to_execute_at_boot_0 {
+ get {
+ return ResourceManager.GetString("First_program_to_execute_at_boot_0", resourceCulture);
+ }
+ }
+
+ internal static string Clipboard_filename_0 {
+ get {
+ return ResourceManager.GetString("Clipboard_filename_0", resourceCulture);
+ }
+ }
+
+ internal static string Maximum_opened_files_0 {
+ get {
+ return ResourceManager.GetString("Maximum_opened_files_0", resourceCulture);
+ }
+ }
+
+ internal static string Event_queue_size_0 {
+ get {
+ return ResourceManager.GetString("Event_queue_size_0", resourceCulture);
+ }
+ }
+
+ internal static string Heap_size_with_128KiB_of_RAM_0_bytes {
+ get {
+ return ResourceManager.GetString("Heap_size_with_128KiB_of_RAM_0_bytes", resourceCulture);
+ }
+ }
+
+ internal static string Heap_size_with_256KiB_of_RAM_0_bytes {
+ get {
+ return ResourceManager.GetString("Heap_size_with_256KiB_of_RAM_0_bytes", resourceCulture);
+ }
+ }
+
+ internal static string Heap_size_with_512KiB_of_RAM_or_more_0_bytes {
+ get {
+ return ResourceManager.GetString("Heap_size_with_512KiB_of_RAM_or_more_0_bytes", resourceCulture);
+ }
+ }
+
+ internal static string AppleDOS_Name {
+ get {
+ return ResourceManager.GetString("AppleDOS_Name", resourceCulture);
+ }
+ }
+
+ internal static string Catalog_starts_at_sector_0_of_track_1 {
+ get {
+ return ResourceManager.GetString("Catalog_starts_at_sector_0_of_track_1", resourceCulture);
+ }
+ }
+
+ internal static string File_system_initialized_by_DOS_release_0 {
+ get {
+ return ResourceManager.GetString("File_system_initialized_by_DOS_release_0", resourceCulture);
+ }
+ }
+
+ internal static string Disk_volume_number_0 {
+ get {
+ return ResourceManager.GetString("Disk_volume_number_0", resourceCulture);
+ }
+ }
+
+ internal static string Sectors_allocated_at_most_in_track_0 {
+ get {
+ return ResourceManager.GetString("Sectors_allocated_at_most_in_track_0", resourceCulture);
+ }
+ }
+
+ internal static string _0_tracks_in_volume {
+ get {
+ return ResourceManager.GetString("_0_tracks_in_volume", resourceCulture);
+ }
+ }
+
+ internal static string _0_sectors_per_track {
+ get {
+ return ResourceManager.GetString("_0_sectors_per_track", resourceCulture);
+ }
+ }
+
+ internal static string _0_bytes_per_sector {
+ get {
+ return ResourceManager.GetString("_0_bytes_per_sector", resourceCulture);
+ }
+ }
+
+ internal static string Track_allocation_is_forward {
+ get {
+ return ResourceManager.GetString("Track_allocation_is_forward", resourceCulture);
+ }
+ }
+
+ internal static string Track_allocation_is_reverse {
+ get {
+ return ResourceManager.GetString("Track_allocation_is_reverse", resourceCulture);
+ }
+ }
+
+ internal static string Incorrect_device_size {
+ get {
+ return ResourceManager.GetString("Incorrect_device_size", resourceCulture);
+ }
+ }
+
+ internal static string Partitions_are_not_supported {
+ get {
+ return ResourceManager.GetString("Partitions_are_not_supported", resourceCulture);
+ }
+ }
+
+ internal static string Incorrect_sector_size {
+ get {
+ return ResourceManager.GetString("Incorrect_sector_size", resourceCulture);
+ }
+ }
+
+ internal static string Unable_to_read_catalog {
+ get {
+ return ResourceManager.GetString("Unable_to_read_catalog", resourceCulture);
+ }
+ }
+
+ internal static string Unable_cache_all_files {
+ get {
+ return ResourceManager.GetString("Unable_cache_all_files", resourceCulture);
+ }
+ }
+
+ internal static string Name_Apple_Hierarchical_File_System {
+ get {
+ return ResourceManager.GetString("Name_Apple_Hierarchical_File_System", resourceCulture);
+ }
+ }
+
+ internal static string HFS_uses_512_bytes_sector_while_device_uses_2048_bytes_sector {
+ get {
+ return ResourceManager.GetString("HFS_uses_512_bytes_sector_while_device_uses_2048_bytes_sector", resourceCulture);
+ }
+ }
+
+ internal static string Master_Directory_Block {
+ get {
+ return ResourceManager.GetString("Master_Directory_Block", resourceCulture);
+ }
+ }
+
+ internal static string Creation_date_0 {
+ get {
+ return ResourceManager.GetString("Creation_date_0", resourceCulture);
+ }
+ }
+
+ internal static string Last_modification_date_0 {
+ get {
+ return ResourceManager.GetString("Last_modification_date_0", resourceCulture);
+ }
+ }
+
+ internal static string Last_backup_date_0 {
+ get {
+ return ResourceManager.GetString("Last_backup_date_0", resourceCulture);
+ }
+ }
+
+ internal static string Backup_sequence_number_0 {
+ get {
+ return ResourceManager.GetString("Backup_sequence_number_0", resourceCulture);
+ }
+ }
+
+ internal static string Volume_has_never_been_backed_up {
+ get {
+ return ResourceManager.GetString("Volume_has_never_been_backed_up", resourceCulture);
+ }
+ }
+
+ internal static string Volume_is_locked_by_hardware {
+ get {
+ return ResourceManager.GetString("Volume_is_locked_by_hardware", resourceCulture);
+ }
+ }
+
+ internal static string Volume_was_unmonted {
+ get {
+ return ResourceManager.GetString("Volume_was_unmonted", resourceCulture);
+ }
+ }
+
+ internal static string Volume_is_mounted {
+ get {
+ return ResourceManager.GetString("Volume_is_mounted", resourceCulture);
+ }
+ }
+
+ internal static string Volume_has_spared_bad_blocks {
+ get {
+ return ResourceManager.GetString("Volume_has_spared_bad_blocks", resourceCulture);
+ }
+ }
+
+ internal static string Volume_does_not_need_cache {
+ get {
+ return ResourceManager.GetString("Volume_does_not_need_cache", resourceCulture);
+ }
+ }
+
+ internal static string Boot_volume_is_inconsistent {
+ get {
+ return ResourceManager.GetString("Boot_volume_is_inconsistent", resourceCulture);
+ }
+ }
+
+ internal static string There_are_reused_CNIDs {
+ get {
+ return ResourceManager.GetString("There_are_reused_CNIDs", resourceCulture);
+ }
+ }
+
+ internal static string Volume_is_journaled {
+ get {
+ return ResourceManager.GetString("Volume_is_journaled", resourceCulture);
+ }
+ }
+
+ internal static string Volume_is_seriously_inconsistent {
+ get {
+ return ResourceManager.GetString("Volume_is_seriously_inconsistent", resourceCulture);
+ }
+ }
+
+ internal static string Volume_is_locked_by_software {
+ get {
+ return ResourceManager.GetString("Volume_is_locked_by_software", resourceCulture);
+ }
+ }
+
+ internal static string _0_files_on_root_directory {
+ get {
+ return ResourceManager.GetString("_0_files_on_root_directory", resourceCulture);
+ }
+ }
+
+ internal static string _0_directories_on_root_directory {
+ get {
+ return ResourceManager.GetString("_0_directories_on_root_directory", resourceCulture);
+ }
+ }
+
+ internal static string _0_directories_on_volume {
+ get {
+ return ResourceManager.GetString("_0_directories_on_volume", resourceCulture);
+ }
+ }
+
+ internal static string Volume_write_count_0 {
+ get {
+ return ResourceManager.GetString("Volume_write_count_0", resourceCulture);
+ }
+ }
+
+ internal static string Volume_bitmap_starting_sector_in_512_bytes_0 {
+ get {
+ return ResourceManager.GetString("Volume_bitmap_starting_sector_in_512_bytes_0", resourceCulture);
+ }
+ }
+
+ internal static string Next_allocation_block_0 {
+ get {
+ return ResourceManager.GetString("Next_allocation_block_0", resourceCulture);
+ }
+ }
+
+ internal static string _0_volume_allocation_blocks {
+ get {
+ return ResourceManager.GetString("_0_volume_allocation_blocks", resourceCulture);
+ }
+ }
+
+ internal static string _0_bytes_per_allocation_block {
+ get {
+ return ResourceManager.GetString("_0_bytes_per_allocation_block", resourceCulture);
+ }
+ }
+
+ internal static string _0_bytes_to_allocate_when_extending_a_file {
+ get {
+ return ResourceManager.GetString("_0_bytes_to_allocate_when_extending_a_file", resourceCulture);
+ }
+ }
+
+ internal static string _0_bytes_to_allocate_when_extending_a_Extents_B_Tree {
+ get {
+ return ResourceManager.GetString("_0_bytes_to_allocate_when_extending_a_Extents_B_Tree", resourceCulture);
+ }
+ }
+
+ internal static string _0_bytes_to_allocate_when_extending_a_Catalog_B_Tree {
+ get {
+ return ResourceManager.GetString("_0_bytes_to_allocate_when_extending_a_Catalog_B_Tree", resourceCulture);
+ }
+ }
+
+ internal static string Sector_of_first_allocation_block_0 {
+ get {
+ return ResourceManager.GetString("Sector_of_first_allocation_block_0", resourceCulture);
+ }
+ }
+
+ internal static string Next_unused_CNID_0 {
+ get {
+ return ResourceManager.GetString("Next_unused_CNID_0", resourceCulture);
+ }
+ }
+
+ internal static string _0_unused_allocation_blocks {
+ get {
+ return ResourceManager.GetString("_0_unused_allocation_blocks", resourceCulture);
+ }
+ }
+
+ internal static string _0_bytes_in_the_Extents_B_Tree {
+ get {
+ return ResourceManager.GetString("_0_bytes_in_the_Extents_B_Tree", resourceCulture);
+ }
+ }
+
+ internal static string _0_bytes_in_the_Catalog_B_Tree {
+ get {
+ return ResourceManager.GetString("_0_bytes_in_the_Catalog_B_Tree", resourceCulture);
+ }
+ }
+
+ internal static string Volume_name_0 {
+ get {
+ return ResourceManager.GetString("Volume_name_0", resourceCulture);
+ }
+ }
+
+ internal static string Finder_info {
+ get {
+ return ResourceManager.GetString("Finder_info", resourceCulture);
+ }
+ }
+
+ internal static string CNID_of_bootable_system_directory_0 {
+ get {
+ return ResourceManager.GetString("CNID_of_bootable_system_directory_0", resourceCulture);
+ }
+ }
+
+ internal static string CNID_of_first_run_application_directory_0 {
+ get {
+ return ResourceManager.GetString("CNID_of_first_run_application_directory_0", resourceCulture);
+ }
+ }
+
+ internal static string CNID_of_previously_opened_directory_0 {
+ get {
+ return ResourceManager.GetString("CNID_of_previously_opened_directory_0", resourceCulture);
+ }
+ }
+
+ internal static string CNID_of_bootable_Mac_OS_8_or_9_directory_0 {
+ get {
+ return ResourceManager.GetString("CNID_of_bootable_Mac_OS_8_or_9_directory_0", resourceCulture);
+ }
+ }
+
+ internal static string CNID_of_bootable_Mac_OS_X_directory_0 {
+ get {
+ return ResourceManager.GetString("CNID_of_bootable_Mac_OS_X_directory_0", resourceCulture);
+ }
+ }
+
+ internal static string Mac_OS_X_Volume_ID_0_1 {
+ get {
+ return ResourceManager.GetString("Mac_OS_X_Volume_ID_0_1", resourceCulture);
+ }
+ }
+
+ internal static string Volume_wraps_a_HFS_Plus_volume {
+ get {
+ return ResourceManager.GetString("Volume_wraps_a_HFS_Plus_volume", resourceCulture);
+ }
+ }
+
+ internal static string Starting_block_of_the_HFS_Plus_volume_0 {
+ get {
+ return ResourceManager.GetString("Starting_block_of_the_HFS_Plus_volume_0", resourceCulture);
+ }
+ }
+
+ internal static string Allocations_blocks_of_the_HFS_Plus_volume_0 {
+ get {
+ return ResourceManager.GetString("Allocations_blocks_of_the_HFS_Plus_volume_0", resourceCulture);
+ }
+ }
+
+ internal static string _0_blocks_in_volume_cache {
+ get {
+ return ResourceManager.GetString("_0_blocks_in_volume_cache", resourceCulture);
+ }
+ }
+
+ internal static string _0_blocks_in_volume_bitmap_cache {
+ get {
+ return ResourceManager.GetString("_0_blocks_in_volume_bitmap_cache", resourceCulture);
+ }
+ }
+
+ internal static string _0_blocks_in_volume_common_cache {
+ get {
+ return ResourceManager.GetString("_0_blocks_in_volume_common_cache", resourceCulture);
+ }
+ }
+
+ internal static string Volume_is_bootable {
+ get {
+ return ResourceManager.GetString("Volume_is_bootable", resourceCulture);
+ }
+ }
+
+ internal static string Volume_is_not_bootable {
+ get {
+ return ResourceManager.GetString("Volume_is_not_bootable", resourceCulture);
+ }
+ }
+
+ internal static string File_truncated_at_block_0 {
+ get {
+ return ResourceManager.GetString("File_truncated_at_block_0", resourceCulture);
+ }
+ }
+
+ internal static string AppleMFS_Name {
+ get {
+ return ResourceManager.GetString("AppleMFS_Name", resourceCulture);
+ }
+ }
+
+ internal static string First_directory_sector_0 {
+ get {
+ return ResourceManager.GetString("First_directory_sector_0", resourceCulture);
+ }
+ }
+
+ internal static string _0_sectors_in_directory {
+ get {
+ return ResourceManager.GetString("_0_sectors_in_directory", resourceCulture);
+ }
+ }
+
+ internal static string Size_of_allocation_blocks_0_bytes {
+ get {
+ return ResourceManager.GetString("Size_of_allocation_blocks_0_bytes", resourceCulture);
+ }
+ }
+
+ internal static string _0_bytes_to_allocate {
+ get {
+ return ResourceManager.GetString("_0_bytes_to_allocate", resourceCulture);
+ }
+ }
+
+ internal static string First_allocation_block_number_two_starts_in_sector_0 {
+ get {
+ return ResourceManager.GetString("First_allocation_block_number_two_starts_in_sector_0", resourceCulture);
+ }
+ }
+
+ internal static string Next_unused_file_number_0 {
+ get {
+ return ResourceManager.GetString("Next_unused_file_number_0", resourceCulture);
+ }
+ }
+
+ internal static string CPM_Name {
+ get {
+ return ResourceManager.GetString("CPM_Name", resourceCulture);
+ }
+ }
+
+ internal static string Found_Amstrad_superblock {
+ get {
+ return ResourceManager.GetString("Found_Amstrad_superblock", resourceCulture);
+ }
+ }
+
+ internal static string Found_CPM_86_hard_disk_superblock {
+ get {
+ return ResourceManager.GetString("Found_CPM_86_hard_disk_superblock", resourceCulture);
+ }
+ }
+
+ internal static string Found_CPM_86_floppy_identifier {
+ get {
+ return ResourceManager.GetString("Found_CPM_86_floppy_identifier", resourceCulture);
+ }
+ }
+
+ internal static string First_directory_block_seems_correct {
+ get {
+ return ResourceManager.GetString("First_directory_block_seems_correct", resourceCulture);
+ }
+ }
+
+ internal static string Trying_to_load_definitions {
+ get {
+ return ResourceManager.GetString("Trying_to_load_definitions", resourceCulture);
+ }
+ }
+
+ internal static string Trying_all_known_definitions {
+ get {
+ return ResourceManager.GetString("Trying_all_known_definitions", resourceCulture);
+ }
+ }
+
+ internal static string Trying_definition_0 {
+ get {
+ return ResourceManager.GetString("Trying_definition_0", resourceCulture);
+ }
+ }
+
+ internal static string Dont_know_how_to_handle_COLUMBIA_ordering_not_proceeding_with_this_definition {
+ get {
+ return ResourceManager.GetString("Dont_know_how_to_handle_COLUMBIA_ordering_not_proceeding_with_this_definition", resourceCulture);
+ }
+ }
+
+ internal static string Don_know_how_to_handle_EAGLE_ordering_not_proceeding_with_this_definition {
+ get {
+ return ResourceManager.GetString("Don_know_how_to_handle_EAGLE_ordering_not_proceeding_with_this_definition", resourceCulture);
+ }
+ }
+
+ internal static string Unknown_order_type_0_not_proceeding_with_this_definition {
+ get {
+ return ResourceManager.GetString("Unknown_order_type_0_not_proceeding_with_this_definition", resourceCulture);
+ }
+ }
+
+ internal static string Definition_contains_EVEN_ODD_field_with_unknown_meaning_detection_may_be_wrong {
+ get {
+ return ResourceManager.GetString("Definition_contains_EVEN_ODD_field_with_unknown_meaning_detection_may_be_wrong", resourceCulture);
+ }
+ }
+
+ internal static string Definition_0_has_a_correct_directory {
+ get {
+ return ResourceManager.GetString("Definition_0_has_a_correct_directory", resourceCulture);
+ }
+ }
+
+ internal static string Identified_as_0 {
+ get {
+ return ResourceManager.GetString("Identified_as_0", resourceCulture);
+ }
+ }
+
+ internal static string Volume_block_is_0_bytes {
+ get {
+ return ResourceManager.GetString("Volume_block_is_0_bytes", resourceCulture);
+ }
+ }
+
+ internal static string Volume_contains_0_blocks_1_bytes {
+ get {
+ return ResourceManager.GetString("Volume_contains_0_blocks_1_bytes", resourceCulture);
+ }
+ }
+
+ internal static string CPM_filesystem {
+ get {
+ return ResourceManager.GetString("CPM_filesystem", resourceCulture);
+ }
+ }
+
+ internal static string Volume_contains_0_directory_entries {
+ get {
+ return ResourceManager.GetString("Volume_contains_0_directory_entries", resourceCulture);
+ }
+ }
+
+ internal static string Volume_reserves_0_sectors_for_system {
+ get {
+ return ResourceManager.GetString("Volume_reserves_0_sectors_for_system", resourceCulture);
+ }
+ }
+
+ internal static string Volume_reserves_1_tracks_0_sectors_for_system {
+ get {
+ return ResourceManager.GetString("Volume_reserves_1_tracks_0_sectors_for_system", resourceCulture);
+ }
+ }
+
+ internal static string Side_zero_uses_0_one_software_interleaving {
+ get {
+ return ResourceManager.GetString("Side_zero_uses_0_one_software_interleaving", resourceCulture);
+ }
+ }
+
+ internal static string Side_one_uses_0_one_software_interleaving {
+ get {
+ return ResourceManager.GetString("Side_one_uses_0_one_software_interleaving", resourceCulture);
+ }
+ }
+
+ internal static string Head_changes_after_each_whole_track {
+ get {
+ return ResourceManager.GetString("Head_changes_after_each_whole_track", resourceCulture);
+ }
+ }
+
+ internal static string Head_changes_after_whole_side {
+ get {
+ return ResourceManager.GetString("Head_changes_after_whole_side", resourceCulture);
+ }
+ }
+
+ internal static string Unknown_how_0_side_ordering_works {
+ get {
+ return ResourceManager.GetString("Unknown_how_0_side_ordering_works", resourceCulture);
+ }
+ }
+
+ internal static string Device_uses_0_one_hardware_interleaving {
+ get {
+ return ResourceManager.GetString("Device_uses_0_one_hardware_interleaving", resourceCulture);
+ }
+ }
+
+ internal static string Volume_label_0 {
+ get {
+ return ResourceManager.GetString("Volume_label_0", resourceCulture);
+ }
+ }
+
+ internal static string Volume_uses_standard_CPM_timestamps {
+ get {
+ return ResourceManager.GetString("Volume_uses_standard_CPM_timestamps", resourceCulture);
+ }
+ }
+
+ internal static string Volume_uses_third_party_timestamps {
+ get {
+ return ResourceManager.GetString("Volume_uses_third_party_timestamps", resourceCulture);
+ }
+ }
+
+ internal static string Volume_created_on_0 {
+ get {
+ return ResourceManager.GetString("Volume_created_on_0", resourceCulture);
+ }
+ }
+
+ internal static string Volume_updated_on_0 {
+ get {
+ return ResourceManager.GetString("Volume_updated_on_0", resourceCulture);
+ }
+ }
+
+ internal static string CYLINDERS_ordering_not_yet_implemented {
+ get {
+ return ResourceManager.GetString("CYLINDERS_ordering_not_yet_implemented", resourceCulture);
+ }
+ }
+
+ internal static string Deinterleaving_whole_volume {
+ get {
+ return ResourceManager.GetString("Deinterleaving_whole_volume", resourceCulture);
+ }
+ }
+
+ internal static string Creating_allocation_blocks {
+ get {
+ return ResourceManager.GetString("Creating_allocation_blocks", resourceCulture);
+ }
+ }
+
+ internal static string Reading_directory {
+ get {
+ return ResourceManager.GetString("Reading_directory", resourceCulture);
+ }
+ }
+
+ internal static string Traversing_directory {
+ get {
+ return ResourceManager.GetString("Traversing_directory", resourceCulture);
+ }
+ }
+
+ internal static string Using_Human68k_BPB {
+ get {
+ return ResourceManager.GetString("Using_Human68k_BPB", resourceCulture);
+ }
+ }
+
+ internal static string Using_FAT32_BPB {
+ get {
+ return ResourceManager.GetString("Using_FAT32_BPB", resourceCulture);
+ }
+ }
+
+ internal static string Using_short_FAT32_BPB {
+ get {
+ return ResourceManager.GetString("Using_short_FAT32_BPB", resourceCulture);
+ }
+ }
+
+ internal static string Using_MSX_BPB {
+ get {
+ return ResourceManager.GetString("Using_MSX_BPB", resourceCulture);
+ }
+ }
+
+ internal static string Using_Apricot_BPB {
+ get {
+ return ResourceManager.GetString("Using_Apricot_BPB", resourceCulture);
+ }
+ }
+
+ internal static string Using_DOS_4_0_BPB {
+ get {
+ return ResourceManager.GetString("Using_DOS_4_0_BPB", resourceCulture);
+ }
+ }
+
+ internal static string Using_DOS_3_4_BPB {
+ get {
+ return ResourceManager.GetString("Using_DOS_3_4_BPB", resourceCulture);
+ }
+ }
+
+ internal static string Using_DOS_3_3_BPB {
+ get {
+ return ResourceManager.GetString("Using_DOS_3_3_BPB", resourceCulture);
+ }
+ }
+
+ internal static string Using_Atari_BPB {
+ get {
+ return ResourceManager.GetString("Using_Atari_BPB", resourceCulture);
+ }
+ }
+
+ internal static string Using_DOS_3_2_BPB {
+ get {
+ return ResourceManager.GetString("Using_DOS_3_2_BPB", resourceCulture);
+ }
+ }
+
+ internal static string Using_DOS_3_0_BPB {
+ get {
+ return ResourceManager.GetString("Using_DOS_3_0_BPB", resourceCulture);
+ }
+ }
+
+ internal static string Using_DOS_2_0_BPB {
+ get {
+ return ResourceManager.GetString("Using_DOS_2_0_BPB", resourceCulture);
+ }
+ }
+
+ internal static string Using_DEC_Rainbow_hardcoded_BPB {
+ get {
+ return ResourceManager.GetString("Using_DEC_Rainbow_hardcoded_BPB", resourceCulture);
+ }
+ }
+
+ internal static string Using_hardcoded_BPB {
+ get {
+ return ResourceManager.GetString("Using_hardcoded_BPB", resourceCulture);
+ }
+ }
+
+ internal static string Using_hardcoded_BPB_for_5_25_SSDD {
+ get {
+ return ResourceManager.GetString("Using_hardcoded_BPB_for_5_25_SSDD", resourceCulture);
+ }
+ }
+
+ internal static string Using_hardcoded_BPB_for_5_25_DSDD {
+ get {
+ return ResourceManager.GetString("Using_hardcoded_BPB_for_5_25_DSDD", resourceCulture);
+ }
+ }
+
+ internal static string Found_empty_filename_in_0 {
+ get {
+ return ResourceManager.GetString("Found_empty_filename_in_0", resourceCulture);
+ }
+ }
+
+ internal static string FAT_Name {
+ get {
+ return ResourceManager.GetString("FAT_Name", resourceCulture);
+ }
+ }
+
+ internal static string DOS_8_3_all_uppercase {
+ get {
+ return ResourceManager.GetString("DOS_8_3_all_uppercase", resourceCulture);
+ }
+ }
+
+ internal static string Windows_NT_8_3_mixed_case {
+ get {
+ return ResourceManager.GetString("Windows_NT_8_3_mixed_case", resourceCulture);
+ }
+ }
+
+ internal static string OS2_LONGNAME_extended_attribute {
+ get {
+ return ResourceManager.GetString("OS2_LONGNAME_extended_attribute", resourceCulture);
+ }
+ }
+
+ internal static string Use_LFN_when_available_with_fallback_to_LONGNAME_default {
+ get {
+ return ResourceManager.GetString("Use_LFN_when_available_with_fallback_to_LONGNAME_default", resourceCulture);
+ }
+ }
+
+ internal static string Long_file_names {
+ get {
+ return ResourceManager.GetString("Long_file_names", resourceCulture);
+ }
+ }
+
+ internal static string Second_fat_starts_at_0 {
+ get {
+ return ResourceManager.GetString("Second_fat_starts_at_0", resourceCulture);
+ }
+ }
+
+ internal static string FAT_Plus {
+ get {
+ return ResourceManager.GetString("FAT_Plus", resourceCulture);
+ }
+ }
+
+ internal static string Microsoft_FAT32 {
+ get {
+ return ResourceManager.GetString("Microsoft_FAT32", resourceCulture);
+ }
+ }
+
+ internal static string Volume_has_been_modified_by_Windows_9x_Me_Volume_Tracker {
+ get {
+ return ResourceManager.GetString("Volume_has_been_modified_by_Windows_9x_Me_Volume_Tracker", resourceCulture);
+ }
+ }
+
+ internal static string _0_sectors_per_cluster {
+ get {
+ return ResourceManager.GetString("_0_sectors_per_cluster", resourceCulture);
+ }
+ }
+
+ internal static string _0_sectors_reserved_between_BPB_and_FAT {
+ get {
+ return ResourceManager.GetString("_0_sectors_reserved_between_BPB_and_FAT", resourceCulture);
+ }
+ }
+
+ internal static string _0_sectors_on_volume_1_bytes {
+ get {
+ return ResourceManager.GetString("_0_sectors_on_volume_1_bytes", resourceCulture);
+ }
+ }
+
+ internal static string _0_clusters_on_volume {
+ get {
+ return ResourceManager.GetString("_0_clusters_on_volume", resourceCulture);
+ }
+ }
+
+ internal static string Media_descriptor_0 {
+ get {
+ return ResourceManager.GetString("Media_descriptor_0", resourceCulture);
+ }
+ }
+
+ internal static string _0_sectors_per_FAT {
+ get {
+ return ResourceManager.GetString("_0_sectors_per_FAT", resourceCulture);
+ }
+ }
+
+ internal static string _0_heads {
+ get {
+ return ResourceManager.GetString("_0_heads", resourceCulture);
+ }
+ }
+
+ internal static string _0_hidden_sectors_before_BPB {
+ get {
+ return ResourceManager.GetString("_0_hidden_sectors_before_BPB", resourceCulture);
+ }
+ }
+
+ internal static string Cluster_of_root_directory_0 {
+ get {
+ return ResourceManager.GetString("Cluster_of_root_directory_0", resourceCulture);
+ }
+ }
+
+ internal static string Sector_of_FSINFO_structure_0 {
+ get {
+ return ResourceManager.GetString("Sector_of_FSINFO_structure_0", resourceCulture);
+ }
+ }
+
+ internal static string Sector_of_backup_FAT32_parameter_block_0 {
+ get {
+ return ResourceManager.GetString("Sector_of_backup_FAT32_parameter_block_0", resourceCulture);
+ }
+ }
+
+ internal static string Drive_number_0 {
+ get {
+ return ResourceManager.GetString("Drive_number_0", resourceCulture);
+ }
+ }
+
+ internal static string Volume_should_be_checked_on_next_mount {
+ get {
+ return ResourceManager.GetString("Volume_should_be_checked_on_next_mount", resourceCulture);
+ }
+ }
+
+ internal static string Disk_surface_should_be_on_next_mount {
+ get {
+ return ResourceManager.GetString("Disk_surface_should_be_on_next_mount", resourceCulture);
+ }
+ }
+
+ internal static string FATs_are_out_of_sync_FAT_0_is_in_use {
+ get {
+ return ResourceManager.GetString("FATs_are_out_of_sync_FAT_0_is_in_use", resourceCulture);
+ }
+ }
+
+ internal static string All_copies_of_FAT_are_the_same {
+ get {
+ return ResourceManager.GetString("All_copies_of_FAT_are_the_same", resourceCulture);
+ }
+ }
+
+ internal static string DR_DOS_will_boot_this_FAT32_using_CHS {
+ get {
+ return ResourceManager.GetString("DR_DOS_will_boot_this_FAT32_using_CHS", resourceCulture);
+ }
+ }
+
+ internal static string DR_DOS_will_boot_this_FAT32_using_LBA {
+ get {
+ return ResourceManager.GetString("DR_DOS_will_boot_this_FAT32_using_LBA", resourceCulture);
+ }
+ }
+
+ internal static string Filesystem_type_0 {
+ get {
+ return ResourceManager.GetString("Filesystem_type_0", resourceCulture);
+ }
+ }
+
+ internal static string _0_free_clusters {
+ get {
+ return ResourceManager.GetString("_0_free_clusters", resourceCulture);
+ }
+ }
+
+ internal static string Last_allocated_cluster_0 {
+ get {
+ return ResourceManager.GetString("Last_allocated_cluster_0", resourceCulture);
+ }
+ }
+
+ internal static string cmdload_will_be_loaded_with_value_0 {
+ get {
+ return ResourceManager.GetString("cmdload_will_be_loaded_with_value_0", resourceCulture);
+ }
+ }
+
+ internal static string Boot_program_will_be_loaded_at_address_0 {
+ get {
+ return ResourceManager.GetString("Boot_program_will_be_loaded_at_address_0", resourceCulture);
+ }
+ }
+
+ internal static string FAT_and_directory_will_be_cached_at_address_0 {
+ get {
+ return ResourceManager.GetString("FAT_and_directory_will_be_cached_at_address_0", resourceCulture);
+ }
+ }
+
+ internal static string Boot_program_resides_in_file_0 {
+ get {
+ return ResourceManager.GetString("Boot_program_resides_in_file_0", resourceCulture);
+ }
+ }
+
+ internal static string Boot_program_starts_in_sector_0_and_is_1_sectors_long_2_bytes {
+ get {
+ return ResourceManager.GetString("Boot_program_starts_in_sector_0_and_is_1_sectors_long_2_bytes", resourceCulture);
+ }
+ }
+
+ internal static string Atari_FAT12 {
+ get {
+ return ResourceManager.GetString("Atari_FAT12", resourceCulture);
+ }
+ }
+
+ internal static string Apricot_FAT12 {
+ get {
+ return ResourceManager.GetString("Apricot_FAT12", resourceCulture);
+ }
+ }
+
+ internal static string Human68k_FAT12 {
+ get {
+ return ResourceManager.GetString("Human68k_FAT12", resourceCulture);
+ }
+ }
+
+ internal static string Microsoft_FAT12 {
+ get {
+ return ResourceManager.GetString("Microsoft_FAT12", resourceCulture);
+ }
+ }
+
+ internal static string Atari_FAT16 {
+ get {
+ return ResourceManager.GetString("Atari_FAT16", resourceCulture);
+ }
+ }
+
+ internal static string Human68k_FAT16 {
+ get {
+ return ResourceManager.GetString("Human68k_FAT16", resourceCulture);
+ }
+ }
+
+ internal static string Microsoft_FAT16 {
+ get {
+ return ResourceManager.GetString("Microsoft_FAT16", resourceCulture);
+ }
+ }
+
+ internal static string _0_FATs {
+ get {
+ return ResourceManager.GetString("_0_FATs", resourceCulture);
+ }
+ }
+
+ internal static string _0_entries_on_root_directory {
+ get {
+ return ResourceManager.GetString("_0_entries_on_root_directory", resourceCulture);
+ }
+ }
+
+ internal static string Volume_Serial_Number_0 {
+ get {
+ return ResourceManager.GetString("Volume_Serial_Number_0", resourceCulture);
+ }
+ }
+
+ internal static string Volume_last_modified_on_0 {
+ get {
+ return ResourceManager.GetString("Volume_last_modified_on_0", resourceCulture);
+ }
+ }
+
+ internal static string Volume_last_accessed_on_0_d {
+ get {
+ return ResourceManager.GetString("Volume_last_accessed_on_0_d", resourceCulture);
+ }
+ }
+
+ internal static string Boot_code_SHA1_0 {
+ get {
+ return ResourceManager.GetString("Boot_code_SHA1_0", resourceCulture);
+ }
+ }
+
+ internal static string Unknown_boot_code {
+ get {
+ return ResourceManager.GetString("Unknown_boot_code", resourceCulture);
+ }
+ }
+
+ internal static string Boot_code_corresponds_to_0 {
+ get {
+ return ResourceManager.GetString("Boot_code_corresponds_to_0", resourceCulture);
+ }
+ }
+
+ internal static string Reading_BPB {
+ get {
+ return ResourceManager.GetString("Reading_BPB", resourceCulture);
+ }
+ }
+
+ internal static string Found_empty_filename_in_root_directory {
+ get {
+ return ResourceManager.GetString("Found_empty_filename_in_root_directory", resourceCulture);
+ }
+ }
+
+ internal static string Reading_FAT12 {
+ get {
+ return ResourceManager.GetString("Reading_FAT12", resourceCulture);
+ }
+ }
+
+ internal static string Reading_FAT16 {
+ get {
+ return ResourceManager.GetString("Reading_FAT16", resourceCulture);
+ }
+ }
+
+ internal static string Casting_FAT {
+ get {
+ return ResourceManager.GetString("Casting_FAT", resourceCulture);
+ }
+ }
+
+ internal static string XboxFatPlugin_Name {
+ get {
+ return ResourceManager.GetString("XboxFatPlugin_Name", resourceCulture);
+ }
+ }
+
+ internal static string FATX_filesystem {
+ get {
+ return ResourceManager.GetString("FATX_filesystem", resourceCulture);
+ }
+ }
+
+ internal static string _0_logical_sectors_1_bytes_per_physical_sector {
+ get {
+ return ResourceManager.GetString("_0_logical_sectors_1_bytes_per_physical_sector", resourceCulture);
+ }
+ }
+
+ internal static string _0_sectors_1_bytes_per_cluster {
+ get {
+ return ResourceManager.GetString("_0_sectors_1_bytes_per_cluster", resourceCulture);
+ }
+ }
+
+ internal static string Root_directory_starts_on_cluster_0 {
+ get {
+ return ResourceManager.GetString("Root_directory_starts_on_cluster_0", resourceCulture);
+ }
+ }
+
+ internal static string Volume_serial_0_X8 {
+ get {
+ return ResourceManager.GetString("Volume_serial_0_X8", resourceCulture);
+ }
+ }
+
+ internal static string Reading_superblock {
+ get {
+ return ResourceManager.GetString("Reading_superblock", resourceCulture);
+ }
+ }
+
+ internal static string Filesystem_is_little_endian {
+ get {
+ return ResourceManager.GetString("Filesystem_is_little_endian", resourceCulture);
+ }
+ }
+
+ internal static string Filesystem_is_big_endian {
+ get {
+ return ResourceManager.GetString("Filesystem_is_big_endian", resourceCulture);
+ }
+ }
+
+ internal static string Reading_FAT32 {
+ get {
+ return ResourceManager.GetString("Reading_FAT32", resourceCulture);
+ }
+ }
+
+ internal static string FAT_is_0_sectors {
+ get {
+ return ResourceManager.GetString("FAT_is_0_sectors", resourceCulture);
+ }
+ }
+
+ internal static string Reading_root_directory {
+ get {
+ return ResourceManager.GetString("Reading_root_directory", resourceCulture);
+ }
+ }
+
+ internal static string HPOFS_Name {
+ get {
+ return ResourceManager.GetString("HPOFS_Name", resourceCulture);
+ }
+ }
+
+ internal static string OEM_name_0 {
+ get {
+ return ResourceManager.GetString("OEM_name_0", resourceCulture);
+ }
+ }
+
+ internal static string _0_sectors_hidden_before_BPB {
+ get {
+ return ResourceManager.GetString("_0_sectors_hidden_before_BPB", resourceCulture);
+ }
+ }
+
+ internal static string Serial_number_0 {
+ get {
+ return ResourceManager.GetString("Serial_number_0", resourceCulture);
+ }
+ }
+
+ internal static string Volume_comment_0 {
+ get {
+ return ResourceManager.GetString("Volume_comment_0", resourceCulture);
+ }
+ }
+
+ internal static string Volume_owner_0 {
+ get {
+ return ResourceManager.GetString("Volume_owner_0", resourceCulture);
+ }
+ }
+
+ internal static string Volume_uses_0_codepage_1 {
+ get {
+ return ResourceManager.GetString("Volume_uses_0_codepage_1", resourceCulture);
+ }
+ }
+
+ internal static string EBCDIC {
+ get {
+ return ResourceManager.GetString("EBCDIC", resourceCulture);
+ }
+ }
+
+ internal static string ASCII {
+ get {
+ return ResourceManager.GetString("ASCII", resourceCulture);
+ }
+ }
+
+ internal static string Unknown_codepage {
+ get {
+ return ResourceManager.GetString("Unknown_codepage", resourceCulture);
+ }
+ }
+
+ internal static string RPS_level_0 {
+ get {
+ return ResourceManager.GetString("RPS_level_0", resourceCulture);
+ }
+ }
+
+ internal static string Filesystem_version_0_1 {
+ get {
+ return ResourceManager.GetString("Filesystem_version_0_1", resourceCulture);
+ }
+ }
+
+ internal static string Volume_can_be_filled_up_to_0 {
+ get {
+ return ResourceManager.GetString("Volume_can_be_filled_up_to_0", resourceCulture);
+ }
+ }
+
+ internal static string Exception_reading_CD_i_audio_file {
+ get {
+ return ResourceManager.GetString("Exception_reading_CD_i_audio_file", resourceCulture);
+ }
+ }
+
+ internal static string Processing_VD_loop_no_0 {
+ get {
+ return ResourceManager.GetString("Processing_VD_loop_no_0", resourceCulture);
+ }
+ }
+
+ internal static string Reading_sector_0 {
+ get {
+ return ResourceManager.GetString("Reading_sector_0", resourceCulture);
+ }
+ }
+
+ internal static string Unknown_specification {
+ get {
+ return ResourceManager.GetString("Unknown_specification", resourceCulture);
+ }
+ }
+
+ internal static string Found_unknown_supplementary_volume_descriptor {
+ get {
+ return ResourceManager.GetString("Found_unknown_supplementary_volume_descriptor", resourceCulture);
+ }
+ }
+
+ internal static string ERROR_Could_not_find_primary_volume_descriptor {
+ get {
+ return ResourceManager.GetString("ERROR_Could_not_find_primary_volume_descriptor", resourceCulture);
+ }
+ }
+
+ internal static string SYSTEM_USE_SHARING_PROTOCOL_INFORMATION {
+ get {
+ return ResourceManager.GetString("SYSTEM_USE_SHARING_PROTOCOL_INFORMATION", resourceCulture);
+ }
+ }
+
+ internal static string SYSTEM_USE_SHARING_PROTOCOL_INFORMATION_border {
+ get {
+ return ResourceManager.GetString("SYSTEM_USE_SHARING_PROTOCOL_INFORMATION_border", resourceCulture);
+ }
+ }
+
+ internal static string Extension_0 {
+ get {
+ return ResourceManager.GetString("Extension_0", resourceCulture);
+ }
+ }
+
+ internal static string ID_0_version_1 {
+ get {
+ return ResourceManager.GetString("ID_0_version_1", resourceCulture);
+ }
+ }
+
+ internal static string Description_0 {
+ get {
+ return ResourceManager.GetString("Description_0", resourceCulture);
+ }
+ }
+
+ internal static string Source_0 {
+ get {
+ return ResourceManager.GetString("Source_0", resourceCulture);
+ }
+ }
+
+ internal static string High_Sierra_Format_file_system {
+ get {
+ return ResourceManager.GetString("High_Sierra_Format_file_system", resourceCulture);
+ }
+ }
+
+ internal static string CD_i_file_system {
+ get {
+ return ResourceManager.GetString("CD_i_file_system", resourceCulture);
+ }
+ }
+
+ internal static string ISO9660_file_system {
+ get {
+ return ResourceManager.GetString("ISO9660_file_system", resourceCulture);
+ }
+ }
+
+ internal static string CD_ROM_XA_extensions_present {
+ get {
+ return ResourceManager.GetString("CD_ROM_XA_extensions_present", resourceCulture);
+ }
+ }
+
+ internal static string Amiga_extensions_present {
+ get {
+ return ResourceManager.GetString("Amiga_extensions_present", resourceCulture);
+ }
+ }
+
+ internal static string Apple_extensions_present {
+ get {
+ return ResourceManager.GetString("Apple_extensions_present", resourceCulture);
+ }
+ }
+
+ internal static string Joliet_extensions_present {
+ get {
+ return ResourceManager.GetString("Joliet_extensions_present", resourceCulture);
+ }
+ }
+
+ internal static string System_Use_Sharing_Protocol_present {
+ get {
+ return ResourceManager.GetString("System_Use_Sharing_Protocol_present", resourceCulture);
+ }
+ }
+
+ internal static string Rock_Ridge_Interchange_Protocol_present {
+ get {
+ return ResourceManager.GetString("Rock_Ridge_Interchange_Protocol_present", resourceCulture);
+ }
+ }
+
+ internal static string Arbitrary_Attribute_Interchange_Protocol_present {
+ get {
+ return ResourceManager.GetString("Arbitrary_Attribute_Interchange_Protocol_present", resourceCulture);
+ }
+ }
+
+ internal static string zisofs_compression_present {
+ get {
+ return ResourceManager.GetString("zisofs_compression_present", resourceCulture);
+ }
+ }
+
+ internal static string Contains_Enhanced_Volume_Descriptor {
+ get {
+ return ResourceManager.GetString("Contains_Enhanced_Volume_Descriptor", resourceCulture);
+ }
+ }
+
+ internal static string Contains_Volume_Partition_Descriptor {
+ get {
+ return ResourceManager.GetString("Contains_Volume_Partition_Descriptor", resourceCulture);
+ }
+ }
+
+ internal static string Disc_bootable_following_0_specifications {
+ get {
+ return ResourceManager.GetString("Disc_bootable_following_0_specifications", resourceCulture);
+ }
+ }
+
+ internal static string This_is_a_SegaCD_MegaCD_disc {
+ get {
+ return ResourceManager.GetString("This_is_a_SegaCD_MegaCD_disc", resourceCulture);
+ }
+ }
+
+ internal static string This_is_a_Sega_Saturn_disc {
+ get {
+ return ResourceManager.GetString("This_is_a_Sega_Saturn_disc", resourceCulture);
+ }
+ }
+
+ internal static string This_is_a_Sega_Dreamcast_disc {
+ get {
+ return ResourceManager.GetString("This_is_a_Sega_Dreamcast_disc", resourceCulture);
+ }
+ }
+
+ internal static string FILE_STRUCTURE_VOLUME_DESCRIPTOR_INFORMATION {
+ get {
+ return ResourceManager.GetString("FILE_STRUCTURE_VOLUME_DESCRIPTOR_INFORMATION", resourceCulture);
+ }
+ }
+
+ internal static string FILE_STRUCTURE_VOLUME_DESCRIPTOR_INFORMATION_border {
+ get {
+ return ResourceManager.GetString("FILE_STRUCTURE_VOLUME_DESCRIPTOR_INFORMATION_border", resourceCulture);
+ }
+ }
+
+ internal static string VOLUME_DESCRIPTOR_INFORMATION {
+ get {
+ return ResourceManager.GetString("VOLUME_DESCRIPTOR_INFORMATION", resourceCulture);
+ }
+ }
+
+ internal static string VOLUME_DESCRIPTOR_INFORMATION_border {
+ get {
+ return ResourceManager.GetString("VOLUME_DESCRIPTOR_INFORMATION_border", resourceCulture);
+ }
+ }
+
+ internal static string System_identifier_0 {
+ get {
+ return ResourceManager.GetString("System_identifier_0", resourceCulture);
+ }
+ }
+
+ internal static string Volume_identifier_0 {
+ get {
+ return ResourceManager.GetString("Volume_identifier_0", resourceCulture);
+ }
+ }
+
+ internal static string Volume_set_identifier_0 {
+ get {
+ return ResourceManager.GetString("Volume_set_identifier_0", resourceCulture);
+ }
+ }
+
+ internal static string Publisher_identifier_0 {
+ get {
+ return ResourceManager.GetString("Publisher_identifier_0", resourceCulture);
+ }
+ }
+
+ internal static string Data_preparer_identifier_0 {
+ get {
+ return ResourceManager.GetString("Data_preparer_identifier_0", resourceCulture);
+ }
+ }
+
+ internal static string Application_identifier_0 {
+ get {
+ return ResourceManager.GetString("Application_identifier_0", resourceCulture);
+ }
+ }
+
+ internal static string Volume_creation_date_0 {
+ get {
+ return ResourceManager.GetString("Volume_creation_date_0", resourceCulture);
+ }
+ }
+
+ internal static string Volume_modification_date_0 {
+ get {
+ return ResourceManager.GetString("Volume_modification_date_0", resourceCulture);
+ }
+ }
+
+ internal static string Volume_has_not_been_modified {
+ get {
+ return ResourceManager.GetString("Volume_has_not_been_modified", resourceCulture);
+ }
+ }
+
+ internal static string Volume_expiration_date_0 {
+ get {
+ return ResourceManager.GetString("Volume_expiration_date_0", resourceCulture);
+ }
+ }
+
+ internal static string Volume_does_not_expire {
+ get {
+ return ResourceManager.GetString("Volume_does_not_expire", resourceCulture);
+ }
+ }
+
+ internal static string Volume_effective_date_0 {
+ get {
+ return ResourceManager.GetString("Volume_effective_date_0", resourceCulture);
+ }
+ }
+
+ internal static string Volume_has_always_been_effective {
+ get {
+ return ResourceManager.GetString("Volume_has_always_been_effective", resourceCulture);
+ }
+ }
+
+ internal static string Volume_has_0_blocks_of_1_bytes_each {
+ get {
+ return ResourceManager.GetString("Volume_has_0_blocks_of_1_bytes_each", resourceCulture);
+ }
+ }
+
+ internal static string JOLIET_VOLUME_DESCRIPTOR_INFORMATION {
+ get {
+ return ResourceManager.GetString("JOLIET_VOLUME_DESCRIPTOR_INFORMATION", resourceCulture);
+ }
+ }
+
+ internal static string JOLIET_VOLUME_DESCRIPTOR_INFORMATION_border {
+ get {
+ return ResourceManager.GetString("JOLIET_VOLUME_DESCRIPTOR_INFORMATION_border", resourceCulture);
+ }
+ }
+
+ internal static string EL_TORITO_INFORMATION {
+ get {
+ return ResourceManager.GetString("EL_TORITO_INFORMATION", resourceCulture);
+ }
+ }
+
+ internal static string EL_TORITO_INFORMATION_border {
+ get {
+ return ResourceManager.GetString("EL_TORITO_INFORMATION_border", resourceCulture);
+ }
+ }
+
+ internal static string Initial_entry {
+ get {
+ return ResourceManager.GetString("Initial_entry", resourceCulture);
+ }
+ }
+
+ internal static string Developer_ID_0 {
+ get {
+ return ResourceManager.GetString("Developer_ID_0", resourceCulture);
+ }
+ }
+
+ internal static string Bootable_on_0 {
+ get {
+ return ResourceManager.GetString("Bootable_on_0", resourceCulture);
+ }
+ }
+
+ internal static string Bootable_image_starts_at_sector_0_and_runs_for_1_sectors {
+ get {
+ return ResourceManager.GetString("Bootable_image_starts_at_sector_0_and_runs_for_1_sectors", resourceCulture);
+ }
+ }
+
+ internal static string Bootable_image_will_be_loaded_at_segment_0 {
+ get {
+ return ResourceManager.GetString("Bootable_image_will_be_loaded_at_segment_0", resourceCulture);
+ }
+ }
+
+ internal static string Bootable_image_will_be_loaded_at_0 {
+ get {
+ return ResourceManager.GetString("Bootable_image_will_be_loaded_at_0", resourceCulture);
+ }
+ }
+
+ internal static string Image_uses_no_emulation {
+ get {
+ return ResourceManager.GetString("Image_uses_no_emulation", resourceCulture);
+ }
+ }
+
+ internal static string Image_emulates_a_high_density_MD2HD_floppy {
+ get {
+ return ResourceManager.GetString("Image_emulates_a_high_density_MD2HD_floppy", resourceCulture);
+ }
+ }
+
+ internal static string Image_emulates_a_high_density_MF2HD_floppy {
+ get {
+ return ResourceManager.GetString("Image_emulates_a_high_density_MF2HD_floppy", resourceCulture);
+ }
+ }
+
+ internal static string Image_emulates_a_extra_density_MF2ED_floppy {
+ get {
+ return ResourceManager.GetString("Image_emulates_a_extra_density_MF2ED_floppy", resourceCulture);
+ }
+ }
+
+ internal static string Image_uses_unknown_emulation_type_0 {
+ get {
+ return ResourceManager.GetString("Image_uses_unknown_emulation_type_0", resourceCulture);
+ }
+ }
+
+ internal static string System_type_0 {
+ get {
+ return ResourceManager.GetString("System_type_0", resourceCulture);
+ }
+ }
+
+ internal static string Bootable_image_SHA1_0 {
+ get {
+ return ResourceManager.GetString("Bootable_image_SHA1_0", resourceCulture);
+ }
+ }
+
+ internal static string Not_bootable {
+ get {
+ return ResourceManager.GetString("Not_bootable", resourceCulture);
+ }
+ }
+
+ internal static string Boot_section_0 {
+ get {
+ return ResourceManager.GetString("Boot_section_0", resourceCulture);
+ }
+ }
+
+ internal static string Section_ID_0 {
+ get {
+ return ResourceManager.GetString("Section_ID_0", resourceCulture);
+ }
+ }
+
+ internal static string Entry_0 {
+ get {
+ return ResourceManager.GetString("Entry_0", resourceCulture);
+ }
+ }
+
+ internal static string Selection_criteria_type_0 {
+ get {
+ return ResourceManager.GetString("Selection_criteria_type_0", resourceCulture);
+ }
+ }
+
+ internal static string Image_contains_ATAPI_drivers {
+ get {
+ return ResourceManager.GetString("Image_contains_ATAPI_drivers", resourceCulture);
+ }
+ }
+
+ internal static string Image_contains_SCSI_drivers {
+ get {
+ return ResourceManager.GetString("Image_contains_SCSI_drivers", resourceCulture);
+ }
+ }
+
+ internal static string tor_Sector_0_Cooked_Mode_zero_one_Mode_two_Form_one {
+ get {
+ return ResourceManager.GetString("tor_Sector_0_Cooked_Mode_zero_one_Mode_two_Form_one", resourceCulture);
+ }
+ }
+
+ internal static string tor_Sector_0_Cooked_Mode_two_Form_two {
+ get {
+ return ResourceManager.GetString("tor_Sector_0_Cooked_Mode_two_Form_two", resourceCulture);
+ }
+ }
+
+ internal static string tor_Sector_0_Cooked_Mode_two_Form_1_File_Number_2_Channel_Number_3_Submode_4_Coding_Information_5 {
+ get {
+ return ResourceManager.GetString("tor_Sector_0_Cooked_Mode_two_Form_1_File_Number_2_Channel_Number_3_Submode_4_Codi" +
+ "ng_Information_5", resourceCulture);
+ }
+ }
+
+ internal static string tor_Sector_0_Raw_Audio {
+ get {
+ return ResourceManager.GetString("tor_Sector_0_Raw_Audio", resourceCulture);
+ }
+ }
+
+ internal static string tor_Sector_0_1_2_3_Raw_Mode_4 {
+ get {
+ return ResourceManager.GetString("tor_Sector_0_1_2_3_Raw_Mode_4", resourceCulture);
+ }
+ }
+
+ internal static string tor_Sector_0_1_2_3_Raw_Mode_two_Form_4_File_Number_5_Channel_Number_6_Submode_7_Coding_Information_8 {
+ get {
+ return ResourceManager.GetString("tor_Sector_0_1_2_3_Raw_Mode_two_Form_4_File_Number_5_Channel_Number_6_Submode_7_C" +
+ "oding_Information_8", resourceCulture);
+ }
+ }
+
+ internal static string Path_table_and_PVD_do_not_point_to_the_same_location_for_the_root_directory {
+ get {
+ return ResourceManager.GetString("Path_table_and_PVD_do_not_point_to_the_same_location_for_the_root_directory", resourceCulture);
+ }
+ }
+
+ internal static string PVD_does_not_point_to_correct_root_directory_checking_path_table {
+ get {
+ return ResourceManager.GetString("PVD_does_not_point_to_correct_root_directory_checking_path_table", resourceCulture);
+ }
+ }
+
+ internal static string Cannot_find_root_directory {
+ get {
+ return ResourceManager.GetString("Cannot_find_root_directory", resourceCulture);
+ }
+ }
+
+ internal static string File_0_gets_truncated {
+ get {
+ return ResourceManager.GetString("File_0_gets_truncated", resourceCulture);
+ }
+ }
+
+ internal static string Sector_0_file_ID_1 {
+ get {
+ return ResourceManager.GetString("Sector_0_file_ID_1", resourceCulture);
+ }
+ }
+
+ internal static string Current_sector_0 {
+ get {
+ return ResourceManager.GetString("Current_sector_0", resourceCulture);
+ }
+ }
+
+ internal static string Unknown_LisaFS_version_0 {
+ get {
+ return ResourceManager.GetString("Unknown_LisaFS_version_0", resourceCulture);
+ }
+ }
+
+ internal static string Volume_password_0 {
+ get {
+ return ResourceManager.GetString("Volume_password_0", resourceCulture);
+ }
+ }
+
+ internal static string Volume_ID_0_X16 {
+ get {
+ return ResourceManager.GetString("Volume_ID_0_X16", resourceCulture);
+ }
+ }
+
+ internal static string Backup_volume_ID_0 {
+ get {
+ return ResourceManager.GetString("Backup_volume_ID_0", resourceCulture);
+ }
+ }
+
+ internal static string Master_copy_ID_0 {
+ get {
+ return ResourceManager.GetString("Master_copy_ID_0", resourceCulture);
+ }
+ }
+
+ internal static string Volume_is_number_0_of_1 {
+ get {
+ return ResourceManager.GetString("Volume_is_number_0_of_1", resourceCulture);
+ }
+ }
+
+ internal static string Serial_number_of_Lisa_computer_that_created_this_volume_0 {
+ get {
+ return ResourceManager.GetString("Serial_number_of_Lisa_computer_that_created_this_volume_0", resourceCulture);
+ }
+ }
+
+ internal static string Serial_number_of_Lisa_computer_that_can_use_this_volume_software_0 {
+ get {
+ return ResourceManager.GetString("Serial_number_of_Lisa_computer_that_can_use_this_volume_software_0", resourceCulture);
+ }
+ }
+
+ internal static string Volume_catalog_created_on_0 {
+ get {
+ return ResourceManager.GetString("Volume_catalog_created_on_0", resourceCulture);
+ }
+ }
+
+ internal static string Volume_backed_up_on_0 {
+ get {
+ return ResourceManager.GetString("Volume_backed_up_on_0", resourceCulture);
+ }
+ }
+
+ internal static string Volume_scavenged_on_0 {
+ get {
+ return ResourceManager.GetString("Volume_scavenged_on_0", resourceCulture);
+ }
+ }
+
+ internal static string MDDF_is_in_block_0 {
+ get {
+ return ResourceManager.GetString("MDDF_is_in_block_0", resourceCulture);
+ }
+ }
+
+ internal static string There_are_0_reserved_blocks_before_volume {
+ get {
+ return ResourceManager.GetString("There_are_0_reserved_blocks_before_volume", resourceCulture);
+ }
+ }
+
+ internal static string _0_blocks_minus_one {
+ get {
+ return ResourceManager.GetString("_0_blocks_minus_one", resourceCulture);
+ }
+ }
+
+ internal static string _0_blocks_minus_one_minus_MDDF_offset {
+ get {
+ return ResourceManager.GetString("_0_blocks_minus_one_minus_MDDF_offset", resourceCulture);
+ }
+ }
+
+ internal static string _0_blocks_in_volume {
+ get {
+ return ResourceManager.GetString("_0_blocks_in_volume", resourceCulture);
+ }
+ }
+
+ internal static string _0_bytes_per_sector_uncooked {
+ get {
+ return ResourceManager.GetString("_0_bytes_per_sector_uncooked", resourceCulture);
+ }
+ }
+
+ internal static string _0_blocks_per_cluster {
+ get {
+ return ResourceManager.GetString("_0_blocks_per_cluster", resourceCulture);
+ }
+ }
+
+ internal static string _0_blocks_in_filesystem {
+ get {
+ return ResourceManager.GetString("_0_blocks_in_filesystem", resourceCulture);
+ }
+ }
+
+ internal static string _0_files_in_volume {
+ get {
+ return ResourceManager.GetString("_0_files_in_volume", resourceCulture);
+ }
+ }
+
+ internal static string _0_blocks_free {
+ get {
+ return ResourceManager.GetString("_0_blocks_free", resourceCulture);
+ }
+ }
+
+ internal static string _0_bytes_in_LisaInfo {
+ get {
+ return ResourceManager.GetString("_0_bytes_in_LisaInfo", resourceCulture);
+ }
+ }
+
+ internal static string Filesystem_overhead_0 {
+ get {
+ return ResourceManager.GetString("Filesystem_overhead_0", resourceCulture);
+ }
+ }
+
+ internal static string Scavenger_result_code_0 {
+ get {
+ return ResourceManager.GetString("Scavenger_result_code_0", resourceCulture);
+ }
+ }
+
+ internal static string Boot_code_0 {
+ get {
+ return ResourceManager.GetString("Boot_code_0", resourceCulture);
+ }
+ }
+
+ internal static string Boot_environment_0 {
+ get {
+ return ResourceManager.GetString("Boot_environment_0", resourceCulture);
+ }
+ }
+
+ internal static string Overmount_stamp_0 {
+ get {
+ return ResourceManager.GetString("Overmount_stamp_0", resourceCulture);
+ }
+ }
+
+ internal static string S_Records_start_at_0_and_spans_for_1_blocks {
+ get {
+ return ResourceManager.GetString("S_Records_start_at_0_and_spans_for_1_blocks", resourceCulture);
+ }
+ }
+
+ internal static string Volume_is_clean {
+ get {
+ return ResourceManager.GetString("Volume_is_clean", resourceCulture);
+ }
+ }
+
+ internal static string Volume_is_dirty {
+ get {
+ return ResourceManager.GetString("Volume_is_dirty", resourceCulture);
+ }
+ }
+
+ internal static string Underlying_device_does_not_support_Lisa_tags {
+ get {
+ return ResourceManager.GetString("Underlying_device_does_not_support_Lisa_tags", resourceCulture);
+ }
+ }
+
+ internal static string Device_is_too_small {
+ get {
+ return ResourceManager.GetString("Device_is_too_small", resourceCulture);
+ }
+ }
+
+ internal static string Incorrect_MDDF_found {
+ get {
+ return ResourceManager.GetString("Incorrect_MDDF_found", resourceCulture);
+ }
+ }
+
+ internal static string Mounting_LisaFS_v1 {
+ get {
+ return ResourceManager.GetString("Mounting_LisaFS_v1", resourceCulture);
+ }
+ }
+
+ internal static string Mounting_LisaFS_v2 {
+ get {
+ return ResourceManager.GetString("Mounting_LisaFS_v2", resourceCulture);
+ }
+ }
+
+ internal static string Mounting_LisaFS_v3 {
+ get {
+ return ResourceManager.GetString("Mounting_LisaFS_v3", resourceCulture);
+ }
+ }
+
+ internal static string Cannot_mount_LisaFS_version_0 {
+ get {
+ return ResourceManager.GetString("Cannot_mount_LisaFS_version_0", resourceCulture);
+ }
+ }
+
+ internal static string Error_0_reading_S_Records_file {
+ get {
+ return ResourceManager.GetString("Error_0_reading_S_Records_file", resourceCulture);
+ }
+ }
+
+ internal static string Cannot_read_Catalog_File_error_0 {
+ get {
+ return ResourceManager.GetString("Cannot_read_Catalog_File_error_0", resourceCulture);
+ }
+ }
+
+ internal static string Unable_to_read_boot_blocks {
+ get {
+ return ResourceManager.GetString("Unable_to_read_boot_blocks", resourceCulture);
+ }
+ }
+
+ internal static string Unable_to_read_boot_loader {
+ get {
+ return ResourceManager.GetString("Unable_to_read_boot_loader", resourceCulture);
+ }
+ }
+
+ internal static string Unable_to_read_MDDF {
+ get {
+ return ResourceManager.GetString("Unable_to_read_MDDF", resourceCulture);
+ }
+ }
+
+ internal static string Unable_to_read_volume_bitmap {
+ get {
+ return ResourceManager.GetString("Unable_to_read_volume_bitmap", resourceCulture);
+ }
+ }
+
+ internal static string Unable_to_read_S_Records_file {
+ get {
+ return ResourceManager.GetString("Unable_to_read_S_Records_file", resourceCulture);
+ }
+ }
+
+ internal static string Not_a_Lisa_filesystem {
+ get {
+ return ResourceManager.GetString("Not_a_Lisa_filesystem", resourceCulture);
+ }
+ }
+
+ internal static string Exception_0_1_2 {
+ get {
+ return ResourceManager.GetString("Exception_0_1_2", resourceCulture);
+ }
+ }
+
+ internal static string OperaFS_Name {
+ get {
+ return ResourceManager.GetString("OperaFS_Name", resourceCulture);
+ }
+ }
+
+ internal static string Opera_filesystem_disc {
+ get {
+ return ResourceManager.GetString("Opera_filesystem_disc", resourceCulture);
+ }
+ }
+
+ internal static string Volume_identifier_0_X8 {
+ get {
+ return ResourceManager.GetString("Volume_identifier_0_X8", resourceCulture);
+ }
+ }
+
+ internal static string Block_size_0_bytes {
+ get {
+ return ResourceManager.GetString("Block_size_0_bytes", resourceCulture);
+ }
+ }
+
+ internal static string WARNING_Filesystem_indicates_0_bytes_block_while_device_indicates_1_bytes_block {
+ get {
+ return ResourceManager.GetString("WARNING_Filesystem_indicates_0_bytes_block_while_device_indicates_1_bytes_block", resourceCulture);
+ }
+ }
+
+ internal static string Volume_size_0_blocks_1_bytes {
+ get {
+ return ResourceManager.GetString("Volume_size_0_blocks_1_bytes", resourceCulture);
+ }
+ }
+
+ internal static string WARNING__Filesystem_indicates_0_blocks_while_device_indicates_1_blocks {
+ get {
+ return ResourceManager.GetString("WARNING__Filesystem_indicates_0_blocks_while_device_indicates_1_blocks", resourceCulture);
+ }
+ }
+
+ internal static string Root_directory_identifier_0 {
+ get {
+ return ResourceManager.GetString("Root_directory_identifier_0", resourceCulture);
+ }
+ }
+
+ internal static string Root_directory_block_size_0_bytes {
+ get {
+ return ResourceManager.GetString("Root_directory_block_size_0_bytes", resourceCulture);
+ }
+ }
+
+ internal static string Root_directory_size_0_blocks_1_bytes {
+ get {
+ return ResourceManager.GetString("Root_directory_size_0_blocks_1_bytes", resourceCulture);
+ }
+ }
+
+ internal static string Last_root_directory_copy_0 {
+ get {
+ return ResourceManager.GetString("Last_root_directory_copy_0", resourceCulture);
+ }
+ }
+
+ internal static string PascalPlugin_Name {
+ get {
+ return ResourceManager.GetString("PascalPlugin_Name", resourceCulture);
+ }
+ }
+
+ internal static string Volume_record_spans_from_block_0_to_block_1 {
+ get {
+ return ResourceManager.GetString("Volume_record_spans_from_block_0_to_block_1", resourceCulture);
+ }
+ }
+
+ internal static string Volume_has_0_blocks {
+ get {
+ return ResourceManager.GetString("Volume_has_0_blocks", resourceCulture);
+ }
+ }
+
+ internal static string Volume_has_0_files {
+ get {
+ return ResourceManager.GetString("Volume_has_0_files", resourceCulture);
+ }
+ }
+
+ internal static string Volume_last_booted_at_0 {
+ get {
+ return ResourceManager.GetString("Volume_last_booted_at_0", resourceCulture);
+ }
+ }
+
+ internal static string AcornADFS_Name {
+ get {
+ return ResourceManager.GetString("AcornADFS_Name", resourceCulture);
+ }
+ }
+
+ internal static string Acorn_Advanced_Disc_Filing_System {
+ get {
+ return ResourceManager.GetString("Acorn_Advanced_Disc_Filing_System", resourceCulture);
+ }
+ }
+
+ internal static string Volume_has_0_bytes {
+ get {
+ return ResourceManager.GetString("Volume_has_0_bytes", resourceCulture);
+ }
+ }
+
+ internal static string Volume_ID_0_X4 {
+ get {
+ return ResourceManager.GetString("Volume_ID_0_X4", resourceCulture);
+ }
+ }
+
+ internal static string Version_0 {
+ get {
+ return ResourceManager.GetString("Version_0", resourceCulture);
+ }
+ }
+
+ internal static string Density_code_0 {
+ get {
+ return ResourceManager.GetString("Density_code_0", resourceCulture);
+ }
+ }
+
+ internal static string Skew_0 {
+ get {
+ return ResourceManager.GetString("Skew_0", resourceCulture);
+ }
+ }
+
+ internal static string Boot_option_0 {
+ get {
+ return ResourceManager.GetString("Boot_option_0", resourceCulture);
+ }
+ }
+
+ internal static string Root_starts_at_frag_0 {
+ get {
+ return ResourceManager.GetString("Root_starts_at_frag_0", resourceCulture);
+ }
+ }
+
+ internal static string Volume_has_0_bytes_in_1_zones {
+ get {
+ return ResourceManager.GetString("Volume_has_0_bytes_in_1_zones", resourceCulture);
+ }
+ }
+
+ internal static string Volume_flags_0_X4 {
+ get {
+ return ResourceManager.GetString("Volume_flags_0_X4", resourceCulture);
+ }
+ }
+
+ internal static string AmigaDOSPlugin_Name {
+ get {
+ return ResourceManager.GetString("AmigaDOSPlugin_Name", resourceCulture);
+ }
+ }
+
+ internal static string Bootblock_points_to_0_as_Rootblock {
+ get {
+ return ResourceManager.GetString("Bootblock_points_to_0_as_Rootblock", resourceCulture);
+ }
+ }
+
+ internal static string Searching_for_Rootblock_in_sector_0 {
+ get {
+ return ResourceManager.GetString("Searching_for_Rootblock_in_sector_0", resourceCulture);
+ }
+ }
+
+ internal static string Amiga_Original_File_System {
+ get {
+ return ResourceManager.GetString("Amiga_Original_File_System", resourceCulture);
+ }
+ }
+
+ internal static string Amiga_Fast_File_System {
+ get {
+ return ResourceManager.GetString("Amiga_Fast_File_System", resourceCulture);
+ }
+ }
+
+ internal static string Amiga_Original_File_System_with_international_characters {
+ get {
+ return ResourceManager.GetString("Amiga_Original_File_System_with_international_characters", resourceCulture);
+ }
+ }
+
+ internal static string Amiga_Fast_File_System_with_international_characters {
+ get {
+ return ResourceManager.GetString("Amiga_Fast_File_System_with_international_characters", resourceCulture);
+ }
+ }
+
+ internal static string Amiga_Original_File_System_with_directory_cache {
+ get {
+ return ResourceManager.GetString("Amiga_Original_File_System_with_directory_cache", resourceCulture);
+ }
+ }
+
+ internal static string Amiga_Fast_File_System_with_directory_cache {
+ get {
+ return ResourceManager.GetString("Amiga_Fast_File_System_with_directory_cache", resourceCulture);
+ }
+ }
+
+ internal static string Amiga_Original_File_System_with_long_filenames {
+ get {
+ return ResourceManager.GetString("Amiga_Original_File_System_with_long_filenames", resourceCulture);
+ }
+ }
+
+ internal static string Amiga_Fast_File_System_with_long_filenames {
+ get {
+ return ResourceManager.GetString("Amiga_Fast_File_System_with_long_filenames", resourceCulture);
+ }
+ }
+
+ internal static string with_multi_user_patches {
+ get {
+ return ResourceManager.GetString("with_multi_user_patches", resourceCulture);
+ }
+ }
+
+ internal static string Volume_bitmap_is_valid {
+ get {
+ return ResourceManager.GetString("Volume_bitmap_is_valid", resourceCulture);
+ }
+ }
+
+ internal static string Bitmap_extension_at_block_0 {
+ get {
+ return ResourceManager.GetString("Bitmap_extension_at_block_0", resourceCulture);
+ }
+ }
+
+ internal static string Directory_cache_starts_at_block_0 {
+ get {
+ return ResourceManager.GetString("Directory_cache_starts_at_block_0", resourceCulture);
+ }
+ }
+
+ internal static string Volume_block_size_is_0_bytes {
+ get {
+ return ResourceManager.GetString("Volume_block_size_is_0_bytes", resourceCulture);
+ }
+ }
+
+ internal static string Volume_root_directory_last_modified_on_0 {
+ get {
+ return ResourceManager.GetString("Volume_root_directory_last_modified_on_0", resourceCulture);
+ }
+ }
+
+ internal static string Root_block_checksum_is_0 {
+ get {
+ return ResourceManager.GetString("Root_block_checksum_is_0", resourceCulture);
+ }
+ }
+
+ internal static string AODOS_Name {
+ get {
+ return ResourceManager.GetString("AODOS_Name", resourceCulture);
+ }
+ }
+
+ internal static string Alexander_Osipov_DOS_file_system {
+ get {
+ return ResourceManager.GetString("Alexander_Osipov_DOS_file_system", resourceCulture);
+ }
+ }
+
+ internal static string _0_used_sectors_on_volume {
+ get {
+ return ResourceManager.GetString("_0_used_sectors_on_volume", resourceCulture);
+ }
+ }
+
+ internal static string Disk_name_0 {
+ get {
+ return ResourceManager.GetString("Disk_name_0", resourceCulture);
+ }
+ }
+
+ internal static string APFS_Name {
+ get {
+ return ResourceManager.GetString("APFS_Name", resourceCulture);
+ }
+ }
+
+ internal static string Apple_File_System {
+ get {
+ return ResourceManager.GetString("Apple_File_System", resourceCulture);
+ }
+ }
+
+ internal static string _0_bytes_per_block {
+ get {
+ return ResourceManager.GetString("_0_bytes_per_block", resourceCulture);
+ }
+ }
+
+ internal static string Container_has_0_bytes_in_1_blocks {
+ get {
+ return ResourceManager.GetString("Container_has_0_bytes_in_1_blocks", resourceCulture);
+ }
+ }
+
+ internal static string AppleHFSPlus_Name {
+ get {
+ return ResourceManager.GetString("AppleHFSPlus_Name", resourceCulture);
+ }
+ }
+
+ internal static string HFS_filesystem {
+ get {
+ return ResourceManager.GetString("HFS_filesystem", resourceCulture);
+ }
+ }
+
+ internal static string HFSX_filesystem {
+ get {
+ return ResourceManager.GetString("HFSX_filesystem", resourceCulture);
+ }
+ }
+
+ internal static string Volume_is_wrapped_inside_an_HFS_volume {
+ get {
+ return ResourceManager.GetString("Volume_is_wrapped_inside_an_HFS_volume", resourceCulture);
+ }
+ }
+
+ internal static string Filesystem_version_is_0 {
+ get {
+ return ResourceManager.GetString("Filesystem_version_is_0", resourceCulture);
+ }
+ }
+
+ internal static string Volume_is_locked_on_hardware {
+ get {
+ return ResourceManager.GetString("Volume_is_locked_on_hardware", resourceCulture);
+ }
+ }
+
+ internal static string Volume_is_unmounted {
+ get {
+ return ResourceManager.GetString("Volume_is_unmounted", resourceCulture);
+ }
+ }
+
+ internal static string There_are_bad_blocks_in_the_extents_file {
+ get {
+ return ResourceManager.GetString("There_are_bad_blocks_in_the_extents_file", resourceCulture);
+ }
+ }
+
+ internal static string Volume_does_not_require_cache {
+ get {
+ return ResourceManager.GetString("Volume_does_not_require_cache", resourceCulture);
+ }
+ }
+
+ internal static string Volume_state_is_inconsistent {
+ get {
+ return ResourceManager.GetString("Volume_state_is_inconsistent", resourceCulture);
+ }
+ }
+
+ internal static string Volume_is_locked_on_software {
+ get {
+ return ResourceManager.GetString("Volume_is_locked_on_software", resourceCulture);
+ }
+ }
+
+ internal static string Implementation_that_last_mounted_the_volume_0 {
+ get {
+ return ResourceManager.GetString("Implementation_that_last_mounted_the_volume_0", resourceCulture);
+ }
+ }
+
+ internal static string Journal_starts_at_allocation_block_0 {
+ get {
+ return ResourceManager.GetString("Journal_starts_at_allocation_block_0", resourceCulture);
+ }
+ }
+
+ internal static string Last_check_date_0 {
+ get {
+ return ResourceManager.GetString("Last_check_date_0", resourceCulture);
+ }
+ }
+
+ internal static string Volume_has_never_been_checked_up {
+ get {
+ return ResourceManager.GetString("Volume_has_never_been_checked_up", resourceCulture);
+ }
+ }
+
+ internal static string _0_files_on_volume {
+ get {
+ return ResourceManager.GetString("_0_files_on_volume", resourceCulture);
+ }
+ }
+
+ internal static string _0_folders_on_volume {
+ get {
+ return ResourceManager.GetString("_0_folders_on_volume", resourceCulture);
+ }
+ }
+
+ internal static string _0_allocation_blocks {
+ get {
+ return ResourceManager.GetString("_0_allocation_blocks", resourceCulture);
+ }
+ }
+
+ internal static string _0_free_blocks {
+ get {
+ return ResourceManager.GetString("_0_free_blocks", resourceCulture);
+ }
+ }
+
+ internal static string Resource_fork_clump_size_0_bytes {
+ get {
+ return ResourceManager.GetString("Resource_fork_clump_size_0_bytes", resourceCulture);
+ }
+ }
+
+ internal static string Data_fork_clump_size_0_bytes {
+ get {
+ return ResourceManager.GetString("Data_fork_clump_size_0_bytes", resourceCulture);
+ }
+ }
+
+ internal static string Volume_has_been_mounted_writable_0_times {
+ get {
+ return ResourceManager.GetString("Volume_has_been_mounted_writable_0_times", resourceCulture);
+ }
+ }
+
+ internal static string Allocation_File_is_0_bytes {
+ get {
+ return ResourceManager.GetString("Allocation_File_is_0_bytes", resourceCulture);
+ }
+ }
+
+ internal static string Extents_File_is_0_bytes {
+ get {
+ return ResourceManager.GetString("Extents_File_is_0_bytes", resourceCulture);
+ }
+ }
+
+ internal static string Catalog_File_is_0_bytes {
+ get {
+ return ResourceManager.GetString("Catalog_File_is_0_bytes", resourceCulture);
+ }
+ }
+
+ internal static string Attributes_File_is_0_bytes {
+ get {
+ return ResourceManager.GetString("Attributes_File_is_0_bytes", resourceCulture);
+ }
+ }
+
+ internal static string Startup_File_is_0_bytes {
+ get {
+ return ResourceManager.GetString("Startup_File_is_0_bytes", resourceCulture);
+ }
+ }
+
+ internal static string This_version_is_not_supported_yet {
+ get {
+ return ResourceManager.GetString("This_version_is_not_supported_yet", resourceCulture);
+ }
+ }
+
+ internal static string AtheOS_Name {
+ get {
+ return ResourceManager.GetString("AtheOS_Name", resourceCulture);
+ }
+ }
+
+ internal static string Atheos_filesystem {
+ get {
+ return ResourceManager.GetString("Atheos_filesystem", resourceCulture);
+ }
+ }
+
+ internal static string Filesystem_is_read_only {
+ get {
+ return ResourceManager.GetString("Filesystem_is_read_only", resourceCulture);
+ }
+ }
+
+ internal static string _0_blocks_in_volume_1_bytes {
+ get {
+ return ResourceManager.GetString("_0_blocks_in_volume_1_bytes", resourceCulture);
+ }
+ }
+
+ internal static string _0_used_blocks_1_bytes {
+ get {
+ return ResourceManager.GetString("_0_used_blocks_1_bytes", resourceCulture);
+ }
+ }
+
+ internal static string _0_bytes_per_i_node {
+ get {
+ return ResourceManager.GetString("_0_bytes_per_i_node", resourceCulture);
+ }
+ }
+
+ internal static string _0_blocks_per_allocation_group_1_bytes {
+ get {
+ return ResourceManager.GetString("_0_blocks_per_allocation_group_1_bytes", resourceCulture);
+ }
+ }
+
+ internal static string _0_allocation_groups_in_volume {
+ get {
+ return ResourceManager.GetString("_0_allocation_groups_in_volume", resourceCulture);
+ }
+ }
+
+ internal static string Journal_resides_in_block_0_of_allocation_group_1_and_runs_for_2_blocks_3_bytes {
+ get {
+ return ResourceManager.GetString("Journal_resides_in_block_0_of_allocation_group_1_and_runs_for_2_blocks_3_bytes", resourceCulture);
+ }
+ }
+
+ internal static string Journal_starts_in_byte_0_and_has_1_bytes_in_2_blocks {
+ get {
+ return ResourceManager.GetString("Journal_starts_in_byte_0_and_has_1_bytes_in_2_blocks", resourceCulture);
+ }
+ }
+
+ internal static string Root_folder_s_i_node_resides_in_block_0_of_allocation_group_1_and_runs_for_2_blocks_3_bytes {
+ get {
+ return ResourceManager.GetString("Root_folder_s_i_node_resides_in_block_0_of_allocation_group_1_and_runs_for_2_bloc" +
+ "ks_3_bytes", resourceCulture);
+ }
+ }
+
+ internal static string Directory_containing_files_scheduled_for_deletion_i_node_resides_in_block_0_of_allocation_group_1_and_runs_for_2_blocks_3_bytes {
+ get {
+ return ResourceManager.GetString("Directory_containing_files_scheduled_for_deletion_i_node_resides_in_block_0_of_al" +
+ "location_group_1_and_runs_for_2_blocks_3_bytes", resourceCulture);
+ }
+ }
+
+ internal static string Indices_i_node_resides_in_block_0_of_allocation_group_1_and_runs_for_2_blocks_3_bytes {
+ get {
+ return ResourceManager.GetString("Indices_i_node_resides_in_block_0_of_allocation_group_1_and_runs_for_2_blocks_3_b" +
+ "ytes", resourceCulture);
+ }
+ }
+
+ internal static string _0_blocks_for_bootloader_1_bytes {
+ get {
+ return ResourceManager.GetString("_0_blocks_for_bootloader_1_bytes", resourceCulture);
+ }
+ }
+
+ internal static string BeFS_Name {
+ get {
+ return ResourceManager.GetString("BeFS_Name", resourceCulture);
+ }
+ }
+
+ internal static string Little_endian_BeFS {
+ get {
+ return ResourceManager.GetString("Little_endian_BeFS", resourceCulture);
+ }
+ }
+
+ internal static string Big_endian_BeFS {
+ get {
+ return ResourceManager.GetString("Big_endian_BeFS", resourceCulture);
+ }
+ }
+
+ internal static string Superblock_seems_corrupt_following_information_may_be_incorrect {
+ get {
+ return ResourceManager.GetString("Superblock_seems_corrupt_following_information_may_be_incorrect", resourceCulture);
+ }
+ }
+
+ internal static string Magic_one_0_Should_be_0x42465331 {
+ get {
+ return ResourceManager.GetString("Magic_one_0_Should_be_0x42465331", resourceCulture);
+ }
+ }
+
+ internal static string Magic_two_0_Should_be_0xDD121031 {
+ get {
+ return ResourceManager.GetString("Magic_two_0_Should_be_0xDD121031", resourceCulture);
+ }
+ }
+
+ internal static string Magic_three_0_Should_be_0x15B6830E {
+ get {
+ return ResourceManager.GetString("Magic_three_0_Should_be_0x15B6830E", resourceCulture);
+ }
+ }
+
+ internal static string Filesystem_endianness_0_Should_be_0x42494745 {
+ get {
+ return ResourceManager.GetString("Filesystem_endianness_0_Should_be_0x42494745", resourceCulture);
+ }
+ }
+
+ internal static string Root_folder_i_node_size_0_blocks_Should_be_one {
+ get {
+ return ResourceManager.GetString("Root_folder_i_node_size_0_blocks_Should_be_one", resourceCulture);
+ }
+ }
+
+ internal static string Indices_i_node_size_0_blocks_Should_be_one {
+ get {
+ return ResourceManager.GetString("Indices_i_node_size_0_blocks_Should_be_one", resourceCulture);
+ }
+ }
+
+ internal static string blockshift_0_1_should_be_2 {
+ get {
+ return ResourceManager.GetString("blockshift_0_1_should_be_2", resourceCulture);
+ }
+ }
+
+ internal static string Unknown_flags_0_X8 {
+ get {
+ return ResourceManager.GetString("Unknown_flags_0_X8", resourceCulture);
+ }
+ }
+
+ internal static string Journal_starts_in_byte_0_and_ends_in_byte_1 {
+ get {
+ return ResourceManager.GetString("Journal_starts_in_byte_0_and_ends_in_byte_1", resourceCulture);
+ }
+ }
+
+ internal static string BTRFS_Name {
+ get {
+ return ResourceManager.GetString("BTRFS_Name", resourceCulture);
+ }
+ }
+
+ internal static string B_tree_filesystem {
+ get {
+ return ResourceManager.GetString("B_tree_filesystem", resourceCulture);
+ }
+ }
+
+ internal static string UUID_0 {
+ get {
+ return ResourceManager.GetString("UUID_0", resourceCulture);
+ }
+ }
+
+ internal static string This_superblock_resides_on_physical_block_0 {
+ get {
+ return ResourceManager.GetString("This_superblock_resides_on_physical_block_0", resourceCulture);
+ }
+ }
+
+ internal static string Root_tree_starts_at_LBA_0 {
+ get {
+ return ResourceManager.GetString("Root_tree_starts_at_LBA_0", resourceCulture);
+ }
+ }
+
+ internal static string Chunk_tree_starts_at_LBA_0 {
+ get {
+ return ResourceManager.GetString("Chunk_tree_starts_at_LBA_0", resourceCulture);
+ }
+ }
+
+ internal static string Log_tree_starts_at_LBA_0 {
+ get {
+ return ResourceManager.GetString("Log_tree_starts_at_LBA_0", resourceCulture);
+ }
+ }
+
+ internal static string Volume_has_0_bytes_spanned_in_1_devices {
+ get {
+ return ResourceManager.GetString("Volume_has_0_bytes_spanned_in_1_devices", resourceCulture);
+ }
+ }
+
+ internal static string Volume_has_0_bytes_used {
+ get {
+ return ResourceManager.GetString("Volume_has_0_bytes_used", resourceCulture);
+ }
+ }
+
+ internal static string _0_bytes_sector {
+ get {
+ return ResourceManager.GetString("_0_bytes_sector", resourceCulture);
+ }
+ }
+
+ internal static string _0_bytes_node {
+ get {
+ return ResourceManager.GetString("_0_bytes_node", resourceCulture);
+ }
+ }
+
+ internal static string _0_bytes_leaf {
+ get {
+ return ResourceManager.GetString("_0_bytes_leaf", resourceCulture);
+ }
+ }
+
+ internal static string _0_bytes_stripe {
+ get {
+ return ResourceManager.GetString("_0_bytes_stripe", resourceCulture);
+ }
+ }
+
+ internal static string Flags_0 {
+ get {
+ return ResourceManager.GetString("Flags_0", resourceCulture);
+ }
+ }
+
+ internal static string Compatible_flags_0 {
+ get {
+ return ResourceManager.GetString("Compatible_flags_0", resourceCulture);
+ }
+ }
+
+ internal static string Read_only_compatible_flags_0 {
+ get {
+ return ResourceManager.GetString("Read_only_compatible_flags_0", resourceCulture);
+ }
+ }
+
+ internal static string Incompatible_flags_0 {
+ get {
+ return ResourceManager.GetString("Incompatible_flags_0", resourceCulture);
+ }
+ }
+
+ internal static string Device_UUID_0 {
+ get {
+ return ResourceManager.GetString("Device_UUID_0", resourceCulture);
+ }
+ }
+
+ internal static string CBM_Name {
+ get {
+ return ResourceManager.GetString("CBM_Name", resourceCulture);
+ }
+ }
+
+ internal static string Commodore_file_system {
+ get {
+ return ResourceManager.GetString("Commodore_file_system", resourceCulture);
+ }
+ }
+
+ internal static string Directory_starts_at_track_0_sector_1 {
+ get {
+ return ResourceManager.GetString("Directory_starts_at_track_0_sector_1", resourceCulture);
+ }
+ }
+
+ internal static string Disk_DOS_Version_0 {
+ get {
+ return ResourceManager.GetString("Disk_DOS_Version_0", resourceCulture);
+ }
+ }
+
+ internal static string DOS_Version_0 {
+ get {
+ return ResourceManager.GetString("DOS_Version_0", resourceCulture);
+ }
+ }
+
+ internal static string Disk_Version_0 {
+ get {
+ return ResourceManager.GetString("Disk_Version_0", resourceCulture);
+ }
+ }
+
+ internal static string Disk_ID_0 {
+ get {
+ return ResourceManager.GetString("Disk_ID_0", resourceCulture);
+ }
+ }
+
+ internal static string Disk_DOS_type_0 {
+ get {
+ return ResourceManager.GetString("Disk_DOS_type_0", resourceCulture);
+ }
+ }
+
+ internal static string Cram_Name {
+ get {
+ return ResourceManager.GetString("Cram_Name", resourceCulture);
+ }
+ }
+
+ internal static string Cram_file_system {
+ get {
+ return ResourceManager.GetString("Cram_file_system", resourceCulture);
+ }
+ }
+
+ internal static string Little_endian {
+ get {
+ return ResourceManager.GetString("Little_endian", resourceCulture);
+ }
+ }
+
+ internal static string Big_endian {
+ get {
+ return ResourceManager.GetString("Big_endian", resourceCulture);
+ }
+ }
+
+ internal static string Volume_edition_0 {
+ get {
+ return ResourceManager.GetString("Volume_edition_0", resourceCulture);
+ }
+ }
+
+ internal static string dump_Name {
+ get {
+ return ResourceManager.GetString("dump_Name", resourceCulture);
+ }
+ }
+
+ internal static string Could_not_read_dump_8_header_block {
+ get {
+ return ResourceManager.GetString("Could_not_read_dump_8_header_block", resourceCulture);
+ }
+ }
+
+ internal static string Old_16_bit_dump_8 {
+ get {
+ return ResourceManager.GetString("Old_16_bit_dump_8", resourceCulture);
+ }
+ }
+
+ internal static string Dump_created_on_0 {
+ get {
+ return ResourceManager.GetString("Dump_created_on_0", resourceCulture);
+ }
+ }
+
+ internal static string Previous_dump_created_on_0 {
+ get {
+ return ResourceManager.GetString("Previous_dump_created_on_0", resourceCulture);
+ }
+ }
+
+ internal static string Dump_volume_number_0 {
+ get {
+ return ResourceManager.GetString("Dump_volume_number_0", resourceCulture);
+ }
+ }
+
+ internal static string Dump_level_0 {
+ get {
+ return ResourceManager.GetString("Dump_level_0", resourceCulture);
+ }
+ }
+
+ internal static string Dump_label_0 {
+ get {
+ return ResourceManager.GetString("Dump_label_0", resourceCulture);
+ }
+ }
+
+ internal static string Dumped_filesystem_name_0 {
+ get {
+ return ResourceManager.GetString("Dumped_filesystem_name_0", resourceCulture);
+ }
+ }
+
+ internal static string Dumped_device_0 {
+ get {
+ return ResourceManager.GetString("Dumped_device_0", resourceCulture);
+ }
+ }
+
+ internal static string Dump_hostname_0 {
+ get {
+ return ResourceManager.GetString("Dump_hostname_0", resourceCulture);
+ }
+ }
+
+ internal static string ECMA67_Name {
+ get {
+ return ResourceManager.GetString("ECMA67_Name", resourceCulture);
+ }
+ }
+
+ internal static string ECMA_67 {
+ get {
+ return ResourceManager.GetString("ECMA_67", resourceCulture);
+ }
+ }
+
+ internal static string EFS_Name {
+ get {
+ return ResourceManager.GetString("EFS_Name", resourceCulture);
+ }
+ }
+
+ internal static string magic_at_0_X3_equals_1_expected_2_or_3 {
+ get {
+ return ResourceManager.GetString("magic_at_0_X3_equals_1_expected_2_or_3", resourceCulture);
+ }
+ }
+
+ internal static string magic_at_0_equals_1_expected_2_or_3 {
+ get {
+ return ResourceManager.GetString("magic_at_0_equals_1_expected_2_or_3", resourceCulture);
+ }
+ }
+
+ internal static string SGI_extent_filesystem {
+ get {
+ return ResourceManager.GetString("SGI_extent_filesystem", resourceCulture);
+ }
+ }
+
+ internal static string New_version {
+ get {
+ return ResourceManager.GetString("New_version", resourceCulture);
+ }
+ }
+
+ internal static string Filesystem_size_0_basic_blocks {
+ get {
+ return ResourceManager.GetString("Filesystem_size_0_basic_blocks", resourceCulture);
+ }
+ }
+
+ internal static string First_cylinder_group_starts_at_block_0 {
+ get {
+ return ResourceManager.GetString("First_cylinder_group_starts_at_block_0", resourceCulture);
+ }
+ }
+
+ internal static string Cylinder_group_size_0_basic_blocks {
+ get {
+ return ResourceManager.GetString("Cylinder_group_size_0_basic_blocks", resourceCulture);
+ }
+ }
+
+ internal static string _0_inodes_per_cylinder_group {
+ get {
+ return ResourceManager.GetString("_0_inodes_per_cylinder_group", resourceCulture);
+ }
+ }
+
+ internal static string _0_heads_per_cylinder {
+ get {
+ return ResourceManager.GetString("_0_heads_per_cylinder", resourceCulture);
+ }
+ }
+
+ internal static string _0_cylinder_groups {
+ get {
+ return ResourceManager.GetString("_0_cylinder_groups", resourceCulture);
+ }
+ }
+
+ internal static string _0_bytes_on_bitmap {
+ get {
+ return ResourceManager.GetString("_0_bytes_on_bitmap", resourceCulture);
+ }
+ }
+
+ internal static string _0_free_inodes {
+ get {
+ return ResourceManager.GetString("_0_free_inodes", resourceCulture);
+ }
+ }
+
+ internal static string Bitmap_resides_at_block_0 {
+ get {
+ return ResourceManager.GetString("Bitmap_resides_at_block_0", resourceCulture);
+ }
+ }
+
+ internal static string Replacement_superblock_resides_at_block_0 {
+ get {
+ return ResourceManager.GetString("Replacement_superblock_resides_at_block_0", resourceCulture);
+ }
+ }
+
+ internal static string Last_inode_allocated_0 {
+ get {
+ return ResourceManager.GetString("Last_inode_allocated_0", resourceCulture);
+ }
+ }
+
+ internal static string Checksum_0_X8 {
+ get {
+ return ResourceManager.GetString("Checksum_0_X8", resourceCulture);
+ }
+ }
+
+ internal static string Volume_pack_0 {
+ get {
+ return ResourceManager.GetString("Volume_pack_0", resourceCulture);
+ }
+ }
+
+ internal static string exFAT_Name {
+ get {
+ return ResourceManager.GetString("exFAT_Name", resourceCulture);
+ }
+ }
+
+ internal static string Microsoft_exFAT {
+ get {
+ return ResourceManager.GetString("Microsoft_exFAT", resourceCulture);
+ }
+ }
+
+ internal static string Partition_offset_0 {
+ get {
+ return ResourceManager.GetString("Partition_offset_0", resourceCulture);
+ }
+ }
+
+ internal static string Volume_has_0_sectors_of_1_bytes_each_for_a_total_of_2_bytes {
+ get {
+ return ResourceManager.GetString("Volume_has_0_sectors_of_1_bytes_each_for_a_total_of_2_bytes", resourceCulture);
+ }
+ }
+
+ internal static string Volume_uses_clusters_of_0_sectors_1_bytes_each {
+ get {
+ return ResourceManager.GetString("Volume_uses_clusters_of_0_sectors_1_bytes_each", resourceCulture);
+ }
+ }
+
+ internal static string First_FAT_starts_at_sector_0_and_runs_for_1_sectors {
+ get {
+ return ResourceManager.GetString("First_FAT_starts_at_sector_0_and_runs_for_1_sectors", resourceCulture);
+ }
+ }
+
+ internal static string Volume_uses_0_FATs {
+ get {
+ return ResourceManager.GetString("Volume_uses_0_FATs", resourceCulture);
+ }
+ }
+
+ internal static string Cluster_heap_starts_at_sector_0_contains_1_clusters_and_is_2_used {
+ get {
+ return ResourceManager.GetString("Cluster_heap_starts_at_sector_0_contains_1_clusters_and_is_2_used", resourceCulture);
+ }
+ }
+
+ internal static string Root_directory_starts_at_cluster_0 {
+ get {
+ return ResourceManager.GetString("Root_directory_starts_at_cluster_0", resourceCulture);
+ }
+ }
+
+ internal static string Filesystem_revision_is_0_1 {
+ get {
+ return ResourceManager.GetString("Filesystem_revision_is_0_1", resourceCulture);
+ }
+ }
+
+ internal static string Volume_serial_number_0_X8 {
+ get {
+ return ResourceManager.GetString("Volume_serial_number_0_X8", resourceCulture);
+ }
+ }
+
+ internal static string BIOS_drive_is_0 {
+ get {
+ return ResourceManager.GetString("BIOS_drive_is_0", resourceCulture);
+ }
+ }
+
+ internal static string Second_FAT_is_in_use {
+ get {
+ return ResourceManager.GetString("Second_FAT_is_in_use", resourceCulture);
+ }
+ }
+
+ internal static string Underlying_media_presented_errors {
+ get {
+ return ResourceManager.GetString("Underlying_media_presented_errors", resourceCulture);
+ }
+ }
+
+ internal static string OEM_Parameters_0 {
+ get {
+ return ResourceManager.GetString("OEM_Parameters_0", resourceCulture);
+ }
+ }
+
+ internal static string _0_bytes_in_erase_block {
+ get {
+ return ResourceManager.GetString("_0_bytes_in_erase_block", resourceCulture);
+ }
+ }
+
+ internal static string _0_bytes_per_page {
+ get {
+ return ResourceManager.GetString("_0_bytes_per_page", resourceCulture);
+ }
+ }
+
+ internal static string _0_spare_blocks {
+ get {
+ return ResourceManager.GetString("_0_spare_blocks", resourceCulture);
+ }
+ }
+
+ internal static string _0_nanoseconds_random_access_time {
+ get {
+ return ResourceManager.GetString("_0_nanoseconds_random_access_time", resourceCulture);
+ }
+ }
+
+ internal static string _0_nanoseconds_program_time {
+ get {
+ return ResourceManager.GetString("_0_nanoseconds_program_time", resourceCulture);
+ }
+ }
+
+ internal static string _0_nanoseconds_read_cycle_time {
+ get {
+ return ResourceManager.GetString("_0_nanoseconds_read_cycle_time", resourceCulture);
+ }
+ }
+
+ internal static string _0_nanoseconds_write_cycle_time {
+ get {
+ return ResourceManager.GetString("_0_nanoseconds_write_cycle_time", resourceCulture);
+ }
+ }
+
+ internal static string Found_unknown_parameter_type_0 {
+ get {
+ return ResourceManager.GetString("Found_unknown_parameter_type_0", resourceCulture);
+ }
+ }
+
+ internal static string ext2FS_Name_Linux_extended_Filesystem_2_3_and_4 {
+ get {
+ return ResourceManager.GetString("ext2FS_Name_Linux_extended_Filesystem_2_3_and_4", resourceCulture);
+ }
+ }
+
+ internal static string ext2_old_filesystem {
+ get {
+ return ResourceManager.GetString("ext2_old_filesystem", resourceCulture);
+ }
+ }
+
+ internal static string ext2_filesystem {
+ get {
+ return ResourceManager.GetString("ext2_filesystem", resourceCulture);
+ }
+ }
+
+ internal static string ext3_filesystem {
+ get {
+ return ResourceManager.GetString("ext3_filesystem", resourceCulture);
+ }
+ }
+
+ internal static string ext4_filesystem {
+ get {
+ return ResourceManager.GetString("ext4_filesystem", resourceCulture);
+ }
+ }
+
+ internal static string Not_an_ext2_3_4_filesystem {
+ get {
+ return ResourceManager.GetString("Not_an_ext2_3_4_filesystem", resourceCulture);
+ }
+ }
+
+ internal static string Unknown_OS_0 {
+ get {
+ return ResourceManager.GetString("Unknown_OS_0", resourceCulture);
+ }
+ }
+
+ internal static string Volume_was_created_on_0_for_1 {
+ get {
+ return ResourceManager.GetString("Volume_was_created_on_0_for_1", resourceCulture);
+ }
+ }
+
+ internal static string Volume_was_created_for_0 {
+ get {
+ return ResourceManager.GetString("Volume_was_created_for_0", resourceCulture);
+ }
+ }
+
+ internal static string Volume_has_0_blocks_of_1_bytes_for_a_total_of_2_bytes {
+ get {
+ return ResourceManager.GetString("Volume_has_0_blocks_of_1_bytes_for_a_total_of_2_bytes", resourceCulture);
+ }
+ }
+
+ internal static string Last_mounted_on_0 {
+ get {
+ return ResourceManager.GetString("Last_mounted_on_0", resourceCulture);
+ }
+ }
+
+ internal static string Volume_has_been_mounted_0_times_of_a_maximum_of_1_mounts_before_checking {
+ get {
+ return ResourceManager.GetString("Volume_has_been_mounted_0_times_of_a_maximum_of_1_mounts_before_checking", resourceCulture);
+ }
+ }
+
+ internal static string Volume_has_been_mounted_0_times_with_no_maximum_no_of_mounts_before_checking {
+ get {
+ return ResourceManager.GetString("Volume_has_been_mounted_0_times_with_no_maximum_no_of_mounts_before_checking", resourceCulture);
+ }
+ }
+
+ internal static string Last_mounted_at_0 {
+ get {
+ return ResourceManager.GetString("Last_mounted_at_0", resourceCulture);
+ }
+ }
+
+ internal static string Last_used_mount_options_were_0 {
+ get {
+ return ResourceManager.GetString("Last_used_mount_options_were_0", resourceCulture);
+ }
+ }
+
+ internal static string Volume_has_never_been_mounted {
+ get {
+ return ResourceManager.GetString("Volume_has_never_been_mounted", resourceCulture);
+ }
+ }
+
+ internal static string Volume_can_be_mounted_0_times_before_checking {
+ get {
+ return ResourceManager.GetString("Volume_can_be_mounted_0_times_before_checking", resourceCulture);
+ }
+ }
+
+ internal static string Volume_has_no_maximum_no_of_mounts_before_checking {
+ get {
+ return ResourceManager.GetString("Volume_has_no_maximum_no_of_mounts_before_checking", resourceCulture);
+ }
+ }
+
+ internal static string Last_checked_on_0_should_check_every_1_seconds {
+ get {
+ return ResourceManager.GetString("Last_checked_on_0_should_check_every_1_seconds", resourceCulture);
+ }
+ }
+
+ internal static string Last_checked_on_0 {
+ get {
+ return ResourceManager.GetString("Last_checked_on_0", resourceCulture);
+ }
+ }
+
+ internal static string Volume_has_never_been_checked_should_check_every_0_ {
+ get {
+ return ResourceManager.GetString("Volume_has_never_been_checked_should_check_every_0_", resourceCulture);
+ }
+ }
+
+ internal static string Volume_has_never_been_checked {
+ get {
+ return ResourceManager.GetString("Volume_has_never_been_checked", resourceCulture);
+ }
+ }
+
+ internal static string Last_written_on_0 {
+ get {
+ return ResourceManager.GetString("Last_written_on_0", resourceCulture);
+ }
+ }
+
+ internal static string Volume_is_recovering_orphan_files {
+ get {
+ return ResourceManager.GetString("Volume_is_recovering_orphan_files", resourceCulture);
+ }
+ }
+
+ internal static string Volume_is_in_an_unknown_state_0 {
+ get {
+ return ResourceManager.GetString("Volume_is_in_an_unknown_state_0", resourceCulture);
+ }
+ }
+
+ internal static string On_errors_filesystem_should_continue {
+ get {
+ return ResourceManager.GetString("On_errors_filesystem_should_continue", resourceCulture);
+ }
+ }
+
+ internal static string On_errors_filesystem_should_remount_read_only {
+ get {
+ return ResourceManager.GetString("On_errors_filesystem_should_remount_read_only", resourceCulture);
+ }
+ }
+
+ internal static string On_errors_filesystem_should_panic {
+ get {
+ return ResourceManager.GetString("On_errors_filesystem_should_panic", resourceCulture);
+ }
+ }
+
+ internal static string On_errors_filesystem_will_do_an_unknown_thing_0 {
+ get {
+ return ResourceManager.GetString("On_errors_filesystem_will_do_an_unknown_thing_0", resourceCulture);
+ }
+ }
+
+ internal static string Filesystem_revision_0_1 {
+ get {
+ return ResourceManager.GetString("Filesystem_revision_0_1", resourceCulture);
+ }
+ }
+
+ internal static string Volume_UUID_0 {
+ get {
+ return ResourceManager.GetString("Volume_UUID_0", resourceCulture);
+ }
+ }
+
+ internal static string _0_KiB_has_been_written_on_volume {
+ get {
+ return ResourceManager.GetString("_0_KiB_has_been_written_on_volume", resourceCulture);
+ }
+ }
+
+ internal static string _0_reserved_and_1_free_blocks {
+ get {
+ return ResourceManager.GetString("_0_reserved_and_1_free_blocks", resourceCulture);
+ }
+ }
+
+ internal static string _0_inodes_with_1_free_inodes_2 {
+ get {
+ return ResourceManager.GetString("_0_inodes_with_1_free_inodes_2", resourceCulture);
+ }
+ }
+
+ internal static string First_inode_is_0 {
+ get {
+ return ResourceManager.GetString("First_inode_is_0", resourceCulture);
+ }
+ }
+
+ internal static string _0_bytes_per_fragment {
+ get {
+ return ResourceManager.GetString("_0_bytes_per_fragment", resourceCulture);
+ }
+ }
+
+ internal static string _0_blocks_1_flags_and_2_inodes_per_group {
+ get {
+ return ResourceManager.GetString("_0_blocks_1_flags_and_2_inodes_per_group", resourceCulture);
+ }
+ }
+
+ internal static string _0_is_first_data_block {
+ get {
+ return ResourceManager.GetString("_0_is_first_data_block", resourceCulture);
+ }
+ }
+
+ internal static string Default_UID_0_GID_1 {
+ get {
+ return ResourceManager.GetString("Default_UID_0_GID_1", resourceCulture);
+ }
+ }
+
+ internal static string Block_group_number_is_0 {
+ get {
+ return ResourceManager.GetString("Block_group_number_is_0", resourceCulture);
+ }
+ }
+
+ internal static string Group_descriptor_size_is_0_bytes {
+ get {
+ return ResourceManager.GetString("Group_descriptor_size_is_0_bytes", resourceCulture);
+ }
+ }
+
+ internal static string First_metablock_group_is_0 {
+ get {
+ return ResourceManager.GetString("First_metablock_group_is_0", resourceCulture);
+ }
+ }
+
+ internal static string RAID_stride_0 {
+ get {
+ return ResourceManager.GetString("RAID_stride_0", resourceCulture);
+ }
+ }
+
+ internal static string _0_blocks_on_all_data_disks {
+ get {
+ return ResourceManager.GetString("_0_blocks_on_all_data_disks", resourceCulture);
+ }
+ }
+
+ internal static string _0_seconds_for_multi_mount_protection_wait_on_block_1 {
+ get {
+ return ResourceManager.GetString("_0_seconds_for_multi_mount_protection_wait_on_block_1", resourceCulture);
+ }
+ }
+
+ internal static string _0_Flexible_block_group_size {
+ get {
+ return ResourceManager.GetString("_0_Flexible_block_group_size", resourceCulture);
+ }
+ }
+
+ internal static string Hash_seed_0_1_2_3_version_4 {
+ get {
+ return ResourceManager.GetString("Hash_seed_0_1_2_3_version_4", resourceCulture);
+ }
+ }
+
+ internal static string Journal_UUID_0 {
+ get {
+ return ResourceManager.GetString("Journal_UUID_0", resourceCulture);
+ }
+ }
+
+ internal static string Journal_has_inode_0 {
+ get {
+ return ResourceManager.GetString("Journal_has_inode_0", resourceCulture);
+ }
+ }
+
+ internal static string Journal_is_on_device_0 {
+ get {
+ return ResourceManager.GetString("Journal_is_on_device_0", resourceCulture);
+ }
+ }
+
+ internal static string Journal_backup_type_0 {
+ get {
+ return ResourceManager.GetString("Journal_backup_type_0", resourceCulture);
+ }
+ }
+
+ internal static string Last_orphaned_inode_is_0 {
+ get {
+ return ResourceManager.GetString("Last_orphaned_inode_is_0", resourceCulture);
+ }
+ }
+
+ internal static string There_are_no_orphaned_inodes {
+ get {
+ return ResourceManager.GetString("There_are_no_orphaned_inodes", resourceCulture);
+ }
+ }
+
+ internal static string Active_snapshot_has_ID_0_on_inode_1_with_2_blocks_reserved_list_starting_on_block_3 {
+ get {
+ return ResourceManager.GetString("Active_snapshot_has_ID_0_on_inode_1_with_2_blocks_reserved_list_starting_on_block" +
+ "_3", resourceCulture);
+ }
+ }
+
+ internal static string _0_errors_registered {
+ get {
+ return ResourceManager.GetString("_0_errors_registered", resourceCulture);
+ }
+ }
+
+ internal static string First_error_occurred_on_0_last_on_1 {
+ get {
+ return ResourceManager.GetString("First_error_occurred_on_0_last_on_1", resourceCulture);
+ }
+ }
+
+ internal static string First_error_inode_is_0_last_is_1 {
+ get {
+ return ResourceManager.GetString("First_error_inode_is_0_last_is_1", resourceCulture);
+ }
+ }
+
+ internal static string First_error_block_is_0_last_is_1 {
+ get {
+ return ResourceManager.GetString("First_error_block_is_0_last_is_1", resourceCulture);
+ }
+ }
+
+ internal static string First_error_function_is_0_last_is_1 {
+ get {
+ return ResourceManager.GetString("First_error_function_is_0_last_is_1", resourceCulture);
+ }
+ }
+
+ internal static string Flags_ellipsis {
+ get {
+ return ResourceManager.GetString("Flags_ellipsis", resourceCulture);
+ }
+ }
+
+ internal static string Signed_directory_hash_is_in_use {
+ get {
+ return ResourceManager.GetString("Signed_directory_hash_is_in_use", resourceCulture);
+ }
+ }
+
+ internal static string Unsigned_directory_hash_is_in_use {
+ get {
+ return ResourceManager.GetString("Unsigned_directory_hash_is_in_use", resourceCulture);
+ }
+ }
+
+ internal static string Volume_is_testing_development_code {
+ get {
+ return ResourceManager.GetString("Volume_is_testing_development_code", resourceCulture);
+ }
+ }
+
+ internal static string Unknown_set_flags_0 {
+ get {
+ return ResourceManager.GetString("Unknown_set_flags_0", resourceCulture);
+ }
+ }
+
+ internal static string Default_mount_options {
+ get {
+ return ResourceManager.GetString("Default_mount_options", resourceCulture);
+ }
+ }
+
+ internal static string debug_Enable_debugging_code {
+ get {
+ return ResourceManager.GetString("debug_Enable_debugging_code", resourceCulture);
+ }
+ }
+
+ internal static string bsdgroups_Emulate_BSD_behaviour_when_creating_new_files {
+ get {
+ return ResourceManager.GetString("bsdgroups_Emulate_BSD_behaviour_when_creating_new_files", resourceCulture);
+ }
+ }
+
+ internal static string user_xattr_Enable_user_specified_extended_attributes {
+ get {
+ return ResourceManager.GetString("user_xattr_Enable_user_specified_extended_attributes", resourceCulture);
+ }
+ }
+
+ internal static string acl_Enable_POSIX_ACLs {
+ get {
+ return ResourceManager.GetString("acl_Enable_POSIX_ACLs", resourceCulture);
+ }
+ }
+
+ internal static string uid16_Disable_32bit_UIDs_and_GIDs {
+ get {
+ return ResourceManager.GetString("uid16_Disable_32bit_UIDs_and_GIDs", resourceCulture);
+ }
+ }
+
+ internal static string journal_data_Journal_data_and_metadata {
+ get {
+ return ResourceManager.GetString("journal_data_Journal_data_and_metadata", resourceCulture);
+ }
+ }
+
+ internal static string journal_data_ordered_Write_data_before_journaling_metadata {
+ get {
+ return ResourceManager.GetString("journal_data_ordered_Write_data_before_journaling_metadata", resourceCulture);
+ }
+ }
+
+ internal static string journal_data_writeback_Write_journal_before_data {
+ get {
+ return ResourceManager.GetString("journal_data_writeback_Write_journal_before_data", resourceCulture);
+ }
+ }
+
+ internal static string Unknown_set_default_mount_options_0 {
+ get {
+ return ResourceManager.GetString("Unknown_set_default_mount_options_0", resourceCulture);
+ }
+ }
+
+ internal static string Compatible_features {
+ get {
+ return ResourceManager.GetString("Compatible_features", resourceCulture);
+ }
+ }
+
+ internal static string Pre_allocate_directories {
+ get {
+ return ResourceManager.GetString("Pre_allocate_directories", resourceCulture);
+ }
+ }
+
+ internal static string imagic_inodes__ {
+ get {
+ return ResourceManager.GetString("imagic_inodes__", resourceCulture);
+ }
+ }
+
+ internal static string Has_journal_ext3 {
+ get {
+ return ResourceManager.GetString("Has_journal_ext3", resourceCulture);
+ }
+ }
+
+ internal static string Has_extended_attribute_blocks {
+ get {
+ return ResourceManager.GetString("Has_extended_attribute_blocks", resourceCulture);
+ }
+ }
+
+ internal static string Has_online_filesystem_resize_reservations {
+ get {
+ return ResourceManager.GetString("Has_online_filesystem_resize_reservations", resourceCulture);
+ }
+ }
+
+ internal static string Can_use_hashed_indexes_on_directories {
+ get {
+ return ResourceManager.GetString("Can_use_hashed_indexes_on_directories", resourceCulture);
+ }
+ }
+
+ internal static string Unknown_compatible_features_0 {
+ get {
+ return ResourceManager.GetString("Unknown_compatible_features_0", resourceCulture);
+ }
+ }
+
+ internal static string Compatible_features_if_read_only {
+ get {
+ return ResourceManager.GetString("Compatible_features_if_read_only", resourceCulture);
+ }
+ }
+
+ internal static string Reduced_number_of_superblocks {
+ get {
+ return ResourceManager.GetString("Reduced_number_of_superblocks", resourceCulture);
+ }
+ }
+
+ internal static string Can_have_files_bigger_than_2GiB {
+ get {
+ return ResourceManager.GetString("Can_have_files_bigger_than_2GiB", resourceCulture);
+ }
+ }
+
+ internal static string Uses_B_Tree_for_directories {
+ get {
+ return ResourceManager.GetString("Uses_B_Tree_for_directories", resourceCulture);
+ }
+ }
+
+ internal static string Can_have_files_bigger_than_2TiB_ext4 {
+ get {
+ return ResourceManager.GetString("Can_have_files_bigger_than_2TiB_ext4", resourceCulture);
+ }
+ }
+
+ internal static string Group_descriptor_checksums_and_sparse_inode_table_ext4 {
+ get {
+ return ResourceManager.GetString("Group_descriptor_checksums_and_sparse_inode_table_ext4", resourceCulture);
+ }
+ }
+
+ internal static string More_than_32000_directory_entries_ext4 {
+ get {
+ return ResourceManager.GetString("More_than_32000_directory_entries_ext4", resourceCulture);
+ }
+ }
+
+ internal static string Supports_nanosecond_timestamps_and_creation_time_ext4 {
+ get {
+ return ResourceManager.GetString("Supports_nanosecond_timestamps_and_creation_time_ext4", resourceCulture);
+ }
+ }
+
+ internal static string Unknown_read_only_compatible_features_0 {
+ get {
+ return ResourceManager.GetString("Unknown_read_only_compatible_features_0", resourceCulture);
+ }
+ }
+
+ internal static string Incompatible_features {
+ get {
+ return ResourceManager.GetString("Incompatible_features", resourceCulture);
+ }
+ }
+
+ internal static string Uses_compression {
+ get {
+ return ResourceManager.GetString("Uses_compression", resourceCulture);
+ }
+ }
+
+ internal static string Filetype_in_directory_entries {
+ get {
+ return ResourceManager.GetString("Filetype_in_directory_entries", resourceCulture);
+ }
+ }
+
+ internal static string Journal_needs_recovery_ext3 {
+ get {
+ return ResourceManager.GetString("Journal_needs_recovery_ext3", resourceCulture);
+ }
+ }
+
+ internal static string Has_journal_on_another_device_ext3 {
+ get {
+ return ResourceManager.GetString("Has_journal_on_another_device_ext3", resourceCulture);
+ }
+ }
+
+ internal static string Reduced_block_group_backups {
+ get {
+ return ResourceManager.GetString("Reduced_block_group_backups", resourceCulture);
+ }
+ }
+
+ internal static string Volume_use_extents_ext4 {
+ get {
+ return ResourceManager.GetString("Volume_use_extents_ext4", resourceCulture);
+ }
+ }
+
+ internal static string Supports_volumes_bigger_than_2_32_blocks_ext4 {
+ get {
+ return ResourceManager.GetString("Supports_volumes_bigger_than_2_32_blocks_ext4", resourceCulture);
+ }
+ }
+
+ internal static string Multi_mount_protection_ext4 {
+ get {
+ return ResourceManager.GetString("Multi_mount_protection_ext4", resourceCulture);
+ }
+ }
+
+ internal static string Flexible_block_group_metadata_location_ext4 {
+ get {
+ return ResourceManager.GetString("Flexible_block_group_metadata_location_ext4", resourceCulture);
+ }
+ }
+
+ internal static string Extended_attributes_can_reside_in_inode_ext4 {
+ get {
+ return ResourceManager.GetString("Extended_attributes_can_reside_in_inode_ext4", resourceCulture);
+ }
+ }
+
+ internal static string Data_can_reside_in_directory_entry_ext4 {
+ get {
+ return ResourceManager.GetString("Data_can_reside_in_directory_entry_ext4", resourceCulture);
+ }
+ }
+
+ internal static string Unknown_incompatible_features_0 {
+ get {
+ return ResourceManager.GetString("Unknown_incompatible_features_0", resourceCulture);
+ }
+ }
+
+ internal static string extFS_Name {
+ get {
+ return ResourceManager.GetString("extFS_Name", resourceCulture);
+ }
+ }
+
+ internal static string ext_filesystem {
+ get {
+ return ResourceManager.GetString("ext_filesystem", resourceCulture);
+ }
+ }
+
+ internal static string _0_zones_on_volume {
+ get {
+ return ResourceManager.GetString("_0_zones_on_volume", resourceCulture);
+ }
+ }
+
+ internal static string _0_free_blocks_1_bytes {
+ get {
+ return ResourceManager.GetString("_0_free_blocks_1_bytes", resourceCulture);
+ }
+ }
+
+ internal static string _0_inodes_on_volume_1_free_2 {
+ get {
+ return ResourceManager.GetString("_0_inodes_on_volume_1_free_2", resourceCulture);
+ }
+ }
+
+ internal static string First_free_inode_is_0 {
+ get {
+ return ResourceManager.GetString("First_free_inode_is_0", resourceCulture);
+ }
+ }
+
+ internal static string First_free_block_is_0 {
+ get {
+ return ResourceManager.GetString("First_free_block_is_0", resourceCulture);
+ }
+ }
+
+ internal static string First_data_zone_is_0 {
+ get {
+ return ResourceManager.GetString("First_data_zone_is_0", resourceCulture);
+ }
+ }
+
+ internal static string Log_zone_size_0 {
+ get {
+ return ResourceManager.GetString("Log_zone_size_0", resourceCulture);
+ }
+ }
+
+ internal static string Max_zone_size_0 {
+ get {
+ return ResourceManager.GetString("Max_zone_size_0", resourceCulture);
+ }
+ }
+
+ internal static string F2FS_Name {
+ get {
+ return ResourceManager.GetString("F2FS_Name", resourceCulture);
+ }
+ }
+
+ internal static string F2FS_filesystem {
+ get {
+ return ResourceManager.GetString("F2FS_filesystem", resourceCulture);
+ }
+ }
+
+ internal static string Version_0_1 {
+ get {
+ return ResourceManager.GetString("Version_0_1", resourceCulture);
+ }
+ }
+
+ internal static string _0_sectors_1_bytes_per_block {
+ get {
+ return ResourceManager.GetString("_0_sectors_1_bytes_per_block", resourceCulture);
+ }
+ }
+
+ internal static string _0_blocks_per_segment {
+ get {
+ return ResourceManager.GetString("_0_blocks_per_segment", resourceCulture);
+ }
+ }
+
+ internal static string _0_segments_per_section {
+ get {
+ return ResourceManager.GetString("_0_segments_per_section", resourceCulture);
+ }
+ }
+
+ internal static string _0_sections_per_zone {
+ get {
+ return ResourceManager.GetString("_0_sections_per_zone", resourceCulture);
+ }
+ }
+
+ internal static string _0_sections {
+ get {
+ return ResourceManager.GetString("_0_sections", resourceCulture);
+ }
+ }
+
+ internal static string _0_segments {
+ get {
+ return ResourceManager.GetString("_0_segments", resourceCulture);
+ }
+ }
+
+ internal static string Root_directory_resides_on_inode_0 {
+ get {
+ return ResourceManager.GetString("Root_directory_resides_on_inode_0", resourceCulture);
+ }
+ }
+
+ internal static string Volume_last_mounted_on_kernel_version_0 {
+ get {
+ return ResourceManager.GetString("Volume_last_mounted_on_kernel_version_0", resourceCulture);
+ }
+ }
+
+ internal static string Volume_created_on_kernel_version_0 {
+ get {
+ return ResourceManager.GetString("Volume_created_on_kernel_version_0", resourceCulture);
+ }
+ }
+
+ internal static string FFSPlugin_Name {
+ get {
+ return ResourceManager.GetString("FFSPlugin_Name", resourceCulture);
+ }
+ }
+
+ internal static string Not_a_UFS_filesystem_I_shouldnt_have_arrived_here {
+ get {
+ return ResourceManager.GetString("Not_a_UFS_filesystem_I_shouldnt_have_arrived_here", resourceCulture);
+ }
+ }
+
+ internal static string UFS_filesystem {
+ get {
+ return ResourceManager.GetString("UFS_filesystem", resourceCulture);
+ }
+ }
+
+ internal static string Big_endian_UFS_filesystem {
+ get {
+ return ResourceManager.GetString("Big_endian_UFS_filesystem", resourceCulture);
+ }
+ }
+
+ internal static string BorderWare_UFS_filesystem {
+ get {
+ return ResourceManager.GetString("BorderWare_UFS_filesystem", resourceCulture);
+ }
+ }
+
+ internal static string Big_endian_BorderWare_UFS_filesystem {
+ get {
+ return ResourceManager.GetString("Big_endian_BorderWare_UFS_filesystem", resourceCulture);
+ }
+ }
+
+ internal static string UFS2_filesystem {
+ get {
+ return ResourceManager.GetString("UFS2_filesystem", resourceCulture);
+ }
+ }
+
+ internal static string Big_endian_UFS2_filesystem {
+ get {
+ return ResourceManager.GetString("Big_endian_UFS2_filesystem", resourceCulture);
+ }
+ }
+
+ internal static string Incompletely_initialized_UFS_filesystem {
+ get {
+ return ResourceManager.GetString("Incompletely_initialized_UFS_filesystem", resourceCulture);
+ }
+ }
+
+ internal static string BEWARE_Following_information_may_be_completely_wrong {
+ get {
+ return ResourceManager.GetString("BEWARE_Following_information_may_be_completely_wrong", resourceCulture);
+ }
+ }
+
+ internal static string Incompletely_initialized_big_endian_UFS_filesystem {
+ get {
+ return ResourceManager.GetString("Incompletely_initialized_big_endian_UFS_filesystem", resourceCulture);
+ }
+ }
+
+ internal static string There_are_a_lot_of_variants_of_UFS_using_overlapped_values_on_same_fields {
+ get {
+ return ResourceManager.GetString("There_are_a_lot_of_variants_of_UFS_using_overlapped_values_on_same_fields", resourceCulture);
+ }
+ }
+
+ internal static string I_will_try_to_guess_which_one_it_is_but_unless_its_UFS2_I_may_be_surely_wrong {
+ get {
+ return ResourceManager.GetString("I_will_try_to_guess_which_one_it_is_but_unless_its_UFS2_I_may_be_surely_wrong", resourceCulture);
+ }
+ }
+
+ internal static string Guessed_as_42BSD_FFS {
+ get {
+ return ResourceManager.GetString("Guessed_as_42BSD_FFS", resourceCulture);
+ }
+ }
+
+ internal static string Guessed_as_43BSD_FFS {
+ get {
+ return ResourceManager.GetString("Guessed_as_43BSD_FFS", resourceCulture);
+ }
+ }
+
+ internal static string Guessed_as_44BSD_FFS {
+ get {
+ return ResourceManager.GetString("Guessed_as_44BSD_FFS", resourceCulture);
+ }
+ }
+
+ internal static string Guessed_as_SunOS_FFS {
+ get {
+ return ResourceManager.GetString("Guessed_as_SunOS_FFS", resourceCulture);
+ }
+ }
+
+ internal static string Guessed_as_SunOS_x86_FFS {
+ get {
+ return ResourceManager.GetString("Guessed_as_SunOS_x86_FFS", resourceCulture);
+ }
+ }
+
+ internal static string Guessed_as_UFS {
+ get {
+ return ResourceManager.GetString("Guessed_as_UFS", resourceCulture);
+ }
+ }
+
+ internal static string Linked_list_of_filesystems_0 {
+ get {
+ return ResourceManager.GetString("Linked_list_of_filesystems_0", resourceCulture);
+ }
+ }
+
+ internal static string Superblock_LBA_0 {
+ get {
+ return ResourceManager.GetString("Superblock_LBA_0", resourceCulture);
+ }
+ }
+
+ internal static string Cylinder_block_LBA_0 {
+ get {
+ return ResourceManager.GetString("Cylinder_block_LBA_0", resourceCulture);
+ }
+ }
+
+ internal static string inode_block_LBA_0 {
+ get {
+ return ResourceManager.GetString("inode_block_LBA_0", resourceCulture);
+ }
+ }
+
+ internal static string First_data_block_LBA_0 {
+ get {
+ return ResourceManager.GetString("First_data_block_LBA_0", resourceCulture);
+ }
+ }
+
+ internal static string Cylinder_group_offset_in_cylinder_0 {
+ get {
+ return ResourceManager.GetString("Cylinder_group_offset_in_cylinder_0", resourceCulture);
+ }
+ }
+
+ internal static string Volume_last_written_on_0 {
+ get {
+ return ResourceManager.GetString("Volume_last_written_on_0", resourceCulture);
+ }
+ }
+
+ internal static string _0_data_blocks_in_volume_1_bytes {
+ get {
+ return ResourceManager.GetString("_0_data_blocks_in_volume_1_bytes", resourceCulture);
+ }
+ }
+
+ internal static string _0_cylinder_groups_in_volume {
+ get {
+ return ResourceManager.GetString("_0_cylinder_groups_in_volume", resourceCulture);
+ }
+ }
+
+ internal static string _0_bytes_in_a_basic_block {
+ get {
+ return ResourceManager.GetString("_0_bytes_in_a_basic_block", resourceCulture);
+ }
+ }
+
+ internal static string _0_bytes_in_a_frag_block {
+ get {
+ return ResourceManager.GetString("_0_bytes_in_a_frag_block", resourceCulture);
+ }
+ }
+
+ internal static string _0_frags_in_a_block {
+ get {
+ return ResourceManager.GetString("_0_frags_in_a_block", resourceCulture);
+ }
+ }
+
+ internal static string _0_of_blocks_must_be_free {
+ get {
+ return ResourceManager.GetString("_0_of_blocks_must_be_free", resourceCulture);
+ }
+ }
+
+ internal static string _0_ms_for_optimal_next_block {
+ get {
+ return ResourceManager.GetString("_0_ms_for_optimal_next_block", resourceCulture);
+ }
+ }
+
+ internal static string Disk_rotates_0_times_per_second_1_rpm {
+ get {
+ return ResourceManager.GetString("Disk_rotates_0_times_per_second_1_rpm", resourceCulture);
+ }
+ }
+
+ internal static string _0_contiguous_blocks_at_maximum {
+ get {
+ return ResourceManager.GetString("_0_contiguous_blocks_at_maximum", resourceCulture);
+ }
+ }
+
+ internal static string _0_blocks_per_cylinder_group_at_maximum {
+ get {
+ return ResourceManager.GetString("_0_blocks_per_cylinder_group_at_maximum", resourceCulture);
+ }
+ }
+
+ internal static string Superblock_is_0_bytes {
+ get {
+ return ResourceManager.GetString("Superblock_is_0_bytes", resourceCulture);
+ }
+ }
+
+ internal static string NINDIR_0 {
+ get {
+ return ResourceManager.GetString("NINDIR_0", resourceCulture);
+ }
+ }
+
+ internal static string INOPB_0 {
+ get {
+ return ResourceManager.GetString("INOPB_0", resourceCulture);
+ }
+ }
+
+ internal static string NSPF_0 {
+ get {
+ return ResourceManager.GetString("NSPF_0", resourceCulture);
+ }
+ }
+
+ internal static string Filesystem_will_minimize_allocation_time {
+ get {
+ return ResourceManager.GetString("Filesystem_will_minimize_allocation_time", resourceCulture);
+ }
+ }
+
+ internal static string Filesystem_will_minimize_volume_fragmentation {
+ get {
+ return ResourceManager.GetString("Filesystem_will_minimize_volume_fragmentation", resourceCulture);
+ }
+ }
+
+ internal static string Unknown_optimization_value_0 {
+ get {
+ return ResourceManager.GetString("Unknown_optimization_value_0", resourceCulture);
+ }
+ }
+
+ internal static string _0_sectors_track {
+ get {
+ return ResourceManager.GetString("_0_sectors_track", resourceCulture);
+ }
+ }
+
+ internal static string Volume_state_on_0 {
+ get {
+ return ResourceManager.GetString("Volume_state_on_0", resourceCulture);
+ }
+ }
+
+ internal static string Hardware_sector_interleave_0 {
+ get {
+ return ResourceManager.GetString("Hardware_sector_interleave_0", resourceCulture);
+ }
+ }
+
+ internal static string Sector_zero_skew_0_track {
+ get {
+ return ResourceManager.GetString("Sector_zero_skew_0_track", resourceCulture);
+ }
+ }
+
+ internal static string Volume_ID_0_X8_1_X8 {
+ get {
+ return ResourceManager.GetString("Volume_ID_0_X8_1_X8", resourceCulture);
+ }
+ }
+
+ internal static string _0_µsec_for_head_switch {
+ get {
+ return ResourceManager.GetString("_0_µsec_for_head_switch", resourceCulture);
+ }
+ }
+
+ internal static string _0_µsec_for_track_to_track_seek {
+ get {
+ return ResourceManager.GetString("_0_µsec_for_track_to_track_seek", resourceCulture);
+ }
+ }
+
+ internal static string Cylinder_group_summary_LBA_0 {
+ get {
+ return ResourceManager.GetString("Cylinder_group_summary_LBA_0", resourceCulture);
+ }
+ }
+
+ internal static string _0_bytes_in_cylinder_group_summary {
+ get {
+ return ResourceManager.GetString("_0_bytes_in_cylinder_group_summary", resourceCulture);
+ }
+ }
+
+ internal static string _0_bytes_in_cylinder_group {
+ get {
+ return ResourceManager.GetString("_0_bytes_in_cylinder_group", resourceCulture);
+ }
+ }
+
+ internal static string _0_tracks_cylinder {
+ get {
+ return ResourceManager.GetString("_0_tracks_cylinder", resourceCulture);
+ }
+ }
+
+ internal static string _0_sectors_cylinder {
+ get {
+ return ResourceManager.GetString("_0_sectors_cylinder", resourceCulture);
+ }
+ }
+
+ internal static string _0_cylinders_in_volume {
+ get {
+ return ResourceManager.GetString("_0_cylinders_in_volume", resourceCulture);
+ }
+ }
+
+ internal static string _0_cylinders_group {
+ get {
+ return ResourceManager.GetString("_0_cylinders_group", resourceCulture);
+ }
+ }
+
+ internal static string _0_blocks_per_group {
+ get {
+ return ResourceManager.GetString("_0_blocks_per_group", resourceCulture);
+ }
+ }
+
+ internal static string _0_directories {
+ get {
+ return ResourceManager.GetString("_0_directories", resourceCulture);
+ }
+ }
+
+ internal static string _0_free_frags {
+ get {
+ return ResourceManager.GetString("_0_free_frags", resourceCulture);
+ }
+ }
+
+ internal static string Superblock_is_under_modification {
+ get {
+ return ResourceManager.GetString("Superblock_is_under_modification", resourceCulture);
+ }
+ }
+
+ internal static string Volume_is_read_only {
+ get {
+ return ResourceManager.GetString("Volume_is_read_only", resourceCulture);
+ }
+ }
+
+ internal static string Volume_flags_0_X2 {
+ get {
+ return ResourceManager.GetString("Volume_flags_0_X2", resourceCulture);
+ }
+ }
+
+ internal static string Volume_last_mounted_at_0 {
+ get {
+ return ResourceManager.GetString("Volume_last_mounted_at_0", resourceCulture);
+ }
+ }
+
+ internal static string Last_searched_cylinder_group_0 {
+ get {
+ return ResourceManager.GetString("Last_searched_cylinder_group_0", resourceCulture);
+ }
+ }
+
+ internal static string _0_contiguously_allocated_directories {
+ get {
+ return ResourceManager.GetString("_0_contiguously_allocated_directories", resourceCulture);
+ }
+ }
+
+ internal static string Standard_superblock_LBA_0 {
+ get {
+ return ResourceManager.GetString("Standard_superblock_LBA_0", resourceCulture);
+ }
+ }
+
+ internal static string _0_blocks_1_bytes {
+ get {
+ return ResourceManager.GetString("_0_blocks_1_bytes", resourceCulture);
+ }
+ }
+
+ internal static string _0_data_blocks_1_bytes {
+ get {
+ return ResourceManager.GetString("_0_data_blocks_1_bytes", resourceCulture);
+ }
+ }
+
+ internal static string Cylinder_group_summary_area_LBA_0 {
+ get {
+ return ResourceManager.GetString("Cylinder_group_summary_area_LBA_0", resourceCulture);
+ }
+ }
+
+ internal static string _0_blocks_pending_of_being_freed {
+ get {
+ return ResourceManager.GetString("_0_blocks_pending_of_being_freed", resourceCulture);
+ }
+ }
+
+ internal static string _0_inodes_pending_of_being_freed {
+ get {
+ return ResourceManager.GetString("_0_inodes_pending_of_being_freed", resourceCulture);
+ }
+ }
+
+ internal static string _0_blocks_on_cluster_summary_array {
+ get {
+ return ResourceManager.GetString("_0_blocks_on_cluster_summary_array", resourceCulture);
+ }
+ }
+
+ internal static string Maximum_length_of_a_symbolic_link_0 {
+ get {
+ return ResourceManager.GetString("Maximum_length_of_a_symbolic_link_0", resourceCulture);
+ }
+ }
+
+ internal static string A_file_can_be_0_bytes_at_max {
+ get {
+ return ResourceManager.GetString("A_file_can_be_0_bytes_at_max", resourceCulture);
+ }
+ }
+
+ internal static string _0_rotational_positions {
+ get {
+ return ResourceManager.GetString("_0_rotational_positions", resourceCulture);
+ }
+ }
+
+ internal static string _0_blocks_per_rotation {
+ get {
+ return ResourceManager.GetString("_0_blocks_per_rotation", resourceCulture);
+ }
+ }
+
+ internal static string Fossil_Name {
+ get {
+ return ResourceManager.GetString("Fossil_Name", resourceCulture);
+ }
+ }
+
+ internal static string magic_at_0_expected_1 {
+ get {
+ return ResourceManager.GetString("magic_at_0_expected_1", resourceCulture);
+ }
+ }
+
+ internal static string Fossil_filesystem {
+ get {
+ return ResourceManager.GetString("Fossil_filesystem", resourceCulture);
+ }
+ }
+
+ internal static string Filesystem_version_0 {
+ get {
+ return ResourceManager.GetString("Filesystem_version_0", resourceCulture);
+ }
+ }
+
+ internal static string Superblock_resides_in_block_0 {
+ get {
+ return ResourceManager.GetString("Superblock_resides_in_block_0", resourceCulture);
+ }
+ }
+
+ internal static string Labels_resides_in_block_0 {
+ get {
+ return ResourceManager.GetString("Labels_resides_in_block_0", resourceCulture);
+ }
+ }
+
+ internal static string Data_starts_at_block_0 {
+ get {
+ return ResourceManager.GetString("Data_starts_at_block_0", resourceCulture);
+ }
+ }
+
+ internal static string magic_0_expected_1 {
+ get {
+ return ResourceManager.GetString("magic_0_expected_1", resourceCulture);
+ }
+ }
+
+ internal static string Epoch_low_0 {
+ get {
+ return ResourceManager.GetString("Epoch_low_0", resourceCulture);
+ }
+ }
+
+ internal static string Epoch_high_0 {
+ get {
+ return ResourceManager.GetString("Epoch_high_0", resourceCulture);
+ }
+ }
+
+ internal static string Next_QID_0 {
+ get {
+ return ResourceManager.GetString("Next_QID_0", resourceCulture);
+ }
+ }
+
+ internal static string Active_root_block_0 {
+ get {
+ return ResourceManager.GetString("Active_root_block_0", resourceCulture);
+ }
+ }
+
+ internal static string Next_root_block_0 {
+ get {
+ return ResourceManager.GetString("Next_root_block_0", resourceCulture);
+ }
+ }
+
+ internal static string Current_root_block_0 {
+ get {
+ return ResourceManager.GetString("Current_root_block_0", resourceCulture);
+ }
+ }
+
+ internal static string HAMMER_Name {
+ get {
+ return ResourceManager.GetString("HAMMER_Name", resourceCulture);
+ }
+ }
+
+ internal static string HAMMER_filesystem {
+ get {
+ return ResourceManager.GetString("HAMMER_filesystem", resourceCulture);
+ }
+ }
+
+ internal static string Volume_0_of_1_on_this_filesystem {
+ get {
+ return ResourceManager.GetString("Volume_0_of_1_on_this_filesystem", resourceCulture);
+ }
+ }
+
+ internal static string Volume_serial_0 {
+ get {
+ return ResourceManager.GetString("Volume_serial_0", resourceCulture);
+ }
+ }
+
+ internal static string Boot_area_starts_at_0 {
+ get {
+ return ResourceManager.GetString("Boot_area_starts_at_0", resourceCulture);
+ }
+ }
+
+ internal static string Memory_log_starts_at_0 {
+ get {
+ return ResourceManager.GetString("Memory_log_starts_at_0", resourceCulture);
+ }
+ }
+
+ internal static string First_volume_buffer_starts_at_0 {
+ get {
+ return ResourceManager.GetString("First_volume_buffer_starts_at_0", resourceCulture);
+ }
+ }
+
+ internal static string Volume_ends_at_0 {
+ get {
+ return ResourceManager.GetString("Volume_ends_at_0", resourceCulture);
+ }
+ }
+
+ internal static string Filesystem_contains_0_big_blocks_1_bytes {
+ get {
+ return ResourceManager.GetString("Filesystem_contains_0_big_blocks_1_bytes", resourceCulture);
+ }
+ }
+
+ internal static string Filesystem_has_0_big_blocks_free_1_bytes {
+ get {
+ return ResourceManager.GetString("Filesystem_has_0_big_blocks_free_1_bytes", resourceCulture);
+ }
+ }
+
+ internal static string Filesystem_has_0_inodes_used {
+ get {
+ return ResourceManager.GetString("Filesystem_has_0_inodes_used", resourceCulture);
+ }
+ }
+
+ internal static string HPFS_Name {
+ get {
+ return ResourceManager.GetString("HPFS_Name", resourceCulture);
+ }
+ }
+
+ internal static string This_may_not_be_HPFS_following_information_may_be_not_correct {
+ get {
+ return ResourceManager.GetString("This_may_not_be_HPFS_following_information_may_be_not_correct", resourceCulture);
+ }
+ }
+
+ internal static string File_system_type_0_Should_be_HPFS {
+ get {
+ return ResourceManager.GetString("File_system_type_0_Should_be_HPFS", resourceCulture);
+ }
+ }
+
+ internal static string Superblock_magic1_0_Should_be_0xF995E849 {
+ get {
+ return ResourceManager.GetString("Superblock_magic1_0_Should_be_0xF995E849", resourceCulture);
+ }
+ }
+
+ internal static string Superblock_magic2_0_Should_be_0xFA53E9C5 {
+ get {
+ return ResourceManager.GetString("Superblock_magic2_0_Should_be_0xFA53E9C5", resourceCulture);
+ }
+ }
+
+ internal static string Spareblock_magic1_0_Should_be_0xF9911849 {
+ get {
+ return ResourceManager.GetString("Spareblock_magic1_0_Should_be_0xF9911849", resourceCulture);
+ }
+ }
+
+ internal static string Spareblock_magic2_0_Should_be_0xFA5229C5 {
+ get {
+ return ResourceManager.GetString("Spareblock_magic2_0_Should_be_0xFA5229C5", resourceCulture);
+ }
+ }
+
+ internal static string NT_Flags_0 {
+ get {
+ return ResourceManager.GetString("NT_Flags_0", resourceCulture);
+ }
+ }
+
+ internal static string Signature_0 {
+ get {
+ return ResourceManager.GetString("Signature_0", resourceCulture);
+ }
+ }
+
+ internal static string HPFS_version_0 {
+ get {
+ return ResourceManager.GetString("HPFS_version_0", resourceCulture);
+ }
+ }
+
+ internal static string Functional_version_0 {
+ get {
+ return ResourceManager.GetString("Functional_version_0", resourceCulture);
+ }
+ }
+
+ internal static string Sector_of_root_directory_FNode_0 {
+ get {
+ return ResourceManager.GetString("Sector_of_root_directory_FNode_0", resourceCulture);
+ }
+ }
+
+ internal static string _0_sectors_are_marked_bad {
+ get {
+ return ResourceManager.GetString("_0_sectors_are_marked_bad", resourceCulture);
+ }
+ }
+
+ internal static string Sector_of_free_space_bitmaps_0 {
+ get {
+ return ResourceManager.GetString("Sector_of_free_space_bitmaps_0", resourceCulture);
+ }
+ }
+
+ internal static string Sector_of_bad_blocks_list_0 {
+ get {
+ return ResourceManager.GetString("Sector_of_bad_blocks_list_0", resourceCulture);
+ }
+ }
+
+ internal static string Date_of_last_integrity_check_0 {
+ get {
+ return ResourceManager.GetString("Date_of_last_integrity_check_0", resourceCulture);
+ }
+ }
+
+ internal static string Filesystem_integrity_has_never_been_checked {
+ get {
+ return ResourceManager.GetString("Filesystem_integrity_has_never_been_checked", resourceCulture);
+ }
+ }
+
+ internal static string Date_of_last_optimization_0 {
+ get {
+ return ResourceManager.GetString("Date_of_last_optimization_0", resourceCulture);
+ }
+ }
+
+ internal static string Filesystem_has_never_been_optimized {
+ get {
+ return ResourceManager.GetString("Filesystem_has_never_been_optimized", resourceCulture);
+ }
+ }
+
+ internal static string Directory_band_has_0_sectors {
+ get {
+ return ResourceManager.GetString("Directory_band_has_0_sectors", resourceCulture);
+ }
+ }
+
+ internal static string Directory_band_starts_at_sector_0 {
+ get {
+ return ResourceManager.GetString("Directory_band_starts_at_sector_0", resourceCulture);
+ }
+ }
+
+ internal static string Directory_band_ends_at_sector_0 {
+ get {
+ return ResourceManager.GetString("Directory_band_ends_at_sector_0", resourceCulture);
+ }
+ }
+
+ internal static string Sector_of_directory_band_bitmap_0 {
+ get {
+ return ResourceManager.GetString("Sector_of_directory_band_bitmap_0", resourceCulture);
+ }
+ }
+
+ internal static string Sector_of_ACL_directory_0 {
+ get {
+ return ResourceManager.GetString("Sector_of_ACL_directory_0", resourceCulture);
+ }
+ }
+
+ internal static string Sector_of_Hotfix_directory_0 {
+ get {
+ return ResourceManager.GetString("Sector_of_Hotfix_directory_0", resourceCulture);
+ }
+ }
+
+ internal static string _0_used_Hotfix_entries {
+ get {
+ return ResourceManager.GetString("_0_used_Hotfix_entries", resourceCulture);
+ }
+ }
+
+ internal static string _0_total_Hotfix_entries {
+ get {
+ return ResourceManager.GetString("_0_total_Hotfix_entries", resourceCulture);
+ }
+ }
+
+ internal static string _0_free_spare_DNodes {
+ get {
+ return ResourceManager.GetString("_0_free_spare_DNodes", resourceCulture);
+ }
+ }
+
+ internal static string _0_total_spare_DNodes {
+ get {
+ return ResourceManager.GetString("_0_total_spare_DNodes", resourceCulture);
+ }
+ }
+
+ internal static string Sector_of_codepage_directory_0 {
+ get {
+ return ResourceManager.GetString("Sector_of_codepage_directory_0", resourceCulture);
+ }
+ }
+
+ internal static string _0_codepages_used_in_the_volume {
+ get {
+ return ResourceManager.GetString("_0_codepages_used_in_the_volume", resourceCulture);
+ }
+ }
+
+ internal static string SuperBlock_CRC32_0 {
+ get {
+ return ResourceManager.GetString("SuperBlock_CRC32_0", resourceCulture);
+ }
+ }
+
+ internal static string SpareBlock_CRC32_0 {
+ get {
+ return ResourceManager.GetString("SpareBlock_CRC32_0", resourceCulture);
+ }
+ }
+
+ internal static string Flags {
+ get {
+ return ResourceManager.GetString("Flags", resourceCulture);
+ }
+ }
+
+ internal static string Filesystem_is_dirty {
+ get {
+ return ResourceManager.GetString("Filesystem_is_dirty", resourceCulture);
+ }
+ }
+
+ internal static string Filesystem_is_clean {
+ get {
+ return ResourceManager.GetString("Filesystem_is_clean", resourceCulture);
+ }
+ }
+
+ internal static string Spare_directory_blocks_are_in_use {
+ get {
+ return ResourceManager.GetString("Spare_directory_blocks_are_in_use", resourceCulture);
+ }
+ }
+
+ internal static string Hotfixes_are_in_use {
+ get {
+ return ResourceManager.GetString("Hotfixes_are_in_use", resourceCulture);
+ }
+ }
+
+ internal static string Disk_contains_bad_sectors {
+ get {
+ return ResourceManager.GetString("Disk_contains_bad_sectors", resourceCulture);
+ }
+ }
+
+ internal static string Disk_has_a_bad_bitmap {
+ get {
+ return ResourceManager.GetString("Disk_has_a_bad_bitmap", resourceCulture);
+ }
+ }
+
+ internal static string Filesystem_was_formatted_fast {
+ get {
+ return ResourceManager.GetString("Filesystem_was_formatted_fast", resourceCulture);
+ }
+ }
+
+ internal static string Unknown_flag_0x40_on_flags1_is_active {
+ get {
+ return ResourceManager.GetString("Unknown_flag_0x40_on_flags1_is_active", resourceCulture);
+ }
+ }
+
+ internal static string Filesystem_has_been_mounted_by_an_old_IFS {
+ get {
+ return ResourceManager.GetString("Filesystem_has_been_mounted_by_an_old_IFS", resourceCulture);
+ }
+ }
+
+ internal static string Install_DASD_limits {
+ get {
+ return ResourceManager.GetString("Install_DASD_limits", resourceCulture);
+ }
+ }
+
+ internal static string Resync_DASD_limits {
+ get {
+ return ResourceManager.GetString("Resync_DASD_limits", resourceCulture);
+ }
+ }
+
+ internal static string DASD_limits_are_operational {
+ get {
+ return ResourceManager.GetString("DASD_limits_are_operational", resourceCulture);
+ }
+ }
+
+ internal static string Multimedia_is_active {
+ get {
+ return ResourceManager.GetString("Multimedia_is_active", resourceCulture);
+ }
+ }
+
+ internal static string DCE_ACLs_are_active {
+ get {
+ return ResourceManager.GetString("DCE_ACLs_are_active", resourceCulture);
+ }
+ }
+
+ internal static string DASD_limits_are_dirty {
+ get {
+ return ResourceManager.GetString("DASD_limits_are_dirty", resourceCulture);
+ }
+ }
+
+ internal static string Unknown_flag_0x40_on_flags2_is_active {
+ get {
+ return ResourceManager.GetString("Unknown_flag_0x40_on_flags2_is_active", resourceCulture);
+ }
+ }
+
+ internal static string Unknown_flag_0x80_on_flags2_is_active {
+ get {
+ return ResourceManager.GetString("Unknown_flag_0x80_on_flags2_is_active", resourceCulture);
+ }
+ }
+
+ internal static string JFS_Name {
+ get {
+ return ResourceManager.GetString("JFS_Name", resourceCulture);
+ }
+ }
+
+ internal static string JFS_filesystem {
+ get {
+ return ResourceManager.GetString("JFS_filesystem", resourceCulture);
+ }
+ }
+
+ internal static string _0_blocks_of_1_bytes {
+ get {
+ return ResourceManager.GetString("_0_blocks_of_1_bytes", resourceCulture);
+ }
+ }
+
+ internal static string _0_blocks_per_allocation_group {
+ get {
+ return ResourceManager.GetString("_0_blocks_per_allocation_group", resourceCulture);
+ }
+ }
+
+ internal static string Volume_uses_Unicode_for_directory_entries {
+ get {
+ return ResourceManager.GetString("Volume_uses_Unicode_for_directory_entries", resourceCulture);
+ }
+ }
+
+ internal static string Volume_remounts_read_only_on_error {
+ get {
+ return ResourceManager.GetString("Volume_remounts_read_only_on_error", resourceCulture);
+ }
+ }
+
+ internal static string Volume_continues_on_error {
+ get {
+ return ResourceManager.GetString("Volume_continues_on_error", resourceCulture);
+ }
+ }
+
+ internal static string Volume_panics_on_error {
+ get {
+ return ResourceManager.GetString("Volume_panics_on_error", resourceCulture);
+ }
+ }
+
+ internal static string Volume_has_user_quotas_enabled {
+ get {
+ return ResourceManager.GetString("Volume_has_user_quotas_enabled", resourceCulture);
+ }
+ }
+
+ internal static string Volume_has_group_quotas_enabled {
+ get {
+ return ResourceManager.GetString("Volume_has_group_quotas_enabled", resourceCulture);
+ }
+ }
+
+ internal static string Volume_is_not_using_any_journal {
+ get {
+ return ResourceManager.GetString("Volume_is_not_using_any_journal", resourceCulture);
+ }
+ }
+
+ internal static string Volume_sends_TRIM_UNMAP_commands_to_underlying_device {
+ get {
+ return ResourceManager.GetString("Volume_sends_TRIM_UNMAP_commands_to_underlying_device", resourceCulture);
+ }
+ }
+
+ internal static string Volume_commits_in_groups_of_1 {
+ get {
+ return ResourceManager.GetString("Volume_commits_in_groups_of_1", resourceCulture);
+ }
+ }
+
+ internal static string Volume_commits_lazy {
+ get {
+ return ResourceManager.GetString("Volume_commits_lazy", resourceCulture);
+ }
+ }
+
+ internal static string Volume_does_not_commit_to_log {
+ get {
+ return ResourceManager.GetString("Volume_does_not_commit_to_log", resourceCulture);
+ }
+ }
+
+ internal static string Volume_has_log_withing_itself {
+ get {
+ return ResourceManager.GetString("Volume_has_log_withing_itself", resourceCulture);
+ }
+ }
+
+ internal static string Volume_has_log_withing_itself_and_is_moving_it_out {
+ get {
+ return ResourceManager.GetString("Volume_has_log_withing_itself_and_is_moving_it_out", resourceCulture);
+ }
+ }
+
+ internal static string Volume_supports_sparse_files {
+ get {
+ return ResourceManager.GetString("Volume_supports_sparse_files", resourceCulture);
+ }
+ }
+
+ internal static string Volume_has_bad_current_secondary_ait {
+ get {
+ return ResourceManager.GetString("Volume_has_bad_current_secondary_ait", resourceCulture);
+ }
+ }
+
+ internal static string Volume_has_DASD_limits_enabled {
+ get {
+ return ResourceManager.GetString("Volume_has_DASD_limits_enabled", resourceCulture);
+ }
+ }
+
+ internal static string Volume_primes_DASD_on_boot {
+ get {
+ return ResourceManager.GetString("Volume_primes_DASD_on_boot", resourceCulture);
+ }
+ }
+
+ internal static string Volume_is_in_a_big_endian_system {
+ get {
+ return ResourceManager.GetString("Volume_is_in_a_big_endian_system", resourceCulture);
+ }
+ }
+
+ internal static string Volume_has_persistent_indexes {
+ get {
+ return ResourceManager.GetString("Volume_has_persistent_indexes", resourceCulture);
+ }
+ }
+
+ internal static string Volume_supports_Linux {
+ get {
+ return ResourceManager.GetString("Volume_supports_Linux", resourceCulture);
+ }
+ }
+
+ internal static string Volume_supports_DCE_DFS_LFS {
+ get {
+ return ResourceManager.GetString("Volume_supports_DCE_DFS_LFS", resourceCulture);
+ }
+ }
+
+ internal static string Volume_supports_OS2_and_is_case_insensitive {
+ get {
+ return ResourceManager.GetString("Volume_supports_OS2_and_is_case_insensitive", resourceCulture);
+ }
+ }
+
+ internal static string Volume_supports_AIX {
+ get {
+ return ResourceManager.GetString("Volume_supports_AIX", resourceCulture);
+ }
+ }
+
+ internal static string Volume_was_last_updated_on_0_ {
+ get {
+ return ResourceManager.GetString("Volume_was_last_updated_on_0_", resourceCulture);
+ }
+ }
+
+ internal static string LIF_Name {
+ get {
+ return ResourceManager.GetString("LIF_Name", resourceCulture);
+ }
+ }
+
+ internal static string HP_Logical_Interchange_Format {
+ get {
+ return ResourceManager.GetString("HP_Logical_Interchange_Format", resourceCulture);
+ }
+ }
+
+ internal static string Directory_starts_at_cluster_0 {
+ get {
+ return ResourceManager.GetString("Directory_starts_at_cluster_0", resourceCulture);
+ }
+ }
+
+ internal static string LIF_identifier_0 {
+ get {
+ return ResourceManager.GetString("LIF_identifier_0", resourceCulture);
+ }
+ }
+
+ internal static string Directory_size_0_clusters {
+ get {
+ return ResourceManager.GetString("Directory_size_0_clusters", resourceCulture);
+ }
+ }
+
+ internal static string LIF_version_0 {
+ get {
+ return ResourceManager.GetString("LIF_version_0", resourceCulture);
+ }
+ }
+
+ internal static string _0_tracks {
+ get {
+ return ResourceManager.GetString("_0_tracks", resourceCulture);
+ }
+ }
+
+ internal static string _0_sectors {
+ get {
+ return ResourceManager.GetString("_0_sectors", resourceCulture);
+ }
+ }
+
+ internal static string Locus_Name {
+ get {
+ return ResourceManager.GetString("Locus_Name", resourceCulture);
+ }
+ }
+
+ internal static string magic_at_1_equals_0 {
+ get {
+ return ResourceManager.GetString("magic_at_1_equals_0", resourceCulture);
+ }
+ }
+
+ internal static string Locus_filesystem_old {
+ get {
+ return ResourceManager.GetString("Locus_filesystem_old", resourceCulture);
+ }
+ }
+
+ internal static string Locus_filesystem {
+ get {
+ return ResourceManager.GetString("Locus_filesystem", resourceCulture);
+ }
+ }
+
+ internal static string Superblock_last_modified_on_0 {
+ get {
+ return ResourceManager.GetString("Superblock_last_modified_on_0", resourceCulture);
+ }
+ }
+
+ internal static string Volume_has_0_blocks_of_1_bytes_each_total_2_bytes {
+ get {
+ return ResourceManager.GetString("Volume_has_0_blocks_of_1_bytes_each_total_2_bytes", resourceCulture);
+ }
+ }
+
+ internal static string _0_blocks_free_1_bytes {
+ get {
+ return ResourceManager.GetString("_0_blocks_free_1_bytes", resourceCulture);
+ }
+ }
+
+ internal static string Inode_list_uses_0_blocks {
+ get {
+ return ResourceManager.GetString("Inode_list_uses_0_blocks", resourceCulture);
+ }
+ }
+
+ internal static string Next_free_inode_search_will_start_at_inode_0 {
+ get {
+ return ResourceManager.GetString("Next_free_inode_search_will_start_at_inode_0", resourceCulture);
+ }
+ }
+
+ internal static string There_are_an_estimate_of_0_free_inodes_before_next_search_start {
+ get {
+ return ResourceManager.GetString("There_are_an_estimate_of_0_free_inodes_before_next_search_start", resourceCulture);
+ }
+ }
+
+ internal static string Read_only_volume {
+ get {
+ return ResourceManager.GetString("Read_only_volume", resourceCulture);
+ }
+ }
+
+ internal static string Clean_volume {
+ get {
+ return ResourceManager.GetString("Clean_volume", resourceCulture);
+ }
+ }
+
+ internal static string Dirty_volume {
+ get {
+ return ResourceManager.GetString("Dirty_volume", resourceCulture);
+ }
+ }
+
+ internal static string Removable_volume {
+ get {
+ return ResourceManager.GetString("Removable_volume", resourceCulture);
+ }
+ }
+
+ internal static string This_is_the_primary_pack {
+ get {
+ return ResourceManager.GetString("This_is_the_primary_pack", resourceCulture);
+ }
+ }
+
+ internal static string Replicated_volume {
+ get {
+ return ResourceManager.GetString("Replicated_volume", resourceCulture);
+ }
+ }
+
+ internal static string User_replicated_volume {
+ get {
+ return ResourceManager.GetString("User_replicated_volume", resourceCulture);
+ }
+ }
+
+ internal static string Backbone_volume {
+ get {
+ return ResourceManager.GetString("Backbone_volume", resourceCulture);
+ }
+ }
+
+ internal static string NFS_volume {
+ get {
+ return ResourceManager.GetString("NFS_volume", resourceCulture);
+ }
+ }
+
+ internal static string Volume_inhibits_automatic_fsck {
+ get {
+ return ResourceManager.GetString("Volume_inhibits_automatic_fsck", resourceCulture);
+ }
+ }
+
+ internal static string Set_uid_set_gid_is_disabled {
+ get {
+ return ResourceManager.GetString("Set_uid_set_gid_is_disabled", resourceCulture);
+ }
+ }
+
+ internal static string Volume_uses_synchronous_writes {
+ get {
+ return ResourceManager.GetString("Volume_uses_synchronous_writes", resourceCulture);
+ }
+ }
+
+ internal static string Physical_volume_name_0 {
+ get {
+ return ResourceManager.GetString("Physical_volume_name_0", resourceCulture);
+ }
+ }
+
+ internal static string Global_File_System_number_0 {
+ get {
+ return ResourceManager.GetString("Global_File_System_number_0", resourceCulture);
+ }
+ }
+
+ internal static string Global_File_System_pack_number_0 {
+ get {
+ return ResourceManager.GetString("Global_File_System_pack_number_0", resourceCulture);
+ }
+ }
+
+ internal static string MicroDOS_Name {
+ get {
+ return ResourceManager.GetString("MicroDOS_Name", resourceCulture);
+ }
+ }
+
+ internal static string MicroDOS_filesystem {
+ get {
+ return ResourceManager.GetString("MicroDOS_filesystem", resourceCulture);
+ }
+ }
+
+ internal static string Volume_has_0_blocks_1_bytes {
+ get {
+ return ResourceManager.GetString("Volume_has_0_blocks_1_bytes", resourceCulture);
+ }
+ }
+
+ internal static string Volume_has_0_blocks_used_1_bytes {
+ get {
+ return ResourceManager.GetString("Volume_has_0_blocks_used_1_bytes", resourceCulture);
+ }
+ }
+
+ internal static string Volume_contains_0_files {
+ get {
+ return ResourceManager.GetString("Volume_contains_0_files", resourceCulture);
+ }
+ }
+
+ internal static string First_used_block_is_0 {
+ get {
+ return ResourceManager.GetString("First_used_block_is_0", resourceCulture);
+ }
+ }
+
+ internal static string MinixFS_Name {
+ get {
+ return ResourceManager.GetString("MinixFS_Name", resourceCulture);
+ }
+ }
+
+ internal static string Minix_v3_filesystem {
+ get {
+ return ResourceManager.GetString("Minix_v3_filesystem", resourceCulture);
+ }
+ }
+
+ internal static string Minix_3_v2_filesystem {
+ get {
+ return ResourceManager.GetString("Minix_3_v2_filesystem", resourceCulture);
+ }
+ }
+
+ internal static string Minix_3_v1_filesystem {
+ get {
+ return ResourceManager.GetString("Minix_3_v1_filesystem", resourceCulture);
+ }
+ }
+
+ internal static string Minix_v1_filesystem {
+ get {
+ return ResourceManager.GetString("Minix_v1_filesystem", resourceCulture);
+ }
+ }
+
+ internal static string Minix_v2_filesystem {
+ get {
+ return ResourceManager.GetString("Minix_v2_filesystem", resourceCulture);
+ }
+ }
+
+ internal static string _0_chars_in_filename {
+ get {
+ return ResourceManager.GetString("_0_chars_in_filename", resourceCulture);
+ }
+ }
+
+ internal static string _0_zones_on_volume_1_bytes {
+ get {
+ return ResourceManager.GetString("_0_zones_on_volume_1_bytes", resourceCulture);
+ }
+ }
+
+ internal static string _0_bytes_block {
+ get {
+ return ResourceManager.GetString("_0_bytes_block", resourceCulture);
+ }
+ }
+
+ internal static string _0_inodes_on_volume {
+ get {
+ return ResourceManager.GetString("_0_inodes_on_volume", resourceCulture);
+ }
+ }
+
+ internal static string _0_blocks_on_inode_map_1_bytes {
+ get {
+ return ResourceManager.GetString("_0_blocks_on_inode_map_1_bytes", resourceCulture);
+ }
+ }
+
+ internal static string _0_blocks_on_zone_map_1_bytes {
+ get {
+ return ResourceManager.GetString("_0_blocks_on_zone_map_1_bytes", resourceCulture);
+ }
+ }
+
+ internal static string First_data_zone_0 {
+ get {
+ return ResourceManager.GetString("First_data_zone_0", resourceCulture);
+ }
+ }
+
+ internal static string _0_bytes_maximum_per_file {
+ get {
+ return ResourceManager.GetString("_0_bytes_maximum_per_file", resourceCulture);
+ }
+ }
+
+ internal static string On_disk_filesystem_version_0 {
+ get {
+ return ResourceManager.GetString("On_disk_filesystem_version_0", resourceCulture);
+ }
+ }
+
+ internal static string Filesystem_state_0 {
+ get {
+ return ResourceManager.GetString("Filesystem_state_0", resourceCulture);
+ }
+ }
+
+ internal static string NILFS2_Name {
+ get {
+ return ResourceManager.GetString("NILFS2_Name", resourceCulture);
+ }
+ }
+
+ internal static string NILFS2_filesystem {
+ get {
+ return ResourceManager.GetString("NILFS2_filesystem", resourceCulture);
+ }
+ }
+
+ internal static string _0_bytes_in_volume {
+ get {
+ return ResourceManager.GetString("_0_bytes_in_volume", resourceCulture);
+ }
+ }
+
+ internal static string Filesystem_created_on_Linux {
+ get {
+ return ResourceManager.GetString("Filesystem_created_on_Linux", resourceCulture);
+ }
+ }
+
+ internal static string Creator_OS_code_0 {
+ get {
+ return ResourceManager.GetString("Creator_OS_code_0", resourceCulture);
+ }
+ }
+
+ internal static string _0_bytes_per_inode {
+ get {
+ return ResourceManager.GetString("_0_bytes_per_inode", resourceCulture);
+ }
+ }
+
+ internal static string Volume_last_mounted_on_0 {
+ get {
+ return ResourceManager.GetString("Volume_last_mounted_on_0", resourceCulture);
+ }
+ }
+
+ internal static string NintendoPlugin_Name {
+ get {
+ return ResourceManager.GetString("NintendoPlugin_Name", resourceCulture);
+ }
+ }
+
+ internal static string Nintendo_optical_filesystem {
+ get {
+ return ResourceManager.GetString("Nintendo_optical_filesystem", resourceCulture);
+ }
+ }
+
+ internal static string Nintendo_Wii_Optical_Disc {
+ get {
+ return ResourceManager.GetString("Nintendo_Wii_Optical_Disc", resourceCulture);
+ }
+ }
+
+ internal static string Nintendo_GameCube_Optical_Disc {
+ get {
+ return ResourceManager.GetString("Nintendo_GameCube_Optical_Disc", resourceCulture);
+ }
+ }
+
+ internal static string Disc_ID_is_0 {
+ get {
+ return ResourceManager.GetString("Disc_ID_is_0", resourceCulture);
+ }
+ }
+
+ internal static string Disc_is_a_0_disc {
+ get {
+ return ResourceManager.GetString("Disc_is_a_0_disc", resourceCulture);
+ }
+ }
+
+ internal static string Disc_region_is_0 {
+ get {
+ return ResourceManager.GetString("Disc_region_is_0", resourceCulture);
+ }
+ }
+
+ internal static string Published_by_0 {
+ get {
+ return ResourceManager.GetString("Published_by_0", resourceCulture);
+ }
+ }
+
+ internal static string Disc_number_0_of_a_multi_disc_set {
+ get {
+ return ResourceManager.GetString("Disc_number_0_of_a_multi_disc_set", resourceCulture);
+ }
+ }
+
+ internal static string Disc_is_prepared_for_audio_streaming {
+ get {
+ return ResourceManager.GetString("Disc_is_prepared_for_audio_streaming", resourceCulture);
+ }
+ }
+
+ internal static string Audio_streaming_buffer_size_is_0_bytes {
+ get {
+ return ResourceManager.GetString("Audio_streaming_buffer_size_is_0_bytes", resourceCulture);
+ }
+ }
+
+ internal static string Title_0 {
+ get {
+ return ResourceManager.GetString("Title_0", resourceCulture);
+ }
+ }
+
+ internal static string First_0_partition_starts_at_sector_1 {
+ get {
+ return ResourceManager.GetString("First_0_partition_starts_at_sector_1", resourceCulture);
+ }
+ }
+
+ internal static string Second_0_partition_starts_at_sector_1 {
+ get {
+ return ResourceManager.GetString("Second_0_partition_starts_at_sector_1", resourceCulture);
+ }
+ }
+
+ internal static string Third_0_partition_starts_at_sector_1 {
+ get {
+ return ResourceManager.GetString("Third_0_partition_starts_at_sector_1", resourceCulture);
+ }
+ }
+
+ internal static string Fourth_0_partition_starts_at_sector_1 {
+ get {
+ return ResourceManager.GetString("Fourth_0_partition_starts_at_sector_1", resourceCulture);
+ }
+ }
+
+ internal static string Japan_age_rating_is_0 {
+ get {
+ return ResourceManager.GetString("Japan_age_rating_is_0", resourceCulture);
+ }
+ }
+
+ internal static string ESRB_age_rating_is_0 {
+ get {
+ return ResourceManager.GetString("ESRB_age_rating_is_0", resourceCulture);
+ }
+ }
+
+ internal static string German_age_rating_is_0 {
+ get {
+ return ResourceManager.GetString("German_age_rating_is_0", resourceCulture);
+ }
+ }
+
+ internal static string PEGI_age_rating_is_0 {
+ get {
+ return ResourceManager.GetString("PEGI_age_rating_is_0", resourceCulture);
+ }
+ }
+
+ internal static string Finland_age_rating_is_0 {
+ get {
+ return ResourceManager.GetString("Finland_age_rating_is_0", resourceCulture);
+ }
+ }
+
+ internal static string Portugal_age_rating_is_0 {
+ get {
+ return ResourceManager.GetString("Portugal_age_rating_is_0", resourceCulture);
+ }
+ }
+
+ internal static string UK_age_rating_is_0 {
+ get {
+ return ResourceManager.GetString("UK_age_rating_is_0", resourceCulture);
+ }
+ }
+
+ internal static string Australia_age_rating_is_0 {
+ get {
+ return ResourceManager.GetString("Australia_age_rating_is_0", resourceCulture);
+ }
+ }
+
+ internal static string Korea_age_rating_is_0 {
+ get {
+ return ResourceManager.GetString("Korea_age_rating_is_0", resourceCulture);
+ }
+ }
+
+ internal static string FST_starts_at_0_and_has_1_bytes {
+ get {
+ return ResourceManager.GetString("FST_starts_at_0_and_has_1_bytes", resourceCulture);
+ }
+ }
+
+ internal static string Commodore_64_Virtual_Console {
+ get {
+ return ResourceManager.GetString("Commodore_64_Virtual_Console", resourceCulture);
+ }
+ }
+
+ internal static string Demo {
+ get {
+ return ResourceManager.GetString("Demo", resourceCulture);
+ }
+ }
+
+ internal static string Neo_Geo_Virtual_Console {
+ get {
+ return ResourceManager.GetString("Neo_Geo_Virtual_Console", resourceCulture);
+ }
+ }
+
+ internal static string NES_Virtual_Console {
+ get {
+ return ResourceManager.GetString("NES_Virtual_Console", resourceCulture);
+ }
+ }
+
+ internal static string Gamecube {
+ get {
+ return ResourceManager.GetString("Gamecube", resourceCulture);
+ }
+ }
+
+ internal static string Wii_channel {
+ get {
+ return ResourceManager.GetString("Wii_channel", resourceCulture);
+ }
+ }
+
+ internal static string Super_Nintendo_Virtual_Console {
+ get {
+ return ResourceManager.GetString("Super_Nintendo_Virtual_Console", resourceCulture);
+ }
+ }
+
+ internal static string Master_System_Virtual_Console {
+ get {
+ return ResourceManager.GetString("Master_System_Virtual_Console", resourceCulture);
+ }
+ }
+
+ internal static string Megadrive_Virtual_Console {
+ get {
+ return ResourceManager.GetString("Megadrive_Virtual_Console", resourceCulture);
+ }
+ }
+
+ internal static string Nintendo_64_Virtual_Console {
+ get {
+ return ResourceManager.GetString("Nintendo_64_Virtual_Console", resourceCulture);
+ }
+ }
+
+ internal static string Promotional_or_TurboGrafx_Virtual_Console {
+ get {
+ return ResourceManager.GetString("Promotional_or_TurboGrafx_Virtual_Console", resourceCulture);
+ }
+ }
+
+ internal static string TurboGrafx_CD_Virtual_Console {
+ get {
+ return ResourceManager.GetString("TurboGrafx_CD_Virtual_Console", resourceCulture);
+ }
+ }
+
+ internal static string Wii {
+ get {
+ return ResourceManager.GetString("Wii", resourceCulture);
+ }
+ }
+
+ internal static string Utility {
+ get {
+ return ResourceManager.GetString("Utility", resourceCulture);
+ }
+ }
+
+ internal static string WiiWare {
+ get {
+ return ResourceManager.GetString("WiiWare", resourceCulture);
+ }
+ }
+
+ internal static string MSX_Virtual_Console_or_WiiWare_demo {
+ get {
+ return ResourceManager.GetString("MSX_Virtual_Console_or_WiiWare_demo", resourceCulture);
+ }
+ }
+
+ internal static string Diagnostic {
+ get {
+ return ResourceManager.GetString("Diagnostic", resourceCulture);
+ }
+ }
+
+ internal static string Wii_Backup {
+ get {
+ return ResourceManager.GetString("Wii_Backup", resourceCulture);
+ }
+ }
+
+ internal static string WiiFit {
+ get {
+ return ResourceManager.GetString("WiiFit", resourceCulture);
+ }
+ }
+
+ internal static string unknown_type_0 {
+ get {
+ return ResourceManager.GetString("unknown_type_0", resourceCulture);
+ }
+ }
+
+ internal static string NintendoPlugin_RegionCodeToString_any_region {
+ get {
+ return ResourceManager.GetString("NintendoPlugin_RegionCodeToString_any_region", resourceCulture);
+ }
+ }
+
+ internal static string NintendoPlugin_RegionCodeToString_Germany {
+ get {
+ return ResourceManager.GetString("NintendoPlugin_RegionCodeToString_Germany", resourceCulture);
+ }
+ }
+
+ internal static string NintendoPlugin_RegionCodeToString_USA {
+ get {
+ return ResourceManager.GetString("NintendoPlugin_RegionCodeToString_USA", resourceCulture);
+ }
+ }
+
+ internal static string NintendoPlugin_RegionCodeToString_France {
+ get {
+ return ResourceManager.GetString("NintendoPlugin_RegionCodeToString_France", resourceCulture);
+ }
+ }
+
+ internal static string NintendoPlugin_RegionCodeToString_Italy {
+ get {
+ return ResourceManager.GetString("NintendoPlugin_RegionCodeToString_Italy", resourceCulture);
+ }
+ }
+
+ internal static string NintendoPlugin_RegionCodeToString_Japan {
+ get {
+ return ResourceManager.GetString("NintendoPlugin_RegionCodeToString_Japan", resourceCulture);
+ }
+ }
+
+ internal static string NintendoPlugin_RegionCodeToString_Korea {
+ get {
+ return ResourceManager.GetString("NintendoPlugin_RegionCodeToString_Korea", resourceCulture);
+ }
+ }
+
+ internal static string NintendoPlugin_RegionCodeToString_PAL {
+ get {
+ return ResourceManager.GetString("NintendoPlugin_RegionCodeToString_PAL", resourceCulture);
+ }
+ }
+
+ internal static string NintendoPlugin_RegionCodeToString_Russia {
+ get {
+ return ResourceManager.GetString("NintendoPlugin_RegionCodeToString_Russia", resourceCulture);
+ }
+ }
+
+ internal static string NintendoPlugin_RegionCodeToString_Spain {
+ get {
+ return ResourceManager.GetString("NintendoPlugin_RegionCodeToString_Spain", resourceCulture);
+ }
+ }
+
+ internal static string NintendoPlugin_RegionCodeToString_Taiwan {
+ get {
+ return ResourceManager.GetString("NintendoPlugin_RegionCodeToString_Taiwan", resourceCulture);
+ }
+ }
+
+ internal static string NintendoPlugin_RegionCodeToString_Australia {
+ get {
+ return ResourceManager.GetString("NintendoPlugin_RegionCodeToString_Australia", resourceCulture);
+ }
+ }
+
+ internal static string NintendoPlugin_RegionCodeToString_unknown_region_code_0 {
+ get {
+ return ResourceManager.GetString("NintendoPlugin_RegionCodeToString_unknown_region_code_0", resourceCulture);
+ }
+ }
+
+ internal static string Unknown_publisher_0 {
+ get {
+ return ResourceManager.GetString("Unknown_publisher_0", resourceCulture);
+ }
+ }
+
+ internal static string data {
+ get {
+ return ResourceManager.GetString("data", resourceCulture);
+ }
+ }
+
+ internal static string update {
+ get {
+ return ResourceManager.GetString("update", resourceCulture);
+ }
+ }
+
+ internal static string channel {
+ get {
+ return ResourceManager.GetString("channel", resourceCulture);
+ }
+ }
+
+ internal static string unknown_partition_type_0 {
+ get {
+ return ResourceManager.GetString("unknown_partition_type_0", resourceCulture);
+ }
+ }
+
+ internal static string NTFS_Name {
+ get {
+ return ResourceManager.GetString("NTFS_Name", resourceCulture);
+ }
+ }
+
+ internal static string _0_sectors_per_cluster_1_bytes {
+ get {
+ return ResourceManager.GetString("_0_sectors_per_cluster_1_bytes", resourceCulture);
+ }
+ }
+
+ internal static string _0_hidden_sectors_before_filesystem {
+ get {
+ return ResourceManager.GetString("_0_hidden_sectors_before_filesystem", resourceCulture);
+ }
+ }
+
+ internal static string BIOS_drive_number_0 {
+ get {
+ return ResourceManager.GetString("BIOS_drive_number_0", resourceCulture);
+ }
+ }
+
+ internal static string Cluster_where_MFT_starts_0 {
+ get {
+ return ResourceManager.GetString("Cluster_where_MFT_starts_0", resourceCulture);
+ }
+ }
+
+ internal static string Cluster_where_MFTMirr_starts_0 {
+ get {
+ return ResourceManager.GetString("Cluster_where_MFTMirr_starts_0", resourceCulture);
+ }
+ }
+
+ internal static string _0_clusters_per_MFT_record_1_bytes {
+ get {
+ return ResourceManager.GetString("_0_clusters_per_MFT_record_1_bytes", resourceCulture);
+ }
+ }
+
+ internal static string _0_bytes_per_MFT_record {
+ get {
+ return ResourceManager.GetString("_0_bytes_per_MFT_record", resourceCulture);
+ }
+ }
+
+ internal static string _0_clusters_per_Index_block_1_bytes {
+ get {
+ return ResourceManager.GetString("_0_clusters_per_Index_block_1_bytes", resourceCulture);
+ }
+ }
+
+ internal static string _0_bytes_per_Index_block {
+ get {
+ return ResourceManager.GetString("_0_bytes_per_Index_block", resourceCulture);
+ }
+ }
+
+ internal static string Volume_serial_number_0_X16 {
+ get {
+ return ResourceManager.GetString("Volume_serial_number_0_X16", resourceCulture);
+ }
+ }
+
+ internal static string ODS_Name {
+ get {
+ return ResourceManager.GetString("ODS_Name", resourceCulture);
+ }
+ }
+
+ internal static string magic_0 {
+ get {
+ return ResourceManager.GetString("magic_0", resourceCulture);
+ }
+ }
+
+ internal static string unaligned_magic_0 {
+ get {
+ return ResourceManager.GetString("unaligned_magic_0", resourceCulture);
+ }
+ }
+
+ internal static string The_following_information_may_be_incorrect_for_this_volume {
+ get {
+ return ResourceManager.GetString("The_following_information_may_be_incorrect_for_this_volume", resourceCulture);
+ }
+ }
+
+ internal static string This_volume_may_be_corrupted {
+ get {
+ return ResourceManager.GetString("This_volume_may_be_corrupted", resourceCulture);
+ }
+ }
+
+ internal static string Volume_format_is_0 {
+ get {
+ return ResourceManager.GetString("Volume_format_is_0", resourceCulture);
+ }
+ }
+
+ internal static string Volume_is_Level_0_revision_1 {
+ get {
+ return ResourceManager.GetString("Volume_is_Level_0_revision_1", resourceCulture);
+ }
+ }
+
+ internal static string Lowest_structure_in_the_volume_is_Level_0_revision_1 {
+ get {
+ return ResourceManager.GetString("Lowest_structure_in_the_volume_is_Level_0_revision_1", resourceCulture);
+ }
+ }
+
+ internal static string Highest_structure_in_the_volume_is_Level_0_revision_1 {
+ get {
+ return ResourceManager.GetString("Highest_structure_in_the_volume_is_Level_0_revision_1", resourceCulture);
+ }
+ }
+
+ internal static string This_home_block_is_on_sector_0_VBN_1 {
+ get {
+ return ResourceManager.GetString("This_home_block_is_on_sector_0_VBN_1", resourceCulture);
+ }
+ }
+
+ internal static string Secondary_home_block_is_on_sector_0_VBN_1 {
+ get {
+ return ResourceManager.GetString("Secondary_home_block_is_on_sector_0_VBN_1", resourceCulture);
+ }
+ }
+
+ internal static string Volume_bitmap_starts_in_sector_0_VBN_1 {
+ get {
+ return ResourceManager.GetString("Volume_bitmap_starts_in_sector_0_VBN_1", resourceCulture);
+ }
+ }
+
+ internal static string Volume_bitmap_runs_for_0_sectors_1_bytes {
+ get {
+ return ResourceManager.GetString("Volume_bitmap_runs_for_0_sectors_1_bytes", resourceCulture);
+ }
+ }
+
+ internal static string Backup_INDEXF_SYS_is_in_sector_0_VBN_1 {
+ get {
+ return ResourceManager.GetString("Backup_INDEXF_SYS_is_in_sector_0_VBN_1", resourceCulture);
+ }
+ }
+
+ internal static string _0_maximum_files_on_the_volume {
+ get {
+ return ResourceManager.GetString("_0_maximum_files_on_the_volume", resourceCulture);
+ }
+ }
+
+ internal static string _0_reserved_files {
+ get {
+ return ResourceManager.GetString("_0_reserved_files", resourceCulture);
+ }
+ }
+
+ internal static string Volume_is_0_of_1_in_set_2 {
+ get {
+ return ResourceManager.GetString("Volume_is_0_of_1_in_set_2", resourceCulture);
+ }
+ }
+
+ internal static string Volume_owner_is_0_ID_1 {
+ get {
+ return ResourceManager.GetString("Volume_owner_is_0_ID_1", resourceCulture);
+ }
+ }
+
+ internal static string Drive_serial_number_0 {
+ get {
+ return ResourceManager.GetString("Drive_serial_number_0", resourceCulture);
+ }
+ }
+
+ internal static string Volume_was_created_on_0 {
+ get {
+ return ResourceManager.GetString("Volume_was_created_on_0", resourceCulture);
+ }
+ }
+
+ internal static string Volume_was_last_modified_on_0 {
+ get {
+ return ResourceManager.GetString("Volume_was_last_modified_on_0", resourceCulture);
+ }
+ }
+
+ internal static string Volume_copied_on_0 {
+ get {
+ return ResourceManager.GetString("Volume_copied_on_0", resourceCulture);
+ }
+ }
+
+ internal static string Checksums_0_and_1 {
+ get {
+ return ResourceManager.GetString("Checksums_0_and_1", resourceCulture);
+ }
+ }
+
+ internal static string Window_0 {
+ get {
+ return ResourceManager.GetString("Window_0", resourceCulture);
+ }
+ }
+
+ internal static string Cached_directories_0 {
+ get {
+ return ResourceManager.GetString("Cached_directories_0", resourceCulture);
+ }
+ }
+
+ internal static string Default_allocation_0_blocks {
+ get {
+ return ResourceManager.GetString("Default_allocation_0_blocks", resourceCulture);
+ }
+ }
+
+ internal static string Readings_should_be_verified {
+ get {
+ return ResourceManager.GetString("Readings_should_be_verified", resourceCulture);
+ }
+ }
+
+ internal static string Writings_should_be_verified {
+ get {
+ return ResourceManager.GetString("Writings_should_be_verified", resourceCulture);
+ }
+ }
+
+ internal static string Files_should_be_erased_or_overwritten_when_deleted {
+ get {
+ return ResourceManager.GetString("Files_should_be_erased_or_overwritten_when_deleted", resourceCulture);
+ }
+ }
+
+ internal static string Highwater_mark_is_to_be_disabled {
+ get {
+ return ResourceManager.GetString("Highwater_mark_is_to_be_disabled", resourceCulture);
+ }
+ }
+
+ internal static string Classification_checks_are_enabled {
+ get {
+ return ResourceManager.GetString("Classification_checks_are_enabled", resourceCulture);
+ }
+ }
+
+ internal static string Volume_permissions_r_read_w_write_c_create_d_delete {
+ get {
+ return ResourceManager.GetString("Volume_permissions_r_read_w_write_c_create_d_delete", resourceCulture);
+ }
+ }
+
+ internal static string System_owner_group_world {
+ get {
+ return ResourceManager.GetString("System_owner_group_world", resourceCulture);
+ }
+ }
+
+ internal static string Unknown_structures {
+ get {
+ return ResourceManager.GetString("Unknown_structures", resourceCulture);
+ }
+ }
+
+ internal static string Security_mask_0 {
+ get {
+ return ResourceManager.GetString("Security_mask_0", resourceCulture);
+ }
+ }
+
+ internal static string File_protection_0 {
+ get {
+ return ResourceManager.GetString("File_protection_0", resourceCulture);
+ }
+ }
+
+ internal static string Record_protection_0 {
+ get {
+ return ResourceManager.GetString("Record_protection_0", resourceCulture);
+ }
+ }
+
+ internal static string PCEnginePlugin_Name {
+ get {
+ return ResourceManager.GetString("PCEnginePlugin_Name", resourceCulture);
+ }
+ }
+
+ internal static string PCFX_Name {
+ get {
+ return ResourceManager.GetString("PCFX_Name", resourceCulture);
+ }
+ }
+
+ internal static string PC_FX_executable {
+ get {
+ return ResourceManager.GetString("PC_FX_executable", resourceCulture);
+ }
+ }
+
+ internal static string Identifier_0 {
+ get {
+ return ResourceManager.GetString("Identifier_0", resourceCulture);
+ }
+ }
+
+ internal static string Copyright_0 {
+ get {
+ return ResourceManager.GetString("Copyright_0", resourceCulture);
+ }
+ }
+
+ internal static string Maker_ID_0 {
+ get {
+ return ResourceManager.GetString("Maker_ID_0", resourceCulture);
+ }
+ }
+
+ internal static string Maker_name_0 {
+ get {
+ return ResourceManager.GetString("Maker_name_0", resourceCulture);
+ }
+ }
+
+ internal static string Volume_number_0 {
+ get {
+ return ResourceManager.GetString("Volume_number_0", resourceCulture);
+ }
+ }
+
+ internal static string Country_code_0 {
+ get {
+ return ResourceManager.GetString("Country_code_0", resourceCulture);
+ }
+ }
+
+ internal static string Dated_0 {
+ get {
+ return ResourceManager.GetString("Dated_0", resourceCulture);
+ }
+ }
+
+ internal static string Load_0_sectors_from_sector_1 {
+ get {
+ return ResourceManager.GetString("Load_0_sectors_from_sector_1", resourceCulture);
+ }
+ }
+
+ internal static string Load_at_0_and_jump_to_1 {
+ get {
+ return ResourceManager.GetString("Load_at_0_and_jump_to_1", resourceCulture);
+ }
+ }
+
+ internal static string PFS_Name {
+ get {
+ return ResourceManager.GetString("PFS_Name", resourceCulture);
+ }
+ }
+
+ internal static string Professional_File_System_v1 {
+ get {
+ return ResourceManager.GetString("Professional_File_System_v1", resourceCulture);
+ }
+ }
+
+ internal static string Professional_File_System_v2 {
+ get {
+ return ResourceManager.GetString("Professional_File_System_v2", resourceCulture);
+ }
+ }
+
+ internal static string Professional_File_System_v3 {
+ get {
+ return ResourceManager.GetString("Professional_File_System_v3", resourceCulture);
+ }
+ }
+
+ internal static string with_multi_user_support {
+ get {
+ return ResourceManager.GetString("with_multi_user_support", resourceCulture);
+ }
+ }
+
+ internal static string Volume_has_0_free_sectors_of_1 {
+ get {
+ return ResourceManager.GetString("Volume_has_0_free_sectors_of_1", resourceCulture);
+ }
+ }
+
+ internal static string Root_block_extension_resides_at_block_0 {
+ get {
+ return ResourceManager.GetString("Root_block_extension_resides_at_block_0", resourceCulture);
+ }
+ }
+
+ internal static string ProDOSPlugin_Name {
+ get {
+ return ResourceManager.GetString("ProDOSPlugin_Name", resourceCulture);
+ }
+ }
+
+ internal static string Datetime_field_year_0_month_1_day_2_hour_3_minute_4 {
+ get {
+ return ResourceManager.GetString("Datetime_field_year_0_month_1_day_2_hour_3_minute_4", resourceCulture);
+ }
+ }
+
+ internal static string ProDOS_uses_512_bytes_sector_while_devices_uses_2048_bytes_sector {
+ get {
+ return ResourceManager.GetString("ProDOS_uses_512_bytes_sector_while_devices_uses_2048_bytes_sector", resourceCulture);
+ }
+ }
+
+ internal static string Warning_Detected_unknown_ProDOS_version_ProDOS_filesystem {
+ get {
+ return ResourceManager.GetString("Warning_Detected_unknown_ProDOS_version_ProDOS_filesystem", resourceCulture);
+ }
+ }
+
+ internal static string All_of_the_following_information_may_be_incorrect {
+ get {
+ return ResourceManager.GetString("All_of_the_following_information_may_be_incorrect", resourceCulture);
+ }
+ }
+
+ internal static string ProDOS_version_one_used_to_create_this_volume {
+ get {
+ return ResourceManager.GetString("ProDOS_version_one_used_to_create_this_volume", resourceCulture);
+ }
+ }
+
+ internal static string Unknown_ProDOS_version_with_field_0_used_to_create_this_volume {
+ get {
+ return ResourceManager.GetString("Unknown_ProDOS_version_with_field_0_used_to_create_this_volume", resourceCulture);
+ }
+ }
+
+ internal static string ProDOS_version_one_at_least_required_for_reading_this_volume {
+ get {
+ return ResourceManager.GetString("ProDOS_version_one_at_least_required_for_reading_this_volume", resourceCulture);
+ }
+ }
+
+ internal static string Unknown_ProDOS_version_with_field_0_is_at_least_required_for_reading_this_volume {
+ get {
+ return ResourceManager.GetString("Unknown_ProDOS_version_with_field_0_is_at_least_required_for_reading_this_volume", resourceCulture);
+ }
+ }
+
+ internal static string Volume_name_is_0 {
+ get {
+ return ResourceManager.GetString("Volume_name_is_0", resourceCulture);
+ }
+ }
+
+ internal static string _0_bytes_per_directory_entry {
+ get {
+ return ResourceManager.GetString("_0_bytes_per_directory_entry", resourceCulture);
+ }
+ }
+
+ internal static string _0_entries_per_directory_block {
+ get {
+ return ResourceManager.GetString("_0_entries_per_directory_block", resourceCulture);
+ }
+ }
+
+ internal static string _0_files_in_root_directory {
+ get {
+ return ResourceManager.GetString("_0_files_in_root_directory", resourceCulture);
+ }
+ }
+
+ internal static string Bitmap_starts_at_block_0 {
+ get {
+ return ResourceManager.GetString("Bitmap_starts_at_block_0", resourceCulture);
+ }
+ }
+
+ internal static string Volume_can_be_read {
+ get {
+ return ResourceManager.GetString("Volume_can_be_read", resourceCulture);
+ }
+ }
+
+ internal static string Volume_can_be_written {
+ get {
+ return ResourceManager.GetString("Volume_can_be_written", resourceCulture);
+ }
+ }
+
+ internal static string Volume_can_be_renamed {
+ get {
+ return ResourceManager.GetString("Volume_can_be_renamed", resourceCulture);
+ }
+ }
+
+ internal static string Volume_can_be_destroyed {
+ get {
+ return ResourceManager.GetString("Volume_can_be_destroyed", resourceCulture);
+ }
+ }
+
+ internal static string Volume_must_be_backed_up {
+ get {
+ return ResourceManager.GetString("Volume_must_be_backed_up", resourceCulture);
+ }
+ }
+
+ internal static string Reserved_attributes_are_set_0 {
+ get {
+ return ResourceManager.GetString("Reserved_attributes_are_set_0", resourceCulture);
+ }
+ }
+
+ internal static string QNX4_Name {
+ get {
+ return ResourceManager.GetString("QNX4_Name", resourceCulture);
+ }
+ }
+
+ internal static string QNX4_filesystem {
+ get {
+ return ResourceManager.GetString("QNX4_filesystem", resourceCulture);
+ }
+ }
+
+ internal static string Created_on_0 {
+ get {
+ return ResourceManager.GetString("Created_on_0", resourceCulture);
+ }
+ }
+
+ internal static string QNX6_Name {
+ get {
+ return ResourceManager.GetString("QNX6_Name", resourceCulture);
+ }
+ }
+
+ internal static string QNX6_Audi_filesystem {
+ get {
+ return ResourceManager.GetString("QNX6_Audi_filesystem", resourceCulture);
+ }
+ }
+
+ internal static string Serial_0_X16 {
+ get {
+ return ResourceManager.GetString("Serial_0_X16", resourceCulture);
+ }
+ }
+
+ internal static string _0_inodes_free_of_1 {
+ get {
+ return ResourceManager.GetString("_0_inodes_free_of_1", resourceCulture);
+ }
+ }
+
+ internal static string _0_blocks_1_bytes_free_of_2_3_bytes {
+ get {
+ return ResourceManager.GetString("_0_blocks_1_bytes_free_of_2_3_bytes", resourceCulture);
+ }
+ }
+
+ internal static string QNX6_filesystem {
+ get {
+ return ResourceManager.GetString("QNX6_filesystem", resourceCulture);
+ }
+ }
+
+ internal static string Flags_0_X8 {
+ get {
+ return ResourceManager.GetString("Flags_0_X8", resourceCulture);
+ }
+ }
+
+ internal static string Version1_0_X4 {
+ get {
+ return ResourceManager.GetString("Version1_0_X4", resourceCulture);
+ }
+ }
+
+ internal static string Version2_0_X4 {
+ get {
+ return ResourceManager.GetString("Version2_0_X4", resourceCulture);
+ }
+ }
+
+ internal static string RBF_Name {
+ get {
+ return ResourceManager.GetString("RBF_Name", resourceCulture);
+ }
+ }
+
+ internal static string magic_at_0_equals_1_or_2_expected_3_or_4 {
+ get {
+ return ResourceManager.GetString("magic_at_0_equals_1_or_2_expected_3_or_4", resourceCulture);
+ }
+ }
+
+ internal static string OS_9_Random_Block_File {
+ get {
+ return ResourceManager.GetString("OS_9_Random_Block_File", resourceCulture);
+ }
+ }
+
+ internal static string Volume_ID_0_X8 {
+ get {
+ return ResourceManager.GetString("Volume_ID_0_X8", resourceCulture);
+ }
+ }
+
+ internal static string _0_cylinders {
+ get {
+ return ResourceManager.GetString("_0_cylinders", resourceCulture);
+ }
+ }
+
+ internal static string _0_blocks_in_cylinder_zero {
+ get {
+ return ResourceManager.GetString("_0_blocks_in_cylinder_zero", resourceCulture);
+ }
+ }
+
+ internal static string _0_blocks_per_cylinder {
+ get {
+ return ResourceManager.GetString("_0_blocks_per_cylinder", resourceCulture);
+ }
+ }
+
+ internal static string Disk_is_double_sided {
+ get {
+ return ResourceManager.GetString("Disk_is_double_sided", resourceCulture);
+ }
+ }
+
+ internal static string Disk_is_single_sided {
+ get {
+ return ResourceManager.GetString("Disk_is_single_sided", resourceCulture);
+ }
+ }
+
+ internal static string Disk_is_double_density {
+ get {
+ return ResourceManager.GetString("Disk_is_double_density", resourceCulture);
+ }
+ }
+
+ internal static string Disk_is_single_density {
+ get {
+ return ResourceManager.GetString("Disk_is_single_density", resourceCulture);
+ }
+ }
+
+ internal static string Disk_is_384_TPI {
+ get {
+ return ResourceManager.GetString("Disk_is_384_TPI", resourceCulture);
+ }
+ }
+
+ internal static string Disk_is_192_TPI {
+ get {
+ return ResourceManager.GetString("Disk_is_192_TPI", resourceCulture);
+ }
+ }
+
+ internal static string Disk_is_96_TPI_or_135_TPI {
+ get {
+ return ResourceManager.GetString("Disk_is_96_TPI_or_135_TPI", resourceCulture);
+ }
+ }
+
+ internal static string Disk_is_48_TPI {
+ get {
+ return ResourceManager.GetString("Disk_is_48_TPI", resourceCulture);
+ }
+ }
+
+ internal static string Allocation_bitmap_descriptor_starts_at_block_0 {
+ get {
+ return ResourceManager.GetString("Allocation_bitmap_descriptor_starts_at_block_0", resourceCulture);
+ }
+ }
+
+ internal static string Debugger_descriptor_starts_at_block_0 {
+ get {
+ return ResourceManager.GetString("Debugger_descriptor_starts_at_block_0", resourceCulture);
+ }
+ }
+
+ internal static string Boot_file_descriptor_starts_at_block_0 {
+ get {
+ return ResourceManager.GetString("Boot_file_descriptor_starts_at_block_0", resourceCulture);
+ }
+ }
+
+ internal static string Root_directory_descriptor_starts_at_block_0 {
+ get {
+ return ResourceManager.GetString("Root_directory_descriptor_starts_at_block_0", resourceCulture);
+ }
+ }
+
+ internal static string Disk_is_owned_by_group_0_user_1 {
+ get {
+ return ResourceManager.GetString("Disk_is_owned_by_group_0_user_1", resourceCulture);
+ }
+ }
+
+ internal static string Volume_identification_block_was_last_written_on_0 {
+ get {
+ return ResourceManager.GetString("Volume_identification_block_was_last_written_on_0", resourceCulture);
+ }
+ }
+
+ internal static string _0_bytes_in_allocation_bitmap {
+ get {
+ return ResourceManager.GetString("_0_bytes_in_allocation_bitmap", resourceCulture);
+ }
+ }
+
+ internal static string Boot_file_starts_at_block_0_and_has_1_bytes {
+ get {
+ return ResourceManager.GetString("Boot_file_starts_at_block_0_and_has_1_bytes", resourceCulture);
+ }
+ }
+
+ internal static string Disk_is_owned_by_user_0 {
+ get {
+ return ResourceManager.GetString("Disk_is_owned_by_user_0", resourceCulture);
+ }
+ }
+
+ internal static string Volume_attributes_0 {
+ get {
+ return ResourceManager.GetString("Volume_attributes_0", resourceCulture);
+ }
+ }
+
+ internal static string Path_descriptor_options_0 {
+ get {
+ return ResourceManager.GetString("Path_descriptor_options_0", resourceCulture);
+ }
+ }
+
+ internal static string ReFS_Name {
+ get {
+ return ResourceManager.GetString("ReFS_Name", resourceCulture);
+ }
+ }
+
+ internal static string Microsoft_Resilient_File_System {
+ get {
+ return ResourceManager.GetString("Microsoft_Resilient_File_System", resourceCulture);
+ }
+ }
+
+ internal static string Volume_uses_0_bytes_per_sector {
+ get {
+ return ResourceManager.GetString("Volume_uses_0_bytes_per_sector", resourceCulture);
+ }
+ }
+
+ internal static string Volume_uses_0_sectors_per_cluster_1_bytes {
+ get {
+ return ResourceManager.GetString("Volume_uses_0_sectors_per_cluster_1_bytes", resourceCulture);
+ }
+ }
+
+ internal static string Volume_has_0_sectors_1_bytes {
+ get {
+ return ResourceManager.GetString("Volume_has_0_sectors_1_bytes", resourceCulture);
+ }
+ }
+
+ internal static string Reiser_Name {
+ get {
+ return ResourceManager.GetString("Reiser_Name", resourceCulture);
+ }
+ }
+
+ internal static string Reiser_3_5_filesystem {
+ get {
+ return ResourceManager.GetString("Reiser_3_5_filesystem", resourceCulture);
+ }
+ }
+
+ internal static string Reiser_3_6_filesystem {
+ get {
+ return ResourceManager.GetString("Reiser_3_6_filesystem", resourceCulture);
+ }
+ }
+
+ internal static string Reiser_Jr_filesystem {
+ get {
+ return ResourceManager.GetString("Reiser_Jr_filesystem", resourceCulture);
+ }
+ }
+
+ internal static string Volume_has_0_blocks_with_1_blocks_free {
+ get {
+ return ResourceManager.GetString("Volume_has_0_blocks_with_1_blocks_free", resourceCulture);
+ }
+ }
+
+ internal static string Root_directory_resides_on_block_0 {
+ get {
+ return ResourceManager.GetString("Root_directory_resides_on_block_0", resourceCulture);
+ }
+ }
+
+ internal static string Volume_has_not_been_cleanly_umounted {
+ get {
+ return ResourceManager.GetString("Volume_has_not_been_cleanly_umounted", resourceCulture);
+ }
+ }
+
+ internal static string Volume_last_checked_on_0 {
+ get {
+ return ResourceManager.GetString("Volume_last_checked_on_0", resourceCulture);
+ }
+ }
+
+ internal static string Reiser4_Name {
+ get {
+ return ResourceManager.GetString("Reiser4_Name", resourceCulture);
+ }
+ }
+
+ internal static string Reiser_4_filesystem {
+ get {
+ return ResourceManager.GetString("Reiser_4_filesystem", resourceCulture);
+ }
+ }
+
+ internal static string Volume_disk_format_0 {
+ get {
+ return ResourceManager.GetString("Volume_disk_format_0", resourceCulture);
+ }
+ }
+
+ internal static string RT11_Name {
+ get {
+ return ResourceManager.GetString("RT11_Name", resourceCulture);
+ }
+ }
+
+ internal static string First_directory_segment_starts_at_block_0 {
+ get {
+ return ResourceManager.GetString("First_directory_segment_starts_at_block_0", resourceCulture);
+ }
+ }
+
+ internal static string Volume_owner_is_0 {
+ get {
+ return ResourceManager.GetString("Volume_owner_is_0", resourceCulture);
+ }
+ }
+
+ internal static string Checksum_0_calculated_1 {
+ get {
+ return ResourceManager.GetString("Checksum_0_calculated_1", resourceCulture);
+ }
+ }
+
+ internal static string SFS_Name {
+ get {
+ return ResourceManager.GetString("SFS_Name", resourceCulture);
+ }
+ }
+
+ internal static string SmartFileSystem {
+ get {
+ return ResourceManager.GetString("SmartFileSystem", resourceCulture);
+ }
+ }
+
+ internal static string Volume_version_0 {
+ get {
+ return ResourceManager.GetString("Volume_version_0", resourceCulture);
+ }
+ }
+
+ internal static string Volume_starts_on_device_byte_0_and_ends_on_byte_1 {
+ get {
+ return ResourceManager.GetString("Volume_starts_on_device_byte_0_and_ends_on_byte_1", resourceCulture);
+ }
+ }
+
+ internal static string Bitmap_starts_in_block_0 {
+ get {
+ return ResourceManager.GetString("Bitmap_starts_in_block_0", resourceCulture);
+ }
+ }
+
+ internal static string Admin_space_container_starts_in_block_0 {
+ get {
+ return ResourceManager.GetString("Admin_space_container_starts_in_block_0", resourceCulture);
+ }
+ }
+
+ internal static string Root_object_container_starts_in_block_0 {
+ get {
+ return ResourceManager.GetString("Root_object_container_starts_in_block_0", resourceCulture);
+ }
+ }
+
+ internal static string Root_node_of_the_extent_B_tree_resides_in_block_0 {
+ get {
+ return ResourceManager.GetString("Root_node_of_the_extent_B_tree_resides_in_block_0", resourceCulture);
+ }
+ }
+
+ internal static string Root_node_of_the_object_B_tree_resides_in_block_0 {
+ get {
+ return ResourceManager.GetString("Root_node_of_the_object_B_tree_resides_in_block_0", resourceCulture);
+ }
+ }
+
+ internal static string Volume_is_case_sensitive {
+ get {
+ return ResourceManager.GetString("Volume_is_case_sensitive", resourceCulture);
+ }
+ }
+
+ internal static string Volume_moves_deleted_files_to_a_recycled_folder {
+ get {
+ return ResourceManager.GetString("Volume_moves_deleted_files_to_a_recycled_folder", resourceCulture);
+ }
+ }
+
+ internal static string SolarFS_Name {
+ get {
+ return ResourceManager.GetString("SolarFS_Name", resourceCulture);
+ }
+ }
+
+ internal static string Solar_OS_filesystem {
+ get {
+ return ResourceManager.GetString("Solar_OS_filesystem", resourceCulture);
+ }
+ }
+
+ internal static string WARNING_Filesystem_describes_a_0_bytes_sector_while_device_describes_a_1_bytes_sector {
+ get {
+ return ResourceManager.GetString("WARNING_Filesystem_describes_a_0_bytes_sector_while_device_describes_a_1_bytes_se" +
+ "ctor", resourceCulture);
+ }
+ }
+
+ internal static string WARNING_Filesystem_describes_a_0_sectors_volume_bigger_than_device_1_sectors {
+ get {
+ return ResourceManager.GetString("WARNING_Filesystem_describes_a_0_sectors_volume_bigger_than_device_1_sectors", resourceCulture);
+ }
+ }
+
+ internal static string Squash_Name {
+ get {
+ return ResourceManager.GetString("Squash_Name", resourceCulture);
+ }
+ }
+
+ internal static string Squash_file_system {
+ get {
+ return ResourceManager.GetString("Squash_file_system", resourceCulture);
+ }
+ }
+
+ internal static string Volume_version_0_1 {
+ get {
+ return ResourceManager.GetString("Volume_version_0_1", resourceCulture);
+ }
+ }
+
+ internal static string Volume_has_0_bytes_per_block {
+ get {
+ return ResourceManager.GetString("Volume_has_0_bytes_per_block", resourceCulture);
+ }
+ }
+
+ internal static string Volume_has_0_inodes {
+ get {
+ return ResourceManager.GetString("Volume_has_0_inodes", resourceCulture);
+ }
+ }
+
+ internal static string Volume_is_compressed_using_LZ4 {
+ get {
+ return ResourceManager.GetString("Volume_is_compressed_using_LZ4", resourceCulture);
+ }
+ }
+
+ internal static string Volume_is_compressed_using_LZO {
+ get {
+ return ResourceManager.GetString("Volume_is_compressed_using_LZO", resourceCulture);
+ }
+ }
+
+ internal static string Volume_is_compressed_using_LZMA {
+ get {
+ return ResourceManager.GetString("Volume_is_compressed_using_LZMA", resourceCulture);
+ }
+ }
+
+ internal static string Volume_is_compressed_using_XZ {
+ get {
+ return ResourceManager.GetString("Volume_is_compressed_using_XZ", resourceCulture);
+ }
+ }
+
+ internal static string Volume_is_compressed_using_GZIP {
+ get {
+ return ResourceManager.GetString("Volume_is_compressed_using_GZIP", resourceCulture);
+ }
+ }
+
+ internal static string Volume_is_compressed_using_Zstandard {
+ get {
+ return ResourceManager.GetString("Volume_is_compressed_using_Zstandard", resourceCulture);
+ }
+ }
+
+ internal static string Volume_is_compressed_using_unknown_algorithm_0 {
+ get {
+ return ResourceManager.GetString("Volume_is_compressed_using_unknown_algorithm_0", resourceCulture);
+ }
+ }
+
+ internal static string SysVfs_Name {
+ get {
+ return ResourceManager.GetString("SysVfs_Name", resourceCulture);
+ }
+ }
+
+ internal static string XENIX_filesystem {
+ get {
+ return ResourceManager.GetString("XENIX_filesystem", resourceCulture);
+ }
+ }
+
+ internal static string _512_bytes_per_block {
+ get {
+ return ResourceManager.GetString("_512_bytes_per_block", resourceCulture);
+ }
+ }
+
+ internal static string _1024_bytes_per_block {
+ get {
+ return ResourceManager.GetString("_1024_bytes_per_block", resourceCulture);
+ }
+ }
+
+ internal static string _2048_bytes_per_block {
+ get {
+ return ResourceManager.GetString("_2048_bytes_per_block", resourceCulture);
+ }
+ }
+
+ internal static string Unknown_s_type_value_0 {
+ get {
+ return ResourceManager.GetString("Unknown_s_type_value_0", resourceCulture);
+ }
+ }
+
+ internal static string WARNING_Filesystem_indicates_0_bytes_block_while_device_indicates_1_bytes_sector {
+ get {
+ return ResourceManager.GetString("WARNING_Filesystem_indicates_0_bytes_block_while_device_indicates_1_bytes_sector", resourceCulture);
+ }
+ }
+
+ internal static string _0_free_zones_on_volume_1_bytes {
+ get {
+ return ResourceManager.GetString("_0_free_zones_on_volume_1_bytes", resourceCulture);
+ }
+ }
+
+ internal static string _0_free_blocks_on_list_1_bytes {
+ get {
+ return ResourceManager.GetString("_0_free_blocks_on_list_1_bytes", resourceCulture);
+ }
+ }
+
+ internal static string _0_blocks_per_cylinder_1_bytes {
+ get {
+ return ResourceManager.GetString("_0_blocks_per_cylinder_1_bytes", resourceCulture);
+ }
+ }
+
+ internal static string _0_blocks_per_gap_1_bytes {
+ get {
+ return ResourceManager.GetString("_0_blocks_per_gap_1_bytes", resourceCulture);
+ }
+ }
+
+ internal static string _0_free_inodes_on_volume {
+ get {
+ return ResourceManager.GetString("_0_free_inodes_on_volume", resourceCulture);
+ }
+ }
+
+ internal static string _0_free_inodes_on_list {
+ get {
+ return ResourceManager.GetString("_0_free_inodes_on_list", resourceCulture);
+ }
+ }
+
+ internal static string Free_block_list_is_locked {
+ get {
+ return ResourceManager.GetString("Free_block_list_is_locked", resourceCulture);
+ }
+ }
+
+ internal static string inode_cache_is_locked {
+ get {
+ return ResourceManager.GetString("inode_cache_is_locked", resourceCulture);
+ }
+ }
+
+ internal static string Superblock_is_being_modified {
+ get {
+ return ResourceManager.GetString("Superblock_is_being_modified", resourceCulture);
+ }
+ }
+
+ internal static string Volume_is_mounted_read_only {
+ get {
+ return ResourceManager.GetString("Volume_is_mounted_read_only", resourceCulture);
+ }
+ }
+
+ internal static string Superblock_last_updated_on_0 {
+ get {
+ return ResourceManager.GetString("Superblock_last_updated_on_0", resourceCulture);
+ }
+ }
+
+ internal static string Pack_name_0 {
+ get {
+ return ResourceManager.GetString("Pack_name_0", resourceCulture);
+ }
+ }
+
+ internal static string System_V_Release_4_filesystem {
+ get {
+ return ResourceManager.GetString("System_V_Release_4_filesystem", resourceCulture);
+ }
+ }
+
+ internal static string System_V_Release_2_filesystem {
+ get {
+ return ResourceManager.GetString("System_V_Release_2_filesystem", resourceCulture);
+ }
+ }
+
+ internal static string Coherent_UNIX_filesystem {
+ get {
+ return ResourceManager.GetString("Coherent_UNIX_filesystem", resourceCulture);
+ }
+ }
+
+ internal static string UNIX_7th_Edition_filesystem {
+ get {
+ return ResourceManager.GetString("UNIX_7th_Edition_filesystem", resourceCulture);
+ }
+ }
+
+ internal static string UDF_Name {
+ get {
+ return ResourceManager.GetString("UDF_Name", resourceCulture);
+ }
+ }
+
+ internal static string Universal_Disk_Format {
+ get {
+ return ResourceManager.GetString("Universal_Disk_Format", resourceCulture);
+ }
+ }
+
+ internal static string Volume_uses_0_bytes_per_block {
+ get {
+ return ResourceManager.GetString("Volume_uses_0_bytes_per_block", resourceCulture);
+ }
+ }
+
+ internal static string Volume_was_last_written_in_0 {
+ get {
+ return ResourceManager.GetString("Volume_was_last_written_in_0", resourceCulture);
+ }
+ }
+
+ internal static string Volume_contains_0_partitions {
+ get {
+ return ResourceManager.GetString("Volume_contains_0_partitions", resourceCulture);
+ }
+ }
+
+ internal static string Volume_contains_0_files_and_1_directories {
+ get {
+ return ResourceManager.GetString("Volume_contains_0_files_and_1_directories", resourceCulture);
+ }
+ }
+
+ internal static string Volume_conforms_to_0 {
+ get {
+ return ResourceManager.GetString("Volume_conforms_to_0", resourceCulture);
+ }
+ }
+
+ internal static string Volume_was_last_written_by_0 {
+ get {
+ return ResourceManager.GetString("Volume_was_last_written_by_0", resourceCulture);
+ }
+ }
+
+ internal static string Volume_requires_UDF_version_0_1_to_be_read {
+ get {
+ return ResourceManager.GetString("Volume_requires_UDF_version_0_1_to_be_read", resourceCulture);
+ }
+ }
+
+ internal static string Volume_requires_UDF_version_0_1_to_be_written_to {
+ get {
+ return ResourceManager.GetString("Volume_requires_UDF_version_0_1_to_be_written_to", resourceCulture);
+ }
+ }
+
+ internal static string Volume_cannot_be_written_by_any_UDF_version_higher_than_0_1 {
+ get {
+ return ResourceManager.GetString("Volume_cannot_be_written_by_any_UDF_version_higher_than_0_1", resourceCulture);
+ }
+ }
+
+ internal static string UNICOS_Name {
+ get {
+ return ResourceManager.GetString("UNICOS_Name", resourceCulture);
+ }
+ }
+
+ internal static string magic_equals_0_expected_1 {
+ get {
+ return ResourceManager.GetString("magic_equals_0_expected_1", resourceCulture);
+ }
+ }
+
+ internal static string UNICOS_filesystem {
+ get {
+ return ResourceManager.GetString("UNICOS_filesystem", resourceCulture);
+ }
+ }
+
+ internal static string Volume_is_secure {
+ get {
+ return ResourceManager.GetString("Volume_is_secure", resourceCulture);
+ }
+ }
+
+ internal static string _4096_bytes_per_block {
+ get {
+ return ResourceManager.GetString("_4096_bytes_per_block", resourceCulture);
+ }
+ }
+
+ internal static string _0_data_blocks_in_volume {
+ get {
+ return ResourceManager.GetString("_0_data_blocks_in_volume", resourceCulture);
+ }
+ }
+
+ internal static string Root_resides_on_inode_0 {
+ get {
+ return ResourceManager.GetString("Root_resides_on_inode_0", resourceCulture);
+ }
+ }
+
+ internal static string _0_inodes_in_volume {
+ get {
+ return ResourceManager.GetString("_0_inodes_in_volume", resourceCulture);
+ }
+ }
+
+ internal static string Volume_last_updated_on_0 {
+ get {
+ return ResourceManager.GetString("Volume_last_updated_on_0", resourceCulture);
+ }
+ }
+
+ internal static string Volume_is_dirty_error_code_equals_0 {
+ get {
+ return ResourceManager.GetString("Volume_is_dirty_error_code_equals_0", resourceCulture);
+ }
+ }
+
+ internal static string BFS_Name {
+ get {
+ return ResourceManager.GetString("BFS_Name", resourceCulture);
+ }
+ }
+
+ internal static string Volume_goes_from_byte_0_to_byte_1_for_2_bytes {
+ get {
+ return ResourceManager.GetString("Volume_goes_from_byte_0_to_byte_1_for_2_bytes", resourceCulture);
+ }
+ }
+
+ internal static string Filesystem_name_0 {
+ get {
+ return ResourceManager.GetString("Filesystem_name_0", resourceCulture);
+ }
+ }
+
+ internal static string UNIX_Boot_Filesystem {
+ get {
+ return ResourceManager.GetString("UNIX_Boot_Filesystem", resourceCulture);
+ }
+ }
+
+ internal static string VMfs_Name {
+ get {
+ return ResourceManager.GetString("VMfs_Name", resourceCulture);
+ }
+ }
+
+ internal static string VMware_file_system {
+ get {
+ return ResourceManager.GetString("VMware_file_system", resourceCulture);
+ }
+ }
+
+ internal static string Volume_size_0_bytes {
+ get {
+ return ResourceManager.GetString("Volume_size_0_bytes", resourceCulture);
+ }
+ }
+
+ internal static string VxFS_Name {
+ get {
+ return ResourceManager.GetString("VxFS_Name", resourceCulture);
+ }
+ }
+
+ internal static string Veritas_file_system {
+ get {
+ return ResourceManager.GetString("Veritas_file_system", resourceCulture);
+ }
+ }
+
+ internal static string Volume_has_0_inodes_per_block {
+ get {
+ return ResourceManager.GetString("Volume_has_0_inodes_per_block", resourceCulture);
+ }
+ }
+
+ internal static string Volume_has_0_free_inodes {
+ get {
+ return ResourceManager.GetString("Volume_has_0_free_inodes", resourceCulture);
+ }
+ }
+
+ internal static string Volume_has_0_free_blocks {
+ get {
+ return ResourceManager.GetString("Volume_has_0_free_blocks", resourceCulture);
+ }
+ }
+
+ internal static string XFS_Name {
+ get {
+ return ResourceManager.GetString("XFS_Name", resourceCulture);
+ }
+ }
+
+ internal static string magic_at_0_X3_equals_1_expected_2 {
+ get {
+ return ResourceManager.GetString("magic_at_0_X3_equals_1_expected_2", resourceCulture);
+ }
+ }
+
+ internal static string magic_at_0_equals_1_expected_2 {
+ get {
+ return ResourceManager.GetString("magic_at_0_equals_1_expected_2", resourceCulture);
+ }
+ }
+
+ internal static string XFS_filesystem {
+ get {
+ return ResourceManager.GetString("XFS_filesystem", resourceCulture);
+ }
+ }
+
+ internal static string _0_data_blocks_in_volume_1_free {
+ get {
+ return ResourceManager.GetString("_0_data_blocks_in_volume_1_free", resourceCulture);
+ }
+ }
+
+ internal static string _0_inodes_in_volume_1_free {
+ get {
+ return ResourceManager.GetString("_0_inodes_in_volume_1_free", resourceCulture);
+ }
+ }
+
+ internal static string fsck_in_progress {
+ get {
+ return ResourceManager.GetString("fsck_in_progress", resourceCulture);
+ }
+ }
+
+ internal static string Xia_Name {
+ get {
+ return ResourceManager.GetString("Xia_Name", resourceCulture);
+ }
+ }
+
+ internal static string _0_bytes_per_zone {
+ get {
+ return ResourceManager.GetString("_0_bytes_per_zone", resourceCulture);
+ }
+ }
+
+ internal static string _0_zones_in_volume_1_bytes {
+ get {
+ return ResourceManager.GetString("_0_zones_in_volume_1_bytes", resourceCulture);
+ }
+ }
+
+ internal static string _0_inodes {
+ get {
+ return ResourceManager.GetString("_0_inodes", resourceCulture);
+ }
+ }
+
+ internal static string _0_data_zones_1_bytes {
+ get {
+ return ResourceManager.GetString("_0_data_zones_1_bytes", resourceCulture);
+ }
+ }
+
+ internal static string _0_imap_zones_1_bytes {
+ get {
+ return ResourceManager.GetString("_0_imap_zones_1_bytes", resourceCulture);
+ }
+ }
+
+ internal static string _0_zmap_zones_1_bytes {
+ get {
+ return ResourceManager.GetString("_0_zmap_zones_1_bytes", resourceCulture);
+ }
+ }
+
+ internal static string Maximum_filesize_is_0_bytes_1_MiB {
+ get {
+ return ResourceManager.GetString("Maximum_filesize_is_0_bytes_1_MiB", resourceCulture);
+ }
+ }
+
+ internal static string _0_zones_reserved_for_kernel_images_1_bytes {
+ get {
+ return ResourceManager.GetString("_0_zones_reserved_for_kernel_images_1_bytes", resourceCulture);
+ }
+ }
+
+ internal static string First_kernel_zone_0 {
+ get {
+ return ResourceManager.GetString("First_kernel_zone_0", resourceCulture);
+ }
+ }
+
+ internal static string ZFS_Name {
+ get {
+ return ResourceManager.GetString("ZFS_Name", resourceCulture);
+ }
+ }
+
+ internal static string ZFS_filesystem {
+ get {
+ return ResourceManager.GetString("ZFS_filesystem", resourceCulture);
+ }
+ }
+
+ internal static string _0_is_not_set {
+ get {
+ return ResourceManager.GetString("_0_is_not_set", resourceCulture);
+ }
+ }
+
+ internal static string _0_equals_1_elements_nvlist_array_unable_to_print {
+ get {
+ return ResourceManager.GetString("_0_equals_1_elements_nvlist_array_unable_to_print", resourceCulture);
+ }
+ }
+
+ internal static string _0_1_equals_unknown_data_type_2 {
+ get {
+ return ResourceManager.GetString("_0_1_equals_unknown_data_type_2", resourceCulture);
+ }
+ }
+
+ internal static string _0_equals_unknown_data_type_1 {
+ get {
+ return ResourceManager.GetString("_0_equals_unknown_data_type_1", resourceCulture);
+ }
+ }
+ }
+}
diff --git a/Aaru.Filesystems/Localization/Localization.resx b/Aaru.Filesystems/Localization/Localization.resx
new file mode 100644
index 000000000..169f22a6d
--- /dev/null
+++ b/Aaru.Filesystems/Localization/Localization.resx
@@ -0,0 +1,3725 @@
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 1.3
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral,
+ PublicKeyToken=b77a5c561934e089
+
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral,
+ PublicKeyToken=b77a5c561934e089
+
+
+
+ Boot Block:
+
+
+ Boot block is in new format.
+
+
+ Boot block should be executed.
+
+
+ System heap will be extended by {0} bytes and a {1} fraction of the available RAM
+
+
+ Allocate secondary sound buffer at boot.
+
+
+ Allocate secondary sound and video buffers at boot.
+
+
+ System filename: {0}
+
+
+ Finder filename: {0}
+
+
+ Debugger filename: {0}
+
+
+ Disassembler filename: {0}
+
+
+ Startup screen filename: {0}
+
+
+ First program to execute at boot: {0}
+
+
+ Clipboard filename: {0}
+
+
+ Maximum opened files: {0}
+
+
+ Event queue size: {0}
+
+
+ Heap size with 128KiB of RAM: {0} bytes
+
+
+ Heap size with 256KiB of RAM: {0} bytes
+
+
+ Heap size with 512KiB of RAM or more: {0} bytes
+
+
+ Apple DOS File System
+
+
+ Catalog starts at sector {0} of track {1}
+
+
+ File system initialized by DOS release {0}
+
+
+ Disk volume number {0}
+
+
+ Sectors allocated at most in track {0}
+
+
+ {0} tracks in volume
+
+
+ {0} sectors per track.
+
+
+ {0} bytes per sector.
+
+
+ Track allocation is forward
+
+
+ Track allocation is reverse
+
+
+ Incorrect device size.
+
+
+ Partitions are not supported.
+
+
+ Incorrect sector size.
+
+
+ Unable to read catalog.
+
+
+ Unable cache all files.
+
+
+ Apple Hierarchical File System
+
+
+ HFS uses 512 bytes/sector while device uses 2048 bytes/sector.
+
+
+ Master Directory Block:
+
+
+ Creation date: {0}
+
+
+ Last modification date: {0}
+
+
+ Last backup date: {0}
+
+
+ Backup sequence number: {0}
+
+
+ Volume has never been backed up
+
+
+ Volume is locked by hardware.
+
+
+ Volume was unmonted.
+
+
+ Volume is mounted.
+
+
+ Volume has spared bad blocks.
+
+
+ Volume does not need cache.
+
+
+ Boot volume is inconsistent.
+
+
+ There are reused CNIDs.
+
+
+ Volume is journaled.
+
+
+ Volume is seriously inconsistent.
+
+
+ Volume is locked by software.
+
+
+ {0} files on root directory
+
+
+ {0} directories on root directory
+
+
+ {0} directories on volume
+
+
+ Volume write count: {0}
+
+
+ Volume bitmap starting sector (in 512-bytes): {0}
+
+
+ Next allocation block: {0}.
+
+
+ {0} volume allocation blocks.
+
+
+ {0} bytes per allocation block.
+
+
+ {0} bytes to allocate when extending a file.
+
+
+ {0} bytes to allocate when extending a Extents B-Tree.
+
+
+ {0} bytes to allocate when extending a Catalog B-Tree.
+
+
+ Sector of first allocation block: {0}
+
+
+ Next unused CNID: {0}
+
+
+ {0} unused allocation blocks.
+
+
+ {0} bytes in the Extents B-Tree
+
+
+ {0} bytes in the Catalog B-Tree
+
+
+ Volume name: {0}
+
+
+ Finder info:
+
+
+ CNID of bootable system's directory: {0}
+
+
+ CNID of first-run application's directory: {0}
+
+
+ CNID of previously opened directory: {0}
+
+
+ CNID of bootable Mac OS 8 or 9 directory: {0}
+
+
+ CNID of bootable Mac OS X directory: {0}
+
+
+ Mac OS X Volume ID: {0:X8}{1:X8}
+
+
+ Volume wraps a HFS+ volume.
+
+
+ Starting block of the HFS+ volume: {0}
+
+
+ Allocations blocks of the HFS+ volume: {0}
+
+
+ {0} blocks in volume cache
+
+
+ {0} blocks in volume bitmap cache
+
+
+ {0} blocks in volume common cache
+
+
+ Volume is bootable.
+
+
+ Volume is not bootable.
+
+
+ File truncated at block {0}
+
+
+ Apple Macintosh File System
+
+
+ First directory sector: {0}
+
+
+ {0} sectors in directory.
+
+
+ Size of allocation blocks: {0} bytes
+
+
+ {0} bytes to allocate.
+
+
+ First allocation block (#2) starts in sector {0}.
+
+
+ Next unused file number: {0}
+
+
+ CP/M File System
+
+
+ Found Amstrad superblock.
+
+
+ Found CP/M-86 hard disk superblock.
+
+
+ Found CP/M-86 floppy identifier.
+
+
+ First directory block seems correct.
+
+
+ Trying to load definitions.
+
+
+ Trying all known definitions.
+
+
+ Trying definition "{0}"
+
+
+ Don't know how to handle COLUMBIA ordering, not proceeding with this definition.
+
+
+ Don't know how to handle EAGLE ordering, not proceeding with this definition.
+
+
+ Unknown order type "{0}", not proceeding with this definition.
+
+
+ Definition contains EVEN-ODD field, with unknown meaning, detection may be wrong.
+
+
+ Definition "{0}" has a correct directory
+
+
+ Identified as {0}
+
+
+ Volume block is {0} bytes
+
+
+ Volume contains {0} blocks ({1} bytes)
+
+
+ CP/M filesystem
+
+
+ Volume contains {0} directory entries
+
+
+ Volume reserves {0} sectors for system
+
+
+ Volume reserves {1} tracks ({0} sectors) for system
+
+
+ Side 0 uses {0}:1 software interleaving
+
+
+ Side 1 uses {0}:1 software interleaving
+
+
+ Head changes after each whole track
+
+
+ Head changes after whole side
+
+
+ Unknown how {0} side ordering works
+
+
+ Device uses {0}:1 hardware interleaving
+
+
+ Volume label: {0}
+
+
+ Volume uses standard CP/M timestamps
+
+
+ Volume uses third party timestamps
+
+
+ Volume created on {0}
+
+
+ Volume updated on {0}
+
+
+ CYLINDERS ordering not yet implemented.
+
+
+ Deinterleaving whole volume.
+
+
+ Creating allocation blocks.
+
+
+ Reading directory.
+
+
+ Traversing directory.
+
+
+ Using Human68k BPB
+
+
+ Using FAT32 BPB
+
+
+ Using short FAT32 BPB
+
+
+ Using MSX BPB
+
+
+ Using Apricot BPB
+
+
+ Using DOS 4.0 BPB
+
+
+ Using DOS 3.4 BPB
+
+
+ Using DOS 3.3 BPB
+
+
+ Using Atari BPB
+
+
+ Using DOS 3.2 BPB
+
+
+ Using DOS 3.0 BPB
+
+
+ Using DOS 2.0 BPB
+
+
+ Using DEC Rainbow hardcoded BPB.
+
+
+ Using hardcoded BPB.
+
+
+ Using hardcoded BPB for 5.25" SSDD.
+
+
+ Using hardcoded BPB for 5.25" DSDD.
+
+
+ Found empty filename in {0}
+
+
+ Microsoft File Allocation Table
+
+
+ DOS (8.3 all uppercase)
+
+
+ Windows NT (8.3 mixed case)
+
+
+ OS/2 .LONGNAME extended attribute
+
+
+ Use LFN when available with fallback to .LONGNAME (default)
+
+
+ Long file names
+
+
+ 2nd fat starts at = {0}
+
+
+ FAT+
+
+
+ Microsoft FAT32
+
+
+ Volume has been modified by Windows 9x/Me Volume Tracker.
+
+
+ {0} sectors per cluster.
+
+
+ {0} sectors reserved between BPB and FAT.
+
+
+ {0} sectors on volume ({1} bytes).
+
+
+ {0} clusters on volume.
+
+
+ Media descriptor: 0x{0:X2}
+
+
+ {0} sectors per FAT.
+
+
+ {0} heads.
+
+
+ {0} hidden sectors before BPB.
+
+
+ Cluster of root directory: {0}
+
+
+ Sector of FSINFO structure: {0}
+
+
+ Sector of backup FAT32 parameter block: {0}
+
+
+ Drive number: 0x{0:X2}
+
+
+ Volume should be checked on next mount.
+
+
+ Disk surface should be on next mount.
+
+
+ FATs are out of sync. FAT #{0} is in use.
+
+
+ All copies of FAT are the same.
+
+
+ DR-DOS will boot this FAT32 using CHS.
+
+
+ DR-DOS will boot this FAT32 using LBA.
+
+
+ Filesystem type: {0}
+
+
+ {0} free clusters
+
+
+ Last allocated cluster {0}
+
+
+ cmdload will be loaded with value {0:X4}h
+
+
+ Boot program will be loaded at address {0:X4}h
+
+
+ FAT and directory will be cached at address {0:X4}h
+
+
+ Boot program resides in file "{0}"
+
+
+ Boot program starts in sector {0} and is {1} sectors long ({2} bytes)
+
+
+ Atari FAT12
+
+
+ Apricot FAT12
+
+
+ Human68k FAT12
+
+
+ Microsoft FAT12
+
+
+ Atari FAT16
+
+
+ Human68k FAT16
+
+
+ Microsoft FAT16
+
+
+ {0} FATs.
+
+
+ {0} entries on root directory.
+
+
+ Volume Serial Number: {0}
+
+
+ Volume last modified on {0}
+
+
+ Volume last accessed on {0:d}
+
+
+ Boot code's SHA1: {0}
+
+
+ Unknown boot code.
+
+
+ Boot code corresponds to {0}
+
+
+ Reading BPB
+
+
+ Found empty filename in root directory
+
+
+ Reading FAT12
+
+
+ Reading FAT16
+
+
+ Casting FAT
+
+
+ FATX Filesystem Plugin
+
+
+ FATX filesystem
+
+
+ {0} logical sectors ({1} bytes) per physical sector
+
+
+ {0} sectors ({1} bytes) per cluster
+
+
+ Root directory starts on cluster {0}
+
+
+ Volume serial: {0:X8}
+
+
+ Reading superblock
+
+
+ Filesystem is little endian
+
+
+ Filesystem is big endian
+
+
+ Reading FAT32
+
+
+ FAT is {0} sectors
+
+
+ Reading root directory
+
+
+ High Performance Optical File System
+
+
+ OEM name: {0}
+
+
+ {0} sectors hidden before BPB
+
+
+ Serial number: 0x{0:X8}
+
+
+ Volume comment: {0}
+
+
+ Volume owner: {0}
+
+
+ Volume uses {0} codepage {1}
+
+
+ EBCDIC
+
+
+ ASCII
+
+
+ Unknown
+
+
+ RPS level: {0}
+
+
+ Filesystem version: {0}.{1}
+
+
+ Volume can be filled up to {0}%
+
+
+ Exception reading CD-i audio file
+
+
+ Processing VD loop no. {0}
+
+
+ Reading sector {0}
+
+
+ Unknown
+
+
+ Found unknown supplementary volume descriptor
+
+
+ ERROR: Could not find primary volume descriptor
+
+
+ SYSTEM USE SHARING PROTOCOL INFORMATION:
+
+
+ ----------------------------------------
+
+
+ Extension: {0}
+
+
+ ID: {0}, version {1}
+
+
+ Description: {0}
+
+
+ Source: {0}
+
+
+ High Sierra Format file system
+
+
+ CD-i file system
+
+
+ ISO9660 file system
+
+
+ CD-ROM XA extensions present.
+
+
+ Amiga extensions present.
+
+
+ Apple extensions present.
+
+
+ Joliet extensions present.
+
+
+ System Use Sharing Protocol present.
+
+
+ Rock Ridge Interchange Protocol present.
+
+
+ Arbitrary Attribute Interchange Protocol present.
+
+
+ zisofs compression present.
+
+
+ Contains Enhanced Volume Descriptor.
+
+
+ Contains Volume Partition Descriptor.
+
+
+ Disc bootable following {0} specifications.
+
+
+ This is a SegaCD / MegaCD disc.
+
+
+ This is a Sega Saturn disc.
+
+
+ This is a Sega Dreamcast disc.
+
+
+ FILE STRUCTURE VOLUME DESCRIPTOR INFORMATION:
+
+
+ ---------------------------------------------
+
+
+ VOLUME DESCRIPTOR INFORMATION:
+
+
+ ------------------------------
+
+
+ System identifier: {0}
+
+
+ Volume identifier: {0}
+
+
+ Volume set identifier: {0}
+
+
+ Publisher identifier: {0}
+
+
+ Data preparer identifier: {0}
+
+
+ Application identifier: {0}
+
+
+ Volume creation date: {0}
+
+
+ Volume modification date: {0}
+
+
+ Volume has not been modified.
+
+
+ Volume expiration date: {0}
+
+
+ Volume does not expire.
+
+
+ Volume effective date: {0}
+
+
+ Volume has always been effective.
+
+
+ Volume has {0} blocks of {1} bytes each
+
+
+ JOLIET VOLUME DESCRIPTOR INFORMATION:
+
+
+ -------------------------------------
+
+
+ EL TORITO INFORMATION:
+
+
+ ----------------------
+
+
+ Initial entry:
+
+
+ Developer ID: {0}
+
+
+ Bootable on {0}
+
+
+ Bootable image starts at sector {0} and runs for {1} sectors
+
+
+ Bootable image will be loaded at segment {0:X4}h
+
+
+ Bootable image will be loaded at 0x{0:X8}
+
+
+ Image uses no emulation
+
+
+ Image emulates a 5.25" high-density (MD2HD, 1.2Mb) floppy
+
+
+ Image emulates a 3.5" high-density (MF2HD, 1.44Mb) floppy
+
+
+ Image emulates a 3.5" extra-density (MF2ED, 2.88Mb) floppy
+
+
+ Image uses unknown emulation type {0}
+
+
+ System type: 0x{0:X2}
+
+
+ Bootable image's SHA1: {0}
+
+
+ Not bootable
+
+
+ Boot section {0}:
+
+
+ Section ID: {0}
+
+
+ Entry {0}:
+
+
+ Selection criteria type: {0}
+
+
+ Image contains ATAPI drivers
+
+
+ Image contains SCSI drivers
+
+
+ Sector {0}, Cooked, Mode 0/1 / Mode 2 Form 1
+
+
+ Sector {0}, Cooked, Mode 2 Form 2
+
+
+ Sector {0}, Cooked, Mode 2 Form {1}, File Number {2}, Channel Number {3}, Submode {4}, Coding Information {5}
+
+
+ Sector {0}, Raw, Audio
+
+
+ Sector {0} ({1:X2}:{2:X2}:{3:X2}), Raw, Mode {4}
+
+
+ Sector {0} ({1:X2}:{2:X2}:{3:X2}), Raw, Mode 2 Form {4}, File Number {5}, Channel Number {6}, Submode {7}, Coding Information {8}
+
+
+ Path table and PVD do not point to the same location for the root directory!
+
+
+ PVD does not point to correct root directory, checking path table...
+
+
+ Cannot find root directory...
+
+
+ File {0} gets truncated.
+
+
+ Sector {0}, file ID 0x{1:X4}
+
+
+ Current sector = {0}
+
+
+ Unknown LisaFS version {0}
+
+
+ Volume password: "{0}"
+
+
+ Volume ID: 0x{0:X16}
+
+
+ Backup volume ID: 0x{0:X16}
+
+
+ Master copy ID: 0x{0:X8}
+
+
+ Volume is number {0} of {1}
+
+
+ Serial number of Lisa computer that created this volume: {0}
+
+
+ Serial number of Lisa computer that can use this volume's software {0}
+
+
+ Volume's catalog created on {0}
+
+
+ Volume backed up on {0}
+
+
+ Volume scavenged on {0}
+
+
+ MDDF is in block {0}
+
+
+ There are {0} reserved blocks before volume
+
+
+ {0} blocks minus one
+
+
+ {0} blocks minus one minus MDDF offset
+
+
+ {0} blocks in volume
+
+
+ {0} bytes per sector (uncooked)
+
+
+ {0} blocks per cluster
+
+
+ {0} blocks in filesystem
+
+
+ {0} files in volume
+
+
+ {0} blocks free
+
+
+ {0} bytes in LisaInfo
+
+
+ Filesystem overhead: {0}
+
+
+ Scavenger result code: 0x{0:X8}
+
+
+ Boot code: 0x{0:X8}
+
+
+ Boot environment: 0x{0:X8}
+
+
+ Overmount stamp: 0x{0:X16}
+
+
+ S-Records start at {0} and spans for {1} blocks
+
+
+ Volume is clean
+
+
+ Volume is dirty
+
+
+ Underlying device does not support Lisa tags
+
+
+ Device is too small
+
+
+ Incorrect MDDF found
+
+
+ Mounting LisaFS v1
+
+
+ Mounting LisaFS v2
+
+
+ Mounting LisaFS v3
+
+
+ Cannot mount LisaFS version {0}
+
+
+ Error {0} reading S-Records file.
+
+
+ Cannot read Catalog File, error {0}
+
+
+ Unable to read boot blocks
+
+
+ Unable to read boot loader
+
+
+ Unable to read MDDF
+
+
+ Unable to read volume bitmap
+
+
+ Unable to read S-Records file
+
+
+ Not a Lisa filesystem
+
+
+ Exception {0}, {1}, {2}
+
+
+ Opera Filesystem Plugin
+
+
+ Opera filesystem disc.
+
+
+ Volume identifier: 0x{0:X8}
+
+
+ Block size: {0} bytes
+
+
+ WARNING: Filesystem indicates {0} bytes/block while device indicates {1} bytes/block
+
+
+ Volume size: {0} blocks, {1} bytes
+
+
+ WARNING: Filesystem indicates {0} blocks while device indicates {1} blocks
+
+
+ Root directory identifier: 0x{0:X8}
+
+
+ Root directory block size: {0} bytes
+
+
+ Root directory size: {0} blocks, {1} bytes
+
+
+ Last root directory copy: {0}
+
+
+ U.C.S.D. Pascal filesystem
+
+
+ Volume record spans from block {0} to block {1}
+
+
+ Volume has {0} blocks
+
+
+ Volume has {0} files
+
+
+ Volume last booted at {0}
+
+
+ Acorn Advanced Disc Filing System
+
+
+ Acorn Advanced Disc Filing System
+
+
+ Volume has {0} bytes
+
+
+ Volume ID: {0:X4}
+
+
+ Version {0}
+
+
+ Density code: {0}
+
+
+ Skew: {0}
+
+
+ Boot option: {0}
+
+
+ Root starts at frag {0}
+
+
+ Volume has {0} bytes in {1} zones
+
+
+ Volume flags: 0x{0:X4}
+
+
+ Amiga DOS filesystem
+
+
+ Bootblock points to {0} as Rootblock
+
+
+ Searching for Rootblock in sector {0}
+
+
+ Amiga Original File System
+
+
+ Amiga Fast File System
+
+
+ Amiga Original File System with international characters
+
+
+ Amiga Fast File System with international characters
+
+
+ Amiga Original File System with directory cache
+
+
+ Amiga Fast File System with directory cache
+
+
+ Amiga Original File System with long filenames
+
+
+ Amiga Fast File System with long filenames
+
+
+ , with multi-user patches
+
+
+ Volume bitmap is valid
+
+
+ Bitmap extension at block {0}
+
+
+ Directory cache starts at block {0}
+
+
+ Volume block size is {0} bytes
+
+
+ Volume root directory last modified on {0}
+
+
+ Root block checksum is 0x{0:X8}
+
+
+ Alexander Osipov DOS file system
+
+
+ Alexander Osipov DOS file system
+
+
+ {0} used sectors on volume
+
+
+ Disk name: {0}
+
+
+ Apple File System
+
+
+ Apple File System
+
+
+ {0} bytes per block
+
+
+ Container has {0} bytes in {1} blocks
+
+
+ Apple HFS+ filesystem
+
+
+ HFS+ filesystem.
+
+
+ HFSX filesystem.
+
+
+ Volume is wrapped inside an HFS volume.
+
+
+ Filesystem version is {0}.
+
+
+ Volume is locked on hardware.
+
+
+ Volume is unmounted.
+
+
+ There are bad blocks in the extents file.
+
+
+ Volume does not require cache.
+
+
+ Volume state is inconsistent.
+
+
+ Volume is locked on software.
+
+
+ Implementation that last mounted the volume: "{0}".
+
+
+ Journal starts at allocation block {0}.
+
+
+ Last check date: {0}
+
+
+ Volume has never been checked up
+
+
+ {0} files on volume.
+
+
+ {0} folders on volume.
+
+
+ {0} allocation blocks.
+
+
+ {0} free blocks.
+
+
+ Resource fork clump size: {0} bytes.
+
+
+ Data fork clump size: {0} bytes.
+
+
+ Volume has been mounted writable {0} times.
+
+
+ Allocation File is {0} bytes.
+
+
+ Extents File is {0} bytes.
+
+
+ Catalog File is {0} bytes.
+
+
+ Attributes File is {0} bytes.
+
+
+ Startup File is {0} bytes.
+
+
+ This version is not supported yet.
+
+
+ AtheOS Filesystem
+
+
+ Atheos filesystem
+
+
+ Filesystem is read-only
+
+
+ {0} blocks in volume ({1} bytes)
+
+
+ {0} used blocks ({1} bytes)
+
+
+ {0} bytes per i-node
+
+
+ {0} blocks per allocation group ({1} bytes)
+
+
+ {0} allocation groups in volume
+
+
+ Journal resides in block {0} of allocation group {1} and runs for {2} blocks ({3} bytes)
+
+
+ Journal starts in byte {0} and has {1} bytes in {2} blocks
+
+
+ Root folder's i-node resides in block {0} of allocation group {1} and runs for {2} blocks ({3} bytes)
+
+
+ Directory containing files scheduled for deletion's i-node resides in block {0} of allocation group {1} and runs for {2} blocks ({3} bytes)
+
+
+ Indices' i-node resides in block {0} of allocation group {1} and runs for {2} blocks ({3} bytes)
+
+
+ {0} blocks for bootloader ({1} bytes)
+
+
+ Be Filesystem
+
+
+ Little-endian BeFS
+
+
+ Big-endian BeFS
+
+
+ Superblock seems corrupt, following information may be incorrect
+
+
+ Magic 1: 0x{0:X8} (Should be 0x42465331)
+
+
+ Magic 2: 0x{0:X8} (Should be 0xDD121031)
+
+
+ Magic 3: 0x{0:X8} (Should be 0x15B6830E)
+
+
+ Filesystem endianness: 0x{0:X8} (Should be 0x42494745)
+
+
+ Root folder's i-node size: {0} blocks (Should be 1)
+
+
+ Indices' i-node size: {0} blocks (Should be 1)
+
+
+ 1 << block_shift == block_size => 1 << {0} == {1} (Should be {2})
+
+
+ Unknown flags: {0:X8}
+
+
+ Journal starts in byte {0} and ends in byte {1}
+
+
+ B-tree file system
+
+
+ B-tree filesystem
+
+
+ UUID: {0}
+
+
+ This superblock resides on physical block {0}
+
+
+ Root tree starts at LBA {0}
+
+
+ Chunk tree starts at LBA {0}
+
+
+ Log tree starts at LBA {0}
+
+
+ Volume has {0} bytes spanned in {1} devices
+
+
+ Volume has {0} bytes used
+
+
+ {0} bytes/sector
+
+
+ {0} bytes/node
+
+
+ {0} bytes/leaf
+
+
+ {0} bytes/stripe
+
+
+ Flags: 0x{0:X}
+
+
+ Compatible flags: 0x{0:X}
+
+
+ Read-only compatible flags: 0x{0:X}
+
+
+ Incompatible flags: 0x{0:X}
+
+
+ Device's UUID: {0}
+
+
+ Commodore file system
+
+
+ Commodore file system
+
+
+ Directory starts at track {0} sector {1}
+
+
+ Disk DOS Version: {0}
+
+
+ DOS Version: {0}
+
+
+ Disk Version: {0}
+
+
+ Disk ID: {0}
+
+
+ Disk DOS type: {0}
+
+
+ Cram filesystem
+
+
+ Cram file system
+
+
+ Little-endian
+
+
+ Big-endian
+
+
+ Volume edition {0}
+
+
+ dump(8) Plugin
+
+
+ Could not read dump(8) header block
+
+
+ Old 16-bit dump(8)
+
+
+ Dump created on {0}
+
+
+ Previous dump created on {0}
+
+
+ Dump volume number: {0}
+
+
+ Dump level: {0}
+
+
+ Dump label: {0}
+
+
+ Dumped filesystem name: {0}
+
+
+ Dumped device: {0}
+
+
+ Dump hostname: {0}
+
+
+ ECMA-67
+
+
+ ECMA-67
+
+
+ Extent File System Plugin
+
+
+ magic at 0x{0:X3} = 0x{1:X8} (expected 0x{2:X8} or 0x{3:X8})
+
+
+ magic at {0} = 0x{1:X8} (expected 0x{2:X8} or 0x{3:X8})
+
+
+ SGI extent filesystem
+
+
+ New version
+
+
+ Filesystem size: {0} basic blocks
+
+
+ First cylinder group starts at block {0}
+
+
+ Cylinder group size: {0} basic blocks
+
+
+ {0} inodes per cylinder group
+
+
+ {0} heads per cylinder
+
+
+ {0} cylinder groups
+
+
+ {0} bytes on bitmap
+
+
+ {0} free inodes
+
+
+ Bitmap resides at block {0}
+
+
+ Replacement superblock resides at block {0}
+
+
+ Last inode allocated: {0}
+
+
+ Checksum: 0x{0:X8}
+
+
+ Volume pack: {0}
+
+
+ Microsoft Extended File Allocation Table
+
+
+ Microsoft exFAT
+
+
+ Partition offset: {0}
+
+
+ Volume has {0} sectors of {1} bytes each for a total of {2} bytes
+
+
+ Volume uses clusters of {0} sectors ({1} bytes) each
+
+
+ First FAT starts at sector {0} and runs for {1} sectors
+
+
+ Volume uses {0} FATs
+
+
+ Cluster heap starts at sector {0}, contains {1} clusters and is {2}% used
+
+
+ Root directory starts at cluster {0}
+
+
+ Filesystem revision is {0}.{1:D2}
+
+
+ Volume serial number: {0:X8}
+
+
+ BIOS drive is {0:X2}h
+
+
+ 2nd FAT is in use
+
+
+ Underlying media presented errors
+
+
+ OEM Parameters {0}:
+
+
+ {0} bytes in erase block
+
+
+ {0} bytes per page
+
+
+ {0} spare blocks
+
+
+ {0} nanoseconds random access time
+
+
+ {0} nanoseconds program time
+
+
+ {0} nanoseconds read cycle time
+
+
+ {0} nanoseconds write cycle time
+
+
+ Found unknown parameter type {0}
+
+
+ Linux extended Filesystem 2, 3 and 4
+
+
+ ext2 (old) filesystem
+
+
+ ext2 filesystem
+
+
+ ext3 filesystem
+
+
+ ext4 filesystem
+
+
+ Not an ext2/3/4 filesystem
+
+
+ Unknown OS ({0})
+
+
+ Volume was created on {0} for {1}
+
+
+ Volume was created for {0}
+
+
+ Volume has {0} blocks of {1} bytes, for a total of {2} bytes
+
+
+ Last mounted on {0}
+
+
+ Volume has been mounted {0} times of a maximum of {1} mounts before checking
+
+
+ Volume has been mounted {0} times with no maximum no. of mounts before checking
+
+
+ Last mounted at: "{0}"
+
+
+ Last used mount options were: {0}
+
+
+ Volume has never been mounted
+
+
+ Volume can be mounted {0} times before checking
+
+
+ Volume has no maximum no. of mounts before checking
+
+
+ Last checked on {0} (should check every {1} seconds)
+
+
+ Last checked on {0}
+
+
+ Volume has never been checked (should check every {0})
+
+
+ Volume has never been checked
+
+
+ Last written on {0}
+
+
+ Volume is recovering orphan files
+
+
+ Volume is in an unknown state ({0})
+
+
+ On errors, filesystem should continue
+
+
+ On errors, filesystem should remount read-only
+
+
+ On errors, filesystem should panic
+
+
+ On errors filesystem will do an unknown thing ({0})
+
+
+ Filesystem revision: {0}.{1}
+
+
+ Volume UUID: {0}
+
+
+ {0} KiB has been written on volume
+
+
+ {0} reserved and {1} free blocks
+
+
+ {0} inodes with {1} free inodes ({2}%)
+
+
+ First inode is {0}
+
+
+ {0} bytes per fragment
+
+
+ {0} blocks, {1} flags and {2} inodes per group
+
+
+ {0} is first data block
+
+
+ Default UID: {0}, GID: {1}
+
+
+ Block group number is {0}
+
+
+ Group descriptor size is {0} bytes
+
+
+ First metablock group is {0}
+
+
+ RAID stride: {0}
+
+
+ {0} blocks on all data disks
+
+
+ {0} seconds for multi-mount protection wait, on block {1}
+
+
+ {0} Flexible block group size
+
+
+ Hash seed: {0:X8}{1:X8}{2:X8}{3:X8}, version {4}
+
+
+ Journal UUID: {0}
+
+
+ Journal has inode {0}
+
+
+ Journal is on device {0}
+
+
+ Journal backup type: {0}
+
+
+ Last orphaned inode is {0}
+
+
+ There are no orphaned inodes
+
+
+ Active snapshot has ID {0}, on inode {1}, with {2} blocks reserved, list starting on block {3}
+
+
+ {0} errors registered
+
+
+ First error occurred on {0}, last on {1}
+
+
+ First error inode is {0}, last is {1}
+
+
+ First error block is {0}, last is {1}
+
+
+ First error function is "{0}", last is "{1}"
+
+
+ Flags…:
+
+
+ Signed directory hash is in use
+
+
+ Unsigned directory hash is in use
+
+
+ Volume is testing development code
+
+
+ Unknown set flags: {0:X8}
+
+
+ Default mount options…:
+
+
+ (debug): Enable debugging code
+
+
+ (bsdgroups): Emulate BSD behaviour when creating new files
+
+
+ (user_xattr): Enable user-specified extended attributes
+
+
+ (acl): Enable POSIX ACLs
+
+
+ (uid16): Disable 32bit UIDs and GIDs
+
+
+ (journal_data): Journal data and metadata
+
+
+ (journal_data_ordered): Write data before journaling metadata
+
+
+ (journal_data_writeback): Write journal before data
+
+
+ Unknown set default mount options: {0:X8}
+
+
+ Compatible features…:
+
+
+ Pre-allocate directories
+
+
+ imagic inodes ?
+
+
+ Has journal (ext3)
+
+
+ Has extended attribute blocks
+
+
+ Has online filesystem resize reservations
+
+
+ Can use hashed indexes on directories
+
+
+ Unknown compatible features: {0:X8}
+
+
+ Compatible features if read-only…:
+
+
+ Reduced number of superblocks
+
+
+ Can have files bigger than 2GiB
+
+
+ Uses B-Tree for directories
+
+
+ Can have files bigger than 2TiB (ext4)
+
+
+ Group descriptor checksums and sparse inode table (ext4)
+
+
+ More than 32000 directory entries (ext4)
+
+
+ Supports nanosecond timestamps and creation time (ext4)
+
+
+ Unknown read-only compatible features: {0:X8}
+
+
+ Incompatible features…:
+
+
+ Uses compression
+
+
+ Filetype in directory entries
+
+
+ Journal needs recovery (ext3)
+
+
+ Has journal on another device (ext3)
+
+
+ Reduced block group backups
+
+
+ Volume use extents (ext4)
+
+
+ Supports volumes bigger than 2^32 blocks (ext4)
+
+
+ Multi-mount protection (ext4)
+
+
+ Flexible block group metadata location (ext4)
+
+
+ Extended attributes can reside in inode (ext4)
+
+
+ Data can reside in directory entry (ext4)
+
+
+ Unknown incompatible features: {0:X8}
+
+
+ Linux extended Filesystem
+
+
+ ext filesystem
+
+
+ {0} zones on volume
+
+
+ {0} free blocks ({1} bytes)
+
+
+ {0} inodes on volume, {1} free ({2}%)
+
+
+ First free inode is {0}
+
+
+ First free block is {0}
+
+
+ First data zone is {0}
+
+
+ Log zone size: {0}
+
+
+ Max zone size: {0}
+
+
+ F2FS Plugin
+
+
+ F2FS filesystem
+
+
+ Version {0}.{1}
+
+
+ {0} sectors ({1} bytes) per block
+
+
+ {0} blocks per segment
+
+
+ {0} segments per section
+
+
+ {0} sections per zone
+
+
+ {0} sections
+
+
+ {0} segments
+
+
+ Root directory resides on inode {0}
+
+
+ Volume last mounted on kernel version: {0}
+
+
+ Volume created on kernel version: {0}
+
+
+ BSD Fast File System (aka UNIX File System, UFS)
+
+
+ Not a UFS filesystem, I shouldn't have arrived here!
+
+
+ UFS filesystem
+
+
+ Big-endian UFS filesystem
+
+
+ BorderWare UFS filesystem
+
+
+ Big-endian BorderWare UFS filesystem
+
+
+ UFS2 filesystem
+
+
+ Big-endian UFS2 filesystem
+
+
+ Incompletely initialized UFS filesystem
+
+
+ BEWARE!!! Following information may be completely wrong!
+
+
+ Incompletely initialized big-endian UFS filesystem
+
+
+ There are a lot of variants of UFS using overlapped values on same fields
+
+
+ I will try to guess which one it is, but unless it's UFS2, I may be surely wrong
+
+
+ Guessed as 42BSD FFS
+
+
+ Guessed as 43BSD FFS
+
+
+ Guessed as 44BSD FFS
+
+
+ Guessed as SunOS FFS
+
+
+ Guessed as SunOS/x86 FFS
+
+
+ Guessed as UFS
+
+
+ Linked list of filesystems: 0x{0:X8}
+
+
+ Superblock LBA: {0}
+
+
+ Cylinder-block LBA: {0}
+
+
+ inode-block LBA: {0}
+
+
+ First data block LBA: {0}
+
+
+ Cylinder group offset in cylinder: {0}
+
+
+ Volume last written on {0}
+
+
+ {0} data blocks in volume ({1} bytes)
+
+
+ {0} cylinder groups in volume
+
+
+ {0} bytes in a basic block
+
+
+ {0} bytes in a frag block
+
+
+ {0} frags in a block
+
+
+ {0}% of blocks must be free
+
+
+ {0}ms for optimal next block
+
+
+ Disk rotates {0} times per second ({1}rpm)
+
+
+ {0} contiguous blocks at maximum
+
+
+ {0} blocks per cylinder group at maximum
+
+
+ Superblock is {0} bytes
+
+
+ NINDIR: 0x{0:X8}
+
+
+ INOPB: 0x{0:X8}
+
+
+ NSPF: 0x{0:X8}
+
+
+ Filesystem will minimize allocation time
+
+
+ Filesystem will minimize volume fragmentation
+
+
+ Unknown optimization value: 0x{0:X8}
+
+
+ {0} sectors/track
+
+
+ Volume state on {0}
+
+
+ Hardware sector interleave: {0}
+
+
+ Sector 0 skew: {0}/track
+
+
+ Volume ID: 0x{0:X8}{1:X8}
+
+
+ {0} µsec for head switch
+
+
+ {0} µsec for track-to-track seek
+
+
+ Cylinder group summary LBA: {0}
+
+
+ {0} bytes in cylinder group summary
+
+
+ {0} bytes in cylinder group
+
+
+ {0} tracks/cylinder
+
+
+ {0} sectors/cylinder
+
+
+ {0} cylinders in volume
+
+
+ {0} cylinders/group
+
+
+ {0} blocks per group
+
+
+ {0} directories
+
+
+ {0} free frags
+
+
+ Superblock is under modification
+
+
+ Volume is read-only
+
+
+ Volume flags: 0x{0:X2}
+
+
+ Volume last mounted at "{0}"
+
+
+ Last searched cylinder group: {0}
+
+
+ {0} contiguously allocated directories
+
+
+ Standard superblock LBA: {0}
+
+
+ {0} blocks ({1} bytes)
+
+
+ {0} data blocks ({1} bytes)
+
+
+ Cylinder group summary area LBA: {0}
+
+
+ {0} blocks pending of being freed
+
+
+ {0} inodes pending of being freed
+
+
+ {0} blocks on cluster summary array
+
+
+ Maximum length of a symbolic link: {0}
+
+
+ A file can be {0} bytes at max
+
+
+ {0} rotational positions
+
+
+ {0} blocks per rotation
+
+
+ Fossil Filesystem Plugin
+
+
+ magic at 0x{0:X8} (expected 0x{1:X8})
+
+
+ Fossil filesystem
+
+
+ Filesystem version {0}
+
+
+ Superblock resides in block {0}
+
+
+ Labels resides in block {0}
+
+
+ Data starts at block {0}
+
+
+ magic 0x{0:X8} (expected 0x{1:X8})
+
+
+ Epoch low {0}
+
+
+ Epoch high {0}
+
+
+ Next QID {0}
+
+
+ Active root block {0}
+
+
+ Next root block {0}
+
+
+ Current root block {0}
+
+
+ HAMMER Filesystem
+
+
+ HAMMER filesystem
+
+
+ Volume {0} of {1} on this filesystem
+
+
+ Volume serial: {0}
+
+
+ Boot area starts at {0}
+
+
+ Memory log starts at {0}
+
+
+ First volume buffer starts at {0}
+
+
+ Volume ends at {0}
+
+
+ Filesystem contains {0} "big-blocks" ({1} bytes)
+
+
+ Filesystem has {0} "big-blocks" free ({1} bytes)
+
+
+ Filesystem has {0} inodes used
+
+
+ OS/2 High Performance File System
+
+
+ This may not be HPFS, following information may be not correct.
+
+
+ File system type: "{0}" (Should be "HPFS ")
+
+
+ Superblock magic1: 0x{0:X8} (Should be 0xF995E849)
+
+
+ Superblock magic2: 0x{0:X8} (Should be 0xFA53E9C5)
+
+
+ Spareblock magic1: 0x{0:X8} (Should be 0xF9911849)
+
+
+ Spareblock magic2: 0x{0:X8} (Should be 0xFA5229C5)
+
+
+ NT Flags: 0x{0:X2}
+
+
+ Signature: 0x{0:X2}
+
+
+ HPFS version: {0}
+
+
+ Functional version: {0}
+
+
+ Sector of root directory FNode: {0}
+
+
+ {0} sectors are marked bad
+
+
+ Sector of free space bitmaps: {0}
+
+
+ Sector of bad blocks list: {0}
+
+
+ Date of last integrity check: {0}
+
+
+ Filesystem integrity has never been checked
+
+
+ Date of last optimization {0}
+
+
+ Filesystem has never been optimized
+
+
+ Directory band has {0} sectors
+
+
+ Directory band starts at sector {0}
+
+
+ Directory band ends at sector {0}
+
+
+ Sector of directory band bitmap: {0}
+
+
+ Sector of ACL directory: {0}
+
+
+ Sector of Hotfix directory: {0}
+
+
+ {0} used Hotfix entries
+
+
+ {0} total Hotfix entries
+
+
+ {0} free spare DNodes
+
+
+ {0} total spare DNodes
+
+
+ Sector of codepage directory: {0}
+
+
+ {0} codepages used in the volume
+
+
+ SuperBlock CRC32: {0:X8}
+
+
+ SpareBlock CRC32: {0:X8}
+
+
+ Flags:
+
+
+ Filesystem is dirty.
+
+
+ Filesystem is clean.
+
+
+ Spare directory blocks are in use
+
+
+ Hotfixes are in use
+
+
+ Disk contains bad sectors
+
+
+ Disk has a bad bitmap
+
+
+ Filesystem was formatted fast
+
+
+ Unknown flag 0x40 on flags1 is active
+
+
+ Filesystem has been mounted by an old IFS
+
+
+ Install DASD limits
+
+
+ Resync DASD limits
+
+
+ DASD limits are operational
+
+
+ Multimedia is active
+
+
+ DCE ACLs are active
+
+
+ DASD limits are dirty
+
+
+ Unknown flag 0x40 on flags2 is active
+
+
+ Unknown flag 0x80 on flags2 is active
+
+
+ JFS Plugin
+
+
+ JFS filesystem
+
+
+ {0} blocks of {1} bytes
+
+
+ {0} blocks per allocation group
+
+
+ Volume uses Unicode for directory entries
+
+
+ Volume remounts read-only on error
+
+
+ Volume continues on error
+
+
+ Volume panics on error
+
+
+ Volume has user quotas enabled
+
+
+ Volume has group quotas enabled
+
+
+ Volume is not using any journal
+
+
+ Volume sends TRIM/UNMAP commands to underlying device
+
+
+ Volume commits in groups of 1
+
+
+ Volume commits lazy
+
+
+ Volume does not commit to log
+
+
+ Volume has log withing itself
+
+
+ Volume has log withing itself and is moving it out
+
+
+ Volume supports sparse files
+
+
+ Volume has bad current secondary ait
+
+
+ Volume has DASD limits enabled
+
+
+ Volume primes DASD on boot
+
+
+ Volume is in a big-endian system
+
+
+ Volume has persistent indexes
+
+
+ Volume supports Linux
+
+
+ Volume supports DCE DFS LFS
+
+
+ Volume supports OS/2, and is case insensitive
+
+
+ Volume supports AIX
+
+
+ Volume was last updated on {0}
+
+
+ HP Logical Interchange Format Plugin
+
+
+ HP Logical Interchange Format
+
+
+ Directory starts at cluster {0}
+
+
+ LIF identifier: {0}
+
+
+ Directory size: {0} clusters
+
+
+ LIF version: {0}
+
+
+ {0} tracks
+
+
+ {0} sectors
+
+
+ Locus Filesystem Plugin
+
+
+ magic at {1} = 0x{0:X8}
+
+
+ Locus filesystem (old)
+
+
+ Locus filesystem
+
+
+ Superblock last modified on {0}
+
+
+ Volume has {0} blocks of {1} bytes each (total {2} bytes)
+
+
+ {0} blocks free ({1} bytes)
+
+
+ I-node list uses {0} blocks
+
+
+ Next free inode search will start at inode {0}
+
+
+ There are an estimate of {0} free inodes before next search start
+
+
+ Read-only volume
+
+
+ Clean volume
+
+
+ Dirty volume
+
+
+ Removable volume
+
+
+ This is the primary pack
+
+
+ Replicated volume
+
+
+ User replicated volume
+
+
+ Backbone volume
+
+
+ NFS volume
+
+
+ Volume inhibits automatic fsck
+
+
+ Set-uid/set-gid is disabled
+
+
+ Volume uses synchronous writes
+
+
+ Physical volume name: {0}
+
+
+ Global File System number: {0}
+
+
+ Global File System pack number {0}
+
+
+ MicroDOS file system
+
+
+ MicroDOS filesystem
+
+
+ Volume has {0} blocks ({1} bytes)
+
+
+ Volume has {0} blocks used ({1} bytes)
+
+
+ Volume contains {0} files
+
+
+ First used block is {0}
+
+
+ Minix Filesystem
+
+
+ Minix v3 filesystem
+
+
+ Minix 3 v2 filesystem
+
+
+ Minix 3 v1 filesystem
+
+
+ Minix v1 filesystem
+
+
+ Minix v2 filesystem
+
+
+ {0} chars in filename
+
+
+ {0} zones on volume ({1} bytes)
+
+
+ {0} bytes/block
+
+
+ {0} inodes on volume
+
+
+ {0} blocks on inode map ({1} bytes)
+
+
+ {0} blocks on zone map ({1} bytes)
+
+
+ First data zone: {0}
+
+
+ {0} bytes maximum per file
+
+
+ On-disk filesystem version: {0}
+
+
+ Filesystem state: {0:X4}
+
+
+ NILFS2 Plugin
+
+
+ NILFS2 filesystem
+
+
+ {0} bytes in volume
+
+
+ Filesystem created on Linux
+
+
+ Creator OS code: {0}
+
+
+ {0} bytes per inode
+
+
+ Volume last mounted on {0}
+
+
+ Nintendo optical filesystems
+
+
+ Nintendo optical filesystem
+
+
+ Nintendo Wii Optical Disc
+
+
+ Nintendo GameCube Optical Disc
+
+
+ Disc ID is {0}
+
+
+ Disc is a {0} disc
+
+
+ Disc region is {0}
+
+
+ Published by {0}
+
+
+ Disc number {0} of a multi-disc set
+
+
+ Disc is prepared for audio streaming
+
+
+ Audio streaming buffer size is {0} bytes
+
+
+ Title: {0}
+
+
+ First {0} partition starts at sector {1}
+
+
+ Second {0} partition starts at sector {1}
+
+
+ Third {0} partition starts at sector {1}
+
+
+ Fourth {0} partition starts at sector {1}
+
+
+ Japan age rating is {0}
+
+
+ ESRB age rating is {0}
+
+
+ German age rating is {0}
+
+
+ PEGI age rating is {0}
+
+
+ Finland age rating is {0}
+
+
+ Portugal age rating is {0}
+
+
+ UK age rating is {0}
+
+
+ Australia age rating is {0}
+
+
+ Korea age rating is {0}
+
+
+ FST starts at {0} and has {1} bytes
+
+
+ Commodore 64 Virtual Console
+
+
+ Demo
+
+
+ Neo-Geo Virtual Console
+
+
+ NES Virtual Console
+
+
+ Gamecube
+
+
+ Wii channel
+
+
+ Super Nintendo Virtual Console
+
+
+ Master System Virtual Console
+
+
+ Megadrive Virtual Console
+
+
+ Nintendo 64 Virtual Console
+
+
+ Promotional or TurboGrafx Virtual Console
+
+
+ TurboGrafx CD Virtual Console
+
+
+ Wii
+
+
+ Utility
+
+
+ WiiWare
+
+
+ MSX Virtual Console or WiiWare demo
+
+
+ Diagnostic
+
+
+ Wii Backup
+
+
+ WiiFit
+
+
+ unknown type '{0}'
+
+
+ any region
+
+
+ Germany
+
+
+ USA
+
+
+ France
+
+
+ Italy
+
+
+ Japan
+
+
+ Korea
+
+
+ PAL
+
+
+ Russia
+
+
+ Spain
+
+
+ Taiwan
+
+
+ Australia
+
+
+ unknown region code '{0}'
+
+
+ Unknown publisher '{0}'
+
+
+ data
+
+
+ update
+
+
+ channel
+
+
+ unknown partition type {0}
+
+
+ New Technology File System (NTFS)
+
+
+ {0} sectors per cluster ({1} bytes)
+
+
+ {0} hidden sectors before filesystem
+
+
+ BIOS drive number: 0x{0:X2}
+
+
+ Cluster where $MFT starts: {0}
+
+
+ Cluster where $MFTMirr starts: {0}
+
+
+ {0} clusters per MFT record ({1} bytes)
+
+
+ {0} bytes per MFT record
+
+
+ {0} clusters per Index block ({1} bytes)
+
+
+ {0} bytes per Index block
+
+
+ Volume serial number: {0:X16}
+
+
+ Files-11 On-Disk Structure
+
+
+ magic: "{0}"
+
+
+ unaligned magic: "{0}"
+
+
+ The following information may be incorrect for this volume.
+
+
+ This volume may be corrupted.
+
+
+ Volume format is {0}
+
+
+ Volume is Level {0} revision {1}
+
+
+ Lowest structure in the volume is Level {0}, revision {1}
+
+
+ Highest structure in the volume is Level {0}, revision {1}
+
+
+ This home block is on sector {0} (VBN {1})
+
+
+ Secondary home block is on sector {0} (VBN {1})
+
+
+ Volume bitmap starts in sector {0} (VBN {1})
+
+
+ Volume bitmap runs for {0} sectors ({1} bytes)
+
+
+ Backup INDEXF.SYS;1 is in sector {0} (VBN {1})
+
+
+ {0} maximum files on the volume
+
+
+ {0} reserved files
+
+
+ Volume is {0} of {1} in set "{2}".
+
+
+ Volume owner is "{0}" (ID 0x{1:X8})
+
+
+ Drive serial number: 0x{0:X8}
+
+
+ Volume was created on {0}
+
+
+ Volume was last modified on {0}
+
+
+ Volume copied on {0}
+
+
+ Checksums: 0x{0:X4} and 0x{1:X4}
+
+
+ Window: {0}
+
+
+ Cached directories: {0}
+
+
+ Default allocation: {0} blocks
+
+
+ Readings should be verified
+
+
+ Writings should be verified
+
+
+ Files should be erased or overwritten when deleted
+
+
+ Highwater mark is to be disabled
+
+
+ Classification checks are enabled
+
+
+ Volume permissions (r = read, w = write, c = create, d = delete)
+ Do not translate r, w, c or d letters
+
+
+ System, owner, group, world
+
+
+ Unknown structures:
+
+
+ Security mask: 0x{0:X8}
+
+
+ File protection: 0x{0:X4}
+
+
+ Record protection: 0x{0:X4}
+
+
+ PC Engine CD Plugin
+
+
+ PC-FX Plugin
+
+
+ PC-FX executable:
+
+
+ Identifier: {0}
+
+
+ Copyright: {0}
+
+
+ Maker ID: {0}
+
+
+ Maker name: {0}
+
+
+ Volume number: {0}
+
+
+ Country code: {0}
+
+
+ Dated {0}
+
+
+ Load {0} sectors from sector {1}
+
+
+ Load at 0x{0:X8} and jump to 0x{1:X8}
+
+
+ Professional File System
+
+
+ Professional File System v1
+
+
+ Professional File System v2
+
+
+ Professional File System v3
+
+
+ , with multi-user support
+
+
+ Volume has {0} free sectors of {1}
+
+
+ Root block extension resides at block {0}
+
+
+ Apple ProDOS filesystem
+
+
+ Datetime field year {0}, month {1}, day {2}, hour {3}, minute {4}.
+
+
+ ProDOS uses 512 bytes/sector while devices uses 2048 bytes/sector.
+
+
+ Warning! Detected unknown ProDOS version ProDOS filesystem.
+
+
+ All of the following information may be incorrect
+
+
+ ProDOS version 1 used to create this volume.
+
+
+ Unknown ProDOS version with field {0} used to create this volume.
+
+
+ ProDOS version 1 at least required for reading this volume.
+
+
+ Unknown ProDOS version with field {0} is at least required for reading this volume.
+
+
+ Volume name is {0}
+
+
+ {0} bytes per directory entry
+
+
+ {0} entries per directory block
+
+
+ {0} files in root directory
+
+
+ Bitmap starts at block {0}
+
+
+ Volume can be read
+
+
+ Volume can be written
+
+
+ Volume can be renamed
+
+
+ Volume can be destroyed
+
+
+ Volume must be backed up
+
+
+ Reserved attributes are set: {0:X2}
+
+
+ QNX4 Plugin
+
+
+ QNX4 filesystem
+
+
+ Created on {0}
+
+
+ QNX6 Plugin
+
+
+ QNX6 (Audi) filesystem
+
+
+ Serial: 0x{0:X16}
+
+
+ {0} inodes free of {1}
+
+
+ {0} blocks ({1} bytes) free of {2} ({3} bytes)
+
+
+ QNX6 filesystem
+
+
+ Flags: 0x{0:X8}
+
+
+ Version1: 0x{0:X4}
+
+
+ Version2: 0x{0:X4}
+
+
+ OS-9 Random Block File Plugin
+
+
+ magic at {0} = 0x{1:X8} or 0x{2:X8} (expected 0x{3:X8} or 0x{4:X8})
+
+
+ OS-9 Random Block File
+
+
+ Volume ID: {0:X8}
+
+
+ {0} cylinders
+
+
+ {0} blocks in cylinder 0
+
+
+ {0} blocks per cylinder
+
+
+ Disk is double sided
+
+
+ Disk is single sided
+
+
+ Disk is double density
+
+
+ Disk is single density
+
+
+ Disk is 384 TPI
+
+
+ Disk is 192 TPI
+
+
+ Disk is 96 TPI or 135 TPI
+
+
+ Disk is 48 TPI
+
+
+ Allocation bitmap descriptor starts at block {0}
+
+
+ Debugger descriptor starts at block {0}
+
+
+ Boot file descriptor starts at block {0}
+
+
+ Root directory descriptor starts at block {0}
+
+
+ Disk is owned by group {0} user {1}
+
+
+ Volume's identification block was last written on {0}
+
+
+ {0} bytes in allocation bitmap
+
+
+ Boot file starts at block {0} and has {1} bytes
+
+
+ Disk is owned by user {0}
+
+
+ Volume attributes: {0:X2}
+
+
+ Path descriptor options: {0}
+
+
+ Resilient File System plugin
+
+
+ Microsoft Resilient File System
+
+
+ Volume uses {0} bytes per sector
+
+
+ Volume uses {0} sectors per cluster ({1} bytes)
+
+
+ Volume has {0} sectors ({1} bytes)
+
+
+ Reiser Filesystem Plugin
+
+
+ Reiser 3.5 filesystem
+
+
+ Reiser 3.6 filesystem
+
+
+ Reiser Jr. filesystem
+
+
+ Volume has {0} blocks with {1} blocks free
+
+
+ Root directory resides on block {0}
+
+
+ Volume has not been cleanly umounted
+
+
+ Volume last checked on {0}
+
+
+ Reiser4 Filesystem Plugin
+
+
+ Reiser 4 filesystem
+
+
+ Volume disk format: {0}
+
+
+ RT-11 file system
+
+
+ First directory segment starts at block {0}
+
+
+ Volume owner is "{0}"
+
+
+ Checksum: 0x{0:X4} (calculated 0x{1:X4})
+
+
+ SmartFileSystem
+
+
+ SmartFileSystem
+
+
+ Volume version {0}
+
+
+ Volume starts on device byte {0} and ends on byte {1}
+
+
+ Bitmap starts in block {0}
+
+
+ Admin space container starts in block {0}
+
+
+ Root object container starts in block {0}
+
+
+ Root node of the extent B-tree resides in block {0}
+
+
+ Root node of the object B-tree resides in block {0}
+
+
+ Volume is case sensitive
+
+
+ Volume moves deleted files to a recycled folder
+
+
+ Solar_OS filesystem
+
+
+ Solar_OS filesystem
+
+
+ WARNING: Filesystem describes a {0} bytes/sector, while device describes a {1} bytes/sector
+
+
+ WARNING: Filesystem describes a {0} sectors volume, bigger than device ({1} sectors)
+
+
+ Squash filesystem
+
+
+ Squash file system
+
+
+ Volume version {0}.{1}
+
+
+ Volume has {0} bytes per block
+
+
+ Volume has {0} inodes
+
+
+ Volume is compressed using LZ4
+
+
+ Volume is compressed using LZO
+
+
+ Volume is compressed using LZMA
+
+
+ Volume is compressed using XZ
+
+
+ Volume is compressed using GZIP
+
+
+ Volume is compressed using Zstandard
+
+
+ Volume is compressed using unknown algorithm {0}
+
+
+ UNIX System V filesystem
+
+
+ XENIX filesystem
+
+
+ 512 bytes per block
+
+
+ 1024 bytes per block
+
+
+ 2048 bytes per block
+
+
+ Unknown s_type value: 0x{0:X8}
+
+
+ WARNING: Filesystem indicates {0} bytes/block while device indicates {1} bytes/sector
+
+
+ {0} free zones on volume ({1} bytes)
+
+
+ {0} free blocks on list ({1} bytes)
+
+
+ {0} blocks per cylinder ({1} bytes)
+
+
+ {0} blocks per gap ({1} bytes)
+
+
+ {0} free inodes on volume
+
+
+ {0} free inodes on list
+
+
+ Free block list is locked
+
+
+ inode cache is locked
+
+
+ Superblock is being modified
+
+
+ Volume is mounted read-only
+
+
+ Superblock last updated on {0}
+
+
+ Pack name: {0}
+
+
+ System V Release 4 filesystem
+
+
+ System V Release 2 filesystem
+
+
+ Coherent UNIX filesystem
+
+
+ UNIX 7th Edition filesystem
+
+
+ Universal Disk Format
+
+
+ Universal Disk Format
+
+
+ Volume uses {0} bytes per block
+
+
+ Volume was last written in {0}
+
+
+ Volume contains {0} partitions
+
+
+ Volume contains {0} files and {1} directories
+
+
+ Volume conforms to {0}
+
+
+ Volume was last written by: {0}
+
+
+ Volume requires UDF version {0}.{1:X2} to be read
+
+
+ Volume requires UDF version {0}.{1:X2} to be written to
+
+
+ Volume cannot be written by any UDF version higher than {0}.{1:X2}
+
+
+ UNICOS Filesystem Plugin
+
+
+ magic = 0x{0:X16} (expected 0x{1:X16})
+
+
+ UNICOS filesystem
+
+
+ Volume is secure
+
+
+ 4096 bytes per block
+
+
+ {0} data blocks in volume
+
+
+ Root resides on inode {0}
+
+
+ {0} inodes in volume
+
+
+ Volume last updated on {0}
+
+
+ Volume is dirty, error code = 0x{0:X16}
+
+
+ UNIX Boot filesystem
+
+
+ Volume goes from byte {0} to byte {1}, for {2} bytes
+
+
+ Filesystem name: {0}
+
+
+ UNIX Boot Filesystem
+
+
+ VMware filesystem
+
+
+ VMware file system
+
+
+ Volume size {0} bytes
+
+
+ Veritas filesystem
+
+
+ Veritas file system
+
+
+ Volume has {0} inodes per block
+
+
+ Volume has {0} free inodes
+
+
+ Volume has {0} free blocks
+
+
+ XFS Filesystem Plugin
+
+
+ magic at 0x{0:X3} = 0x{1:X8} (expected 0x{2:X8})
+
+
+ magic at {0} = 0x{1:X8} (expected 0x{2:X8})
+
+
+ XFS filesystem
+
+
+ {0} data blocks in volume, {1} free
+
+
+ {0} inodes in volume, {1} free
+
+
+ fsck in progress
+
+
+ Xia filesystem
+
+
+ {0} bytes per zone
+
+
+ {0} zones in volume ({1} bytes)
+
+
+ {0} inodes
+
+
+ {0} data zones ({1} bytes)
+
+
+ {0} imap zones ({1} bytes)
+
+
+ {0} zmap zones ({1} bytes)
+
+
+ Maximum filesize is {0} bytes ({1} MiB)
+
+
+ {0} zones reserved for kernel images ({1} bytes)
+
+
+ First kernel zone: {0}
+
+
+ ZFS Filesystem Plugin
+
+
+ ZFS filesystem
+
+
+ {0} is not set
+
+
+ {0} = {1} elements nvlist[], unable to print
+
+
+ {0}[{1}] = Unknown data type {2}
+
+
+ {0} = Unknown data type {1}
+
+
\ No newline at end of file
diff --git a/Aaru.Filesystems/Locus.cs b/Aaru.Filesystems/Locus.cs
index e1ccae5a0..7bcff45ce 100644
--- a/Aaru.Filesystems/Locus.cs
+++ b/Aaru.Filesystems/Locus.cs
@@ -82,16 +82,18 @@ public sealed class Locus : IFilesystem
const uint LOCUS_MAGIC_OLD = 0xFFEEDDCC;
const uint LOCUS_CIGAM_OLD = 0xCCDDEEFF;
+ const string FS_TYPE = "locus";
+
///
public FileSystemType XmlFsType { get; private set; }
///
public Encoding Encoding { get; private set; }
///
- public string Name => "Locus Filesystem Plugin";
+ public string Name => Localization.Locus_Name;
///
public Guid Id => new("1A70B30A-437D-479A-88E1-D0C9C1797FF4");
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
///
public bool Identify(IMediaImage imagePlugin, Partition partition)
@@ -119,7 +121,7 @@ public sealed class Locus : IFilesystem
Superblock locusSb = Marshal.ByteArrayToStructureLittleEndian(sector);
- AaruConsole.DebugWriteLine("Locus plugin", "magic at {1} = 0x{0:X8}", locusSb.s_magic, location);
+ AaruConsole.DebugWriteLine("Locus plugin", Localization.magic_at_1_equals_0, locusSb.s_magic, location);
if(locusSb.s_magic is LOCUS_MAGIC or LOCUS_CIGAM or LOCUS_MAGIC_OLD or LOCUS_CIGAM_OLD)
return true;
@@ -177,7 +179,8 @@ public sealed class Locus : IFilesystem
var sb = new StringBuilder();
- sb.AppendLine(locusSb.s_magic == LOCUS_MAGIC_OLD ? "Locus filesystem (old)" : "Locus filesystem");
+ sb.AppendLine(locusSb.s_magic == LOCUS_MAGIC_OLD ? Localization.Locus_filesystem_old
+ : Localization.Locus_filesystem);
int blockSize = locusSb.s_version == Version.SB_SB4096 ? 4096 : 1024;
@@ -209,65 +212,66 @@ public sealed class Locus : IFilesystem
AaruConsole.DebugWriteLine("Locus plugin", "LocusSb.s_fmod = {0}", locusSb.s_fmod);
AaruConsole.DebugWriteLine("Locus plugin", "LocusSb.s_version = {0}", locusSb.s_version);
- sb.AppendFormat("Superblock last modified on {0}", DateHandlers.UnixToDateTime(locusSb.s_time)).AppendLine();
-
- sb.AppendFormat("Volume has {0} blocks of {1} bytes each (total {2} bytes)", locusSb.s_fsize, blockSize,
- locusSb.s_fsize * blockSize).AppendLine();
-
- sb.AppendFormat("{0} blocks free ({1} bytes)", locusSb.s_tfree, locusSb.s_tfree * blockSize).AppendLine();
- sb.AppendFormat("I-node list uses {0} blocks", locusSb.s_isize).AppendLine();
- sb.AppendFormat("{0} free inodes", locusSb.s_tinode).AppendLine();
- sb.AppendFormat("Next free inode search will start at inode {0}", locusSb.s_lasti).AppendLine();
-
- sb.AppendFormat("There are an estimate of {0} free inodes before next search start", locusSb.s_nbehind).
+ sb.AppendFormat(Localization.Superblock_last_modified_on_0, DateHandlers.UnixToDateTime(locusSb.s_time)).
AppendLine();
+ sb.AppendFormat(Localization.Volume_has_0_blocks_of_1_bytes_each_total_2_bytes, locusSb.s_fsize, blockSize,
+ locusSb.s_fsize * blockSize).AppendLine();
+
+ sb.AppendFormat(Localization._0_blocks_free_1_bytes, locusSb.s_tfree, locusSb.s_tfree * blockSize).AppendLine();
+ sb.AppendFormat(Localization.Inode_list_uses_0_blocks, locusSb.s_isize).AppendLine();
+ sb.AppendFormat(Localization._0_free_inodes, locusSb.s_tinode).AppendLine();
+ sb.AppendFormat(Localization.Next_free_inode_search_will_start_at_inode_0, locusSb.s_lasti).AppendLine();
+
+ sb.AppendFormat(Localization.There_are_an_estimate_of_0_free_inodes_before_next_search_start,
+ locusSb.s_nbehind).AppendLine();
+
if(locusSb.s_flags.HasFlag(Flags.SB_RDONLY))
- sb.AppendLine("Read-only volume");
+ sb.AppendLine(Localization.Read_only_volume);
if(locusSb.s_flags.HasFlag(Flags.SB_CLEAN))
- sb.AppendLine("Clean volume");
+ sb.AppendLine(Localization.Clean_volume);
if(locusSb.s_flags.HasFlag(Flags.SB_DIRTY))
- sb.AppendLine("Dirty volume");
+ sb.AppendLine(Localization.Dirty_volume);
if(locusSb.s_flags.HasFlag(Flags.SB_RMV))
- sb.AppendLine("Removable volume");
+ sb.AppendLine(Localization.Removable_volume);
if(locusSb.s_flags.HasFlag(Flags.SB_PRIMPACK))
- sb.AppendLine("This is the primary pack");
+ sb.AppendLine(Localization.This_is_the_primary_pack);
if(locusSb.s_flags.HasFlag(Flags.SB_REPLTYPE))
- sb.AppendLine("Replicated volume");
+ sb.AppendLine(Localization.Replicated_volume);
if(locusSb.s_flags.HasFlag(Flags.SB_USER))
- sb.AppendLine("User replicated volume");
+ sb.AppendLine(Localization.User_replicated_volume);
if(locusSb.s_flags.HasFlag(Flags.SB_BACKBONE))
- sb.AppendLine("Backbone volume");
+ sb.AppendLine(Localization.Backbone_volume);
if(locusSb.s_flags.HasFlag(Flags.SB_NFS))
- sb.AppendLine("NFS volume");
+ sb.AppendLine(Localization.NFS_volume);
if(locusSb.s_flags.HasFlag(Flags.SB_BYHAND))
- sb.AppendLine("Volume inhibits automatic fsck");
+ sb.AppendLine(Localization.Volume_inhibits_automatic_fsck);
if(locusSb.s_flags.HasFlag(Flags.SB_NOSUID))
- sb.AppendLine("Set-uid/set-gid is disabled");
+ sb.AppendLine(Localization.Set_uid_set_gid_is_disabled);
if(locusSb.s_flags.HasFlag(Flags.SB_SYNCW))
- sb.AppendLine("Volume uses synchronous writes");
+ sb.AppendLine(Localization.Volume_uses_synchronous_writes);
- sb.AppendFormat("Volume label: {0}", s_fsmnt).AppendLine();
- sb.AppendFormat("Physical volume name: {0}", s_fpack).AppendLine();
- sb.AppendFormat("Global File System number: {0}", locusSb.s_gfs).AppendLine();
- sb.AppendFormat("Global File System pack number {0}", locusSb.s_gfspack).AppendLine();
+ sb.AppendFormat(Localization.Volume_label_0, s_fsmnt).AppendLine();
+ sb.AppendFormat(Localization.Physical_volume_name_0, s_fpack).AppendLine();
+ sb.AppendFormat(Localization.Global_File_System_number_0, locusSb.s_gfs).AppendLine();
+ sb.AppendFormat(Localization.Global_File_System_pack_number_0, locusSb.s_gfspack).AppendLine();
information = sb.ToString();
XmlFsType = new FileSystemType
{
- Type = "Locus filesystem",
+ Type = FS_TYPE,
ClusterSize = (uint)blockSize,
Clusters = (ulong)locusSb.s_fsize,
diff --git a/Aaru.Filesystems/MicroDOS.cs b/Aaru.Filesystems/MicroDOS.cs
index 2b607c0af..949898ba4 100644
--- a/Aaru.Filesystems/MicroDOS.cs
+++ b/Aaru.Filesystems/MicroDOS.cs
@@ -54,16 +54,18 @@ public sealed class MicroDOS : IFilesystem
const ushort MAGIC = 0xA72E;
const ushort MAGIC2 = 0x530C;
+ const string FS_TYPE = "microdos";
+
///
public FileSystemType XmlFsType { get; private set; }
///
public Encoding Encoding { get; private set; }
///
- public string Name => "MicroDOS file system";
+ public string Name => Localization.MicroDOS_Name;
///
public Guid Id => new("9F9A364A-1A27-48A3-B730-7A7122000324");
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
///
public bool Identify(IMediaImage imagePlugin, Partition partition)
@@ -99,18 +101,18 @@ public sealed class MicroDOS : IFilesystem
Block0 block0 = Marshal.ByteArrayToStructureLittleEndian(bk0);
- sb.AppendLine("MicroDOS filesystem");
- sb.AppendFormat("Volume has {0} blocks ({1} bytes)", block0.blocks, block0.blocks * 512).AppendLine();
+ sb.AppendLine(Localization.MicroDOS_filesystem);
+ sb.AppendFormat(Localization.Volume_has_0_blocks_1_bytes, block0.blocks, block0.blocks * 512).AppendLine();
- sb.AppendFormat("Volume has {0} blocks used ({1} bytes)", block0.usedBlocks, block0.usedBlocks * 512).
+ sb.AppendFormat(Localization.Volume_has_0_blocks_used_1_bytes, block0.usedBlocks, block0.usedBlocks * 512).
AppendLine();
- sb.AppendFormat("Volume contains {0} files", block0.files).AppendLine();
- sb.AppendFormat("First used block is {0}", block0.firstUsedBlock).AppendLine();
+ sb.AppendFormat(Localization.Volume_contains_0_files, block0.files).AppendLine();
+ sb.AppendFormat(Localization.First_used_block_is_0, block0.firstUsedBlock).AppendLine();
XmlFsType = new FileSystemType
{
- Type = "MicroDOS",
+ Type = FS_TYPE,
ClusterSize = 512,
Clusters = block0.blocks,
Files = block0.files,
diff --git a/Aaru.Filesystems/MinixFS.cs b/Aaru.Filesystems/MinixFS.cs
index dd12c663d..96c8820b2 100644
--- a/Aaru.Filesystems/MinixFS.cs
+++ b/Aaru.Filesystems/MinixFS.cs
@@ -68,17 +68,20 @@ public sealed class MinixFS : IFilesystem
const ushort MINIX2_CIGAM2 = 0x7824;
/// Minix v3, 60 char filenames
const ushort MINIX3_CIGAM = 0x5A4D;
+ const string FS_TYPE_V1 = "minix";
+ const string FS_TYPE_V2 = "minix2";
+ const string FS_TYPE_V3 = "minix3";
///
public FileSystemType XmlFsType { get; private set; }
///
public Encoding Encoding { get; private set; }
///
- public string Name => "Minix Filesystem";
+ public string Name => Localization.MinixFS_Name;
///
public Guid Id => new("FE248C3B-B727-4AE5-A39F-79EA9A07D4B3");
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
///
public bool Identify(IMediaImage imagePlugin, Partition partition)
@@ -167,19 +170,19 @@ public sealed class MinixFS : IFilesystem
{
case MINIX3_MAGIC:
case MINIX3_CIGAM:
- minixVersion = "Minix v3 filesystem";
- XmlFsType.Type = "Minix v3";
+ minixVersion = Localization.Minix_v3_filesystem;
+ XmlFsType.Type = FS_TYPE_V3;
break;
case MINIX2_MAGIC:
case MINIX2_CIGAM:
- minixVersion = "Minix 3 v2 filesystem";
- XmlFsType.Type = "Minix 3 v2";
+ minixVersion = Localization.Minix_3_v2_filesystem;
+ XmlFsType.Type = FS_TYPE_V3;
break;
default:
- minixVersion = "Minix 3 v1 filesystem";
- XmlFsType.Type = "Minix 3 v1";
+ minixVersion = Localization.Minix_3_v1_filesystem;
+ XmlFsType.Type = FS_TYPE_V3;
break;
}
@@ -194,58 +197,58 @@ public sealed class MinixFS : IFilesystem
{
case MINIX_MAGIC:
filenamesize = 14;
- minixVersion = "Minix v1 filesystem";
+ minixVersion = Localization.Minix_v1_filesystem;
littleEndian = true;
- XmlFsType.Type = "Minix v1";
+ XmlFsType.Type = FS_TYPE_V1;
break;
case MINIX_MAGIC2:
filenamesize = 30;
- minixVersion = "Minix v1 filesystem";
+ minixVersion = Localization.Minix_v1_filesystem;
littleEndian = true;
- XmlFsType.Type = "Minix v1";
+ XmlFsType.Type = FS_TYPE_V1;
break;
case MINIX2_MAGIC:
filenamesize = 14;
- minixVersion = "Minix v2 filesystem";
+ minixVersion = Localization.Minix_v2_filesystem;
littleEndian = true;
- XmlFsType.Type = "Minix v2";
+ XmlFsType.Type = FS_TYPE_V2;
break;
case MINIX2_MAGIC2:
filenamesize = 30;
- minixVersion = "Minix v2 filesystem";
+ minixVersion = Localization.Minix_v2_filesystem;
littleEndian = true;
- XmlFsType.Type = "Minix v2";
+ XmlFsType.Type = FS_TYPE_V2;
break;
case MINIX_CIGAM:
filenamesize = 14;
- minixVersion = "Minix v1 filesystem";
+ minixVersion = Localization.Minix_v1_filesystem;
littleEndian = false;
- XmlFsType.Type = "Minix v1";
+ XmlFsType.Type = FS_TYPE_V1;
break;
case MINIX_CIGAM2:
filenamesize = 30;
- minixVersion = "Minix v1 filesystem";
+ minixVersion = Localization.Minix_v1_filesystem;
littleEndian = false;
- XmlFsType.Type = "Minix v1";
+ XmlFsType.Type = FS_TYPE_V1;
break;
case MINIX2_CIGAM:
filenamesize = 14;
- minixVersion = "Minix v2 filesystem";
+ minixVersion = Localization.Minix_v2_filesystem;
littleEndian = false;
- XmlFsType.Type = "Minix v2";
+ XmlFsType.Type = FS_TYPE_V2;
break;
case MINIX2_CIGAM2:
filenamesize = 30;
- minixVersion = "Minix v2 filesystem";
+ minixVersion = Localization.Minix_v2_filesystem;
littleEndian = false;
- XmlFsType.Type = "Minix v2";
+ XmlFsType.Type = FS_TYPE_V2;
break;
default: return;
@@ -262,27 +265,29 @@ public sealed class MinixFS : IFilesystem
mnxSb.s_blocksize = 1024;
sb.AppendLine(minixVersion);
- sb.AppendFormat("{0} chars in filename", filenamesize).AppendLine();
+ sb.AppendFormat(Localization._0_chars_in_filename, filenamesize).AppendLine();
if(mnxSb.s_zones > 0) // On V2
- sb.AppendFormat("{0} zones on volume ({1} bytes)", mnxSb.s_zones, mnxSb.s_zones * 1024).AppendLine();
+ sb.AppendFormat(Localization._0_zones_on_volume_1_bytes, mnxSb.s_zones, mnxSb.s_zones * 1024).
+ AppendLine();
else
- sb.AppendFormat("{0} zones on volume ({1} bytes)", mnxSb.s_nzones, mnxSb.s_nzones * 1024).AppendLine();
+ sb.AppendFormat(Localization._0_zones_on_volume_1_bytes, mnxSb.s_nzones, mnxSb.s_nzones * 1024).
+ AppendLine();
- sb.AppendFormat("{0} bytes/block", mnxSb.s_blocksize).AppendLine();
- sb.AppendFormat("{0} inodes on volume", mnxSb.s_ninodes).AppendLine();
+ sb.AppendFormat(Localization._0_bytes_block, mnxSb.s_blocksize).AppendLine();
+ sb.AppendFormat(Localization._0_inodes_on_volume, mnxSb.s_ninodes).AppendLine();
- sb.AppendFormat("{0} blocks on inode map ({1} bytes)", mnxSb.s_imap_blocks,
+ sb.AppendFormat(Localization._0_blocks_on_inode_map_1_bytes, mnxSb.s_imap_blocks,
mnxSb.s_imap_blocks * mnxSb.s_blocksize).AppendLine();
- sb.AppendFormat("{0} blocks on zone map ({1} bytes)", mnxSb.s_zmap_blocks,
+ sb.AppendFormat(Localization._0_blocks_on_zone_map_1_bytes, mnxSb.s_zmap_blocks,
mnxSb.s_zmap_blocks * mnxSb.s_blocksize).AppendLine();
- sb.AppendFormat("First data zone: {0}", mnxSb.s_firstdatazone).AppendLine();
+ sb.AppendFormat(Localization.First_data_zone_0, mnxSb.s_firstdatazone).AppendLine();
//sb.AppendFormat("log2 of blocks/zone: {0}", mnx_sb.s_log_zone_size).AppendLine(); // Apparently 0
- sb.AppendFormat("{0} bytes maximum per file", mnxSb.s_max_size).AppendLine();
- sb.AppendFormat("On-disk filesystem version: {0}", mnxSb.s_disk_version).AppendLine();
+ sb.AppendFormat(Localization._0_bytes_maximum_per_file, mnxSb.s_max_size).AppendLine();
+ sb.AppendFormat(Localization.On_disk_filesystem_version_0, mnxSb.s_disk_version).AppendLine();
XmlFsType.ClusterSize = mnxSb.s_blocksize;
XmlFsType.Clusters = mnxSb.s_zones > 0 ? mnxSb.s_zones : mnxSb.s_nzones;
@@ -293,26 +298,28 @@ public sealed class MinixFS : IFilesystem
: Marshal.ByteArrayToStructureBigEndian(minixSbSector);
sb.AppendLine(minixVersion);
- sb.AppendFormat("{0} chars in filename", filenamesize).AppendLine();
+ sb.AppendFormat(Localization._0_chars_in_filename, filenamesize).AppendLine();
if(mnxSb.s_zones > 0) // On V2
- sb.AppendFormat("{0} zones on volume ({1} bytes)", mnxSb.s_zones, mnxSb.s_zones * 1024).AppendLine();
+ sb.AppendFormat(Localization._0_zones_on_volume_1_bytes, mnxSb.s_zones, mnxSb.s_zones * 1024).
+ AppendLine();
else
- sb.AppendFormat("{0} zones on volume ({1} bytes)", mnxSb.s_nzones, mnxSb.s_nzones * 1024).AppendLine();
+ sb.AppendFormat(Localization._0_zones_on_volume_1_bytes, mnxSb.s_nzones, mnxSb.s_nzones * 1024).
+ AppendLine();
- sb.AppendFormat("{0} inodes on volume", mnxSb.s_ninodes).AppendLine();
+ sb.AppendFormat(Localization._0_inodes_on_volume, mnxSb.s_ninodes).AppendLine();
- sb.AppendFormat("{0} blocks on inode map ({1} bytes)", mnxSb.s_imap_blocks, mnxSb.s_imap_blocks * 1024).
- AppendLine();
+ sb.AppendFormat(Localization._0_blocks_on_inode_map_1_bytes, mnxSb.s_imap_blocks,
+ mnxSb.s_imap_blocks * 1024).AppendLine();
- sb.AppendFormat("{0} blocks on zone map ({1} bytes)", mnxSb.s_zmap_blocks, mnxSb.s_zmap_blocks * 1024).
- AppendLine();
+ sb.AppendFormat(Localization._0_blocks_on_zone_map_1_bytes, mnxSb.s_zmap_blocks,
+ mnxSb.s_zmap_blocks * 1024).AppendLine();
- sb.AppendFormat("First data zone: {0}", mnxSb.s_firstdatazone).AppendLine();
+ sb.AppendFormat(Localization.First_data_zone_0, mnxSb.s_firstdatazone).AppendLine();
//sb.AppendFormat("log2 of blocks/zone: {0}", mnx_sb.s_log_zone_size).AppendLine(); // Apparently 0
- sb.AppendFormat("{0} bytes maximum per file", mnxSb.s_max_size).AppendLine();
- sb.AppendFormat("Filesystem state: {0:X4}", mnxSb.s_state).AppendLine();
+ sb.AppendFormat(Localization._0_bytes_maximum_per_file, mnxSb.s_max_size).AppendLine();
+ sb.AppendFormat(Localization.Filesystem_state_0, mnxSb.s_state).AppendLine();
XmlFsType.ClusterSize = 1024;
XmlFsType.Clusters = mnxSb.s_zones > 0 ? mnxSb.s_zones : mnxSb.s_nzones;
}
diff --git a/Aaru.Filesystems/NILFS2.cs b/Aaru.Filesystems/NILFS2.cs
index 0b51ecfb7..a3c46ad6d 100644
--- a/Aaru.Filesystems/NILFS2.cs
+++ b/Aaru.Filesystems/NILFS2.cs
@@ -51,16 +51,18 @@ public sealed class NILFS2 : IFilesystem
const ushort NILFS2_MAGIC = 0x3434;
const uint NILFS2_SUPER_OFFSET = 1024;
+ const string FS_TYPE = "nilfs2";
+
///
public FileSystemType XmlFsType { get; private set; }
///
public Encoding Encoding { get; private set; }
///
- public string Name => "NILFS2 Plugin";
+ public string Name => Localization.NILFS2_Name;
///
public Guid Id => new("35224226-C5CC-48B5-8FFD-3781E91E86B6");
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
///
public bool Identify(IMediaImage imagePlugin, Partition partition)
@@ -128,32 +130,38 @@ public sealed class NILFS2 : IFilesystem
var sb = new StringBuilder();
- sb.AppendLine("NILFS2 filesystem");
- sb.AppendFormat("Version {0}.{1}", nilfsSb.rev_level, nilfsSb.minor_rev_level).AppendLine();
- sb.AppendFormat("{0} bytes per block", 1 << (int)(nilfsSb.log_block_size + 10)).AppendLine();
- sb.AppendFormat("{0} bytes in volume", nilfsSb.dev_size).AppendLine();
- sb.AppendFormat("{0} blocks per segment", nilfsSb.blocks_per_segment).AppendLine();
- sb.AppendFormat("{0} segments", nilfsSb.nsegments).AppendLine();
+ sb.AppendLine(Localization.NILFS2_filesystem);
+ sb.AppendFormat(Localization.Version_0_1, nilfsSb.rev_level, nilfsSb.minor_rev_level).AppendLine();
+ sb.AppendFormat(Localization._0_bytes_per_block, 1 << (int)(nilfsSb.log_block_size + 10)).AppendLine();
+ sb.AppendFormat(Localization._0_bytes_in_volume, nilfsSb.dev_size).AppendLine();
+ sb.AppendFormat(Localization._0_blocks_per_segment, nilfsSb.blocks_per_segment).AppendLine();
+ sb.AppendFormat(Localization._0_segments, nilfsSb.nsegments).AppendLine();
if(nilfsSb.creator_os == 0)
- sb.AppendLine("Filesystem created on Linux");
+ sb.AppendLine(Localization.Filesystem_created_on_Linux);
else
- sb.AppendFormat("Creator OS code: {0}", nilfsSb.creator_os).AppendLine();
+ sb.AppendFormat(Localization.Creator_OS_code_0, nilfsSb.creator_os).AppendLine();
- sb.AppendFormat("{0} bytes per inode", nilfsSb.inode_size).AppendLine();
- sb.AppendFormat("Volume UUID: {0}", nilfsSb.uuid).AppendLine();
- sb.AppendFormat("Volume name: {0}", StringHandlers.CToString(nilfsSb.volume_name, Encoding)).AppendLine();
- sb.AppendFormat("Volume created on {0}", DateHandlers.UnixUnsignedToDateTime(nilfsSb.ctime)).AppendLine();
+ sb.AppendFormat(Localization._0_bytes_per_inode, nilfsSb.inode_size).AppendLine();
+ sb.AppendFormat(Localization.Volume_UUID_0, nilfsSb.uuid).AppendLine();
- sb.AppendFormat("Volume last mounted on {0}", DateHandlers.UnixUnsignedToDateTime(nilfsSb.mtime)).AppendLine();
+ sb.AppendFormat(Localization.Volume_name_0, StringHandlers.CToString(nilfsSb.volume_name, Encoding)).
+ AppendLine();
- sb.AppendFormat("Volume last written on {0}", DateHandlers.UnixUnsignedToDateTime(nilfsSb.wtime)).AppendLine();
+ sb.AppendFormat(Localization.Volume_created_on_0, DateHandlers.UnixUnsignedToDateTime(nilfsSb.ctime)).
+ AppendLine();
+
+ sb.AppendFormat(Localization.Volume_last_mounted_on_0, DateHandlers.UnixUnsignedToDateTime(nilfsSb.mtime)).
+ AppendLine();
+
+ sb.AppendFormat(Localization.Volume_last_written_on_0, DateHandlers.UnixUnsignedToDateTime(nilfsSb.wtime)).
+ AppendLine();
information = sb.ToString();
XmlFsType = new FileSystemType
{
- Type = "NILFS2 filesystem",
+ Type = FS_TYPE,
ClusterSize = (uint)(1 << (int)(nilfsSb.log_block_size + 10)),
VolumeName = StringHandlers.CToString(nilfsSb.volume_name, Encoding),
VolumeSerial = nilfsSb.uuid.ToString(),
diff --git a/Aaru.Filesystems/NTFS.cs b/Aaru.Filesystems/NTFS.cs
index cf2cdaba1..5bb910778 100644
--- a/Aaru.Filesystems/NTFS.cs
+++ b/Aaru.Filesystems/NTFS.cs
@@ -48,16 +48,17 @@ namespace Aaru.Filesystems;
/// Implements detection of the New Technology File System (NTFS)
public sealed class NTFS : IFilesystem
{
+ const string FS_TYPE = "ntfs";
///
public FileSystemType XmlFsType { get; private set; }
///
public Encoding Encoding { get; private set; }
///
- public string Name => "New Technology File System (NTFS)";
+ public string Name => Localization.NTFS_Name;
///
public Guid Id => new("33513B2C-1e6d-4d21-a660-0bbc789c3871");
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
///
public bool Identify(IMediaImage imagePlugin, Partition partition)
@@ -106,43 +107,44 @@ public sealed class NTFS : IFilesystem
BiosParameterBlock ntfsBb = Marshal.ByteArrayToStructureLittleEndian(ntfsBpb);
- sb.AppendFormat("{0} bytes per sector", ntfsBb.bps).AppendLine();
- sb.AppendFormat("{0} sectors per cluster ({1} bytes)", ntfsBb.spc, ntfsBb.spc * ntfsBb.bps).AppendLine();
+ sb.AppendFormat(Localization._0_bytes_per_sector, ntfsBb.bps).AppendLine();
+ sb.AppendFormat(Localization._0_sectors_per_cluster_1_bytes, ntfsBb.spc, ntfsBb.spc * ntfsBb.bps).AppendLine();
// sb.AppendFormat("{0} reserved sectors", ntfs_bb.rsectors).AppendLine();
// sb.AppendFormat("{0} FATs", ntfs_bb.fats_no).AppendLine();
// sb.AppendFormat("{0} entries in the root folder", ntfs_bb.root_ent).AppendLine();
// sb.AppendFormat("{0} sectors on volume (small)", ntfs_bb.sml_sectors).AppendLine();
- sb.AppendFormat("Media descriptor: 0x{0:X2}", ntfsBb.media).AppendLine();
+ sb.AppendFormat(Localization.Media_descriptor_0, ntfsBb.media).AppendLine();
// sb.AppendFormat("{0} sectors per FAT", ntfs_bb.spfat).AppendLine();
- sb.AppendFormat("{0} sectors per track", ntfsBb.sptrk).AppendLine();
- sb.AppendFormat("{0} heads", ntfsBb.heads).AppendLine();
- sb.AppendFormat("{0} hidden sectors before filesystem", ntfsBb.hsectors).AppendLine();
+ sb.AppendFormat(Localization._0_sectors_per_track, ntfsBb.sptrk).AppendLine();
+ sb.AppendFormat(Localization._0_heads, ntfsBb.heads).AppendLine();
+ sb.AppendFormat(Localization._0_hidden_sectors_before_filesystem, ntfsBb.hsectors).AppendLine();
// sb.AppendFormat("{0} sectors on volume (big)", ntfs_bb.big_sectors).AppendLine();
- sb.AppendFormat("BIOS drive number: 0x{0:X2}", ntfsBb.drive_no).AppendLine();
+ sb.AppendFormat(Localization.BIOS_drive_number_0, ntfsBb.drive_no).AppendLine();
// sb.AppendFormat("NT flags: 0x{0:X2}", ntfs_bb.nt_flags).AppendLine();
// sb.AppendFormat("Signature 1: 0x{0:X2}", ntfs_bb.signature1).AppendLine();
- sb.AppendFormat("{0} sectors on volume ({1} bytes)", ntfsBb.sectors, ntfsBb.sectors * ntfsBb.bps).AppendLine();
+ sb.AppendFormat(Localization._0_sectors_on_volume_1_bytes, ntfsBb.sectors, ntfsBb.sectors * ntfsBb.bps).
+ AppendLine();
- sb.AppendFormat("Cluster where $MFT starts: {0}", ntfsBb.mft_lsn).AppendLine();
- sb.AppendFormat("Cluster where $MFTMirr starts: {0}", ntfsBb.mftmirror_lsn).AppendLine();
+ sb.AppendFormat(Localization.Cluster_where_MFT_starts_0, ntfsBb.mft_lsn).AppendLine();
+ sb.AppendFormat(Localization.Cluster_where_MFTMirr_starts_0, ntfsBb.mftmirror_lsn).AppendLine();
if(ntfsBb.mft_rc_clusters > 0)
- sb.AppendFormat("{0} clusters per MFT record ({1} bytes)", ntfsBb.mft_rc_clusters,
+ sb.AppendFormat(Localization._0_clusters_per_MFT_record_1_bytes, ntfsBb.mft_rc_clusters,
ntfsBb.mft_rc_clusters * ntfsBb.bps * ntfsBb.spc).AppendLine();
else
- sb.AppendFormat("{0} bytes per MFT record", 1 << -ntfsBb.mft_rc_clusters).AppendLine();
+ sb.AppendFormat(Localization._0_bytes_per_MFT_record, 1 << -ntfsBb.mft_rc_clusters).AppendLine();
if(ntfsBb.index_blk_cts > 0)
- sb.AppendFormat("{0} clusters per Index block ({1} bytes)", ntfsBb.index_blk_cts,
+ sb.AppendFormat(Localization._0_clusters_per_Index_block_1_bytes, ntfsBb.index_blk_cts,
ntfsBb.index_blk_cts * ntfsBb.bps * ntfsBb.spc).AppendLine();
else
- sb.AppendFormat("{0} bytes per Index block", 1 << -ntfsBb.index_blk_cts).AppendLine();
+ sb.AppendFormat(Localization._0_bytes_per_Index_block, 1 << -ntfsBb.index_blk_cts).AppendLine();
- sb.AppendFormat("Volume serial number: {0:X16}", ntfsBb.serial_no).AppendLine();
+ sb.AppendFormat(Localization.Volume_serial_number_0_X16, ntfsBb.serial_no).AppendLine();
// sb.AppendFormat("Signature 2: 0x{0:X4}", ntfs_bb.signature2).AppendLine();
@@ -155,14 +157,14 @@ public sealed class NTFS : IFilesystem
{
XmlFsType.Bootable = true;
string bootChk = Sha1Context.Data(ntfsBb.boot_code, out _);
- sb.AppendLine("Volume is bootable");
- sb.AppendFormat("Boot code's SHA1: {0}", bootChk).AppendLine();
+ sb.AppendLine(Localization.Volume_is_bootable);
+ sb.AppendFormat(Localization.Boot_code_SHA1_0, bootChk).AppendLine();
}
XmlFsType.ClusterSize = (uint)(ntfsBb.spc * ntfsBb.bps);
XmlFsType.Clusters = (ulong)(ntfsBb.sectors / ntfsBb.spc);
XmlFsType.VolumeSerial = $"{ntfsBb.serial_no:X16}";
- XmlFsType.Type = "NTFS";
+ XmlFsType.Type = FS_TYPE;
information = sb.ToString();
}
diff --git a/Aaru.Filesystems/Nintendo.cs b/Aaru.Filesystems/Nintendo.cs
index fed98a0ab..26cbfb1cc 100644
--- a/Aaru.Filesystems/Nintendo.cs
+++ b/Aaru.Filesystems/Nintendo.cs
@@ -46,16 +46,18 @@ namespace Aaru.Filesystems;
/// Implements detection of the filesystem used by Nintendo Gamecube and Wii discs
public sealed class NintendoPlugin : IFilesystem
{
+ const string FS_TYPE_NGC = "ngcfs";
+ const string FS_TYPE_WII = "wiifs";
///
public FileSystemType XmlFsType { get; private set; }
///
public Encoding Encoding { get; private set; }
///
- public string Name => "Nintendo optical filesystems";
+ public string Name => Localization.NintendoPlugin_Name;
///
public Guid Id => new("4675fcb4-4418-4288-9e4a-33d6a4ac1126");
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
///
public bool Identify(IMediaImage imagePlugin, Partition partition)
@@ -260,142 +262,140 @@ public sealed class NintendoPlugin : IFilesystem
AaruConsole.DebugWriteLine("Nintendo plugin", "australiaAge = {0}", fields.AustraliaAge);
AaruConsole.DebugWriteLine("Nintendo plugin", "koreaAge = {0}", fields.KoreaAge);
- sbInformation.AppendLine("Nintendo optical filesystem");
- sbInformation.AppendLine(wii ? "Nintendo Wii Optical Disc" : "Nintendo GameCube Optical Disc");
- sbInformation.AppendFormat("Disc ID is {0}", fields.DiscId).AppendLine();
- sbInformation.AppendFormat("Disc is a {0} disc", DiscTypeToString(fields.DiscType)).AppendLine();
- sbInformation.AppendFormat("Disc region is {0}", RegionCodeToString(fields.RegionCode)).AppendLine();
- sbInformation.AppendFormat("Published by {0}", PublisherCodeToString(fields.PublisherCode)).AppendLine();
+ sbInformation.AppendLine(Localization.Nintendo_optical_filesystem);
+
+ sbInformation.AppendLine(wii ? Localization.Nintendo_Wii_Optical_Disc
+ : Localization.Nintendo_GameCube_Optical_Disc);
+
+ sbInformation.AppendFormat(Localization.Disc_ID_is_0, fields.DiscId).AppendLine();
+ sbInformation.AppendFormat(Localization.Disc_is_a_0_disc, DiscTypeToString(fields.DiscType)).AppendLine();
+ sbInformation.AppendFormat(Localization.Disc_region_is_0, RegionCodeToString(fields.RegionCode)).AppendLine();
+
+ sbInformation.AppendFormat(Localization.Published_by_0, PublisherCodeToString(fields.PublisherCode)).
+ AppendLine();
if(fields.DiscNumber > 0)
- sbInformation.AppendFormat("Disc number {0} of a multi-disc set", fields.DiscNumber + 1).AppendLine();
-
- if(fields.Streaming)
- sbInformation.AppendLine("Disc is prepared for audio streaming");
-
- if(fields.StreamBufferSize > 0)
- sbInformation.AppendFormat("Audio streaming buffer size is {0} bytes", fields.StreamBufferSize).
+ sbInformation.AppendFormat(Localization.Disc_number_0_of_a_multi_disc_set, fields.DiscNumber + 1).
AppendLine();
- sbInformation.AppendFormat("Title: {0}", fields.Title).AppendLine();
+ if(fields.Streaming)
+ sbInformation.AppendLine(Localization.Disc_is_prepared_for_audio_streaming);
+
+ if(fields.StreamBufferSize > 0)
+ sbInformation.AppendFormat(Localization.Audio_streaming_buffer_size_is_0_bytes, fields.StreamBufferSize).
+ AppendLine();
+
+ sbInformation.AppendFormat(Localization.Title_0, fields.Title).AppendLine();
if(wii)
{
for(int i = 0; i < fields.FirstPartitions.Length; i++)
- sbInformation.AppendFormat("First {0} partition starts at sector {1}",
+ sbInformation.AppendFormat(Localization.First_0_partition_starts_at_sector_1,
PartitionTypeToString(fields.FirstPartitions[i].Type),
fields.FirstPartitions[i].Offset / 2048).AppendLine();
for(int i = 0; i < fields.SecondPartitions.Length; i++)
- sbInformation.AppendFormat("Second {0} partition starts at sector {1}",
+ sbInformation.AppendFormat(Localization.Second_0_partition_starts_at_sector_1,
PartitionTypeToString(fields.SecondPartitions[i].Type),
fields.SecondPartitions[i].Offset / 2048).AppendLine();
for(int i = 0; i < fields.ThirdPartitions.Length; i++)
- sbInformation.AppendFormat("Third {0} partition starts at sector {1}",
+ sbInformation.AppendFormat(Localization.Third_0_partition_starts_at_sector_1,
PartitionTypeToString(fields.ThirdPartitions[i].Type),
fields.ThirdPartitions[i].Offset / 2048).AppendLine();
for(int i = 0; i < fields.FourthPartitions.Length; i++)
- sbInformation.AppendFormat("Fourth {0} partition starts at sector {1}",
+ sbInformation.AppendFormat(Localization.Fourth_0_partition_starts_at_sector_1,
PartitionTypeToString(fields.FourthPartitions[i].Type),
fields.FourthPartitions[i].Offset / 2048).AppendLine();
// sbInformation.AppendFormat("Region byte is {0}", fields.region).AppendLine();
if((fields.JapanAge & 0x80) != 0x80)
- sbInformation.AppendFormat("Japan age rating is {0}", fields.JapanAge).AppendLine();
+ sbInformation.AppendFormat(Localization.Japan_age_rating_is_0, fields.JapanAge).AppendLine();
if((fields.UsaAge & 0x80) != 0x80)
- sbInformation.AppendFormat("ESRB age rating is {0}", fields.UsaAge).AppendLine();
+ sbInformation.AppendFormat(Localization.ESRB_age_rating_is_0, fields.UsaAge).AppendLine();
if((fields.GermanAge & 0x80) != 0x80)
- sbInformation.AppendFormat("German age rating is {0}", fields.GermanAge).AppendLine();
+ sbInformation.AppendFormat(Localization.German_age_rating_is_0, fields.GermanAge).AppendLine();
if((fields.PegiAge & 0x80) != 0x80)
- sbInformation.AppendFormat("PEGI age rating is {0}", fields.PegiAge).AppendLine();
+ sbInformation.AppendFormat(Localization.PEGI_age_rating_is_0, fields.PegiAge).AppendLine();
if((fields.FinlandAge & 0x80) != 0x80)
- sbInformation.AppendFormat("Finland age rating is {0}", fields.FinlandAge).AppendLine();
+ sbInformation.AppendFormat(Localization.Finland_age_rating_is_0, fields.FinlandAge).AppendLine();
if((fields.PortugalAge & 0x80) != 0x80)
- sbInformation.AppendFormat("Portugal age rating is {0}", fields.PortugalAge).AppendLine();
+ sbInformation.AppendFormat(Localization.Portugal_age_rating_is_0, fields.PortugalAge).AppendLine();
if((fields.UkAge & 0x80) != 0x80)
- sbInformation.AppendFormat("UK age rating is {0}", fields.UkAge).AppendLine();
+ sbInformation.AppendFormat(Localization.UK_age_rating_is_0, fields.UkAge).AppendLine();
if((fields.AustraliaAge & 0x80) != 0x80)
- sbInformation.AppendFormat("Australia age rating is {0}", fields.AustraliaAge).AppendLine();
+ sbInformation.AppendFormat(Localization.Australia_age_rating_is_0, fields.AustraliaAge).AppendLine();
if((fields.KoreaAge & 0x80) != 0x80)
- sbInformation.AppendFormat("Korea age rating is {0}", fields.KoreaAge).AppendLine();
+ sbInformation.AppendFormat(Localization.Korea_age_rating_is_0, fields.KoreaAge).AppendLine();
}
else
- sbInformation.AppendFormat("FST starts at {0} and has {1} bytes", fields.FstOff, fields.FstSize).
+ sbInformation.AppendFormat(Localization.FST_starts_at_0_and_has_1_bytes, fields.FstOff, fields.FstSize).
AppendLine();
information = sbInformation.ToString();
XmlFsType.Bootable = true;
XmlFsType.Clusters = imagePlugin.Info.Sectors * imagePlugin.Info.SectorSize / 2048;
XmlFsType.ClusterSize = 2048;
- XmlFsType.Type = wii ? "Nintendo Wii filesystem" : "Nintendo Gamecube filesystem";
+ XmlFsType.Type = wii ? FS_TYPE_WII : FS_TYPE_NGC;
XmlFsType.VolumeName = fields.Title;
XmlFsType.VolumeSerial = fields.DiscId;
}
- static string DiscTypeToString(string discType)
+ static string DiscTypeToString(string discType) => discType switch
{
- switch(discType)
- {
- case "C": return "Commodore 64 Virtual Console";
- case "D": return "Demo";
- case "E": return "Neo-Geo Virtual Console";
- case "F": return "NES Virtual Console";
- case "G": return "Gamecube";
- case "H": return "Wii channel";
- case "J": return "Super Nintendo Virtual Console";
- case "L": return "Master System Virtual Console";
- case "M": return "Megadrive Virtual Console";
- case "N": return "Nintendo 64 Virtual Console";
- case "P": return "Promotional or TurboGrafx Virtual Console";
- case "Q": return "TurboGrafx CD Virtual Console";
- case "R":
- case "S": return "Wii";
- case "U": return "Utility";
- case "W": return "WiiWare";
- case "X": return "MSX Virtual Console or WiiWare demo";
- case "0":
- case "1": return "Diagnostic";
- case "4": return "Wii Backup";
- case "_": return "WiiFit";
- }
+ "C" => Localization.Commodore_64_Virtual_Console,
+ "D" => Localization.Demo,
+ "E" => Localization.Neo_Geo_Virtual_Console,
+ "F" => Localization.NES_Virtual_Console,
+ "G" => Localization.Gamecube,
+ "H" => Localization.Wii_channel,
+ "J" => Localization.Super_Nintendo_Virtual_Console,
+ "L" => Localization.Master_System_Virtual_Console,
+ "M" => Localization.Megadrive_Virtual_Console,
+ "N" => Localization.Nintendo_64_Virtual_Console,
+ "P" => Localization.Promotional_or_TurboGrafx_Virtual_Console,
+ "Q" => Localization.TurboGrafx_CD_Virtual_Console,
+ "R" => Localization.Wii,
+ "S" => Localization.Wii,
+ "U" => Localization.Utility,
+ "W" => Localization.WiiWare,
+ "X" => Localization.MSX_Virtual_Console_or_WiiWare_demo,
+ "0" => Localization.Diagnostic,
+ "1" => Localization.Diagnostic,
+ "4" => Localization.Wii_Backup,
+ "_" => Localization.WiiFit,
+ _ => string.Format(Localization.unknown_type_0, discType)
+ };
- return $"unknown type '{discType}'";
- }
-
- static string RegionCodeToString(string regionCode)
+ static string RegionCodeToString(string regionCode) => regionCode switch
{
- switch(regionCode)
- {
- case "A": return "any region";
- case "D": return "Germany";
- case "N":
- case "E": return "USA";
- case "F": return "France";
- case "I": return "Italy";
- case "J": return "Japan";
- case "K":
- case "Q": return "Korea";
- case "L":
- case "M":
- case "P": return "PAL";
- case "R": return "Russia";
- case "S": return "Spain";
- case "T": return "Taiwan";
- case "U": return "Australia";
- }
-
- return $"unknown code '{regionCode}'";
- }
+ "A" => Localization.NintendoPlugin_RegionCodeToString_any_region,
+ "D" => Localization.NintendoPlugin_RegionCodeToString_Germany,
+ "N" => Localization.NintendoPlugin_RegionCodeToString_USA,
+ "E" => Localization.NintendoPlugin_RegionCodeToString_USA,
+ "F" => Localization.NintendoPlugin_RegionCodeToString_France,
+ "I" => Localization.NintendoPlugin_RegionCodeToString_Italy,
+ "J" => Localization.NintendoPlugin_RegionCodeToString_Japan,
+ "K" => Localization.NintendoPlugin_RegionCodeToString_Korea,
+ "Q" => Localization.NintendoPlugin_RegionCodeToString_Korea,
+ "L" => Localization.NintendoPlugin_RegionCodeToString_PAL,
+ "M" => Localization.NintendoPlugin_RegionCodeToString_PAL,
+ "P" => Localization.NintendoPlugin_RegionCodeToString_PAL,
+ "R" => Localization.NintendoPlugin_RegionCodeToString_Russia,
+ "S" => Localization.NintendoPlugin_RegionCodeToString_Spain,
+ "T" => Localization.NintendoPlugin_RegionCodeToString_Taiwan,
+ "U" => Localization.NintendoPlugin_RegionCodeToString_Australia,
+ _ => string.Format(Localization.NintendoPlugin_RegionCodeToString_unknown_region_code_0, regionCode)
+ };
[SuppressMessage("ReSharper", "StringLiteralTypo")]
static string PublisherCodeToString(string publisherCode) => publisherCode switch
@@ -421,15 +421,15 @@ public sealed class NintendoPlugin : IFilesystem
"4Q" => "Disney Interactive",
"GD" => "Square Enix",
"7D" => "Sierra",
- _ => $"Unknown publisher '{publisherCode}'"
+ _ => string.Format(Localization.Unknown_publisher_0, publisherCode)
};
static string PartitionTypeToString(uint type) => type switch
{
- 0 => "data",
- 1 => "update",
- 2 => "channel",
- _ => $"unknown type {type}"
+ 0 => Localization.data,
+ 1 => Localization.update,
+ 2 => Localization.channel,
+ _ => string.Format(Localization.unknown_partition_type_0, type)
};
struct NintendoFields
diff --git a/Aaru.Filesystems/ODS.cs b/Aaru.Filesystems/ODS.cs
index e06e6ff62..8320cbcaa 100644
--- a/Aaru.Filesystems/ODS.cs
+++ b/Aaru.Filesystems/ODS.cs
@@ -56,16 +56,17 @@ namespace Aaru.Filesystems;
/// Implements detection of DEC's On-Disk Structure, aka the ODS filesystem
public sealed class ODS : IFilesystem
{
+ const string FS_TYPE = "files11";
///
public FileSystemType XmlFsType { get; private set; }
///
public Encoding Encoding { get; private set; }
///
- public string Name => "Files-11 On-Disk Structure";
+ public string Name => Localization.ODS_Name;
///
public Guid Id => new("de20633c-8021-4384-aeb0-83b0df14491f");
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
///
public bool Identify(IMediaImage imagePlugin, Partition partition)
@@ -85,7 +86,7 @@ public sealed class ODS : IFilesystem
Array.Copy(hbSector, 0x1F0, magicB, 0, 12);
string magic = Encoding.ASCII.GetString(magicB);
- AaruConsole.DebugWriteLine("Files-11 plugin", "magic: \"{0}\"", magic);
+ AaruConsole.DebugWriteLine("Files-11 plugin", Localization.magic_0, magic);
if(magic is "DECFILE11A " or "DECFILE11B ")
return true;
@@ -105,7 +106,7 @@ public sealed class ODS : IFilesystem
Array.Copy(hbSector, 0x3F0, magicB, 0, 12);
magic = Encoding.ASCII.GetString(magicB);
- AaruConsole.DebugWriteLine("Files-11 plugin", "unaligned magic: \"{0}\"", magic);
+ AaruConsole.DebugWriteLine("Files-11 plugin", Localization.unaligned_magic_0, magic);
return magic is "DECFILE11A " or "DECFILE11B ";
}
@@ -151,89 +152,93 @@ public sealed class ODS : IFilesystem
if((homeblock.struclev & 0xFF00) != 0x0200 ||
(homeblock.struclev & 0xFF) != 1 ||
StringHandlers.CToString(homeblock.format) != "DECFILE11B ")
- sb.AppendLine("The following information may be incorrect for this volume.");
+ sb.AppendLine(Localization.The_following_information_may_be_incorrect_for_this_volume);
if(homeblock.resfiles < 5 ||
homeblock.devtype != 0)
- sb.AppendLine("This volume may be corrupted.");
+ sb.AppendLine(Localization.This_volume_may_be_corrupted);
- sb.AppendFormat("Volume format is {0}", StringHandlers.SpacePaddedToString(homeblock.format, Encoding)).
- AppendLine();
+ sb.AppendFormat(Localization.Volume_format_is_0,
+ StringHandlers.SpacePaddedToString(homeblock.format, Encoding)).AppendLine();
- sb.AppendFormat("Volume is Level {0} revision {1}", (homeblock.struclev & 0xFF00) >> 8,
+ sb.AppendFormat(Localization.Volume_is_Level_0_revision_1, (homeblock.struclev & 0xFF00) >> 8,
homeblock.struclev & 0xFF).AppendLine();
- sb.AppendFormat("Lowest structure in the volume is Level {0}, revision {1}",
+ sb.AppendFormat(Localization.Lowest_structure_in_the_volume_is_Level_0_revision_1,
(homeblock.lowstruclev & 0xFF00) >> 8, homeblock.lowstruclev & 0xFF).AppendLine();
- sb.AppendFormat("Highest structure in the volume is Level {0}, revision {1}",
+ sb.AppendFormat(Localization.Highest_structure_in_the_volume_is_Level_0_revision_1,
(homeblock.highstruclev & 0xFF00) >> 8, homeblock.highstruclev & 0xFF).AppendLine();
- sb.AppendFormat("{0} sectors per cluster ({1} bytes)", homeblock.cluster, homeblock.cluster * 512).AppendLine();
-
- sb.AppendFormat("This home block is on sector {0} (VBN {1})", homeblock.homelbn, homeblock.homevbn).
+ sb.AppendFormat(Localization._0_sectors_per_cluster_1_bytes, homeblock.cluster, homeblock.cluster * 512).
AppendLine();
- sb.AppendFormat("Secondary home block is on sector {0} (VBN {1})", homeblock.alhomelbn, homeblock.alhomevbn).
+ sb.AppendFormat(Localization.This_home_block_is_on_sector_0_VBN_1, homeblock.homelbn, homeblock.homevbn).
AppendLine();
- sb.AppendFormat("Volume bitmap starts in sector {0} (VBN {1})", homeblock.ibmaplbn, homeblock.ibmapvbn).
+ sb.AppendFormat(Localization.Secondary_home_block_is_on_sector_0_VBN_1, homeblock.alhomelbn,
+ homeblock.alhomevbn).AppendLine();
+
+ sb.AppendFormat(Localization.Volume_bitmap_starts_in_sector_0_VBN_1, homeblock.ibmaplbn, homeblock.ibmapvbn).
AppendLine();
- sb.AppendFormat("Volume bitmap runs for {0} sectors ({1} bytes)", homeblock.ibmapsize,
+ sb.AppendFormat(Localization.Volume_bitmap_runs_for_0_sectors_1_bytes, homeblock.ibmapsize,
homeblock.ibmapsize * 512).AppendLine();
- sb.AppendFormat("Backup INDEXF.SYS;1 is in sector {0} (VBN {1})", homeblock.altidxlbn, homeblock.altidxvbn).
+ sb.AppendFormat(Localization.Backup_INDEXF_SYS_is_in_sector_0_VBN_1, homeblock.altidxlbn, homeblock.altidxvbn).
AppendLine();
- sb.AppendFormat("{0} maximum files on the volume", homeblock.maxfiles).AppendLine();
- sb.AppendFormat("{0} reserved files", homeblock.resfiles).AppendLine();
+ sb.AppendFormat(Localization._0_maximum_files_on_the_volume, homeblock.maxfiles).AppendLine();
+ sb.AppendFormat(Localization._0_reserved_files, homeblock.resfiles).AppendLine();
if(homeblock is { rvn: > 0, setcount: > 0 } &&
StringHandlers.CToString(homeblock.strucname) != " ")
- sb.AppendFormat("Volume is {0} of {1} in set \"{2}\".", homeblock.rvn, homeblock.setcount,
+ sb.AppendFormat(Localization.Volume_is_0_of_1_in_set_2, homeblock.rvn, homeblock.setcount,
StringHandlers.SpacePaddedToString(homeblock.strucname, Encoding)).AppendLine();
- sb.AppendFormat("Volume owner is \"{0}\" (ID 0x{1:X8})",
+ sb.AppendFormat(Localization.Volume_owner_is_0_ID_1,
StringHandlers.SpacePaddedToString(homeblock.ownername, Encoding), homeblock.volowner).
AppendLine();
- sb.AppendFormat("Volume label: \"{0}\"", StringHandlers.SpacePaddedToString(homeblock.volname, Encoding)).
+ sb.AppendFormat(Localization.Volume_label_0, StringHandlers.SpacePaddedToString(homeblock.volname, Encoding)).
AppendLine();
- sb.AppendFormat("Drive serial number: 0x{0:X8}", homeblock.serialnum).AppendLine();
- sb.AppendFormat("Volume was created on {0}", DateHandlers.VmsToDateTime(homeblock.credate)).AppendLine();
+ sb.AppendFormat(Localization.Drive_serial_number_0, homeblock.serialnum).AppendLine();
+
+ sb.AppendFormat(Localization.Volume_was_created_on_0, DateHandlers.VmsToDateTime(homeblock.credate)).
+ AppendLine();
if(homeblock.revdate > 0)
- sb.AppendFormat("Volume was last modified on {0}", DateHandlers.VmsToDateTime(homeblock.revdate)).
+ sb.AppendFormat(Localization.Volume_was_last_modified_on_0, DateHandlers.VmsToDateTime(homeblock.revdate)).
AppendLine();
if(homeblock.copydate > 0)
- sb.AppendFormat("Volume copied on {0}", DateHandlers.VmsToDateTime(homeblock.copydate)).AppendLine();
+ sb.AppendFormat(Localization.Volume_copied_on_0, DateHandlers.VmsToDateTime(homeblock.copydate)).
+ AppendLine();
- sb.AppendFormat("Checksums: 0x{0:X4} and 0x{1:X4}", homeblock.checksum1, homeblock.checksum2).AppendLine();
- sb.AppendLine("Flags:");
- sb.AppendFormat("Window: {0}", homeblock.window).AppendLine();
- sb.AppendFormat("Cached directories: {0}", homeblock.lru_lim).AppendLine();
- sb.AppendFormat("Default allocation: {0} blocks", homeblock.extend).AppendLine();
+ sb.AppendFormat(Localization.Checksums_0_and_1, homeblock.checksum1, homeblock.checksum2).AppendLine();
+ sb.AppendLine(Localization.Flags);
+ sb.AppendFormat(Localization.Window_0, homeblock.window).AppendLine();
+ sb.AppendFormat(Localization.Cached_directories_0, homeblock.lru_lim).AppendLine();
+ sb.AppendFormat(Localization.Default_allocation_0_blocks, homeblock.extend).AppendLine();
if((homeblock.volchar & 0x01) == 0x01)
- sb.AppendLine("Readings should be verified");
+ sb.AppendLine(Localization.Readings_should_be_verified);
if((homeblock.volchar & 0x02) == 0x02)
- sb.AppendLine("Writings should be verified");
+ sb.AppendLine(Localization.Writings_should_be_verified);
if((homeblock.volchar & 0x04) == 0x04)
- sb.AppendLine("Files should be erased or overwritten when deleted");
+ sb.AppendLine(Localization.Files_should_be_erased_or_overwritten_when_deleted);
if((homeblock.volchar & 0x08) == 0x08)
- sb.AppendLine("Highwater mark is to be disabled");
+ sb.AppendLine(Localization.Highwater_mark_is_to_be_disabled);
if((homeblock.volchar & 0x10) == 0x10)
- sb.AppendLine("Classification checks are enabled");
+ sb.AppendLine(Localization.Classification_checks_are_enabled);
- sb.AppendLine("Volume permissions (r = read, w = write, c = create, d = delete)");
- sb.AppendLine("System, owner, group, world");
+ sb.AppendLine(Localization.Volume_permissions_r_read_w_write_c_create_d_delete);
+ sb.AppendLine(Localization.System_owner_group_world);
// System
sb.Append((homeblock.protect & 0x1000) == 0x1000 ? "-" : "r");
@@ -261,14 +266,14 @@ public sealed class ODS : IFilesystem
sb.AppendLine();
- sb.AppendLine("Unknown structures:");
- sb.AppendFormat("Security mask: 0x{0:X8}", homeblock.sec_mask).AppendLine();
- sb.AppendFormat("File protection: 0x{0:X4}", homeblock.fileprot).AppendLine();
- sb.AppendFormat("Record protection: 0x{0:X4}", homeblock.recprot).AppendLine();
+ sb.AppendLine(Localization.Unknown_structures);
+ sb.AppendFormat(Localization.Security_mask_0, homeblock.sec_mask).AppendLine();
+ sb.AppendFormat(Localization.File_protection_0, homeblock.fileprot).AppendLine();
+ sb.AppendFormat(Localization.Record_protection_0, homeblock.recprot).AppendLine();
XmlFsType = new FileSystemType
{
- Type = "FILES-11",
+ Type = FS_TYPE,
ClusterSize = (uint)(homeblock.cluster * 512),
Clusters = partition.Size / (ulong)(homeblock.cluster * 512),
VolumeName = StringHandlers.SpacePaddedToString(homeblock.volname, Encoding),
diff --git a/Aaru.Filesystems/Opera/Consts.cs b/Aaru.Filesystems/Opera/Consts.cs
index 5f56476cb..d5de0c737 100644
--- a/Aaru.Filesystems/Opera/Consts.cs
+++ b/Aaru.Filesystems/Opera/Consts.cs
@@ -55,4 +55,6 @@ public sealed partial class OperaFS
File = 2, Special = 6, Directory = 7,
LastEntryInBlock = 0x40000000, LastEntry = 0x80000000
}
+
+ const string FS_TYPE = "opera";
}
\ No newline at end of file
diff --git a/Aaru.Filesystems/Opera/Info.cs b/Aaru.Filesystems/Opera/Info.cs
index e8bdadd2f..11f73219f 100644
--- a/Aaru.Filesystems/Opera/Info.cs
+++ b/Aaru.Filesystems/Opera/Info.cs
@@ -88,53 +88,55 @@ public sealed partial class OperaFS
if(Encoding.ASCII.GetString(sb.sync_bytes) != SYNC)
return;
- superBlockMetadata.AppendFormat("Opera filesystem disc.").AppendLine();
+ superBlockMetadata.AppendFormat(Localization.Opera_filesystem_disc).AppendLine();
if(!string.IsNullOrEmpty(StringHandlers.CToString(sb.volume_label, Encoding)))
- superBlockMetadata.AppendFormat("Volume label: {0}", StringHandlers.CToString(sb.volume_label, Encoding)).
- AppendLine();
+ superBlockMetadata.
+ AppendFormat(Localization.Volume_label_0, StringHandlers.CToString(sb.volume_label, Encoding)).
+ AppendLine();
if(!string.IsNullOrEmpty(StringHandlers.CToString(sb.volume_comment, Encoding)))
superBlockMetadata.
- AppendFormat("Volume comment: {0}", StringHandlers.CToString(sb.volume_comment, Encoding)).AppendLine();
+ AppendFormat(Localization.Volume_comment_0, StringHandlers.CToString(sb.volume_comment, Encoding)).
+ AppendLine();
- superBlockMetadata.AppendFormat("Volume identifier: 0x{0:X8}", sb.volume_id).AppendLine();
- superBlockMetadata.AppendFormat("Block size: {0} bytes", sb.block_size).AppendLine();
+ superBlockMetadata.AppendFormat(Localization.Volume_identifier_0_X8, sb.volume_id).AppendLine();
+ superBlockMetadata.AppendFormat(Localization.Block_size_0_bytes, sb.block_size).AppendLine();
if(imagePlugin.Info.SectorSize is 2336 or 2352 or 2448)
{
if(sb.block_size != 2048)
superBlockMetadata.
- AppendFormat("WARNING: Filesystem indicates {0} bytes/block while device indicates {1} bytes/block",
+ AppendFormat(Localization.WARNING_Filesystem_indicates_0_bytes_block_while_device_indicates_1_bytes_block,
sb.block_size, 2048);
}
else if(imagePlugin.Info.SectorSize != sb.block_size)
superBlockMetadata.
- AppendFormat("WARNING: Filesystem indicates {0} bytes/block while device indicates {1} bytes/block",
+ AppendFormat(Localization.WARNING_Filesystem_indicates_0_bytes_block_while_device_indicates_1_bytes_block,
sb.block_size, imagePlugin.Info.SectorSize);
superBlockMetadata.
- AppendFormat("Volume size: {0} blocks, {1} bytes", sb.block_count, sb.block_size * sb.block_count).
+ AppendFormat(Localization.Volume_size_0_blocks_1_bytes, sb.block_count, sb.block_size * sb.block_count).
AppendLine();
if(sb.block_count > imagePlugin.Info.Sectors)
superBlockMetadata.
- AppendFormat("WARNING: Filesystem indicates {0} blocks while device indicates {1} blocks",
+ AppendFormat(Localization.WARNING__Filesystem_indicates_0_blocks_while_device_indicates_1_blocks,
sb.block_count, imagePlugin.Info.Sectors);
- superBlockMetadata.AppendFormat("Root directory identifier: 0x{0:X8}", sb.root_dirid).AppendLine();
- superBlockMetadata.AppendFormat("Root directory block size: {0} bytes", sb.rootdir_bsize).AppendLine();
+ superBlockMetadata.AppendFormat(Localization.Root_directory_identifier_0, sb.root_dirid).AppendLine();
+ superBlockMetadata.AppendFormat(Localization.Root_directory_block_size_0_bytes, sb.rootdir_bsize).AppendLine();
- superBlockMetadata.AppendFormat("Root directory size: {0} blocks, {1} bytes", sb.rootdir_blocks,
+ superBlockMetadata.AppendFormat(Localization.Root_directory_size_0_blocks_1_bytes, sb.rootdir_blocks,
sb.rootdir_bsize * sb.rootdir_blocks).AppendLine();
- superBlockMetadata.AppendFormat("Last root directory copy: {0}", sb.last_root_copy).AppendLine();
+ superBlockMetadata.AppendFormat(Localization.Last_root_directory_copy_0, sb.last_root_copy).AppendLine();
information = superBlockMetadata.ToString();
XmlFsType = new FileSystemType
{
- Type = "Opera",
+ Type = FS_TYPE,
VolumeName = StringHandlers.CToString(sb.volume_label, Encoding),
ClusterSize = sb.block_size,
Clusters = sb.block_count
diff --git a/Aaru.Filesystems/Opera/Opera.cs b/Aaru.Filesystems/Opera/Opera.cs
index 8a48ddc5e..807720e9e 100644
--- a/Aaru.Filesystems/Opera/Opera.cs
+++ b/Aaru.Filesystems/Opera/Opera.cs
@@ -57,11 +57,11 @@ public sealed partial class OperaFS : IReadOnlyFilesystem
///
public Encoding Encoding { get; private set; }
///
- public string Name => "Opera Filesystem Plugin";
+ public string Name => Localization.OperaFS_Name;
///
public Guid Id => new("0ec84ec7-eae6-4196-83fe-943b3fe46dbd");
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
///
public ErrorNumber ListXAttr(string path, out List xattrs)
diff --git a/Aaru.Filesystems/Opera/Super.cs b/Aaru.Filesystems/Opera/Super.cs
index 7053a88f6..17c74fc6b 100644
--- a/Aaru.Filesystems/Opera/Super.cs
+++ b/Aaru.Filesystems/Opera/Super.cs
@@ -76,7 +76,7 @@ public sealed partial class OperaFS
XmlFsType = new FileSystemType
{
- Type = "Opera",
+ Type = FS_TYPE,
VolumeName = StringHandlers.CToString(sb.volume_label, Encoding),
ClusterSize = sb.block_size,
Clusters = sb.block_count,
@@ -95,7 +95,7 @@ public sealed partial class OperaFS
Serial32 = sb.volume_id
},
PluginId = Id,
- Type = "Opera"
+ Type = FS_TYPE
};
_image = imagePlugin;
diff --git a/Aaru.Filesystems/PCEngine.cs b/Aaru.Filesystems/PCEngine.cs
index 806c873fa..b95cdcdf3 100644
--- a/Aaru.Filesystems/PCEngine.cs
+++ b/Aaru.Filesystems/PCEngine.cs
@@ -43,16 +43,17 @@ namespace Aaru.Filesystems;
/// Implements detection of the PC-Engine CD file headers
public sealed class PCEnginePlugin : IFilesystem
{
+ const string FS_TYPE = "pcengine";
///
public FileSystemType XmlFsType { get; private set; }
///
public Encoding Encoding { get; private set; }
///
- public string Name => "PC Engine CD Plugin";
+ public string Name => Localization.PCEnginePlugin_Name;
///
public Guid Id => new("e5ee6d7c-90fa-49bd-ac89-14ef750b8af3");
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
///
public bool Identify(IMediaImage imagePlugin, Partition partition)
@@ -79,7 +80,7 @@ public sealed class PCEnginePlugin : IFilesystem
XmlFsType = new FileSystemType
{
- Type = "PC Engine filesystem",
+ Type = FS_TYPE,
Clusters = (partition.End - partition.Start + 1) / imagePlugin.Info.SectorSize * 2048,
ClusterSize = 2048
};
diff --git a/Aaru.Filesystems/PCFX.cs b/Aaru.Filesystems/PCFX.cs
index b2bf10a09..972446cc5 100644
--- a/Aaru.Filesystems/PCFX.cs
+++ b/Aaru.Filesystems/PCFX.cs
@@ -48,16 +48,18 @@ namespace Aaru.Filesystems;
public sealed class PCFX : IFilesystem
{
const string IDENTIFIER = "PC-FX:Hu_CD-ROM ";
+
+ const string FS_TYPE = "pcfx";
///
public FileSystemType XmlFsType { get; private set; }
///
public Encoding Encoding { get; private set; }
///
- public string Name => "PC-FX Plugin";
+ public string Name => Localization.PCFX_Name;
///
public Guid Id => new("8BC27CCE-D9E9-48F8-BA93-C66A86EB565A");
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
///
public bool Identify(IMediaImage imagePlugin, Partition partition)
@@ -107,28 +109,28 @@ public sealed class PCFX : IFilesystem
}
var sb = new StringBuilder();
- sb.AppendLine("PC-FX executable:");
- sb.AppendFormat("Identifier: {0}", StringHandlers.CToString(header.signature, Encoding)).AppendLine();
- sb.AppendFormat("Copyright: {0}", StringHandlers.CToString(header.copyright, Encoding)).AppendLine();
- sb.AppendFormat("Title: {0}", StringHandlers.CToString(header.title, Encoding)).AppendLine();
- sb.AppendFormat("Maker ID: {0}", StringHandlers.CToString(header.makerId, Encoding)).AppendLine();
- sb.AppendFormat("Maker name: {0}", StringHandlers.CToString(header.makerName, Encoding)).AppendLine();
- sb.AppendFormat("Volume number: {0}", header.volumeNumber).AppendLine();
- sb.AppendFormat("Country code: {0}", header.country).AppendLine();
- sb.AppendFormat("Version: {0}.{1}", header.minorVersion, header.majorVersion).AppendLine();
+ sb.AppendLine(Localization.PC_FX_executable);
+ sb.AppendFormat(Localization.Identifier_0, StringHandlers.CToString(header.signature, Encoding)).AppendLine();
+ sb.AppendFormat(Localization.Copyright_0, StringHandlers.CToString(header.copyright, Encoding)).AppendLine();
+ sb.AppendFormat(Localization.Title_0, StringHandlers.CToString(header.title, Encoding)).AppendLine();
+ sb.AppendFormat(Localization.Maker_ID_0, StringHandlers.CToString(header.makerId, Encoding)).AppendLine();
+ sb.AppendFormat(Localization.Maker_name_0, StringHandlers.CToString(header.makerName, Encoding)).AppendLine();
+ sb.AppendFormat(Localization.Volume_number_0, header.volumeNumber).AppendLine();
+ sb.AppendFormat(Localization.Country_code_0, header.country).AppendLine();
+ sb.AppendFormat(Localization.Version_0_1, header.minorVersion, header.majorVersion).AppendLine();
if(date != null)
- sb.AppendFormat("Dated {0}", dateTime).AppendLine();
+ sb.AppendFormat(Localization.Dated_0, dateTime).AppendLine();
- sb.AppendFormat("Load {0} sectors from sector {1}", header.loadCount, header.loadOffset).AppendLine();
+ sb.AppendFormat(Localization.Load_0_sectors_from_sector_1, header.loadCount, header.loadOffset).AppendLine();
- sb.AppendFormat("Load at 0x{0:X8} and jump to 0x{1:X8}", header.loadAddress, header.entryPoint).AppendLine();
+ sb.AppendFormat(Localization.Load_at_0_and_jump_to_1, header.loadAddress, header.entryPoint).AppendLine();
information = sb.ToString();
XmlFsType = new FileSystemType
{
- Type = "PC-FX",
+ Type = FS_TYPE,
Clusters = partition.Length,
ClusterSize = 2048,
Bootable = true,
diff --git a/Aaru.Filesystems/PFS.cs b/Aaru.Filesystems/PFS.cs
index b75d502bf..e70cfa7f7 100644
--- a/Aaru.Filesystems/PFS.cs
+++ b/Aaru.Filesystems/PFS.cs
@@ -59,16 +59,18 @@ public sealed class PFS : IFilesystem
/// Identifier for multi-user PFS
const uint MUPFS_DISK = 0x6D755046;
+ const string FS_TYPE = "pfs";
+
///
public FileSystemType XmlFsType { get; private set; }
///
public Encoding Encoding { get; private set; }
///
- public string Name => "Professional File System";
+ public string Name => Localization.PFS_Name;
///
public Guid Id => new("68DE769E-D957-406A-8AE4-3781CA8CDA77");
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
///
public bool Identify(IMediaImage imagePlugin, Partition partition)
@@ -105,40 +107,43 @@ public sealed class PFS : IFilesystem
{
case AFS_DISK:
case MUAF_DISK:
- sbInformation.Append("Professional File System v1");
- XmlFsType.Type = "PFS v1";
+ sbInformation.Append(Localization.Professional_File_System_v1);
+ XmlFsType.Type = FS_TYPE;
break;
case PFS2_DISK:
- sbInformation.Append("Professional File System v2");
- XmlFsType.Type = "PFS v2";
+ sbInformation.Append(Localization.Professional_File_System_v2);
+ XmlFsType.Type = FS_TYPE;
break;
case PFS_DISK:
case MUPFS_DISK:
- sbInformation.Append("Professional File System v3");
- XmlFsType.Type = "PFS v3";
+ sbInformation.Append(Localization.Professional_File_System_v3);
+ XmlFsType.Type = FS_TYPE;
break;
}
if(rootBlock.diskType is MUAF_DISK or MUPFS_DISK)
- sbInformation.Append(", with multi-user support");
+ sbInformation.Append(Localization.with_multi_user_support);
sbInformation.AppendLine();
- sbInformation.AppendFormat("Volume name: {0}", StringHandlers.PascalToString(rootBlock.diskname, Encoding)).
- AppendLine();
+ sbInformation.
+ AppendFormat(Localization.Volume_name_0, StringHandlers.PascalToString(rootBlock.diskname, Encoding)).
+ AppendLine();
- sbInformation.AppendFormat("Volume has {0} free sectors of {1}", rootBlock.blocksfree, rootBlock.diskSize).
- AppendLine();
+ sbInformation.
+ AppendFormat(Localization.Volume_has_0_free_sectors_of_1, rootBlock.blocksfree, rootBlock.diskSize).
+ AppendLine();
- sbInformation.AppendFormat("Volume created on {0}",
+ sbInformation.AppendFormat(Localization.Volume_created_on_0,
DateHandlers.AmigaToDateTime(rootBlock.creationday, rootBlock.creationminute,
rootBlock.creationtick)).AppendLine();
if(rootBlock.extension > 0)
- sbInformation.AppendFormat("Root block extension resides at block {0}", rootBlock.extension).AppendLine();
+ sbInformation.AppendFormat(Localization.Root_block_extension_resides_at_block_0, rootBlock.extension).
+ AppendLine();
information = sbInformation.ToString();
diff --git a/Aaru.Filesystems/ProDOS.cs b/Aaru.Filesystems/ProDOS.cs
index d94b799f6..e706ab8a0 100644
--- a/Aaru.Filesystems/ProDOS.cs
+++ b/Aaru.Filesystems/ProDOS.cs
@@ -89,11 +89,11 @@ public sealed class ProDOSPlugin : IFilesystem
///
public Encoding Encoding { get; private set; }
///
- public string Name => "Apple ProDOS filesystem";
+ public string Name => Localization.ProDOSPlugin_Name;
///
public Guid Id => new("43874265-7B8A-4739-BCF7-07F80D5932BF");
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
///
public bool Identify(IMediaImage imagePlugin, Partition partition)
@@ -250,8 +250,8 @@ public sealed class ProDOSPlugin : IFilesystem
AaruConsole.DebugWriteLine("ProDOS plugin", "temp_timestamp = 0x{0:X8}", tempTimestamp);
AaruConsole.DebugWriteLine("ProDOS plugin",
- "Datetime field year {0}, month {1}, day {2}, hour {3}, minute {4}.", year,
- month, day, hour, minute);
+ Localization.Datetime_field_year_0_month_1_day_2_hour_3_minute_4, year, month,
+ day, hour, minute);
rootDirectoryKeyBlock.header.creation_time = new DateTime(year, month, day, hour, minute, 0);
dateCorrect = true;
@@ -272,64 +272,71 @@ public sealed class ProDOSPlugin : IFilesystem
rootDirectoryKeyBlock.header.total_blocks = BitConverter.ToUInt16(rootDirectoryKeyBlockBytes, 0x29);
if(apmFromHddOnCd)
- sbInformation.AppendLine("ProDOS uses 512 bytes/sector while devices uses 2048 bytes/sector.").AppendLine();
+ sbInformation.AppendLine(Localization.ProDOS_uses_512_bytes_sector_while_devices_uses_2048_bytes_sector).
+ AppendLine();
if(rootDirectoryKeyBlock.header.version != VERSION1 ||
rootDirectoryKeyBlock.header.min_version != VERSION1)
{
- sbInformation.AppendLine("Warning! Detected unknown ProDOS version ProDOS filesystem.");
- sbInformation.AppendLine("All of the following information may be incorrect");
+ sbInformation.AppendLine(Localization.Warning_Detected_unknown_ProDOS_version_ProDOS_filesystem);
+ sbInformation.AppendLine(Localization.All_of_the_following_information_may_be_incorrect);
}
if(rootDirectoryKeyBlock.header.version == VERSION1)
- sbInformation.AppendLine("ProDOS version 1 used to create this volume.");
+ sbInformation.AppendLine(Localization.ProDOS_version_one_used_to_create_this_volume);
else
- sbInformation.AppendFormat("Unknown ProDOS version with field {0} used to create this volume.",
+ sbInformation.AppendFormat(Localization.Unknown_ProDOS_version_with_field_0_used_to_create_this_volume,
rootDirectoryKeyBlock.header.version).AppendLine();
if(rootDirectoryKeyBlock.header.min_version == VERSION1)
- sbInformation.AppendLine("ProDOS version 1 at least required for reading this volume.");
+ sbInformation.AppendLine(Localization.ProDOS_version_one_at_least_required_for_reading_this_volume);
else
sbInformation.
- AppendFormat("Unknown ProDOS version with field {0} is at least required for reading this volume.",
+ AppendFormat(Localization.Unknown_ProDOS_version_with_field_0_is_at_least_required_for_reading_this_volume,
rootDirectoryKeyBlock.header.min_version).AppendLine();
- sbInformation.AppendFormat("Volume name is {0}", rootDirectoryKeyBlock.header.volume_name).AppendLine();
+ sbInformation.AppendFormat(Localization.Volume_name_is_0, rootDirectoryKeyBlock.header.volume_name).
+ AppendLine();
if(dateCorrect)
- sbInformation.AppendFormat("Volume created on {0}", rootDirectoryKeyBlock.header.creation_time).
+ sbInformation.AppendFormat(Localization.Volume_created_on_0, rootDirectoryKeyBlock.header.creation_time).
AppendLine();
- sbInformation.AppendFormat("{0} bytes per directory entry", rootDirectoryKeyBlock.header.entry_length).
+ sbInformation.
+ AppendFormat(Localization._0_bytes_per_directory_entry, rootDirectoryKeyBlock.header.entry_length).
+ AppendLine();
+
+ sbInformation.
+ AppendFormat(Localization._0_entries_per_directory_block, rootDirectoryKeyBlock.header.entries_per_block).
+ AppendLine();
+
+ sbInformation.AppendFormat(Localization._0_files_in_root_directory, rootDirectoryKeyBlock.header.file_count).
AppendLine();
- sbInformation.AppendFormat("{0} entries per directory block", rootDirectoryKeyBlock.header.entries_per_block).
+ sbInformation.AppendFormat(Localization._0_blocks_in_volume, rootDirectoryKeyBlock.header.total_blocks).
AppendLine();
- sbInformation.AppendFormat("{0} files in root directory", rootDirectoryKeyBlock.header.file_count).AppendLine();
-
- sbInformation.AppendFormat("{0} blocks in volume", rootDirectoryKeyBlock.header.total_blocks).AppendLine();
-
- sbInformation.AppendFormat("Bitmap starts at block {0}", rootDirectoryKeyBlock.header.bit_map_pointer).
+ sbInformation.AppendFormat(Localization.Bitmap_starts_at_block_0, rootDirectoryKeyBlock.header.bit_map_pointer).
AppendLine();
if((rootDirectoryKeyBlock.header.access & READ_ATTRIBUTE) == READ_ATTRIBUTE)
- sbInformation.AppendLine("Volume can be read");
+ sbInformation.AppendLine(Localization.Volume_can_be_read);
if((rootDirectoryKeyBlock.header.access & WRITE_ATTRIBUTE) == WRITE_ATTRIBUTE)
- sbInformation.AppendLine("Volume can be written");
+ sbInformation.AppendLine(Localization.Volume_can_be_written);
if((rootDirectoryKeyBlock.header.access & RENAME_ATTRIBUTE) == RENAME_ATTRIBUTE)
- sbInformation.AppendLine("Volume can be renamed");
+ sbInformation.AppendLine(Localization.Volume_can_be_renamed);
if((rootDirectoryKeyBlock.header.access & DESTROY_ATTRIBUTE) == DESTROY_ATTRIBUTE)
- sbInformation.AppendLine("Volume can be destroyed");
+ sbInformation.AppendLine(Localization.Volume_can_be_destroyed);
if((rootDirectoryKeyBlock.header.access & BACKUP_ATTRIBUTE) == BACKUP_ATTRIBUTE)
- sbInformation.AppendLine("Volume must be backed up");
+ sbInformation.AppendLine(Localization.Volume_must_be_backed_up);
+ // TODO: Fix mask
if((rootDirectoryKeyBlock.header.access & RESERVED_ATTRIBUTE_MASK) != 0)
- AaruConsole.DebugWriteLine("ProDOS plugin", "Reserved attributes are set: {0:X2}",
+ AaruConsole.DebugWriteLine("ProDOS plugin", Localization.Reserved_attributes_are_set_0,
rootDirectoryKeyBlock.header.access);
information = sbInformation.ToString();
@@ -340,7 +347,7 @@ public sealed class ProDOSPlugin : IFilesystem
Files = rootDirectoryKeyBlock.header.file_count,
FilesSpecified = true,
Clusters = rootDirectoryKeyBlock.header.total_blocks,
- Type = "ProDOS"
+ Type = FS_TYPE
};
XmlFsType.ClusterSize = (uint)((partition.End - partition.Start + 1) * imagePlugin.Info.SectorSize /
@@ -353,6 +360,8 @@ public sealed class ProDOSPlugin : IFilesystem
XmlFsType.CreationDateSpecified = true;
}
+ const string FS_TYPE = "prodos";
+
/// ProDOS directory entry, decoded structure
[SuppressMessage("ReSharper", "InconsistentNaming")]
struct Entry
diff --git a/Aaru.Filesystems/QNX4.cs b/Aaru.Filesystems/QNX4.cs
index 3088f213e..13ac34650 100644
--- a/Aaru.Filesystems/QNX4.cs
+++ b/Aaru.Filesystems/QNX4.cs
@@ -59,11 +59,11 @@ public sealed class QNX4 : IFilesystem
///
public Encoding Encoding { get; private set; }
///
- public string Name => "QNX4 Plugin";
+ public string Name => Localization.QNX4_Name;
///
public Guid Id => new("E73A63FA-B5B0-48BF-BF82-DA5F0A8170D2");
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
///
public bool Identify(IMediaImage imagePlugin, Partition partition)
@@ -196,11 +196,13 @@ public sealed class QNX4 : IFilesystem
AaruConsole.DebugWriteLine("QNX4 plugin", "qnxSb.altBoot.di_status = {0}", qnxSb.altBoot.di_status);
*/
- information = $"QNX4 filesystem\nCreated on {DateHandlers.UnixUnsignedToDateTime(qnxSb.rootDir.di_ftime)}\n";
+ information = Localization.QNX4_filesystem + "\n" +
+ string.Format(Localization.Created_on_0,
+ DateHandlers.UnixUnsignedToDateTime(qnxSb.rootDir.di_ftime)) + "\n";
XmlFsType = new FileSystemType
{
- Type = "QNX4 filesystem",
+ Type = FS_TYPE,
Clusters = partition.Length,
ClusterSize = 512,
CreationDate = DateHandlers.UnixUnsignedToDateTime(qnxSb.rootDir.di_ftime),
@@ -212,6 +214,8 @@ public sealed class QNX4 : IFilesystem
XmlFsType.Bootable |= qnxSb.boot.di_size != 0 || qnxSb.altBoot.di_size != 0;
}
+ const string FS_TYPE = "qnx4";
+
struct Extent
{
public uint Block;
diff --git a/Aaru.Filesystems/QNX6.cs b/Aaru.Filesystems/QNX6.cs
index 4bc2c2b73..85cbb667e 100644
--- a/Aaru.Filesystems/QNX6.cs
+++ b/Aaru.Filesystems/QNX6.cs
@@ -50,16 +50,18 @@ public sealed class QNX6 : IFilesystem
const uint QNX6_BOOT_BLOCKS_SIZE = 0x2000;
const uint QNX6_MAGIC = 0x68191122;
+ const string FS_TYPE = "qnx6";
+
///
public FileSystemType XmlFsType { get; private set; }
///
public Encoding Encoding { get; private set; }
///
- public string Name => "QNX6 Plugin";
+ public string Name => Localization.QNX6_Name;
///
public Guid Id => new("3E610EA2-4D08-4D70-8947-830CD4C74FC0");
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
///
public bool Identify(IMediaImage imagePlugin, Partition partition)
@@ -120,19 +122,19 @@ public sealed class QNX6 : IFilesystem
if(audi)
{
- sb.AppendLine("QNX6 (Audi) filesystem");
- sb.AppendFormat("Checksum: 0x{0:X8}", audiSb.checksum).AppendLine();
- sb.AppendFormat("Serial: 0x{0:X16}", audiSb.checksum).AppendLine();
- sb.AppendFormat("{0} bytes per block", audiSb.blockSize).AppendLine();
- sb.AppendFormat("{0} inodes free of {1}", audiSb.freeInodes, audiSb.numInodes).AppendLine();
+ sb.AppendLine(Localization.QNX6_Audi_filesystem);
+ sb.AppendFormat(Localization.Checksum_0_X8, audiSb.checksum).AppendLine();
+ sb.AppendFormat(Localization.Serial_0_X16, audiSb.checksum).AppendLine();
+ sb.AppendFormat(Localization._0_bytes_per_block, audiSb.blockSize).AppendLine();
+ sb.AppendFormat(Localization._0_inodes_free_of_1, audiSb.freeInodes, audiSb.numInodes).AppendLine();
- sb.AppendFormat("{0} blocks ({1} bytes) free of {2} ({3} bytes)", audiSb.freeBlocks,
+ sb.AppendFormat(Localization._0_blocks_1_bytes_free_of_2_3_bytes, audiSb.freeBlocks,
audiSb.freeBlocks * audiSb.blockSize, audiSb.numBlocks,
audiSb.numBlocks * audiSb.blockSize).AppendLine();
XmlFsType = new FileSystemType
{
- Type = "QNX6 (Audi) filesystem",
+ Type = FS_TYPE,
Clusters = audiSb.numBlocks,
ClusterSize = audiSb.blockSize,
Bootable = true,
@@ -150,26 +152,26 @@ public sealed class QNX6 : IFilesystem
return;
}
- sb.AppendLine("QNX6 filesystem");
- sb.AppendFormat("Checksum: 0x{0:X8}", qnxSb.checksum).AppendLine();
- sb.AppendFormat("Serial: 0x{0:X16}", qnxSb.checksum).AppendLine();
- sb.AppendFormat("Created on {0}", DateHandlers.UnixUnsignedToDateTime(qnxSb.ctime)).AppendLine();
- sb.AppendFormat("Last mounted on {0}", DateHandlers.UnixUnsignedToDateTime(qnxSb.atime)).AppendLine();
- sb.AppendFormat("Flags: 0x{0:X8}", qnxSb.flags).AppendLine();
- sb.AppendFormat("Version1: 0x{0:X4}", qnxSb.version1).AppendLine();
- sb.AppendFormat("Version2: 0x{0:X4}", qnxSb.version2).AppendLine();
+ sb.AppendLine(Localization.QNX6_filesystem);
+ sb.AppendFormat(Localization.Checksum_0_X8, qnxSb.checksum).AppendLine();
+ sb.AppendFormat(Localization.Serial_0_X16, qnxSb.checksum).AppendLine();
+ sb.AppendFormat(Localization.Created_on_0, DateHandlers.UnixUnsignedToDateTime(qnxSb.ctime)).AppendLine();
+ sb.AppendFormat(Localization.Last_mounted_on_0, DateHandlers.UnixUnsignedToDateTime(qnxSb.atime)).AppendLine();
+ sb.AppendFormat(Localization.Flags_0_X8, qnxSb.flags).AppendLine();
+ sb.AppendFormat(Localization.Version1_0_X4, qnxSb.version1).AppendLine();
+ sb.AppendFormat(Localization.Version2_0_X4, qnxSb.version2).AppendLine();
//sb.AppendFormat("Volume ID: \"{0}\"", CurrentEncoding.GetString(qnxSb.volumeid)).AppendLine();
- sb.AppendFormat("{0} bytes per block", qnxSb.blockSize).AppendLine();
- sb.AppendFormat("{0} inodes free of {1}", qnxSb.freeInodes, qnxSb.numInodes).AppendLine();
+ sb.AppendFormat(Localization._0_bytes_per_block, qnxSb.blockSize).AppendLine();
+ sb.AppendFormat(Localization._0_inodes_free_of_1, qnxSb.freeInodes, qnxSb.numInodes).AppendLine();
- sb.AppendFormat("{0} blocks ({1} bytes) free of {2} ({3} bytes)", qnxSb.freeBlocks,
+ sb.AppendFormat(Localization._0_blocks_1_bytes_free_of_2_3_bytes, qnxSb.freeBlocks,
qnxSb.freeBlocks * qnxSb.blockSize, qnxSb.numBlocks, qnxSb.numBlocks * qnxSb.blockSize).
AppendLine();
XmlFsType = new FileSystemType
{
- Type = "QNX6 filesystem",
+ Type = FS_TYPE,
Clusters = qnxSb.numBlocks,
ClusterSize = qnxSb.blockSize,
Bootable = true,
diff --git a/Aaru.Filesystems/RBF.cs b/Aaru.Filesystems/RBF.cs
index 3c757a778..ce25e8a6f 100644
--- a/Aaru.Filesystems/RBF.cs
+++ b/Aaru.Filesystems/RBF.cs
@@ -51,16 +51,18 @@ public sealed class RBF : IFilesystem
const uint RBF_SYNC = 0x4372757A;
const uint RBF_CNYS = 0x7A757243;
+ const string FS_TYPE = "rbf";
+
///
public FileSystemType XmlFsType { get; private set; }
///
public Encoding Encoding { get; private set; }
///
- public string Name => "OS-9 Random Block File Plugin";
+ public string Name => Localization.RBF_Name;
///
public Guid Id => new("E864E45B-0B52-4D29-A858-7BDFA9199FB2");
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
///
public bool Identify(IMediaImage imagePlugin, Partition partition)
@@ -97,8 +99,7 @@ public sealed class RBF : IFilesystem
IdSector rbfSb = Marshal.ByteArrayToStructureBigEndian(sector);
NewIdSector rbf9000Sb = Marshal.ByteArrayToStructureBigEndian(sector);
- AaruConsole.DebugWriteLine("RBF plugin",
- "magic at {0} = 0x{1:X8} or 0x{2:X8} (expected 0x{3:X8} or 0x{4:X8})", location,
+ AaruConsole.DebugWriteLine("RBF plugin", Localization.magic_at_0_equals_1_or_2_expected_3_or_4, location,
rbfSb.dd_sync, rbf9000Sb.rid_sync, RBF_SYNC, RBF_CNYS);
if(rbfSb.dd_sync == RBF_SYNC ||
@@ -143,8 +144,7 @@ public sealed class RBF : IFilesystem
rbfSb = Marshal.ByteArrayToStructureBigEndian(sector);
rbf9000Sb = Marshal.ByteArrayToStructureBigEndian(sector);
- AaruConsole.DebugWriteLine("RBF plugin",
- "magic at {0} = 0x{1:X8} or 0x{2:X8} (expected 0x{3:X8} or 0x{4:X8})", location,
+ AaruConsole.DebugWriteLine("RBF plugin", Localization.magic_at_0_equals_1_or_2_expected_3_or_4, location,
rbfSb.dd_sync, rbf9000Sb.rid_sync, RBF_SYNC, RBF_CNYS);
if(rbfSb.dd_sync == RBF_SYNC ||
@@ -162,56 +162,63 @@ public sealed class RBF : IFilesystem
var sb = new StringBuilder();
- sb.AppendLine("OS-9 Random Block File");
+ sb.AppendLine(Localization.OS_9_Random_Block_File);
if(rbf9000Sb.rid_sync == RBF_SYNC)
{
- sb.AppendFormat("Volume ID: {0:X8}", rbf9000Sb.rid_diskid).AppendLine();
- sb.AppendFormat("{0} blocks in volume", rbf9000Sb.rid_totblocks).AppendLine();
- sb.AppendFormat("{0} cylinders", rbf9000Sb.rid_cylinders).AppendLine();
- sb.AppendFormat("{0} blocks in cylinder 0", rbf9000Sb.rid_cyl0size).AppendLine();
- sb.AppendFormat("{0} blocks per cylinder", rbf9000Sb.rid_cylsize).AppendLine();
- sb.AppendFormat("{0} heads", rbf9000Sb.rid_heads).AppendLine();
- sb.AppendFormat("{0} bytes per block", rbf9000Sb.rid_blocksize).AppendLine();
+ sb.AppendFormat(Localization.Volume_ID_0_X8, rbf9000Sb.rid_diskid).AppendLine();
+ sb.AppendFormat(Localization._0_blocks_in_volume, rbf9000Sb.rid_totblocks).AppendLine();
+ sb.AppendFormat(Localization._0_cylinders, rbf9000Sb.rid_cylinders).AppendLine();
+ sb.AppendFormat(Localization._0_blocks_in_cylinder_zero, rbf9000Sb.rid_cyl0size).AppendLine();
+ sb.AppendFormat(Localization._0_blocks_per_cylinder, rbf9000Sb.rid_cylsize).AppendLine();
+ sb.AppendFormat(Localization._0_heads, rbf9000Sb.rid_heads).AppendLine();
+ sb.AppendFormat(Localization._0_bytes_per_block, rbf9000Sb.rid_blocksize).AppendLine();
// TODO: Convert to flags?
- sb.AppendLine((rbf9000Sb.rid_format & 0x01) == 0x01 ? "Disk is double sided" : "Disk is single sided");
+ sb.AppendLine((rbf9000Sb.rid_format & 0x01) == 0x01 ? Localization.Disk_is_double_sided
+ : Localization.Disk_is_single_sided);
- sb.AppendLine((rbf9000Sb.rid_format & 0x02) == 0x02 ? "Disk is double density" : "Disk is single density");
+ sb.AppendLine((rbf9000Sb.rid_format & 0x02) == 0x02 ? Localization.Disk_is_double_density
+ : Localization.Disk_is_single_density);
if((rbf9000Sb.rid_format & 0x10) == 0x10)
- sb.AppendLine("Disk is 384 TPI");
+ sb.AppendLine(Localization.Disk_is_384_TPI);
else if((rbf9000Sb.rid_format & 0x08) == 0x08)
- sb.AppendLine("Disk is 192 TPI");
+ sb.AppendLine(Localization.Disk_is_192_TPI);
else if((rbf9000Sb.rid_format & 0x04) == 0x04)
- sb.AppendLine("Disk is 96 TPI or 135 TPI");
+ sb.AppendLine(Localization.Disk_is_96_TPI_or_135_TPI);
else
- sb.AppendLine("Disk is 48 TPI");
+ sb.AppendLine(Localization.Disk_is_48_TPI);
- sb.AppendFormat("Allocation bitmap descriptor starts at block {0}",
+ sb.AppendFormat(Localization.Allocation_bitmap_descriptor_starts_at_block_0,
rbf9000Sb.rid_bitmap == 0 ? 1 : rbf9000Sb.rid_bitmap).AppendLine();
if(rbf9000Sb.rid_firstboot > 0)
- sb.AppendFormat("Debugger descriptor starts at block {0}", rbf9000Sb.rid_firstboot).AppendLine();
+ sb.AppendFormat(Localization.Debugger_descriptor_starts_at_block_0, rbf9000Sb.rid_firstboot).
+ AppendLine();
if(rbf9000Sb.rid_bootfile > 0)
- sb.AppendFormat("Boot file descriptor starts at block {0}", rbf9000Sb.rid_bootfile).AppendLine();
+ sb.AppendFormat(Localization.Boot_file_descriptor_starts_at_block_0, rbf9000Sb.rid_bootfile).
+ AppendLine();
- sb.AppendFormat("Root directory descriptor starts at block {0}", rbf9000Sb.rid_rootdir).AppendLine();
-
- sb.AppendFormat("Disk is owned by group {0} user {1}", rbf9000Sb.rid_group, rbf9000Sb.rid_owner).
+ sb.AppendFormat(Localization.Root_directory_descriptor_starts_at_block_0, rbf9000Sb.rid_rootdir).
AppendLine();
- sb.AppendFormat("Volume was created on {0}", DateHandlers.UnixToDateTime(rbf9000Sb.rid_ctime)).AppendLine();
+ sb.AppendFormat(Localization.Disk_is_owned_by_group_0_user_1, rbf9000Sb.rid_group, rbf9000Sb.rid_owner).
+ AppendLine();
- sb.AppendFormat("Volume's identification block was last written on {0}",
+ sb.AppendFormat(Localization.Volume_was_created_on_0, DateHandlers.UnixToDateTime(rbf9000Sb.rid_ctime)).
+ AppendLine();
+
+ sb.AppendFormat(Localization.Volume_identification_block_was_last_written_on_0,
DateHandlers.UnixToDateTime(rbf9000Sb.rid_mtime)).AppendLine();
- sb.AppendFormat("Volume name: {0}", StringHandlers.CToString(rbf9000Sb.rid_name, Encoding)).AppendLine();
+ sb.AppendFormat(Localization.Volume_name_0, StringHandlers.CToString(rbf9000Sb.rid_name, Encoding)).
+ AppendLine();
XmlFsType = new FileSystemType
{
- Type = "OS-9 Random Block File",
+ Type = FS_TYPE,
Bootable = rbf9000Sb.rid_bootfile > 0,
ClusterSize = rbf9000Sb.rid_blocksize,
Clusters = rbf9000Sb.rid_totblocks,
@@ -225,51 +232,58 @@ public sealed class RBF : IFilesystem
}
else
{
- sb.AppendFormat("Volume ID: {0:X4}", rbfSb.dd_dsk).AppendLine();
- sb.AppendFormat("{0} blocks in volume", LSNToUInt32(rbfSb.dd_tot)).AppendLine();
- sb.AppendFormat("{0} tracks", rbfSb.dd_tks).AppendLine();
- sb.AppendFormat("{0} sectors per track", rbfSb.dd_spt).AppendLine();
- sb.AppendFormat("{0} bytes per sector", 256 << rbfSb.dd_lsnsize).AppendLine();
+ sb.AppendFormat(Localization.Volume_ID_0_X4, rbfSb.dd_dsk).AppendLine();
+ sb.AppendFormat(Localization._0_blocks_in_volume, LSNToUInt32(rbfSb.dd_tot)).AppendLine();
+ sb.AppendFormat(Localization._0_tracks, rbfSb.dd_tks).AppendLine();
+ sb.AppendFormat(Localization._0_sectors_per_track, rbfSb.dd_spt).AppendLine();
+ sb.AppendFormat(Localization._0_bytes_per_sector, 256 << rbfSb.dd_lsnsize).AppendLine();
- sb.AppendFormat("{0} sectors per cluster ({1} bytes)", rbfSb.dd_bit,
+ sb.AppendFormat(Localization._0_sectors_per_cluster_1_bytes, rbfSb.dd_bit,
rbfSb.dd_bit * (256 << rbfSb.dd_lsnsize)).AppendLine();
// TODO: Convert to flags?
- sb.AppendLine((rbfSb.dd_fmt & 0x01) == 0x01 ? "Disk is double sided" : "Disk is single sided");
- sb.AppendLine((rbfSb.dd_fmt & 0x02) == 0x02 ? "Disk is double density" : "Disk is single density");
+ sb.AppendLine((rbfSb.dd_fmt & 0x01) == 0x01 ? Localization.Disk_is_double_sided
+ : Localization.Disk_is_single_sided);
+
+ sb.AppendLine((rbfSb.dd_fmt & 0x02) == 0x02 ? Localization.Disk_is_double_density
+ : Localization.Disk_is_single_density);
if((rbfSb.dd_fmt & 0x10) == 0x10)
- sb.AppendLine("Disk is 384 TPI");
+ sb.AppendLine(Localization.Disk_is_384_TPI);
else if((rbfSb.dd_fmt & 0x08) == 0x08)
- sb.AppendLine("Disk is 192 TPI");
+ sb.AppendLine(Localization.Disk_is_192_TPI);
else if((rbfSb.dd_fmt & 0x04) == 0x04)
- sb.AppendLine("Disk is 96 TPI or 135 TPI");
+ sb.AppendLine(Localization.Disk_is_96_TPI_or_135_TPI);
else
- sb.AppendLine("Disk is 48 TPI");
+ sb.AppendLine(Localization.Disk_is_48_TPI);
- sb.AppendFormat("Allocation bitmap descriptor starts at block {0}",
+ sb.AppendFormat(Localization.Allocation_bitmap_descriptor_starts_at_block_0,
rbfSb.dd_maplsn == 0 ? 1 : rbfSb.dd_maplsn).AppendLine();
- sb.AppendFormat("{0} bytes in allocation bitmap", rbfSb.dd_map).AppendLine();
+ sb.AppendFormat(Localization._0_bytes_in_allocation_bitmap, rbfSb.dd_map).AppendLine();
if(LSNToUInt32(rbfSb.dd_bt) > 0 &&
rbfSb.dd_bsz > 0)
- sb.AppendFormat("Boot file starts at block {0} and has {1} bytes", LSNToUInt32(rbfSb.dd_bt),
+ sb.AppendFormat(Localization.Boot_file_starts_at_block_0_and_has_1_bytes, LSNToUInt32(rbfSb.dd_bt),
rbfSb.dd_bsz).AppendLine();
- sb.AppendFormat("Root directory descriptor starts at block {0}", LSNToUInt32(rbfSb.dd_dir)).AppendLine();
+ sb.AppendFormat(Localization.Root_directory_descriptor_starts_at_block_0, LSNToUInt32(rbfSb.dd_dir)).
+ AppendLine();
- sb.AppendFormat("Disk is owned by user {0}", rbfSb.dd_own).AppendLine();
- sb.AppendFormat("Volume was created on {0}", DateHandlers.Os9ToDateTime(rbfSb.dd_dat)).AppendLine();
- sb.AppendFormat("Volume attributes: {0:X2}", rbfSb.dd_att).AppendLine();
- sb.AppendFormat("Volume name: {0}", StringHandlers.CToString(rbfSb.dd_nam, Encoding)).AppendLine();
+ sb.AppendFormat(Localization.Disk_is_owned_by_user_0, rbfSb.dd_own).AppendLine();
- sb.AppendFormat("Path descriptor options: {0}", StringHandlers.CToString(rbfSb.dd_opt, Encoding)).
+ sb.AppendFormat(Localization.Volume_was_created_on_0, DateHandlers.Os9ToDateTime(rbfSb.dd_dat)).
+ AppendLine();
+
+ sb.AppendFormat(Localization.Volume_attributes_0, rbfSb.dd_att).AppendLine();
+ sb.AppendFormat(Localization.Volume_name_0, StringHandlers.CToString(rbfSb.dd_nam, Encoding)).AppendLine();
+
+ sb.AppendFormat(Localization.Path_descriptor_options_0, StringHandlers.CToString(rbfSb.dd_opt, Encoding)).
AppendLine();
XmlFsType = new FileSystemType
{
- Type = "OS-9 Random Block File",
+ Type = FS_TYPE,
Bootable = LSNToUInt32(rbfSb.dd_bt) > 0 && rbfSb.dd_bsz > 0,
ClusterSize = (uint)(rbfSb.dd_bit * (256 << rbfSb.dd_lsnsize)),
Clusters = LSNToUInt32(rbfSb.dd_tot),
diff --git a/Aaru.Filesystems/RT11.cs b/Aaru.Filesystems/RT11.cs
index 0e9d4eee2..dad96dbe0 100644
--- a/Aaru.Filesystems/RT11.cs
+++ b/Aaru.Filesystems/RT11.cs
@@ -49,16 +49,17 @@ namespace Aaru.Filesystems;
/// Implements detection of the DEC RT-11 filesystem
public sealed class RT11 : IFilesystem
{
+ const string FS_TYPE = "rt11";
///
public FileSystemType XmlFsType { get; private set; }
///
public Encoding Encoding { get; private set; }
///
- public string Name => "RT-11 file system";
+ public string Name => Localization.RT11_Name;
///
public Guid Id => new("DB3E2F98-8F98-463C-8126-E937843DA024");
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
///
public bool Identify(IMediaImage imagePlugin, Partition partition)
@@ -110,21 +111,22 @@ public sealed class RT11 : IFilesystem
for(int i = 0; i < 512; i += 2)
check += BitConverter.ToUInt16(hbSector, i);
- sb.AppendFormat("Volume format is {0}", StringHandlers.SpacePaddedToString(homeblock.format, Encoding.ASCII)).
+ sb.AppendFormat(Localization.Volume_format_is_0,
+ StringHandlers.SpacePaddedToString(homeblock.format, Encoding.ASCII)).AppendLine();
+
+ sb.AppendFormat(Localization._0_sectors_per_cluster_1_bytes, homeblock.cluster, homeblock.cluster * 512).
AppendLine();
- sb.AppendFormat("{0} sectors per cluster ({1} bytes)", homeblock.cluster, homeblock.cluster * 512).AppendLine();
-
- sb.AppendFormat("First directory segment starts at block {0}", homeblock.rootBlock).AppendLine();
- sb.AppendFormat("Volume owner is \"{0}\"", Encoding.GetString(homeblock.ownername).TrimEnd()).AppendLine();
- sb.AppendFormat("Volume label: \"{0}\"", Encoding.GetString(homeblock.volname).TrimEnd()).AppendLine();
- sb.AppendFormat("Checksum: 0x{0:X4} (calculated 0x{1:X4})", homeblock.checksum, check).AppendLine();
+ sb.AppendFormat(Localization.First_directory_segment_starts_at_block_0, homeblock.rootBlock).AppendLine();
+ sb.AppendFormat(Localization.Volume_owner_is_0, Encoding.GetString(homeblock.ownername).TrimEnd()).AppendLine();
+ sb.AppendFormat(Localization.Volume_label_0, Encoding.GetString(homeblock.volname).TrimEnd()).AppendLine();
+ sb.AppendFormat(Localization.Checksum_0_calculated_1, homeblock.checksum, check).AppendLine();
imagePlugin.ReadSector(0, out byte[] bootBlock);
XmlFsType = new FileSystemType
{
- Type = "RT-11",
+ Type = FS_TYPE,
ClusterSize = (uint)(homeblock.cluster * 512),
Clusters = homeblock.cluster,
VolumeName = StringHandlers.SpacePaddedToString(homeblock.volname, Encoding),
diff --git a/Aaru.Filesystems/ReFS.cs b/Aaru.Filesystems/ReFS.cs
index caf4ea506..c5c4893dd 100644
--- a/Aaru.Filesystems/ReFS.cs
+++ b/Aaru.Filesystems/ReFS.cs
@@ -49,12 +49,14 @@ namespace Aaru.Filesystems;
public sealed class ReFS : IFilesystem
{
const uint FSRS = 0x53525346;
+
+ const string FS_TYPE = "refs";
readonly byte[] _signature =
{
0x52, 0x65, 0x46, 0x53, 0x00, 0x00, 0x00, 0x00
};
///
- public string Name => "Resilient File System plugin";
+ public string Name => Localization.ReFS_Name;
///
public Guid Id => new("37766C4E-EBF5-4113-A712-B758B756ABD6");
///
@@ -62,7 +64,7 @@ public sealed class ReFS : IFilesystem
///
public Encoding Encoding { get; private set; }
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
///
public bool Identify(IMediaImage imagePlugin, Partition partition)
@@ -147,20 +149,20 @@ public sealed class ReFS : IFilesystem
var sb = new StringBuilder();
- sb.AppendLine("Microsoft Resilient File System");
- sb.AppendFormat("Volume uses {0} bytes per sector", vhdr.bytesPerSector).AppendLine();
+ sb.AppendLine(Localization.Microsoft_Resilient_File_System);
+ sb.AppendFormat(Localization.Volume_uses_0_bytes_per_sector, vhdr.bytesPerSector).AppendLine();
- sb.AppendFormat("Volume uses {0} sectors per cluster ({1} bytes)", vhdr.sectorsPerCluster,
+ sb.AppendFormat(Localization.Volume_uses_0_sectors_per_cluster_1_bytes, vhdr.sectorsPerCluster,
vhdr.sectorsPerCluster * vhdr.bytesPerSector).AppendLine();
- sb.AppendFormat("Volume has {0} sectors ({1} bytes)", vhdr.sectors, vhdr.sectors * vhdr.bytesPerSector).
+ sb.AppendFormat(Localization.Volume_has_0_sectors_1_bytes, vhdr.sectors, vhdr.sectors * vhdr.bytesPerSector).
AppendLine();
information = sb.ToString();
XmlFsType = new FileSystemType
{
- Type = "Resilient File System",
+ Type = FS_TYPE,
ClusterSize = vhdr.bytesPerSector * vhdr.sectorsPerCluster,
Clusters = vhdr.sectors / vhdr.sectorsPerCluster
};
diff --git a/Aaru.Filesystems/Reiser.cs b/Aaru.Filesystems/Reiser.cs
index 18aad90a5..5a0da9334 100644
--- a/Aaru.Filesystems/Reiser.cs
+++ b/Aaru.Filesystems/Reiser.cs
@@ -49,6 +49,8 @@ public sealed class Reiser : IFilesystem
{
const uint REISER_SUPER_OFFSET = 0x10000;
+ const string FS_TYPE = "reiserfs";
+
readonly byte[] _magic35 =
{
0x52, 0x65, 0x49, 0x73, 0x45, 0x72, 0x46, 0x73, 0x00, 0x00
@@ -67,11 +69,11 @@ public sealed class Reiser : IFilesystem
///
public Encoding Encoding { get; private set; }
///
- public string Name => "Reiser Filesystem Plugin";
+ public string Name => Localization.Reiser_Name;
///
public Guid Id => new("1D8CD8B8-27E6-410F-9973-D16409225FBA");
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
///
public bool Identify(IMediaImage imagePlugin, Partition partition)
@@ -143,46 +145,41 @@ public sealed class Reiser : IFilesystem
var sb = new StringBuilder();
if(_magic35.SequenceEqual(reiserSb.magic))
- sb.AppendLine("Reiser 3.5 filesystem");
+ sb.AppendLine(Localization.Reiser_3_5_filesystem);
else if(_magic36.SequenceEqual(reiserSb.magic))
- sb.AppendLine("Reiser 3.6 filesystem");
+ sb.AppendLine(Localization.Reiser_3_6_filesystem);
else if(_magicJr.SequenceEqual(reiserSb.magic))
- sb.AppendLine("Reiser Jr. filesystem");
+ sb.AppendLine(Localization.Reiser_Jr_filesystem);
- sb.AppendFormat("Volume has {0} blocks with {1} blocks free", reiserSb.block_count, reiserSb.free_blocks).
- AppendLine();
+ sb.AppendFormat(Localization.Volume_has_0_blocks_with_1_blocks_free, reiserSb.block_count,
+ reiserSb.free_blocks).AppendLine();
- sb.AppendFormat("{0} bytes per block", reiserSb.blocksize).AppendLine();
- sb.AppendFormat("Root directory resides on block {0}", reiserSb.root_block).AppendLine();
+ sb.AppendFormat(Localization._0_bytes_per_block, reiserSb.blocksize).AppendLine();
+ sb.AppendFormat(Localization.Root_directory_resides_on_block_0, reiserSb.root_block).AppendLine();
if(reiserSb.umount_state == 2)
- sb.AppendLine("Volume has not been cleanly umounted");
+ sb.AppendLine(Localization.Volume_has_not_been_cleanly_umounted);
- sb.AppendFormat("Volume last checked on {0}", DateHandlers.UnixUnsignedToDateTime(reiserSb.last_check)).
- AppendLine();
+ sb.AppendFormat(Localization.Volume_last_checked_on_0,
+ DateHandlers.UnixUnsignedToDateTime(reiserSb.last_check)).AppendLine();
if(reiserSb.version >= 2)
{
- sb.AppendFormat("Volume UUID: {0}", reiserSb.uuid).AppendLine();
- sb.AppendFormat("Volume name: {0}", Encoding.GetString(reiserSb.label)).AppendLine();
+ sb.AppendFormat(Localization.Volume_UUID_0, reiserSb.uuid).AppendLine();
+ sb.AppendFormat(Localization.Volume_name_0, Encoding.GetString(reiserSb.label)).AppendLine();
}
information = sb.ToString();
- XmlFsType = new FileSystemType();
-
- if(_magic35.SequenceEqual(reiserSb.magic))
- XmlFsType.Type = "Reiser 3.5 filesystem";
- else if(_magic36.SequenceEqual(reiserSb.magic))
- XmlFsType.Type = "Reiser 3.6 filesystem";
- else if(_magicJr.SequenceEqual(reiserSb.magic))
- XmlFsType.Type = "Reiser Jr. filesystem";
-
- XmlFsType.ClusterSize = reiserSb.blocksize;
- XmlFsType.Clusters = reiserSb.block_count;
- XmlFsType.FreeClusters = reiserSb.free_blocks;
- XmlFsType.FreeClustersSpecified = true;
- XmlFsType.Dirty = reiserSb.umount_state == 2;
+ XmlFsType = new FileSystemType
+ {
+ Type = FS_TYPE,
+ ClusterSize = reiserSb.blocksize,
+ Clusters = reiserSb.block_count,
+ FreeClusters = reiserSb.free_blocks,
+ FreeClustersSpecified = true,
+ Dirty = reiserSb.umount_state == 2
+ };
if(reiserSb.version < 2)
return;
diff --git a/Aaru.Filesystems/Reiser4.cs b/Aaru.Filesystems/Reiser4.cs
index 1f58866e9..fa600c1a3 100644
--- a/Aaru.Filesystems/Reiser4.cs
+++ b/Aaru.Filesystems/Reiser4.cs
@@ -49,6 +49,8 @@ public sealed class Reiser4 : IFilesystem
{
const uint REISER4_SUPER_OFFSET = 0x10000;
+ const string FS_TYPE = "reiser4";
+
readonly byte[] _magic =
{
0x52, 0x65, 0x49, 0x73, 0x45, 0x72, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
@@ -59,11 +61,11 @@ public sealed class Reiser4 : IFilesystem
///
public Encoding Encoding { get; private set; }
///
- public string Name => "Reiser4 Filesystem Plugin";
+ public string Name => Localization.Reiser4_Name;
///
public Guid Id => new("301F2D00-E8D5-4F04-934E-81DFB21D15BA");
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
///
public bool Identify(IMediaImage imagePlugin, Partition partition)
@@ -131,17 +133,17 @@ public sealed class Reiser4 : IFilesystem
var sb = new StringBuilder();
- sb.AppendLine("Reiser 4 filesystem");
- sb.AppendFormat("{0} bytes per block", reiserSb.blocksize).AppendLine();
- sb.AppendFormat("Volume disk format: {0}", reiserSb.diskformat).AppendLine();
- sb.AppendFormat("Volume UUID: {0}", reiserSb.uuid).AppendLine();
- sb.AppendFormat("Volume name: {0}", StringHandlers.CToString(reiserSb.label, Encoding)).AppendLine();
+ sb.AppendLine(Localization.Reiser_4_filesystem);
+ sb.AppendFormat(Localization._0_bytes_per_block, reiserSb.blocksize).AppendLine();
+ sb.AppendFormat(Localization.Volume_disk_format_0, reiserSb.diskformat).AppendLine();
+ sb.AppendFormat(Localization.Volume_UUID_0, reiserSb.uuid).AppendLine();
+ sb.AppendFormat(Localization.Volume_name_0, StringHandlers.CToString(reiserSb.label, Encoding)).AppendLine();
information = sb.ToString();
XmlFsType = new FileSystemType
{
- Type = "Reiser 4 filesystem",
+ Type = FS_TYPE,
ClusterSize = reiserSb.blocksize,
Clusters = (partition.End - partition.Start) * imagePlugin.Info.SectorSize / reiserSb.blocksize,
VolumeName = StringHandlers.CToString(reiserSb.label, Encoding),
diff --git a/Aaru.Filesystems/SFS.cs b/Aaru.Filesystems/SFS.cs
index 28bf62304..b1130e1b0 100644
--- a/Aaru.Filesystems/SFS.cs
+++ b/Aaru.Filesystems/SFS.cs
@@ -51,16 +51,18 @@ public sealed class SFS : IFilesystem
/// Identifier for SFS v2
const uint SFS2_MAGIC = 0x53465302;
+ const string FS_TYPE = "sfs";
+
///
public FileSystemType XmlFsType { get; private set; }
///
public Encoding Encoding { get; private set; }
///
- public string Name => "SmartFileSystem";
+ public string Name => Localization.SFS_Name;
///
public Guid Id => new("26550C19-3671-4A2D-BC2F-F20CEB7F48DC");
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
///
public bool Identify(IMediaImage imagePlugin, Partition partition)
@@ -92,39 +94,40 @@ public sealed class SFS : IFilesystem
var sbInformation = new StringBuilder();
- sbInformation.AppendLine("SmartFileSystem");
+ sbInformation.AppendLine(Localization.SmartFileSystem);
- sbInformation.AppendFormat("Volume version {0}", rootBlock.version).AppendLine();
+ sbInformation.AppendFormat(Localization.Volume_version_0, rootBlock.version).AppendLine();
- sbInformation.AppendFormat("Volume starts on device byte {0} and ends on byte {1}", rootBlock.firstbyte,
+ sbInformation.AppendFormat(Localization.Volume_starts_on_device_byte_0_and_ends_on_byte_1, rootBlock.firstbyte,
rootBlock.lastbyte).AppendLine();
- sbInformation.
- AppendFormat("Volume has {0} blocks of {1} bytes each", rootBlock.totalblocks, rootBlock.blocksize).
- AppendLine();
+ sbInformation.AppendFormat(Localization.Volume_has_0_blocks_of_1_bytes_each, rootBlock.totalblocks,
+ rootBlock.blocksize).AppendLine();
- sbInformation.AppendFormat("Volume created on {0}",
+ sbInformation.AppendFormat(Localization.Volume_created_on_0,
DateHandlers.UnixUnsignedToDateTime(rootBlock.datecreated).AddYears(8)).AppendLine();
- sbInformation.AppendFormat("Bitmap starts in block {0}", rootBlock.bitmapbase).AppendLine();
+ sbInformation.AppendFormat(Localization.Bitmap_starts_in_block_0, rootBlock.bitmapbase).AppendLine();
- sbInformation.AppendFormat("Admin space container starts in block {0}", rootBlock.adminspacecontainer).
+ sbInformation.AppendFormat(Localization.Admin_space_container_starts_in_block_0, rootBlock.adminspacecontainer).
AppendLine();
- sbInformation.AppendFormat("Root object container starts in block {0}", rootBlock.rootobjectcontainer).
+ sbInformation.AppendFormat(Localization.Root_object_container_starts_in_block_0, rootBlock.rootobjectcontainer).
AppendLine();
- sbInformation.AppendFormat("Root node of the extent B-tree resides in block {0}", rootBlock.extentbnoderoot).
- AppendLine();
+ sbInformation.
+ AppendFormat(Localization.Root_node_of_the_extent_B_tree_resides_in_block_0, rootBlock.extentbnoderoot).
+ AppendLine();
- sbInformation.AppendFormat("Root node of the object B-tree resides in block {0}", rootBlock.objectnoderoot).
- AppendLine();
+ sbInformation.
+ AppendFormat(Localization.Root_node_of_the_object_B_tree_resides_in_block_0, rootBlock.objectnoderoot).
+ AppendLine();
if(rootBlock.bits.HasFlag(Flags.CaseSensitive))
- sbInformation.AppendLine("Volume is case sensitive");
+ sbInformation.AppendLine(Localization.Volume_is_case_sensitive);
if(rootBlock.bits.HasFlag(Flags.RecycledFolder))
- sbInformation.AppendLine("Volume moves deleted files to a recycled folder");
+ sbInformation.AppendLine(Localization.Volume_moves_deleted_files_to_a_recycled_folder);
information = sbInformation.ToString();
@@ -134,7 +137,7 @@ public sealed class SFS : IFilesystem
CreationDateSpecified = true,
Clusters = rootBlock.totalblocks,
ClusterSize = rootBlock.blocksize,
- Type = "SmartFileSystem"
+ Type = FS_TYPE
};
}
diff --git a/Aaru.Filesystems/SolarFS.cs b/Aaru.Filesystems/SolarFS.cs
index 13a505334..05aa4d6aa 100644
--- a/Aaru.Filesystems/SolarFS.cs
+++ b/Aaru.Filesystems/SolarFS.cs
@@ -47,16 +47,17 @@ namespace Aaru.Filesystems;
/// Implements detection of the Solar OS filesystem
public sealed class SolarFS : IFilesystem
{
+ const string FS_TYPE = "solarfs";
///
public FileSystemType XmlFsType { get; private set; }
///
public Encoding Encoding { get; private set; }
///
- public string Name => "Solar_OS filesystem";
+ public string Name => Localization.SolarFS_Name;
///
public Guid Id => new("EA3101C1-E777-4B4F-B5A3-8C57F50F6E65");
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
///
public bool Identify(IMediaImage imagePlugin, Partition partition)
@@ -144,35 +145,35 @@ public sealed class SolarFS : IFilesystem
AaruConsole.DebugWriteLine("SolarFS plugin", "BPB.vol_name: \"{0}\"", bpb.vol_name);
AaruConsole.DebugWriteLine("SolarFS plugin", "BPB.fs_type: \"{0}\"", bpb.fs_type);
- sb.AppendLine("Solar_OS filesystem");
- sb.AppendFormat("Media descriptor: 0x{0:X2}", bpb.media).AppendLine();
- sb.AppendFormat("{0} bytes per sector", bpb.bps).AppendLine();
+ sb.AppendLine(Localization.Solar_OS_filesystem);
+ sb.AppendFormat(Localization.Media_descriptor_0, bpb.media).AppendLine();
+ sb.AppendFormat(Localization._0_bytes_per_sector, bpb.bps).AppendLine();
if(imagePlugin.Info.SectorSize is 2336 or 2352 or 2448)
{
if(bpb.bps != imagePlugin.Info.SectorSize)
sb.
- AppendFormat("WARNING: Filesystem describes a {0} bytes/sector, while device describes a {1} bytes/sector",
+ AppendFormat(Localization.WARNING_Filesystem_describes_a_0_bytes_sector_while_device_describes_a_1_bytes_sector,
bpb.bps, 2048).AppendLine();
}
else if(bpb.bps != imagePlugin.Info.SectorSize)
sb.
- AppendFormat("WARNING: Filesystem describes a {0} bytes/sector, while device describes a {1} bytes/sector",
+ AppendFormat(Localization.WARNING_Filesystem_describes_a_0_bytes_sector_while_device_describes_a_1_bytes_sector,
bpb.bps, imagePlugin.Info.SectorSize).AppendLine();
- sb.AppendFormat("{0} sectors on volume ({1} bytes)", bpb.sectors, bpb.sectors * bpb.bps).AppendLine();
+ sb.AppendFormat(Localization._0_sectors_on_volume_1_bytes, bpb.sectors, bpb.sectors * bpb.bps).AppendLine();
if(bpb.sectors > imagePlugin.Info.Sectors)
- sb.AppendFormat("WARNING: Filesystem describes a {0} sectors volume, bigger than device ({1} sectors)",
+ sb.AppendFormat(Localization.WARNING_Filesystem_describes_a_0_sectors_volume_bigger_than_device_1_sectors,
bpb.sectors, imagePlugin.Info.Sectors);
- sb.AppendFormat("{0} heads", bpb.heads).AppendLine();
- sb.AppendFormat("{0} sectors per track", bpb.sptrk).AppendLine();
- sb.AppendFormat("Volume name: {0}", bpb.vol_name).AppendLine();
+ sb.AppendFormat(Localization._0_heads, bpb.heads).AppendLine();
+ sb.AppendFormat(Localization._0_sectors_per_track, bpb.sptrk).AppendLine();
+ sb.AppendFormat(Localization.Volume_name_0, bpb.vol_name).AppendLine();
XmlFsType = new FileSystemType
{
- Type = "SolarFS",
+ Type = FS_TYPE,
Clusters = bpb.sectors,
ClusterSize = bpb.bps,
VolumeName = bpb.vol_name
diff --git a/Aaru.Filesystems/Squash.cs b/Aaru.Filesystems/Squash.cs
index 6e2def22f..d61b062f7 100644
--- a/Aaru.Filesystems/Squash.cs
+++ b/Aaru.Filesystems/Squash.cs
@@ -50,16 +50,18 @@ public sealed class Squash : IFilesystem
const uint SQUASH_MAGIC = 0x73717368;
const uint SQUASH_CIGAM = 0x68737173;
+ const string FS_TYPE = "squashfs";
+
///
public FileSystemType XmlFsType { get; private set; }
///
public Encoding Encoding { get; private set; }
///
- public string Name => "Squash filesystem";
+ public string Name => Localization.Squash_Name;
///
public Guid Id => new("F8F6E46F-7A2A-48E3-9C0A-46AF4DC29E09");
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
///
public bool Identify(IMediaImage imagePlugin, Partition partition)
@@ -107,46 +109,48 @@ public sealed class Squash : IFilesystem
var sbInformation = new StringBuilder();
- sbInformation.AppendLine("Squash file system");
- sbInformation.AppendLine(littleEndian ? "Little-endian" : "Big-endian");
- sbInformation.AppendFormat("Volume version {0}.{1}", sqSb.s_major, sqSb.s_minor).AppendLine();
- sbInformation.AppendFormat("Volume has {0} bytes", sqSb.bytes_used).AppendLine();
- sbInformation.AppendFormat("Volume has {0} bytes per block", sqSb.block_size).AppendLine();
+ sbInformation.AppendLine(Localization.Squash_file_system);
+ sbInformation.AppendLine(littleEndian ? Localization.Little_endian : Localization.Big_endian);
+ sbInformation.AppendFormat(Localization.Volume_version_0_1, sqSb.s_major, sqSb.s_minor).AppendLine();
+ sbInformation.AppendFormat(Localization.Volume_has_0_bytes, sqSb.bytes_used).AppendLine();
+ sbInformation.AppendFormat(Localization.Volume_has_0_bytes_per_block, sqSb.block_size).AppendLine();
- sbInformation.AppendFormat("Volume created on {0}", DateHandlers.UnixUnsignedToDateTime(sqSb.mkfs_time)).
- AppendLine();
+ sbInformation.
+ AppendFormat(Localization.Volume_created_on_0, DateHandlers.UnixUnsignedToDateTime(sqSb.mkfs_time)).
+ AppendLine();
- sbInformation.AppendFormat("Volume has {0} inodes", sqSb.inodes).AppendLine();
+ sbInformation.AppendFormat(Localization.Volume_has_0_inodes, sqSb.inodes).AppendLine();
switch(sqSb.compression)
{
case (ushort)SquashCompression.Lz4:
- sbInformation.AppendLine("Volume is compressed using LZ4");
+ sbInformation.AppendLine(Localization.Volume_is_compressed_using_LZ4);
break;
case (ushort)SquashCompression.Lzo:
- sbInformation.AppendLine("Volume is compressed using LZO");
+ sbInformation.AppendLine(Localization.Volume_is_compressed_using_LZO);
break;
case (ushort)SquashCompression.Lzma:
- sbInformation.AppendLine("Volume is compressed using LZMA");
+ sbInformation.AppendLine(Localization.Volume_is_compressed_using_LZMA);
break;
case (ushort)SquashCompression.Xz:
- sbInformation.AppendLine("Volume is compressed using XZ");
+ sbInformation.AppendLine(Localization.Volume_is_compressed_using_XZ);
break;
case (ushort)SquashCompression.Zlib:
- sbInformation.AppendLine("Volume is compressed using GZIP");
+ sbInformation.AppendLine(Localization.Volume_is_compressed_using_GZIP);
break;
case (ushort)SquashCompression.Zstd:
- sbInformation.AppendLine("Volume is compressed using Zstandard");
+ sbInformation.AppendLine(Localization.Volume_is_compressed_using_Zstandard);
break;
default:
- sbInformation.AppendFormat("Volume is compressed using unknown algorithm {0}", sqSb.compression).
- AppendLine();
+ sbInformation.
+ AppendFormat(Localization.Volume_is_compressed_using_unknown_algorithm_0, sqSb.compression).
+ AppendLine();
break;
}
@@ -155,7 +159,7 @@ public sealed class Squash : IFilesystem
XmlFsType = new FileSystemType
{
- Type = "Squash file system",
+ Type = FS_TYPE,
CreationDate = DateHandlers.UnixUnsignedToDateTime(sqSb.mkfs_time),
CreationDateSpecified = true,
Clusters = (partition.End - partition.Start + 1) * imagePlugin.Info.SectorSize / sqSb.block_size,
diff --git a/Aaru.Filesystems/SysV.cs b/Aaru.Filesystems/SysV.cs
index 9f3ec3f89..2913cebbd 100644
--- a/Aaru.Filesystems/SysV.cs
+++ b/Aaru.Filesystems/SysV.cs
@@ -77,11 +77,11 @@ public sealed class SysVfs : IFilesystem
///
public Encoding Encoding { get; private set; }
///
- public string Name => "UNIX System V filesystem";
+ public string Name => Localization.SysVfs_Name;
///
public Guid Id => new("9B8D016A-8561-400E-A12A-A198283C211D");
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
///
public bool Identify(IMediaImage imagePlugin, Partition partition)
@@ -190,6 +190,12 @@ public sealed class SysVfs : IFilesystem
return false;
}
+ const string FS_TYPE_XENIX = "xenixfs";
+ const string FS_TYPE_SVR4 = "sysv_r4";
+ const string FS_TYPE_SVR2 = "sysv_r2";
+ const string FS_TYPE_COHERENT = "coherent";
+ const string FS_TYPE_UNIX7 = "unix7fs";
+
///
public void GetInformation(IMediaImage imagePlugin, Partition partition, out string information, Encoding encoding)
{
@@ -452,30 +458,30 @@ public sealed class SysVfs : IFilesystem
}
uint bs = 512;
- sb.AppendLine("XENIX filesystem");
- XmlFsType.Type = "XENIX fs";
+ sb.AppendLine(Localization.XENIX_filesystem);
+ XmlFsType.Type = FS_TYPE_XENIX;
switch(xnx_sb.s_type)
{
case 1:
- sb.AppendLine("512 bytes per block");
+ sb.AppendLine(Localization._512_bytes_per_block);
XmlFsType.ClusterSize = 512;
break;
case 2:
- sb.AppendLine("1024 bytes per block");
+ sb.AppendLine(Localization._1024_bytes_per_block);
bs = 1024;
XmlFsType.ClusterSize = 1024;
break;
case 3:
- sb.AppendLine("2048 bytes per block");
+ sb.AppendLine(Localization._2048_bytes_per_block);
bs = 2048;
XmlFsType.ClusterSize = 2048;
break;
default:
- sb.AppendFormat("Unknown s_type value: 0x{0:X8}", xnx_sb.s_type).AppendLine();
+ sb.AppendFormat(Localization.Unknown_s_type_value_0, xnx_sb.s_type).AppendLine();
break;
}
@@ -484,44 +490,49 @@ public sealed class SysVfs : IFilesystem
{
if(bs != 2048)
sb.
- AppendFormat("WARNING: Filesystem indicates {0} bytes/block while device indicates {1} bytes/sector",
+ AppendFormat(Localization.WARNING_Filesystem_indicates_0_bytes_block_while_device_indicates_1_bytes_sector,
bs, 2048).AppendLine();
}
else
{
if(bs != imagePlugin.Info.SectorSize)
sb.
- AppendFormat("WARNING: Filesystem indicates {0} bytes/block while device indicates {1} bytes/sector",
+ AppendFormat(Localization.WARNING_Filesystem_indicates_0_bytes_block_while_device_indicates_1_bytes_sector,
bs, imagePlugin.Info.SectorSize).AppendLine();
}
- sb.AppendFormat("{0} zones on volume ({1} bytes)", xnx_sb.s_fsize, xnx_sb.s_fsize * bs).AppendLine();
+ sb.AppendFormat(Localization._0_zones_on_volume_1_bytes, xnx_sb.s_fsize, xnx_sb.s_fsize * bs).AppendLine();
- sb.AppendFormat("{0} free zones on volume ({1} bytes)", xnx_sb.s_tfree, xnx_sb.s_tfree * bs).AppendLine();
-
- sb.AppendFormat("{0} free blocks on list ({1} bytes)", xnx_sb.s_nfree, xnx_sb.s_nfree * bs).AppendLine();
-
- sb.AppendFormat("{0} blocks per cylinder ({1} bytes)", xnx_sb.s_cylblks, xnx_sb.s_cylblks * bs).
+ sb.AppendFormat(Localization._0_free_zones_on_volume_1_bytes, xnx_sb.s_tfree, xnx_sb.s_tfree * bs).
AppendLine();
- sb.AppendFormat("{0} blocks per gap ({1} bytes)", xnx_sb.s_gapblks, xnx_sb.s_gapblks * bs).AppendLine();
- sb.AppendFormat("First data zone: {0}", xnx_sb.s_isize).AppendLine();
- sb.AppendFormat("{0} free inodes on volume", xnx_sb.s_tinode).AppendLine();
- sb.AppendFormat("{0} free inodes on list", xnx_sb.s_ninode).AppendLine();
+ sb.AppendFormat(Localization._0_free_blocks_on_list_1_bytes, xnx_sb.s_nfree, xnx_sb.s_nfree * bs).
+ AppendLine();
+
+ sb.AppendFormat(Localization._0_blocks_per_cylinder_1_bytes, xnx_sb.s_cylblks, xnx_sb.s_cylblks * bs).
+ AppendLine();
+
+ sb.AppendFormat(Localization._0_blocks_per_gap_1_bytes, xnx_sb.s_gapblks, xnx_sb.s_gapblks * bs).
+ AppendLine();
+
+ sb.AppendFormat(Localization.First_data_zone_0, xnx_sb.s_isize).AppendLine();
+ sb.AppendFormat(Localization._0_free_inodes_on_volume, xnx_sb.s_tinode).AppendLine();
+ sb.AppendFormat(Localization._0_free_inodes_on_list, xnx_sb.s_ninode).AppendLine();
if(xnx_sb.s_flock > 0)
- sb.AppendLine("Free block list is locked");
+ sb.AppendLine(Localization.Free_block_list_is_locked);
if(xnx_sb.s_ilock > 0)
- sb.AppendLine("inode cache is locked");
+ sb.AppendLine(Localization.inode_cache_is_locked);
if(xnx_sb.s_fmod > 0)
- sb.AppendLine("Superblock is being modified");
+ sb.AppendLine(Localization.Superblock_is_being_modified);
if(xnx_sb.s_ronly > 0)
- sb.AppendLine("Volume is mounted read-only");
+ sb.AppendLine(Localization.Volume_is_mounted_read_only);
- sb.AppendFormat("Superblock last updated on {0}", DateHandlers.UnixToDateTime(xnx_sb.s_time)).AppendLine();
+ sb.AppendFormat(Localization.Superblock_last_updated_on_0, DateHandlers.UnixToDateTime(xnx_sb.s_time)).
+ AppendLine();
if(xnx_sb.s_time != 0)
{
@@ -529,15 +540,15 @@ public sealed class SysVfs : IFilesystem
XmlFsType.ModificationDateSpecified = true;
}
- sb.AppendFormat("Volume name: {0}", xnx_sb.s_fname).AppendLine();
+ sb.AppendFormat(Localization.Volume_name_0, xnx_sb.s_fname).AppendLine();
XmlFsType.VolumeName = xnx_sb.s_fname;
- sb.AppendFormat("Pack name: {0}", xnx_sb.s_fpack).AppendLine();
+ sb.AppendFormat(Localization.Pack_name_0, xnx_sb.s_fpack).AppendLine();
if(xnx_sb.s_clean == 0x46)
- sb.AppendLine("Volume is clean");
+ sb.AppendLine(Localization.Volume_is_clean);
else
{
- sb.AppendLine("Volume is dirty");
+ sb.AppendLine(Localization.Volume_is_dirty);
XmlFsType.Dirty = true;
}
}
@@ -578,7 +589,7 @@ public sealed class SysVfs : IFilesystem
break;
default:
- sb.AppendFormat("Unknown s_type value: 0x{0:X8}", sysv_sb.s_type).AppendLine();
+ sb.AppendFormat(Localization.Unknown_s_type_value_0, sysv_sb.s_type).AppendLine();
break;
}
@@ -613,8 +624,8 @@ public sealed class SysVfs : IFilesystem
sysv_sb.s_fname = StringHandlers.CToString(sysv_strings, Encoding);
Array.Copy(sb_sector, 0x1BC + offset, sysv_strings, 0, 6);
sysv_sb.s_fpack = StringHandlers.CToString(sysv_strings, Encoding);
- sb.AppendLine("System V Release 4 filesystem");
- XmlFsType.Type = "SVR4 fs";
+ sb.AppendLine(Localization.System_V_Release_4_filesystem);
+ XmlFsType.Type = FS_TYPE_SVR4;
}
else
{
@@ -639,8 +650,8 @@ public sealed class SysVfs : IFilesystem
sysv_sb.s_fname = StringHandlers.CToString(sysv_strings, Encoding);
Array.Copy(sb_sector, 0x1B6 + offset, sysv_strings, 0, 6);
sysv_sb.s_fpack = StringHandlers.CToString(sysv_strings, Encoding);
- sb.AppendLine("System V Release 2 filesystem");
- XmlFsType.Type = "SVR2 fs";
+ sb.AppendLine(Localization.System_V_Release_2_filesystem);
+ XmlFsType.Type = FS_TYPE_SVR2;
}
if(bigEndian)
@@ -660,38 +671,43 @@ public sealed class SysVfs : IFilesystem
sysv_sb.s_tinode = Swapping.Swap(sysv_sb.s_tinode);
}
- sb.AppendFormat("{0} bytes per block", bs).AppendLine();
+ sb.AppendFormat(Localization._0_bytes_per_block, bs).AppendLine();
XmlFsType.Clusters = sysv_sb.s_fsize;
- sb.AppendFormat("{0} zones on volume ({1} bytes)", sysv_sb.s_fsize, sysv_sb.s_fsize * bs).AppendLine();
- sb.AppendFormat("{0} free zones on volume ({1} bytes)", sysv_sb.s_tfree, sysv_sb.s_tfree * bs).AppendLine();
-
- sb.AppendFormat("{0} free blocks on list ({1} bytes)", sysv_sb.s_nfree, sysv_sb.s_nfree * bs).AppendLine();
-
- sb.AppendFormat("{0} blocks per cylinder ({1} bytes)", sysv_sb.s_cylblks, sysv_sb.s_cylblks * bs).
+ sb.AppendFormat(Localization._0_zones_on_volume_1_bytes, sysv_sb.s_fsize, sysv_sb.s_fsize * bs).
AppendLine();
- sb.AppendFormat("{0} blocks per gap ({1} bytes)", sysv_sb.s_gapblks, sysv_sb.s_gapblks * bs).AppendLine();
+ sb.AppendFormat(Localization._0_free_zones_on_volume_1_bytes, sysv_sb.s_tfree, sysv_sb.s_tfree * bs).
+ AppendLine();
- sb.AppendFormat("First data zone: {0}", sysv_sb.s_isize).AppendLine();
- sb.AppendFormat("{0} free inodes on volume", sysv_sb.s_tinode).AppendLine();
- sb.AppendFormat("{0} free inodes on list", sysv_sb.s_ninode).AppendLine();
+ sb.AppendFormat(Localization._0_free_blocks_on_list_1_bytes, sysv_sb.s_nfree, sysv_sb.s_nfree * bs).
+ AppendLine();
+
+ sb.AppendFormat(Localization._0_blocks_per_cylinder_1_bytes, sysv_sb.s_cylblks, sysv_sb.s_cylblks * bs).
+ AppendLine();
+
+ sb.AppendFormat(Localization._0_blocks_per_gap_1_bytes, sysv_sb.s_gapblks, sysv_sb.s_gapblks * bs).
+ AppendLine();
+
+ sb.AppendFormat(Localization.First_data_zone_0, sysv_sb.s_isize).AppendLine();
+ sb.AppendFormat(Localization._0_free_inodes_on_volume, sysv_sb.s_tinode).AppendLine();
+ sb.AppendFormat(Localization._0_free_inodes_on_list, sysv_sb.s_ninode).AppendLine();
if(sysv_sb.s_flock > 0)
- sb.AppendLine("Free block list is locked");
+ sb.AppendLine(Localization.Free_block_list_is_locked);
if(sysv_sb.s_ilock > 0)
- sb.AppendLine("inode cache is locked");
+ sb.AppendLine(Localization.inode_cache_is_locked);
if(sysv_sb.s_fmod > 0)
- sb.AppendLine("Superblock is being modified");
+ sb.AppendLine(Localization.Superblock_is_being_modified);
if(sysv_sb.s_ronly > 0)
- sb.AppendLine("Volume is mounted read-only");
+ sb.AppendLine(Localization.Volume_is_mounted_read_only);
- sb.AppendFormat("Superblock last updated on {0}", DateHandlers.UnixUnsignedToDateTime(sysv_sb.s_time)).
- AppendLine();
+ sb.AppendFormat(Localization.Superblock_last_updated_on_0,
+ DateHandlers.UnixUnsignedToDateTime(sysv_sb.s_time)).AppendLine();
if(sysv_sb.s_time != 0)
{
@@ -699,15 +715,15 @@ public sealed class SysVfs : IFilesystem
XmlFsType.ModificationDateSpecified = true;
}
- sb.AppendFormat("Volume name: {0}", sysv_sb.s_fname).AppendLine();
+ sb.AppendFormat(Localization.Volume_name_0, sysv_sb.s_fname).AppendLine();
XmlFsType.VolumeName = sysv_sb.s_fname;
- sb.AppendFormat("Pack name: {0}", sysv_sb.s_fpack).AppendLine();
+ sb.AppendFormat(Localization.Pack_name_0, sysv_sb.s_fpack).AppendLine();
if(sysv_sb.s_state == 0x7C269D38 - sysv_sb.s_time)
- sb.AppendLine("Volume is clean");
+ sb.AppendLine(Localization.Volume_is_clean);
else
{
- sb.AppendLine("Volume is dirty");
+ sb.AppendLine(Localization.Volume_is_dirty);
XmlFsType.Dirty = true;
}
}
@@ -740,40 +756,43 @@ public sealed class SysVfs : IFilesystem
Array.Copy(sb_sector, 0x1EA, coh_strings, 0, 6);
coh_sb.s_fpack = StringHandlers.CToString(coh_strings, Encoding);
- XmlFsType.Type = "Coherent fs";
+ XmlFsType.Type = FS_TYPE_COHERENT;
XmlFsType.ClusterSize = 512;
XmlFsType.Clusters = coh_sb.s_fsize;
- sb.AppendLine("Coherent UNIX filesystem");
+ sb.AppendLine(Localization.Coherent_UNIX_filesystem);
if(imagePlugin.Info.SectorSize != 512)
- sb.AppendFormat("WARNING: Filesystem indicates {0} bytes/block while device indicates {1} bytes/sector",
- 512, 2048).AppendLine();
+ sb.
+ AppendFormat(Localization.WARNING_Filesystem_indicates_0_bytes_block_while_device_indicates_1_bytes_sector,
+ 512, 2048).AppendLine();
- sb.AppendFormat("{0} zones on volume ({1} bytes)", coh_sb.s_fsize, coh_sb.s_fsize * 512).AppendLine();
+ sb.AppendFormat(Localization._0_zones_on_volume_1_bytes, coh_sb.s_fsize, coh_sb.s_fsize * 512).AppendLine();
- sb.AppendFormat("{0} free zones on volume ({1} bytes)", coh_sb.s_tfree, coh_sb.s_tfree * 512).AppendLine();
+ sb.AppendFormat(Localization._0_free_zones_on_volume_1_bytes, coh_sb.s_tfree, coh_sb.s_tfree * 512).
+ AppendLine();
- sb.AppendFormat("{0} free blocks on list ({1} bytes)", coh_sb.s_nfree, coh_sb.s_nfree * 512).AppendLine();
+ sb.AppendFormat(Localization._0_free_blocks_on_list_1_bytes, coh_sb.s_nfree, coh_sb.s_nfree * 512).
+ AppendLine();
- sb.AppendFormat("First data zone: {0}", coh_sb.s_isize).AppendLine();
- sb.AppendFormat("{0} free inodes on volume", coh_sb.s_tinode).AppendLine();
- sb.AppendFormat("{0} free inodes on list", coh_sb.s_ninode).AppendLine();
+ sb.AppendFormat(Localization.First_data_zone_0, coh_sb.s_isize).AppendLine();
+ sb.AppendFormat(Localization._0_free_inodes_on_volume, coh_sb.s_tinode).AppendLine();
+ sb.AppendFormat(Localization._0_free_inodes_on_list, coh_sb.s_ninode).AppendLine();
if(coh_sb.s_flock > 0)
- sb.AppendLine("Free block list is locked");
+ sb.AppendLine(Localization.Free_block_list_is_locked);
if(coh_sb.s_ilock > 0)
- sb.AppendLine("inode cache is locked");
+ sb.AppendLine(Localization.inode_cache_is_locked);
if(coh_sb.s_fmod > 0)
- sb.AppendLine("Superblock is being modified");
+ sb.AppendLine(Localization.Superblock_is_being_modified);
if(coh_sb.s_ronly > 0)
- sb.AppendLine("Volume is mounted read-only");
+ sb.AppendLine(Localization.Volume_is_mounted_read_only);
- sb.AppendFormat("Superblock last updated on {0}", DateHandlers.UnixUnsignedToDateTime(coh_sb.s_time)).
- AppendLine();
+ sb.AppendFormat(Localization.Superblock_last_updated_on_0,
+ DateHandlers.UnixUnsignedToDateTime(coh_sb.s_time)).AppendLine();
if(coh_sb.s_time != 0)
{
@@ -781,9 +800,9 @@ public sealed class SysVfs : IFilesystem
XmlFsType.ModificationDateSpecified = true;
}
- sb.AppendFormat("Volume name: {0}", coh_sb.s_fname).AppendLine();
+ sb.AppendFormat(Localization.Volume_name_0, coh_sb.s_fname).AppendLine();
XmlFsType.VolumeName = coh_sb.s_fname;
- sb.AppendFormat("Pack name: {0}", coh_sb.s_fpack).AppendLine();
+ sb.AppendFormat(Localization.Pack_name_0, coh_sb.s_fpack).AppendLine();
}
if(sys7th)
@@ -814,38 +833,42 @@ public sealed class SysVfs : IFilesystem
Array.Copy(sb_sector, 0x1B2, sys7_strings, 0, 6);
v7_sb.s_fpack = StringHandlers.CToString(sys7_strings, Encoding);
- XmlFsType.Type = "UNIX 7th Edition fs";
+ XmlFsType.Type = FS_TYPE_UNIX7;
XmlFsType.ClusterSize = 512;
XmlFsType.Clusters = v7_sb.s_fsize;
- sb.AppendLine("UNIX 7th Edition filesystem");
+ sb.AppendLine(Localization.UNIX_7th_Edition_filesystem);
if(imagePlugin.Info.SectorSize != 512)
- sb.AppendFormat("WARNING: Filesystem indicates {0} bytes/block while device indicates {1} bytes/sector",
- 512, 2048).AppendLine();
+ sb.
+ AppendFormat(Localization.WARNING_Filesystem_indicates_0_bytes_block_while_device_indicates_1_bytes_sector,
+ 512, 2048).AppendLine();
- sb.AppendFormat("{0} zones on volume ({1} bytes)", v7_sb.s_fsize, v7_sb.s_fsize * 512).AppendLine();
+ sb.AppendFormat(Localization._0_zones_on_volume_1_bytes, v7_sb.s_fsize, v7_sb.s_fsize * 512).AppendLine();
- sb.AppendFormat("{0} free zones on volume ({1} bytes)", v7_sb.s_tfree, v7_sb.s_tfree * 512).AppendLine();
+ sb.AppendFormat(Localization._0_free_zones_on_volume_1_bytes, v7_sb.s_tfree, v7_sb.s_tfree * 512).
+ AppendLine();
- sb.AppendFormat("{0} free blocks on list ({1} bytes)", v7_sb.s_nfree, v7_sb.s_nfree * 512).AppendLine();
- sb.AppendFormat("First data zone: {0}", v7_sb.s_isize).AppendLine();
- sb.AppendFormat("{0} free inodes on volume", v7_sb.s_tinode).AppendLine();
- sb.AppendFormat("{0} free inodes on list", v7_sb.s_ninode).AppendLine();
+ sb.AppendFormat(Localization._0_free_blocks_on_list_1_bytes, v7_sb.s_nfree, v7_sb.s_nfree * 512).
+ AppendLine();
+
+ sb.AppendFormat(Localization.First_data_zone_0, v7_sb.s_isize).AppendLine();
+ sb.AppendFormat(Localization._0_free_inodes_on_volume, v7_sb.s_tinode).AppendLine();
+ sb.AppendFormat(Localization._0_free_inodes_on_list, v7_sb.s_ninode).AppendLine();
if(v7_sb.s_flock > 0)
- sb.AppendLine("Free block list is locked");
+ sb.AppendLine(Localization.Free_block_list_is_locked);
if(v7_sb.s_ilock > 0)
- sb.AppendLine("inode cache is locked");
+ sb.AppendLine(Localization.inode_cache_is_locked);
if(v7_sb.s_fmod > 0)
- sb.AppendLine("Superblock is being modified");
+ sb.AppendLine(Localization.Superblock_is_being_modified);
if(v7_sb.s_ronly > 0)
- sb.AppendLine("Volume is mounted read-only");
+ sb.AppendLine(Localization.Volume_is_mounted_read_only);
- sb.AppendFormat("Superblock last updated on {0}", DateHandlers.UnixUnsignedToDateTime(v7_sb.s_time)).
- AppendLine();
+ sb.AppendFormat(Localization.Superblock_last_updated_on_0,
+ DateHandlers.UnixUnsignedToDateTime(v7_sb.s_time)).AppendLine();
if(v7_sb.s_time != 0)
{
@@ -853,9 +876,9 @@ public sealed class SysVfs : IFilesystem
XmlFsType.ModificationDateSpecified = true;
}
- sb.AppendFormat("Volume name: {0}", v7_sb.s_fname).AppendLine();
+ sb.AppendFormat(Localization.Volume_name_0, v7_sb.s_fname).AppendLine();
XmlFsType.VolumeName = v7_sb.s_fname;
- sb.AppendFormat("Pack name: {0}", v7_sb.s_fpack).AppendLine();
+ sb.AppendFormat(Localization.Pack_name_0, v7_sb.s_fpack).AppendLine();
}
information = sb.ToString();
diff --git a/Aaru.Filesystems/UCSDPascal/Consts.cs b/Aaru.Filesystems/UCSDPascal/Consts.cs
index c497573e2..3de7490c2 100644
--- a/Aaru.Filesystems/UCSDPascal/Consts.cs
+++ b/Aaru.Filesystems/UCSDPascal/Consts.cs
@@ -59,4 +59,6 @@ public sealed partial class PascalPlugin
/// Security, not used
Secure
}
+
+ const string FS_TYPE = "ucsd";
}
\ No newline at end of file
diff --git a/Aaru.Filesystems/UCSDPascal/Info.cs b/Aaru.Filesystems/UCSDPascal/Info.cs
index dc0962ec4..918665d0a 100644
--- a/Aaru.Filesystems/UCSDPascal/Info.cs
+++ b/Aaru.Filesystems/UCSDPascal/Info.cs
@@ -184,17 +184,19 @@ public sealed partial class PascalPlugin
if(volEntry.Files < 0)
return;
- sbInformation.AppendFormat("Volume record spans from block {0} to block {1}", volEntry.FirstBlock,
+ sbInformation.AppendFormat(Localization.Volume_record_spans_from_block_0_to_block_1, volEntry.FirstBlock,
volEntry.LastBlock).AppendLine();
- sbInformation.AppendFormat("Volume name: {0}", StringHandlers.PascalToString(volEntry.VolumeName, Encoding)).
- AppendLine();
+ sbInformation.
+ AppendFormat(Localization.Volume_name_0, StringHandlers.PascalToString(volEntry.VolumeName, Encoding)).
+ AppendLine();
- sbInformation.AppendFormat("Volume has {0} blocks", volEntry.Blocks).AppendLine();
- sbInformation.AppendFormat("Volume has {0} files", volEntry.Files).AppendLine();
+ sbInformation.AppendFormat(Localization.Volume_has_0_blocks, volEntry.Blocks).AppendLine();
+ sbInformation.AppendFormat(Localization.Volume_has_0_files, volEntry.Files).AppendLine();
- sbInformation.AppendFormat("Volume last booted at {0}", DateHandlers.UcsdPascalToDateTime(volEntry.LastBoot)).
- AppendLine();
+ sbInformation.
+ AppendFormat(Localization.Volume_last_booted_at_0, DateHandlers.UcsdPascalToDateTime(volEntry.LastBoot)).
+ AppendLine();
information = sbInformation.ToString();
@@ -207,7 +209,7 @@ public sealed partial class PascalPlugin
ClusterSize = imagePlugin.Info.SectorSize,
Files = (ulong)volEntry.Files,
FilesSpecified = true,
- Type = "UCSD Pascal",
+ Type = FS_TYPE,
VolumeName = StringHandlers.PascalToString(volEntry.VolumeName, Encoding)
};
}
diff --git a/Aaru.Filesystems/UCSDPascal/Super.cs b/Aaru.Filesystems/UCSDPascal/Super.cs
index a4cd8eab6..3275aea54 100644
--- a/Aaru.Filesystems/UCSDPascal/Super.cs
+++ b/Aaru.Filesystems/UCSDPascal/Super.cs
@@ -140,7 +140,7 @@ public sealed partial class PascalPlugin
ClusterSize = _device.Info.SectorSize,
Files = (ulong)_mountedVolEntry.Files,
FilesSpecified = true,
- Type = "UCSD Pascal",
+ Type = FS_TYPE,
VolumeName = StringHandlers.PascalToString(_mountedVolEntry.VolumeName, Encoding)
};
@@ -168,7 +168,7 @@ public sealed partial class PascalPlugin
Files = (ulong)_mountedVolEntry.Files,
FreeBlocks = 0,
PluginId = Id,
- Type = "UCSD Pascal"
+ Type = FS_TYPE
};
stat.FreeBlocks = (ulong)(_mountedVolEntry.Blocks - (_mountedVolEntry.LastBlock - _mountedVolEntry.FirstBlock));
diff --git a/Aaru.Filesystems/UCSDPascal/UCSDPascal.cs b/Aaru.Filesystems/UCSDPascal/UCSDPascal.cs
index 49a833365..a9881d59e 100644
--- a/Aaru.Filesystems/UCSDPascal/UCSDPascal.cs
+++ b/Aaru.Filesystems/UCSDPascal/UCSDPascal.cs
@@ -57,13 +57,13 @@ public sealed partial class PascalPlugin : IReadOnlyFilesystem
///
public FileSystemType XmlFsType { get; private set; }
///
- public string Name => "U.C.S.D. Pascal filesystem";
+ public string Name => Localization.PascalPlugin_Name;
///
public Guid Id => new("B0AC2CB5-72AA-473A-9200-270B5A2C2D53");
///
public Encoding Encoding { get; private set; }
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
///
public ErrorNumber ListXAttr(string path, out List xattrs)
diff --git a/Aaru.Filesystems/UDF.cs b/Aaru.Filesystems/UDF.cs
index f0782cb90..896d63c74 100644
--- a/Aaru.Filesystems/UDF.cs
+++ b/Aaru.Filesystems/UDF.cs
@@ -62,11 +62,11 @@ public sealed class UDF : IFilesystem
///
public Encoding Encoding { get; private set; }
///
- public string Name => "Universal Disk Format";
+ public string Name => Localization.UDF_Name;
///
public Guid Id => new("83976FEC-A91B-464B-9293-56C719461BAB");
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
///
public bool Identify(IMediaImage imagePlugin, Partition partition)
@@ -228,7 +228,7 @@ public sealed class UDF : IFilesystem
var sbInformation = new StringBuilder();
- sbInformation.AppendLine("Universal Disk Format");
+ sbInformation.AppendLine(Localization.Universal_Disk_Format);
var anchor = new AnchorVolumeDescriptorPointer();
@@ -349,48 +349,49 @@ public sealed class UDF : IFilesystem
else
lvid = new LogicalVolumeIntegrityDescriptor();
- sbInformation.AppendFormat("Volume is number {0} of {1}", pvd.volumeSequenceNumber,
+ sbInformation.AppendFormat(Localization.Volume_is_number_0_of_1, pvd.volumeSequenceNumber,
pvd.maximumVolumeSequenceNumber).AppendLine();
- sbInformation.AppendFormat("Volume set identifier: {0}",
+ sbInformation.AppendFormat(Localization.Volume_set_identifier_0,
StringHandlers.DecompressUnicode(pvd.volumeSetIdentifier)).AppendLine();
- sbInformation.AppendFormat("Volume name: {0}", StringHandlers.DecompressUnicode(lvd.logicalVolumeIdentifier)).
+ sbInformation.
+ AppendFormat(Localization.Volume_name_0, StringHandlers.DecompressUnicode(lvd.logicalVolumeIdentifier)).
+ AppendLine();
+
+ sbInformation.AppendFormat(Localization.Volume_uses_0_bytes_per_block, lvd.logicalBlockSize).AppendLine();
+
+ sbInformation.AppendFormat(Localization.Volume_was_last_written_in_0, EcmaToDateTime(lvid.recordingDateTime)).
AppendLine();
- sbInformation.AppendFormat("Volume uses {0} bytes per block", lvd.logicalBlockSize).AppendLine();
+ sbInformation.AppendFormat(Localization.Volume_contains_0_partitions, lvid.numberOfPartitions).AppendLine();
- sbInformation.AppendFormat("Volume was last written in {0}", EcmaToDateTime(lvid.recordingDateTime)).
- AppendLine();
+ sbInformation.
+ AppendFormat(Localization.Volume_contains_0_files_and_1_directories, lvidiu.files, lvidiu.directories).
+ AppendLine();
- sbInformation.AppendFormat("Volume contains {0} partitions", lvid.numberOfPartitions).AppendLine();
-
- sbInformation.AppendFormat("Volume contains {0} files and {1} directories", lvidiu.files, lvidiu.directories).
- AppendLine();
-
- sbInformation.AppendFormat("Volume conforms to {0}",
+ sbInformation.AppendFormat(Localization.Volume_conforms_to_0,
Encoding.GetString(lvd.domainIdentifier.identifier).TrimEnd('\u0000')).AppendLine();
- sbInformation.AppendFormat("Volume was last written by: {0}",
+ sbInformation.AppendFormat(Localization.Volume_was_last_written_by_0,
Encoding.GetString(pvd.implementationIdentifier.identifier).TrimEnd('\u0000')).
AppendLine();
- sbInformation.AppendFormat("Volume requires UDF version {0}.{1:X2} to be read",
+ sbInformation.AppendFormat(Localization.Volume_requires_UDF_version_0_1_to_be_read,
Convert.ToInt32($"{(lvidiu.minimumReadUDF & 0xFF00) >> 8}", 10),
Convert.ToInt32($"{lvidiu.minimumReadUDF & 0xFF}", 10)).AppendLine();
- sbInformation.AppendFormat("Volume requires UDF version {0}.{1:X2} to be written to",
+ sbInformation.AppendFormat(Localization.Volume_requires_UDF_version_0_1_to_be_written_to,
Convert.ToInt32($"{(lvidiu.minimumWriteUDF & 0xFF00) >> 8}", 10),
Convert.ToInt32($"{lvidiu.minimumWriteUDF & 0xFF}", 10)).AppendLine();
- sbInformation.AppendFormat("Volume cannot be written by any UDF version higher than {0}.{1:X2}",
+ sbInformation.AppendFormat(Localization.Volume_cannot_be_written_by_any_UDF_version_higher_than_0_1,
Convert.ToInt32($"{(lvidiu.maximumWriteUDF & 0xFF00) >> 8}", 10),
Convert.ToInt32($"{lvidiu.maximumWriteUDF & 0xFF}", 10)).AppendLine();
XmlFsType = new FileSystemType
{
- Type = $"UDF v{Convert.ToInt32($"{(lvidiu.maximumWriteUDF & 0xFF00) >> 8}", 10)}.{
- Convert.ToInt32($"{lvidiu.maximumWriteUDF & 0xFF}", 10):X2}",
+ Type = FS_TYPE,
ApplicationIdentifier = Encoding.GetString(pvd.implementationIdentifier.identifier).TrimEnd('\u0000'),
ClusterSize = lvd.logicalBlockSize,
ModificationDate = EcmaToDateTime(lvid.recordingDateTime),
@@ -409,6 +410,8 @@ public sealed class UDF : IFilesystem
information = sbInformation.ToString();
}
+ const string FS_TYPE = "udf";
+
static DateTime EcmaToDateTime(Timestamp timestamp) => DateHandlers.EcmaToDateTime(timestamp.typeAndZone,
timestamp.year, timestamp.month, timestamp.day, timestamp.hour, timestamp.minute, timestamp.second,
timestamp.centiseconds, timestamp.hundredsMicroseconds, timestamp.microseconds);
diff --git a/Aaru.Filesystems/UNICOS.cs b/Aaru.Filesystems/UNICOS.cs
index c1217ac86..b85dd24f1 100644
--- a/Aaru.Filesystems/UNICOS.cs
+++ b/Aaru.Filesystems/UNICOS.cs
@@ -62,16 +62,18 @@ public sealed class UNICOS : IFilesystem
const ulong UNICOS_MAGIC = 0x6e6331667331636e;
const ulong UNICOS_SECURE = 0xcd076d1771d670cd;
+ const string FS_TYPE = "unicos";
+
///
public FileSystemType XmlFsType { get; private set; }
///
public Encoding Encoding { get; private set; }
///
- public string Name => "UNICOS Filesystem Plugin";
+ public string Name => Localization.UNICOS_Name;
///
public Guid Id => new("61712F04-066C-44D5-A2A0-1E44C66B33F0");
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
///
public bool Identify(IMediaImage imagePlugin, Partition partition)
@@ -97,7 +99,7 @@ public sealed class UNICOS : IFilesystem
Superblock unicosSb = Marshal.ByteArrayToStructureBigEndian(sector);
- AaruConsole.DebugWriteLine("UNICOS plugin", "magic = 0x{0:X16} (expected 0x{1:X16})", unicosSb.s_magic,
+ AaruConsole.DebugWriteLine("UNICOS plugin", Localization.magic_equals_0_expected_1, unicosSb.s_magic,
UNICOS_MAGIC);
return unicosSb.s_magic == UNICOS_MAGIC;
@@ -132,29 +134,31 @@ public sealed class UNICOS : IFilesystem
var sb = new StringBuilder();
- sb.AppendLine("UNICOS filesystem");
+ sb.AppendLine(Localization.UNICOS_filesystem);
if(unicosSb.s_secure == UNICOS_SECURE)
- sb.AppendLine("Volume is secure");
+ sb.AppendLine(Localization.Volume_is_secure);
- sb.AppendFormat("Volume contains {0} partitions", unicosSb.s_npart).AppendLine();
- sb.AppendFormat("{0} bytes per sector", unicosSb.s_iounit).AppendLine();
- sb.AppendLine("4096 bytes per block");
- sb.AppendFormat("{0} data blocks in volume", unicosSb.s_fsize).AppendLine();
- sb.AppendFormat("Root resides on inode {0}", unicosSb.s_root).AppendLine();
- sb.AppendFormat("{0} inodes in volume", unicosSb.s_isize).AppendLine();
- sb.AppendFormat("Volume last updated on {0}", DateHandlers.UnixToDateTime(unicosSb.s_time)).AppendLine();
+ sb.AppendFormat(Localization.Volume_contains_0_partitions, unicosSb.s_npart).AppendLine();
+ sb.AppendFormat(Localization._0_bytes_per_sector, unicosSb.s_iounit).AppendLine();
+ sb.AppendLine(Localization._4096_bytes_per_block);
+ sb.AppendFormat(Localization._0_data_blocks_in_volume, unicosSb.s_fsize).AppendLine();
+ sb.AppendFormat(Localization.Root_resides_on_inode_0, unicosSb.s_root).AppendLine();
+ sb.AppendFormat(Localization._0_inodes_in_volume, unicosSb.s_isize).AppendLine();
+
+ sb.AppendFormat(Localization.Volume_last_updated_on_0, DateHandlers.UnixToDateTime(unicosSb.s_time)).
+ AppendLine();
if(unicosSb.s_error > 0)
- sb.AppendFormat("Volume is dirty, error code = 0x{0:X16}", unicosSb.s_error).AppendLine();
+ sb.AppendFormat(Localization.Volume_is_dirty_error_code_equals_0, unicosSb.s_error).AppendLine();
- sb.AppendFormat("Volume name: {0}", StringHandlers.CToString(unicosSb.s_fname, Encoding)).AppendLine();
+ sb.AppendFormat(Localization.Volume_name_0, StringHandlers.CToString(unicosSb.s_fname, Encoding)).AppendLine();
information = sb.ToString();
XmlFsType = new FileSystemType
{
- Type = "UNICOS filesystem",
+ Type = FS_TYPE,
ClusterSize = 4096,
Clusters = (ulong)unicosSb.s_fsize,
VolumeName = StringHandlers.CToString(unicosSb.s_fname, Encoding),
diff --git a/Aaru.Filesystems/UNIXBFS.cs b/Aaru.Filesystems/UNIXBFS.cs
index f8a064756..3cd6fb24c 100644
--- a/Aaru.Filesystems/UNIXBFS.cs
+++ b/Aaru.Filesystems/UNIXBFS.cs
@@ -49,16 +49,18 @@ public sealed class BFS : IFilesystem
{
const uint BFS_MAGIC = 0x1BADFACE;
+ const string FS_TYPE = "bfs";
+
///
public FileSystemType XmlFsType { get; private set; }
///
public Encoding Encoding { get; private set; }
///
- public string Name => "UNIX Boot filesystem";
+ public string Name => Localization.BFS_Name;
///
public Guid Id => new("1E6E0DA6-F7E4-494C-80C6-CB5929E96155");
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
///
public bool Identify(IMediaImage imagePlugin, Partition partition)
@@ -116,17 +118,17 @@ public sealed class BFS : IFilesystem
AaruConsole.DebugWriteLine("BFS plugin", "bfs_sb.s_fsname: 0x{0}", bfsSb.s_fsname);
AaruConsole.DebugWriteLine("BFS plugin", "bfs_sb.s_volume: 0x{0}", bfsSb.s_volume);
- sb.AppendLine("UNIX Boot filesystem");
+ sb.AppendLine(Localization.UNIX_Boot_Filesystem);
- sb.AppendFormat("Volume goes from byte {0} to byte {1}, for {2} bytes", bfsSb.s_start, bfsSb.s_end,
+ sb.AppendFormat(Localization.Volume_goes_from_byte_0_to_byte_1_for_2_bytes, bfsSb.s_start, bfsSb.s_end,
bfsSb.s_end - bfsSb.s_start).AppendLine();
- sb.AppendFormat("Filesystem name: {0}", bfsSb.s_fsname).AppendLine();
- sb.AppendFormat("Volume name: {0}", bfsSb.s_volume).AppendLine();
+ sb.AppendFormat(Localization.Filesystem_name_0, bfsSb.s_fsname).AppendLine();
+ sb.AppendFormat(Localization.Volume_name_0, bfsSb.s_volume).AppendLine();
XmlFsType = new FileSystemType
{
- Type = "BFS",
+ Type = FS_TYPE,
VolumeName = bfsSb.s_volume,
ClusterSize = imagePlugin.Info.SectorSize,
Clusters = partition.End - partition.Start + 1
diff --git a/Aaru.Filesystems/VMfs.cs b/Aaru.Filesystems/VMfs.cs
index d8d9b1287..99a0a645f 100644
--- a/Aaru.Filesystems/VMfs.cs
+++ b/Aaru.Filesystems/VMfs.cs
@@ -58,11 +58,11 @@ public sealed class VMfs : IFilesystem
///
public Encoding Encoding { get; private set; }
///
- public string Name => "VMware filesystem";
+ public string Name => Localization.VMfs_Name;
///
public Guid Id => new("EE52BDB8-B49C-4122-A3DA-AD21CBE79843");
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
///
public bool Identify(IMediaImage imagePlugin, Partition partition)
@@ -85,6 +85,8 @@ public sealed class VMfs : IFilesystem
return magic == VMFS_MAGIC;
}
+ const string FS_TYPE = "vmfs";
+
///
public void GetInformation(IMediaImage imagePlugin, Partition partition, out string information, Encoding encoding)
{
@@ -100,32 +102,32 @@ public sealed class VMfs : IFilesystem
var sbInformation = new StringBuilder();
- sbInformation.AppendLine("VMware file system");
+ sbInformation.AppendLine(Localization.VMware_file_system);
uint ctimeSecs = (uint)(volInfo.ctime / 1000000);
uint ctimeNanoSecs = (uint)(volInfo.ctime % 1000000);
uint mtimeSecs = (uint)(volInfo.mtime / 1000000);
uint mtimeNanoSecs = (uint)(volInfo.mtime % 1000000);
- sbInformation.AppendFormat("Volume version {0}", volInfo.version).AppendLine();
+ sbInformation.AppendFormat(Localization.Volume_version_0, volInfo.version).AppendLine();
- sbInformation.AppendFormat("Volume name {0}", StringHandlers.CToString(volInfo.name, Encoding)).AppendLine();
+ sbInformation.AppendFormat(Localization.Volume_name_0, StringHandlers.CToString(volInfo.name, Encoding)).
+ AppendLine();
- sbInformation.AppendFormat("Volume size {0} bytes", volInfo.size * 256).AppendLine();
- sbInformation.AppendFormat("Volume UUID {0}", volInfo.uuid).AppendLine();
+ sbInformation.AppendFormat(Localization.Volume_size_0_bytes, volInfo.size * 256).AppendLine();
+ sbInformation.AppendFormat(Localization.Volume_UUID_0, volInfo.uuid).AppendLine();
- sbInformation.
- AppendFormat("Volume created on {0}", DateHandlers.UnixUnsignedToDateTime(ctimeSecs, ctimeNanoSecs)).
- AppendLine();
+ sbInformation.AppendFormat(Localization.Volume_created_on_0,
+ DateHandlers.UnixUnsignedToDateTime(ctimeSecs, ctimeNanoSecs)).AppendLine();
- sbInformation.AppendFormat("Volume last modified on {0}",
+ sbInformation.AppendFormat(Localization.Volume_last_modified_on_0,
DateHandlers.UnixUnsignedToDateTime(mtimeSecs, mtimeNanoSecs)).AppendLine();
information = sbInformation.ToString();
XmlFsType = new FileSystemType
{
- Type = "VMware file system",
+ Type = FS_TYPE,
CreationDate = DateHandlers.UnixUnsignedToDateTime(ctimeSecs, ctimeNanoSecs),
CreationDateSpecified = true,
ModificationDate = DateHandlers.UnixUnsignedToDateTime(mtimeSecs, mtimeNanoSecs),
diff --git a/Aaru.Filesystems/VxFS.cs b/Aaru.Filesystems/VxFS.cs
index 2ad817682..bd8bf9af3 100644
--- a/Aaru.Filesystems/VxFS.cs
+++ b/Aaru.Filesystems/VxFS.cs
@@ -50,16 +50,18 @@ public sealed class VxFS : IFilesystem
const uint VXFS_MAGIC = 0xA501FCF5;
const uint VXFS_BASE = 0x400;
+ const string FS_TYPE = "vxfs";
+
///
public FileSystemType XmlFsType { get; private set; }
///
public Encoding Encoding { get; private set; }
///
- public string Name => "Veritas filesystem";
+ public string Name => Localization.VxFS_Name;
///
public Guid Id => new("EC372605-7687-453C-8BEA-7E0DFF79CB03");
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
///
public bool Identify(IMediaImage imagePlugin, Partition partition)
@@ -94,32 +96,34 @@ public sealed class VxFS : IFilesystem
var sbInformation = new StringBuilder();
- sbInformation.AppendLine("Veritas file system");
+ sbInformation.AppendLine(Localization.Veritas_file_system);
- sbInformation.AppendFormat("Volume version {0}", vxSb.vs_version).AppendLine();
+ sbInformation.AppendFormat(Localization.Volume_version_0, vxSb.vs_version).AppendLine();
- sbInformation.AppendFormat("Volume name {0}", StringHandlers.CToString(vxSb.vs_fname, Encoding)).AppendLine();
+ sbInformation.AppendFormat(Localization.Volume_name_0, StringHandlers.CToString(vxSb.vs_fname, Encoding)).
+ AppendLine();
- sbInformation.AppendFormat("Volume has {0} blocks of {1} bytes each", vxSb.vs_bsize, vxSb.vs_size).AppendLine();
+ sbInformation.AppendFormat(Localization.Volume_has_0_blocks_of_1_bytes_each, vxSb.vs_bsize, vxSb.vs_size).
+ AppendLine();
- sbInformation.AppendFormat("Volume has {0} inodes per block", vxSb.vs_inopb).AppendLine();
- sbInformation.AppendFormat("Volume has {0} free inodes", vxSb.vs_ifree).AppendLine();
- sbInformation.AppendFormat("Volume has {0} free blocks", vxSb.vs_free).AppendLine();
+ sbInformation.AppendFormat(Localization.Volume_has_0_inodes_per_block, vxSb.vs_inopb).AppendLine();
+ sbInformation.AppendFormat(Localization.Volume_has_0_free_inodes, vxSb.vs_ifree).AppendLine();
+ sbInformation.AppendFormat(Localization.Volume_has_0_free_blocks, vxSb.vs_free).AppendLine();
- sbInformation.AppendFormat("Volume created on {0}",
+ sbInformation.AppendFormat(Localization.Volume_created_on_0,
DateHandlers.UnixUnsignedToDateTime(vxSb.vs_ctime, vxSb.vs_cutime)).AppendLine();
- sbInformation.AppendFormat("Volume last modified on {0}",
+ sbInformation.AppendFormat(Localization.Volume_last_modified_on_0,
DateHandlers.UnixUnsignedToDateTime(vxSb.vs_wtime, vxSb.vs_wutime)).AppendLine();
if(vxSb.vs_clean != 0)
- sbInformation.AppendLine("Volume is dirty");
+ sbInformation.AppendLine(Localization.Volume_is_dirty);
information = sbInformation.ToString();
XmlFsType = new FileSystemType
{
- Type = "Veritas file system",
+ Type = FS_TYPE,
CreationDate = DateHandlers.UnixUnsignedToDateTime(vxSb.vs_ctime, vxSb.vs_cutime),
CreationDateSpecified = true,
ModificationDate = DateHandlers.UnixUnsignedToDateTime(vxSb.vs_wtime, vxSb.vs_wutime),
diff --git a/Aaru.Filesystems/XFS.cs b/Aaru.Filesystems/XFS.cs
index 3fc5d57f3..5d6fdcadb 100644
--- a/Aaru.Filesystems/XFS.cs
+++ b/Aaru.Filesystems/XFS.cs
@@ -49,16 +49,18 @@ public sealed class XFS : IFilesystem
{
const uint XFS_MAGIC = 0x58465342;
+ const string FS_TYPE = "xfs";
+
///
public FileSystemType XmlFsType { get; private set; }
///
public Encoding Encoding { get; private set; }
///
- public string Name => "XFS Filesystem Plugin";
+ public string Name => Localization.XFS_Name;
///
public Guid Id => new("1D8CD8B8-27E6-410F-9973-D16409225FBA");
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
///
public bool Identify(IMediaImage imagePlugin, Partition partition)
@@ -93,7 +95,7 @@ public sealed class XFS : IFilesystem
Superblock xfsSb = Marshal.ByteArrayToStructureBigEndian(sbpiece);
- AaruConsole.DebugWriteLine("XFS plugin", "magic at 0x{0:X3} = 0x{1:X8} (expected 0x{2:X8})", location,
+ AaruConsole.DebugWriteLine("XFS plugin", Localization.magic_at_0_X3_equals_1_expected_2, location,
xfsSb.magicnum, XFS_MAGIC);
if(xfsSb.magicnum == XFS_MAGIC)
@@ -123,7 +125,7 @@ public sealed class XFS : IFilesystem
Superblock xfsSb = Marshal.ByteArrayToStructureBigEndian(sector);
- AaruConsole.DebugWriteLine("XFS plugin", "magic at {0} = 0x{1:X8} (expected 0x{2:X8})", location,
+ AaruConsole.DebugWriteLine("XFS plugin", Localization.magic_at_0_equals_1_expected_2, location,
xfsSb.magicnum, XFS_MAGIC);
if(xfsSb.magicnum == XFS_MAGIC)
@@ -169,7 +171,7 @@ public sealed class XFS : IFilesystem
xfsSb = Marshal.ByteArrayToStructureBigEndian(sbpiece);
- AaruConsole.DebugWriteLine("XFS plugin", "magic at 0x{0:X3} = 0x{1:X8} (expected 0x{2:X8})", location,
+ AaruConsole.DebugWriteLine("XFS plugin", Localization.magic_at_0_X3_equals_1_expected_2, location,
xfsSb.magicnum, XFS_MAGIC);
if(xfsSb.magicnum == XFS_MAGIC)
@@ -196,7 +198,7 @@ public sealed class XFS : IFilesystem
xfsSb = Marshal.ByteArrayToStructureBigEndian(sector);
- AaruConsole.DebugWriteLine("XFS plugin", "magic at {0} = 0x{1:X8} (expected 0x{2:X8})", location,
+ AaruConsole.DebugWriteLine("XFS plugin", Localization.magic_at_0_equals_1_expected_2, location,
xfsSb.magicnum, XFS_MAGIC);
if(xfsSb.magicnum == XFS_MAGIC)
@@ -208,27 +210,27 @@ public sealed class XFS : IFilesystem
var sb = new StringBuilder();
- sb.AppendLine("XFS filesystem");
- sb.AppendFormat("Filesystem version {0}", xfsSb.version & 0xF).AppendLine();
- sb.AppendFormat("{0} bytes per sector", xfsSb.sectsize).AppendLine();
- sb.AppendFormat("{0} bytes per block", xfsSb.blocksize).AppendLine();
- sb.AppendFormat("{0} bytes per inode", xfsSb.inodesize).AppendLine();
- sb.AppendFormat("{0} data blocks in volume, {1} free", xfsSb.dblocks, xfsSb.fdblocks).AppendLine();
- sb.AppendFormat("{0} blocks per allocation group", xfsSb.agblocks).AppendLine();
- sb.AppendFormat("{0} allocation groups in volume", xfsSb.agcount).AppendLine();
- sb.AppendFormat("{0} inodes in volume, {1} free", xfsSb.icount, xfsSb.ifree).AppendLine();
+ sb.AppendLine(Localization.XFS_filesystem);
+ sb.AppendFormat(Localization.Filesystem_version_0, xfsSb.version & 0xF).AppendLine();
+ sb.AppendFormat(Localization._0_bytes_per_sector, xfsSb.sectsize).AppendLine();
+ sb.AppendFormat(Localization._0_bytes_per_block, xfsSb.blocksize).AppendLine();
+ sb.AppendFormat(Localization._0_bytes_per_inode, xfsSb.inodesize).AppendLine();
+ sb.AppendFormat(Localization._0_data_blocks_in_volume_1_free, xfsSb.dblocks, xfsSb.fdblocks).AppendLine();
+ sb.AppendFormat(Localization._0_blocks_per_allocation_group, xfsSb.agblocks).AppendLine();
+ sb.AppendFormat(Localization._0_allocation_groups_in_volume, xfsSb.agcount).AppendLine();
+ sb.AppendFormat(Localization._0_inodes_in_volume_1_free, xfsSb.icount, xfsSb.ifree).AppendLine();
if(xfsSb.inprogress > 0)
- sb.AppendLine("fsck in progress");
+ sb.AppendLine(Localization.fsck_in_progress);
- sb.AppendFormat("Volume name: {0}", StringHandlers.CToString(xfsSb.fname, Encoding)).AppendLine();
- sb.AppendFormat("Volume UUID: {0}", xfsSb.uuid).AppendLine();
+ sb.AppendFormat(Localization.Volume_name_0, StringHandlers.CToString(xfsSb.fname, Encoding)).AppendLine();
+ sb.AppendFormat(Localization.Volume_UUID_0, xfsSb.uuid).AppendLine();
information = sb.ToString();
XmlFsType = new FileSystemType
{
- Type = "XFS filesystem",
+ Type = FS_TYPE,
ClusterSize = xfsSb.blocksize,
Clusters = xfsSb.dblocks,
FreeClusters = xfsSb.fdblocks,
diff --git a/Aaru.Filesystems/Xia.cs b/Aaru.Filesystems/Xia.cs
index 53ecc454a..9b1a3d2bb 100644
--- a/Aaru.Filesystems/Xia.cs
+++ b/Aaru.Filesystems/Xia.cs
@@ -62,11 +62,11 @@ public sealed class Xia : IFilesystem
///
public Encoding Encoding { get; private set; }
///
- public string Name => "Xia filesystem";
+ public string Name => Localization.Xia_Name;
///
public Guid Id => new("169E1DE5-24F2-4EF6-A04D-A4B2CA66DE9D");
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
///
public bool Identify(IMediaImage imagePlugin, Partition partition)
@@ -90,6 +90,8 @@ public sealed class Xia : IFilesystem
return supblk.s_magic == XIAFS_SUPER_MAGIC;
}
+ const string FS_TYPE = "xia";
+
///
public void GetInformation(IMediaImage imagePlugin, Partition partition, out string information, Encoding encoding)
{
@@ -111,38 +113,38 @@ public sealed class Xia : IFilesystem
SuperBlock supblk = Marshal.ByteArrayToStructureLittleEndian(sbSector);
- sb.AppendFormat("{0} bytes per zone", supblk.s_zone_size).AppendLine();
+ sb.AppendFormat(Localization._0_bytes_per_zone, supblk.s_zone_size).AppendLine();
- sb.AppendFormat("{0} zones in volume ({1} bytes)", supblk.s_nzones, supblk.s_nzones * supblk.s_zone_size).
+ sb.AppendFormat(Localization._0_zones_in_volume_1_bytes, supblk.s_nzones, supblk.s_nzones * supblk.s_zone_size).
AppendLine();
- sb.AppendFormat("{0} inodes", supblk.s_ninodes).AppendLine();
+ sb.AppendFormat(Localization._0_inodes, supblk.s_ninodes).AppendLine();
- sb.AppendFormat("{0} data zones ({1} bytes)", supblk.s_ndatazones, supblk.s_ndatazones * supblk.s_zone_size).
+ sb.AppendFormat(Localization._0_data_zones_1_bytes, supblk.s_ndatazones,
+ supblk.s_ndatazones * supblk.s_zone_size).AppendLine();
+
+ sb.AppendFormat(Localization._0_imap_zones_1_bytes, supblk.s_imap_zones,
+ supblk.s_imap_zones * supblk.s_zone_size).AppendLine();
+
+ sb.AppendFormat(Localization._0_zmap_zones_1_bytes, supblk.s_zmap_zones,
+ supblk.s_zmap_zones * supblk.s_zone_size).AppendLine();
+
+ sb.AppendFormat(Localization.First_data_zone_0, supblk.s_firstdatazone).AppendLine();
+
+ sb.AppendFormat(Localization.Maximum_filesize_is_0_bytes_1_MiB, supblk.s_max_size, supblk.s_max_size / 1048576).
AppendLine();
- sb.AppendFormat("{0} imap zones ({1} bytes)", supblk.s_imap_zones, supblk.s_imap_zones * supblk.s_zone_size).
- AppendLine();
-
- sb.AppendFormat("{0} zmap zones ({1} bytes)", supblk.s_zmap_zones, supblk.s_zmap_zones * supblk.s_zone_size).
- AppendLine();
-
- sb.AppendFormat("First data zone: {0}", supblk.s_firstdatazone).AppendLine();
-
- sb.AppendFormat("Maximum filesize is {0} bytes ({1} MiB)", supblk.s_max_size, supblk.s_max_size / 1048576).
- AppendLine();
-
- sb.AppendFormat("{0} zones reserved for kernel images ({1} bytes)", supblk.s_kernzones,
+ sb.AppendFormat(Localization._0_zones_reserved_for_kernel_images_1_bytes, supblk.s_kernzones,
supblk.s_kernzones * supblk.s_zone_size).AppendLine();
- sb.AppendFormat("First kernel zone: {0}", supblk.s_firstkernzone).AppendLine();
+ sb.AppendFormat(Localization.First_kernel_zone_0, supblk.s_firstkernzone).AppendLine();
XmlFsType = new FileSystemType
{
Bootable = !ArrayHelpers.ArrayIsNullOrEmpty(supblk.s_boot_segment),
Clusters = supblk.s_nzones,
ClusterSize = supblk.s_zone_size,
- Type = "Xia filesystem"
+ Type = FS_TYPE
};
information = sb.ToString();
diff --git a/Aaru.Filesystems/ZFS.cs b/Aaru.Filesystems/ZFS.cs
index b9131337f..21c0341a9 100644
--- a/Aaru.Filesystems/ZFS.cs
+++ b/Aaru.Filesystems/ZFS.cs
@@ -86,11 +86,11 @@ public sealed class ZFS : IFilesystem
///
public Encoding Encoding { get; private set; }
///
- public string Name => "ZFS Filesystem Plugin";
+ public string Name => Localization.ZFS_Name;
///
public Guid Id => new("0750014F-A714-4692-A369-E23F6EC3659C");
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
///
public bool Identify(IMediaImage imagePlugin, Partition partition)
@@ -128,6 +128,8 @@ public sealed class ZFS : IFilesystem
return magic is ZEC_MAGIC or ZEC_CIGAM;
}
+ const string FS_TYPE = "zfs";
+
///
public void GetInformation(IMediaImage imagePlugin, Partition partition, out string information, Encoding encoding)
{
@@ -172,7 +174,7 @@ public sealed class ZFS : IFilesystem
}
var sb = new StringBuilder();
- sb.AppendLine("ZFS filesystem");
+ sb.AppendLine(Localization.ZFS_filesystem);
errno = imagePlugin.ReadSectors(partition.Start + nvlistOff, nvlistLen, out byte[] nvlist);
@@ -186,7 +188,7 @@ public sealed class ZFS : IFilesystem
XmlFsType = new FileSystemType
{
- Type = "ZFS filesystem"
+ Type = FS_TYPE
};
if(decodedNvList.TryGetValue("name", out NVS_Item tmpObj))
@@ -582,7 +584,7 @@ public sealed class ZFS : IFilesystem
{
if(item.elements == 0)
{
- sb.AppendFormat("{0} is not set", item.name).AppendLine();
+ sb.AppendFormat(Localization._0_is_not_set, item.name).AppendLine();
continue;
}
@@ -703,17 +705,18 @@ public sealed class ZFS : IFilesystem
sb.AppendFormat("{0} =\n{1}", item.name, PrintNvList((Dictionary)item.value)).
AppendLine();
else
- sb.AppendFormat("{0} = {1} elements nvlist[], unable to print", item.name, item.elements).
- AppendLine();
+ sb.AppendFormat(Localization._0_equals_1_elements_nvlist_array_unable_to_print, item.name,
+ item.elements).AppendLine();
break;
default:
if(item.elements > 1)
for(int i = 0; i < item.elements; i++)
- sb.AppendFormat("{0}[{1}] = Unknown data type {2}", item.name, i, item.dataType).
+ sb.AppendFormat(Localization._0_1_equals_unknown_data_type_2, item.name, i, item.dataType).
AppendLine();
else
- sb.AppendFormat("{0} = Unknown data type {1}", item.name, item.dataType).AppendLine();
+ sb.AppendFormat(Localization._0_equals_unknown_data_type_1, item.name, item.dataType).
+ AppendLine();
break;
}
diff --git a/Aaru.Filesystems/dump.cs b/Aaru.Filesystems/dump.cs
index d85d9a720..2fd0e3a00 100644
--- a/Aaru.Filesystems/dump.cs
+++ b/Aaru.Filesystems/dump.cs
@@ -94,13 +94,13 @@ public sealed class dump : IFilesystem
///
public Encoding Encoding { get; private set; }
///
- public string Name => "dump(8) Plugin";
+ public string Name => Localization.dump_Name;
///
public Guid Id => new("E53B4D28-C858-4800-B092-DDAE80D361B9");
///
public FileSystemType XmlFsType { get; private set; }
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
///
public bool Identify(IMediaImage imagePlugin, Partition partition)
@@ -199,7 +199,7 @@ public sealed class dump : IFilesystem
}
else
{
- information = "Could not read dump(8) header block";
+ information = Localization.Could_not_read_dump_8_header_block;
return;
}
@@ -214,106 +214,108 @@ public sealed class dump : IFilesystem
if(useOld)
{
- XmlFsType.Type = "Old 16-bit dump(8)";
+ XmlFsType.Type = Localization.Old_16_bit_dump_8;
sb.AppendLine(XmlFsType.Type);
if(oldHdr.c_date > 0)
{
XmlFsType.CreationDate = DateHandlers.UnixToDateTime(oldHdr.c_date);
XmlFsType.CreationDateSpecified = true;
- sb.AppendFormat("Dump created on {0}", XmlFsType.CreationDate).AppendLine();
+ sb.AppendFormat(Localization.Dump_created_on_0, XmlFsType.CreationDate).AppendLine();
}
if(oldHdr.c_ddate > 0)
{
XmlFsType.BackupDate = DateHandlers.UnixToDateTime(oldHdr.c_ddate);
XmlFsType.BackupDateSpecified = true;
- sb.AppendFormat("Previous dump created on {0}", XmlFsType.BackupDate).AppendLine();
+ sb.AppendFormat(Localization.Previous_dump_created_on_0, XmlFsType.BackupDate).AppendLine();
}
- sb.AppendFormat("Dump volume number: {0}", oldHdr.c_volume).AppendLine();
+ sb.AppendFormat(Localization.Dump_volume_number_0, oldHdr.c_volume).AppendLine();
}
else if(useAix)
{
- XmlFsType.Type = "AIX dump(8)";
+ XmlFsType.Type = FS_TYPE;
sb.AppendLine(XmlFsType.Type);
if(aixHdr.c_date > 0)
{
XmlFsType.CreationDate = DateHandlers.UnixToDateTime(aixHdr.c_date);
XmlFsType.CreationDateSpecified = true;
- sb.AppendFormat("Dump created on {0}", XmlFsType.CreationDate).AppendLine();
+ sb.AppendFormat(Localization.Dump_created_on_0, XmlFsType.CreationDate).AppendLine();
}
if(aixHdr.c_ddate > 0)
{
XmlFsType.BackupDate = DateHandlers.UnixToDateTime(aixHdr.c_ddate);
XmlFsType.BackupDateSpecified = true;
- sb.AppendFormat("Previous dump created on {0}", XmlFsType.BackupDate).AppendLine();
+ sb.AppendFormat(Localization.Previous_dump_created_on_0, XmlFsType.BackupDate).AppendLine();
}
- sb.AppendFormat("Dump volume number: {0}", aixHdr.c_volume).AppendLine();
+ sb.AppendFormat(Localization.Dump_volume_number_0, aixHdr.c_volume).AppendLine();
}
else
{
- XmlFsType.Type = "dump(8)";
+ XmlFsType.Type = FS_TYPE;
sb.AppendLine(XmlFsType.Type);
if(newHdr.c_ndate > 0)
{
XmlFsType.CreationDate = DateHandlers.UnixToDateTime(newHdr.c_ndate);
XmlFsType.CreationDateSpecified = true;
- sb.AppendFormat("Dump created on {0}", XmlFsType.CreationDate).AppendLine();
+ sb.AppendFormat(Localization.Dump_created_on_0, XmlFsType.CreationDate).AppendLine();
}
else if(newHdr.c_date > 0)
{
XmlFsType.CreationDate = DateHandlers.UnixToDateTime(newHdr.c_date);
XmlFsType.CreationDateSpecified = true;
- sb.AppendFormat("Dump created on {0}", XmlFsType.CreationDate).AppendLine();
+ sb.AppendFormat(Localization.Dump_created_on_0, XmlFsType.CreationDate).AppendLine();
}
if(newHdr.c_nddate > 0)
{
XmlFsType.BackupDate = DateHandlers.UnixToDateTime(newHdr.c_nddate);
XmlFsType.BackupDateSpecified = true;
- sb.AppendFormat("Previous dump created on {0}", XmlFsType.BackupDate).AppendLine();
+ sb.AppendFormat(Localization.Previous_dump_created_on_0, XmlFsType.BackupDate).AppendLine();
}
else if(newHdr.c_ddate > 0)
{
XmlFsType.BackupDate = DateHandlers.UnixToDateTime(newHdr.c_ddate);
XmlFsType.BackupDateSpecified = true;
- sb.AppendFormat("Previous dump created on {0}", XmlFsType.BackupDate).AppendLine();
+ sb.AppendFormat(Localization.Previous_dump_created_on_0, XmlFsType.BackupDate).AppendLine();
}
- sb.AppendFormat("Dump volume number: {0}", newHdr.c_volume).AppendLine();
- sb.AppendFormat("Dump level: {0}", newHdr.c_level).AppendLine();
+ sb.AppendFormat(Localization.Dump_volume_number_0, newHdr.c_volume).AppendLine();
+ sb.AppendFormat(Localization.Dump_level_0, newHdr.c_level).AppendLine();
string dumpname = StringHandlers.CToString(newHdr.c_label);
if(!string.IsNullOrEmpty(dumpname))
{
XmlFsType.VolumeName = dumpname;
- sb.AppendFormat("Dump label: {0}", dumpname).AppendLine();
+ sb.AppendFormat(Localization.Dump_label_0, dumpname).AppendLine();
}
string str = StringHandlers.CToString(newHdr.c_filesys);
if(!string.IsNullOrEmpty(str))
- sb.AppendFormat("Dumped filesystem name: {0}", str).AppendLine();
+ sb.AppendFormat(Localization.Dumped_filesystem_name_0, str).AppendLine();
str = StringHandlers.CToString(newHdr.c_dev);
if(!string.IsNullOrEmpty(str))
- sb.AppendFormat("Dumped device: {0}", str).AppendLine();
+ sb.AppendFormat(Localization.Dumped_device_0, str).AppendLine();
str = StringHandlers.CToString(newHdr.c_host);
if(!string.IsNullOrEmpty(str))
- sb.AppendFormat("Dump hostname: {0}", str).AppendLine();
+ sb.AppendFormat(Localization.Dump_hostname_0, str).AppendLine();
}
information = sb.ToString();
}
+ const string FS_TYPE = "dump";
+
// Old 16-bit format record
[StructLayout(LayoutKind.Sequential, Pack = 1)]
struct spcl16
diff --git a/Aaru.Filesystems/exFAT.cs b/Aaru.Filesystems/exFAT.cs
index 212e33036..93271bf5c 100644
--- a/Aaru.Filesystems/exFAT.cs
+++ b/Aaru.Filesystems/exFAT.cs
@@ -63,11 +63,11 @@ public sealed class exFAT : IFilesystem
///
public Encoding Encoding { get; private set; }
///
- public string Name => "Microsoft Extended File Allocation Table";
+ public string Name => Localization.exFAT_Name;
///
public Guid Id => new("8271D088-1533-4CB3-AC28-D802B68BB95C");
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
///
public bool Identify(IMediaImage imagePlugin, Partition partition)
@@ -119,39 +119,39 @@ public sealed class exFAT : IFilesystem
ChecksumSector chksector = Marshal.ByteArrayToStructureLittleEndian(chkSector);
- sb.AppendLine("Microsoft exFAT");
- sb.AppendFormat("Partition offset: {0}", vbr.offset).AppendLine();
+ sb.AppendLine(Localization.Microsoft_exFAT);
+ sb.AppendFormat(Localization.Partition_offset_0, vbr.offset).AppendLine();
- sb.AppendFormat("Volume has {0} sectors of {1} bytes each for a total of {2} bytes", vbr.sectors,
+ sb.AppendFormat(Localization.Volume_has_0_sectors_of_1_bytes_each_for_a_total_of_2_bytes, vbr.sectors,
1 << vbr.sectorShift, vbr.sectors * (ulong)(1 << vbr.sectorShift)).AppendLine();
- sb.AppendFormat("Volume uses clusters of {0} sectors ({1} bytes) each", 1 << vbr.clusterShift,
+ sb.AppendFormat(Localization.Volume_uses_clusters_of_0_sectors_1_bytes_each, 1 << vbr.clusterShift,
(1 << vbr.sectorShift) * (1 << vbr.clusterShift)).AppendLine();
- sb.AppendFormat("First FAT starts at sector {0} and runs for {1} sectors", vbr.fatOffset, vbr.fatLength).
+ sb.AppendFormat(Localization.First_FAT_starts_at_sector_0_and_runs_for_1_sectors, vbr.fatOffset, vbr.fatLength).
AppendLine();
- sb.AppendFormat("Volume uses {0} FATs", vbr.fats).AppendLine();
+ sb.AppendFormat(Localization.Volume_uses_0_FATs, vbr.fats).AppendLine();
- sb.AppendFormat("Cluster heap starts at sector {0}, contains {1} clusters and is {2}% used",
+ sb.AppendFormat(Localization.Cluster_heap_starts_at_sector_0_contains_1_clusters_and_is_2_used,
vbr.clusterHeapOffset, vbr.clusterHeapLength, vbr.heapUsage).AppendLine();
- sb.AppendFormat("Root directory starts at cluster {0}", vbr.rootDirectoryCluster).AppendLine();
+ sb.AppendFormat(Localization.Root_directory_starts_at_cluster_0, vbr.rootDirectoryCluster).AppendLine();
- sb.AppendFormat("Filesystem revision is {0}.{1:D2}", (vbr.revision & 0xFF00) >> 8, vbr.revision & 0xFF).
+ sb.AppendFormat(Localization.Filesystem_revision_is_0_1, (vbr.revision & 0xFF00) >> 8, vbr.revision & 0xFF).
AppendLine();
- sb.AppendFormat("Volume serial number: {0:X8}", vbr.volumeSerial).AppendLine();
- sb.AppendFormat("BIOS drive is {0:X2}h", vbr.drive).AppendLine();
+ sb.AppendFormat(Localization.Volume_serial_number_0_X8, vbr.volumeSerial).AppendLine();
+ sb.AppendFormat(Localization.BIOS_drive_is_0, vbr.drive).AppendLine();
if(vbr.flags.HasFlag(VolumeFlags.SecondFatActive))
- sb.AppendLine("2nd FAT is in use");
+ sb.AppendLine(Localization.Second_FAT_is_in_use);
if(vbr.flags.HasFlag(VolumeFlags.VolumeDirty))
- sb.AppendLine("Volume is dirty");
+ sb.AppendLine(Localization.Volume_is_dirty);
if(vbr.flags.HasFlag(VolumeFlags.MediaFailure))
- sb.AppendLine("Underlying media presented errors");
+ sb.AppendLine(Localization.Underlying_media_presented_errors);
int count = 1;
@@ -159,32 +159,41 @@ public sealed class exFAT : IFilesystem
{
if(parameter.OemParameterType == _oemFlashParameterGuid)
{
- sb.AppendFormat("OEM Parameters {0}:", count).AppendLine();
- sb.AppendFormat("\t{0} bytes in erase block", parameter.eraseBlockSize).AppendLine();
- sb.AppendFormat("\t{0} bytes per page", parameter.pageSize).AppendLine();
- sb.AppendFormat("\t{0} spare blocks", parameter.spareBlocks).AppendLine();
- sb.AppendFormat("\t{0} nanoseconds random access time", parameter.randomAccessTime).AppendLine();
- sb.AppendFormat("\t{0} nanoseconds program time", parameter.programTime).AppendLine();
- sb.AppendFormat("\t{0} nanoseconds read cycle time", parameter.readCycleTime).AppendLine();
- sb.AppendFormat("\t{0} nanoseconds write cycle time", parameter.writeCycleTime).AppendLine();
+ sb.AppendFormat(Localization.OEM_Parameters_0, count).AppendLine();
+ sb.AppendFormat("\t" + Localization._0_bytes_in_erase_block, parameter.eraseBlockSize).AppendLine();
+ sb.AppendFormat("\t" + Localization._0_bytes_per_page, parameter.pageSize).AppendLine();
+ sb.AppendFormat("\t" + Localization._0_spare_blocks, parameter.spareBlocks).AppendLine();
+
+ sb.AppendFormat("\t" + Localization._0_nanoseconds_random_access_time, parameter.randomAccessTime).
+ AppendLine();
+
+ sb.AppendFormat("\t" + Localization._0_nanoseconds_program_time, parameter.programTime).AppendLine();
+
+ sb.AppendFormat("\t" + Localization._0_nanoseconds_read_cycle_time, parameter.readCycleTime).
+ AppendLine();
+
+ sb.AppendFormat("\t" + Localization._0_nanoseconds_write_cycle_time, parameter.writeCycleTime).
+ AppendLine();
}
else if(parameter.OemParameterType != Guid.Empty)
- sb.AppendFormat("Found unknown parameter type {0}", parameter.OemParameterType).AppendLine();
+ sb.AppendFormat(Localization.Found_unknown_parameter_type_0, parameter.OemParameterType).AppendLine();
count++;
}
- sb.AppendFormat("Checksum 0x{0:X8}", chksector.checksum[0]).AppendLine();
+ sb.AppendFormat(Localization.Checksum_0_X8, chksector.checksum[0]).AppendLine();
XmlFsType.ClusterSize = (uint)((1 << vbr.sectorShift) * (1 << vbr.clusterShift));
XmlFsType.Clusters = vbr.clusterHeapLength;
XmlFsType.Dirty = vbr.flags.HasFlag(VolumeFlags.VolumeDirty);
- XmlFsType.Type = "exFAT";
+ XmlFsType.Type = FS_TYPE;
XmlFsType.VolumeSerial = $"{vbr.volumeSerial:X8}";
information = sb.ToString();
}
+ const string FS_TYPE = "exfat";
+
[Flags]
enum VolumeFlags : ushort
{
diff --git a/Aaru.Filesystems/ext2FS.cs b/Aaru.Filesystems/ext2FS.cs
index b6f0d3dc9..175174c2e 100644
--- a/Aaru.Filesystems/ext2FS.cs
+++ b/Aaru.Filesystems/ext2FS.cs
@@ -174,11 +174,11 @@ public sealed class ext2FS : IFilesystem
///
public Encoding Encoding { get; private set; }
///
- public string Name => "Linux extended Filesystem 2, 3 and 4";
+ public string Name => Localization.ext2FS_Name_Linux_extended_Filesystem_2_3_and_4;
///
public Guid Id => new("6AA91B88-150B-4A7B-AD56-F84FB2DF4184");
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
///
public bool Identify(IMediaImage imagePlugin, Partition partition)
@@ -213,6 +213,10 @@ public sealed class ext2FS : IFilesystem
return magic is EXT2_MAGIC or EXT2_MAGIC_OLD;
}
+ const string FS_TYPE_EXT2 = "ext2";
+ const string FS_TYPE_EXT3 = "ext3";
+ const string FS_TYPE_EXT4 = "ext4";
+
///
public void GetInformation(IMediaImage imagePlugin, Partition partition, out string information, Encoding encoding)
{
@@ -249,8 +253,8 @@ public sealed class ext2FS : IFilesystem
switch(supblk.magic)
{
case EXT2_MAGIC_OLD:
- sb.AppendLine("ext2 (old) filesystem");
- XmlFsType.Type = "ext2";
+ sb.AppendLine(Localization.ext2_old_filesystem);
+ XmlFsType.Type = FS_TYPE_EXT2;
break;
case EXT2_MAGIC:
@@ -276,25 +280,25 @@ public sealed class ext2FS : IFilesystem
if(newExt2)
{
- sb.AppendLine("ext2 filesystem");
- XmlFsType.Type = "ext2";
+ sb.AppendLine(Localization.ext2_filesystem);
+ XmlFsType.Type = FS_TYPE_EXT2;
}
if(ext3)
{
- sb.AppendLine("ext3 filesystem");
- XmlFsType.Type = "ext3";
+ sb.AppendLine(Localization.ext3_filesystem);
+ XmlFsType.Type = FS_TYPE_EXT3;
}
if(ext4)
{
- sb.AppendLine("ext4 filesystem");
- XmlFsType.Type = "ext4";
+ sb.AppendLine(Localization.ext4_filesystem);
+ XmlFsType.Type = FS_TYPE_EXT4;
}
break;
default:
- information = "Not a ext2/3/4 filesystem" + Environment.NewLine;
+ information = Localization.Not_an_ext2_3_4_filesystem + Environment.NewLine;
return;
}
@@ -306,21 +310,21 @@ public sealed class ext2FS : IFilesystem
EXT2_OS_LINUX => "Linux",
EXT2_OS_LITES => "Lites",
EXT2_OS_MASIX => "MasIX",
- _ => $"Unknown OS ({supblk.creator_os})"
+ _ => string.Format(Localization.Unknown_OS_0, supblk.creator_os)
};
XmlFsType.SystemIdentifier = extOs;
if(supblk.mkfs_t > 0)
{
- sb.AppendFormat("Volume was created on {0} for {1}", DateHandlers.UnixUnsignedToDateTime(supblk.mkfs_t),
- extOs).AppendLine();
+ sb.AppendFormat(Localization.Volume_was_created_on_0_for_1,
+ DateHandlers.UnixUnsignedToDateTime(supblk.mkfs_t), extOs).AppendLine();
XmlFsType.CreationDate = DateHandlers.UnixUnsignedToDateTime(supblk.mkfs_t);
XmlFsType.CreationDateSpecified = true;
}
else
- sb.AppendFormat("Volume was created for {0}", extOs).AppendLine();
+ sb.AppendFormat(Localization.Volume_was_created_for_0, extOs).AppendLine();
byte[] tempBytes = new byte[8];
ulong blocks, reserved, free;
@@ -373,7 +377,7 @@ public sealed class ext2FS : IFilesystem
if(supblk.block_size == 0) // Then it is 1024 bytes
supblk.block_size = 1024;
- sb.AppendFormat("Volume has {0} blocks of {1} bytes, for a total of {2} bytes", blocks,
+ sb.AppendFormat(Localization.Volume_has_0_blocks_of_1_bytes_for_a_total_of_2_bytes, blocks,
1024 << (int)supblk.block_size, blocks * (ulong)(1024 << (int)supblk.block_size)).AppendLine();
XmlFsType.Clusters = blocks;
@@ -383,53 +387,56 @@ public sealed class ext2FS : IFilesystem
supblk.mount_c > 0)
{
if(supblk.mount_t > 0)
- sb.AppendFormat("Last mounted on {0}", DateHandlers.UnixUnsignedToDateTime(supblk.mount_t)).
+ sb.AppendFormat(Localization.Last_mounted_on_0, DateHandlers.UnixUnsignedToDateTime(supblk.mount_t)).
AppendLine();
if(supblk.max_mount_c != -1)
- sb.AppendFormat("Volume has been mounted {0} times of a maximum of {1} mounts before checking",
+ sb.AppendFormat(Localization.Volume_has_been_mounted_0_times_of_a_maximum_of_1_mounts_before_checking,
supblk.mount_c, supblk.max_mount_c).AppendLine();
else
- sb.AppendFormat("Volume has been mounted {0} times with no maximum no. of mounts before checking",
- supblk.mount_c).AppendLine();
+ sb.
+ AppendFormat(Localization.Volume_has_been_mounted_0_times_with_no_maximum_no_of_mounts_before_checking,
+ supblk.mount_c).AppendLine();
if(!string.IsNullOrEmpty(StringHandlers.CToString(supblk.last_mount_dir, Encoding)))
- sb.AppendFormat("Last mounted on: \"{0}\"", StringHandlers.CToString(supblk.last_mount_dir, Encoding)).
- AppendLine();
+ sb.AppendFormat(Localization.Last_mounted_at_0,
+ StringHandlers.CToString(supblk.last_mount_dir, Encoding)).AppendLine();
if(!string.IsNullOrEmpty(StringHandlers.CToString(supblk.mount_options, Encoding)))
- sb.AppendFormat("Last used mount options were: {0}",
+ sb.AppendFormat(Localization.Last_used_mount_options_were_0,
StringHandlers.CToString(supblk.mount_options, Encoding)).AppendLine();
}
else
{
- sb.AppendLine("Volume has never been mounted");
+ sb.AppendLine(Localization.Volume_has_never_been_mounted);
if(supblk.max_mount_c != -1)
- sb.AppendFormat("Volume can be mounted {0} times before checking", supblk.max_mount_c).AppendLine();
+ sb.AppendFormat(Localization.Volume_can_be_mounted_0_times_before_checking, supblk.max_mount_c).
+ AppendLine();
else
- sb.AppendLine("Volume has no maximum no. of mounts before checking");
+ sb.AppendLine(Localization.Volume_has_no_maximum_no_of_mounts_before_checking);
}
if(supblk.check_t > 0)
if(supblk.check_inv > 0)
- sb.AppendFormat("Last checked on {0} (should check every {1} seconds)",
+ sb.AppendFormat(Localization.Last_checked_on_0_should_check_every_1_seconds,
DateHandlers.UnixUnsignedToDateTime(supblk.check_t), supblk.check_inv).AppendLine();
else
- sb.AppendFormat("Last checked on {0}", DateHandlers.UnixUnsignedToDateTime(supblk.check_t)).
+ sb.AppendFormat(Localization.Last_checked_on_0, DateHandlers.UnixUnsignedToDateTime(supblk.check_t)).
AppendLine();
else
{
if(supblk.check_inv > 0)
- sb.AppendFormat("Volume has never been checked (should check every {0})", supblk.check_inv).
+ sb.AppendFormat(Localization.Volume_has_never_been_checked_should_check_every_0_, supblk.check_inv).
AppendLine();
else
- sb.AppendLine("Volume has never been checked");
+ sb.AppendLine(Localization.Volume_has_never_been_checked);
}
if(supblk.write_t > 0)
{
- sb.AppendFormat("Last written on {0}", DateHandlers.UnixUnsignedToDateTime(supblk.write_t)).AppendLine();
+ sb.AppendFormat(Localization.Last_written_on_0, DateHandlers.UnixUnsignedToDateTime(supblk.write_t)).
+ AppendLine();
XmlFsType.ModificationDate = DateHandlers.UnixUnsignedToDateTime(supblk.write_t);
XmlFsType.ModificationDateSpecified = true;
@@ -442,27 +449,27 @@ public sealed class ext2FS : IFilesystem
switch(supblk.state)
{
case EXT2_VALID_FS:
- sb.AppendLine("Volume is clean");
+ sb.AppendLine(Localization.Volume_is_clean);
XmlFsType.Dirty = false;
break;
case EXT2_ERROR_FS:
- sb.AppendLine("Volume is dirty");
+ sb.AppendLine(Localization.Volume_is_dirty);
break;
case EXT3_ORPHAN_FS:
- sb.AppendLine("Volume is recovering orphan files");
+ sb.AppendLine(Localization.Volume_is_recovering_orphan_files);
break;
default:
- sb.AppendFormat("Volume is in an unknown state ({0})", supblk.state).AppendLine();
+ sb.AppendFormat(Localization.Volume_is_in_an_unknown_state_0, supblk.state).AppendLine();
break;
}
if(!string.IsNullOrEmpty(StringHandlers.CToString(supblk.volume_name, Encoding)))
{
- sb.AppendFormat("Volume name: \"{0}\"", StringHandlers.CToString(supblk.volume_name, Encoding)).
+ sb.AppendFormat(Localization.Volume_name_0, StringHandlers.CToString(supblk.volume_name, Encoding)).
AppendLine();
XmlFsType.VolumeName = StringHandlers.CToString(supblk.volume_name, Encoding);
@@ -471,272 +478,272 @@ public sealed class ext2FS : IFilesystem
switch(supblk.err_behaviour)
{
case EXT2_ERRORS_CONTINUE:
- sb.AppendLine("On errors, filesystem should continue");
+ sb.AppendLine(Localization.On_errors_filesystem_should_continue);
break;
case EXT2_ERRORS_RO:
- sb.AppendLine("On errors, filesystem should remount read-only");
+ sb.AppendLine(Localization.On_errors_filesystem_should_remount_read_only);
break;
case EXT2_ERRORS_PANIC:
- sb.AppendLine("On errors, filesystem should panic");
+ sb.AppendLine(Localization.On_errors_filesystem_should_panic);
break;
default:
- sb.AppendFormat("On errors filesystem will do an unknown thing ({0})", supblk.err_behaviour).
+ sb.AppendFormat(Localization.On_errors_filesystem_will_do_an_unknown_thing_0, supblk.err_behaviour).
AppendLine();
break;
}
if(supblk.revision > 0)
- sb.AppendFormat("Filesystem revision: {0}.{1}", supblk.revision, supblk.minor_revision).AppendLine();
+ sb.AppendFormat(Localization.Filesystem_revision_0_1, supblk.revision, supblk.minor_revision).AppendLine();
if(supblk.uuid != Guid.Empty)
{
- sb.AppendFormat("Volume UUID: {0}", supblk.uuid).AppendLine();
+ sb.AppendFormat(Localization.Volume_UUID_0, supblk.uuid).AppendLine();
XmlFsType.VolumeSerial = supblk.uuid.ToString();
}
if(supblk.kbytes_written > 0)
- sb.AppendFormat("{0} KiB has been written on volume", supblk.kbytes_written).AppendLine();
+ sb.AppendFormat(Localization._0_KiB_has_been_written_on_volume, supblk.kbytes_written).AppendLine();
- sb.AppendFormat("{0} reserved and {1} free blocks", reserved, free).AppendLine();
+ sb.AppendFormat(Localization._0_reserved_and_1_free_blocks, reserved, free).AppendLine();
XmlFsType.FreeClusters = free;
XmlFsType.FreeClustersSpecified = true;
- sb.AppendFormat("{0} inodes with {1} free inodes ({2}%)", supblk.inodes, supblk.free_inodes,
+ sb.AppendFormat(Localization._0_inodes_with_1_free_inodes_2, supblk.inodes, supblk.free_inodes,
supblk.free_inodes * 100 / supblk.inodes).AppendLine();
if(supblk.first_inode > 0)
- sb.AppendFormat("First inode is {0}", supblk.first_inode).AppendLine();
+ sb.AppendFormat(Localization.First_inode_is_0, supblk.first_inode).AppendLine();
if(supblk.frag_size > 0)
- sb.AppendFormat("{0} bytes per fragment", supblk.frag_size).AppendLine();
+ sb.AppendFormat(Localization._0_bytes_per_fragment, supblk.frag_size).AppendLine();
if(supblk.blocks_per_grp > 0 &&
supblk is { flags_per_grp: > 0, inodes_per_grp: > 0 })
- sb.AppendFormat("{0} blocks, {1} flags and {2} inodes per group", supblk.blocks_per_grp,
+ sb.AppendFormat(Localization._0_blocks_1_flags_and_2_inodes_per_group, supblk.blocks_per_grp,
supblk.flags_per_grp, supblk.inodes_per_grp).AppendLine();
if(supblk.first_block > 0)
- sb.AppendFormat("{0} is first data block", supblk.first_block).AppendLine();
+ sb.AppendFormat(Localization._0_is_first_data_block, supblk.first_block).AppendLine();
- sb.AppendFormat("Default UID: {0}, GID: {1}", supblk.default_uid, supblk.default_gid).AppendLine();
+ sb.AppendFormat(Localization.Default_UID_0_GID_1, supblk.default_uid, supblk.default_gid).AppendLine();
if(supblk.block_group_no > 0)
- sb.AppendFormat("Block group number is {0}", supblk.block_group_no).AppendLine();
+ sb.AppendFormat(Localization.Block_group_number_is_0, supblk.block_group_no).AppendLine();
if(supblk.desc_grp_size > 0)
- sb.AppendFormat("Group descriptor size is {0} bytes", supblk.desc_grp_size).AppendLine();
+ sb.AppendFormat(Localization.Group_descriptor_size_is_0_bytes, supblk.desc_grp_size).AppendLine();
if(supblk.first_meta_bg > 0)
- sb.AppendFormat("First metablock group is {0}", supblk.first_meta_bg).AppendLine();
+ sb.AppendFormat(Localization.First_metablock_group_is_0, supblk.first_meta_bg).AppendLine();
if(supblk.raid_stride > 0)
- sb.AppendFormat("RAID stride: {0}", supblk.raid_stride).AppendLine();
+ sb.AppendFormat(Localization.RAID_stride_0, supblk.raid_stride).AppendLine();
if(supblk.raid_stripe_width > 0)
- sb.AppendFormat("{0} blocks on all data disks", supblk.raid_stripe_width).AppendLine();
+ sb.AppendFormat(Localization._0_blocks_on_all_data_disks, supblk.raid_stripe_width).AppendLine();
if(supblk is { mmp_interval: > 0, mmp_block: > 0 })
- sb.AppendFormat("{0} seconds for multi-mount protection wait, on block {1}", supblk.mmp_interval,
+ sb.AppendFormat(Localization._0_seconds_for_multi_mount_protection_wait_on_block_1, supblk.mmp_interval,
supblk.mmp_block).AppendLine();
if(supblk.flex_bg_grp_size > 0)
- sb.AppendFormat("{0} Flexible block group size", supblk.flex_bg_grp_size).AppendLine();
+ sb.AppendFormat(Localization._0_Flexible_block_group_size, supblk.flex_bg_grp_size).AppendLine();
if(supblk is { hash_seed_1: > 0, hash_seed_2: > 0 } and { hash_seed_3: > 0, hash_seed_4: > 0 })
- sb.AppendFormat("Hash seed: {0:X8}{1:X8}{2:X8}{3:X8}, version {4}", supblk.hash_seed_1, supblk.hash_seed_2,
+ sb.AppendFormat(Localization.Hash_seed_0_1_2_3_version_4, supblk.hash_seed_1, supblk.hash_seed_2,
supblk.hash_seed_3, supblk.hash_seed_4, supblk.hash_version).AppendLine();
if((supblk.ftr_compat & EXT3_FEATURE_COMPAT_HAS_JOURNAL) == EXT3_FEATURE_COMPAT_HAS_JOURNAL ||
(supblk.ftr_incompat & EXT3_FEATURE_INCOMPAT_JOURNAL_DEV) == EXT3_FEATURE_INCOMPAT_JOURNAL_DEV)
{
- sb.AppendLine("Volume is journaled");
+ sb.AppendLine(Localization.Volume_is_journaled);
if(supblk.journal_uuid != Guid.Empty)
- sb.AppendFormat("Journal UUID: {0}", supblk.journal_uuid).AppendLine();
+ sb.AppendFormat(Localization.Journal_UUID_0, supblk.journal_uuid).AppendLine();
- sb.AppendFormat("Journal has inode {0}", supblk.journal_inode).AppendLine();
+ sb.AppendFormat(Localization.Journal_has_inode_0, supblk.journal_inode).AppendLine();
if((supblk.ftr_compat & EXT3_FEATURE_INCOMPAT_JOURNAL_DEV) == EXT3_FEATURE_INCOMPAT_JOURNAL_DEV &&
supblk.journal_dev > 0)
- sb.AppendFormat("Journal is on device {0}", supblk.journal_dev).AppendLine();
+ sb.AppendFormat(Localization.Journal_is_on_device_0, supblk.journal_dev).AppendLine();
if(supblk.jnl_backup_type > 0)
- sb.AppendFormat("Journal backup type: {0}", supblk.jnl_backup_type).AppendLine();
+ sb.AppendFormat(Localization.Journal_backup_type_0, supblk.jnl_backup_type).AppendLine();
if(supblk.last_orphan > 0)
- sb.AppendFormat("Last orphaned inode is {0}", supblk.last_orphan).AppendLine();
+ sb.AppendFormat(Localization.Last_orphaned_inode_is_0, supblk.last_orphan).AppendLine();
else
- sb.AppendLine("There are no orphaned inodes");
+ sb.AppendLine(Localization.There_are_no_orphaned_inodes);
}
if(ext4)
{
if(supblk.snapshot_id > 0)
sb.
- AppendFormat("Active snapshot has ID {0}, on inode {1}, with {2} blocks reserved, list starting on block {3}",
+ AppendFormat(Localization.Active_snapshot_has_ID_0_on_inode_1_with_2_blocks_reserved_list_starting_on_block_3,
supblk.snapshot_id, supblk.snapshot_inum, supblk.snapshot_blocks,
supblk.snapshot_list).AppendLine();
if(supblk.error_count > 0)
{
- sb.AppendFormat("{0} errors registered", supblk.error_count).AppendLine();
+ sb.AppendFormat(Localization._0_errors_registered, supblk.error_count).AppendLine();
- sb.AppendFormat("First error occurred on {0}, last on {1}",
+ sb.AppendFormat(Localization.First_error_occurred_on_0_last_on_1,
DateHandlers.UnixUnsignedToDateTime(supblk.first_error_t),
DateHandlers.UnixUnsignedToDateTime(supblk.last_error_t)).AppendLine();
- sb.AppendFormat("First error inode is {0}, last is {1}", supblk.first_error_inode,
+ sb.AppendFormat(Localization.First_error_inode_is_0_last_is_1, supblk.first_error_inode,
supblk.last_error_inode).AppendLine();
- sb.AppendFormat("First error block is {0}, last is {1}", supblk.first_error_block,
+ sb.AppendFormat(Localization.First_error_block_is_0_last_is_1, supblk.first_error_block,
supblk.last_error_block).AppendLine();
- sb.AppendFormat("First error function is \"{0}\", last is \"{1}\"", supblk.first_error_func,
+ sb.AppendFormat(Localization.First_error_function_is_0_last_is_1, supblk.first_error_func,
supblk.last_error_func).AppendLine();
}
}
- sb.AppendFormat("Flags…:").AppendLine();
+ sb.AppendFormat(Localization.Flags_ellipsis).AppendLine();
if((supblk.flags & EXT2_FLAGS_SIGNED_HASH) == EXT2_FLAGS_SIGNED_HASH)
- sb.AppendLine("Signed directory hash is in use");
+ sb.AppendLine(Localization.Signed_directory_hash_is_in_use);
if((supblk.flags & EXT2_FLAGS_UNSIGNED_HASH) == EXT2_FLAGS_UNSIGNED_HASH)
- sb.AppendLine("Unsigned directory hash is in use");
+ sb.AppendLine(Localization.Unsigned_directory_hash_is_in_use);
if((supblk.flags & EXT2_FLAGS_TEST_FILESYS) == EXT2_FLAGS_TEST_FILESYS)
- sb.AppendLine("Volume is testing development code");
+ sb.AppendLine(Localization.Volume_is_testing_development_code);
if((supblk.flags & 0xFFFFFFF8) != 0)
- sb.AppendFormat("Unknown set flags: {0:X8}", supblk.flags);
+ sb.AppendFormat(Localization.Unknown_set_flags_0, supblk.flags);
sb.AppendLine();
- sb.AppendFormat("Default mount options…:").AppendLine();
+ sb.AppendFormat(Localization.Default_mount_options).AppendLine();
if((supblk.default_mnt_opts & EXT2_DEFM_DEBUG) == EXT2_DEFM_DEBUG)
- sb.AppendLine("(debug): Enable debugging code");
+ sb.AppendLine(Localization.debug_Enable_debugging_code);
if((supblk.default_mnt_opts & EXT2_DEFM_BSDGROUPS) == EXT2_DEFM_BSDGROUPS)
- sb.AppendLine("(bsdgroups): Emulate BSD behaviour when creating new files");
+ sb.AppendLine(Localization.bsdgroups_Emulate_BSD_behaviour_when_creating_new_files);
if((supblk.default_mnt_opts & EXT2_DEFM_XATTR_USER) == EXT2_DEFM_XATTR_USER)
- sb.AppendLine("(user_xattr): Enable user-specified extended attributes");
+ sb.AppendLine(Localization.user_xattr_Enable_user_specified_extended_attributes);
if((supblk.default_mnt_opts & EXT2_DEFM_ACL) == EXT2_DEFM_ACL)
- sb.AppendLine("(acl): Enable POSIX ACLs");
+ sb.AppendLine(Localization.acl_Enable_POSIX_ACLs);
if((supblk.default_mnt_opts & EXT2_DEFM_UID16) == EXT2_DEFM_UID16)
- sb.AppendLine("(uid16): Disable 32bit UIDs and GIDs");
+ sb.AppendLine(Localization.uid16_Disable_32bit_UIDs_and_GIDs);
if((supblk.default_mnt_opts & EXT3_DEFM_JMODE_DATA) == EXT3_DEFM_JMODE_DATA)
- sb.AppendLine("(journal_data): Journal data and metadata");
+ sb.AppendLine(Localization.journal_data_Journal_data_and_metadata);
if((supblk.default_mnt_opts & EXT3_DEFM_JMODE_ORDERED) == EXT3_DEFM_JMODE_ORDERED)
- sb.AppendLine("(journal_data_ordered): Write data before journaling metadata");
+ sb.AppendLine(Localization.journal_data_ordered_Write_data_before_journaling_metadata);
if((supblk.default_mnt_opts & EXT3_DEFM_JMODE_WBACK) == EXT3_DEFM_JMODE_WBACK)
- sb.AppendLine("(journal_data_writeback): Write journal before data");
+ sb.AppendLine(Localization.journal_data_writeback_Write_journal_before_data);
if((supblk.default_mnt_opts & 0xFFFFFE20) != 0)
- sb.AppendFormat("Unknown set default mount options: {0:X8}", supblk.default_mnt_opts);
+ sb.AppendFormat(Localization.Unknown_set_default_mount_options_0, supblk.default_mnt_opts);
sb.AppendLine();
- sb.AppendFormat("Compatible features…:").AppendLine();
+ sb.AppendFormat(Localization.Compatible_features).AppendLine();
if((supblk.ftr_compat & EXT2_FEATURE_COMPAT_DIR_PREALLOC) == EXT2_FEATURE_COMPAT_DIR_PREALLOC)
- sb.AppendLine("Pre-allocate directories");
+ sb.AppendLine(Localization.Pre_allocate_directories);
if((supblk.ftr_compat & EXT2_FEATURE_COMPAT_IMAGIC_INODES) == EXT2_FEATURE_COMPAT_IMAGIC_INODES)
- sb.AppendLine("imagic inodes ?");
+ sb.AppendLine(Localization.imagic_inodes__);
if((supblk.ftr_compat & EXT3_FEATURE_COMPAT_HAS_JOURNAL) == EXT3_FEATURE_COMPAT_HAS_JOURNAL)
- sb.AppendLine("Has journal (ext3)");
+ sb.AppendLine(Localization.Has_journal_ext3);
if((supblk.ftr_compat & EXT2_FEATURE_COMPAT_EXT_ATTR) == EXT2_FEATURE_COMPAT_EXT_ATTR)
- sb.AppendLine("Has extended attribute blocks");
+ sb.AppendLine(Localization.Has_extended_attribute_blocks);
if((supblk.ftr_compat & EXT2_FEATURE_COMPAT_RESIZE_INO) == EXT2_FEATURE_COMPAT_RESIZE_INO)
- sb.AppendLine("Has online filesystem resize reservations");
+ sb.AppendLine(Localization.Has_online_filesystem_resize_reservations);
if((supblk.ftr_compat & EXT2_FEATURE_COMPAT_DIR_INDEX) == EXT2_FEATURE_COMPAT_DIR_INDEX)
- sb.AppendLine("Can use hashed indexes on directories");
+ sb.AppendLine(Localization.Can_use_hashed_indexes_on_directories);
if((supblk.ftr_compat & 0xFFFFFFC0) != 0)
- sb.AppendFormat("Unknown compatible features: {0:X8}", supblk.ftr_compat);
+ sb.AppendFormat(Localization.Unknown_compatible_features_0, supblk.ftr_compat);
sb.AppendLine();
- sb.AppendFormat("Compatible features if read-only…:").AppendLine();
+ sb.AppendFormat(Localization.Compatible_features_if_read_only).AppendLine();
if((supblk.ftr_ro_compat & EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER) == EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER)
- sb.AppendLine("Reduced number of superblocks");
+ sb.AppendLine(Localization.Reduced_number_of_superblocks);
if((supblk.ftr_ro_compat & EXT2_FEATURE_RO_COMPAT_LARGE_FILE) == EXT2_FEATURE_RO_COMPAT_LARGE_FILE)
- sb.AppendLine("Can have files bigger than 2GiB");
+ sb.AppendLine(Localization.Can_have_files_bigger_than_2GiB);
if((supblk.ftr_ro_compat & EXT2_FEATURE_RO_COMPAT_BTREE_DIR) == EXT2_FEATURE_RO_COMPAT_BTREE_DIR)
- sb.AppendLine("Uses B-Tree for directories");
+ sb.AppendLine(Localization.Uses_B_Tree_for_directories);
if((supblk.ftr_ro_compat & EXT4_FEATURE_RO_COMPAT_HUGE_FILE) == EXT4_FEATURE_RO_COMPAT_HUGE_FILE)
- sb.AppendLine("Can have files bigger than 2TiB (ext4)");
+ sb.AppendLine(Localization.Can_have_files_bigger_than_2TiB_ext4);
if((supblk.ftr_ro_compat & EXT4_FEATURE_RO_COMPAT_GDT_CSUM) == EXT4_FEATURE_RO_COMPAT_GDT_CSUM)
- sb.AppendLine("Group descriptor checksums and sparse inode table (ext4)");
+ sb.AppendLine(Localization.Group_descriptor_checksums_and_sparse_inode_table_ext4);
if((supblk.ftr_ro_compat & EXT4_FEATURE_RO_COMPAT_DIR_NLINK) == EXT4_FEATURE_RO_COMPAT_DIR_NLINK)
- sb.AppendLine("More than 32000 directory entries (ext4)");
+ sb.AppendLine(Localization.More_than_32000_directory_entries_ext4);
if((supblk.ftr_ro_compat & EXT4_FEATURE_RO_COMPAT_EXTRA_ISIZE) == EXT4_FEATURE_RO_COMPAT_EXTRA_ISIZE)
- sb.AppendLine("Supports nanosecond timestamps and creation time (ext4)");
+ sb.AppendLine(Localization.Supports_nanosecond_timestamps_and_creation_time_ext4);
if((supblk.ftr_ro_compat & 0xFFFFFF80) != 0)
- sb.AppendFormat("Unknown read-only compatible features: {0:X8}", supblk.ftr_ro_compat);
+ sb.AppendFormat(Localization.Unknown_read_only_compatible_features_0, supblk.ftr_ro_compat);
sb.AppendLine();
- sb.AppendFormat("Incompatible features…:").AppendLine();
+ sb.AppendFormat(Localization.Incompatible_features).AppendLine();
if((supblk.ftr_incompat & EXT2_FEATURE_INCOMPAT_COMPRESSION) == EXT2_FEATURE_INCOMPAT_COMPRESSION)
- sb.AppendLine("Uses compression");
+ sb.AppendLine(Localization.Uses_compression);
if((supblk.ftr_incompat & EXT2_FEATURE_INCOMPAT_FILETYPE) == EXT2_FEATURE_INCOMPAT_FILETYPE)
- sb.AppendLine("Filetype in directory entries");
+ sb.AppendLine(Localization.Filetype_in_directory_entries);
if((supblk.ftr_incompat & EXT3_FEATURE_INCOMPAT_RECOVER) == EXT3_FEATURE_INCOMPAT_RECOVER)
- sb.AppendLine("Journal needs recovery (ext3)");
+ sb.AppendLine(Localization.Journal_needs_recovery_ext3);
if((supblk.ftr_incompat & EXT3_FEATURE_INCOMPAT_JOURNAL_DEV) == EXT3_FEATURE_INCOMPAT_JOURNAL_DEV)
- sb.AppendLine("Has journal on another device (ext3)");
+ sb.AppendLine(Localization.Has_journal_on_another_device_ext3);
if((supblk.ftr_incompat & EXT2_FEATURE_INCOMPAT_META_BG) == EXT2_FEATURE_INCOMPAT_META_BG)
- sb.AppendLine("Reduced block group backups");
+ sb.AppendLine(Localization.Reduced_block_group_backups);
if((supblk.ftr_incompat & EXT4_FEATURE_INCOMPAT_EXTENTS) == EXT4_FEATURE_INCOMPAT_EXTENTS)
- sb.AppendLine("Volume use extents (ext4)");
+ sb.AppendLine(Localization.Volume_use_extents_ext4);
if((supblk.ftr_incompat & EXT4_FEATURE_INCOMPAT_64BIT) == EXT4_FEATURE_INCOMPAT_64BIT)
- sb.AppendLine("Supports volumes bigger than 2^32 blocks (ext4)");
+ sb.AppendLine(Localization.Supports_volumes_bigger_than_2_32_blocks_ext4);
if((supblk.ftr_incompat & EXT4_FEATURE_INCOMPAT_MMP) == EXT4_FEATURE_INCOMPAT_MMP)
- sb.AppendLine("Multi-mount protection (ext4)");
+ sb.AppendLine(Localization.Multi_mount_protection_ext4);
if((supblk.ftr_incompat & EXT4_FEATURE_INCOMPAT_FLEX_BG) == EXT4_FEATURE_INCOMPAT_FLEX_BG)
- sb.AppendLine("Flexible block group metadata location (ext4)");
+ sb.AppendLine(Localization.Flexible_block_group_metadata_location_ext4);
if((supblk.ftr_incompat & EXT4_FEATURE_INCOMPAT_EA_INODE) == EXT4_FEATURE_INCOMPAT_EA_INODE)
- sb.AppendLine("Extended attributes can reside in inode (ext4)");
+ sb.AppendLine(Localization.Extended_attributes_can_reside_in_inode_ext4);
if((supblk.ftr_incompat & EXT4_FEATURE_INCOMPAT_DIRDATA) == EXT4_FEATURE_INCOMPAT_DIRDATA)
- sb.AppendLine("Data can reside in directory entry (ext4)");
+ sb.AppendLine(Localization.Data_can_reside_in_directory_entry_ext4);
if((supblk.ftr_incompat & 0xFFFFF020) != 0)
- sb.AppendFormat("Unknown incompatible features: {0:X8}", supblk.ftr_incompat);
+ sb.AppendFormat(Localization.Unknown_incompatible_features_0, supblk.ftr_incompat);
information = sb.ToString();
}
diff --git a/Aaru.Filesystems/extFS.cs b/Aaru.Filesystems/extFS.cs
index 36fa7807c..65d972029 100644
--- a/Aaru.Filesystems/extFS.cs
+++ b/Aaru.Filesystems/extFS.cs
@@ -52,16 +52,18 @@ public sealed class extFS : IFilesystem
/// ext superblock magic
const ushort EXT_MAGIC = 0x137D;
+ const string FS_TYPE = "ext";
+
///
public FileSystemType XmlFsType { get; private set; }
///
- public string Name => "Linux extended Filesystem";
+ public string Name => Localization.extFS_Name;
///
public Guid Id => new("076CB3A2-08C2-4D69-BC8A-FCAA2E502BE2");
///
public Encoding Encoding { get; private set; }
///
- public string Author => "Natalia Portillo";
+ public string Author => Authors.NataliaPortillo;
///
public bool Identify(IMediaImage imagePlugin, Partition partition)
@@ -130,22 +132,22 @@ public sealed class extFS : IFilesystem
maxsize = BitConverter.ToUInt32(sbSector, 0x020)
};
- sb.AppendLine("ext filesystem");
- sb.AppendFormat("{0} zones on volume", extSb.zones);
- sb.AppendFormat("{0} free blocks ({1} bytes)", extSb.freecountblk, extSb.freecountblk * 1024);
+ sb.AppendLine(Localization.ext_filesystem);
+ sb.AppendFormat(Localization._0_zones_on_volume, extSb.zones);
+ sb.AppendFormat(Localization._0_free_blocks_1_bytes, extSb.freecountblk, extSb.freecountblk * 1024);
- sb.AppendFormat("{0} inodes on volume, {1} free ({2}%)", extSb.inodes, extSb.freecountind,
+ sb.AppendFormat(Localization._0_inodes_on_volume_1_free_2, extSb.inodes, extSb.freecountind,
extSb.freecountind * 100 / extSb.inodes);
- sb.AppendFormat("First free inode is {0}", extSb.firstfreeind);
- sb.AppendFormat("First free block is {0}", extSb.firstfreeblk);
- sb.AppendFormat("First data zone is {0}", extSb.firstdatazone);
- sb.AppendFormat("Log zone size: {0}", extSb.logzonesize);
- sb.AppendFormat("Max zone size: {0}", extSb.maxsize);
+ sb.AppendFormat(Localization.First_free_inode_is_0, extSb.firstfreeind);
+ sb.AppendFormat(Localization.First_free_block_is_0, extSb.firstfreeblk);
+ sb.AppendFormat(Localization.First_data_zone_is_0, extSb.firstdatazone);
+ sb.AppendFormat(Localization.Log_zone_size_0, extSb.logzonesize);
+ sb.AppendFormat(Localization.Max_zone_size_0, extSb.maxsize);
XmlFsType = new FileSystemType
{
- Type = "ext",
+ Type = FS_TYPE,
FreeClusters = extSb.freecountblk,
FreeClustersSpecified = true,
ClusterSize = 1024,