From 77547e33d85abeee0389935b665e20c7954f24f5 Mon Sep 17 00:00:00 2001 From: Asval Date: Tue, 11 Jun 2019 17:52:36 +0200 Subject: [PATCH] todo: find translations faster, disabled for now --- FModel/App.config | 3 + FModel/FModel.csproj | 6 +- FModel/Forms/Settings.Designer.cs | 46 ++++++++++-- FModel/Forms/Settings.cs | 14 ++-- FModel/MainWindow.cs | 5 +- FModel/MainWindow.resx | 74 +++++++++---------- .../IconGenerator/Translations/LoadLocRes.cs | 37 ++++++++++ .../Translations/SearchNamespaces.cs | 73 ++++++++++++++++++ .../Translations/SearchResource.cs | 37 ++++++++++ FModel/Methods/VarApp.cs | 4 +- FModel/Parser/LocRes/LocResParser.cs | 48 ++++++++++++ FModel/Properties/Settings.Designer.cs | 12 +++ FModel/Properties/Settings.settings | 3 + README.md | 6 +- 14 files changed, 307 insertions(+), 61 deletions(-) create mode 100644 FModel/Methods/IconGenerator/Translations/LoadLocRes.cs create mode 100644 FModel/Methods/IconGenerator/Translations/SearchNamespaces.cs create mode 100644 FModel/Methods/IconGenerator/Translations/SearchResource.cs create mode 100644 FModel/Parser/LocRes/LocResParser.cs 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