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>
<Compile Include="AppleMap.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="NeXT.cs"/>
<Compile Include="RDB.cs"/>
@@ -78,6 +84,10 @@
<EmbeddedResource Include="..\LICENSE.LGPL">
<Link>LICENSE.LGPL</Link>
</EmbeddedResource>
<EmbeddedResource Update="Localization\Localization.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Localization.Designer.cs</LastGenOutput>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<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;
/// <inheritdoc />
public string Name => "Acorn FileCore partitions";
public string Name => Localization.Acorn_Name;
/// <inheritdoc />
public Guid Id => new("A7C8FEBE-8D00-4933-B9F3-42184C8BA808");
/// <inheritdoc />
public string Author => "Natalia Portillo";
public string Author => Authors.NataliaPortillo;
/// <inheritdoc />
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;
/// <inheritdoc />
public string Name => "Apple Partition Map";
public string Name => Localization.AppleMap_Name;
/// <inheritdoc />
public Guid Id => new("36405F8D-4F1A-07F5-209C-223D735D6D22");
/// <inheritdoc />
public string Author => "Natalia Portillo";
public string Author => Authors.NataliaPortillo;
/// <inheritdoc />
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
if(entry.signature == APM_MAGIC)
{
AaruConsole.DebugWriteLine("AppleMap Plugin", "Found misaligned entry.");
AaruConsole.DebugWriteLine("AppleMap Plugin", Localization.Found_misaligned_entry);
entrySize = 512;
entryCount = entry.entries;
skipDdm = 512;
@@ -235,7 +235,7 @@ public sealed class AppleMap : IPartition
if(entry.signature == APM_MAGIC)
{
AaruConsole.DebugWriteLine("AppleMap Plugin", "Found aligned entry.");
AaruConsole.DebugWriteLine("AppleMap Plugin", Localization.Found_aligned_entry);
entrySize = sectorSize;
entryCount = entry.entries;
skipDdm = sectorSize;
@@ -251,7 +251,7 @@ public sealed class AppleMap : IPartition
if(entry.signature == APM_MAGIC)
{
AaruConsole.DebugWriteLine("AppleMap Plugin", "Found aligned entry.");
AaruConsole.DebugWriteLine("AppleMap Plugin", Localization.Found_aligned_entry);
entrySize = sectorSize;
entryCount = entry.entries;
skipDdm = sectorSize;
@@ -342,38 +342,39 @@ public sealed class AppleMap : IPartition
Scheme = Name
};
sb.AppendLine("Partition flags:");
sb.AppendLine(Localization.Partition_flags);
if(flags.HasFlag(AppleMapFlags.Valid))
sb.AppendLine("Partition is valid.");
sb.AppendLine(Localization.Partition_is_valid);
if(flags.HasFlag(AppleMapFlags.Allocated))
sb.AppendLine("Partition entry is allocated.");
sb.AppendLine(Localization.Partition_entry_is_allocated);
if(flags.HasFlag(AppleMapFlags.InUse))
sb.AppendLine("Partition is in use.");
sb.AppendLine(Localization.Partition_is_in_use);
if(flags.HasFlag(AppleMapFlags.Bootable))
sb.AppendLine("Partition is bootable.");
sb.AppendLine(Localization.Partition_is_bootable);
if(flags.HasFlag(AppleMapFlags.Readable))
sb.AppendLine("Partition is readable.");
sb.AppendLine(Localization.Partition_is_readable);
if(flags.HasFlag(AppleMapFlags.Writable))
sb.AppendLine("Partition is writable.");
sb.AppendLine(Localization.Partition_is_writable);
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("Boot load address: 0x{0:X8}", entry.load_address).AppendLine();
sb.AppendFormat("Boot entry point: 0x{0:X8}", entry.entry_point).AppendLine();
sb.AppendFormat("Boot code checksum: 0x{0:X8}", entry.checksum).AppendLine();
sb.AppendFormat("Processor: {0}", StringHandlers.CToString(entry.processor)).AppendLine();
sb.AppendFormat(Localization.Boot_is_0_bytes, entry.boot_size).AppendLine();
sb.AppendFormat(Localization.Boot_load_address_0_X8, entry.load_address).AppendLine();
sb.AppendFormat(Localization.Boot_entry_point_0_X8, entry.entry_point).AppendLine();
sb.AppendFormat(Localization.Boot_code_checksum_0_X8, entry.checksum).AppendLine();
sb.AppendFormat(Localization.Processor_0, StringHandlers.CToString(entry.processor)).AppendLine();
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();
@@ -388,7 +389,7 @@ public sealed class AppleMap : IPartition
// Some CD and DVDs end with an Apple_Free that expands beyond the disc size...
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.Length = imagePlugin.Info.Sectors - partition.Start;
@@ -397,7 +398,7 @@ public sealed class AppleMap : IPartition
}
else
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);
}

View File

@@ -52,12 +52,12 @@ public sealed class Apricot : IPartition
};
readonly string[] _bootTypeCodes =
{
"Non-bootable", "Apricot & XI RAM BIOS", "Generic ROM BIOS", "Apricot & XI ROM BIOS",
"Apricot Portable ROM BIOS", "Apricot F1 ROM BIOS"
Localization.Non_bootable, Localization.Apricot_XI_RAM_BIOS, Localization.Generic_ROM_BIOS,
Localization.Apricot_XI_ROM_BIOS, Localization.Apricot_Portable_ROM_BIOS, Localization.Apricot_F1_ROM_BIOS
};
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 =
{
@@ -69,15 +69,16 @@ public sealed class Apricot : IPartition
};
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 =
{
"None", "Odd", "Even", "Mark", "Space"
Localization.None_parity, Localization.Odd_parity, Localization.Even_parity, Localization.Mark_parity,
Localization.Space_parity
};
readonly string[] _printDevices =
{
"Parallel", "Serial"
Localization.Parallel_print_device, Localization.Serial_print_device
};
readonly double[] _stopBits =
{
@@ -85,11 +86,11 @@ public sealed class Apricot : IPartition
};
/// <inheritdoc />
public string Name => "ACT Apricot partitions";
public string Name => Localization.Apricot_Name;
/// <inheritdoc />
public Guid Id => new("8CBF5864-7B5A-47A0-8CEB-199C74FA22DE");
/// <inheritdoc />
public string Author => "Natalia Portillo";
public string Author => Authors.NataliaPortillo;
/// <inheritdoc />
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,
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.copyProtected = {0}", label.copyProtected);
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.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,
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);
@@ -187,7 +190,8 @@ public sealed class Apricot : IPartition
AaruConsole.DebugWriteLine("Apricot partitions", "label.diagnosticsFlag = {0}", label.diagnosticsFlag);
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.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.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.rxXonXoff = {0}", label.rxXonXoff);
@@ -306,7 +311,8 @@ public sealed class Apricot : IPartition
AaruConsole.DebugWriteLine("Apricot partitions", "label.partitions[{1}].diskType = {0} ({2})",
label.partitions[i].diskType, i,
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}",
label.partitions[i].startSector, i);

View File

@@ -61,11 +61,11 @@ public sealed class AtariPartitions : IPartition
const uint TYPE_MINIX2 = 0x004D4E58;
/// <inheritdoc />
public string Name => "Atari partitions";
public string Name => Localization.AtariPartitions_Name;
/// <inheritdoc />
public Guid Id => new("d1dd0f24-ec39-4c4d-9072-be31919a3b5e");
/// <inheritdoc />
public string Author => "Natalia Portillo";
public string Author => Authors.NataliaPortillo;
/// <inheritdoc />
public bool GetInformation(IMediaImage imagePlugin, out List<Partition> partitions, ulong sectorOffset)
@@ -112,7 +112,7 @@ public sealed class AtariPartitions : IPartition
var sha1Ctx = new Sha1Context();
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++)
{
@@ -176,7 +176,7 @@ public sealed class AtariPartitions : IPartition
{
if(table.Entries[i].Start + table.Entries[i].Length > imagePlugin.Info.Sectors)
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;
@@ -203,48 +203,48 @@ public sealed class AtariPartitions : IPartition
switch(type)
{
case TYPE_GEMDOS:
part.Description = "Atari GEMDOS partition";
part.Description = Localization.Atari_GEMDOS_partition;
break;
case TYPE_BIG_GEMDOS:
part.Description = "Atari GEMDOS partition bigger than 32 MiB";
part.Description = Localization.Atari_GEMDOS_partition_bigger_than_32_MiB;
break;
case TYPE_LINUX:
part.Description = "Linux partition";
part.Description = Localization.Linux_partition;
break;
case TYPE_SWAP:
part.Description = "Swap partition";
part.Description = Localization.Swap_partition;
break;
case TYPE_RAW:
part.Description = "RAW partition";
part.Description = Localization.RAW_partition;
break;
case TYPE_NETBSD:
part.Description = "NetBSD partition";
part.Description = Localization.NetBSD_partition;
break;
case TYPE_NETBSD_SWAP:
part.Description = "NetBSD swap partition";
part.Description = Localization.NetBSD_swap_partition;
break;
case TYPE_SYSTEM_V:
part.Description = "Atari UNIX partition";
part.Description = Localization.Atari_UNIX_partition;
break;
case TYPE_MAC:
part.Description = "Macintosh partition";
part.Description = Localization.Macintosh_partition;
break;
case TYPE_MINIX:
case TYPE_MINIX2:
part.Description = "MINIX partition";
part.Description = Localization.MINIX_partition;
break;
default:
part.Description = "Unknown partition type";
part.Description = Localization.Unknown_partition_type;
break;
}
@@ -301,7 +301,7 @@ public sealed class AtariPartitions : IPartition
if(extendedTable.Entries[j].Start + extendedTable.Entries[j].Length > imagePlugin.Info.Sectors)
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;
@@ -328,48 +328,48 @@ public sealed class AtariPartitions : IPartition
switch(extendedType)
{
case TYPE_GEMDOS:
part.Description = "Atari GEMDOS partition";
part.Description = Localization.Atari_GEMDOS_partition;
break;
case TYPE_BIG_GEMDOS:
part.Description = "Atari GEMDOS partition bigger than 32 MiB";
part.Description = Localization.Atari_GEMDOS_partition_bigger_than_32_MiB;
break;
case TYPE_LINUX:
part.Description = "Linux partition";
part.Description = Localization.Linux_partition;
break;
case TYPE_SWAP:
part.Description = "Swap partition";
part.Description = Localization.Swap_partition;
break;
case TYPE_RAW:
part.Description = "RAW partition";
part.Description = Localization.RAW_partition;
break;
case TYPE_NETBSD:
part.Description = "NetBSD partition";
part.Description = Localization.NetBSD_partition;
break;
case TYPE_NETBSD_SWAP:
part.Description = "NetBSD swap partition";
part.Description = Localization.NetBSD_swap_partition;
break;
case TYPE_SYSTEM_V:
part.Description = "Atari UNIX partition";
part.Description = Localization.Atari_UNIX_partition;
break;
case TYPE_MAC:
part.Description = "Macintosh partition";
part.Description = Localization.Macintosh_partition;
break;
case TYPE_MINIX:
case TYPE_MINIX2:
part.Description = "MINIX partition";
part.Description = Localization.MINIX_partition;
break;
default:
part.Description = "Unknown partition type";
part.Description = Localization.Unknown_partition_type;
break;
}
@@ -407,7 +407,7 @@ public sealed class AtariPartitions : IPartition
if(table.IcdEntries[i].Start + table.IcdEntries[i].Length > imagePlugin.Info.Sectors)
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;
@@ -434,48 +434,48 @@ public sealed class AtariPartitions : IPartition
switch(type)
{
case TYPE_GEMDOS:
part.Description = "Atari GEMDOS partition";
part.Description = Localization.Atari_GEMDOS_partition;
break;
case TYPE_BIG_GEMDOS:
part.Description = "Atari GEMDOS partition bigger than 32 MiB";
part.Description = Localization.Atari_GEMDOS_partition_bigger_than_32_MiB;
break;
case TYPE_LINUX:
part.Description = "Linux partition";
part.Description = Localization.Linux_partition;
break;
case TYPE_SWAP:
part.Description = "Swap partition";
part.Description = Localization.Swap_partition;
break;
case TYPE_RAW:
part.Description = "RAW partition";
part.Description = Localization.RAW_partition;
break;
case TYPE_NETBSD:
part.Description = "NetBSD partition";
part.Description = Localization.NetBSD_partition;
break;
case TYPE_NETBSD_SWAP:
part.Description = "NetBSD swap partition";
part.Description = Localization.NetBSD_swap_partition;
break;
case TYPE_SYSTEM_V:
part.Description = "Atari UNIX partition";
part.Description = Localization.Atari_UNIX_partition;
break;
case TYPE_MAC:
part.Description = "Macintosh partition";
part.Description = Localization.Macintosh_partition;
break;
case TYPE_MINIX:
case TYPE_MINIX2:
part.Description = "MINIX partition";
part.Description = Localization.MINIX_partition;
break;
default:
part.Description = "Unknown partition type";
part.Description = Localization.Unknown_partition_type;
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 />
public string Name => "BSD disklabel";
public string Name => Localization.BSD_Name;
/// <inheritdoc />
public Guid Id => new("246A6D93-4F1A-1F8A-344D-50187A5513A9");
/// <inheritdoc />
public string Author => "Natalia Portillo";
public string Author => Authors.NataliaPortillo;
/// <inheritdoc />
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);
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);
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", "Adding it...");
AaruConsole.DebugWriteLine("BSD plugin", Localization.BSD_GetInformation_Adding_it);
partitions.Add(part);
counter++;
}
@@ -212,36 +213,36 @@ public sealed class BSD : IPartition
{
switch(typ)
{
case fsType.Unused: return "Unused entry";
case fsType.Swap: return "Swap partition";
case fsType.V6: return "UNIX 6th Edition";
case fsType.V7: return "UNIX 7th Edition";
case fsType.SystemV: return "UNIX System V";
case fsType.V7_1K: return "UNIX 7th Edition with 1K blocks";
case fsType.V8: return "UNIX 8th Edition with 4K blocks";
case fsType.BSDFFS: return "4.2BSD Fast File System";
case fsType.BSDLFS: return "4.4LFS";
case fsType.HPFS: return "HPFS";
case fsType.ISO9660: return "ISO9660";
case fsType.Unused: return Localization.Unused_entry;
case fsType.Swap: return Localization.Swap_partition;
case fsType.V6: return Localization.UNIX_6th_Edition;
case fsType.V7: return Localization.UNIX_7th_Edition;
case fsType.SystemV: return Localization.UNIX_System_V;
case fsType.V7_1K: return Localization.UNIX_7th_Edition_with_1K_blocks;
case fsType.V8: return Localization.UNIX_8th_Edition_with_4K_blocks;
case fsType.BSDFFS: return Localization._4_2_BSD_Fast_File_System;
case fsType.BSDLFS: return Localization._4_4_LFS;
case fsType.HPFS: return Localization.HPFS;
case fsType.ISO9660: return Localization.ISO9660;
case fsType.Boot:
case fsType.SysVBoot: return "Boot";
case fsType.AFFS: return "Amiga FFS";
case fsType.HFS: return "Apple HFS";
case fsType.ADVfs: return "Digital Advanced File System";
case fsType.LSMpublic: return "Digital LSM Public Region";
case fsType.LSMprivate: return "Digital LSM Private Region";
case fsType.LSMsimple: return "Digital LSM Simple Disk";
case fsType.CCD: return "Concatenated disk";
case fsType.JFS2: return "IBM JFS2";
case fsType.HAMMER: return "Hammer";
case fsType.HAMMER2: return "Hammer2";
case fsType.UDF: return "UDF";
case fsType.EFS: return "EFS";
case fsType.ZFS: return "ZFS";
case fsType.NANDFS: return "FreeBSD nandfs";
case fsType.MSDOS: return "FAT";
case fsType.Other: return "Other or unknown";
default: return "Unknown";
case fsType.SysVBoot: return Localization.Boot;
case fsType.AFFS: return Localization.Amiga_FFS;
case fsType.HFS: return Localization.Apple_HFS;
case fsType.ADVfs: return Localization.Digital_Advanced_File_System;
case fsType.LSMpublic: return Localization.Digital_LSM_Public_Region;
case fsType.LSMprivate: return Localization.Digital_LSM_Private_Region;
case fsType.LSMsimple: return Localization.Digital_LSM_Simple_Disk;
case fsType.CCD: return Localization.Concatenated_disk;
case fsType.JFS2: return Localization.IBM_JFS2;
case fsType.HAMMER: return Localization.Hammer;
case fsType.HAMMER2: return Localization.Hammer2;
case fsType.UDF: return Localization.UDF;
case fsType.EFS: return Localization.EFS;
case fsType.ZFS: return Localization.ZFS;
case fsType.NANDFS: return Localization.FreeBSD_nandfs;
case fsType.MSDOS: return Localization.FAT;
case fsType.Other: return Localization.Other_or_unknown;
default: return Localization.Unknown_partition_type;
}
}

View File

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

View File

@@ -51,11 +51,11 @@ public sealed class Human68K : IPartition
const uint X68K_MAGIC = 0x5836384B;
/// <inheritdoc />
public string Name => "Human 68k partitions";
public string Name => Localization.Human68K_Name;
/// <inheritdoc />
public Guid Id => new("246A6D93-4F1A-1F8A-344D-50187A5513A9");
/// <inheritdoc />
public string Author => "Natalia Portillo";
public string Author => Authors.NataliaPortillo;
/// <inheritdoc />
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 =
{
// 0x00
"Empty", "FAT12", "XENIX root", "XENIX /usr",
Localization.Empty, Localization.FAT12, Localization.XENIX_root, Localization.XENIX_usr,
// 0x04
"FAT16 < 32 MiB", "Extended", "FAT16", "IFS (HPFS/NTFS)",
Localization.FAT16_32_MiB, Localization.Extended, Localization.FAT16, Localization.IFS_HPFS_NTFS,
// 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
"FAT32 (LBA)", "Unknown", "FAT16 (LBA)", "Extended (LBA)",
Localization.FAT32_LBA, Localization.Unknown_partition_type, Localization.FAT16_LBA, Localization.Extended_LBA,
// 0x10
"OPUS", "Hidden FAT12", "Compaq diagnostics, recovery partition", "Unknown",
Localization.OPUS, Localization.Hidden_FAT12, Localization.Compaq_diagnostics_recovery_partition,
Localization.Unknown_partition_type,
// 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
"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
"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
"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
"NEC-DOS", "Unknown", "SpeedStor reserved", "Hidden NTFS",
Localization.NEC_DOS, Localization.Unknown_partition_type, Localization.SpeedStor_reserved,
Localization.Hidden_NTFS,
// 0x28
"Unknown", "Unknown", "Unknown", "Unknown",
Localization.Unknown_partition_type, Localization.Unknown_partition_type, Localization.Unknown_partition_type,
Localization.Unknown_partition_type,
// 0x2C
"Unknown", "Unknown", "Unknown", "Unknown",
Localization.Unknown_partition_type, Localization.Unknown_partition_type, Localization.Unknown_partition_type,
Localization.Unknown_partition_type,
// 0x30
"Unknown", "SpeedStor reserved", "Unknown", "SpeedStor reserved",
Localization.Unknown_partition_type, Localization.SpeedStor_reserved, Localization.Unknown_partition_type,
Localization.SpeedStor_reserved,
// 0x34
"SpeedStor reserved", "Unknown", "SpeedStor reserved", "Unknown",
Localization.SpeedStor_reserved, Localization.Unknown_partition_type, Localization.SpeedStor_reserved,
Localization.Unknown_partition_type,
// 0x38
"Theos", "Plan 9", "Unknown", "Unknown",
Localization.Theos, Localization.Plan_9, Localization.Unknown_partition_type,
Localization.Unknown_partition_type,
// 0x3C
"Partition Magic", "Hidden NetWare", "Unknown", "Unknown",
Localization.Partition_Magic, Localization.Hidden_NetWare, Localization.Unknown_partition_type,
Localization.Unknown_partition_type,
// 0x40
"VENIX 80286", "PReP Boot", "Secure File System", "PTS-DOS",
Localization.VENIX_80286, Localization.PReP_Boot, Localization.Secure_File_System, Localization.PTS_DOS,
// 0x44
"Unknown", "Priam, EUMEL/Elan", "EUMEL/Elan", "EUMEL/Elan",
Localization.Unknown_partition_type, Localization.Priam_EUMEL_Elan, Localization.EUMEL_Elan,
Localization.EUMEL_Elan,
// 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
"Unknown", "QNX 4", "QNX 4", "QNX 4, Oberon",
Localization.Unknown_partition_type, Localization.QNX_4, Localization.QNX_4, Localization.QNX_4_Oberon,
// 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
"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
"Unknown", "Unknown", "Unknown", "Unknown",
Localization.Unknown_partition_type, Localization.Unknown_partition_type, Localization.Unknown_partition_type,
Localization.Unknown_partition_type,
// 0x5C
"Priam EDISK", "Unknown", "Unknown", "Unknown",
Localization.Priam_EDISK, Localization.Unknown_partition_type, Localization.Unknown_partition_type,
Localization.Unknown_partition_type,
// 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
"NetWare 286", "NetWare", "NetWare 386", "NetWare",
Localization.NetWare_286, Localization.NetWare, Localization.NetWare_386, Localization.NetWare,
// 0x68
"NetWare", "NetWare NSS", "Unknown", "Unknown",
Localization.NetWare, Localization.NetWare_NSS, Localization.Unknown_partition_type,
Localization.Unknown_partition_type,
// 0x6C
"Unknown", "Unknown", "Unknown", "Unknown",
Localization.Unknown_partition_type, Localization.Unknown_partition_type, Localization.Unknown_partition_type,
Localization.Unknown_partition_type,
// 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
"Unknown", "IBM PC/IX", "Unknown", "Unknown",
Localization.Unknown_partition_type, Localization.IBM_PC_IX, Localization.Unknown_partition_type,
Localization.Unknown_partition_type,
// 0x78
"Unknown", "Unknown", "Unknown", "Unknown",
Localization.Unknown_partition_type, Localization.Unknown_partition_type, Localization.Unknown_partition_type,
Localization.Unknown_partition_type,
// 0x7C
"Unknown", "Unknown", "Unknown", "Unknown",
Localization.Unknown_partition_type, Localization.Unknown_partition_type, Localization.Unknown_partition_type,
Localization.Unknown_partition_type,
// 0x80
"Old MINIX", "MINIX, Old Linux", "Linux swap, Solaris", "Linux",
Localization.Old_MINIX, Localization.MINIX_Old_Linux, Localization.Linux_swap_Solaris, Localization.Linux,
// 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
"Linux Plaintext", "Unknown", "Unknown", "Unknown",
Localization.Linux_Plaintext, Localization.Unknown_partition_type, Localization.Unknown_partition_type,
Localization.Unknown_partition_type,
// 0x8C
"Unknown", "Unknown", "Linux LVM", "Unknown",
Localization.Unknown_partition_type, Localization.Unknown_partition_type, Localization.Linux_LVM,
Localization.Unknown_partition_type,
// 0x90
"Unknown", "Unknown", "Unknown", "Amoeba, Hidden Linux",
Localization.Unknown_partition_type, Localization.Unknown_partition_type, Localization.Unknown_partition_type,
Localization.Amoeba_Hidden_Linux,
// 0x94
"Amoeba bad blocks", "Unknown", "Unknown", "Unknown",
Localization.Amoeba_bad_blocks, Localization.Unknown_partition_type, Localization.Unknown_partition_type,
Localization.Unknown_partition_type,
// 0x98
"Unknown", "Mylex EISA SCSI", "Unknown", "Unknown",
Localization.Unknown_partition_type, Localization.Mylex_EISA_SCSI, Localization.Unknown_partition_type,
Localization.Unknown_partition_type,
// 0x9C
"Unknown", "Unknown", "Unknown", "BSD/OS",
Localization.Unknown_partition_type, Localization.Unknown_partition_type, Localization.Unknown_partition_type,
Localization.BSD_OS,
// 0xA0
"Hibernation", "HP Volume Expansion", "Unknown", "HP Volume Expansion",
Localization.Hibernation, Localization.HP_Volume_Expansion, Localization.Unknown_partition_type,
Localization.HP_Volume_Expansion,
// 0xA4
"HP Volume Expansion", "FreeBSD", "OpenBSD", "NeXTStep",
Localization.HP_Volume_Expansion, Localization.FreeBSD, Localization.OpenBSD, Localization.NeXTStep,
// 0xA8
"Apple UFS", "NetBSD", "Olivetti DOS FAT12", "Apple Boot",
Localization.Apple_UFS, Localization.NetBSD, Localization.Olivetti_DOS_FAT12, Localization.Apple_Boot,
// 0xAC
"Unknown", "Unknown", "Unknown", "Apple HFS",
Localization.Unknown_partition_type, Localization.Unknown_partition_type, Localization.Unknown_partition_type,
Localization.Apple_HFS,
// 0xB0
"BootStar", "HP Volume Expansion", "Unknown", "HP Volume Expansion",
Localization.BootStar, Localization.HP_Volume_Expansion, Localization.Unknown_partition_type,
Localization.HP_Volume_Expansion,
// 0xB4
"HP Volume Expansion", "Unknown", "HP Volume Expansion", "BSDi",
Localization.HP_Volume_Expansion, Localization.Unknown_partition_type, Localization.HP_Volume_Expansion,
Localization.BSDi,
// 0xB8
"BSDi swap", "Unknown", "Unknown", "PTS BootWizard",
"BSDi swap", Localization.Unknown_partition_type, Localization.Unknown_partition_type,
Localization.PTS_BootWizard,
// 0xBC
"Unknown", "Unknown", "Solaris boot", "Solaris",
Localization.Unknown_partition_type, Localization.Unknown_partition_type, Localization.Solaris_boot,
Localization.Solaris,
// 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
"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
"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
"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
"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
"Multiuser DOS secured FAT16 < 32 MiB", "Multiuser DOS secured extended", "Multiuser DOS secured FAT16",
"Unknown",
Localization.Multiuser_DOS_secured_FAT16_32_MiB, Localization.Multiuser_DOS_secured_extended,
Localization.Multiuser_DOS_secured_FAT16, Localization.Unknown_partition_type,
// 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
"Unknown", "Unknown", "Dell partition", "BootIt EMBRM",
Localization.Unknown_partition_type, Localization.Unknown_partition_type, Localization.Dell_partition,
Localization.BootIt_EMBRM,
// 0xE0
"Unknown", "SpeedStor", "DOS read/only", "SpeedStor",
Localization.Unknown_partition_type, Localization.SpeedStor, Localization.DOS_read_only, Localization.SpeedStor,
// 0xE4
"SpeedStor", "Tandy DOS", "SpeedStor", "Unknown",
Localization.SpeedStor, Localization.Tandy_DOS, Localization.SpeedStor, Localization.Unknown_partition_type,
// 0xE8
"Unknown", "Unknown", "Unknown", "BeOS",
Localization.Unknown_partition_type, Localization.Unknown_partition_type, Localization.Unknown_partition_type,
Localization.BeOS,
// 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
"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
"SpeedStor", "Prologue", "SpeedStor", "Unknown",
Localization.SpeedStor, Localization.Prologue, Localization.SpeedStor, Localization.Unknown_partition_type,
// 0xF8
"Unknown", "Unknown", "Unknown", "VMWare VMFS",
Localization.Unknown_partition_type, Localization.Unknown_partition_type, Localization.Unknown_partition_type,
Localization.VMware_VMFS,
// 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 />
public string Name => "Master Boot Record";
public string Name => Localization.MBR_Name;
/// <inheritdoc />
public Guid Id => new("5E8A34E8-4F1A-59E6-4BF7-7EA647063A76");
/// <inheritdoc />
public string Author => "Natalia Portillo";
public string Author => Authors.NataliaPortillo;
/// <inheritdoc />
[SuppressMessage("ReSharper", "UnusedVariable")]
@@ -439,7 +490,7 @@ public sealed class MBR : IPartition
part.Type = $"0x{entry.type:X2}";
part.Name = DecodeMbrType(entry.type);
part.Sequence = counter;
part.Description = entry.status == 0x80 ? "Partition is bootable." : "";
part.Description = entry.status == 0x80 ? Localization.Partition_is_bootable : "";
part.Scheme = Name;
counter++;
@@ -562,7 +613,7 @@ public sealed class MBR : IPartition
part.Type = $"0x{ebrEntry.type:X2}";
part.Name = DecodeMbrType(ebrEntry.type);
part.Sequence = counter;
part.Description = ebrEntry.status == 0x80 ? "Partition is bootable." : "";
part.Description = ebrEntry.status == 0x80 ? Localization.Partition_is_bootable : "";
part.Scheme = Name;
counter++;
@@ -664,8 +715,8 @@ public sealed class MBR : IPartition
anyMnx = true;
part.Type = "MINIX";
part.Name = "MINIX";
part.Description = mnxEntry.status == 0x80 ? "Partition is bootable." : "";
part.Name = Localization.MINIX;
part.Description = mnxEntry.status == 0x80 ? Localization.Partition_is_bootable : "";
part.Scheme = "MINIX";
partitions.Add(part);

View File

@@ -64,11 +64,11 @@ public sealed class NeXTDisklabel : IPartition
const ushort DISKTAB_ENTRY_SIZE = 0x2C;
/// <inheritdoc />
public string Name => "NeXT Disklabel";
public string Name => Localization.NeXTDisklabel_Name;
/// <inheritdoc />
public Guid Id => new("246A6D93-4F1A-1F8A-344D-50187A5513A9");
/// <inheritdoc />
public string Author => "Natalia Portillo";
public string Author => Authors.NataliaPortillo;
/// <inheritdoc />
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)
{
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.Size = part.Length * sectorSize;
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("{0} bytes per fragment", label.dl_dt.d_partitions[i].p_fsize).AppendLine();
sb.AppendFormat(Localization._0_bytes_per_block, label.dl_dt.d_partitions[i].p_bsize).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')
sb.AppendLine("Space optimized");
sb.AppendLine(Localization.Space_optimized);
else if(label.dl_dt.d_partitions[i].p_opt == 't')
sb.AppendLine("Time optimized");
sb.AppendLine(Localization.Time_optimized);
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("{0} bytes per inode", label.dl_dt.d_partitions[i].p_density).AppendLine();
sb.AppendFormat(Localization._0_cylinders_per_group, label.dl_dt.d_partitions[i].p_cpg).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();
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)
sb.AppendLine("Filesystem should be automatically mounted");
sb.AppendLine(Localization.Filesystem_should_be_automatically_mounted);
part.Description = sb.ToString();

View File

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

View File

@@ -50,11 +50,11 @@ namespace Aaru.Partitions;
public sealed class Plan9 : IPartition
{
/// <inheritdoc />
public string Name => "Plan9 partition table";
public string Name => Localization.Plan9_Name;
/// <inheritdoc />
public Guid Id => new("F0BF4FFC-056E-4E7C-8B65-4EAEE250ADD9");
/// <inheritdoc />
public string Author => "Natalia Portillo";
public string Author => Authors.NataliaPortillo;
/// <inheritdoc />
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;
/// <inheritdoc />
public string Name => "Amiga Rigid Disk Block";
public string Name => Localization.AmigaRigidDiskBlock_Name;
/// <inheritdoc />
public Guid Id => new("8D72ED97-1854-4170-9CE4-6E8446FD9863");
/// <inheritdoc />
public string Author => "Natalia Portillo";
public string Author => Authors.NataliaPortillo;
/// <inheritdoc />
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);
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)
{
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;
@@ -371,7 +372,7 @@ public sealed class AmigaRigidDiskBlock : IPartition
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);
errno = imagePlugin.ReadSector(nextBlock, out sector);
@@ -384,7 +385,7 @@ public sealed class AmigaRigidDiskBlock : IPartition
if(magic != BAD_BLOCK_LIST_MAGIC)
break;
AaruConsole.DebugWriteLine("Amiga RDB plugin", "Found BadBlock block");
AaruConsole.DebugWriteLine("Amiga RDB plugin", Localization.Found_BadBlock_block);
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));
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);
}
@@ -429,7 +431,8 @@ public sealed class AmigaRigidDiskBlock : IPartition
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);
errno = imagePlugin.ReadSector(nextBlock + sectorOffset, out sector);
@@ -442,7 +445,7 @@ public sealed class AmigaRigidDiskBlock : IPartition
if(magic != PARTITION_BLOCK_MAGIC)
break;
AaruConsole.DebugWriteLine("Amiga RDB plugin", "Found PartitionEntry block");
AaruConsole.DebugWriteLine("Amiga RDB plugin", Localization.Found_PartitionEntry_block);
var partEntry = new PartitionEntry
{
@@ -598,8 +601,8 @@ public sealed class AmigaRigidDiskBlock : IPartition
while(nextBlock != 0xFFFFFFFF)
{
AaruConsole.DebugWriteLine("Amiga RDB plugin", "Going to block {0} in search of a FileSystemHeader block",
nextBlock);
AaruConsole.DebugWriteLine("Amiga RDB plugin",
Localization.Going_to_block_0_in_search_of_a_FileSystemHeader_block, nextBlock);
errno = imagePlugin.ReadSector(nextBlock, out sector);
@@ -611,7 +614,7 @@ public sealed class AmigaRigidDiskBlock : IPartition
if(magic != FILESYSTEM_HEADER_MAGIC)
break;
AaruConsole.DebugWriteLine("Amiga RDB plugin", "Found FileSystemHeader block");
AaruConsole.DebugWriteLine("Amiga RDB plugin", Localization.Found_FileSystemHeader_block);
var fshd = new FileSystemHeader
{
@@ -676,8 +679,8 @@ public sealed class AmigaRigidDiskBlock : IPartition
while(nextBlock != 0xFFFFFFFF)
{
AaruConsole.DebugWriteLine("Amiga RDB plugin", "Going to block {0} in search of a LoadSegment block",
nextBlock);
AaruConsole.DebugWriteLine("Amiga RDB plugin",
Localization.Going_to_block_0_in_search_of_a_LoadSegment_block, nextBlock);
errno = imagePlugin.ReadSector(nextBlock, out sector);
@@ -689,7 +692,7 @@ public sealed class AmigaRigidDiskBlock : IPartition
if(magicSeg != LOAD_SEG_MAGIC)
break;
AaruConsole.DebugWriteLine("Amiga RDB plugin", "Found LoadSegment block");
AaruConsole.DebugWriteLine("Amiga RDB plugin", Localization.Found_LoadSegment_block);
thereAreLoadSegments = true;
@@ -723,7 +726,7 @@ public sealed class AmigaRigidDiskBlock : IPartition
if(thereAreLoadSegments)
{
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);
@@ -760,88 +763,99 @@ public sealed class AmigaRigidDiskBlock : IPartition
{
switch(amigaDosType)
{
case TYPEID_OFS: return "Amiga Original File System";
case TYPEID_FFS: return "Amiga Fast File System";
case TYPEID_OFS_INTL: return "Amiga Original File System with international characters";
case TYPEID_FFS_INTL: return "Amiga Fast File System with international characters";
case TYPEID_OFS_CACHE: return "Amiga Original File System with directory cache";
case TYPEID_FFS_CACHE: return "Amiga Fast File System with directory cache";
case TYPEID_OFS2: return "Amiga Original File System with long filenames";
case TYPEID_FFS2: return "Amiga Fast File System with long filenames";
case TYPEID_AMIX_SYSV: return "Amiga UNIX System V filesystem";
case TYPEID_AMIX_BOOT: return "Amiga UNIX boot filesystem";
case TYPEID_AMIX_FFS: return "Amiga UNIX BSD filesystem";
case TYPEID_AMIX_RESERVED: return "Amiga UNIX Reserved partition (swap)";
case TYPEID_OFS: return Localization.Amiga_Original_File_System;
case TYPEID_FFS: return Localization.Amiga_Fast_File_System;
case TYPEID_OFS_INTL: return Localization.Amiga_Original_File_System_with_international_characters;
case TYPEID_FFS_INTL: return Localization.Amiga_Fast_File_System_with_international_characters;
case TYPEID_OFS_CACHE: return Localization.Amiga_Original_File_System_with_directory_cache;
case TYPEID_FFS_CACHE: return Localization.Amiga_Fast_File_System_with_directory_cache;
case TYPEID_OFS2: return Localization.Amiga_Original_File_System_with_long_filenames;
case TYPEID_FFS2: return Localization.Amiga_Fast_File_System_with_long_filenames;
case TYPEID_AMIX_SYSV: return Localization.Amiga_UNIX_System_V_filesystem;
case TYPEID_AMIX_BOOT: return Localization.Amiga_UNIX_boot_filesystem;
case TYPEID_AMIX_FFS: return Localization.Amiga_UNIX_BSD_filesystem;
case TYPEID_AMIX_RESERVED: return Localization.Amiga_UNIX_Reserved_partition__swap_;
case TYPEID_PFS:
case TYPEID_PFS2:
case TYPEID_PFS_MUSER:
case TYPEID_AFS: return "ProfessionalFileSystem";
case TYPEID_SFS: return "SmartFileSystem v1";
case TYPEID_SFS2: return "SmartFileSystem v2";
case TYPEID_JXFS: return "JXFS";
case TYPEID_CROSS_DOS: return "FAT, as set by CrossDOS";
case TYPEID_CROSS_MAC: return "HFS, as set by CrossMac";
case TYPEID_BFFS: return "4.2UFS, for BFFS";
case TYPEID_OFS_MUSER: return "Amiga Original File System with multi-user patches";
case TYPEID_FFS_MUSER: return "Amiga Fast File System with multi-user patches";
case TYPEID_AFS: return Localization.ProfessionalFileSystem;
case TYPEID_SFS: return Localization.SmartFileSystem_v1;
case TYPEID_SFS2: return Localization.SmartFileSystem_v2;
case TYPEID_JXFS: return Localization.JXFS;
case TYPEID_CROSS_DOS: return Localization.FAT_as_set_by_CrossDOS;
case TYPEID_CROSS_MAC: return Localization.HFS_as_set_by_CrossMac;
case TYPEID_BFFS: return Localization._4_2_UFS_for_BFFS;
case TYPEID_OFS_MUSER: return Localization.Amiga_Original_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:
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:
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:
return "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_OLD_BSD_UNUSED: return "BSD unused";
case TYPEID_OLD_BSD_SWAP: return "BSD swap";
case TYPEID_OLD_BSD42_FFS: return "BSD 4.2 FFS";
case TYPEID_OLD_BSD44_LFS: return "BSD 4.4 LFS";
case TYPEID_NETBSD_ROOT_UNUSED: return "NetBSD unused root partition";
case TYPEID_NETBSD_ROOT_42FFS: return "NetBSD 4.2 FFS root partition";
case TYPEID_NETBSD_ROOT_44LFS: return "NetBSD 4.4 LFS root partition";
case TYPEID_NETBSD_USER_UNUSED: return "NetBSD unused user partition";
case TYPEID_NETBSD_USER_42FFS: return "NetBSD 4.2 FFS user partition";
case TYPEID_NETBSD_USER_44LFS: return "NetBSD 4.4 LFS user partition";
case TYPEID_NETBSD_SWAP: return "NetBSD swap partition";
case TYPEID_LINUX: return "Linux filesystem partition";
case TYPEID_LINUX_SWAP: return "Linux swap partition";
return Localization.Amiga_Original_File_System_with_directory_cache_and_multi_user_patches;
case TYPEID_FFS_CACHE_MUSER:
return Localization.Amiga_Fast_File_System_with_directory_cache_and_multi_user_patches;
case TYPEID_OLD_BSD_UNUSED: return Localization.BSD_unused;
case TYPEID_OLD_BSD_SWAP: return Localization.BSD_swap;
case TYPEID_OLD_BSD42_FFS: return Localization.BSD_4_2_FFS;
case TYPEID_OLD_BSD44_LFS: return Localization.BSD_4_4_LFS;
case TYPEID_NETBSD_ROOT_UNUSED: return Localization.NetBSD_unused_root_partition;
case TYPEID_NETBSD_ROOT_42FFS: return Localization.NetBSD_4_2_FFS_root_partition;
case TYPEID_NETBSD_ROOT_44LFS: return Localization.NetBSD_4_4_LFS_root_partition;
case TYPEID_NETBSD_USER_UNUSED: return Localization.NetBSD_unused_user_partition;
case TYPEID_NETBSD_USER_42FFS: return Localization.NetBSD_4_2_FFS_user_partition;
case TYPEID_NETBSD_USER_44LFS: return Localization.NetBSD_4_4_LFS_user_partition;
case TYPEID_NETBSD_SWAP: return Localization.NetBSD_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_FRAME0: return "RaidFrame partition";
case TYPEID_RAID_FRAME0: return Localization.RaidFrame_partition;
default:
{
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)
return $"Unknown Amiga UNIX filesystem type {AmigaDosTypeToString(amigaDosType)}";
return string.Format(Localization.Unknown_Amiga_UNIX_filesystem_type_0,
AmigaDosTypeToString(amigaDosType));
if((amigaDosType & 0x50465300) == 0x50465300 ||
(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)
return $"Unknown SmartFileSystem type {AmigaDosTypeToString(amigaDosType)}";
return string.Format(Localization.Unknown_SmartFileSystem_type_0,
AmigaDosTypeToString(amigaDosType));
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)
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)
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)
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)
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 ||
(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;
/// <inheritdoc />
public string Name => "Rio Karma partitioning";
public string Name => Localization.RioKarma_Name;
/// <inheritdoc />
public Guid Id => new("246A6D93-4F1A-1F8A-344D-50187A5513A9");
/// <inheritdoc />
public string Author => "Natalia Portillo";
public string Author => Authors.NataliaPortillo;
/// <inheritdoc />
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),
Size = entry.size,
Length = (ulong)(entry.size * sector.Length),
Type = "Rio Karma",
Type = Localization.Rio_Karma,
Sequence = counter++,
Scheme = Name
} where entry.type == ENTRY_MAGIC select part).ToList();

View File

@@ -53,11 +53,11 @@ public sealed class SGI : IPartition
const int SGI_MAGIC = 0x0BE5A941;
/// <inheritdoc />
public string Name => "SGI Disk Volume Header";
public string Name => Localization.SGI_Name;
/// <inheritdoc />
public Guid Id => new("AEF5AB45-4880-4CE8-8735-F0A402E2E5F2");
/// <inheritdoc />
public string Author => "Natalia Portillo";
public string Author => Authors.NataliaPortillo;
/// <inheritdoc />
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++)
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)
return false;
@@ -168,24 +169,24 @@ public sealed class SGI : IPartition
static string TypeToString(SGIType typ) => typ switch
{
SGIType.Header => "Volume header",
SGIType.TrkRepl => "Track replacements",
SGIType.SecRepl => "Sector replacements",
SGIType.Swap => "Raw data (swap)",
SGIType.Bsd => "4.2BSD Fast File System",
SGIType.SystemV => "UNIX System V",
SGIType.Volume => "Whole device",
SGIType.EFS => "EFS",
SGIType.Lvol => "Logical volume",
SGIType.Rlvol => "Raw logical volume",
SGIType.XFS => "XFS",
SGIType.Xlvol => "XFS log device",
SGIType.Rxlvol => "XLV volume",
SGIType.Xvm => "SGI XVM",
SGIType.LinuxSwap => "Linux swap",
SGIType.Linux => "Linux",
SGIType.LinuxRAID => "Linux RAID",
_ => "Unknown"
SGIType.Header => Localization.Volume_header,
SGIType.TrkRepl => Localization.Track_replacements,
SGIType.SecRepl => Localization.Sector_replacements,
SGIType.Swap => Localization.Raw_data_swap,
SGIType.Bsd => Localization._4_2_BSD_Fast_File_System,
SGIType.SystemV => Localization.UNIX_System_V,
SGIType.Volume => Localization.Whole_device,
SGIType.EFS => Localization.EFS,
SGIType.Lvol => Localization.Logical_volume,
SGIType.Rlvol => Localization.Raw_logical_volume,
SGIType.XFS => Localization.XFS,
SGIType.Xlvol => Localization.XFS_log_device,
SGIType.Rxlvol => Localization.XLV_volume,
SGIType.Xvm => Localization.SGI_XVM,
SGIType.LinuxSwap => Localization.Linux_swap,
SGIType.Linux => Localization.Linux,
SGIType.LinuxRAID => Localization.Linux_RAID,
_ => Localization.Unknown_partition_type
};
[StructLayout(LayoutKind.Sequential, Pack = 1)]

View File

@@ -76,11 +76,11 @@ public sealed class SunDisklabel : IPartition
(4 * 4) + (12 * 2) + (2 * 2));
/// <inheritdoc />
public string Name => "Sun Disklabel";
public string Name => Localization.SunDisklabel_Name;
/// <inheritdoc />
public Guid Id => new("50F35CC4-8375-4445-8DCB-1BA550C931A3");
/// <inheritdoc />
public string Author => "Natalia Portillo";
public string Author => Authors.NataliaPortillo;
/// <inheritdoc />
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,
Start = (((ulong)dkl.dkl_map[i].dkl_cylno * sectorsPerCylinder) + sectorOffset) *
DK_LABEL_SIZE / imagePlugin.Info.SectorSize,
Type = "SunOS partition",
Type = Localization.SunOS_partition,
Scheme = Name
};
@@ -278,8 +278,9 @@ public sealed class SunDisklabel : IPartition
};
if(dkl8.dkl_vtoc.v_timestamp[i] != 0)
part.Description += $"\nPartition timestamped on {
DateHandlers.UnixToDateTime(dkl8.dkl_vtoc.v_timestamp[i])}";
part.Description += "\n" + string.Format(Localization.Partition_timestamped_on_0,
DateHandlers.
UnixToDateTime(dkl8.dkl_vtoc.v_timestamp[i]));
if(part.Start < 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)
part.Description += $"\nPartition timestamped on {
DateHandlers.UnixToDateTime(dkl16.dkl_vtoc.v_timestamp[i])}";
part.Description += "\n" + string.Format(Localization.Partition_timestamped_on_0,
DateHandlers.
UnixToDateTime(dkl16.dkl_vtoc.v_timestamp[i]));
if(part.Start < imagePlugin.Info.Sectors &&
part.End <= imagePlugin.Info.Sectors)
@@ -373,7 +375,7 @@ public sealed class SunDisklabel : IPartition
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);
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)
{
AaruConsole.DebugWriteLine("Sun plugin", "Swapping dk_label8");
AaruConsole.DebugWriteLine("Sun plugin", Localization.Swapping_dk_label8);
label = (dk_label8)Marshal.SwapStructureMembersEndian(label);
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)
{
AaruConsole.DebugWriteLine("Sun plugin", "Swapping dk_label16");
AaruConsole.DebugWriteLine("Sun plugin", Localization.Swapping_dk_label16);
label = (dk_label16)Marshal.SwapStructureMembersEndian(label);
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();
if(flags.HasFlag(SunFlags.NoMount))
sb.AppendLine("Unmountable");
sb.AppendLine(Localization.Unmountable);
if(flags.HasFlag(SunFlags.ReadOnly))
sb.AppendLine("Read-only");
sb.AppendLine(Localization.Read_only);
return sb.ToString();
}
static string SunIdToString(SunTag id) => id switch
{
SunTag.Linux => "Linux",
SunTag.LinuxRaid => "Linux RAID",
SunTag.LinuxSwap => "Linux swap",
SunTag.LVM => "LVM",
SunTag.SunBoot => "Sun boot",
SunTag.SunEmpty => "Empty",
SunTag.SunHome => "Sun /home",
SunTag.SunRoot => "Sun /",
SunTag.SunStand => "Sun /stand",
SunTag.SunSwap => "Sun swap",
SunTag.SunUsr => "Sun /usr",
SunTag.SunVar => "Sun /var",
SunTag.SunWholeDisk => "Whole disk",
SunTag.SunAlt => "Replacement sectors",
SunTag.SunCache => "Sun cachefs",
SunTag.SunReserved => "Reserved for SMI",
SunTag.VxVmPublic => "Veritas public",
SunTag.VxVmPrivate => "Veritas private",
SunTag.NetBSD => "NetBSD",
SunTag.FreeBSD_Swap => "FreeBSD swap",
SunTag.FreeBSD_UFS => "FreeBSD",
SunTag.FreeBSD_Vinum => "Vinum",
SunTag.FreeBSD_ZFS => "FreeBSD ZFS",
SunTag.FreeBSD_NANDFS => "FreeBSD nandfs",
_ => "Unknown"
SunTag.Linux => Localization.Linux,
SunTag.LinuxRaid => Localization.Linux_RAID,
SunTag.LinuxSwap => Localization.Linux_swap,
SunTag.LVM => Localization.LVM,
SunTag.SunBoot => Localization.Sun_boot,
SunTag.SunEmpty => Localization.Empty,
SunTag.SunHome => Localization.Sun_home,
SunTag.SunRoot => Localization.Sun_root,
SunTag.SunStand => Localization.Sun_stand,
SunTag.SunSwap => Localization.Sun_swap,
SunTag.SunUsr => Localization.Sun_usr,
SunTag.SunVar => Localization.Sun_var,
SunTag.SunWholeDisk => Localization.Whole_disk,
SunTag.SunAlt => Localization.Replacement_sectors,
SunTag.SunCache => Localization.Sun_cachefs,
SunTag.SunReserved => Localization.Reserved_for_SMI,
SunTag.VxVmPublic => Localization.Veritas_public,
SunTag.VxVmPrivate => Localization.Veritas_private,
SunTag.NetBSD => Localization.NetBSD,
SunTag.FreeBSD_Swap => Localization.FreeBSD_swap,
SunTag.FreeBSD_UFS => Localization.FreeBSD,
SunTag.FreeBSD_Vinum => Localization.Vinum,
SunTag.FreeBSD_ZFS => Localization.FreeBSD_ZFS,
SunTag.FreeBSD_NANDFS => Localization.FreeBSD_nandfs,
_ => Localization.Unknown_partition_type
};
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 */
/// <inheritdoc />
public string Name => "UNIX VTOC";
public string Name => Localization.VTOC_Name;
/// <inheritdoc />
public Guid Id => new("6D35A66F-8D77-426F-A562-D88F6A1F1702");
/// <inheritdoc />
public string Author => "Natalia Portillo";
public string Author => Authors.NataliaPortillo;
/// <inheritdoc />
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);
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);
if(magic != PD_MAGIC &&
@@ -175,7 +175,7 @@ public sealed class VTOC : IPartition
if(magic is VTOC_SANE or VTOC_ENAS)
{
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)
vtoc = Marshal.ByteArrayToStructureLittleEndian<vtoc>(vtocsector);
@@ -203,7 +203,7 @@ public sealed class VTOC : IPartition
{
magicFound = 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)
vtocOld = Marshal.ByteArrayToStructureLittleEndian<vtocold>(vtocsector);
@@ -225,7 +225,7 @@ public sealed class VTOC : IPartition
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;
uint relSecOff = pd.vtoc_ptr % imagePlugin.Info.SectorSize;
uint secCount = (relSecOff + pd.vtoc_len) / imagePlugin.Info.SectorSize;
@@ -234,12 +234,12 @@ public sealed class VTOC : IPartition
secCount++;
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);
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;
}
@@ -256,7 +256,7 @@ public sealed class VTOC : IPartition
if(magic is VTOC_SANE or VTOC_ENAS)
{
magicFound = true;
AaruConsole.DebugWriteLine("VTOC plugin", "New VTOC found.");
AaruConsole.DebugWriteLine("VTOC plugin", Localization.New_VTOC_found);
if(magic == VTOC_SANE)
vtoc = Marshal.ByteArrayToStructureLittleEndian<vtoc>(vtocsector);
@@ -278,7 +278,7 @@ public sealed class VTOC : IPartition
if(!magicFound)
{
AaruConsole.DebugWriteLine("VTOC plugin", "Cannot find VTOC.");
AaruConsole.DebugWriteLine("VTOC plugin", Localization.Cannot_find_VTOC);
return false;
}
@@ -397,22 +397,22 @@ public sealed class VTOC : IPartition
}
if(parts[i].p_flag.HasFlag(pFlag.V_VALID))
info += " (valid)";
info += Localization.valid;
if(parts[i].p_flag.HasFlag(pFlag.V_UNMNT))
info += " (unmountable)";
info += Localization._unmountable_;
if(parts[i].p_flag.HasFlag(pFlag.V_OPEN))
info += " (open)";
info += Localization.open;
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))
info += " (read-only)";
info += Localization._read_only_;
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 + ".";
@@ -425,23 +425,23 @@ public sealed class VTOC : IPartition
static string DecodeUnixtag(pTag type, bool isNew) => type switch
{
pTag.V_UNUSED => "Unused",
pTag.V_BOOT => "Boot",
pTag.V_UNUSED => Localization.Unused,
pTag.V_BOOT => Localization.Boot,
pTag.V_ROOT => "/",
pTag.V_SWAP => "Swap",
pTag.V_SWAP => Localization.swap,
pTag.V_USER => "/usr",
pTag.V_BACKUP => "Whole disk",
pTag.V_STAND_OLD => isNew ? "Stand" : "Alternate sector space",
pTag.V_VAR_OLD => isNew ? "/var" : "non UNIX",
pTag.V_HOME_OLD => isNew ? "/home" : "Alternate track space",
pTag.V_ALTSCTR_OLD => isNew ? "Alternate sector track" : "Stand",
pTag.V_CACHE => isNew ? "Cache" : "/var",
pTag.V_RESERVED => isNew ? "Reserved" : "/home",
pTag.V_DUMP => "dump",
pTag.V_ALTSCTR => "Alternate sector track",
pTag.V_VMPUBLIC => "volume mgt public partition",
pTag.V_VMPRIVATE => "volume mgt private partition",
_ => $"Unknown TAG: 0x{type:X4}"
pTag.V_BACKUP => Localization.Whole_disk,
pTag.V_STAND_OLD => isNew ? "Stand" : Localization.Alternate_sector_space,
pTag.V_VAR_OLD => isNew ? "/var" : Localization.non_UNIX,
pTag.V_HOME_OLD => isNew ? "/home" : Localization.Alternate_track_space,
pTag.V_ALTSCTR_OLD => isNew ? Localization.Alternate_sector_track : "Stand",
pTag.V_CACHE => isNew ? Localization.Cache : "/var",
pTag.V_RESERVED => isNew ? Localization.Reserved : "/home",
pTag.V_DUMP => Localization.dump,
pTag.V_ALTSCTR => Localization.Alternate_sector_track,
pTag.V_VMPUBLIC => Localization.volume_mgt_public_partition,
pTag.V_VMPRIVATE => Localization.volume_mgt_private_partition,
_ => string.Format(Localization.Unknown_TAG_0, type)
};
[StructLayout(LayoutKind.Sequential, Pack = 1)]

View File

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