Skip to content

Commit 9875877

Browse files
committed
Added language selection option
Added French language
1 parent 951f29b commit 9875877

35 files changed

+5332
-188
lines changed

DiskImageTool/App.config

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@
3737
<setting name="DisplayTitles" serializeAs="String">
3838
<value>True</value>
3939
</setting>
40+
<setting name="Language" serializeAs="String">
41+
<value />
42+
</setting>
4043
</DiskImageTool.My.MySettings>
4144
</userSettings>
4245
<runtime>

DiskImageTool/ApplicationEvents.vb

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
Imports Microsoft.VisualBasic.ApplicationServices
2+
Imports System.Globalization
3+
Imports System.Threading
4+
5+
Namespace My
6+
Partial Friend Class MyApplication
7+
Private Sub MyApplication_Startup(sender As Object, e As StartupEventArgs) Handles Me.Startup
8+
If My.Settings.Language <> "" Then
9+
' Set desired culture here
10+
Thread.CurrentThread.CurrentUICulture = New CultureInfo(My.Settings.Language)
11+
Thread.CurrentThread.CurrentCulture = New CultureInfo(My.Settings.Language)
12+
End If
13+
End Sub
14+
15+
End Class
16+
End Namespace

DiskImageTool/DiskImageTool.vbproj

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,7 @@
125125
<Import Include="System.Threading.Tasks" />
126126
</ItemGroup>
127127
<ItemGroup>
128+
<Compile Include="ApplicationEvents.vb" />
128129
<Compile Include="Bitstream\Bitstream.vb" />
129130
<Compile Include="Controls\SelectablePanel.vb">
130131
<SubType>Component</SubType>
@@ -457,20 +458,32 @@
457458
<DependentUpon>AboutBox.vb</DependentUpon>
458459
<SubType>Designer</SubType>
459460
</EmbeddedResource>
461+
<EmbeddedResource Include="Forms\BootSectorForm.fr.resx">
462+
<DependentUpon>BootSectorForm.vb</DependentUpon>
463+
</EmbeddedResource>
460464
<EmbeddedResource Include="Forms\BootSectorForm.resx">
461465
<DependentUpon>BootSectorForm.vb</DependentUpon>
462466
<SubType>Designer</SubType>
463467
</EmbeddedResource>
468+
<EmbeddedResource Include="Forms\DeleteFileform.fr.resx">
469+
<DependentUpon>DeleteFileform.vb</DependentUpon>
470+
</EmbeddedResource>
464471
<EmbeddedResource Include="Forms\DeleteFileform.resx">
465472
<DependentUpon>DeleteFileform.vb</DependentUpon>
466473
</EmbeddedResource>
474+
<EmbeddedResource Include="Forms\FATEditForm.fr.resx">
475+
<DependentUpon>FATEditForm.vb</DependentUpon>
476+
</EmbeddedResource>
467477
<EmbeddedResource Include="Forms\FATEditForm.resx">
468478
<DependentUpon>FATEditForm.vb</DependentUpon>
469479
<SubType>Designer</SubType>
470480
</EmbeddedResource>
471481
<EmbeddedResource Include="Forms\FileDropForm.resx">
472482
<DependentUpon>FileDropForm.vb</DependentUpon>
473483
</EmbeddedResource>
484+
<EmbeddedResource Include="Forms\FilePropertiesForm.fr.resx">
485+
<DependentUpon>FilePropertiesForm.vb</DependentUpon>
486+
</EmbeddedResource>
474487
<EmbeddedResource Include="Forms\FilePropertiesForm.resx">
475488
<DependentUpon>FilePropertiesForm.vb</DependentUpon>
476489
<SubType>Designer</SubType>
@@ -482,42 +495,81 @@
482495
<DependentUpon>FloppyAccessForm.vb</DependentUpon>
483496
<SubType>Designer</SubType>
484497
</EmbeddedResource>
498+
<EmbeddedResource Include="Forms\FloppyReadOptionsForm.fr.resx">
499+
<DependentUpon>FloppyReadOptionsForm.vb</DependentUpon>
500+
</EmbeddedResource>
485501
<EmbeddedResource Include="Forms\FloppyReadOptionsForm.resx">
486502
<DependentUpon>FloppyReadOptionsForm.vb</DependentUpon>
487503
</EmbeddedResource>
504+
<EmbeddedResource Include="Forms\FloppyWriteOptionsForm.fr.resx">
505+
<DependentUpon>FloppyWriteOptionsForm.vb</DependentUpon>
506+
</EmbeddedResource>
488507
<EmbeddedResource Include="Forms\FloppyWriteOptionsForm.resx">
489508
<DependentUpon>FloppyWriteOptionsForm.vb</DependentUpon>
490509
</EmbeddedResource>
510+
<EmbeddedResource Include="Forms\HexSearchForm.fr.resx">
511+
<DependentUpon>HexSearchForm.vb</DependentUpon>
512+
</EmbeddedResource>
491513
<EmbeddedResource Include="Forms\HexSearchForm.resx">
492514
<DependentUpon>HexSearchForm.vb</DependentUpon>
493515
<SubType>Designer</SubType>
494516
</EmbeddedResource>
517+
<EmbeddedResource Include="Forms\HexViewForm.fr.resx">
518+
<DependentUpon>HexViewForm.vb</DependentUpon>
519+
</EmbeddedResource>
520+
<EmbeddedResource Include="Forms\HexViewRawForm.fr.resx">
521+
<DependentUpon>HexViewRawForm.vb</DependentUpon>
522+
</EmbeddedResource>
495523
<EmbeddedResource Include="Forms\HexViewRawForm.resx">
496524
<DependentUpon>HexViewRawForm.vb</DependentUpon>
497525
</EmbeddedResource>
526+
<EmbeddedResource Include="Forms\ImageCreationForm.fr.resx">
527+
<DependentUpon>ImageCreationForm.vb</DependentUpon>
528+
</EmbeddedResource>
498529
<EmbeddedResource Include="Forms\ImageCreationForm.resx">
499530
<DependentUpon>ImageCreationForm.vb</DependentUpon>
500531
</EmbeddedResource>
501532
<EmbeddedResource Include="Forms\ImageLoadForm.resx">
502533
<DependentUpon>ImageLoadForm.vb</DependentUpon>
503534
<SubType>Designer</SubType>
504535
</EmbeddedResource>
536+
<EmbeddedResource Include="Forms\ImportFileForm.fr.resx">
537+
<DependentUpon>ImportFileForm.vb</DependentUpon>
538+
</EmbeddedResource>
505539
<EmbeddedResource Include="Forms\ImportFileForm.resx">
506540
<DependentUpon>ImportFileForm.vb</DependentUpon>
507541
</EmbeddedResource>
508542
<EmbeddedResource Include="Forms\ItemScanForm.resx">
509543
<DependentUpon>ItemScanForm.vb</DependentUpon>
510544
<SubType>Designer</SubType>
511545
</EmbeddedResource>
546+
<EmbeddedResource Include="Forms\ReplaceFileForm.fr.resx">
547+
<DependentUpon>ReplaceFileForm.vb</DependentUpon>
548+
</EmbeddedResource>
512549
<EmbeddedResource Include="Forms\ReplaceFileForm.resx">
513550
<DependentUpon>ReplaceFileForm.vb</DependentUpon>
514551
</EmbeddedResource>
552+
<EmbeddedResource Include="Forms\SaveAllForm.fr.resx">
553+
<DependentUpon>SaveAllForm.vb</DependentUpon>
554+
</EmbeddedResource>
555+
<EmbeddedResource Include="Forms\TextViewForm.fr.resx">
556+
<DependentUpon>TextViewForm.vb</DependentUpon>
557+
</EmbeddedResource>
558+
<EmbeddedResource Include="Forms\UndeleteForm.fr.resx">
559+
<DependentUpon>UndeleteForm.vb</DependentUpon>
560+
</EmbeddedResource>
515561
<EmbeddedResource Include="Forms\UndeleteForm.resx">
516562
<DependentUpon>UndeleteForm.vb</DependentUpon>
517563
</EmbeddedResource>
564+
<EmbeddedResource Include="Forms\VolumeSerialNumberForm.fr.resx">
565+
<DependentUpon>VolumeSerialNumberForm.vb</DependentUpon>
566+
</EmbeddedResource>
518567
<EmbeddedResource Include="Forms\VolumeSerialNumberForm.resx">
519568
<DependentUpon>VolumeSerialNumberForm.vb</DependentUpon>
520569
</EmbeddedResource>
570+
<EmbeddedResource Include="MainForm.fr.resx">
571+
<DependentUpon>MainForm.vb</DependentUpon>
572+
</EmbeddedResource>
521573
<EmbeddedResource Include="MainForm.resx">
522574
<DependentUpon>MainForm.vb</DependentUpon>
523575
<SubType>Designer</SubType>
@@ -526,6 +578,7 @@
526578
<DependentUpon>HexViewForm.vb</DependentUpon>
527579
<SubType>Designer</SubType>
528580
</EmbeddedResource>
581+
<EmbeddedResource Include="My Project\Resources.fr.resx" />
529582
<EmbeddedResource Include="My Project\Resources.resx">
530583
<Generator>VbMyResourcesResXFileCodeGenerator</Generator>
531584
<LastGenOutput>Resources.Designer.vb</LastGenOutput>
Lines changed: 210 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,210 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<root>
3+
<!--
4+
Microsoft ResX Schema
5+
6+
Version 2.0
7+
8+
The primary goals of this format is to allow a simple XML format
9+
that is mostly human readable. The generation and parsing of the
10+
various data types are done through the TypeConverter classes
11+
associated with the data types.
12+
13+
Example:
14+
15+
... ado.net/XML headers & schema ...
16+
<resheader name="resmimetype">text/microsoft-resx</resheader>
17+
<resheader name="version">2.0</resheader>
18+
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
19+
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
20+
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
21+
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
22+
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
23+
<value>[base64 mime encoded serialized .NET Framework object]</value>
24+
</data>
25+
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
26+
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
27+
<comment>This is a comment</comment>
28+
</data>
29+
30+
There are any number of "resheader" rows that contain simple
31+
name/value pairs.
32+
33+
Each data row contains a name, and value. The row also contains a
34+
type or mimetype. Type corresponds to a .NET class that support
35+
text/value conversion through the TypeConverter architecture.
36+
Classes that don't support this are serialized and stored with the
37+
mimetype set.
38+
39+
The mimetype is used for serialized objects, and tells the
40+
ResXResourceReader how to depersist the object. This is currently not
41+
extensible. For a given mimetype the value must be set accordingly:
42+
43+
Note - application/x-microsoft.net.object.binary.base64 is the format
44+
that the ResXResourceWriter will generate, however the reader can
45+
read any of the formats listed below.
46+
47+
mimetype: application/x-microsoft.net.object.binary.base64
48+
value : The object must be serialized with
49+
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
50+
: and then encoded with base64 encoding.
51+
52+
mimetype: application/x-microsoft.net.object.soap.base64
53+
value : The object must be serialized with
54+
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
55+
: and then encoded with base64 encoding.
56+
57+
mimetype: application/x-microsoft.net.object.bytearray.base64
58+
value : The object must be serialized into a byte array
59+
: using a System.ComponentModel.TypeConverter
60+
: and then encoded with base64 encoding.
61+
-->
62+
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
63+
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
64+
<xsd:element name="root" msdata:IsDataSet="true">
65+
<xsd:complexType>
66+
<xsd:choice maxOccurs="unbounded">
67+
<xsd:element name="metadata">
68+
<xsd:complexType>
69+
<xsd:sequence>
70+
<xsd:element name="value" type="xsd:string" minOccurs="0" />
71+
</xsd:sequence>
72+
<xsd:attribute name="name" use="required" type="xsd:string" />
73+
<xsd:attribute name="type" type="xsd:string" />
74+
<xsd:attribute name="mimetype" type="xsd:string" />
75+
<xsd:attribute ref="xml:space" />
76+
</xsd:complexType>
77+
</xsd:element>
78+
<xsd:element name="assembly">
79+
<xsd:complexType>
80+
<xsd:attribute name="alias" type="xsd:string" />
81+
<xsd:attribute name="name" type="xsd:string" />
82+
</xsd:complexType>
83+
</xsd:element>
84+
<xsd:element name="data">
85+
<xsd:complexType>
86+
<xsd:sequence>
87+
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
88+
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
89+
</xsd:sequence>
90+
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
91+
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
92+
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
93+
<xsd:attribute ref="xml:space" />
94+
</xsd:complexType>
95+
</xsd:element>
96+
<xsd:element name="resheader">
97+
<xsd:complexType>
98+
<xsd:sequence>
99+
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
100+
</xsd:sequence>
101+
<xsd:attribute name="name" type="xsd:string" use="required" />
102+
</xsd:complexType>
103+
</xsd:element>
104+
</xsd:choice>
105+
</xsd:complexType>
106+
</xsd:element>
107+
</xsd:schema>
108+
<resheader name="resmimetype">
109+
<value>text/microsoft-resx</value>
110+
</resheader>
111+
<resheader name="version">
112+
<value>2.0</value>
113+
</resheader>
114+
<resheader name="reader">
115+
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
116+
</resheader>
117+
<resheader name="writer">
118+
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
119+
</resheader>
120+
<data name="BtnCancel.Text" xml:space="preserve">
121+
<value>&amp;Annuler</value>
122+
</data>
123+
<data name="BtnUpdate.Text" xml:space="preserve">
124+
<value>&amp;Mettre à jour</value>
125+
</data>
126+
<data name="GroupBoxAdditionalData.Text" xml:space="preserve">
127+
<value>Données supplémentaires</value>
128+
</data>
129+
<data name="$this.Text" xml:space="preserve">
130+
<value>Secteur de démarrage</value>
131+
</data>
132+
<data name="GroupBoxMain.Text" xml:space="preserve">
133+
<value>Enregistrement de démarrage</value>
134+
</data>
135+
<data name="LblBootSectorSignature.Text" xml:space="preserve">
136+
<value>Signature du secteur de démarrage</value>
137+
</data>
138+
<data name="LblBytesPerSector.Text" xml:space="preserve">
139+
<value>Octets par secteur</value>
140+
</data>
141+
<data name="HexBox1.BuiltInContextMenu.CopyMenuItemText" xml:space="preserve">
142+
<value>Copier le texte</value>
143+
</data>
144+
<data name="LblDiskType.Text" xml:space="preserve">
145+
<value>Type de disquette</value>
146+
</data>
147+
<data name="LblDriveNumber.Text" xml:space="preserve">
148+
<value>Numéro de lecteur</value>
149+
</data>
150+
<data name="lblExtendedBootSignature.Text" xml:space="preserve">
151+
<value>Signature de démarrage étendue</value>
152+
</data>
153+
<data name="GroupBoxExtended.Text" xml:space="preserve">
154+
<value>Bloc de paramètres étendu</value>
155+
</data>
156+
<data name="LblFileSystemType.Text" xml:space="preserve">
157+
<value>ID du système de fichiers</value>
158+
</data>
159+
<data name="LblHiddenSectors.Text" xml:space="preserve">
160+
<value>Secteurs masqués</value>
161+
</data>
162+
<data name="LblJumpInstruction.Text" xml:space="preserve">
163+
<value>Instruction de saut</value>
164+
</data>
165+
<data name="TxtMediaDescriptor.Text" xml:space="preserve">
166+
<value>Descripteur de média</value>
167+
</data>
168+
<data name="LblNumberOfFATS.Text" xml:space="preserve">
169+
<value>Nombre de FAT</value>
170+
</data>
171+
<data name="LblNumberOfHeads.Text" xml:space="preserve">
172+
<value>Nombre de têtes</value>
173+
</data>
174+
<data name="LblOEMName.Text" xml:space="preserve">
175+
<value>Nom OEM</value>
176+
</data>
177+
<data name="LblReservedSectors.Text" xml:space="preserve">
178+
<value>Secteurs réservés</value>
179+
</data>
180+
<data name="LblRootDirectoryEntries.Text" xml:space="preserve">
181+
<value>Entrées du répertoire racine</value>
182+
</data>
183+
<data name="LblSectorsPerCluster.Text" xml:space="preserve">
184+
<value>Secteurs par cluster</value>
185+
</data>
186+
<data name="LblSectorsPerFAT.Text" xml:space="preserve">
187+
<value>Secteurs par FAT</value>
188+
</data>
189+
<data name="LblSectorsPerTrack.Text" xml:space="preserve">
190+
<value>Secteurs par piste</value>
191+
</data>
192+
<data name="HexBox1.BuiltInContextMenu.SelectAllMenuItemText" xml:space="preserve">
193+
<value>Tout sélectionner</value>
194+
</data>
195+
<data name="LblExtendedMsg.Text" xml:space="preserve">
196+
<value>Il semble que des données soient stockées dans le bloc de paramètres étendu de ce secteur de démarrage. Cela signifie généralement que le bloc de paramètres étendu n’est pas défini pour cette disquette.</value>
197+
</data>
198+
<data name="LblSectorCountSmall.Text" xml:space="preserve">
199+
<value>Nombre total de secteurs</value>
200+
</data>
201+
<data name="LblSectorCountLarge.Text" xml:space="preserve">
202+
<value>Nombre total de secteurs (grand format)</value>
203+
</data>
204+
<data name="LblVolumeLabel.Text" xml:space="preserve">
205+
<value>Étiquette du volume</value>
206+
</data>
207+
<data name="LblVolumeSerialNumber.Text" xml:space="preserve">
208+
<value>Numéro de série du volume</value>
209+
</data>
210+
</root>

DiskImageTool/Forms/BootSectorForm.vb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -397,7 +397,7 @@ Public Class BootSectorForm
397397

398398
Private Sub SetHelpString(HelpString As String, ParamArray ControlArray() As Control)
399399
For Each Control In ControlArray
400-
_HelpProvider1.SetHelpString(Control, HelpString)
400+
_HelpProvider1.SetHelpString(Control, HelpString.Replace("\t", vbTab))
401401
_HelpProvider1.SetShowHelp(Control, True)
402402
Next
403403
End Sub

0 commit comments

Comments
 (0)