diff options
23 files changed, 1443 insertions, 0 deletions
diff --git a/TranslateStrings/TranslateStrings.sln b/TranslateStrings/TranslateStrings.sln new file mode 100644 index 0000000..3cf6626 --- /dev/null +++ b/TranslateStrings/TranslateStrings.sln @@ -0,0 +1,25 @@ +
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.31105.61
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "TranslateStrings", "TranslateStrings\TranslateStrings.vbproj", "{A752B492-4AB2-4794-984D-D85055890CFE}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {A752B492-4AB2-4794-984D-D85055890CFE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {A752B492-4AB2-4794-984D-D85055890CFE}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A752B492-4AB2-4794-984D-D85055890CFE}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {A752B492-4AB2-4794-984D-D85055890CFE}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {EE129AC5-051F-4C51-80EE-762C0A0D00F6}
+ EndGlobalSection
+EndGlobal
diff --git a/TranslateStrings/TranslateStrings/App.config b/TranslateStrings/TranslateStrings/App.config new file mode 100644 index 0000000..54a3dfa --- /dev/null +++ b/TranslateStrings/TranslateStrings/App.config @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+ <startup>
+ <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
+ </startup>
+</configuration>
\ No newline at end of file diff --git a/TranslateStrings/TranslateStrings/FormTranslate.Designer.vb b/TranslateStrings/TranslateStrings/FormTranslate.Designer.vb new file mode 100644 index 0000000..baf807e --- /dev/null +++ b/TranslateStrings/TranslateStrings/FormTranslate.Designer.vb @@ -0,0 +1,397 @@ +<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
+Partial Class FormTranslate
+ Inherits System.Windows.Forms.Form
+
+ 'Form overrides dispose to clean up the component list.
+ <System.Diagnostics.DebuggerNonUserCode()> _
+ Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+ Try
+ If disposing AndAlso components IsNot Nothing Then
+ components.Dispose()
+ End If
+ Finally
+ MyBase.Dispose(disposing)
+ End Try
+ End Sub
+
+ 'Required by the Windows Form Designer
+ Private components As System.ComponentModel.IContainer
+
+ 'NOTE: The following procedure is required by the Windows Form Designer
+ 'It can be modified using the Windows Form Designer.
+ 'Do not modify it using the code editor.
+ <System.Diagnostics.DebuggerStepThrough()> _
+ Private Sub InitializeComponent()
+ Me.TabControl1 = New System.Windows.Forms.TabControl()
+ Me.TabPage1 = New System.Windows.Forms.TabPage()
+ Me.lblStatus = New System.Windows.Forms.Label()
+ Me.btnCheck = New System.Windows.Forms.Button()
+ Me.Label2 = New System.Windows.Forms.Label()
+ Me.Label1 = New System.Windows.Forms.Label()
+ Me.txtTranslation = New System.Windows.Forms.TextBox()
+ Me.cbLanguage = New System.Windows.Forms.ComboBox()
+ Me.cbSourceWord = New System.Windows.Forms.ComboBox()
+ Me.TabPage4 = New System.Windows.Forms.TabPage()
+ Me.lblStatusAdded = New System.Windows.Forms.Label()
+ Me.lblTotalWords = New System.Windows.Forms.Label()
+ Me.btnWordAdd = New System.Windows.Forms.Button()
+ Me.txtWordAdd = New System.Windows.Forms.TextBox()
+ Me.TabPage3 = New System.Windows.Forms.TabPage()
+ Me.btnUpdate = New System.Windows.Forms.Button()
+ Me.Label4 = New System.Windows.Forms.Label()
+ Me.txtWordUpdate = New System.Windows.Forms.TextBox()
+ Me.cbLanguageUpdate = New System.Windows.Forms.ComboBox()
+ Me.cbSelectWord = New System.Windows.Forms.ComboBox()
+ Me.TabPage2 = New System.Windows.Forms.TabPage()
+ Me.btnImport = New System.Windows.Forms.Button()
+ Me.btnExport = New System.Windows.Forms.Button()
+ Me.TextBox1 = New System.Windows.Forms.TextBox()
+ Me.Label3 = New System.Windows.Forms.Label()
+ Me.btnExportPass = New System.Windows.Forms.Button()
+ Me.cbRequirePassword = New System.Windows.Forms.CheckBox()
+ Me.btnDelete = New System.Windows.Forms.Button()
+ Me.lblStatusUpdate = New System.Windows.Forms.Label()
+ Me.TabControl1.SuspendLayout()
+ Me.TabPage1.SuspendLayout()
+ Me.TabPage4.SuspendLayout()
+ Me.TabPage3.SuspendLayout()
+ Me.TabPage2.SuspendLayout()
+ Me.SuspendLayout()
+ '
+ 'TabControl1
+ '
+ Me.TabControl1.Controls.Add(Me.TabPage1)
+ Me.TabControl1.Controls.Add(Me.TabPage4)
+ Me.TabControl1.Controls.Add(Me.TabPage3)
+ Me.TabControl1.Controls.Add(Me.TabPage2)
+ Me.TabControl1.Location = New System.Drawing.Point(0, 0)
+ Me.TabControl1.Name = "TabControl1"
+ Me.TabControl1.SelectedIndex = 0
+ Me.TabControl1.Size = New System.Drawing.Size(263, 171)
+ Me.TabControl1.TabIndex = 7
+ '
+ 'TabPage1
+ '
+ Me.TabPage1.Controls.Add(Me.lblStatus)
+ Me.TabPage1.Controls.Add(Me.btnCheck)
+ Me.TabPage1.Controls.Add(Me.Label2)
+ Me.TabPage1.Controls.Add(Me.Label1)
+ Me.TabPage1.Controls.Add(Me.txtTranslation)
+ Me.TabPage1.Controls.Add(Me.cbLanguage)
+ Me.TabPage1.Controls.Add(Me.cbSourceWord)
+ Me.TabPage1.Location = New System.Drawing.Point(4, 22)
+ Me.TabPage1.Name = "TabPage1"
+ Me.TabPage1.Padding = New System.Windows.Forms.Padding(3)
+ Me.TabPage1.Size = New System.Drawing.Size(255, 145)
+ Me.TabPage1.TabIndex = 0
+ Me.TabPage1.Text = "Translate"
+ Me.TabPage1.UseVisualStyleBackColor = True
+ '
+ 'lblStatus
+ '
+ Me.lblStatus.AutoSize = True
+ Me.lblStatus.Location = New System.Drawing.Point(181, 115)
+ Me.lblStatus.Name = "lblStatus"
+ Me.lblStatus.Size = New System.Drawing.Size(30, 13)
+ Me.lblStatus.TabIndex = 13
+ Me.lblStatus.Text = "ERR"
+ '
+ 'btnCheck
+ '
+ Me.btnCheck.Location = New System.Drawing.Point(10, 108)
+ Me.btnCheck.Name = "btnCheck"
+ Me.btnCheck.Size = New System.Drawing.Size(143, 26)
+ Me.btnCheck.TabIndex = 12
+ Me.btnCheck.Text = "Check"
+ Me.btnCheck.UseVisualStyleBackColor = True
+ '
+ 'Label2
+ '
+ Me.Label2.AutoSize = True
+ Me.Label2.Location = New System.Drawing.Point(7, 46)
+ Me.Label2.Name = "Label2"
+ Me.Label2.Size = New System.Drawing.Size(22, 13)
+ Me.Label2.TabIndex = 11
+ Me.Label2.Text = " to:"
+ '
+ 'Label1
+ '
+ Me.Label1.AutoSize = True
+ Me.Label1.Location = New System.Drawing.Point(7, 19)
+ Me.Label1.Name = "Label1"
+ Me.Label1.Size = New System.Drawing.Size(54, 13)
+ Me.Label1.TabIndex = 10
+ Me.Label1.Text = "Translate:"
+ '
+ 'txtTranslation
+ '
+ Me.txtTranslation.Location = New System.Drawing.Point(10, 82)
+ Me.txtTranslation.Name = "txtTranslation"
+ Me.txtTranslation.Size = New System.Drawing.Size(235, 20)
+ Me.txtTranslation.TabIndex = 9
+ '
+ 'cbLanguage
+ '
+ Me.cbLanguage.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
+ Me.cbLanguage.FormattingEnabled = True
+ Me.cbLanguage.Location = New System.Drawing.Point(67, 43)
+ Me.cbLanguage.Name = "cbLanguage"
+ Me.cbLanguage.Size = New System.Drawing.Size(178, 21)
+ Me.cbLanguage.TabIndex = 8
+ '
+ 'cbSourceWord
+ '
+ Me.cbSourceWord.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
+ Me.cbSourceWord.FormattingEnabled = True
+ Me.cbSourceWord.Location = New System.Drawing.Point(67, 16)
+ Me.cbSourceWord.Name = "cbSourceWord"
+ Me.cbSourceWord.Size = New System.Drawing.Size(178, 21)
+ Me.cbSourceWord.TabIndex = 7
+ '
+ 'TabPage4
+ '
+ Me.TabPage4.Controls.Add(Me.lblStatusAdded)
+ Me.TabPage4.Controls.Add(Me.lblTotalWords)
+ Me.TabPage4.Controls.Add(Me.btnWordAdd)
+ Me.TabPage4.Controls.Add(Me.txtWordAdd)
+ Me.TabPage4.Location = New System.Drawing.Point(4, 22)
+ Me.TabPage4.Name = "TabPage4"
+ Me.TabPage4.Size = New System.Drawing.Size(255, 145)
+ Me.TabPage4.TabIndex = 3
+ Me.TabPage4.Text = "Add Word"
+ Me.TabPage4.UseVisualStyleBackColor = True
+ '
+ 'lblStatusAdded
+ '
+ Me.lblStatusAdded.Location = New System.Drawing.Point(8, 104)
+ Me.lblStatusAdded.Name = "lblStatusAdded"
+ Me.lblStatusAdded.Size = New System.Drawing.Size(237, 23)
+ Me.lblStatusAdded.TabIndex = 3
+ Me.lblStatusAdded.Text = "ERR"
+ Me.lblStatusAdded.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
+ '
+ 'lblTotalWords
+ '
+ Me.lblTotalWords.Location = New System.Drawing.Point(8, 10)
+ Me.lblTotalWords.Name = "lblTotalWords"
+ Me.lblTotalWords.Size = New System.Drawing.Size(237, 22)
+ Me.lblTotalWords.TabIndex = 2
+ Me.lblTotalWords.Text = "ERR"
+ Me.lblTotalWords.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
+ '
+ 'btnWordAdd
+ '
+ Me.btnWordAdd.Location = New System.Drawing.Point(8, 68)
+ Me.btnWordAdd.Name = "btnWordAdd"
+ Me.btnWordAdd.Size = New System.Drawing.Size(237, 20)
+ Me.btnWordAdd.TabIndex = 1
+ Me.btnWordAdd.Text = "Add"
+ Me.btnWordAdd.UseVisualStyleBackColor = True
+ '
+ 'txtWordAdd
+ '
+ Me.txtWordAdd.Location = New System.Drawing.Point(8, 42)
+ Me.txtWordAdd.Name = "txtWordAdd"
+ Me.txtWordAdd.Size = New System.Drawing.Size(237, 20)
+ Me.txtWordAdd.TabIndex = 0
+ '
+ 'TabPage3
+ '
+ Me.TabPage3.Controls.Add(Me.lblStatusUpdate)
+ Me.TabPage3.Controls.Add(Me.btnDelete)
+ Me.TabPage3.Controls.Add(Me.btnUpdate)
+ Me.TabPage3.Controls.Add(Me.Label4)
+ Me.TabPage3.Controls.Add(Me.txtWordUpdate)
+ Me.TabPage3.Controls.Add(Me.cbLanguageUpdate)
+ Me.TabPage3.Controls.Add(Me.cbSelectWord)
+ Me.TabPage3.Location = New System.Drawing.Point(4, 22)
+ Me.TabPage3.Name = "TabPage3"
+ Me.TabPage3.Size = New System.Drawing.Size(255, 145)
+ Me.TabPage3.TabIndex = 2
+ Me.TabPage3.Text = "Update Word"
+ Me.TabPage3.UseVisualStyleBackColor = True
+ '
+ 'btnUpdate
+ '
+ Me.btnUpdate.Location = New System.Drawing.Point(67, 89)
+ Me.btnUpdate.Name = "btnUpdate"
+ Me.btnUpdate.Size = New System.Drawing.Size(178, 21)
+ Me.btnUpdate.TabIndex = 15
+ Me.btnUpdate.Text = "Update"
+ Me.btnUpdate.UseVisualStyleBackColor = True
+ '
+ 'Label4
+ '
+ Me.Label4.AutoSize = True
+ Me.Label4.Location = New System.Drawing.Point(8, 39)
+ Me.Label4.Name = "Label4"
+ Me.Label4.Size = New System.Drawing.Size(73, 13)
+ Me.Label4.TabIndex = 12
+ Me.Label4.Text = "Translation in:"
+ '
+ 'txtWordUpdate
+ '
+ Me.txtWordUpdate.Location = New System.Drawing.Point(8, 63)
+ Me.txtWordUpdate.Name = "txtWordUpdate"
+ Me.txtWordUpdate.Size = New System.Drawing.Size(237, 20)
+ Me.txtWordUpdate.TabIndex = 11
+ '
+ 'cbLanguageUpdate
+ '
+ Me.cbLanguageUpdate.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
+ Me.cbLanguageUpdate.FormattingEnabled = True
+ Me.cbLanguageUpdate.Location = New System.Drawing.Point(82, 36)
+ Me.cbLanguageUpdate.Name = "cbLanguageUpdate"
+ Me.cbLanguageUpdate.Size = New System.Drawing.Size(163, 21)
+ Me.cbLanguageUpdate.TabIndex = 10
+ '
+ 'cbSelectWord
+ '
+ Me.cbSelectWord.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
+ Me.cbSelectWord.FormattingEnabled = True
+ Me.cbSelectWord.Location = New System.Drawing.Point(8, 9)
+ Me.cbSelectWord.Name = "cbSelectWord"
+ Me.cbSelectWord.Size = New System.Drawing.Size(237, 21)
+ Me.cbSelectWord.TabIndex = 8
+ '
+ 'TabPage2
+ '
+ Me.TabPage2.Controls.Add(Me.cbRequirePassword)
+ Me.TabPage2.Controls.Add(Me.btnExportPass)
+ Me.TabPage2.Controls.Add(Me.Label3)
+ Me.TabPage2.Controls.Add(Me.TextBox1)
+ Me.TabPage2.Controls.Add(Me.btnExport)
+ Me.TabPage2.Controls.Add(Me.btnImport)
+ Me.TabPage2.Location = New System.Drawing.Point(4, 22)
+ Me.TabPage2.Name = "TabPage2"
+ Me.TabPage2.Padding = New System.Windows.Forms.Padding(3)
+ Me.TabPage2.Size = New System.Drawing.Size(255, 145)
+ Me.TabPage2.TabIndex = 1
+ Me.TabPage2.Text = "Settings"
+ Me.TabPage2.UseVisualStyleBackColor = True
+ '
+ 'btnImport
+ '
+ Me.btnImport.Location = New System.Drawing.Point(7, 14)
+ Me.btnImport.Name = "btnImport"
+ Me.btnImport.Size = New System.Drawing.Size(115, 25)
+ Me.btnImport.TabIndex = 0
+ Me.btnImport.Text = "Import"
+ Me.btnImport.UseVisualStyleBackColor = True
+ '
+ 'btnExport
+ '
+ Me.btnExport.Location = New System.Drawing.Point(128, 14)
+ Me.btnExport.Name = "btnExport"
+ Me.btnExport.Size = New System.Drawing.Size(118, 25)
+ Me.btnExport.TabIndex = 1
+ Me.btnExport.Text = "Export"
+ Me.btnExport.UseVisualStyleBackColor = True
+ '
+ 'TextBox1
+ '
+ Me.TextBox1.Location = New System.Drawing.Point(110, 89)
+ Me.TextBox1.Name = "TextBox1"
+ Me.TextBox1.Size = New System.Drawing.Size(136, 20)
+ Me.TextBox1.TabIndex = 2
+ '
+ 'Label3
+ '
+ Me.Label3.AutoSize = True
+ Me.Label3.Location = New System.Drawing.Point(16, 92)
+ Me.Label3.Name = "Label3"
+ Me.Label3.Size = New System.Drawing.Size(88, 13)
+ Me.Label3.TabIndex = 3
+ Me.Label3.Text = "Export password:"
+ '
+ 'btnExportPass
+ '
+ Me.btnExportPass.Location = New System.Drawing.Point(9, 58)
+ Me.btnExportPass.Name = "btnExportPass"
+ Me.btnExportPass.Size = New System.Drawing.Size(237, 25)
+ Me.btnExportPass.TabIndex = 4
+ Me.btnExportPass.Text = "Export with password"
+ Me.btnExportPass.UseVisualStyleBackColor = True
+ '
+ 'cbRequirePassword
+ '
+ Me.cbRequirePassword.AutoSize = True
+ Me.cbRequirePassword.Location = New System.Drawing.Point(19, 117)
+ Me.cbRequirePassword.Name = "cbRequirePassword"
+ Me.cbRequirePassword.Size = New System.Drawing.Size(187, 17)
+ Me.cbRequirePassword.TabIndex = 6
+ Me.cbRequirePassword.Text = "Require password on every action"
+ Me.cbRequirePassword.UseVisualStyleBackColor = True
+ '
+ 'btnDelete
+ '
+ Me.btnDelete.Location = New System.Drawing.Point(8, 89)
+ Me.btnDelete.Name = "btnDelete"
+ Me.btnDelete.Size = New System.Drawing.Size(53, 21)
+ Me.btnDelete.TabIndex = 16
+ Me.btnDelete.Text = "Delete"
+ Me.btnDelete.UseVisualStyleBackColor = True
+ '
+ 'lblStatusUpdate
+ '
+ Me.lblStatusUpdate.Location = New System.Drawing.Point(8, 117)
+ Me.lblStatusUpdate.Name = "lblStatusUpdate"
+ Me.lblStatusUpdate.Size = New System.Drawing.Size(237, 20)
+ Me.lblStatusUpdate.TabIndex = 17
+ Me.lblStatusUpdate.Text = "ERR"
+ Me.lblStatusUpdate.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
+ '
+ 'FormTranslate
+ '
+ Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
+ Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+ Me.ClientSize = New System.Drawing.Size(261, 168)
+ Me.Controls.Add(Me.TabControl1)
+ Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle
+ Me.MaximizeBox = False
+ Me.MinimizeBox = False
+ Me.Name = "FormTranslate"
+ Me.Text = "Translate"
+ Me.TabControl1.ResumeLayout(False)
+ Me.TabPage1.ResumeLayout(False)
+ Me.TabPage1.PerformLayout()
+ Me.TabPage4.ResumeLayout(False)
+ Me.TabPage4.PerformLayout()
+ Me.TabPage3.ResumeLayout(False)
+ Me.TabPage3.PerformLayout()
+ Me.TabPage2.ResumeLayout(False)
+ Me.TabPage2.PerformLayout()
+ Me.ResumeLayout(False)
+
+ End Sub
+
+ Friend WithEvents TabControl1 As TabControl
+ Friend WithEvents TabPage1 As TabPage
+ Friend WithEvents lblStatus As Label
+ Friend WithEvents btnCheck As Button
+ Friend WithEvents Label2 As Label
+ Friend WithEvents Label1 As Label
+ Friend WithEvents txtTranslation As TextBox
+ Friend WithEvents cbLanguage As ComboBox
+ Friend WithEvents cbSourceWord As ComboBox
+ Friend WithEvents TabPage3 As TabPage
+ Friend WithEvents TabPage2 As TabPage
+ Friend WithEvents TabPage4 As TabPage
+ Friend WithEvents lblTotalWords As Label
+ Friend WithEvents btnWordAdd As Button
+ Friend WithEvents txtWordAdd As TextBox
+ Friend WithEvents btnUpdate As Button
+ Friend WithEvents Label4 As Label
+ Friend WithEvents txtWordUpdate As TextBox
+ Friend WithEvents cbLanguageUpdate As ComboBox
+ Friend WithEvents cbSelectWord As ComboBox
+ Friend WithEvents lblStatusAdded As Label
+ Friend WithEvents cbRequirePassword As CheckBox
+ Friend WithEvents btnExportPass As Button
+ Friend WithEvents Label3 As Label
+ Friend WithEvents TextBox1 As TextBox
+ Friend WithEvents btnExport As Button
+ Friend WithEvents btnImport As Button
+ Friend WithEvents btnDelete As Button
+ Friend WithEvents lblStatusUpdate As Label
+End Class
diff --git a/TranslateStrings/TranslateStrings/FormTranslate.resx b/TranslateStrings/TranslateStrings/FormTranslate.resx new file mode 100644 index 0000000..29dcb1b --- /dev/null +++ b/TranslateStrings/TranslateStrings/FormTranslate.resx @@ -0,0 +1,120 @@ +<?xml version="1.0" encoding="utf-8"?>
+<root>
+ <!--
+ Microsoft ResX Schema
+
+ Version 2.0
+
+ The primary goals of this format is to allow a simple XML format
+ that is mostly human readable. The generation and parsing of the
+ various data types are done through the TypeConverter classes
+ associated with the data types.
+
+ Example:
+
+ ... ado.net/XML headers & schema ...
+ <resheader name="resmimetype">text/microsoft-resx</resheader>
+ <resheader name="version">2.0</resheader>
+ <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+ <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+ <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+ <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+ <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+ <value>[base64 mime encoded serialized .NET Framework object]</value>
+ </data>
+ <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+ <comment>This is a comment</comment>
+ </data>
+
+ There are any number of "resheader" rows that contain simple
+ name/value pairs.
+
+ Each data row contains a name, and value. The row also contains a
+ type or mimetype. Type corresponds to a .NET class that support
+ text/value conversion through the TypeConverter architecture.
+ Classes that don't support this are serialized and stored with the
+ mimetype set.
+
+ The mimetype is used for serialized objects, and tells the
+ ResXResourceReader how to depersist the object. This is currently not
+ extensible. For a given mimetype the value must be set accordingly:
+
+ Note - application/x-microsoft.net.object.binary.base64 is the format
+ that the ResXResourceWriter will generate, however the reader can
+ read any of the formats listed below.
+
+ mimetype: application/x-microsoft.net.object.binary.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.soap.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.bytearray.base64
+ value : The object must be serialized into a byte array
+ : using a System.ComponentModel.TypeConverter
+ : and then encoded with base64 encoding.
+ -->
+ <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+ <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+ <xsd:element name="root" msdata:IsDataSet="true">
+ <xsd:complexType>
+ <xsd:choice maxOccurs="unbounded">
+ <xsd:element name="metadata">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" />
+ </xsd:sequence>
+ <xsd:attribute name="name" use="required" type="xsd:string" />
+ <xsd:attribute name="type" type="xsd:string" />
+ <xsd:attribute name="mimetype" type="xsd:string" />
+ <xsd:attribute ref="xml:space" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="assembly">
+ <xsd:complexType>
+ <xsd:attribute name="alias" type="xsd:string" />
+ <xsd:attribute name="name" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="data">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+ <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+ <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+ <xsd:attribute ref="xml:space" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="resheader">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" />
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ <resheader name="resmimetype">
+ <value>text/microsoft-resx</value>
+ </resheader>
+ <resheader name="version">
+ <value>2.0</value>
+ </resheader>
+ <resheader name="reader">
+ <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <resheader name="writer">
+ <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+</root>
\ No newline at end of file diff --git a/TranslateStrings/TranslateStrings/FormTranslate.vb b/TranslateStrings/TranslateStrings/FormTranslate.vb new file mode 100644 index 0000000..7f4eb43 --- /dev/null +++ b/TranslateStrings/TranslateStrings/FormTranslate.vb @@ -0,0 +1,35 @@ +Imports System.ComponentModel
+Imports System.Security.Cryptography
+Imports System.Text.Encoding
+Imports TranslateStrings.MultiLanguage
+
+Public Class FormTranslate
+ Private Dictionary As BindingList(Of MultiLangStr) = New BindingList(Of MultiLangStr) From {
+ New MultiLangStr("Red"),
+ New MultiLangStr("Green"),
+ New MultiLangStr("Blue")
+ } ' Default values
+ Private Languages As BindingList(Of String) = New BindingList(Of String)([Enum].GetNames(GetType(Language)))
+
+ Private PasswordPrompt As PasswordPrompt = New PasswordPrompt()
+ Private RequirePassword As Boolean = False
+ Private PasswordHASH As String = String.Empty
+
+ Public Function HashString(value As String) As String
+ Static Dim hashAlg As SHA256 = SHA256.Create()
+ Dim hash As Byte() = hashAlg.ComputeHash(UTF8.GetBytes(value))
+ Return BitConverter.ToString(hash).Replace("-", String.Empty)
+ End Function
+
+ Public Function CorrectPasswordIfRequired() As Boolean
+ If Me.RequirePassword Then
+ Me.PasswordPrompt.ShowDialog()
+ Dim InputPassword As String = Me.PasswordPrompt.txtPassword.Text
+
+ If Me.PasswordHASH <> Me.HashString(InputPassword) Then
+ Return False
+ End If
+ End If
+ Return True
+ End Function
+End Class
\ No newline at end of file diff --git a/TranslateStrings/TranslateStrings/FormTranslateTabs/FormTranslate.AddWordTab.Designer.vb b/TranslateStrings/TranslateStrings/FormTranslateTabs/FormTranslate.AddWordTab.Designer.vb new file mode 100644 index 0000000..84db644 --- /dev/null +++ b/TranslateStrings/TranslateStrings/FormTranslateTabs/FormTranslate.AddWordTab.Designer.vb @@ -0,0 +1,39 @@ +Imports System.ComponentModel
+Imports TranslateStrings.MultiLanguage
+
+Partial Public Class FormTranslate ' Add Word Tab
+ Private Sub InitAddWordTab() Handles MyBase.Load
+ Me.lblStatusAdded.ResetText()
+ End Sub
+
+ Private Sub AddWord() Handles btnWordAdd.Click
+ If Me.txtWordAdd.TextLength = 0 Then
+ ShowAddWordError("Word must be at least one character!")
+ Return
+ End If
+
+ If Me.Dictionary.Any(Function(w) w.Value = Me.txtWordAdd.Text) Then
+ Me.ShowAddWordError("Word already exists!")
+ Return
+ End If
+
+ If Not Me.CorrectPasswordIfRequired() Then
+ Me.ShowAddWordError("Wrong password!")
+ Return
+ End If
+
+ Me.Dictionary.Add(New MultiLangStr(Me.txtWordAdd.Text))
+
+ Me.lblStatusAdded.Text = "Word added sucessfully!"
+ Me.lblStatusAdded.ForeColor = Color.Green
+ End Sub
+
+ Private Sub ShowAddWordError(message As String)
+ Me.lblStatusAdded.Text = message
+ Me.lblStatusAdded.ForeColor = Color.Red
+ End Sub
+
+ Private Sub UpdateTotalWords() Handles btnWordAdd.Click, btnImport.Click, MyBase.Load
+ Me.lblTotalWords.Text = "Total words: " & Me.Dictionary.Count()
+ End Sub
+End Class
\ No newline at end of file diff --git a/TranslateStrings/TranslateStrings/FormTranslateTabs/FormTranslate.SettingsTab.Designer.vb b/TranslateStrings/TranslateStrings/FormTranslateTabs/FormTranslate.SettingsTab.Designer.vb new file mode 100644 index 0000000..2254f3d --- /dev/null +++ b/TranslateStrings/TranslateStrings/FormTranslateTabs/FormTranslate.SettingsTab.Designer.vb @@ -0,0 +1,3 @@ +Public Class FormTranslate
+
+End Class
\ No newline at end of file diff --git a/TranslateStrings/TranslateStrings/FormTranslateTabs/FormTranslate.TranslateTab.Designer.vb b/TranslateStrings/TranslateStrings/FormTranslateTabs/FormTranslate.TranslateTab.Designer.vb new file mode 100644 index 0000000..9182f25 --- /dev/null +++ b/TranslateStrings/TranslateStrings/FormTranslateTabs/FormTranslate.TranslateTab.Designer.vb @@ -0,0 +1,21 @@ +Imports TranslateStrings.MultiLanguage
+
+Public Class FormTranslate ' Translate Tab
+ Private Sub InitTranslateTab() Handles MyBase.Load
+ Me.cbSourceWord.DataSource = Dictionary
+ Me.cbLanguage.DataSource = Languages
+ Me.lblStatus.Text = String.Empty
+ End Sub
+
+ Private Sub CheckTranslation() Handles btnCheck.Click
+ Dim selectedMStr = DirectCast(Me.cbSourceWord.SelectedItem, MultiLangStr)
+
+ If selectedMStr.IsCorrectTranslation(Me.txtTranslation.Text, cbLanguage.SelectedIndex) Then
+ Me.lblStatus.Text = "Correct!"
+ Me.lblStatus.ForeColor = Color.Green
+ Else
+ Me.lblStatus.Text = "Wrong!"
+ Me.lblStatus.ForeColor = Color.Red
+ End If
+ End Sub
+End Class
diff --git a/TranslateStrings/TranslateStrings/FormTranslateTabs/FormTranslate.UpdateWordTab.Designer.vb b/TranslateStrings/TranslateStrings/FormTranslateTabs/FormTranslate.UpdateWordTab.Designer.vb new file mode 100644 index 0000000..1c898a5 --- /dev/null +++ b/TranslateStrings/TranslateStrings/FormTranslateTabs/FormTranslate.UpdateWordTab.Designer.vb @@ -0,0 +1,54 @@ +Imports TranslateStrings.MultiLanguage
+
+Partial Public Class FormTranslate ' Update Word Tab
+ Private selectedMStr As MultiLangStr
+
+ Private Sub InitUpdateWordTab() Handles MyBase.Load
+ Me.cbSelectWord.DataSource = Dictionary
+ Me.cbLanguageUpdate.DataSource = Languages
+ lblStatusUpdate.ResetText()
+ End Sub
+
+ Private Sub UpdateWordTranslation() Handles btnUpdate.Click
+ If Me.txtWordUpdate.TextLength = 0 Then
+ ShowUpdateError("Word must be at least one character!")
+ Return
+ End If
+
+ If Not Me.CorrectPasswordIfRequired() Then
+ Me.ShowUpdateError("Wrong password!")
+ Return
+ End If
+
+ Me.selectedMStr.Translations(cbLanguageUpdate.SelectedIndex).Value = Me.txtWordUpdate.Text
+ Me.ShowUpdateSuccess("Updated translation sucessfully!")
+ End Sub
+
+ Private Sub DeleteWord() Handles btnDelete.Click
+ If Not Me.CorrectPasswordIfRequired() Then
+ Me.ShowUpdateError("Wrong password!")
+ Return
+ End If
+
+ Me.Dictionary.Remove(Me.cbSelectWord.SelectedItem)
+ Me.ShowUpdateSuccess("Deleted word sucessfully!")
+ End Sub
+
+ Private Sub ShowUpdateSuccess(message As String)
+ lblStatusUpdate.Text = message
+ lblStatusUpdate.ForeColor = Color.Green
+ End Sub
+
+ Private Sub ShowUpdateError(message As String)
+ lblStatusUpdate.Text = message
+ lblStatusUpdate.ForeColor = Color.Red
+ End Sub
+
+ Private Sub UpdateSelectedMStr() Handles cbSelectWord.SelectedValueChanged, MyBase.Load
+ Me.selectedMStr = DirectCast(cbSelectWord.SelectedItem, MultiLangStr)
+ End Sub
+
+ Private Sub UpdateWordUpdateTxt() Handles cbSelectWord.SelectedValueChanged, cbLanguageUpdate.SelectedValueChanged, MyBase.Load
+ txtWordUpdate.Text = If(Me.selectedMStr.Translations(cbLanguageUpdate.SelectedIndex).Value, String.Empty)
+ End Sub
+End Class
diff --git a/TranslateStrings/TranslateStrings/LangStr.vb b/TranslateStrings/TranslateStrings/LangStr.vb new file mode 100644 index 0000000..a809fda --- /dev/null +++ b/TranslateStrings/TranslateStrings/LangStr.vb @@ -0,0 +1,15 @@ +Namespace MultiLanguage
+ Public Class LangStr
+ Public Value As String
+ Public ReadOnly ValueLanguage As Language
+
+ Public Sub New(value As String, valueLanguage As Language)
+ Me.Value = value
+ Me.ValueLanguage = valueLanguage
+ End Sub
+
+ Public Overrides Function ToString() As String
+ Return Value
+ End Function
+ End Class
+End Namespace
\ No newline at end of file diff --git a/TranslateStrings/TranslateStrings/LanguageEnum.vb b/TranslateStrings/TranslateStrings/LanguageEnum.vb new file mode 100644 index 0000000..b49e98e --- /dev/null +++ b/TranslateStrings/TranslateStrings/LanguageEnum.vb @@ -0,0 +1,6 @@ +Namespace MultiLanguage
+ Public Enum Language
+ Bulgarian
+ French
+ End Enum
+End Namespace
\ No newline at end of file diff --git a/TranslateStrings/TranslateStrings/MultiLangStr.vb b/TranslateStrings/TranslateStrings/MultiLangStr.vb new file mode 100644 index 0000000..fdd0ec1 --- /dev/null +++ b/TranslateStrings/TranslateStrings/MultiLangStr.vb @@ -0,0 +1,29 @@ +Namespace MultiLanguage
+ Public Class MultiLangStr
+ Public ReadOnly Value As String
+ Public ReadOnly Translations() As LangStr
+
+ Public Sub New(value As String)
+ Me.Value = value
+
+ Dim temp = New HashSet(Of LangStr)
+ For Each lang As Integer In [Enum].GetValues(GetType(Language))
+ temp.Add(New LangStr(String.Empty, lang))
+ Next
+ Me.Translations = temp.ToArray()
+ End Sub
+
+ Public Function IsCorrectTranslation(translation As String, language As Language)
+ Return Normalize(translation) =
+ Normalize(Translations.First(Function(t) t.ValueLanguage = language).Value)
+ End Function
+
+ Private Function Normalize(value As String) As String
+ Return value.Replace(" ", String.Empty).ToUpperInvariant()
+ End Function
+
+ Public Overrides Function ToString() As String
+ Return Value
+ End Function
+ End Class
+End Namespace
\ No newline at end of file diff --git a/TranslateStrings/TranslateStrings/My Project/Application.Designer.vb b/TranslateStrings/TranslateStrings/My Project/Application.Designer.vb new file mode 100644 index 0000000..e16f284 --- /dev/null +++ b/TranslateStrings/TranslateStrings/My Project/Application.Designer.vb @@ -0,0 +1,38 @@ +'------------------------------------------------------------------------------
+' <auto-generated>
+' This code was generated by a tool.
+' Runtime Version:4.0.30319.42000
+'
+' Changes to this file may cause incorrect behavior and will be lost if
+' the code is regenerated.
+' </auto-generated>
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+
+Namespace My
+
+ 'NOTE: This file is auto-generated; do not modify it directly. To make changes,
+ ' or if you encounter build errors in this file, go to the Project Designer
+ ' (go to Project Properties or double-click the My Project node in
+ ' Solution Explorer), and make changes on the Application tab.
+ '
+ Partial Friend Class MyApplication
+
+ <Global.System.Diagnostics.DebuggerStepThroughAttribute()> _
+ Public Sub New()
+ MyBase.New(Global.Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows)
+ Me.IsSingleInstance = false
+ Me.EnableVisualStyles = true
+ Me.SaveMySettingsOnExit = true
+ Me.ShutDownStyle = Global.Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses
+ End Sub
+
+ <Global.System.Diagnostics.DebuggerStepThroughAttribute()> _
+ Protected Overrides Sub OnCreateMainForm()
+ Me.MainForm = Global.TranslateStrings.FormTranslate
+ End Sub
+ End Class
+End Namespace
diff --git a/TranslateStrings/TranslateStrings/My Project/Application.myapp b/TranslateStrings/TranslateStrings/My Project/Application.myapp new file mode 100644 index 0000000..ecb7aab --- /dev/null +++ b/TranslateStrings/TranslateStrings/My Project/Application.myapp @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="utf-16"?>
+<MyApplicationData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <MySubMain>true</MySubMain>
+ <MainForm>FormTranslate</MainForm>
+ <SingleInstance>false</SingleInstance>
+ <ShutdownMode>0</ShutdownMode>
+ <EnableVisualStyles>true</EnableVisualStyles>
+ <AuthenticationMode>0</AuthenticationMode>
+ <SaveMySettingsOnExit>true</SaveMySettingsOnExit>
+</MyApplicationData>
\ No newline at end of file diff --git a/TranslateStrings/TranslateStrings/My Project/AssemblyInfo.vb b/TranslateStrings/TranslateStrings/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..0372bbf --- /dev/null +++ b/TranslateStrings/TranslateStrings/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System
+Imports System.Reflection
+Imports System.Runtime.InteropServices
+
+' General Information about an assembly is controlled through the following
+' set of attributes. Change these attribute values to modify the information
+' associated with an assembly.
+
+' Review the values of the assembly attributes
+
+<Assembly: AssemblyTitle("TranslateStrings")>
+<Assembly: AssemblyDescription("")>
+<Assembly: AssemblyCompany("")>
+<Assembly: AssemblyProduct("TranslateStrings")>
+<Assembly: AssemblyCopyright("Copyright © 2021")>
+<Assembly: AssemblyTrademark("")>
+
+<Assembly: ComVisible(False)>
+
+'The following GUID is for the ID of the typelib if this project is exposed to COM
+<Assembly: Guid("33486d67-652e-47d9-ab82-67213b5b826f")>
+
+' Version information for an assembly consists of the following four values:
+'
+' Major Version
+' Minor Version
+' Build Number
+' Revision
+'
+' You can specify all the values or you can default the Build and Revision Numbers
+' by using the '*' as shown below:
+' <Assembly: AssemblyVersion("1.0.*")>
+
+<Assembly: AssemblyVersion("1.0.0.0")>
+<Assembly: AssemblyFileVersion("1.0.0.0")>
diff --git a/TranslateStrings/TranslateStrings/My Project/Resources.Designer.vb b/TranslateStrings/TranslateStrings/My Project/Resources.Designer.vb new file mode 100644 index 0000000..883e4f2 --- /dev/null +++ b/TranslateStrings/TranslateStrings/My Project/Resources.Designer.vb @@ -0,0 +1,62 @@ +'------------------------------------------------------------------------------
+' <auto-generated>
+' This code was generated by a tool.
+' Runtime Version:4.0.30319.42000
+'
+' Changes to this file may cause incorrect behavior and will be lost if
+' the code is regenerated.
+' </auto-generated>
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+
+Namespace My.Resources
+
+ 'This class was auto-generated by the StronglyTypedResourceBuilder
+ 'class via a tool like ResGen or Visual Studio.
+ 'To add or remove a member, edit your .ResX file then rerun ResGen
+ 'with the /str option, or rebuild your VS project.
+ '''<summary>
+ ''' A strongly-typed resource class, for looking up localized strings, etc.
+ '''</summary>
+ <Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0"), _
+ Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
+ Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
+ Global.Microsoft.VisualBasic.HideModuleNameAttribute()> _
+ Friend Module Resources
+
+ Private resourceMan As Global.System.Resources.ResourceManager
+
+ Private resourceCulture As Global.System.Globalization.CultureInfo
+
+ '''<summary>
+ ''' Returns the cached ResourceManager instance used by this class.
+ '''</summary>
+ <Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
+ Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
+ Get
+ If Object.ReferenceEquals(resourceMan, Nothing) Then
+ Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("TranslateStrings.Resources", GetType(Resources).Assembly)
+ resourceMan = temp
+ End If
+ Return resourceMan
+ End Get
+ End Property
+
+ '''<summary>
+ ''' Overrides the current thread's CurrentUICulture property for all
+ ''' resource lookups using this strongly typed resource class.
+ '''</summary>
+ <Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
+ Friend Property Culture() As Global.System.Globalization.CultureInfo
+ Get
+ Return resourceCulture
+ End Get
+ Set(ByVal value As Global.System.Globalization.CultureInfo)
+ resourceCulture = value
+ End Set
+ End Property
+ End Module
+End Namespace
diff --git a/TranslateStrings/TranslateStrings/My Project/Resources.resx b/TranslateStrings/TranslateStrings/My Project/Resources.resx new file mode 100644 index 0000000..ffecec8 --- /dev/null +++ b/TranslateStrings/TranslateStrings/My Project/Resources.resx @@ -0,0 +1,117 @@ +<?xml version="1.0" encoding="utf-8"?>
+<root>
+ <!--
+ Microsoft ResX Schema
+
+ Version 2.0
+
+ The primary goals of this format is to allow a simple XML format
+ that is mostly human readable. The generation and parsing of the
+ various data types are done through the TypeConverter classes
+ associated with the data types.
+
+ Example:
+
+ ... ado.net/XML headers & schema ...
+ <resheader name="resmimetype">text/microsoft-resx</resheader>
+ <resheader name="version">2.0</resheader>
+ <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+ <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+ <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+ <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+ <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+ <value>[base64 mime encoded serialized .NET Framework object]</value>
+ </data>
+ <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+ <comment>This is a comment</comment>
+ </data>
+
+ There are any number of "resheader" rows that contain simple
+ name/value pairs.
+
+ Each data row contains a name, and value. The row also contains a
+ type or mimetype. Type corresponds to a .NET class that support
+ text/value conversion through the TypeConverter architecture.
+ Classes that don't support this are serialized and stored with the
+ mimetype set.
+
+ The mimetype is used for serialized objects, and tells the
+ ResXResourceReader how to depersist the object. This is currently not
+ extensible. For a given mimetype the value must be set accordingly:
+
+ Note - application/x-microsoft.net.object.binary.base64 is the format
+ that the ResXResourceWriter will generate, however the reader can
+ read any of the formats listed below.
+
+ mimetype: application/x-microsoft.net.object.binary.base64
+ value : The object must be serialized with
+ : System.Serialization.Formatters.Binary.BinaryFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.soap.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.bytearray.base64
+ value : The object must be serialized into a byte array
+ : using a System.ComponentModel.TypeConverter
+ : and then encoded with base64 encoding.
+ -->
+ <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+ <xsd:element name="root" msdata:IsDataSet="true">
+ <xsd:complexType>
+ <xsd:choice maxOccurs="unbounded">
+ <xsd:element name="metadata">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" />
+ <xsd:attribute name="type" type="xsd:string" />
+ <xsd:attribute name="mimetype" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="assembly">
+ <xsd:complexType>
+ <xsd:attribute name="alias" type="xsd:string" />
+ <xsd:attribute name="name" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="data">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
+ <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+ <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="resheader">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" />
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ <resheader name="resmimetype">
+ <value>text/microsoft-resx</value>
+ </resheader>
+ <resheader name="version">
+ <value>2.0</value>
+ </resheader>
+ <resheader name="reader">
+ <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <resheader name="writer">
+ <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+</root>
\ No newline at end of file diff --git a/TranslateStrings/TranslateStrings/My Project/Settings.Designer.vb b/TranslateStrings/TranslateStrings/My Project/Settings.Designer.vb new file mode 100644 index 0000000..74029c0 --- /dev/null +++ b/TranslateStrings/TranslateStrings/My Project/Settings.Designer.vb @@ -0,0 +1,73 @@ +'------------------------------------------------------------------------------
+' <auto-generated>
+' This code was generated by a tool.
+' Runtime Version:4.0.30319.42000
+'
+' Changes to this file may cause incorrect behavior and will be lost if
+' the code is regenerated.
+' </auto-generated>
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+
+Namespace My
+
+ <Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
+ Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0"), _
+ Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
+ Partial Friend NotInheritable Class MySettings
+ Inherits Global.System.Configuration.ApplicationSettingsBase
+
+ Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings)
+
+#Region "My.Settings Auto-Save Functionality"
+#If _MyType = "WindowsForms" Then
+ Private Shared addedHandler As Boolean
+
+ Private Shared addedHandlerLockObject As New Object
+
+ <Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
+ Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs)
+ If My.Application.SaveMySettingsOnExit Then
+ My.Settings.Save()
+ End If
+ End Sub
+#End If
+#End Region
+
+ Public Shared ReadOnly Property [Default]() As MySettings
+ Get
+
+#If _MyType = "WindowsForms" Then
+ If Not addedHandler Then
+ SyncLock addedHandlerLockObject
+ If Not addedHandler Then
+ AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings
+ addedHandler = True
+ End If
+ End SyncLock
+ End If
+#End If
+ Return defaultInstance
+ End Get
+ End Property
+ End Class
+End Namespace
+
+Namespace My
+
+ <Global.Microsoft.VisualBasic.HideModuleNameAttribute(), _
+ Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
+ Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute()> _
+ Friend Module MySettingsProperty
+
+ <Global.System.ComponentModel.Design.HelpKeywordAttribute("My.Settings")> _
+ Friend ReadOnly Property Settings() As Global.TranslateStrings.My.MySettings
+ Get
+ Return Global.TranslateStrings.My.MySettings.Default
+ End Get
+ End Property
+ End Module
+End Namespace
diff --git a/TranslateStrings/TranslateStrings/My Project/Settings.settings b/TranslateStrings/TranslateStrings/My Project/Settings.settings new file mode 100644 index 0000000..377f56d --- /dev/null +++ b/TranslateStrings/TranslateStrings/My Project/Settings.settings @@ -0,0 +1,7 @@ +<?xml version='1.0' encoding='utf-8'?>
+<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" UseMySettingsClassName="true">
+ <Profiles>
+ <Profile Name="(Default)" />
+ </Profiles>
+ <Settings />
+</SettingsFile>
diff --git a/TranslateStrings/TranslateStrings/PasswordPrompt.Designer.vb b/TranslateStrings/TranslateStrings/PasswordPrompt.Designer.vb new file mode 100644 index 0000000..faca985 --- /dev/null +++ b/TranslateStrings/TranslateStrings/PasswordPrompt.Designer.vb @@ -0,0 +1,75 @@ +<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
+Partial Class PasswordPrompt
+ Inherits System.Windows.Forms.Form
+
+ 'Form overrides dispose to clean up the component list.
+ <System.Diagnostics.DebuggerNonUserCode()> _
+ Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+ Try
+ If disposing AndAlso components IsNot Nothing Then
+ components.Dispose()
+ End If
+ Finally
+ MyBase.Dispose(disposing)
+ End Try
+ End Sub
+
+ 'Required by the Windows Form Designer
+ Private components As System.ComponentModel.IContainer
+
+ 'NOTE: The following procedure is required by the Windows Form Designer
+ 'It can be modified using the Windows Form Designer.
+ 'Do not modify it using the code editor.
+ <System.Diagnostics.DebuggerStepThrough()> _
+ Private Sub InitializeComponent()
+ Me.Label1 = New System.Windows.Forms.Label()
+ Me.txtPassword = New System.Windows.Forms.TextBox()
+ Me.btnSubmit = New System.Windows.Forms.Button()
+ Me.SuspendLayout()
+ '
+ 'Label1
+ '
+ Me.Label1.AutoSize = True
+ Me.Label1.Location = New System.Drawing.Point(9, 16)
+ Me.Label1.Name = "Label1"
+ Me.Label1.Size = New System.Drawing.Size(116, 13)
+ Me.Label1.TabIndex = 0
+ Me.Label1.Text = "Type in your password:"
+ '
+ 'txtPassword
+ '
+ Me.txtPassword.Location = New System.Drawing.Point(131, 13)
+ Me.txtPassword.Name = "txtPassword"
+ Me.txtPassword.PasswordChar = Global.Microsoft.VisualBasic.ChrW(42)
+ Me.txtPassword.Size = New System.Drawing.Size(272, 20)
+ Me.txtPassword.TabIndex = 1
+ '
+ 'btnSubmit
+ '
+ Me.btnSubmit.Location = New System.Drawing.Point(12, 39)
+ Me.btnSubmit.Name = "btnSubmit"
+ Me.btnSubmit.Size = New System.Drawing.Size(391, 20)
+ Me.btnSubmit.TabIndex = 2
+ Me.btnSubmit.Text = "Submit"
+ Me.btnSubmit.UseVisualStyleBackColor = True
+ '
+ 'PasswordPrompt
+ '
+ Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
+ Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+ Me.ClientSize = New System.Drawing.Size(418, 70)
+ Me.Controls.Add(Me.btnSubmit)
+ Me.Controls.Add(Me.txtPassword)
+ Me.Controls.Add(Me.Label1)
+ Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow
+ Me.Name = "PasswordPrompt"
+ Me.Text = "Password is required"
+ Me.ResumeLayout(False)
+ Me.PerformLayout()
+
+ End Sub
+
+ Friend WithEvents Label1 As Label
+ Friend WithEvents txtPassword As TextBox
+ Friend WithEvents btnSubmit As Button
+End Class
diff --git a/TranslateStrings/TranslateStrings/PasswordPrompt.resx b/TranslateStrings/TranslateStrings/PasswordPrompt.resx new file mode 100644 index 0000000..29dcb1b --- /dev/null +++ b/TranslateStrings/TranslateStrings/PasswordPrompt.resx @@ -0,0 +1,120 @@ +<?xml version="1.0" encoding="utf-8"?>
+<root>
+ <!--
+ Microsoft ResX Schema
+
+ Version 2.0
+
+ The primary goals of this format is to allow a simple XML format
+ that is mostly human readable. The generation and parsing of the
+ various data types are done through the TypeConverter classes
+ associated with the data types.
+
+ Example:
+
+ ... ado.net/XML headers & schema ...
+ <resheader name="resmimetype">text/microsoft-resx</resheader>
+ <resheader name="version">2.0</resheader>
+ <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+ <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+ <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+ <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+ <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+ <value>[base64 mime encoded serialized .NET Framework object]</value>
+ </data>
+ <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+ <comment>This is a comment</comment>
+ </data>
+
+ There are any number of "resheader" rows that contain simple
+ name/value pairs.
+
+ Each data row contains a name, and value. The row also contains a
+ type or mimetype. Type corresponds to a .NET class that support
+ text/value conversion through the TypeConverter architecture.
+ Classes that don't support this are serialized and stored with the
+ mimetype set.
+
+ The mimetype is used for serialized objects, and tells the
+ ResXResourceReader how to depersist the object. This is currently not
+ extensible. For a given mimetype the value must be set accordingly:
+
+ Note - application/x-microsoft.net.object.binary.base64 is the format
+ that the ResXResourceWriter will generate, however the reader can
+ read any of the formats listed below.
+
+ mimetype: application/x-microsoft.net.object.binary.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.soap.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.bytearray.base64
+ value : The object must be serialized into a byte array
+ : using a System.ComponentModel.TypeConverter
+ : and then encoded with base64 encoding.
+ -->
+ <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+ <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+ <xsd:element name="root" msdata:IsDataSet="true">
+ <xsd:complexType>
+ <xsd:choice maxOccurs="unbounded">
+ <xsd:element name="metadata">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" />
+ </xsd:sequence>
+ <xsd:attribute name="name" use="required" type="xsd:string" />
+ <xsd:attribute name="type" type="xsd:string" />
+ <xsd:attribute name="mimetype" type="xsd:string" />
+ <xsd:attribute ref="xml:space" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="assembly">
+ <xsd:complexType>
+ <xsd:attribute name="alias" type="xsd:string" />
+ <xsd:attribute name="name" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="data">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+ <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+ <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+ <xsd:attribute ref="xml:space" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="resheader">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" />
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ <resheader name="resmimetype">
+ <value>text/microsoft-resx</value>
+ </resheader>
+ <resheader name="version">
+ <value>2.0</value>
+ </resheader>
+ <resheader name="reader">
+ <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <resheader name="writer">
+ <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+</root>
\ No newline at end of file diff --git a/TranslateStrings/TranslateStrings/PasswordPrompt.vb b/TranslateStrings/TranslateStrings/PasswordPrompt.vb new file mode 100644 index 0000000..00e6ba0 --- /dev/null +++ b/TranslateStrings/TranslateStrings/PasswordPrompt.vb @@ -0,0 +1,9 @@ +Public Class PasswordPrompt
+ Private Sub Init() Handles MyBase.Load
+ txtPassword.ResetText()
+ End Sub
+
+ Private Sub CloseForm() Handles btnSubmit.Click
+ Me.Close()
+ End Sub
+End Class
\ No newline at end of file diff --git a/TranslateStrings/TranslateStrings/TranslateStrings.vbproj b/TranslateStrings/TranslateStrings/TranslateStrings.vbproj new file mode 100644 index 0000000..27efd2e --- /dev/null +++ b/TranslateStrings/TranslateStrings/TranslateStrings.vbproj @@ -0,0 +1,147 @@ +<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProjectGuid>{A752B492-4AB2-4794-984D-D85055890CFE}</ProjectGuid>
+ <OutputType>WinExe</OutputType>
+ <StartupObject>TranslateStrings.My.MyApplication</StartupObject>
+ <RootNamespace>TranslateStrings</RootNamespace>
+ <AssemblyName>TranslateStrings</AssemblyName>
+ <FileAlignment>512</FileAlignment>
+ <MyType>WindowsForms</MyType>
+ <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
+ <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
+ <Deterministic>true</Deterministic>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <PlatformTarget>AnyCPU</PlatformTarget>
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <DefineDebug>true</DefineDebug>
+ <DefineTrace>true</DefineTrace>
+ <OutputPath>bin\Debug\</OutputPath>
+ <DocumentationFile>TranslateStrings.xml</DocumentationFile>
+ <NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <PlatformTarget>AnyCPU</PlatformTarget>
+ <DebugType>pdbonly</DebugType>
+ <DefineDebug>false</DefineDebug>
+ <DefineTrace>true</DefineTrace>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release\</OutputPath>
+ <DocumentationFile>TranslateStrings.xml</DocumentationFile>
+ <NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
+ </PropertyGroup>
+ <PropertyGroup>
+ <OptionExplicit>On</OptionExplicit>
+ </PropertyGroup>
+ <PropertyGroup>
+ <OptionCompare>Binary</OptionCompare>
+ </PropertyGroup>
+ <PropertyGroup>
+ <OptionStrict>Off</OptionStrict>
+ </PropertyGroup>
+ <PropertyGroup>
+ <OptionInfer>On</OptionInfer>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="System" />
+ <Reference Include="System.Data" />
+ <Reference Include="System.Deployment" />
+ <Reference Include="System.Drawing" />
+ <Reference Include="System.Windows.Forms" />
+ <Reference Include="System.Xml" />
+ <Reference Include="System.Core" />
+ <Reference Include="System.Xml.Linq" />
+ <Reference Include="System.Data.DataSetExtensions" />
+ <Reference Include="System.Net.Http" />
+ </ItemGroup>
+ <ItemGroup>
+ <Import Include="Microsoft.VisualBasic" />
+ <Import Include="System" />
+ <Import Include="System.Collections" />
+ <Import Include="System.Collections.Generic" />
+ <Import Include="System.Data" />
+ <Import Include="System.Drawing" />
+ <Import Include="System.Diagnostics" />
+ <Import Include="System.Windows.Forms" />
+ <Import Include="System.Linq" />
+ <Import Include="System.Xml.Linq" />
+ <Import Include="System.Threading.Tasks" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="FormTranslateTabs\FormTranslate.AddWordTab.Designer.vb">
+ <SubType>Form</SubType>
+ </Compile>
+ <Compile Include="FormTranslateTabs\FormTranslate.SettingsTab.Designer.vb">
+ <SubType>Form</SubType>
+ </Compile>
+ <Compile Include="FormTranslateTabs\FormTranslate.TranslateTab.Designer.vb">
+ <SubType>Form</SubType>
+ </Compile>
+ <Compile Include="FormTranslateTabs\FormTranslate.UpdateWordTab.Designer.vb">
+ <SubType>Form</SubType>
+ </Compile>
+ <Compile Include="FormTranslate.vb">
+ <SubType>Form</SubType>
+ </Compile>
+ <Compile Include="FormTranslate.Designer.vb">
+ <DependentUpon>FormTranslate.vb</DependentUpon>
+ <SubType>Form</SubType>
+ </Compile>
+ <Compile Include="PasswordPrompt.Designer.vb">
+ <DependentUpon>PasswordPrompt.vb</DependentUpon>
+ </Compile>
+ <Compile Include="PasswordPrompt.vb">
+ <SubType>Form</SubType>
+ </Compile>
+ <Compile Include="LangStr.vb" />
+ <Compile Include="LanguageEnum.vb" />
+ <Compile Include="MultiLangStr.vb" />
+ <Compile Include="My Project\AssemblyInfo.vb" />
+ <Compile Include="My Project\Application.Designer.vb">
+ <AutoGen>True</AutoGen>
+ <DependentUpon>Application.myapp</DependentUpon>
+ </Compile>
+ <Compile Include="My Project\Resources.Designer.vb">
+ <AutoGen>True</AutoGen>
+ <DesignTime>True</DesignTime>
+ <DependentUpon>Resources.resx</DependentUpon>
+ </Compile>
+ <Compile Include="My Project\Settings.Designer.vb">
+ <AutoGen>True</AutoGen>
+ <DependentUpon>Settings.settings</DependentUpon>
+ <DesignTimeSharedInput>True</DesignTimeSharedInput>
+ </Compile>
+ </ItemGroup>
+ <ItemGroup>
+ <EmbeddedResource Include="FormTranslate.resx">
+ <DependentUpon>FormTranslate.vb</DependentUpon>
+ </EmbeddedResource>
+ <EmbeddedResource Include="My Project\Resources.resx">
+ <Generator>VbMyResourcesResXFileCodeGenerator</Generator>
+ <LastGenOutput>Resources.Designer.vb</LastGenOutput>
+ <CustomToolNamespace>My.Resources</CustomToolNamespace>
+ <SubType>Designer</SubType>
+ </EmbeddedResource>
+ <EmbeddedResource Include="PasswordPrompt.resx">
+ <DependentUpon>PasswordPrompt.vb</DependentUpon>
+ </EmbeddedResource>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="My Project\Application.myapp">
+ <Generator>MyApplicationCodeGenerator</Generator>
+ <LastGenOutput>Application.Designer.vb</LastGenOutput>
+ </None>
+ <None Include="My Project\Settings.settings">
+ <Generator>SettingsSingleFileGenerator</Generator>
+ <CustomToolNamespace>My</CustomToolNamespace>
+ <LastGenOutput>Settings.Designer.vb</LastGenOutput>
+ </None>
+ <None Include="App.config" />
+ </ItemGroup>
+ <Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
+</Project>
\ No newline at end of file |
