Move all localizable strings from Aaru.Partitions project to resources.

This commit is contained in:
2022-11-29 03:13:21 +00:00
parent 179f6e3459
commit 8b20b4ef25
26 changed files with 5043 additions and 679 deletions

View File

@@ -46,6 +46,12 @@
<ItemGroup> <ItemGroup>
<Compile Include="AppleMap.cs"/> <Compile Include="AppleMap.cs"/>
<Compile Include="Atari.cs"/> <Compile Include="Atari.cs"/>
<Compile Include="Authors.cs"/>
<Compile Include="Localization\Localization.Designer.cs">
<DesignTime>True</DesignTime>
<AutoGen>True</AutoGen>
<DependentUpon>Localization.resx</DependentUpon>
</Compile>
<Compile Include="MBR.cs"/> <Compile Include="MBR.cs"/>
<Compile Include="NeXT.cs"/> <Compile Include="NeXT.cs"/>
<Compile Include="RDB.cs"/> <Compile Include="RDB.cs"/>
@@ -78,6 +84,10 @@
<EmbeddedResource Include="..\LICENSE.LGPL"> <EmbeddedResource Include="..\LICENSE.LGPL">
<Link>LICENSE.LGPL</Link> <Link>LICENSE.LGPL</Link>
</EmbeddedResource> </EmbeddedResource>
<EmbeddedResource Update="Localization\Localization.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Localization.Designer.cs</LastGenOutput>
</EmbeddedResource>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Spectre.Console" Version="0.45.0"/> <PackageReference Include="Spectre.Console" Version="0.45.0"/>

View File

@@ -0,0 +1,5 @@
<wpf:ResourceDictionary xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib"
xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xml:space="preserve">
<s:Boolean
x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=localization/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary>

View File

@@ -56,11 +56,11 @@ public sealed class Acorn : IPartition
const uint TYPE_MASK = 15; const uint TYPE_MASK = 15;
/// <inheritdoc /> /// <inheritdoc />
public string Name => "Acorn FileCore partitions"; public string Name => Localization.Acorn_Name;
/// <inheritdoc /> /// <inheritdoc />
public Guid Id => new("A7C8FEBE-8D00-4933-B9F3-42184C8BA808"); public Guid Id => new("A7C8FEBE-8D00-4933-B9F3-42184C8BA808");
/// <inheritdoc /> /// <inheritdoc />
public string Author => "Natalia Portillo"; public string Author => Authors.NataliaPortillo;
/// <inheritdoc /> /// <inheritdoc />
public bool GetInformation(IMediaImage imagePlugin, out List<Partition> partitions, ulong sectorOffset) public bool GetInformation(IMediaImage imagePlugin, out List<Partition> partitions, ulong sectorOffset)

View File

@@ -61,11 +61,11 @@ public sealed class AppleMap : IPartition
const uint HFS_MAGIC_OLD = 0x54465331; const uint HFS_MAGIC_OLD = 0x54465331;
/// <inheritdoc /> /// <inheritdoc />
public string Name => "Apple Partition Map"; public string Name => Localization.AppleMap_Name;
/// <inheritdoc /> /// <inheritdoc />
public Guid Id => new("36405F8D-4F1A-07F5-209C-223D735D6D22"); public Guid Id => new("36405F8D-4F1A-07F5-209C-223D735D6D22");
/// <inheritdoc /> /// <inheritdoc />
public string Author => "Natalia Portillo"; public string Author => Authors.NataliaPortillo;
/// <inheritdoc /> /// <inheritdoc />
public bool GetInformation(IMediaImage imagePlugin, out List<Partition> partitions, ulong sectorOffset) public bool GetInformation(IMediaImage imagePlugin, out List<Partition> partitions, ulong sectorOffset)
@@ -223,7 +223,7 @@ public sealed class AppleMap : IPartition
// Check for a partition entry that's 512-byte aligned // Check for a partition entry that's 512-byte aligned
if(entry.signature == APM_MAGIC) if(entry.signature == APM_MAGIC)
{ {
AaruConsole.DebugWriteLine("AppleMap Plugin", "Found misaligned entry."); AaruConsole.DebugWriteLine("AppleMap Plugin", Localization.Found_misaligned_entry);
entrySize = 512; entrySize = 512;
entryCount = entry.entries; entryCount = entry.entries;
skipDdm = 512; skipDdm = 512;
@@ -235,7 +235,7 @@ public sealed class AppleMap : IPartition
if(entry.signature == APM_MAGIC) if(entry.signature == APM_MAGIC)
{ {
AaruConsole.DebugWriteLine("AppleMap Plugin", "Found aligned entry."); AaruConsole.DebugWriteLine("AppleMap Plugin", Localization.Found_aligned_entry);
entrySize = sectorSize; entrySize = sectorSize;
entryCount = entry.entries; entryCount = entry.entries;
skipDdm = sectorSize; skipDdm = sectorSize;
@@ -251,7 +251,7 @@ public sealed class AppleMap : IPartition
if(entry.signature == APM_MAGIC) if(entry.signature == APM_MAGIC)
{ {
AaruConsole.DebugWriteLine("AppleMap Plugin", "Found aligned entry."); AaruConsole.DebugWriteLine("AppleMap Plugin", Localization.Found_aligned_entry);
entrySize = sectorSize; entrySize = sectorSize;
entryCount = entry.entries; entryCount = entry.entries;
skipDdm = sectorSize; skipDdm = sectorSize;
@@ -342,38 +342,39 @@ public sealed class AppleMap : IPartition
Scheme = Name Scheme = Name
}; };
sb.AppendLine("Partition flags:"); sb.AppendLine(Localization.Partition_flags);
if(flags.HasFlag(AppleMapFlags.Valid)) if(flags.HasFlag(AppleMapFlags.Valid))
sb.AppendLine("Partition is valid."); sb.AppendLine(Localization.Partition_is_valid);
if(flags.HasFlag(AppleMapFlags.Allocated)) if(flags.HasFlag(AppleMapFlags.Allocated))
sb.AppendLine("Partition entry is allocated."); sb.AppendLine(Localization.Partition_entry_is_allocated);
if(flags.HasFlag(AppleMapFlags.InUse)) if(flags.HasFlag(AppleMapFlags.InUse))
sb.AppendLine("Partition is in use."); sb.AppendLine(Localization.Partition_is_in_use);
if(flags.HasFlag(AppleMapFlags.Bootable)) if(flags.HasFlag(AppleMapFlags.Bootable))
sb.AppendLine("Partition is bootable."); sb.AppendLine(Localization.Partition_is_bootable);
if(flags.HasFlag(AppleMapFlags.Readable)) if(flags.HasFlag(AppleMapFlags.Readable))
sb.AppendLine("Partition is readable."); sb.AppendLine(Localization.Partition_is_readable);
if(flags.HasFlag(AppleMapFlags.Writable)) if(flags.HasFlag(AppleMapFlags.Writable))
sb.AppendLine("Partition is writable."); sb.AppendLine(Localization.Partition_is_writable);
if(flags.HasFlag(AppleMapFlags.Bootable)) if(flags.HasFlag(AppleMapFlags.Bootable))
{ {
sb.AppendFormat("First boot sector: {0}", entry.first_boot_block * entrySize / sectorSize).AppendLine(); sb.AppendFormat(Localization.First_boot_sector_0, entry.first_boot_block * entrySize / sectorSize).
AppendLine();
sb.AppendFormat("Boot is {0} bytes.", entry.boot_size).AppendLine(); sb.AppendFormat(Localization.Boot_is_0_bytes, entry.boot_size).AppendLine();
sb.AppendFormat("Boot load address: 0x{0:X8}", entry.load_address).AppendLine(); sb.AppendFormat(Localization.Boot_load_address_0_X8, entry.load_address).AppendLine();
sb.AppendFormat("Boot entry point: 0x{0:X8}", entry.entry_point).AppendLine(); sb.AppendFormat(Localization.Boot_entry_point_0_X8, entry.entry_point).AppendLine();
sb.AppendFormat("Boot code checksum: 0x{0:X8}", entry.checksum).AppendLine(); sb.AppendFormat(Localization.Boot_code_checksum_0_X8, entry.checksum).AppendLine();
sb.AppendFormat("Processor: {0}", StringHandlers.CToString(entry.processor)).AppendLine(); sb.AppendFormat(Localization.Processor_0, StringHandlers.CToString(entry.processor)).AppendLine();
if(flags.HasFlag(AppleMapFlags.PicCode)) if(flags.HasFlag(AppleMapFlags.PicCode))
sb.AppendLine("Partition's boot code is position independent."); sb.AppendLine(Localization.Partition_boot_code_is_position_independent);
} }
partition.Description = sb.ToString(); partition.Description = sb.ToString();
@@ -388,7 +389,7 @@ public sealed class AppleMap : IPartition
// Some CD and DVDs end with an Apple_Free that expands beyond the disc size... // Some CD and DVDs end with an Apple_Free that expands beyond the disc size...
else if(partition.Start < imagePlugin.Info.Sectors) else if(partition.Start < imagePlugin.Info.Sectors)
{ {
AaruConsole.DebugWriteLine("AppleMap Plugin", "Cutting last partition end ({0}) to media size ({1})", AaruConsole.DebugWriteLine("AppleMap Plugin", Localization.Cutting_last_partition_end_0_to_media_size_1,
partition.End, imagePlugin.Info.Sectors - 1); partition.End, imagePlugin.Info.Sectors - 1);
partition.Length = imagePlugin.Info.Sectors - partition.Start; partition.Length = imagePlugin.Info.Sectors - partition.Start;
@@ -397,7 +398,7 @@ public sealed class AppleMap : IPartition
} }
else else
AaruConsole.DebugWriteLine("AppleMap Plugin", AaruConsole.DebugWriteLine("AppleMap Plugin",
"Not adding partition because start ({0}) is outside media size ({1})", Localization.Not_adding_partition_because_start_0_is_outside_media_size_1,
partition.Start, imagePlugin.Info.Sectors - 1); partition.Start, imagePlugin.Info.Sectors - 1);
} }

View File

@@ -52,12 +52,12 @@ public sealed class Apricot : IPartition
}; };
readonly string[] _bootTypeCodes = readonly string[] _bootTypeCodes =
{ {
"Non-bootable", "Apricot & XI RAM BIOS", "Generic ROM BIOS", "Apricot & XI ROM BIOS", Localization.Non_bootable, Localization.Apricot_XI_RAM_BIOS, Localization.Generic_ROM_BIOS,
"Apricot Portable ROM BIOS", "Apricot F1 ROM BIOS" Localization.Apricot_XI_ROM_BIOS, Localization.Apricot_Portable_ROM_BIOS, Localization.Apricot_F1_ROM_BIOS
}; };
readonly string[] _diskTypeCodes = readonly string[] _diskTypeCodes =
{ {
"MF1DD 70-track", "MF1DD", "MF2DD", "Winchester 5M", "Winchester 10M", "Winchester 20M" Localization.MF1DD_70_track, "MF1DD", "MF2DD", "Winchester 5M", "Winchester 10M", "Winchester 20M"
}; };
readonly int[] _lineModes = readonly int[] _lineModes =
{ {
@@ -69,15 +69,16 @@ public sealed class Apricot : IPartition
}; };
readonly string[] _operatingSystemCodes = readonly string[] _operatingSystemCodes =
{ {
"Invalid", "MS-DOS", "UCSD Pascal", "CP/M", "Concurrent CP/M" Localization.Invalid_operating_system, "MS-DOS", "UCSD Pascal", Localization.CPM, "Concurrent CP/M"
}; };
readonly string[] _parityTypes = readonly string[] _parityTypes =
{ {
"None", "Odd", "Even", "Mark", "Space" Localization.None_parity, Localization.Odd_parity, Localization.Even_parity, Localization.Mark_parity,
Localization.Space_parity
}; };
readonly string[] _printDevices = readonly string[] _printDevices =
{ {
"Parallel", "Serial" Localization.Parallel_print_device, Localization.Serial_print_device
}; };
readonly double[] _stopBits = readonly double[] _stopBits =
{ {
@@ -85,11 +86,11 @@ public sealed class Apricot : IPartition
}; };
/// <inheritdoc /> /// <inheritdoc />
public string Name => "ACT Apricot partitions"; public string Name => Localization.Apricot_Name;
/// <inheritdoc /> /// <inheritdoc />
public Guid Id => new("8CBF5864-7B5A-47A0-8CEB-199C74FA22DE"); public Guid Id => new("8CBF5864-7B5A-47A0-8CEB-199C74FA22DE");
/// <inheritdoc /> /// <inheritdoc />
public string Author => "Natalia Portillo"; public string Author => Authors.NataliaPortillo;
/// <inheritdoc /> /// <inheritdoc />
public bool GetInformation(IMediaImage imagePlugin, out List<Partition> partitions, ulong sectorOffset) public bool GetInformation(IMediaImage imagePlugin, out List<Partition> partitions, ulong sectorOffset)
@@ -124,13 +125,15 @@ public sealed class Apricot : IPartition
AaruConsole.DebugWriteLine("Apricot partitions", "label.operatingSystem = {0} ({1})", label.operatingSystem, AaruConsole.DebugWriteLine("Apricot partitions", "label.operatingSystem = {0} ({1})", label.operatingSystem,
label.operatingSystem < _operatingSystemCodes.Length label.operatingSystem < _operatingSystemCodes.Length
? _operatingSystemCodes[label.operatingSystem] : "Unknown"); ? _operatingSystemCodes[label.operatingSystem]
: Localization.Unknown_operating_system);
AaruConsole.DebugWriteLine("Apricot partitions", "label.writeProtected = {0}", label.writeProtected); AaruConsole.DebugWriteLine("Apricot partitions", "label.writeProtected = {0}", label.writeProtected);
AaruConsole.DebugWriteLine("Apricot partitions", "label.copyProtected = {0}", label.copyProtected); AaruConsole.DebugWriteLine("Apricot partitions", "label.copyProtected = {0}", label.copyProtected);
AaruConsole.DebugWriteLine("Apricot partitions", "label.bootType = {0} ({1})", label.bootType, AaruConsole.DebugWriteLine("Apricot partitions", "label.bootType = {0} ({1})", label.bootType,
label.bootType < _bootTypeCodes.Length ? _bootTypeCodes[label.bootType] : "Unknown"); label.bootType < _bootTypeCodes.Length ? _bootTypeCodes[label.bootType]
: Localization.Unknown_boot_type);
AaruConsole.DebugWriteLine("Apricot partitions", "label.partitionCount = {0}", label.partitionCount); AaruConsole.DebugWriteLine("Apricot partitions", "label.partitionCount = {0}", label.partitionCount);
AaruConsole.DebugWriteLine("Apricot partitions", "label.winchester = {0}", label.winchester); AaruConsole.DebugWriteLine("Apricot partitions", "label.winchester = {0}", label.winchester);
@@ -172,7 +175,7 @@ public sealed class Apricot : IPartition
AaruConsole.DebugWriteLine("Apricot partitions", "label.mainBPB.diskType = {0} ({1})", label.mainBPB.diskType, AaruConsole.DebugWriteLine("Apricot partitions", "label.mainBPB.diskType = {0} ({1})", label.mainBPB.diskType,
label.mainBPB.diskType < _diskTypeCodes.Length label.mainBPB.diskType < _diskTypeCodes.Length
? _diskTypeCodes[label.mainBPB.diskType] : "Unknown"); ? _diskTypeCodes[label.mainBPB.diskType] : Localization.Unknown_disk_type);
AaruConsole.DebugWriteLine("Apricot partitions", "label.mainBPB.startSector = {0}", label.mainBPB.startSector); AaruConsole.DebugWriteLine("Apricot partitions", "label.mainBPB.startSector = {0}", label.mainBPB.startSector);
@@ -187,7 +190,8 @@ public sealed class Apricot : IPartition
AaruConsole.DebugWriteLine("Apricot partitions", "label.diagnosticsFlag = {0}", label.diagnosticsFlag); AaruConsole.DebugWriteLine("Apricot partitions", "label.diagnosticsFlag = {0}", label.diagnosticsFlag);
AaruConsole.DebugWriteLine("Apricot partitions", "label.prnDevice = {0} ({1})", label.prnDevice, AaruConsole.DebugWriteLine("Apricot partitions", "label.prnDevice = {0} ({1})", label.prnDevice,
label.prnDevice < _printDevices.Length ? _printDevices[label.prnDevice] : "Unknown"); label.prnDevice < _printDevices.Length ? _printDevices[label.prnDevice]
: Localization.Unknown_print_device);
AaruConsole.DebugWriteLine("Apricot partitions", "label.bellVolume = {0}", label.bellVolume); AaruConsole.DebugWriteLine("Apricot partitions", "label.bellVolume = {0}", label.bellVolume);
AaruConsole.DebugWriteLine("Apricot partitions", "label.enableCache = {0}", label.enableCache); AaruConsole.DebugWriteLine("Apricot partitions", "label.enableCache = {0}", label.enableCache);
@@ -235,7 +239,8 @@ public sealed class Apricot : IPartition
AaruConsole.DebugWriteLine("Apricot partitions", "label.parityCheck = {0}", label.parityCheck); AaruConsole.DebugWriteLine("Apricot partitions", "label.parityCheck = {0}", label.parityCheck);
AaruConsole.DebugWriteLine("Apricot partitions", "label.parityType = {0} ({1})", label.parityType, AaruConsole.DebugWriteLine("Apricot partitions", "label.parityType = {0} ({1})", label.parityType,
label.parityType < _parityTypes.Length ? _parityTypes[label.parityType] : "Unknown"); label.parityType < _parityTypes.Length ? _parityTypes[label.parityType]
: Localization.Unknown_parity_type);
AaruConsole.DebugWriteLine("Apricot partitions", "label.txXonXoff = {0}", label.txXonXoff); AaruConsole.DebugWriteLine("Apricot partitions", "label.txXonXoff = {0}", label.txXonXoff);
AaruConsole.DebugWriteLine("Apricot partitions", "label.rxXonXoff = {0}", label.rxXonXoff); AaruConsole.DebugWriteLine("Apricot partitions", "label.rxXonXoff = {0}", label.rxXonXoff);
@@ -306,7 +311,8 @@ public sealed class Apricot : IPartition
AaruConsole.DebugWriteLine("Apricot partitions", "label.partitions[{1}].diskType = {0} ({2})", AaruConsole.DebugWriteLine("Apricot partitions", "label.partitions[{1}].diskType = {0} ({2})",
label.partitions[i].diskType, i, label.partitions[i].diskType, i,
label.partitions[i].diskType < _diskTypeCodes.Length label.partitions[i].diskType < _diskTypeCodes.Length
? _diskTypeCodes[label.partitions[i].diskType] : "Unknown"); ? _diskTypeCodes[label.partitions[i].diskType]
: Localization.Unknown_disk_type);
AaruConsole.DebugWriteLine("Apricot partitions", "label.partitions[{1}].startSector = {0}", AaruConsole.DebugWriteLine("Apricot partitions", "label.partitions[{1}].startSector = {0}",
label.partitions[i].startSector, i); label.partitions[i].startSector, i);

View File

@@ -61,11 +61,11 @@ public sealed class AtariPartitions : IPartition
const uint TYPE_MINIX2 = 0x004D4E58; const uint TYPE_MINIX2 = 0x004D4E58;
/// <inheritdoc /> /// <inheritdoc />
public string Name => "Atari partitions"; public string Name => Localization.AtariPartitions_Name;
/// <inheritdoc /> /// <inheritdoc />
public Guid Id => new("d1dd0f24-ec39-4c4d-9072-be31919a3b5e"); public Guid Id => new("d1dd0f24-ec39-4c4d-9072-be31919a3b5e");
/// <inheritdoc /> /// <inheritdoc />
public string Author => "Natalia Portillo"; public string Author => Authors.NataliaPortillo;
/// <inheritdoc /> /// <inheritdoc />
public bool GetInformation(IMediaImage imagePlugin, out List<Partition> partitions, ulong sectorOffset) public bool GetInformation(IMediaImage imagePlugin, out List<Partition> partitions, ulong sectorOffset)
@@ -112,7 +112,7 @@ public sealed class AtariPartitions : IPartition
var sha1Ctx = new Sha1Context(); var sha1Ctx = new Sha1Context();
sha1Ctx.Update(table.Boot); sha1Ctx.Update(table.Boot);
AaruConsole.DebugWriteLine("Atari partition plugin", "Boot code SHA1: {0}", sha1Ctx.End()); AaruConsole.DebugWriteLine("Atari partition plugin", Localization.Boot_code_SHA1_0, sha1Ctx.End());
for(int i = 0; i < 8; i++) for(int i = 0; i < 8; i++)
{ {
@@ -176,7 +176,7 @@ public sealed class AtariPartitions : IPartition
{ {
if(table.Entries[i].Start + table.Entries[i].Length > imagePlugin.Info.Sectors) if(table.Entries[i].Start + table.Entries[i].Length > imagePlugin.Info.Sectors)
AaruConsole.DebugWriteLine("Atari partition plugin", AaruConsole.DebugWriteLine("Atari partition plugin",
"WARNING: End of partition goes beyond device size"); Localization.WARNING_End_of_partition_goes_beyond_device_size);
ulong sectorSize = imagePlugin.Info.SectorSize; ulong sectorSize = imagePlugin.Info.SectorSize;
@@ -203,48 +203,48 @@ public sealed class AtariPartitions : IPartition
switch(type) switch(type)
{ {
case TYPE_GEMDOS: case TYPE_GEMDOS:
part.Description = "Atari GEMDOS partition"; part.Description = Localization.Atari_GEMDOS_partition;
break; break;
case TYPE_BIG_GEMDOS: case TYPE_BIG_GEMDOS:
part.Description = "Atari GEMDOS partition bigger than 32 MiB"; part.Description = Localization.Atari_GEMDOS_partition_bigger_than_32_MiB;
break; break;
case TYPE_LINUX: case TYPE_LINUX:
part.Description = "Linux partition"; part.Description = Localization.Linux_partition;
break; break;
case TYPE_SWAP: case TYPE_SWAP:
part.Description = "Swap partition"; part.Description = Localization.Swap_partition;
break; break;
case TYPE_RAW: case TYPE_RAW:
part.Description = "RAW partition"; part.Description = Localization.RAW_partition;
break; break;
case TYPE_NETBSD: case TYPE_NETBSD:
part.Description = "NetBSD partition"; part.Description = Localization.NetBSD_partition;
break; break;
case TYPE_NETBSD_SWAP: case TYPE_NETBSD_SWAP:
part.Description = "NetBSD swap partition"; part.Description = Localization.NetBSD_swap_partition;
break; break;
case TYPE_SYSTEM_V: case TYPE_SYSTEM_V:
part.Description = "Atari UNIX partition"; part.Description = Localization.Atari_UNIX_partition;
break; break;
case TYPE_MAC: case TYPE_MAC:
part.Description = "Macintosh partition"; part.Description = Localization.Macintosh_partition;
break; break;
case TYPE_MINIX: case TYPE_MINIX:
case TYPE_MINIX2: case TYPE_MINIX2:
part.Description = "MINIX partition"; part.Description = Localization.MINIX_partition;
break; break;
default: default:
part.Description = "Unknown partition type"; part.Description = Localization.Unknown_partition_type;
break; break;
} }
@@ -301,7 +301,7 @@ public sealed class AtariPartitions : IPartition
if(extendedTable.Entries[j].Start + extendedTable.Entries[j].Length > imagePlugin.Info.Sectors) if(extendedTable.Entries[j].Start + extendedTable.Entries[j].Length > imagePlugin.Info.Sectors)
AaruConsole.DebugWriteLine("Atari partition plugin", AaruConsole.DebugWriteLine("Atari partition plugin",
"WARNING: End of partition goes beyond device size"); Localization.WARNING_End_of_partition_goes_beyond_device_size);
ulong sectorSize = imagePlugin.Info.SectorSize; ulong sectorSize = imagePlugin.Info.SectorSize;
@@ -328,48 +328,48 @@ public sealed class AtariPartitions : IPartition
switch(extendedType) switch(extendedType)
{ {
case TYPE_GEMDOS: case TYPE_GEMDOS:
part.Description = "Atari GEMDOS partition"; part.Description = Localization.Atari_GEMDOS_partition;
break; break;
case TYPE_BIG_GEMDOS: case TYPE_BIG_GEMDOS:
part.Description = "Atari GEMDOS partition bigger than 32 MiB"; part.Description = Localization.Atari_GEMDOS_partition_bigger_than_32_MiB;
break; break;
case TYPE_LINUX: case TYPE_LINUX:
part.Description = "Linux partition"; part.Description = Localization.Linux_partition;
break; break;
case TYPE_SWAP: case TYPE_SWAP:
part.Description = "Swap partition"; part.Description = Localization.Swap_partition;
break; break;
case TYPE_RAW: case TYPE_RAW:
part.Description = "RAW partition"; part.Description = Localization.RAW_partition;
break; break;
case TYPE_NETBSD: case TYPE_NETBSD:
part.Description = "NetBSD partition"; part.Description = Localization.NetBSD_partition;
break; break;
case TYPE_NETBSD_SWAP: case TYPE_NETBSD_SWAP:
part.Description = "NetBSD swap partition"; part.Description = Localization.NetBSD_swap_partition;
break; break;
case TYPE_SYSTEM_V: case TYPE_SYSTEM_V:
part.Description = "Atari UNIX partition"; part.Description = Localization.Atari_UNIX_partition;
break; break;
case TYPE_MAC: case TYPE_MAC:
part.Description = "Macintosh partition"; part.Description = Localization.Macintosh_partition;
break; break;
case TYPE_MINIX: case TYPE_MINIX:
case TYPE_MINIX2: case TYPE_MINIX2:
part.Description = "MINIX partition"; part.Description = Localization.MINIX_partition;
break; break;
default: default:
part.Description = "Unknown partition type"; part.Description = Localization.Unknown_partition_type;
break; break;
} }
@@ -407,7 +407,7 @@ public sealed class AtariPartitions : IPartition
if(table.IcdEntries[i].Start + table.IcdEntries[i].Length > imagePlugin.Info.Sectors) if(table.IcdEntries[i].Start + table.IcdEntries[i].Length > imagePlugin.Info.Sectors)
AaruConsole.DebugWriteLine("Atari partition plugin", AaruConsole.DebugWriteLine("Atari partition plugin",
"WARNING: End of partition goes beyond device size"); Localization.WARNING_End_of_partition_goes_beyond_device_size);
ulong sectorSize = imagePlugin.Info.SectorSize; ulong sectorSize = imagePlugin.Info.SectorSize;
@@ -434,48 +434,48 @@ public sealed class AtariPartitions : IPartition
switch(type) switch(type)
{ {
case TYPE_GEMDOS: case TYPE_GEMDOS:
part.Description = "Atari GEMDOS partition"; part.Description = Localization.Atari_GEMDOS_partition;
break; break;
case TYPE_BIG_GEMDOS: case TYPE_BIG_GEMDOS:
part.Description = "Atari GEMDOS partition bigger than 32 MiB"; part.Description = Localization.Atari_GEMDOS_partition_bigger_than_32_MiB;
break; break;
case TYPE_LINUX: case TYPE_LINUX:
part.Description = "Linux partition"; part.Description = Localization.Linux_partition;
break; break;
case TYPE_SWAP: case TYPE_SWAP:
part.Description = "Swap partition"; part.Description = Localization.Swap_partition;
break; break;
case TYPE_RAW: case TYPE_RAW:
part.Description = "RAW partition"; part.Description = Localization.RAW_partition;
break; break;
case TYPE_NETBSD: case TYPE_NETBSD:
part.Description = "NetBSD partition"; part.Description = Localization.NetBSD_partition;
break; break;
case TYPE_NETBSD_SWAP: case TYPE_NETBSD_SWAP:
part.Description = "NetBSD swap partition"; part.Description = Localization.NetBSD_swap_partition;
break; break;
case TYPE_SYSTEM_V: case TYPE_SYSTEM_V:
part.Description = "Atari UNIX partition"; part.Description = Localization.Atari_UNIX_partition;
break; break;
case TYPE_MAC: case TYPE_MAC:
part.Description = "Macintosh partition"; part.Description = Localization.Macintosh_partition;
break; break;
case TYPE_MINIX: case TYPE_MINIX:
case TYPE_MINIX2: case TYPE_MINIX2:
part.Description = "MINIX partition"; part.Description = Localization.MINIX_partition;
break; break;
default: default:
part.Description = "Unknown partition type"; part.Description = Localization.Unknown_partition_type;
break; break;
} }

View File

@@ -0,0 +1,34 @@
// /***************************************************************************
// Aaru Data Preservation Suite
// ----------------------------------------------------------------------------
//
// Filename : Authors.cs
// Author(s) : Natalia Portillo <claunia@claunia.com>
//
// Component : Partitioning scheme plugins.
//
// --[ 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 <http://www.gnu.org/licenses/>.
//
// ----------------------------------------------------------------------------
// Copyright © 2011-2022 Natalia Portillo
// ****************************************************************************/
namespace Aaru.Partitions;
static class Authors
{
internal const string NataliaPortillo = "Natalia Portillo";
}

View File

@@ -65,11 +65,11 @@ public sealed class BSD : IPartition
}; };
/// <inheritdoc /> /// <inheritdoc />
public string Name => "BSD disklabel"; public string Name => Localization.BSD_Name;
/// <inheritdoc /> /// <inheritdoc />
public Guid Id => new("246A6D93-4F1A-1F8A-344D-50187A5513A9"); public Guid Id => new("246A6D93-4F1A-1F8A-344D-50187A5513A9");
/// <inheritdoc /> /// <inheritdoc />
public string Author => "Natalia Portillo"; public string Author => Authors.NataliaPortillo;
/// <inheritdoc /> /// <inheritdoc />
public bool GetInformation(IMediaImage imagePlugin, out List<Partition> partitions, ulong sectorOffset) public bool GetInformation(IMediaImage imagePlugin, out List<Partition> partitions, ulong sectorOffset)
@@ -104,7 +104,8 @@ public sealed class BSD : IPartition
dl = Marshal.ByteArrayToStructureLittleEndian<DiskLabel>(sector); dl = Marshal.ByteArrayToStructureLittleEndian<DiskLabel>(sector);
AaruConsole.DebugWriteLine("BSD plugin", AaruConsole.DebugWriteLine("BSD plugin",
"dl.magic on sector {0} at offset {1} = 0x{2:X8} (expected 0x{3:X8})", Localization.
BSD_GetInformation_dl_magic_on_sector_0_at_offset_1_equals_2_X8_expected_3_X8,
location + sectorOffset, offset, dl.d_magic, DISK_MAGIC); location + sectorOffset, offset, dl.d_magic, DISK_MAGIC);
if((dl.d_magic != DISK_MAGIC || dl.d_magic2 != DISK_MAGIC) && if((dl.d_magic != DISK_MAGIC || dl.d_magic2 != DISK_MAGIC) &&
@@ -200,7 +201,7 @@ public sealed class BSD : IPartition
} }
AaruConsole.DebugWriteLine("BSD plugin", "part.start = {0}", part.Start); AaruConsole.DebugWriteLine("BSD plugin", "part.start = {0}", part.Start);
AaruConsole.DebugWriteLine("BSD plugin", "Adding it..."); AaruConsole.DebugWriteLine("BSD plugin", Localization.BSD_GetInformation_Adding_it);
partitions.Add(part); partitions.Add(part);
counter++; counter++;
} }
@@ -212,36 +213,36 @@ public sealed class BSD : IPartition
{ {
switch(typ) switch(typ)
{ {
case fsType.Unused: return "Unused entry"; case fsType.Unused: return Localization.Unused_entry;
case fsType.Swap: return "Swap partition"; case fsType.Swap: return Localization.Swap_partition;
case fsType.V6: return "UNIX 6th Edition"; case fsType.V6: return Localization.UNIX_6th_Edition;
case fsType.V7: return "UNIX 7th Edition"; case fsType.V7: return Localization.UNIX_7th_Edition;
case fsType.SystemV: return "UNIX System V"; case fsType.SystemV: return Localization.UNIX_System_V;
case fsType.V7_1K: return "UNIX 7th Edition with 1K blocks"; case fsType.V7_1K: return Localization.UNIX_7th_Edition_with_1K_blocks;
case fsType.V8: return "UNIX 8th Edition with 4K blocks"; case fsType.V8: return Localization.UNIX_8th_Edition_with_4K_blocks;
case fsType.BSDFFS: return "4.2BSD Fast File System"; case fsType.BSDFFS: return Localization._4_2_BSD_Fast_File_System;
case fsType.BSDLFS: return "4.4LFS"; case fsType.BSDLFS: return Localization._4_4_LFS;
case fsType.HPFS: return "HPFS"; case fsType.HPFS: return Localization.HPFS;
case fsType.ISO9660: return "ISO9660"; case fsType.ISO9660: return Localization.ISO9660;
case fsType.Boot: case fsType.Boot:
case fsType.SysVBoot: return "Boot"; case fsType.SysVBoot: return Localization.Boot;
case fsType.AFFS: return "Amiga FFS"; case fsType.AFFS: return Localization.Amiga_FFS;
case fsType.HFS: return "Apple HFS"; case fsType.HFS: return Localization.Apple_HFS;
case fsType.ADVfs: return "Digital Advanced File System"; case fsType.ADVfs: return Localization.Digital_Advanced_File_System;
case fsType.LSMpublic: return "Digital LSM Public Region"; case fsType.LSMpublic: return Localization.Digital_LSM_Public_Region;
case fsType.LSMprivate: return "Digital LSM Private Region"; case fsType.LSMprivate: return Localization.Digital_LSM_Private_Region;
case fsType.LSMsimple: return "Digital LSM Simple Disk"; case fsType.LSMsimple: return Localization.Digital_LSM_Simple_Disk;
case fsType.CCD: return "Concatenated disk"; case fsType.CCD: return Localization.Concatenated_disk;
case fsType.JFS2: return "IBM JFS2"; case fsType.JFS2: return Localization.IBM_JFS2;
case fsType.HAMMER: return "Hammer"; case fsType.HAMMER: return Localization.Hammer;
case fsType.HAMMER2: return "Hammer2"; case fsType.HAMMER2: return Localization.Hammer2;
case fsType.UDF: return "UDF"; case fsType.UDF: return Localization.UDF;
case fsType.EFS: return "EFS"; case fsType.EFS: return Localization.EFS;
case fsType.ZFS: return "ZFS"; case fsType.ZFS: return Localization.ZFS;
case fsType.NANDFS: return "FreeBSD nandfs"; case fsType.NANDFS: return Localization.FreeBSD_nandfs;
case fsType.MSDOS: return "FAT"; case fsType.MSDOS: return Localization.FAT;
case fsType.Other: return "Other or unknown"; case fsType.Other: return Localization.Other_or_unknown;
default: return "Unknown"; default: return Localization.Unknown_partition_type;
} }
} }

View File

@@ -48,11 +48,11 @@ public sealed class DEC : IPartition
const int PT_VALID = 1; const int PT_VALID = 1;
/// <inheritdoc /> /// <inheritdoc />
public string Name => "DEC disklabel"; public string Name => Localization.DEC_Name;
/// <inheritdoc /> /// <inheritdoc />
public Guid Id => new("58CEC3B7-3B93-4D47-86EE-D6DADE9D444F"); public Guid Id => new("58CEC3B7-3B93-4D47-86EE-D6DADE9D444F");
/// <inheritdoc /> /// <inheritdoc />
public string Author => "Natalia Portillo"; public string Author => Authors.NataliaPortillo;
/// <inheritdoc /> /// <inheritdoc />
public bool GetInformation(IMediaImage imagePlugin, out List<CommonTypes.Partition> partitions, ulong sectorOffset) public bool GetInformation(IMediaImage imagePlugin, out List<CommonTypes.Partition> partitions, ulong sectorOffset)

View File

@@ -49,11 +49,11 @@ public sealed class DragonFlyBSD : IPartition
const uint DISK_MAGIC64 = 0xC4464C59; const uint DISK_MAGIC64 = 0xC4464C59;
/// <inheritdoc /> /// <inheritdoc />
public string Name => "DragonFly BSD 64-bit disklabel"; public string Name => Localization.DragonFlyBSD_Name;
/// <inheritdoc /> /// <inheritdoc />
public Guid Id => new("D49E41A6-D952-4760-9D94-03DAE2450C5F"); public Guid Id => new("D49E41A6-D952-4760-9D94-03DAE2450C5F");
/// <inheritdoc /> /// <inheritdoc />
public string Author => "Natalia Portillo"; public string Author => Authors.NataliaPortillo;
/// <inheritdoc /> /// <inheritdoc />
public bool GetInformation(IMediaImage imagePlugin, out List<Partition> partitions, ulong sectorOffset) public bool GetInformation(IMediaImage imagePlugin, out List<Partition> partitions, ulong sectorOffset)

View File

@@ -52,11 +52,11 @@ public sealed class GuidPartitionTable : IPartition
const uint GPT_REVISION1 = 0x00010000; const uint GPT_REVISION1 = 0x00010000;
/// <inheritdoc /> /// <inheritdoc />
public string Name => "GUID Partition Table"; public string Name => Localization.GuidPartitionTable_Name;
/// <inheritdoc /> /// <inheritdoc />
public Guid Id => new("CBC9D281-C1D0-44E8-9038-4D66FD2678AB"); public Guid Id => new("CBC9D281-C1D0-44E8-9038-4D66FD2678AB");
/// <inheritdoc /> /// <inheritdoc />
public string Author => "Natalia Portillo"; public string Author => Authors.NataliaPortillo;
/// <inheritdoc /> /// <inheritdoc />
public bool GetInformation(IMediaImage imagePlugin, out List<Partition> partitions, ulong sectorOffset) public bool GetInformation(IMediaImage imagePlugin, out List<Partition> partitions, ulong sectorOffset)
@@ -91,7 +91,7 @@ public sealed class GuidPartitionTable : IPartition
if(signature == GPT_MAGIC) if(signature == GPT_MAGIC)
{ {
AaruConsole.DebugWriteLine("GPT Plugin", "Found unaligned signature", signature); AaruConsole.DebugWriteLine("GPT Plugin", Localization.Found_unaligned_signature, signature);
byte[] real = new byte[512]; byte[] real = new byte[512];
Array.Copy(hdrBytes, 512, real, 0, 512); Array.Copy(hdrBytes, 512, real, 0, 512);
hdrBytes = real; hdrBytes = real;
@@ -222,105 +222,105 @@ public sealed class GuidPartitionTable : IPartition
switch(strType) switch(strType)
{ {
case "024DEE41-33E7-11D3-9D69-0008C781F39F": return "MBR scheme"; case "024DEE41-33E7-11D3-9D69-0008C781F39F": return Localization.MBR_scheme;
case "C12A7328-F81F-11D2-BA4B-00A0C93EC93B": return "EFI System"; case "C12A7328-F81F-11D2-BA4B-00A0C93EC93B": return Localization.EFI_System;
case "21686148-6449-6E6F-744E-656564454649": return "BIOS Boot"; case "21686148-6449-6E6F-744E-656564454649": return Localization.BIOS_Boot;
case "D3BFE2DE-3DAF-11DF-BA40-E3A556D89593": return "Intel Fast Flash (iFFS)"; case "D3BFE2DE-3DAF-11DF-BA40-E3A556D89593": return Localization.Intel_Fast_Flash_iFFS;
case "F4019732-066E-4E12-8273-346C5641494F": return "Sony boot"; case "F4019732-066E-4E12-8273-346C5641494F": return Localization.Sony_boot;
case "BFBFAFE7-A34F-448A-9A5B-6213EB736C22": return "Lenovo boot"; case "BFBFAFE7-A34F-448A-9A5B-6213EB736C22": return Localization.Lenovo_boot;
case "E3C9E316-0B5C-4DB8-817D-F92DF00215AE": return "Microsoft Reserved (MSR)"; case "E3C9E316-0B5C-4DB8-817D-F92DF00215AE": return Localization.Microsoft_Reserved_MSR;
case "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7": return "Microsoft Basic data"; case "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7": return Localization.Microsoft_Basic_data;
case "5808C8AA-7E8F-42E0-85D2-E1E90434CFB3": return "Logical Disk Manager (LDM) metadata"; case "5808C8AA-7E8F-42E0-85D2-E1E90434CFB3": return Localization.Logical_Disk_Manager_LDM_metadata;
case "AF9B60A0-1431-4F62-BC68-3311714A69AD": return "Logical Disk Manager data"; case "AF9B60A0-1431-4F62-BC68-3311714A69AD": return Localization.Logical_Disk_Manager_data;
case "DE94BBA4-06D1-4D40-A16A-BFD50179D6AC": return "Windows Recovery Environment"; case "DE94BBA4-06D1-4D40-A16A-BFD50179D6AC": return Localization.Windows_Recovery_Environment;
case "37AFFC90-EF7D-4E96-91C3-2D7AE055B174": return "IBM General Parallel File System (GPFS)"; case "37AFFC90-EF7D-4E96-91C3-2D7AE055B174": return Localization.IBM_General_Parallel_File_System_GPFS;
case "E75CAF8F-F680-4CEE-AFA3-B001E56EFC2D": return "Windows Storage Spaces"; case "E75CAF8F-F680-4CEE-AFA3-B001E56EFC2D": return Localization.Windows_Storage_Spaces;
case "75894C1E-3AEB-11D3-B7C1-7B03A0000000": return "HP-UX Data"; case "75894C1E-3AEB-11D3-B7C1-7B03A0000000": return Localization.HP_UX_Data;
case "E2A1E728-32E3-11D6-A682-7B03A0000000": return "HP-UX Service"; case "E2A1E728-32E3-11D6-A682-7B03A0000000": return Localization.HP_UX_Service;
case "0FC63DAF-8483-4772-8E79-3D69D8477DE4": return "Linux filesystem"; case "0FC63DAF-8483-4772-8E79-3D69D8477DE4": return Localization.Linux_filesystem;
case "A19D880F-05FC-4D3B-A006-743F0F84911E": return "Linux RAID"; case "A19D880F-05FC-4D3B-A006-743F0F84911E": return Localization.Linux_RAID;
case "44479540-F297-41B2-9AF7-D131D5F0458A": return "Linux Root (x86)"; case "44479540-F297-41B2-9AF7-D131D5F0458A": return Localization.Linux_Root_x86;
case "4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709": return "Linux Root (x86-64)"; case "4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709": return Localization.Linux_Root_x86_64;
case "69DAD710-2CE4-4E3C-B16C-21A1D49ABED3": return "Linux Root (32-bit ARM)"; case "69DAD710-2CE4-4E3C-B16C-21A1D49ABED3": return Localization.Linux_Root_32_bit_ARM;
case "B921B045-1DF0-41C3-AF44-4C6F280D3FAE": return "Linux Root (64-bit ARM/AArch64)"; case "B921B045-1DF0-41C3-AF44-4C6F280D3FAE": return Localization.Linux_Root_AArch64;
case "0657FD6D-A4AB-43C4-84E5-0933C84B4F4F": return "Linux Swap"; case "0657FD6D-A4AB-43C4-84E5-0933C84B4F4F": return Localization.Linux_swap;
case "E6D6D379-F507-44C2-A23C-238F2A3DF928": return "Logical Volume Manager (LVM)"; case "E6D6D379-F507-44C2-A23C-238F2A3DF928": return Localization.Logical_Volume_Manager_LVM;
case "933AC7E1-2EB4-4F13-B844-0E14E2AEF915": return "Linux /home"; case "933AC7E1-2EB4-4F13-B844-0E14E2AEF915": return Localization.Linux_home;
case "3B8F8425-20E0-4F3B-907F-1A25A76F98E8": return "Linux /srv"; case "3B8F8425-20E0-4F3B-907F-1A25A76F98E8": return Localization.Linux_srv;
case "7FFEC5C9-2D00-49B7-8941-3EA10A5586B7": return "Plain dm-crypt"; case "7FFEC5C9-2D00-49B7-8941-3EA10A5586B7": return Localization.Plain_dm_crypt;
case "CA7D7CCB-63ED-4C53-861C-1742536059CC": return "LUKS"; case "CA7D7CCB-63ED-4C53-861C-1742536059CC": return Localization.LUKS;
case "8DA63339-0007-60C0-C436-083AC8230908": return "Linux Reserved"; case "8DA63339-0007-60C0-C436-083AC8230908": return Localization.Linux_Reserved;
case "83BD6B9D-7F41-11DC-BE0B-001560B84F0F": return "FreeBSD Boot"; case "83BD6B9D-7F41-11DC-BE0B-001560B84F0F": return Localization.FreeBSD_Boot;
case "516E7CB4-6ECF-11D6-8FF8-00022D09712B": return "FreeBSD Data"; case "516E7CB4-6ECF-11D6-8FF8-00022D09712B": return Localization.FreeBSD_Data;
case "516E7CB5-6ECF-11D6-8FF8-00022D09712B": return "FreeBSD Swap"; case "516E7CB5-6ECF-11D6-8FF8-00022D09712B": return Localization.FreeBSD_swap;
case "516E7CB6-6ECF-11D6-8FF8-00022D09712B": return "FreeBSD UFS"; case "516E7CB6-6ECF-11D6-8FF8-00022D09712B": return Localization.FreeBSD_UFS;
case "516E7CB7-6ECF-11D6-8FF8-00022D09712B": return "FreeBSD UFS2"; case "516E7CB7-6ECF-11D6-8FF8-00022D09712B": return Localization.FreeBSD_UFS2;
case "516E7CB8-6ECF-11D6-8FF8-00022D09712B": return "FreeBSD Vinum"; case "516E7CB8-6ECF-11D6-8FF8-00022D09712B": return Localization.FreeBSD_Vinum;
case "516E7CBA-6ECF-11D6-8FF8-00022D09712B": return "FreeBSD ZFS"; case "516E7CBA-6ECF-11D6-8FF8-00022D09712B": return Localization.FreeBSD_ZFS;
case "74BA7DD9-A689-11E1-BD04-00E081286ACF": return "FreeBSD nandfs"; case "74BA7DD9-A689-11E1-BD04-00E081286ACF": return Localization.FreeBSD_nandfs;
case "48465300-0000-11AA-AA11-00306543ECAC": return "Apple HFS"; case "48465300-0000-11AA-AA11-00306543ECAC": return Localization.Apple_HFS;
case "55465300-0000-11AA-AA11-00306543ECAC": return "Apple UFS"; case "55465300-0000-11AA-AA11-00306543ECAC": return Localization.Apple_UFS;
case "52414944-0000-11AA-AA11-00306543ECAC": return "Apple RAID"; case "52414944-0000-11AA-AA11-00306543ECAC": return Localization.Apple_RAID;
case "52414944-5F4F-11AA-AA11-00306543ECAC": return "Apple RAID, offline"; case "52414944-5F4F-11AA-AA11-00306543ECAC": return Localization.Apple_RAID_offline;
case "426F6F74-0000-11AA-AA11-00306543ECAC": return "Apple Boot"; case "426F6F74-0000-11AA-AA11-00306543ECAC": return Localization.Apple_Boot;
case "4C616265-6C00-11AA-AA11-00306543ECAC": return "Apple Label"; case "4C616265-6C00-11AA-AA11-00306543ECAC": return Localization.Apple_Label;
case "5265636F-7665-11AA-AA11-00306543ECAC": return "Apple TV Recovery"; case "5265636F-7665-11AA-AA11-00306543ECAC": return Localization.Apple_TV_Recovery;
case "53746F72-6167-11AA-AA11-00306543ECAC": return "Apple Core Storage"; case "53746F72-6167-11AA-AA11-00306543ECAC": return Localization.Apple_Core_Storage;
case "6A82CB45-1DD2-11B2-99A6-080020736631": return "Solaris Boot"; case "6A82CB45-1DD2-11B2-99A6-080020736631": return Localization.Solaris_boot;
case "6A85CF4D-1DD2-11B2-99A6-080020736631": return "Solaris Root"; case "6A85CF4D-1DD2-11B2-99A6-080020736631": return Localization.Solaris_Root;
case "6A87C46F-1DD2-11B2-99A6-080020736631": return "Solaris Swap"; case "6A87C46F-1DD2-11B2-99A6-080020736631": return Localization.Solaris_Swap;
case "6A8B642B-1DD2-11B2-99A6-080020736631": return "Solaris Backup"; case "6A8B642B-1DD2-11B2-99A6-080020736631": return Localization.Solaris_Backup;
case "6A898CC3-1DD2-11B2-99A6-080020736631": return "Solaris /usr or Apple ZFS"; case "6A898CC3-1DD2-11B2-99A6-080020736631": return Localization.Solaris_usr_or_Apple_ZFS;
case "6A8EF2E9-1DD2-11B2-99A6-080020736631": return "Solaris /var"; case "6A8EF2E9-1DD2-11B2-99A6-080020736631": return Localization.Solaris_var;
case "6A90BA39-1DD2-11B2-99A6-080020736631": return "Solaris /home"; case "6A90BA39-1DD2-11B2-99A6-080020736631": return Localization.Solaris_home;
case "6A9283A5-1DD2-11B2-99A6-080020736631": return "Solaris Alternate sector"; case "6A9283A5-1DD2-11B2-99A6-080020736631": return Localization.Solaris_Alternate_sector;
case "6A945A3B-1DD2-11B2-99A6-080020736631": case "6A945A3B-1DD2-11B2-99A6-080020736631":
case "6A9630D1-1DD2-11B2-99A6-080020736631": case "6A9630D1-1DD2-11B2-99A6-080020736631":
case "6A980767-1DD2-11B2-99A6-080020736631": case "6A980767-1DD2-11B2-99A6-080020736631":
case "6A96237F-1DD2-11B2-99A6-080020736631": case "6A96237F-1DD2-11B2-99A6-080020736631":
case "6A8D2AC7-1DD2-11B2-99A6-080020736631": return "Solaris Reserved"; case "6A8D2AC7-1DD2-11B2-99A6-080020736631": return Localization.Solaris_Reserved;
case "49F48D32-B10E-11DC-B99B-0019D1879648": return "NetBSD Swap"; case "49F48D32-B10E-11DC-B99B-0019D1879648": return Localization.NetBSD_Swap;
case "49F48D5A-B10E-11DC-B99B-0019D1879648": return "NetBSD FFS"; case "49F48D5A-B10E-11DC-B99B-0019D1879648": return Localization.NetBSD_FFS;
case "49F48D82-B10E-11DC-B99B-0019D1879648": return "NetBSD LFS"; case "49F48D82-B10E-11DC-B99B-0019D1879648": return Localization.NetBSD_LFS;
case "49F48DAA-B10E-11DC-B99B-0019D1879648": return "NetBSD RAID"; case "49F48DAA-B10E-11DC-B99B-0019D1879648": return Localization.NetBSD_RAID;
case "2DB519C4-B10F-11DC-B99B-0019D1879648": return "NetBSD Concatenated"; case "2DB519C4-B10F-11DC-B99B-0019D1879648": return Localization.NetBSD_Concatenated;
case "2DB519EC-B10F-11DC-B99B-0019D1879648": return "NetBSD Encrypted"; case "2DB519EC-B10F-11DC-B99B-0019D1879648": return Localization.NetBSD_Encrypted;
case "FE3A2A5D-4F32-41A7-B725-ACCC3285A309": return "ChromeOS kernel"; case "FE3A2A5D-4F32-41A7-B725-ACCC3285A309": return Localization.ChromeOS_kernel;
case "3CB8E202-3B7E-47DD-8A3C-7FF2A13CFCEC": return "ChromeOS rootfs"; case "3CB8E202-3B7E-47DD-8A3C-7FF2A13CFCEC": return Localization.ChromeOS_rootfs;
case "2E0A753D-9E48-43B0-8337-B15192CB1B5E": return "ChromeOS future use"; case "2E0A753D-9E48-43B0-8337-B15192CB1B5E": return Localization.ChromeOS_future_use;
case "42465331-3BA3-10F1-802A-4861696B7521": return "Haiku BFS"; case "42465331-3BA3-10F1-802A-4861696B7521": return Localization.Haiku_BFS;
case "85D5E45E-237C-11E1-B4B3-E89A8F7FC3A7": return "MidnightBSD Boot"; case "85D5E45E-237C-11E1-B4B3-E89A8F7FC3A7": return Localization.MidnightBSD_Boot;
case "85D5E45A-237C-11E1-B4B3-E89A8F7FC3A7": return "MidnightBSD Data"; case "85D5E45A-237C-11E1-B4B3-E89A8F7FC3A7": return Localization.MidnightBSD_Data;
case "85D5E45B-237C-11E1-B4B3-E89A8F7FC3A7": return "MidnightBSD Swap"; case "85D5E45B-237C-11E1-B4B3-E89A8F7FC3A7": return Localization.MidnightBSD_Swap;
case "0394EF8B-237E-11E1-B4B3-E89A8F7FC3A7": return "MidnightBSD UFS"; case "0394EF8B-237E-11E1-B4B3-E89A8F7FC3A7": return Localization.MidnightBSD_UFS;
case "85D5E45C-237C-11E1-B4B3-E89A8F7FC3A7": return "MidnightBSD Vinum"; case "85D5E45C-237C-11E1-B4B3-E89A8F7FC3A7": return Localization.MidnightBSD_Vinum;
case "85D5E45D-237C-11E1-B4B3-E89A8F7FC3A7": return "MidnightBSD ZFS"; case "85D5E45D-237C-11E1-B4B3-E89A8F7FC3A7": return Localization.MidnightBSD_ZFS;
case "45B0969E-9B03-4F30-B4C6-B4B80CEFF106": return "Ceph Journal"; case "45B0969E-9B03-4F30-B4C6-B4B80CEFF106": return Localization.Ceph_Journal;
case "45B0969E-9B03-4F30-B4C6-5EC00CEFF106": return "Ceph dm-crypt Encrypted Journal"; case "45B0969E-9B03-4F30-B4C6-5EC00CEFF106": return Localization.Ceph_dm_crypt_Encrypted_Journal;
case "4FBD7E29-9D25-41B8-AFD0-062C0CEFF05D": return "Ceph OSD"; case "4FBD7E29-9D25-41B8-AFD0-062C0CEFF05D": return Localization.Ceph_OSD;
case "4FBD7E29-9D25-41B8-AFD0-5EC00CEFF05D": return "Ceph dm-crypt OSD"; case "4FBD7E29-9D25-41B8-AFD0-5EC00CEFF05D": return Localization.Ceph_dm_crypt_OSD;
case "89C57F98-2FE5-4DC0-89C1-F3AD0CEFF2BE": return "Ceph disk in creation"; case "89C57F98-2FE5-4DC0-89C1-F3AD0CEFF2BE": return Localization.Ceph_disk_in_creation;
case "89C57F98-2FE5-4DC0-89C1-5EC00CEFF2BE": return "Ceph dm-crypt disk in creation"; case "89C57F98-2FE5-4DC0-89C1-5EC00CEFF2BE": return Localization.Ceph_dm_crypt_disk_in_creation;
case "824CC7A0-36A8-11E3-890A-952519AD3F61": return "OpenBSD Data"; case "824CC7A0-36A8-11E3-890A-952519AD3F61": return Localization.OpenBSD_Data;
case "CEF5A9AD-73BC-4601-89F3-CDEEEEE321A1": return "QNX Power-safe (QNX6)"; case "CEF5A9AD-73BC-4601-89F3-CDEEEEE321A1": return Localization.QNX_Power_safe_QNX6;
case "C91818F9-8025-47AF-89D2-F030D7000C2C": return "Plan 9"; case "C91818F9-8025-47AF-89D2-F030D7000C2C": return Localization.Plan_9;
case "9D275380-40AD-11DB-BF97-000C2911D1B8": return "VMware vmkcore (coredump)"; case "9D275380-40AD-11DB-BF97-000C2911D1B8": return Localization.VMware_vmkcore_coredump;
case "AA31E02A-400F-11DB-9590-000C2911D1B8": return "VMware VMFS"; case "AA31E02A-400F-11DB-9590-000C2911D1B8": return Localization.VMware_VMFS;
case "9198EFFC-31C0-11DB-8F78-000C2911D1B8": return "VMware Reserved"; case "9198EFFC-31C0-11DB-8F78-000C2911D1B8": return Localization.VMware_Reserved;
case "7412F7D5-A156-4B13-81DC-867174929325": return "ONIE boot"; case "7412F7D5-A156-4B13-81DC-867174929325": return Localization.ONIE_boot;
case "D4E6E2CD-4469-46F3-B5CB-1BFF57AFC149": return "ONIE config"; case "D4E6E2CD-4469-46F3-B5CB-1BFF57AFC149": return Localization.ONIE_config;
case "9E1A2D38-C612-4316-AA26-8B49521E5A8B": return "PowerPC PReP boot"; case "9E1A2D38-C612-4316-AA26-8B49521E5A8B": return Localization.PowerPC_PReP_boot;
case "0311FC50-01CA-4725-AD77-9ADBB20ACE98": return "Acronis Secure Zone"; case "0311FC50-01CA-4725-AD77-9ADBB20ACE98": return Localization.Acronis_Secure_Zone;
case "7C3457EF-0000-11AA-AA11-00306543ECAC": return "Apple File System"; case "7C3457EF-0000-11AA-AA11-00306543ECAC": return Localization.Apple_File_System;
case "9D087404-1CA5-11DC-8817-01301BB8A9F5": return "DragonflyBSD Label"; case "9D087404-1CA5-11DC-8817-01301BB8A9F5": return Localization.DragonflyBSD_Label;
case "9D58FDBD-1CA5-11DC-8817-01301BB8A9F5": return "DragonflyBSD Swap"; case "9D58FDBD-1CA5-11DC-8817-01301BB8A9F5": return Localization.DragonflyBSD_Swap;
case "9D94CE7C-1CA5-11DC-8817-01301BB8A9F5": return "DragonflyBSD UFS"; case "9D94CE7C-1CA5-11DC-8817-01301BB8A9F5": return Localization.DragonflyBSD_UFS;
case "9DD4478F-1CA5-11DC-8817-01301BB8A9F5": return "DragonflyBSD Vinum"; case "9DD4478F-1CA5-11DC-8817-01301BB8A9F5": return Localization.DragonflyBSD_Vinum;
case "DBD5211B-1CA5-11DC-8817-01301BB8A9F5": return "DragonflyBSD CCD"; case "DBD5211B-1CA5-11DC-8817-01301BB8A9F5": return Localization.DragonflyBSD_CCD;
case "3D48CE54-1D16-11DC-8817-01301BB8A9F5": return "DragonflyBSD Label"; case "3D48CE54-1D16-11DC-8817-01301BB8A9F5": return Localization.DragonflyBSD_Label;
case "BD215AB2-1D16-11DC-8696-01301BB8A9F5": return "DragonflyBSD Legacy"; case "BD215AB2-1D16-11DC-8696-01301BB8A9F5": return Localization.DragonflyBSD_Legacy;
case "61DC63AC-6E38-11DC-8513-01301BB8A9F5": return "DragonflyBSD Hammer"; case "61DC63AC-6E38-11DC-8513-01301BB8A9F5": return Localization.DragonflyBSD_Hammer;
case "5CBB9AD1-862D-11DC-A94D-01301BB8A9F5": return "DragonflyBSD Hammer2"; case "5CBB9AD1-862D-11DC-A94D-01301BB8A9F5": return Localization.DragonflyBSD_Hammer2;
default: return ""; default: return "";
} }
} }

View File

@@ -51,11 +51,11 @@ public sealed class Human68K : IPartition
const uint X68K_MAGIC = 0x5836384B; const uint X68K_MAGIC = 0x5836384B;
/// <inheritdoc /> /// <inheritdoc />
public string Name => "Human 68k partitions"; public string Name => Localization.Human68K_Name;
/// <inheritdoc /> /// <inheritdoc />
public Guid Id => new("246A6D93-4F1A-1F8A-344D-50187A5513A9"); public Guid Id => new("246A6D93-4F1A-1F8A-344D-50187A5513A9");
/// <inheritdoc /> /// <inheritdoc />
public string Author => "Natalia Portillo"; public string Author => Authors.NataliaPortillo;
/// <inheritdoc /> /// <inheritdoc />
public bool GetInformation(IMediaImage imagePlugin, out List<Partition> partitions, ulong sectorOffset) public bool GetInformation(IMediaImage imagePlugin, out List<Partition> partitions, ulong sectorOffset)

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -58,205 +58,256 @@ public sealed class MBR : IPartition
static readonly string[] _mbrTypes = static readonly string[] _mbrTypes =
{ {
// 0x00 // 0x00
"Empty", "FAT12", "XENIX root", "XENIX /usr", Localization.Empty, Localization.FAT12, Localization.XENIX_root, Localization.XENIX_usr,
// 0x04 // 0x04
"FAT16 < 32 MiB", "Extended", "FAT16", "IFS (HPFS/NTFS)", Localization.FAT16_32_MiB, Localization.Extended, Localization.FAT16, Localization.IFS_HPFS_NTFS,
// 0x08 // 0x08
"AIX boot, OS/2, Commodore DOS", "AIX data, Coherent, QNX", "Coherent swap, OPUS, OS/2 Boot Manager", "FAT32", Localization.AIX_boot_OS2_Commodore_DOS, Localization.AIX_data_Coherent_QNX,
Localization.Coherent_swap_OPUS_OS_2_Boot_Manager, Localization.FAT32,
// 0x0C // 0x0C
"FAT32 (LBA)", "Unknown", "FAT16 (LBA)", "Extended (LBA)", Localization.FAT32_LBA, Localization.Unknown_partition_type, Localization.FAT16_LBA, Localization.Extended_LBA,
// 0x10 // 0x10
"OPUS", "Hidden FAT12", "Compaq diagnostics, recovery partition", "Unknown", Localization.OPUS, Localization.Hidden_FAT12, Localization.Compaq_diagnostics_recovery_partition,
Localization.Unknown_partition_type,
// 0x14 // 0x14
"Hidden FAT16 < 32 MiB, AST-DOS", "Unknown", "Hidden FAT16", "Hidden IFS (HPFS/NTFS)", Localization.Hidden_FAT16_32_MiB_AST_DOS, Localization.Unknown_partition_type, Localization.Hidden_FAT16,
Localization.Hidden_IFS_HPFS_NTFS,
// 0x18 // 0x18
"AST-Windows swap", "Willowtech Photon coS", "Unknown", "Hidden FAT32", Localization.AST_Windows_swap, Localization.Willowtech_Photon_coS, Localization.Unknown_partition_type,
Localization.Hidden_FAT32,
// 0x1C // 0x1C
"Hidden FAT32 (LBA)", "Unknown", "Hidden FAT16 (LBA)", "Unknown", Localization.Hidden_FAT32_LBA, Localization.Unknown_partition_type, Localization.Hidden_FAT16_LBA,
Localization.Unknown_partition_type,
// 0x20 // 0x20
"Willowsoft Overture File System", "Oxygen FSo2", "Oxygen Extended ", "SpeedStor reserved", Localization.Willowsoft_Overture_File_System, Localization.Oxygen_FSo2, Localization.Oxygen_Extended,
Localization.SpeedStor_reserved,
// 0x24 // 0x24
"NEC-DOS", "Unknown", "SpeedStor reserved", "Hidden NTFS", Localization.NEC_DOS, Localization.Unknown_partition_type, Localization.SpeedStor_reserved,
Localization.Hidden_NTFS,
// 0x28 // 0x28
"Unknown", "Unknown", "Unknown", "Unknown", Localization.Unknown_partition_type, Localization.Unknown_partition_type, Localization.Unknown_partition_type,
Localization.Unknown_partition_type,
// 0x2C // 0x2C
"Unknown", "Unknown", "Unknown", "Unknown", Localization.Unknown_partition_type, Localization.Unknown_partition_type, Localization.Unknown_partition_type,
Localization.Unknown_partition_type,
// 0x30 // 0x30
"Unknown", "SpeedStor reserved", "Unknown", "SpeedStor reserved", Localization.Unknown_partition_type, Localization.SpeedStor_reserved, Localization.Unknown_partition_type,
Localization.SpeedStor_reserved,
// 0x34 // 0x34
"SpeedStor reserved", "Unknown", "SpeedStor reserved", "Unknown", Localization.SpeedStor_reserved, Localization.Unknown_partition_type, Localization.SpeedStor_reserved,
Localization.Unknown_partition_type,
// 0x38 // 0x38
"Theos", "Plan 9", "Unknown", "Unknown", Localization.Theos, Localization.Plan_9, Localization.Unknown_partition_type,
Localization.Unknown_partition_type,
// 0x3C // 0x3C
"Partition Magic", "Hidden NetWare", "Unknown", "Unknown", Localization.Partition_Magic, Localization.Hidden_NetWare, Localization.Unknown_partition_type,
Localization.Unknown_partition_type,
// 0x40 // 0x40
"VENIX 80286", "PReP Boot", "Secure File System", "PTS-DOS", Localization.VENIX_80286, Localization.PReP_Boot, Localization.Secure_File_System, Localization.PTS_DOS,
// 0x44 // 0x44
"Unknown", "Priam, EUMEL/Elan", "EUMEL/Elan", "EUMEL/Elan", Localization.Unknown_partition_type, Localization.Priam_EUMEL_Elan, Localization.EUMEL_Elan,
Localization.EUMEL_Elan,
// 0x48 // 0x48
"EUMEL/Elan", "Unknown", "ALFS/THIN lightweight filesystem for DOS", "Unknown", Localization.EUMEL_Elan, Localization.Unknown_partition_type,
Localization.ALFS_THIN_lightweight_filesystem_for_DOS, Localization.Unknown_partition_type,
// 0x4C // 0x4C
"Unknown", "QNX 4", "QNX 4", "QNX 4, Oberon", Localization.Unknown_partition_type, Localization.QNX_4, Localization.QNX_4, Localization.QNX_4_Oberon,
// 0x50 // 0x50
"Ontrack DM, R/O, FAT", "Ontrack DM, R/W, FAT", "CP/M, Microport UNIX", "Ontrack DM 6", Localization.Ontrack_DM_RO_FAT, Localization.Ontrack_DM_RW_FAT, Localization.CPM_Microport_UNIX,
Localization.Ontrack_DM_6,
// 0x54 // 0x54
"Ontrack DM 6", "EZ-Drive", "Golden Bow VFeature", "Unknown", Localization.Ontrack_DM_6, Localization.EZ_Drive, Localization.Golden_Bow_VFeature,
Localization.Unknown_partition_type,
// 0x58 // 0x58
"Unknown", "Unknown", "Unknown", "Unknown", Localization.Unknown_partition_type, Localization.Unknown_partition_type, Localization.Unknown_partition_type,
Localization.Unknown_partition_type,
// 0x5C // 0x5C
"Priam EDISK", "Unknown", "Unknown", "Unknown", Localization.Priam_EDISK, Localization.Unknown_partition_type, Localization.Unknown_partition_type,
Localization.Unknown_partition_type,
// 0x60 // 0x60
"Unknown", "SpeedStor", "Unknown", "GNU Hurd, System V, 386/ix", Localization.Unknown_partition_type, Localization.SpeedStor, Localization.Unknown_partition_type,
Localization.GNU_Hurd_System_V_386ix,
// 0x64 // 0x64
"NetWare 286", "NetWare", "NetWare 386", "NetWare", Localization.NetWare_286, Localization.NetWare, Localization.NetWare_386, Localization.NetWare,
// 0x68 // 0x68
"NetWare", "NetWare NSS", "Unknown", "Unknown", Localization.NetWare, Localization.NetWare_NSS, Localization.Unknown_partition_type,
Localization.Unknown_partition_type,
// 0x6C // 0x6C
"Unknown", "Unknown", "Unknown", "Unknown", Localization.Unknown_partition_type, Localization.Unknown_partition_type, Localization.Unknown_partition_type,
Localization.Unknown_partition_type,
// 0x70 // 0x70
"DiskSecure Multi-Boot", "Unknown", "UNIX 7th Edition", "Unknown", Localization.DiskSecure_Multi_Boot, Localization.Unknown_partition_type, Localization.UNIX_7th_Edition,
Localization.Unknown_partition_type,
// 0x74 // 0x74
"Unknown", "IBM PC/IX", "Unknown", "Unknown", Localization.Unknown_partition_type, Localization.IBM_PC_IX, Localization.Unknown_partition_type,
Localization.Unknown_partition_type,
// 0x78 // 0x78
"Unknown", "Unknown", "Unknown", "Unknown", Localization.Unknown_partition_type, Localization.Unknown_partition_type, Localization.Unknown_partition_type,
Localization.Unknown_partition_type,
// 0x7C // 0x7C
"Unknown", "Unknown", "Unknown", "Unknown", Localization.Unknown_partition_type, Localization.Unknown_partition_type, Localization.Unknown_partition_type,
Localization.Unknown_partition_type,
// 0x80 // 0x80
"Old MINIX", "MINIX, Old Linux", "Linux swap, Solaris", "Linux", Localization.Old_MINIX, Localization.MINIX_Old_Linux, Localization.Linux_swap_Solaris, Localization.Linux,
// 0x84 // 0x84
"Hidden by OS/2, APM hibernation", "Linux extended", "NT Stripe Set", "NT Stripe Set", Localization.Hidden_by_OS2_APM_hibernation, Localization.Linux_extended, Localization.NT_Stripe_Set,
Localization.NT_Stripe_Set,
// 0x88 // 0x88
"Linux Plaintext", "Unknown", "Unknown", "Unknown", Localization.Linux_Plaintext, Localization.Unknown_partition_type, Localization.Unknown_partition_type,
Localization.Unknown_partition_type,
// 0x8C // 0x8C
"Unknown", "Unknown", "Linux LVM", "Unknown", Localization.Unknown_partition_type, Localization.Unknown_partition_type, Localization.Linux_LVM,
Localization.Unknown_partition_type,
// 0x90 // 0x90
"Unknown", "Unknown", "Unknown", "Amoeba, Hidden Linux", Localization.Unknown_partition_type, Localization.Unknown_partition_type, Localization.Unknown_partition_type,
Localization.Amoeba_Hidden_Linux,
// 0x94 // 0x94
"Amoeba bad blocks", "Unknown", "Unknown", "Unknown", Localization.Amoeba_bad_blocks, Localization.Unknown_partition_type, Localization.Unknown_partition_type,
Localization.Unknown_partition_type,
// 0x98 // 0x98
"Unknown", "Mylex EISA SCSI", "Unknown", "Unknown", Localization.Unknown_partition_type, Localization.Mylex_EISA_SCSI, Localization.Unknown_partition_type,
Localization.Unknown_partition_type,
// 0x9C // 0x9C
"Unknown", "Unknown", "Unknown", "BSD/OS", Localization.Unknown_partition_type, Localization.Unknown_partition_type, Localization.Unknown_partition_type,
Localization.BSD_OS,
// 0xA0 // 0xA0
"Hibernation", "HP Volume Expansion", "Unknown", "HP Volume Expansion", Localization.Hibernation, Localization.HP_Volume_Expansion, Localization.Unknown_partition_type,
Localization.HP_Volume_Expansion,
// 0xA4 // 0xA4
"HP Volume Expansion", "FreeBSD", "OpenBSD", "NeXTStep", Localization.HP_Volume_Expansion, Localization.FreeBSD, Localization.OpenBSD, Localization.NeXTStep,
// 0xA8 // 0xA8
"Apple UFS", "NetBSD", "Olivetti DOS FAT12", "Apple Boot", Localization.Apple_UFS, Localization.NetBSD, Localization.Olivetti_DOS_FAT12, Localization.Apple_Boot,
// 0xAC // 0xAC
"Unknown", "Unknown", "Unknown", "Apple HFS", Localization.Unknown_partition_type, Localization.Unknown_partition_type, Localization.Unknown_partition_type,
Localization.Apple_HFS,
// 0xB0 // 0xB0
"BootStar", "HP Volume Expansion", "Unknown", "HP Volume Expansion", Localization.BootStar, Localization.HP_Volume_Expansion, Localization.Unknown_partition_type,
Localization.HP_Volume_Expansion,
// 0xB4 // 0xB4
"HP Volume Expansion", "Unknown", "HP Volume Expansion", "BSDi", Localization.HP_Volume_Expansion, Localization.Unknown_partition_type, Localization.HP_Volume_Expansion,
Localization.BSDi,
// 0xB8 // 0xB8
"BSDi swap", "Unknown", "Unknown", "PTS BootWizard", "BSDi swap", Localization.Unknown_partition_type, Localization.Unknown_partition_type,
Localization.PTS_BootWizard,
// 0xBC // 0xBC
"Unknown", "Unknown", "Solaris boot", "Solaris", Localization.Unknown_partition_type, Localization.Unknown_partition_type, Localization.Solaris_boot,
Localization.Solaris,
// 0xC0 // 0xC0
"Novell DOS, DR-DOS secured", "DR-DOS secured FAT12", "DR-DOS reserved", "DR-DOS reserved", Localization.Novell_DOS_DR_DOS_secured, Localization.DR_DOS_secured_FAT12, Localization.DR_DOS_reserved,
Localization.DR_DOS_reserved,
// 0xC4 // 0xC4
"DR-DOS secured FAT16 < 32 MiB", "Unknown", "DR-DOS secured FAT16", "Syrinx", Localization.DR_DOS_secured_FAT16_32_MiB, Localization.Unknown_partition_type,
Localization.DR_DOS_secured_FAT16, Localization.Syrinx,
// 0xC8 // 0xC8
"DR-DOS reserved", "DR-DOS reserved", "DR-DOS reserved", "DR-DOS secured FAT32", Localization.DR_DOS_reserved, Localization.DR_DOS_reserved, Localization.DR_DOS_reserved,
Localization.DR_DOS_secured_FAT32,
// 0xCC // 0xCC
"DR-DOS secured FAT32 (LBA)", "DR-DOS reserved", "DR-DOS secured FAT16 (LBA)", "DR-DOS secured extended (LBA)", Localization.DR_DOS_secured_FAT32_LBA, Localization.DR_DOS_reserved, Localization.DR_DOS_secured_FAT16_LBA,
Localization.DR_DOS_secured_extended_LBA,
// 0xD0 // 0xD0
"Multiuser DOS secured FAT12", "Multiuser DOS secured FAT12", "Unknown", "Unknown", Localization.Multiuser_DOS_secured_FAT12, Localization.Multiuser_DOS_secured_FAT12,
Localization.Unknown_partition_type, Localization.Unknown_partition_type,
// 0xD4 // 0xD4
"Multiuser DOS secured FAT16 < 32 MiB", "Multiuser DOS secured extended", "Multiuser DOS secured FAT16", Localization.Multiuser_DOS_secured_FAT16_32_MiB, Localization.Multiuser_DOS_secured_extended,
"Unknown", Localization.Multiuser_DOS_secured_FAT16, Localization.Unknown_partition_type,
// 0xD8 // 0xD8
"CP/M", "Unknown", "Filesystem-less data", "CP/M, CCP/M, CTOS", Localization.CPM, Localization.Unknown_partition_type, Localization.Filesystem_less_data,
Localization.CPM_CCPM_CTOS,
// 0xDC // 0xDC
"Unknown", "Unknown", "Dell partition", "BootIt EMBRM", Localization.Unknown_partition_type, Localization.Unknown_partition_type, Localization.Dell_partition,
Localization.BootIt_EMBRM,
// 0xE0 // 0xE0
"Unknown", "SpeedStor", "DOS read/only", "SpeedStor", Localization.Unknown_partition_type, Localization.SpeedStor, Localization.DOS_read_only, Localization.SpeedStor,
// 0xE4 // 0xE4
"SpeedStor", "Tandy DOS", "SpeedStor", "Unknown", Localization.SpeedStor, Localization.Tandy_DOS, Localization.SpeedStor, Localization.Unknown_partition_type,
// 0xE8 // 0xE8
"Unknown", "Unknown", "Unknown", "BeOS", Localization.Unknown_partition_type, Localization.Unknown_partition_type, Localization.Unknown_partition_type,
Localization.BeOS,
// 0xEC // 0xEC
"Unknown", "Spryt*x", "Guid Partition Table", "EFI system partition", Localization.Unknown_partition_type, Localization.Sprytx, Localization.Guid_Partition_Table,
Localization.EFI_system_partition,
// 0xF0 // 0xF0
"Linux boot", "SpeedStor", "DOS 3.3 secondary, Unisys DOS", "SpeedStor", Localization.Linux_boot, Localization.SpeedStor, Localization.DOS_3_3_secondary_Unisys_DOS,
Localization.SpeedStor,
// 0xF4 // 0xF4
"SpeedStor", "Prologue", "SpeedStor", "Unknown", Localization.SpeedStor, Localization.Prologue, Localization.SpeedStor, Localization.Unknown_partition_type,
// 0xF8 // 0xF8
"Unknown", "Unknown", "Unknown", "VMWare VMFS", Localization.Unknown_partition_type, Localization.Unknown_partition_type, Localization.Unknown_partition_type,
Localization.VMware_VMFS,
// 0xFC // 0xFC
"VMWare VMKCORE", "Linux RAID, FreeDOS", "SpeedStor, LANStep, PS/2 IML", "Xenix bad block" Localization.VMWare_VMKCORE, Localization.Linux_RAID_FreeDOS, Localization.SpeedStor_LANStep_PS2_IML,
Localization.Xenix_bad_block
}; };
/// <inheritdoc /> /// <inheritdoc />
public string Name => "Master Boot Record"; public string Name => Localization.MBR_Name;
/// <inheritdoc /> /// <inheritdoc />
public Guid Id => new("5E8A34E8-4F1A-59E6-4BF7-7EA647063A76"); public Guid Id => new("5E8A34E8-4F1A-59E6-4BF7-7EA647063A76");
/// <inheritdoc /> /// <inheritdoc />
public string Author => "Natalia Portillo"; public string Author => Authors.NataliaPortillo;
/// <inheritdoc /> /// <inheritdoc />
[SuppressMessage("ReSharper", "UnusedVariable")] [SuppressMessage("ReSharper", "UnusedVariable")]
@@ -439,7 +490,7 @@ public sealed class MBR : IPartition
part.Type = $"0x{entry.type:X2}"; part.Type = $"0x{entry.type:X2}";
part.Name = DecodeMbrType(entry.type); part.Name = DecodeMbrType(entry.type);
part.Sequence = counter; part.Sequence = counter;
part.Description = entry.status == 0x80 ? "Partition is bootable." : ""; part.Description = entry.status == 0x80 ? Localization.Partition_is_bootable : "";
part.Scheme = Name; part.Scheme = Name;
counter++; counter++;
@@ -562,7 +613,7 @@ public sealed class MBR : IPartition
part.Type = $"0x{ebrEntry.type:X2}"; part.Type = $"0x{ebrEntry.type:X2}";
part.Name = DecodeMbrType(ebrEntry.type); part.Name = DecodeMbrType(ebrEntry.type);
part.Sequence = counter; part.Sequence = counter;
part.Description = ebrEntry.status == 0x80 ? "Partition is bootable." : ""; part.Description = ebrEntry.status == 0x80 ? Localization.Partition_is_bootable : "";
part.Scheme = Name; part.Scheme = Name;
counter++; counter++;
@@ -664,8 +715,8 @@ public sealed class MBR : IPartition
anyMnx = true; anyMnx = true;
part.Type = "MINIX"; part.Type = "MINIX";
part.Name = "MINIX"; part.Name = Localization.MINIX;
part.Description = mnxEntry.status == 0x80 ? "Partition is bootable." : ""; part.Description = mnxEntry.status == 0x80 ? Localization.Partition_is_bootable : "";
part.Scheme = "MINIX"; part.Scheme = "MINIX";
partitions.Add(part); partitions.Add(part);

View File

@@ -64,11 +64,11 @@ public sealed class NeXTDisklabel : IPartition
const ushort DISKTAB_ENTRY_SIZE = 0x2C; const ushort DISKTAB_ENTRY_SIZE = 0x2C;
/// <inheritdoc /> /// <inheritdoc />
public string Name => "NeXT Disklabel"; public string Name => Localization.NeXTDisklabel_Name;
/// <inheritdoc /> /// <inheritdoc />
public Guid Id => new("246A6D93-4F1A-1F8A-344D-50187A5513A9"); public Guid Id => new("246A6D93-4F1A-1F8A-344D-50187A5513A9");
/// <inheritdoc /> /// <inheritdoc />
public string Author => "Natalia Portillo"; public string Author => Authors.NataliaPortillo;
/// <inheritdoc /> /// <inheritdoc />
public bool GetInformation(IMediaImage imagePlugin, out List<Partition> partitions, ulong sectorOffset) public bool GetInformation(IMediaImage imagePlugin, out List<Partition> partitions, ulong sectorOffset)
@@ -229,34 +229,34 @@ public sealed class NeXTDisklabel : IPartition
if(part.Start + part.Length > imagePlugin.Info.Sectors) if(part.Start + part.Length > imagePlugin.Info.Sectors)
{ {
AaruConsole.DebugWriteLine("NeXT Plugin", "Partition bigger than device, reducing..."); AaruConsole.DebugWriteLine("NeXT Plugin", Localization.Partition_bigger_than_device_reducing);
part.Length = imagePlugin.Info.Sectors - part.Start; part.Length = imagePlugin.Info.Sectors - part.Start;
part.Size = part.Length * sectorSize; part.Size = part.Length * sectorSize;
AaruConsole.DebugWriteLine("NeXT Plugin", "label.dl_dt.d_partitions[{0}].p_size = {1}", i, part.Length); AaruConsole.DebugWriteLine("NeXT Plugin", "label.dl_dt.d_partitions[{0}].p_size = {1}", i, part.Length);
} }
sb.AppendFormat("{0} bytes per block", label.dl_dt.d_partitions[i].p_bsize).AppendLine(); sb.AppendFormat(Localization._0_bytes_per_block, label.dl_dt.d_partitions[i].p_bsize).AppendLine();
sb.AppendFormat("{0} bytes per fragment", label.dl_dt.d_partitions[i].p_fsize).AppendLine(); sb.AppendFormat(Localization._0_bytes_per_fragment, label.dl_dt.d_partitions[i].p_fsize).AppendLine();
if(label.dl_dt.d_partitions[i].p_opt == 's') if(label.dl_dt.d_partitions[i].p_opt == 's')
sb.AppendLine("Space optimized"); sb.AppendLine(Localization.Space_optimized);
else if(label.dl_dt.d_partitions[i].p_opt == 't') else if(label.dl_dt.d_partitions[i].p_opt == 't')
sb.AppendLine("Time optimized"); sb.AppendLine(Localization.Time_optimized);
else else
sb.AppendFormat("Unknown optimization {0:X2}", label.dl_dt.d_partitions[i].p_opt).AppendLine(); sb.AppendFormat(Localization.Unknown_optimization_0_X2, label.dl_dt.d_partitions[i].p_opt).AppendLine();
sb.AppendFormat("{0} cylinders per group", label.dl_dt.d_partitions[i].p_cpg).AppendLine(); sb.AppendFormat(Localization._0_cylinders_per_group, label.dl_dt.d_partitions[i].p_cpg).AppendLine();
sb.AppendFormat("{0} bytes per inode", label.dl_dt.d_partitions[i].p_density).AppendLine(); sb.AppendFormat(Localization._0_bytes_per_inode, label.dl_dt.d_partitions[i].p_density).AppendLine();
sb.AppendFormat("{0}% of space must be free at minimum", label.dl_dt.d_partitions[i].p_minfree). sb.AppendFormat(Localization._0_of_space_must_be_free_at_minimum, label.dl_dt.d_partitions[i].p_minfree).
AppendLine(); AppendLine();
if(label.dl_dt.d_partitions[i].p_newfs != 1) if(label.dl_dt.d_partitions[i].p_newfs != 1)
sb.AppendLine("Filesystem should be formatted at start"); sb.AppendLine(Localization.Filesystem_should_be_formatted_at_start);
if(label.dl_dt.d_partitions[i].p_automnt == 1) if(label.dl_dt.d_partitions[i].p_automnt == 1)
sb.AppendLine("Filesystem should be automatically mounted"); sb.AppendLine(Localization.Filesystem_should_be_automatically_mounted);
part.Description = sb.ToString(); part.Description = sb.ToString();

View File

@@ -47,11 +47,11 @@ namespace Aaru.Partitions;
public sealed class PC98 : IPartition public sealed class PC98 : IPartition
{ {
/// <inheritdoc /> /// <inheritdoc />
public string Name => "NEC PC-9800 partition table"; public string Name => Localization.PC98_Name;
/// <inheritdoc /> /// <inheritdoc />
public Guid Id => new("27333401-C7C2-447D-961C-22AD0641A09A"); public Guid Id => new("27333401-C7C2-447D-961C-22AD0641A09A");
/// <inheritdoc /> /// <inheritdoc />
public string Author => "Natalia Portillo"; public string Author => Authors.NataliaPortillo;
/// <inheritdoc /> /// <inheritdoc />
public bool GetInformation(IMediaImage imagePlugin, out List<CommonTypes.Partition> partitions, ulong sectorOffset) public bool GetInformation(IMediaImage imagePlugin, out List<CommonTypes.Partition> partitions, ulong sectorOffset)
@@ -74,7 +74,7 @@ public sealed class PC98 : IPartition
return false; return false;
// Prevent false positives with some FAT BPBs // Prevent false positives with some FAT BPBs
if(Encoding.ASCII.GetString(bootSector, 0x36, 3) == "FAT") if(Encoding.ASCII.GetString(bootSector, 0x36, 3) == Localization.FAT)
return false; return false;
Table table = Marshal.ByteArrayToStructureLittleEndian<Table>(sector); Table table = Marshal.ByteArrayToStructureLittleEndian<Table>(sector);
@@ -151,20 +151,20 @@ public sealed class PC98 : IPartition
{ {
switch(sid & 0x7F) switch(sid & 0x7F)
{ {
case 0x01: return "FAT12"; case 0x01: return Localization.FAT12;
case 0x04: return "PC-UX"; case 0x04: return Localization.PC_UX;
case 0x06: return "N88-BASIC(86)"; case 0x06: return Localization.N88_BASIC_86;
// Supposedly for FAT16 < 32 MiB, seen in bigger partitions // Supposedly for FAT16 < 32 MiB, seen in bigger partitions
case 0x11: case 0x11:
case 0x21: return "FAT16"; case 0x21: return Localization.FAT16;
case 0x28: case 0x28:
case 0x41: case 0x41:
case 0x48: return "Windows Volume Set"; case 0x48: return Localization.Windows_Volume_Set;
case 0x44: return "FreeBSD"; case 0x44: return Localization.FreeBSD;
case 0x61: return "FAT32"; case 0x61: return Localization.FAT32;
case 0x62: return "Linux"; case 0x62: return Localization.Linux;
default: return "Unknown"; default: return Localization.Unknown_partition_type;
} }
} }

View File

@@ -50,11 +50,11 @@ namespace Aaru.Partitions;
public sealed class Plan9 : IPartition public sealed class Plan9 : IPartition
{ {
/// <inheritdoc /> /// <inheritdoc />
public string Name => "Plan9 partition table"; public string Name => Localization.Plan9_Name;
/// <inheritdoc /> /// <inheritdoc />
public Guid Id => new("F0BF4FFC-056E-4E7C-8B65-4EAEE250ADD9"); public Guid Id => new("F0BF4FFC-056E-4E7C-8B65-4EAEE250ADD9");
/// <inheritdoc /> /// <inheritdoc />
public string Author => "Natalia Portillo"; public string Author => Authors.NataliaPortillo;
/// <inheritdoc /> /// <inheritdoc />
public bool GetInformation(IMediaImage imagePlugin, out List<Partition> partitions, ulong sectorOffset) public bool GetInformation(IMediaImage imagePlugin, out List<Partition> partitions, ulong sectorOffset)

View File

@@ -178,11 +178,11 @@ public sealed class AmigaRigidDiskBlock : IPartition
const uint FLAGS_NO_AUTOMOUNT = 0x00000002; const uint FLAGS_NO_AUTOMOUNT = 0x00000002;
/// <inheritdoc /> /// <inheritdoc />
public string Name => "Amiga Rigid Disk Block"; public string Name => Localization.AmigaRigidDiskBlock_Name;
/// <inheritdoc /> /// <inheritdoc />
public Guid Id => new("8D72ED97-1854-4170-9CE4-6E8446FD9863"); public Guid Id => new("8D72ED97-1854-4170-9CE4-6E8446FD9863");
/// <inheritdoc /> /// <inheritdoc />
public string Author => "Natalia Portillo"; public string Author => Authors.NataliaPortillo;
/// <inheritdoc /> /// <inheritdoc />
public bool GetInformation(IMediaImage imagePlugin, out List<Partition> partitions, ulong sectorOffset) public bool GetInformation(IMediaImage imagePlugin, out List<Partition> partitions, ulong sectorOffset)
@@ -211,11 +211,12 @@ public sealed class AmigaRigidDiskBlock : IPartition
uint magic = BigEndianBitConverter.ToUInt32(tmpSector, 0); uint magic = BigEndianBitConverter.ToUInt32(tmpSector, 0);
AaruConsole.DebugWriteLine("Amiga RDB plugin", "Possible magic at block {0} is 0x{1:X8}", rdbBlock, magic); AaruConsole.DebugWriteLine("Amiga RDB plugin", Localization.Possible_magic_at_block_0_is_1_X8, rdbBlock,
magic);
if(magic == RIGID_DISK_BLOCK_MAGIC) if(magic == RIGID_DISK_BLOCK_MAGIC)
{ {
AaruConsole.DebugWriteLine("Amiga RDB plugin", "Found RDB magic at block {0}", rdbBlock); AaruConsole.DebugWriteLine("Amiga RDB plugin", Localization.Found_RDB_magic_at_block_0, rdbBlock);
foundRdb = true; foundRdb = true;
@@ -371,7 +372,7 @@ public sealed class AmigaRigidDiskBlock : IPartition
while(nextBlock != 0xFFFFFFFF) while(nextBlock != 0xFFFFFFFF)
{ {
AaruConsole.DebugWriteLine("Amiga RDB plugin", "Going to block {0} in search of a BadBlock block", AaruConsole.DebugWriteLine("Amiga RDB plugin", Localization.Going_to_block_0_in_search_of_a_BadBlock_block,
nextBlock); nextBlock);
errno = imagePlugin.ReadSector(nextBlock, out sector); errno = imagePlugin.ReadSector(nextBlock, out sector);
@@ -384,7 +385,7 @@ public sealed class AmigaRigidDiskBlock : IPartition
if(magic != BAD_BLOCK_LIST_MAGIC) if(magic != BAD_BLOCK_LIST_MAGIC)
break; break;
AaruConsole.DebugWriteLine("Amiga RDB plugin", "Found BadBlock block"); AaruConsole.DebugWriteLine("Amiga RDB plugin", Localization.Found_BadBlock_block);
var chainEntry = new BadBlockList var chainEntry = new BadBlockList
{ {
@@ -415,7 +416,8 @@ public sealed class AmigaRigidDiskBlock : IPartition
chainEntry.BlockPairs[i].GoodBlock = BigEndianBitConverter.ToUInt32(sector, (int)(0x18 + (i * 8) + 4)); chainEntry.BlockPairs[i].GoodBlock = BigEndianBitConverter.ToUInt32(sector, (int)(0x18 + (i * 8) + 4));
AaruConsole.DebugWriteLine("Amiga RDB plugin", "Bad block at {0} replaced with good block at {1}", AaruConsole.DebugWriteLine("Amiga RDB plugin",
Localization.Bad_block_at_0_replaced_with_good_block_at_1,
chainEntry.BlockPairs[i].BadBlock, chainEntry.BlockPairs[i].GoodBlock); chainEntry.BlockPairs[i].BadBlock, chainEntry.BlockPairs[i].GoodBlock);
} }
@@ -429,7 +431,8 @@ public sealed class AmigaRigidDiskBlock : IPartition
while(nextBlock != 0xFFFFFFFF) while(nextBlock != 0xFFFFFFFF)
{ {
AaruConsole.DebugWriteLine("Amiga RDB plugin", "Going to block {0} in search of a PartitionEntry block", AaruConsole.DebugWriteLine("Amiga RDB plugin",
Localization.Going_to_block_0_in_search_of_a_PartitionEntry_block,
nextBlock + sectorOffset); nextBlock + sectorOffset);
errno = imagePlugin.ReadSector(nextBlock + sectorOffset, out sector); errno = imagePlugin.ReadSector(nextBlock + sectorOffset, out sector);
@@ -442,7 +445,7 @@ public sealed class AmigaRigidDiskBlock : IPartition
if(magic != PARTITION_BLOCK_MAGIC) if(magic != PARTITION_BLOCK_MAGIC)
break; break;
AaruConsole.DebugWriteLine("Amiga RDB plugin", "Found PartitionEntry block"); AaruConsole.DebugWriteLine("Amiga RDB plugin", Localization.Found_PartitionEntry_block);
var partEntry = new PartitionEntry var partEntry = new PartitionEntry
{ {
@@ -598,8 +601,8 @@ public sealed class AmigaRigidDiskBlock : IPartition
while(nextBlock != 0xFFFFFFFF) while(nextBlock != 0xFFFFFFFF)
{ {
AaruConsole.DebugWriteLine("Amiga RDB plugin", "Going to block {0} in search of a FileSystemHeader block", AaruConsole.DebugWriteLine("Amiga RDB plugin",
nextBlock); Localization.Going_to_block_0_in_search_of_a_FileSystemHeader_block, nextBlock);
errno = imagePlugin.ReadSector(nextBlock, out sector); errno = imagePlugin.ReadSector(nextBlock, out sector);
@@ -611,7 +614,7 @@ public sealed class AmigaRigidDiskBlock : IPartition
if(magic != FILESYSTEM_HEADER_MAGIC) if(magic != FILESYSTEM_HEADER_MAGIC)
break; break;
AaruConsole.DebugWriteLine("Amiga RDB plugin", "Found FileSystemHeader block"); AaruConsole.DebugWriteLine("Amiga RDB plugin", Localization.Found_FileSystemHeader_block);
var fshd = new FileSystemHeader var fshd = new FileSystemHeader
{ {
@@ -676,8 +679,8 @@ public sealed class AmigaRigidDiskBlock : IPartition
while(nextBlock != 0xFFFFFFFF) while(nextBlock != 0xFFFFFFFF)
{ {
AaruConsole.DebugWriteLine("Amiga RDB plugin", "Going to block {0} in search of a LoadSegment block", AaruConsole.DebugWriteLine("Amiga RDB plugin",
nextBlock); Localization.Going_to_block_0_in_search_of_a_LoadSegment_block, nextBlock);
errno = imagePlugin.ReadSector(nextBlock, out sector); errno = imagePlugin.ReadSector(nextBlock, out sector);
@@ -689,7 +692,7 @@ public sealed class AmigaRigidDiskBlock : IPartition
if(magicSeg != LOAD_SEG_MAGIC) if(magicSeg != LOAD_SEG_MAGIC)
break; break;
AaruConsole.DebugWriteLine("Amiga RDB plugin", "Found LoadSegment block"); AaruConsole.DebugWriteLine("Amiga RDB plugin", Localization.Found_LoadSegment_block);
thereAreLoadSegments = true; thereAreLoadSegments = true;
@@ -723,7 +726,7 @@ public sealed class AmigaRigidDiskBlock : IPartition
if(thereAreLoadSegments) if(thereAreLoadSegments)
{ {
string loadSegSha1 = sha1Ctx.End(); string loadSegSha1 = sha1Ctx.End();
AaruConsole.DebugWriteLine("Amiga RDB plugin", "LoadSegment data SHA1: {0}", loadSegSha1); AaruConsole.DebugWriteLine("Amiga RDB plugin", Localization.LoadSegment_data_SHA1_0, loadSegSha1);
} }
fshdEntries.Add(fshd); fshdEntries.Add(fshd);
@@ -760,88 +763,99 @@ public sealed class AmigaRigidDiskBlock : IPartition
{ {
switch(amigaDosType) switch(amigaDosType)
{ {
case TYPEID_OFS: return "Amiga Original File System"; case TYPEID_OFS: return Localization.Amiga_Original_File_System;
case TYPEID_FFS: return "Amiga Fast File System"; case TYPEID_FFS: return Localization.Amiga_Fast_File_System;
case TYPEID_OFS_INTL: return "Amiga Original File System with international characters"; case TYPEID_OFS_INTL: return Localization.Amiga_Original_File_System_with_international_characters;
case TYPEID_FFS_INTL: return "Amiga Fast File System with international characters"; case TYPEID_FFS_INTL: return Localization.Amiga_Fast_File_System_with_international_characters;
case TYPEID_OFS_CACHE: return "Amiga Original File System with directory cache"; case TYPEID_OFS_CACHE: return Localization.Amiga_Original_File_System_with_directory_cache;
case TYPEID_FFS_CACHE: return "Amiga Fast File System with directory cache"; case TYPEID_FFS_CACHE: return Localization.Amiga_Fast_File_System_with_directory_cache;
case TYPEID_OFS2: return "Amiga Original File System with long filenames"; case TYPEID_OFS2: return Localization.Amiga_Original_File_System_with_long_filenames;
case TYPEID_FFS2: return "Amiga Fast File System with long filenames"; case TYPEID_FFS2: return Localization.Amiga_Fast_File_System_with_long_filenames;
case TYPEID_AMIX_SYSV: return "Amiga UNIX System V filesystem"; case TYPEID_AMIX_SYSV: return Localization.Amiga_UNIX_System_V_filesystem;
case TYPEID_AMIX_BOOT: return "Amiga UNIX boot filesystem"; case TYPEID_AMIX_BOOT: return Localization.Amiga_UNIX_boot_filesystem;
case TYPEID_AMIX_FFS: return "Amiga UNIX BSD filesystem"; case TYPEID_AMIX_FFS: return Localization.Amiga_UNIX_BSD_filesystem;
case TYPEID_AMIX_RESERVED: return "Amiga UNIX Reserved partition (swap)"; case TYPEID_AMIX_RESERVED: return Localization.Amiga_UNIX_Reserved_partition__swap_;
case TYPEID_PFS: case TYPEID_PFS:
case TYPEID_PFS2: case TYPEID_PFS2:
case TYPEID_PFS_MUSER: case TYPEID_PFS_MUSER:
case TYPEID_AFS: return "ProfessionalFileSystem"; case TYPEID_AFS: return Localization.ProfessionalFileSystem;
case TYPEID_SFS: return "SmartFileSystem v1"; case TYPEID_SFS: return Localization.SmartFileSystem_v1;
case TYPEID_SFS2: return "SmartFileSystem v2"; case TYPEID_SFS2: return Localization.SmartFileSystem_v2;
case TYPEID_JXFS: return "JXFS"; case TYPEID_JXFS: return Localization.JXFS;
case TYPEID_CROSS_DOS: return "FAT, as set by CrossDOS"; case TYPEID_CROSS_DOS: return Localization.FAT_as_set_by_CrossDOS;
case TYPEID_CROSS_MAC: return "HFS, as set by CrossMac"; case TYPEID_CROSS_MAC: return Localization.HFS_as_set_by_CrossMac;
case TYPEID_BFFS: return "4.2UFS, for BFFS"; case TYPEID_BFFS: return Localization._4_2_UFS_for_BFFS;
case TYPEID_OFS_MUSER: return "Amiga Original File System with multi-user patches"; case TYPEID_OFS_MUSER: return Localization.Amiga_Original_File_System_with_multi_user_patches;
case TYPEID_FFS_MUSER: return "Amiga Fast File System with multi-user patches"; case TYPEID_FFS_MUSER: return Localization.Amiga_Fast_File_System_with_multi_user_patches;
case TYPEID_OFS_INTL_MUSER: case TYPEID_OFS_INTL_MUSER:
return "Amiga Original File System with international characters and multi-user patches"; return Localization.Amiga_Original_File_System_with_international_characters_and_multi_user_patches;
case TYPEID_FFS_INTL_MUSER: case TYPEID_FFS_INTL_MUSER:
return "Amiga Fast File System with international characters and multi-user patches"; return Localization.Amiga_Fast_File_System_with_international_characters_and_multi_user_patches;
case TYPEID_OFS_CACHE_MUSER: case TYPEID_OFS_CACHE_MUSER:
return "Amiga Original File System with directory cache and multi-user patches"; return Localization.Amiga_Original_File_System_with_directory_cache_and_multi_user_patches;
case TYPEID_FFS_CACHE_MUSER: return "Amiga Fast File System with directory cache and multi-user patches"; case TYPEID_FFS_CACHE_MUSER:
case TYPEID_OLD_BSD_UNUSED: return "BSD unused"; return Localization.Amiga_Fast_File_System_with_directory_cache_and_multi_user_patches;
case TYPEID_OLD_BSD_SWAP: return "BSD swap"; case TYPEID_OLD_BSD_UNUSED: return Localization.BSD_unused;
case TYPEID_OLD_BSD42_FFS: return "BSD 4.2 FFS"; case TYPEID_OLD_BSD_SWAP: return Localization.BSD_swap;
case TYPEID_OLD_BSD44_LFS: return "BSD 4.4 LFS"; case TYPEID_OLD_BSD42_FFS: return Localization.BSD_4_2_FFS;
case TYPEID_NETBSD_ROOT_UNUSED: return "NetBSD unused root partition"; case TYPEID_OLD_BSD44_LFS: return Localization.BSD_4_4_LFS;
case TYPEID_NETBSD_ROOT_42FFS: return "NetBSD 4.2 FFS root partition"; case TYPEID_NETBSD_ROOT_UNUSED: return Localization.NetBSD_unused_root_partition;
case TYPEID_NETBSD_ROOT_44LFS: return "NetBSD 4.4 LFS root partition"; case TYPEID_NETBSD_ROOT_42FFS: return Localization.NetBSD_4_2_FFS_root_partition;
case TYPEID_NETBSD_USER_UNUSED: return "NetBSD unused user partition"; case TYPEID_NETBSD_ROOT_44LFS: return Localization.NetBSD_4_4_LFS_root_partition;
case TYPEID_NETBSD_USER_42FFS: return "NetBSD 4.2 FFS user partition"; case TYPEID_NETBSD_USER_UNUSED: return Localization.NetBSD_unused_user_partition;
case TYPEID_NETBSD_USER_44LFS: return "NetBSD 4.4 LFS user partition"; case TYPEID_NETBSD_USER_42FFS: return Localization.NetBSD_4_2_FFS_user_partition;
case TYPEID_NETBSD_SWAP: return "NetBSD swap partition"; case TYPEID_NETBSD_USER_44LFS: return Localization.NetBSD_4_4_LFS_user_partition;
case TYPEID_LINUX: return "Linux filesystem partition"; case TYPEID_NETBSD_SWAP: return Localization.NetBSD_swap_partition;
case TYPEID_LINUX_SWAP: return "Linux swap partition"; case TYPEID_LINUX: return Localization.Linux_filesystem_partition;
case TYPEID_LINUX_SWAP: return Localization.Linux_swap_partition;
case TYPEID_RAID_FRAME: case TYPEID_RAID_FRAME:
case TYPEID_RAID_FRAME0: return "RaidFrame partition"; case TYPEID_RAID_FRAME0: return Localization.RaidFrame_partition;
default: default:
{ {
if((amigaDosType & TYPEID_OFS) == TYPEID_OFS) if((amigaDosType & TYPEID_OFS) == TYPEID_OFS)
return $"Unknown Amiga DOS filesystem type {AmigaDosTypeToString(amigaDosType)}"; return string.Format(Localization.Unknown_Amiga_DOS_filesystem_type_0,
AmigaDosTypeToString(amigaDosType));
if((amigaDosType & TYPEID_AMIX_SYSV) == TYPEID_AMIX_SYSV) if((amigaDosType & TYPEID_AMIX_SYSV) == TYPEID_AMIX_SYSV)
return $"Unknown Amiga UNIX filesystem type {AmigaDosTypeToString(amigaDosType)}"; return string.Format(Localization.Unknown_Amiga_UNIX_filesystem_type_0,
AmigaDosTypeToString(amigaDosType));
if((amigaDosType & 0x50465300) == 0x50465300 || if((amigaDosType & 0x50465300) == 0x50465300 ||
(amigaDosType & 0x41465300) == 0x41465300) (amigaDosType & 0x41465300) == 0x41465300)
return $"Unknown ProfessionalFileSystem type {AmigaDosTypeToString(amigaDosType)}"; return string.Format(Localization.Unknown_ProfessionalFileSystem_type_0,
AmigaDosTypeToString(amigaDosType));
if((amigaDosType & TYPEID_SFS) == TYPEID_SFS) if((amigaDosType & TYPEID_SFS) == TYPEID_SFS)
return $"Unknown SmartFileSystem type {AmigaDosTypeToString(amigaDosType)}"; return string.Format(Localization.Unknown_SmartFileSystem_type_0,
AmigaDosTypeToString(amigaDosType));
if((amigaDosType & TYPEID_OFS_MUSER) == TYPEID_OFS_MUSER) if((amigaDosType & TYPEID_OFS_MUSER) == TYPEID_OFS_MUSER)
return $"Unknown Amiga DOS multi-user filesystem type {AmigaDosTypeToString(amigaDosType)}"; return string.Format(Localization.Unknown_Amiga_DOS_multi_user_filesystem_type_0,
AmigaDosTypeToString(amigaDosType));
if((amigaDosType & TYPEID_OLD_BSD_UNUSED) == TYPEID_OLD_BSD_UNUSED) if((amigaDosType & TYPEID_OLD_BSD_UNUSED) == TYPEID_OLD_BSD_UNUSED)
return $"Unknown BSD filesystem type {AmigaDosTypeToString(amigaDosType)}"; return string.Format(Localization.Unknown_BSD_filesystem_type_0,
AmigaDosTypeToString(amigaDosType));
if((amigaDosType & TYPEID_NETBSD_ROOT_UNUSED) == TYPEID_NETBSD_ROOT_UNUSED) if((amigaDosType & TYPEID_NETBSD_ROOT_UNUSED) == TYPEID_NETBSD_ROOT_UNUSED)
return $"Unknown NetBSD root filesystem type {AmigaDosTypeToString(amigaDosType)}"; return string.Format(Localization.Unknown_NetBSD_root_filesystem_type_0,
AmigaDosTypeToString(amigaDosType));
if((amigaDosType & TYPEID_NETBSD_USER_UNUSED) == TYPEID_NETBSD_USER_UNUSED) if((amigaDosType & TYPEID_NETBSD_USER_UNUSED) == TYPEID_NETBSD_USER_UNUSED)
return $"Unknown NetBSD user filesystem type {AmigaDosTypeToString(amigaDosType)}"; return string.Format(Localization.Unknown_NetBSD_user_filesystem_type_0,
AmigaDosTypeToString(amigaDosType));
if((amigaDosType & TYPEID_NETBSD_SWAP) == TYPEID_NETBSD_SWAP) if((amigaDosType & TYPEID_NETBSD_SWAP) == TYPEID_NETBSD_SWAP)
return $"Unknown NetBSD swap filesystem type {AmigaDosTypeToString(amigaDosType)}"; return string.Format(Localization.Unknown_NetBSD_swap_filesystem_type_0,
AmigaDosTypeToString(amigaDosType));
if((amigaDosType & TYPEID_LINUX) == TYPEID_LINUX || if((amigaDosType & TYPEID_LINUX) == TYPEID_LINUX ||
(amigaDosType & TYPEID_LINUX_SWAP) == TYPEID_LINUX_SWAP) (amigaDosType & TYPEID_LINUX_SWAP) == TYPEID_LINUX_SWAP)
return $"Unknown Linux filesystem type {AmigaDosTypeToString(amigaDosType)}"; return string.Format(Localization.Unknown_Linux_filesystem_type_0,
AmigaDosTypeToString(amigaDosType));
return $"Unknown partition type {AmigaDosTypeToString(amigaDosType)}"; return string.Format(Localization.Unknown_partition_type_0, AmigaDosTypeToString(amigaDosType));
} }
} }
} }

View File

@@ -49,11 +49,11 @@ public sealed class RioKarma : IPartition
const byte ENTRY_MAGIC = 0x4D; const byte ENTRY_MAGIC = 0x4D;
/// <inheritdoc /> /// <inheritdoc />
public string Name => "Rio Karma partitioning"; public string Name => Localization.RioKarma_Name;
/// <inheritdoc /> /// <inheritdoc />
public Guid Id => new("246A6D93-4F1A-1F8A-344D-50187A5513A9"); public Guid Id => new("246A6D93-4F1A-1F8A-344D-50187A5513A9");
/// <inheritdoc /> /// <inheritdoc />
public string Author => "Natalia Portillo"; public string Author => Authors.NataliaPortillo;
/// <inheritdoc /> /// <inheritdoc />
public bool GetInformation(IMediaImage imagePlugin, out List<Partition> partitions, ulong sectorOffset) public bool GetInformation(IMediaImage imagePlugin, out List<Partition> partitions, ulong sectorOffset)
@@ -78,7 +78,7 @@ public sealed class RioKarma : IPartition
Offset = (ulong)(entry.offset * sector.Length), Offset = (ulong)(entry.offset * sector.Length),
Size = entry.size, Size = entry.size,
Length = (ulong)(entry.size * sector.Length), Length = (ulong)(entry.size * sector.Length),
Type = "Rio Karma", Type = Localization.Rio_Karma,
Sequence = counter++, Sequence = counter++,
Scheme = Name Scheme = Name
} where entry.type == ENTRY_MAGIC select part).ToList(); } where entry.type == ENTRY_MAGIC select part).ToList();

View File

@@ -53,11 +53,11 @@ public sealed class SGI : IPartition
const int SGI_MAGIC = 0x0BE5A941; const int SGI_MAGIC = 0x0BE5A941;
/// <inheritdoc /> /// <inheritdoc />
public string Name => "SGI Disk Volume Header"; public string Name => Localization.SGI_Name;
/// <inheritdoc /> /// <inheritdoc />
public Guid Id => new("AEF5AB45-4880-4CE8-8735-F0A402E2E5F2"); public Guid Id => new("AEF5AB45-4880-4CE8-8735-F0A402E2E5F2");
/// <inheritdoc /> /// <inheritdoc />
public string Author => "Natalia Portillo"; public string Author => Authors.NataliaPortillo;
/// <inheritdoc /> /// <inheritdoc />
public bool GetInformation(IMediaImage imagePlugin, out List<CommonTypes.Partition> partitions, ulong sectorOffset) public bool GetInformation(IMediaImage imagePlugin, out List<CommonTypes.Partition> partitions, ulong sectorOffset)
@@ -78,7 +78,8 @@ public sealed class SGI : IPartition
for(int i = 0; i < dvh.partitions.Length; i++) for(int i = 0; i < dvh.partitions.Length; i++)
dvh.partitions[i] = (Partition)Marshal.SwapStructureMembersEndian(dvh.partitions[i]); dvh.partitions[i] = (Partition)Marshal.SwapStructureMembersEndian(dvh.partitions[i]);
AaruConsole.DebugWriteLine("SGIVH plugin", "dvh.magic = 0x{0:X8} (should be 0x{1:X8})", dvh.magic, SGI_MAGIC); AaruConsole.DebugWriteLine("SGIVH plugin", Localization.dvh_magic_equals_0_X8_should_be_1_X8, dvh.magic,
SGI_MAGIC);
if(dvh.magic != SGI_MAGIC) if(dvh.magic != SGI_MAGIC)
return false; return false;
@@ -168,24 +169,24 @@ public sealed class SGI : IPartition
static string TypeToString(SGIType typ) => typ switch static string TypeToString(SGIType typ) => typ switch
{ {
SGIType.Header => "Volume header", SGIType.Header => Localization.Volume_header,
SGIType.TrkRepl => "Track replacements", SGIType.TrkRepl => Localization.Track_replacements,
SGIType.SecRepl => "Sector replacements", SGIType.SecRepl => Localization.Sector_replacements,
SGIType.Swap => "Raw data (swap)", SGIType.Swap => Localization.Raw_data_swap,
SGIType.Bsd => "4.2BSD Fast File System", SGIType.Bsd => Localization._4_2_BSD_Fast_File_System,
SGIType.SystemV => "UNIX System V", SGIType.SystemV => Localization.UNIX_System_V,
SGIType.Volume => "Whole device", SGIType.Volume => Localization.Whole_device,
SGIType.EFS => "EFS", SGIType.EFS => Localization.EFS,
SGIType.Lvol => "Logical volume", SGIType.Lvol => Localization.Logical_volume,
SGIType.Rlvol => "Raw logical volume", SGIType.Rlvol => Localization.Raw_logical_volume,
SGIType.XFS => "XFS", SGIType.XFS => Localization.XFS,
SGIType.Xlvol => "XFS log device", SGIType.Xlvol => Localization.XFS_log_device,
SGIType.Rxlvol => "XLV volume", SGIType.Rxlvol => Localization.XLV_volume,
SGIType.Xvm => "SGI XVM", SGIType.Xvm => Localization.SGI_XVM,
SGIType.LinuxSwap => "Linux swap", SGIType.LinuxSwap => Localization.Linux_swap,
SGIType.Linux => "Linux", SGIType.Linux => Localization.Linux,
SGIType.LinuxRAID => "Linux RAID", SGIType.LinuxRAID => Localization.Linux_RAID,
_ => "Unknown" _ => Localization.Unknown_partition_type
}; };
[StructLayout(LayoutKind.Sequential, Pack = 1)] [StructLayout(LayoutKind.Sequential, Pack = 1)]

View File

@@ -76,11 +76,11 @@ public sealed class SunDisklabel : IPartition
(4 * 4) + (12 * 2) + (2 * 2)); (4 * 4) + (12 * 2) + (2 * 2));
/// <inheritdoc /> /// <inheritdoc />
public string Name => "Sun Disklabel"; public string Name => Localization.SunDisklabel_Name;
/// <inheritdoc /> /// <inheritdoc />
public Guid Id => new("50F35CC4-8375-4445-8DCB-1BA550C931A3"); public Guid Id => new("50F35CC4-8375-4445-8DCB-1BA550C931A3");
/// <inheritdoc /> /// <inheritdoc />
public string Author => "Natalia Portillo"; public string Author => Authors.NataliaPortillo;
/// <inheritdoc /> /// <inheritdoc />
public bool GetInformation(IMediaImage imagePlugin, out List<Partition> partitions, ulong sectorOffset) public bool GetInformation(IMediaImage imagePlugin, out List<Partition> partitions, ulong sectorOffset)
@@ -195,7 +195,7 @@ public sealed class SunDisklabel : IPartition
(((ulong)dkl.dkl_map[i].dkl_cylno * sectorsPerCylinder) + sectorOffset) * DK_LABEL_SIZE, (((ulong)dkl.dkl_map[i].dkl_cylno * sectorsPerCylinder) + sectorOffset) * DK_LABEL_SIZE,
Start = (((ulong)dkl.dkl_map[i].dkl_cylno * sectorsPerCylinder) + sectorOffset) * Start = (((ulong)dkl.dkl_map[i].dkl_cylno * sectorsPerCylinder) + sectorOffset) *
DK_LABEL_SIZE / imagePlugin.Info.SectorSize, DK_LABEL_SIZE / imagePlugin.Info.SectorSize,
Type = "SunOS partition", Type = Localization.SunOS_partition,
Scheme = Name Scheme = Name
}; };
@@ -278,8 +278,9 @@ public sealed class SunDisklabel : IPartition
}; };
if(dkl8.dkl_vtoc.v_timestamp[i] != 0) if(dkl8.dkl_vtoc.v_timestamp[i] != 0)
part.Description += $"\nPartition timestamped on { part.Description += "\n" + string.Format(Localization.Partition_timestamped_on_0,
DateHandlers.UnixToDateTime(dkl8.dkl_vtoc.v_timestamp[i])}"; DateHandlers.
UnixToDateTime(dkl8.dkl_vtoc.v_timestamp[i]));
if(part.Start < imagePlugin.Info.Sectors && if(part.Start < imagePlugin.Info.Sectors &&
part.End <= imagePlugin.Info.Sectors) part.End <= imagePlugin.Info.Sectors)
@@ -359,8 +360,9 @@ public sealed class SunDisklabel : IPartition
}; };
if(dkl16.dkl_vtoc.v_timestamp[i] != 0) if(dkl16.dkl_vtoc.v_timestamp[i] != 0)
part.Description += $"\nPartition timestamped on { part.Description += "\n" + string.Format(Localization.Partition_timestamped_on_0,
DateHandlers.UnixToDateTime(dkl16.dkl_vtoc.v_timestamp[i])}"; DateHandlers.
UnixToDateTime(dkl16.dkl_vtoc.v_timestamp[i]));
if(part.Start < imagePlugin.Info.Sectors && if(part.Start < imagePlugin.Info.Sectors &&
part.End <= imagePlugin.Info.Sectors) part.End <= imagePlugin.Info.Sectors)
@@ -373,7 +375,7 @@ public sealed class SunDisklabel : IPartition
static dk_label SwapDiskLabel(dk_label label) static dk_label SwapDiskLabel(dk_label label)
{ {
AaruConsole.DebugWriteLine("Sun plugin", "Swapping dk_label"); AaruConsole.DebugWriteLine("Sun plugin", Localization.Swapping_dk_label);
label = (dk_label)Marshal.SwapStructureMembersEndian(label); label = (dk_label)Marshal.SwapStructureMembersEndian(label);
for(int i = 0; i < label.dkl_map.Length; i++) for(int i = 0; i < label.dkl_map.Length; i++)
@@ -384,7 +386,7 @@ public sealed class SunDisklabel : IPartition
static dk_label8 SwapDiskLabel(dk_label8 label) static dk_label8 SwapDiskLabel(dk_label8 label)
{ {
AaruConsole.DebugWriteLine("Sun plugin", "Swapping dk_label8"); AaruConsole.DebugWriteLine("Sun plugin", Localization.Swapping_dk_label8);
label = (dk_label8)Marshal.SwapStructureMembersEndian(label); label = (dk_label8)Marshal.SwapStructureMembersEndian(label);
for(int i = 0; i < label.dkl_map.Length; i++) for(int i = 0; i < label.dkl_map.Length; i++)
@@ -410,7 +412,7 @@ public sealed class SunDisklabel : IPartition
static dk_label16 SwapDiskLabel(dk_label16 label) static dk_label16 SwapDiskLabel(dk_label16 label)
{ {
AaruConsole.DebugWriteLine("Sun plugin", "Swapping dk_label16"); AaruConsole.DebugWriteLine("Sun plugin", Localization.Swapping_dk_label16);
label = (dk_label16)Marshal.SwapStructureMembersEndian(label); label = (dk_label16)Marshal.SwapStructureMembersEndian(label);
for(int i = 0; i < label.dkl_vtoc.v_bootinfo.Length; i++) for(int i = 0; i < label.dkl_vtoc.v_bootinfo.Length; i++)
@@ -438,41 +440,41 @@ public sealed class SunDisklabel : IPartition
var sb = new StringBuilder(); var sb = new StringBuilder();
if(flags.HasFlag(SunFlags.NoMount)) if(flags.HasFlag(SunFlags.NoMount))
sb.AppendLine("Unmountable"); sb.AppendLine(Localization.Unmountable);
if(flags.HasFlag(SunFlags.ReadOnly)) if(flags.HasFlag(SunFlags.ReadOnly))
sb.AppendLine("Read-only"); sb.AppendLine(Localization.Read_only);
return sb.ToString(); return sb.ToString();
} }
static string SunIdToString(SunTag id) => id switch static string SunIdToString(SunTag id) => id switch
{ {
SunTag.Linux => "Linux", SunTag.Linux => Localization.Linux,
SunTag.LinuxRaid => "Linux RAID", SunTag.LinuxRaid => Localization.Linux_RAID,
SunTag.LinuxSwap => "Linux swap", SunTag.LinuxSwap => Localization.Linux_swap,
SunTag.LVM => "LVM", SunTag.LVM => Localization.LVM,
SunTag.SunBoot => "Sun boot", SunTag.SunBoot => Localization.Sun_boot,
SunTag.SunEmpty => "Empty", SunTag.SunEmpty => Localization.Empty,
SunTag.SunHome => "Sun /home", SunTag.SunHome => Localization.Sun_home,
SunTag.SunRoot => "Sun /", SunTag.SunRoot => Localization.Sun_root,
SunTag.SunStand => "Sun /stand", SunTag.SunStand => Localization.Sun_stand,
SunTag.SunSwap => "Sun swap", SunTag.SunSwap => Localization.Sun_swap,
SunTag.SunUsr => "Sun /usr", SunTag.SunUsr => Localization.Sun_usr,
SunTag.SunVar => "Sun /var", SunTag.SunVar => Localization.Sun_var,
SunTag.SunWholeDisk => "Whole disk", SunTag.SunWholeDisk => Localization.Whole_disk,
SunTag.SunAlt => "Replacement sectors", SunTag.SunAlt => Localization.Replacement_sectors,
SunTag.SunCache => "Sun cachefs", SunTag.SunCache => Localization.Sun_cachefs,
SunTag.SunReserved => "Reserved for SMI", SunTag.SunReserved => Localization.Reserved_for_SMI,
SunTag.VxVmPublic => "Veritas public", SunTag.VxVmPublic => Localization.Veritas_public,
SunTag.VxVmPrivate => "Veritas private", SunTag.VxVmPrivate => Localization.Veritas_private,
SunTag.NetBSD => "NetBSD", SunTag.NetBSD => Localization.NetBSD,
SunTag.FreeBSD_Swap => "FreeBSD swap", SunTag.FreeBSD_Swap => Localization.FreeBSD_swap,
SunTag.FreeBSD_UFS => "FreeBSD", SunTag.FreeBSD_UFS => Localization.FreeBSD,
SunTag.FreeBSD_Vinum => "Vinum", SunTag.FreeBSD_Vinum => Localization.Vinum,
SunTag.FreeBSD_ZFS => "FreeBSD ZFS", SunTag.FreeBSD_ZFS => Localization.FreeBSD_ZFS,
SunTag.FreeBSD_NANDFS => "FreeBSD nandfs", SunTag.FreeBSD_NANDFS => Localization.FreeBSD_nandfs,
_ => "Unknown" _ => Localization.Unknown_partition_type
}; };
enum SunTag : ushort enum SunTag : ushort

File diff suppressed because it is too large Load Diff

View File

@@ -57,11 +57,11 @@ public sealed class VTOC : IPartition
const uint XPDVERS = 3; /* 1st version of extended pdinfo */ const uint XPDVERS = 3; /* 1st version of extended pdinfo */
/// <inheritdoc /> /// <inheritdoc />
public string Name => "UNIX VTOC"; public string Name => Localization.VTOC_Name;
/// <inheritdoc /> /// <inheritdoc />
public Guid Id => new("6D35A66F-8D77-426F-A562-D88F6A1F1702"); public Guid Id => new("6D35A66F-8D77-426F-A562-D88F6A1F1702");
/// <inheritdoc /> /// <inheritdoc />
public string Author => "Natalia Portillo"; public string Author => Authors.NataliaPortillo;
/// <inheritdoc /> /// <inheritdoc />
public bool GetInformation(IMediaImage imagePlugin, out List<Partition> partitions, ulong sectorOffset) public bool GetInformation(IMediaImage imagePlugin, out List<Partition> partitions, ulong sectorOffset)
@@ -87,7 +87,7 @@ public sealed class VTOC : IPartition
magic = BitConverter.ToUInt32(pdsector, 4); magic = BitConverter.ToUInt32(pdsector, 4);
AaruConsole.DebugWriteLine("VTOC plugin", "sanity at {0} is 0x{1:X8} (should be 0x{2:X8} or 0x{3:X8})", AaruConsole.DebugWriteLine("VTOC plugin", Localization.sanity_at_0_is_1_X8_should_be_2_X8_or_3_X8,
i + sectorOffset, magic, PD_MAGIC, PD_CIGAM); i + sectorOffset, magic, PD_MAGIC, PD_CIGAM);
if(magic != PD_MAGIC && if(magic != PD_MAGIC &&
@@ -175,7 +175,7 @@ public sealed class VTOC : IPartition
if(magic is VTOC_SANE or VTOC_ENAS) if(magic is VTOC_SANE or VTOC_ENAS)
{ {
magicFound = true; magicFound = true;
AaruConsole.DebugWriteLine("VTOC plugin", "New VTOC found at {0}", pdloc + sectorOffset + 1); AaruConsole.DebugWriteLine("VTOC plugin", Localization.New_VTOC_found_at_0, pdloc + sectorOffset + 1);
if(magic == VTOC_SANE) if(magic == VTOC_SANE)
vtoc = Marshal.ByteArrayToStructureLittleEndian<vtoc>(vtocsector); vtoc = Marshal.ByteArrayToStructureLittleEndian<vtoc>(vtocsector);
@@ -203,7 +203,7 @@ public sealed class VTOC : IPartition
{ {
magicFound = true; magicFound = true;
useOld = true; useOld = true;
AaruConsole.DebugWriteLine("VTOC plugin", "Old VTOC found at {0}", pdloc + sectorOffset + 1); AaruConsole.DebugWriteLine("VTOC plugin", Localization.Old_VTOC_found_at_0, pdloc + sectorOffset + 1);
if(magic == VTOC_SANE) if(magic == VTOC_SANE)
vtocOld = Marshal.ByteArrayToStructureLittleEndian<vtocold>(vtocsector); vtocOld = Marshal.ByteArrayToStructureLittleEndian<vtocold>(vtocsector);
@@ -225,7 +225,7 @@ public sealed class VTOC : IPartition
if(!magicFound) if(!magicFound)
{ {
AaruConsole.DebugWriteLine("VTOC plugin", "Searching for VTOC on relative byte {0}", pd.vtoc_ptr); AaruConsole.DebugWriteLine("VTOC plugin", Localization.Searching_for_VTOC_on_relative_byte_0, pd.vtoc_ptr);
ulong relSecPtr = pd.vtoc_ptr / imagePlugin.Info.SectorSize; ulong relSecPtr = pd.vtoc_ptr / imagePlugin.Info.SectorSize;
uint relSecOff = pd.vtoc_ptr % imagePlugin.Info.SectorSize; uint relSecOff = pd.vtoc_ptr % imagePlugin.Info.SectorSize;
uint secCount = (relSecOff + pd.vtoc_len) / imagePlugin.Info.SectorSize; uint secCount = (relSecOff + pd.vtoc_len) / imagePlugin.Info.SectorSize;
@@ -234,12 +234,12 @@ public sealed class VTOC : IPartition
secCount++; secCount++;
AaruConsole.DebugWriteLine("VTOC plugin", AaruConsole.DebugWriteLine("VTOC plugin",
"Going to read {0} sectors from sector {1}, getting VTOC from byte {2}", Localization.Going_to_read_0_sectors_from_sector_1_getting_VTOC_from_byte_2,
secCount, relSecPtr + sectorOffset, relSecOff); secCount, relSecPtr + sectorOffset, relSecOff);
if(relSecPtr + sectorOffset + secCount >= imagePlugin.Info.Sectors) if(relSecPtr + sectorOffset + secCount >= imagePlugin.Info.Sectors)
{ {
AaruConsole.DebugWriteLine("VTOC plugin", "Going to read past device size, aborting..."); AaruConsole.DebugWriteLine("VTOC plugin", Localization.Going_to_read_past_device_size_aborting);
return false; return false;
} }
@@ -256,7 +256,7 @@ public sealed class VTOC : IPartition
if(magic is VTOC_SANE or VTOC_ENAS) if(magic is VTOC_SANE or VTOC_ENAS)
{ {
magicFound = true; magicFound = true;
AaruConsole.DebugWriteLine("VTOC plugin", "New VTOC found."); AaruConsole.DebugWriteLine("VTOC plugin", Localization.New_VTOC_found);
if(magic == VTOC_SANE) if(magic == VTOC_SANE)
vtoc = Marshal.ByteArrayToStructureLittleEndian<vtoc>(vtocsector); vtoc = Marshal.ByteArrayToStructureLittleEndian<vtoc>(vtocsector);
@@ -278,7 +278,7 @@ public sealed class VTOC : IPartition
if(!magicFound) if(!magicFound)
{ {
AaruConsole.DebugWriteLine("VTOC plugin", "Cannot find VTOC."); AaruConsole.DebugWriteLine("VTOC plugin", Localization.Cannot_find_VTOC);
return false; return false;
} }
@@ -397,22 +397,22 @@ public sealed class VTOC : IPartition
} }
if(parts[i].p_flag.HasFlag(pFlag.V_VALID)) if(parts[i].p_flag.HasFlag(pFlag.V_VALID))
info += " (valid)"; info += Localization.valid;
if(parts[i].p_flag.HasFlag(pFlag.V_UNMNT)) if(parts[i].p_flag.HasFlag(pFlag.V_UNMNT))
info += " (unmountable)"; info += Localization._unmountable_;
if(parts[i].p_flag.HasFlag(pFlag.V_OPEN)) if(parts[i].p_flag.HasFlag(pFlag.V_OPEN))
info += " (open)"; info += Localization.open;
if(parts[i].p_flag.HasFlag(pFlag.V_REMAP)) if(parts[i].p_flag.HasFlag(pFlag.V_REMAP))
info += " (alternate sector mapping)"; info += Localization.alternate_sector_mapping;
if(parts[i].p_flag.HasFlag(pFlag.V_RONLY)) if(parts[i].p_flag.HasFlag(pFlag.V_RONLY))
info += " (read-only)"; info += Localization._read_only_;
if(timestamps[i] != 0) if(timestamps[i] != 0)
info += $" created on {DateHandlers.UnixToDateTime(timestamps[i])}"; info += string.Format(Localization.created_on_0, DateHandlers.UnixToDateTime(timestamps[i]));
part.Description = "UNIX slice" + info + "."; part.Description = "UNIX slice" + info + ".";
@@ -425,23 +425,23 @@ public sealed class VTOC : IPartition
static string DecodeUnixtag(pTag type, bool isNew) => type switch static string DecodeUnixtag(pTag type, bool isNew) => type switch
{ {
pTag.V_UNUSED => "Unused", pTag.V_UNUSED => Localization.Unused,
pTag.V_BOOT => "Boot", pTag.V_BOOT => Localization.Boot,
pTag.V_ROOT => "/", pTag.V_ROOT => "/",
pTag.V_SWAP => "Swap", pTag.V_SWAP => Localization.swap,
pTag.V_USER => "/usr", pTag.V_USER => "/usr",
pTag.V_BACKUP => "Whole disk", pTag.V_BACKUP => Localization.Whole_disk,
pTag.V_STAND_OLD => isNew ? "Stand" : "Alternate sector space", pTag.V_STAND_OLD => isNew ? "Stand" : Localization.Alternate_sector_space,
pTag.V_VAR_OLD => isNew ? "/var" : "non UNIX", pTag.V_VAR_OLD => isNew ? "/var" : Localization.non_UNIX,
pTag.V_HOME_OLD => isNew ? "/home" : "Alternate track space", pTag.V_HOME_OLD => isNew ? "/home" : Localization.Alternate_track_space,
pTag.V_ALTSCTR_OLD => isNew ? "Alternate sector track" : "Stand", pTag.V_ALTSCTR_OLD => isNew ? Localization.Alternate_sector_track : "Stand",
pTag.V_CACHE => isNew ? "Cache" : "/var", pTag.V_CACHE => isNew ? Localization.Cache : "/var",
pTag.V_RESERVED => isNew ? "Reserved" : "/home", pTag.V_RESERVED => isNew ? Localization.Reserved : "/home",
pTag.V_DUMP => "dump", pTag.V_DUMP => Localization.dump,
pTag.V_ALTSCTR => "Alternate sector track", pTag.V_ALTSCTR => Localization.Alternate_sector_track,
pTag.V_VMPUBLIC => "volume mgt public partition", pTag.V_VMPUBLIC => Localization.volume_mgt_public_partition,
pTag.V_VMPRIVATE => "volume mgt private partition", pTag.V_VMPRIVATE => Localization.volume_mgt_private_partition,
_ => $"Unknown TAG: 0x{type:X4}" _ => string.Format(Localization.Unknown_TAG_0, type)
}; };
[StructLayout(LayoutKind.Sequential, Pack = 1)] [StructLayout(LayoutKind.Sequential, Pack = 1)]

View File

@@ -53,11 +53,11 @@ public sealed class XENIX : IPartition
const uint XENIX_OFFSET = 977; const uint XENIX_OFFSET = 977;
/// <inheritdoc /> /// <inheritdoc />
public string Name => "XENIX"; public string Name => Localization.XENIX_Name;
/// <inheritdoc /> /// <inheritdoc />
public Guid Id => new("53BE01DE-E68B-469F-A17F-EC2E4BD61CD9"); public Guid Id => new("53BE01DE-E68B-469F-A17F-EC2E4BD61CD9");
/// <inheritdoc /> /// <inheritdoc />
public string Author => "Natalia Portillo"; public string Author => Authors.NataliaPortillo;
/// <inheritdoc /> /// <inheritdoc />
public bool GetInformation(IMediaImage imagePlugin, out List<CommonTypes.Partition> partitions, ulong sectorOffset) public bool GetInformation(IMediaImage imagePlugin, out List<CommonTypes.Partition> partitions, ulong sectorOffset)

View File

@@ -65,11 +65,11 @@ public sealed class Xbox : IPartition
const uint XBOX360_DEVKIT_MAGIC = 0x00020000; const uint XBOX360_DEVKIT_MAGIC = 0x00020000;
/// <inheritdoc /> /// <inheritdoc />
public string Name => "Xbox partitioning"; public string Name => Localization.Xbox_Name;
/// <inheritdoc /> /// <inheritdoc />
public Guid Id => new("E3F6FB91-D358-4F22-A550-81E92D50EB78"); public Guid Id => new("E3F6FB91-D358-4F22-A550-81E92D50EB78");
/// <inheritdoc /> /// <inheritdoc />
public string Author => "Natalia Portillo"; public string Author => Authors.NataliaPortillo;
/// <inheritdoc /> /// <inheritdoc />
public bool GetInformation(IMediaImage imagePlugin, out List<Partition> partitions, ulong sectorOffset) public bool GetInformation(IMediaImage imagePlugin, out List<Partition> partitions, ulong sectorOffset)
@@ -94,7 +94,7 @@ public sealed class Xbox : IPartition
{ {
var contentPart = new Partition var contentPart = new Partition
{ {
Description = "Content volume", Description = Localization.Content_volume,
Size = (ulong)table.contentLen * imagePlugin.Info.SectorSize, Size = (ulong)table.contentLen * imagePlugin.Info.SectorSize,
Length = table.contentLen, Length = table.contentLen,
Sequence = 1, Sequence = 1,
@@ -105,7 +105,7 @@ public sealed class Xbox : IPartition
var dashboardPart = new Partition var dashboardPart = new Partition
{ {
Description = "Dashboard volume", Description = Localization.Dashboard_volume,
Size = (ulong)table.dashboardLen * imagePlugin.Info.SectorSize, Size = (ulong)table.dashboardLen * imagePlugin.Info.SectorSize,
Length = table.dashboardLen, Length = table.dashboardLen,
Sequence = 2, Sequence = 2,
@@ -134,7 +134,7 @@ public sealed class Xbox : IPartition
{ {
var sysCachePart = new Partition var sysCachePart = new Partition
{ {
Description = "System cache", Description = Localization.System_cache,
Size = MEMORY_UNIT_DATA_OFF, Size = MEMORY_UNIT_DATA_OFF,
Length = (ulong)(MEMORY_UNIT_DATA_OFF / imagePlugin.Info.SectorSize), Length = (ulong)(MEMORY_UNIT_DATA_OFF / imagePlugin.Info.SectorSize),
Sequence = 1, Sequence = 1,
@@ -145,7 +145,7 @@ public sealed class Xbox : IPartition
var dataPart = new Partition var dataPart = new Partition
{ {
Description = "Data volume", Description = Localization.Data_volume,
Size = (imagePlugin.Info.Sectors * imagePlugin.Info.SectorSize) - MEMORY_UNIT_DATA_OFF, Size = (imagePlugin.Info.Sectors * imagePlugin.Info.SectorSize) - MEMORY_UNIT_DATA_OFF,
Length = imagePlugin.Info.Sectors - sysCachePart.Length, Length = imagePlugin.Info.Sectors - sysCachePart.Length,
Sequence = 2, Sequence = 2,
@@ -178,7 +178,7 @@ public sealed class Xbox : IPartition
var securityPart = new Partition var securityPart = new Partition
{ {
Description = "Security sectors", Description = Localization.Security_sectors,
Size = XBOX360_SECURITY_SECTOR_LEN, Size = XBOX360_SECURITY_SECTOR_LEN,
Length = (ulong)(XBOX360_SECURITY_SECTOR_LEN / imagePlugin.Info.SectorSize), Length = (ulong)(XBOX360_SECURITY_SECTOR_LEN / imagePlugin.Info.SectorSize),
Sequence = 1, Sequence = 1,
@@ -189,7 +189,7 @@ public sealed class Xbox : IPartition
var sysCachePart = new Partition var sysCachePart = new Partition
{ {
Description = "System cache", Description = Localization.System_cache,
Size = XBOX360_SYSTEM_CACHE_LEN, Size = XBOX360_SYSTEM_CACHE_LEN,
Length = (ulong)(XBOX360_SYSTEM_CACHE_LEN / imagePlugin.Info.SectorSize), Length = (ulong)(XBOX360_SYSTEM_CACHE_LEN / imagePlugin.Info.SectorSize),
Sequence = 2, Sequence = 2,
@@ -200,7 +200,7 @@ public sealed class Xbox : IPartition
var gameCachePart = new Partition var gameCachePart = new Partition
{ {
Description = "Game cache", Description = Localization.Game_cache,
Size = XBOX360_GAME_CACHE_LEN, Size = XBOX360_GAME_CACHE_LEN,
Length = (ulong)(XBOX360_GAME_CACHE_LEN / imagePlugin.Info.SectorSize), Length = (ulong)(XBOX360_GAME_CACHE_LEN / imagePlugin.Info.SectorSize),
Sequence = 3, Sequence = 3,
@@ -211,7 +211,7 @@ public sealed class Xbox : IPartition
var sysExtPart = new Partition var sysExtPart = new Partition
{ {
Description = "System volume", Description = Localization.System_volume,
Size = XBOX368_SYS_EXT_LEN, Size = XBOX368_SYS_EXT_LEN,
Length = (ulong)(XBOX368_SYS_EXT_LEN / imagePlugin.Info.SectorSize), Length = (ulong)(XBOX368_SYS_EXT_LEN / imagePlugin.Info.SectorSize),
Sequence = 4, Sequence = 4,
@@ -222,7 +222,7 @@ public sealed class Xbox : IPartition
var sysExt2Part = new Partition var sysExt2Part = new Partition
{ {
Description = "System volume 2", Description = Localization.System_volume_2,
Size = XBOX360_SYS_EXT2_LEN, Size = XBOX360_SYS_EXT2_LEN,
Length = (ulong)(XBOX360_SYS_EXT2_LEN / imagePlugin.Info.SectorSize), Length = (ulong)(XBOX360_SYS_EXT2_LEN / imagePlugin.Info.SectorSize),
Sequence = 5, Sequence = 5,
@@ -233,7 +233,7 @@ public sealed class Xbox : IPartition
var xbox1Part = new Partition var xbox1Part = new Partition
{ {
Description = "Xbox backwards compatibility", Description = Localization.Xbox_backwards_compatibility,
Size = XBOX360_COMPAT_LEN, Size = XBOX360_COMPAT_LEN,
Length = (ulong)(XBOX360_COMPAT_LEN / imagePlugin.Info.SectorSize), Length = (ulong)(XBOX360_COMPAT_LEN / imagePlugin.Info.SectorSize),
Sequence = 6, Sequence = 6,
@@ -244,7 +244,7 @@ public sealed class Xbox : IPartition
var dataPart = new Partition var dataPart = new Partition
{ {
Description = "Data volume", Description = Localization.Data_volume,
Sequence = 7, Sequence = 7,
Offset = XBOX_360DATA_OFF, Offset = XBOX_360DATA_OFF,
Start = (ulong)(XBOX_360DATA_OFF / imagePlugin.Info.SectorSize), Start = (ulong)(XBOX_360DATA_OFF / imagePlugin.Info.SectorSize),