diff --git a/FModel/App.config b/FModel/App.config
index 7e47646f..a2f8ed90 100644
--- a/FModel/App.config
+++ b/FModel/App.config
@@ -130,6 +130,9 @@
+
+ English
+
diff --git a/FModel/FModel.csproj b/FModel/FModel.csproj
index fd7d8238..3efffacd 100644
--- a/FModel/FModel.csproj
+++ b/FModel/FModel.csproj
@@ -127,6 +127,9 @@
+
+
+
@@ -177,6 +180,7 @@
+
@@ -251,7 +255,6 @@
-
@@ -261,7 +264,6 @@
-
diff --git a/FModel/Forms/Settings.Designer.cs b/FModel/Forms/Settings.Designer.cs
index 6f106627..e0458cca 100644
--- a/FModel/Forms/Settings.Designer.cs
+++ b/FModel/Forms/Settings.Designer.cs
@@ -37,6 +37,8 @@
this.label1 = new System.Windows.Forms.Label();
this.OKButton = new System.Windows.Forms.Button();
this.groupBox4 = new System.Windows.Forms.GroupBox();
+ this.comboBox1 = new System.Windows.Forms.ComboBox();
+ this.label10 = new System.Windows.Forms.Label();
this.button2 = new System.Windows.Forms.Button();
this.checkBox8 = new System.Windows.Forms.CheckBox();
this.checkBox7 = new System.Windows.Forms.CheckBox();
@@ -140,6 +142,8 @@
//
// groupBox4
//
+ this.groupBox4.Controls.Add(this.comboBox1);
+ this.groupBox4.Controls.Add(this.label10);
this.groupBox4.Controls.Add(this.button2);
this.groupBox4.Controls.Add(this.checkBox8);
this.groupBox4.Controls.Add(this.checkBox7);
@@ -157,6 +161,30 @@
this.groupBox4.TabStop = false;
this.groupBox4.Text = "Icon Creation";
//
+ // comboBox1
+ //
+ this.comboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.comboBox1.FormattingEnabled = true;
+ this.comboBox1.Items.AddRange(new object[] {
+ "English",
+ "French",
+ "German",
+ "Italian",
+ "Spanish"});
+ this.comboBox1.Location = new System.Drawing.Point(70, 161);
+ this.comboBox1.Name = "comboBox1";
+ this.comboBox1.Size = new System.Drawing.Size(309, 21);
+ this.comboBox1.TabIndex = 29;
+ //
+ // label10
+ //
+ this.label10.AutoSize = true;
+ this.label10.Location = new System.Drawing.Point(6, 164);
+ this.label10.Name = "label10";
+ this.label10.Size = new System.Drawing.Size(58, 13);
+ this.label10.TabIndex = 28;
+ this.label10.Text = "Language:";
+ //
// button2
//
this.button2.Location = new System.Drawing.Point(6, 19);
@@ -170,7 +198,7 @@
// checkBox8
//
this.checkBox8.AutoSize = true;
- this.checkBox8.Location = new System.Drawing.Point(6, 52);
+ this.checkBox8.Location = new System.Drawing.Point(6, 47);
this.checkBox8.Name = "checkBox8";
this.checkBox8.Size = new System.Drawing.Size(177, 17);
this.checkBox8.TabIndex = 26;
@@ -181,7 +209,7 @@
// checkBox7
//
this.checkBox7.AutoSize = true;
- this.checkBox7.Location = new System.Drawing.Point(6, 91);
+ this.checkBox7.Location = new System.Drawing.Point(6, 75);
this.checkBox7.Name = "checkBox7";
this.checkBox7.Size = new System.Drawing.Size(15, 14);
this.checkBox7.TabIndex = 25;
@@ -191,7 +219,7 @@
// filenameLabel
//
this.filenameLabel.AutoSize = true;
- this.filenameLabel.Location = new System.Drawing.Point(115, 92);
+ this.filenameLabel.Location = new System.Drawing.Point(115, 76);
this.filenameLabel.Name = "filenameLabel";
this.filenameLabel.Size = new System.Drawing.Size(60, 13);
this.filenameLabel.TabIndex = 24;
@@ -199,7 +227,7 @@
//
// trackBar1
//
- this.trackBar1.Location = new System.Drawing.Point(58, 144);
+ this.trackBar1.Location = new System.Drawing.Point(54, 128);
this.trackBar1.Maximum = 100;
this.trackBar1.Name = "trackBar1";
this.trackBar1.Size = new System.Drawing.Size(325, 45);
@@ -210,7 +238,7 @@
// label9
//
this.label9.AutoSize = true;
- this.label9.Location = new System.Drawing.Point(22, 115);
+ this.label9.Location = new System.Drawing.Point(18, 99);
this.label9.Name = "label9";
this.label9.Size = new System.Drawing.Size(30, 13);
this.label9.TabIndex = 23;
@@ -218,7 +246,7 @@
//
// trackBar2
//
- this.trackBar2.Location = new System.Drawing.Point(58, 115);
+ this.trackBar2.Location = new System.Drawing.Point(54, 99);
this.trackBar2.Maximum = 1000;
this.trackBar2.Minimum = 1;
this.trackBar2.Name = "trackBar2";
@@ -232,7 +260,7 @@
// label8
//
this.label8.AutoSize = true;
- this.label8.Location = new System.Drawing.Point(6, 147);
+ this.label8.Location = new System.Drawing.Point(2, 131);
this.label8.Name = "label8";
this.label8.Size = new System.Drawing.Size(46, 13);
this.label8.TabIndex = 21;
@@ -240,7 +268,7 @@
//
// button1
//
- this.button1.Location = new System.Drawing.Point(27, 85);
+ this.button1.Location = new System.Drawing.Point(27, 69);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(82, 24);
this.button1.TabIndex = 19;
@@ -451,5 +479,7 @@
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label7;
private System.Windows.Forms.CheckBox checkBox1;
+ private System.Windows.Forms.ComboBox comboBox1;
+ private System.Windows.Forms.Label label10;
}
}
\ No newline at end of file
diff --git a/FModel/Forms/Settings.cs b/FModel/Forms/Settings.cs
index b112d3ea..cbacdf86 100644
--- a/FModel/Forms/Settings.cs
+++ b/FModel/Forms/Settings.cs
@@ -35,7 +35,7 @@ namespace FModel.Forms
//FEATURED
checkBox8.Checked = Properties.Settings.Default.loadFeaturedImage;
- if (Properties.Settings.Default.loadFeaturedImage == false)
+ if (!Properties.Settings.Default.loadFeaturedImage)
{
if (File.Exists(Properties.Settings.Default.wFilename))
{
@@ -68,6 +68,8 @@ namespace FModel.Forms
}
}
+ comboBox1.SelectedIndex = comboBox1.FindStringExact(Properties.Settings.Default.IconLanguage);
+
_paKsPathBefore = Properties.Settings.Default.PAKsPath;
_outputPathBefore = Properties.Settings.Default.ExtractOutput;
}
@@ -113,6 +115,8 @@ namespace FModel.Forms
if (checkBox8.Checked == false)
Properties.Settings.Default.loadFeaturedImage = false;
+ Properties.Settings.Default.IconLanguage = comboBox1.SelectedItem.ToString();
+
Properties.Settings.Default.Save(); //SAVE
Close();
}
@@ -250,11 +254,11 @@ namespace FModel.Forms
private void checkBox8_CheckedChanged(object sender, EventArgs e)
{
- if (checkBox8.Checked == false)
+ if (!checkBox8.Checked)
{
Bitmap bmp = new Bitmap(Resources.wTemplate);
Graphics g = Graphics.FromImage(bmp);
- if (!string.IsNullOrEmpty(Properties.Settings.Default.wFilename))
+ if (File.Exists(Properties.Settings.Default.wFilename))
{
Image watermark = Image.FromFile(Properties.Settings.Default.wFilename);
var opacityImage = ImageUtilities.SetImageOpacity(watermark, (float)trackBar1.Value / 100);
@@ -266,7 +270,7 @@ namespace FModel.Forms
{
Bitmap bmp = new Bitmap(Resources.wTemplateF);
Graphics g = Graphics.FromImage(bmp);
- if (!string.IsNullOrEmpty(Properties.Settings.Default.wFilename))
+ if (File.Exists(Properties.Settings.Default.wFilename))
{
Image watermark = Image.FromFile(Properties.Settings.Default.wFilename);
var opacityImage = ImageUtilities.SetImageOpacity(watermark, (float)trackBar1.Value / 100);
@@ -278,7 +282,7 @@ namespace FModel.Forms
private void button2_Click(object sender, EventArgs e)
{
- var assetsForm = new Forms.IconGeneratorAssets();
+ var assetsForm = new IconGeneratorAssets();
if (Application.OpenForms[assetsForm.Name] == null)
{
assetsForm.Show();
diff --git a/FModel/MainWindow.cs b/FModel/MainWindow.cs
index 7abc9ff3..26b7e115 100644
--- a/FModel/MainWindow.cs
+++ b/FModel/MainWindow.cs
@@ -738,13 +738,13 @@ namespace FModel
listBox1.Items.Clear();
}));
- if (differenceModeToolStripMenuItem.Checked == false)
+ if (!differenceModeToolStripMenuItem.Checked)
{
await Task.Run(() => {
CreatePakList(null, true);
});
}
- if (differenceModeToolStripMenuItem.Checked && updateModeToolStripMenuItem.Checked == false)
+ if (differenceModeToolStripMenuItem.Checked && !updateModeToolStripMenuItem.Checked)
{
await Task.Run(() => {
CreatePakList(null, false, true);
@@ -1350,7 +1350,6 @@ namespace FModel
if (treeviewPath.StartsWith("..\\")) { treeviewPath = treeviewPath.Substring(3); } //if loading all paks
string filePath = App.DefaultOutputPath + "\\Extracted\\" + treeviewPath + "\\" + listBox1.SelectedItem;
- Console.WriteLine(filePath);
if (File.Exists(filePath))
{
scintilla1.Text = LocResSerializer.StringFinder(filePath);
diff --git a/FModel/MainWindow.resx b/FModel/MainWindow.resx
index bb448221..4fde57ac 100644
--- a/FModel/MainWindow.resx
+++ b/FModel/MainWindow.resx
@@ -130,43 +130,43 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
- ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABa
- CAAAAk1TRnQBSQFMAgEBAgEAAegBAAHoAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
- AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
- AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
- AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
- AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm
- AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM
- AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA
- ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz
- AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ
- AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM
- AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA
- AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA
- AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ
- AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/
- AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA
- AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm
- ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ
- Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz
- AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA
- AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM
- AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM
- ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM
- Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA
- AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM
- AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ
- AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz
- AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm
- AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw
- AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD/0MAAf8N9DEAAf8O9AEA
- D/QhAAH0ARoKeQEaAXkB9AEAAfQNeQH0IQAB9AGZCXkBmQH0AXkB9AEAAfQNeQH0IAAB9AEbCnkBGwH0
- AXkB9AEAAfQNeQH0IAAB9AEaCXkBmQL0AXkB9AEAAfQNeQH0IAAB9AGZCXkB8wL0AXkB9AEAAfQNeQH0
- IAAC9AF5C/QBeQH0AQAB9A15AfQhAAH0AXkL9AF5AfQBAAH0DXkB9CEAAfQBeQv0AXkB9AEAAfQNeQH0
- IQAB9AR5AfMH9AF5AfQBAAH0DXkB9CEABPQCmQf0AXkB9AEABfQCmQb0AXkB9CQAAfQBGgl5AfQFAAH0
- ARoIeQH0JAAM9AUAAf8K9GAAAUIBTQE+BwABPgMAASgDAAFAAwABEAMAAQEBAAEBBQABgBcAA/8BAAT/
- BAABwAEAAv8EAAGAAQABgAUAAYABAAGABQABgAEAAYAHAAGABwABgAcAAYAHAAGABQABgAEAAYAFAAGA
- AQABgAUAAYABAAGABQABgAEAAYAFAAHwAQAB+AUAAfABAAH4BQAE/wQACw==
+ ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABY
+ CAAAAk1TRnQBSQFMAgEBAgIAAQEBAAEBARABAAEQAQAE/wEJAQAI/wFCAU0BNgEEBgABNgEEAgABKAMA
+ AUADAAEQAwABAQEAAQgGAAEEGAABgAIAAYADAAKAAQABgAMAAYABAAGAAQACgAIAA8ABAAHAAdwBwAEA
+ AfABygGmAQABMwUAATMBAAEzAQABMwEAAjMCAAMWAQADHAEAAyIBAAMpAQADVQEAA00BAANCAQADOQEA
+ AYABfAH/AQACUAH/AQABkwEAAdYBAAH/AewBzAEAAcYB1gHvAQAB1gLnAQABkAGpAa0CAAH/ATMDAAFm
+ AwABmQMAAcwCAAEzAwACMwIAATMBZgIAATMBmQIAATMBzAIAATMB/wIAAWYDAAFmATMCAAJmAgABZgGZ
+ AgABZgHMAgABZgH/AgABmQMAAZkBMwIAAZkBZgIAApkCAAGZAcwCAAGZAf8CAAHMAwABzAEzAgABzAFm
+ AgABzAGZAgACzAIAAcwB/wIAAf8BZgIAAf8BmQIAAf8BzAEAATMB/wIAAf8BAAEzAQABMwEAAWYBAAEz
+ AQABmQEAATMBAAHMAQABMwEAAf8BAAH/ATMCAAMzAQACMwFmAQACMwGZAQACMwHMAQACMwH/AQABMwFm
+ AgABMwFmATMBAAEzAmYBAAEzAWYBmQEAATMBZgHMAQABMwFmAf8BAAEzAZkCAAEzAZkBMwEAATMBmQFm
+ AQABMwKZAQABMwGZAcwBAAEzAZkB/wEAATMBzAIAATMBzAEzAQABMwHMAWYBAAEzAcwBmQEAATMCzAEA
+ ATMBzAH/AQABMwH/ATMBAAEzAf8BZgEAATMB/wGZAQABMwH/AcwBAAEzAv8BAAFmAwABZgEAATMBAAFm
+ AQABZgEAAWYBAAGZAQABZgEAAcwBAAFmAQAB/wEAAWYBMwIAAWYCMwEAAWYBMwFmAQABZgEzAZkBAAFm
+ ATMBzAEAAWYBMwH/AQACZgIAAmYBMwEAA2YBAAJmAZkBAAJmAcwBAAFmAZkCAAFmAZkBMwEAAWYBmQFm
+ AQABZgKZAQABZgGZAcwBAAFmAZkB/wEAAWYBzAIAAWYBzAEzAQABZgHMAZkBAAFmAswBAAFmAcwB/wEA
+ AWYB/wIAAWYB/wEzAQABZgH/AZkBAAFmAf8BzAEAAcwBAAH/AQAB/wEAAcwBAAKZAgABmQEzAZkBAAGZ
+ AQABmQEAAZkBAAHMAQABmQMAAZkCMwEAAZkBAAFmAQABmQEzAcwBAAGZAQAB/wEAAZkBZgIAAZkBZgEz
+ AQABmQEzAWYBAAGZAWYBmQEAAZkBZgHMAQABmQEzAf8BAAKZATMBAAKZAWYBAAOZAQACmQHMAQACmQH/
+ AQABmQHMAgABmQHMATMBAAFmAcwBZgEAAZkBzAGZAQABmQLMAQABmQHMAf8BAAGZAf8CAAGZAf8BMwEA
+ AZkBzAFmAQABmQH/AZkBAAGZAf8BzAEAAZkC/wEAAcwDAAGZAQABMwEAAcwBAAFmAQABzAEAAZkBAAHM
+ AQABzAEAAZkBMwIAAcwCMwEAAcwBMwFmAQABzAEzAZkBAAHMATMBzAEAAcwBMwH/AQABzAFmAgABzAFm
+ ATMBAAGZAmYBAAHMAWYBmQEAAcwBZgHMAQABmQFmAf8BAAHMAZkCAAHMAZkBMwEAAcwBmQFmAQABzAKZ
+ AQABzAGZAcwBAAHMAZkB/wEAAswCAALMATMBAALMAWYBAALMAZkBAAPMAQACzAH/AQABzAH/AgABzAH/
+ ATMBAAGZAf8BZgEAAcwB/wGZAQABzAH/AcwBAAHMAv8BAAHMAQABMwEAAf8BAAFmAQAB/wEAAZkBAAHM
+ ATMCAAH/AjMBAAH/ATMBZgEAAf8BMwGZAQAB/wEzAcwBAAH/ATMB/wEAAf8BZgIAAf8BZgEzAQABzAJm
+ AQAB/wFmAZkBAAH/AWYBzAEAAcwBZgH/AQAB/wGZAgAB/wGZATMBAAH/AZkBZgEAAf8CmQEAAf8BmQHM
+ AQAB/wGZAf8BAAH/AcwCAAH/AcwBMwEAAf8BzAFmAQAB/wHMAZkBAAH/AswBAAH/AcwB/wEAAv8BMwEA
+ AcwB/wFmAQAC/wGZAQAC/wHMAQACZgH/AQABZgH/AWYBAAFmAv8BAAH/AmYBAAH/AWYB/wEAAv8BZgEA
+ ASEBAAGlAQADXwEAA3cBAAOGAQADlgEAA8sBAAOyAQAD1wEAA90BAAPjAQAD6gEAA/EBAAP4AQAB8AH7
+ Af8BAAGkAqABAAOAAwAB/wIAAf8DAAL/AQAB/wMAAf8BAAH/AQAC/wIAA/9DAAH/DfQxAAH/DvQBAA/0
+ IQAB9AEaCnkBGgF5AfQBAAH0DXkB9CEAAfQBmQl5AZkB9AF5AfQBAAH0DXkB9CAAAfQBGwp5ARsB9AF5
+ AfQBAAH0DXkB9CAAAfQBGgl5AZkC9AF5AfQBAAH0DXkB9CAAAfQBmQl5AfMC9AF5AfQBAAH0DXkB9CAA
+ AvQBeQv0AXkB9AEAAfQNeQH0IQAB9AF5C/QBeQH0AQAB9A15AfQhAAH0AXkL9AF5AfQBAAH0DXkB9CEA
+ AfQEeQHzB/QBeQH0AQAB9A15AfQhAAT0ApkH9AF5AfQBAAX0ApkG9AF5AfQkAAH0ARoJeQH0BQAB9AEa
+ CHkB9CQADPQFAAH/CvRgAAFCAU0BPgcAAT4DAAEoAwABQAMAARADAAEBAQABAQUAAYAXAAP/AQAE/wQA
+ AcABAAL/BAABgAEAAYAFAAGAAQABgAUAAYABAAGABwABgAcAAYAHAAGABwABgAUAAYABAAGABQABgAEA
+ AYAFAAGAAQABgAUAAYABAAGABQAB8AEAAfgFAAHwAQAB+AUABP8EAAs=
diff --git a/FModel/Methods/IconGenerator/Translations/LoadLocRes.cs b/FModel/Methods/IconGenerator/Translations/LoadLocRes.cs
new file mode 100644
index 00000000..f5ff4670
--- /dev/null
+++ b/FModel/Methods/IconGenerator/Translations/LoadLocRes.cs
@@ -0,0 +1,37 @@
+namespace FModel
+{
+ static class LoadLocRes
+ {
+ public static string myLocRes { get; set; }
+
+ public static void LoadMySelectedLocRes(string selectedLanguage)
+ {
+ switch (selectedLanguage)
+ {
+ case "English":
+ myLocRes = getMyLocRes("en");
+ break;
+ case "French":
+ myLocRes = getMyLocRes("fr");
+ break;
+ case "German":
+ myLocRes = getMyLocRes("de");
+ break;
+ case "Italian":
+ myLocRes = getMyLocRes("it");
+ break;
+ case "Spanish":
+ myLocRes = getMyLocRes("es");
+ break;
+ default:
+ break;
+ }
+ }
+
+ private static string getMyLocRes(string selectedLanguage)
+ {
+ string locResPath = JohnWick.ExtractAsset(ThePak.AllpaksDictionary["Game_BR.locres"], "Game_BR.locres");
+ return LocResSerializer.StringFinder(locResPath.Replace("zh-Hant", selectedLanguage));
+ }
+ }
+}
diff --git a/FModel/Methods/IconGenerator/Translations/SearchNamespaces.cs b/FModel/Methods/IconGenerator/Translations/SearchNamespaces.cs
new file mode 100644
index 00000000..14f17147
--- /dev/null
+++ b/FModel/Methods/IconGenerator/Translations/SearchNamespaces.cs
@@ -0,0 +1,73 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Text.RegularExpressions;
+
+namespace FModel
+{
+ static class SearchNamespaces
+ {
+ public static List myNamespacesList { get; set; }
+ public static void searchNamespacesInUexp(string filepath)
+ {
+ myNamespacesList = new List();
+
+ if (File.Exists(filepath))
+ {
+ List weirdStrings = new List();
+ List listBeforeData = new List();
+ bool previousByteWasValid = false;
+
+ byte[] bytes = File.ReadAllBytes(filepath);
+
+ string pattern = @"^[a-zA-Z0-9 ]+$";
+ Regex regex = new Regex(pattern);
+
+ foreach (byte b in bytes) // Iterate throught all the bytes of the file
+ {
+ string byteString = Encoding.UTF8.GetString(new[] { b }); // Generate string for single byte
+
+ bool valid = regex.IsMatch(byteString);
+
+ if (valid)
+ {
+ if (previousByteWasValid) weirdStrings[weirdStrings.Count - 1] += byteString;
+ else weirdStrings.Add(byteString);
+ }
+ previousByteWasValid = valid;
+ }
+
+ bool found = false;
+ foreach (string str in weirdStrings)
+ {
+ if (str.Length > 2)
+ {
+ if (found) { myNamespacesList.Add(str); break; }
+
+ listBeforeData.Add(str);
+
+ if (str == "Outfit"
+ || str == "Back Bling"
+ || str == "Pet"
+ || str == "Harvesting Tool"
+ || str == "Glider"
+ || str == "Contrail"
+ || str == "Emote"
+ || str == "Toy"
+ || str == "Music")
+ {
+ int index = listBeforeData.IndexOf(str);
+
+ myNamespacesList.Add(listBeforeData[index - 3]);
+ myNamespacesList.Add(listBeforeData[index - 1]);
+
+ found = true;
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/FModel/Methods/IconGenerator/Translations/SearchResource.cs b/FModel/Methods/IconGenerator/Translations/SearchResource.cs
new file mode 100644
index 00000000..40c9ef7a
--- /dev/null
+++ b/FModel/Methods/IconGenerator/Translations/SearchResource.cs
@@ -0,0 +1,37 @@
+using Newtonsoft.Json.Linq;
+using FModel.Parser.LocResParser;
+
+namespace FModel
+{
+ static class SearchResource
+ {
+ private static string parsedJsonToCheck { get; set; }
+
+ public static string getTranslatedText(string theNamespace)
+ {
+ string toReturn = string.Empty;
+ string myParsedJson = string.Empty;
+
+ if (myParsedJson != parsedJsonToCheck)
+ {
+ myParsedJson = JToken.Parse(LoadLocRes.myLocRes).ToString().TrimStart('[').TrimEnd(']');
+ }
+ JObject jo = JObject.Parse(myParsedJson);
+ foreach (JToken token in jo.FindTokens(theNamespace))
+ {
+ LocResParser LocResParse = LocResParser.FromJson(token.ToString());
+ if (LocResParse.LocResText != null)
+ {
+ toReturn = LocResParse.LocResText;
+ }
+ else if (LocResParse.WorkerSetBonusTraitPattern != null)
+ {
+ toReturn = LocResParse.WorkerSetBonusTraitPattern;
+ }
+ }
+
+ parsedJsonToCheck = myParsedJson;
+ return toReturn;
+ }
+ }
+}
diff --git a/FModel/Methods/VarApp.cs b/FModel/Methods/VarApp.cs
index 2531f6f2..f05f1a75 100644
--- a/FModel/Methods/VarApp.cs
+++ b/FModel/Methods/VarApp.cs
@@ -33,7 +33,7 @@ namespace FModel
reader.BaseStream.Seek(reader.BaseStream.Length - 49 - 160, SeekOrigin.Begin);
uint g4 = reader.ReadUInt32();
- var guid = g1 + "-" + g2 + "-" + g3 + "-" + g4;
+ string guid = g1 + "-" + g2 + "-" + g3 + "-" + g4;
return guid;
}
}
@@ -63,8 +63,6 @@ namespace FModel
static class Checking
{
public static bool WasFeatured { get; set; }
- public static int YAfterLoop { get; set; }
-
public static bool UmWorking { get; set; }
}
public struct BundleInfoEntry: IEquatable
diff --git a/FModel/Parser/LocRes/LocResParser.cs b/FModel/Parser/LocRes/LocResParser.cs
new file mode 100644
index 00000000..c489055d
--- /dev/null
+++ b/FModel/Parser/LocRes/LocResParser.cs
@@ -0,0 +1,48 @@
+//
+//
+// To parse this JSON data, add NuGet 'Newtonsoft.Json' then do:
+//
+// using FModel.Parser.LocResParser;
+//
+// var locResParser = LocResParser.FromJson(jsonString);
+
+namespace FModel.Parser.LocResParser
+{
+ using System.Collections.Generic;
+
+ using System.Globalization;
+ using Newtonsoft.Json;
+ using Newtonsoft.Json.Converters;
+
+ public partial class LocResParser
+ {
+ [JsonProperty("LocResText")]
+ public string LocResText { get; set; }
+
+ [JsonProperty("WorkerSetBonusTraitPattern")]
+ public string WorkerSetBonusTraitPattern { get; set; }
+ }
+
+ public partial class LocResParser
+ {
+ public static LocResParser FromJson(string json) => JsonConvert.DeserializeObject(json, Converter.Settings);
+ }
+
+ public static class Serialize
+ {
+ public static string ToJson(this LocResParser self) => JsonConvert.SerializeObject(self, Converter.Settings);
+ }
+
+ internal static class Converter
+ {
+ public static readonly JsonSerializerSettings Settings = new JsonSerializerSettings
+ {
+ MetadataPropertyHandling = MetadataPropertyHandling.Ignore,
+ DateParseHandling = DateParseHandling.None,
+ Converters =
+ {
+ new IsoDateTimeConverter { DateTimeStyles = DateTimeStyles.AssumeUniversal }
+ },
+ };
+ }
+}
diff --git a/FModel/Properties/Settings.Designer.cs b/FModel/Properties/Settings.Designer.cs
index be91ca0f..5c154202 100644
--- a/FModel/Properties/Settings.Designer.cs
+++ b/FModel/Properties/Settings.Designer.cs
@@ -502,5 +502,17 @@ namespace FModel.Properties {
this["ePassword"] = value;
}
}
+
+ [global::System.Configuration.UserScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("English")]
+ public string IconLanguage {
+ get {
+ return ((string)(this["IconLanguage"]));
+ }
+ set {
+ this["IconLanguage"] = value;
+ }
+ }
}
}
diff --git a/FModel/Properties/Settings.settings b/FModel/Properties/Settings.settings
index 96c98815..193755ad 100644
--- a/FModel/Properties/Settings.settings
+++ b/FModel/Properties/Settings.settings
@@ -122,5 +122,8 @@
+
+ English
+
\ No newline at end of file
diff --git a/README.md b/README.md
index 86117b64..ecc5d713 100644
--- a/README.md
+++ b/README.md
@@ -83,13 +83,13 @@ This project is mainly based on what [UModel](https://github.com/gildor2/UModel)
I'd highly suggest you to use [UModel](https://github.com/gildor2/UModel) instead if you wanna use something made professionnaly.
## TODO
- - [ ] 2FA support
- [ ] Code refactoring
- - [ ] Get new file content
- - [ ] Display support for .locres files + compare
+ - [ ] Icons translation
+ - [ ] 2FA support
- [ ] Export Queue
- [ ] AES Manager
- [ ] Nintendo Switch sound files
+ - [x] Display support for .locres files
- [x] Nintendo Switch PAKs
- [x] Multithreading
- [x] Stop button