From f2682785cc2b71f7929658e2eef3a328b08cd417 Mon Sep 17 00:00:00 2001 From: Kurt Date: Sat, 13 Dec 2014 14:48:34 -0800 Subject: [PATCH] Code Cleanup --- Misc/PKX.cs | 51 +- PKHeX.csproj | 3 + PKX/f1-Main.Designer.cs | 4 +- PKX/f1-Main.cs | 1347 ++++++++++++-------------- PKX/f1-Main.resx | 468 --------- Properties/Resources.Designer.cs | 334 +++---- Properties/Resources.resx | 6 + Resources/text/locale/languages.txt | Bin 0 -> 250 bytes Resources/text/locale/regions3ds.txt | Bin 0 -> 218 bytes 9 files changed, 810 insertions(+), 1403 deletions(-) create mode 100644 Resources/text/locale/languages.txt create mode 100644 Resources/text/locale/regions3ds.txt diff --git a/Misc/PKX.cs b/Misc/PKX.cs index 01dc63b4f..16cfbf385 100644 --- a/Misc/PKX.cs +++ b/Misc/PKX.cs @@ -234,6 +234,12 @@ public static int getLevel(int species, ref uint exp) } else return tl; } + public static bool getIsShiny(uint PID, uint TID, uint SID) + { + uint PSV = getPSV(PID); + uint TSV = getTSV(TID, SID); + return ((TSV ^ PSV) < 16); + } public static uint getEXP(int level, int species) { // Fetch Growth @@ -290,7 +296,7 @@ public static string[] getCountryRegionText(int country, int region, string lang // Get Region Text { - string[] inputCSV = Util.getSimpleStringList("sr_" + region.ToString("000")); + string[] inputCSV = Util.getSimpleStringList("sr_" + country.ToString("000")); // Set up our Temporary Storage string[] unsortedList = new string[inputCSV.Length - 1]; int[] indexes = new int[inputCSV.Length - 1]; @@ -307,7 +313,7 @@ public static string[] getCountryRegionText(int country, int region, string lang } int regionnum = Array.IndexOf(indexes, region); - data[0] = unsortedList[regionnum]; + data[1] = unsortedList[regionnum]; } return data; } @@ -483,13 +489,13 @@ public static bool verifychk(byte[] input) return (chk == BitConverter.ToUInt16(input, 0x6)); } } - public static UInt16 getPSV(UInt32 PID) + public static uint getPSV(uint PID) { return Convert.ToUInt16(((PID >> 16) ^ (PID & 0xFFFF)) >> 4); } - public static UInt16 getTSV(UInt16 TID, UInt16 SID) + public static uint getTSV(uint TID, uint SID) { - return Convert.ToUInt16((TID ^ SID) >> 4); + return ((TID ^ SID) >> 4); } public static uint getRandomPID(int species, int cg) { @@ -527,7 +533,7 @@ public static uint getRandomPID(int species, int cg) private string mnicknamestr, mgenderstring, mnotOT, mot, mSpeciesName, mNatureName, mHPName, mAbilityName, - mMove1N, mMove2N, mMove3N, mMove4N, + mMove1N, mMove2N, mMove3N, mMove4N, mhelditemN, mcountryID, mregionID; private int @@ -538,8 +544,8 @@ private bool misegg, misnick, misshiny; private ushort - mspecies, mhelditem, mTID, mSID, mTSV, mESV, - mmove1, mmove2, mmove3, mmove4, + mhelditem, mspecies, mTID, mSID, mTSV, mESV, + mmove1, mmove2, mmove3, mmove4, mmove1_pp, mmove2_pp, mmove3_pp, mmove4_pp, mmove1_ppu, mmove2_ppu, mmove3_ppu, mmove4_ppu, meggmove1, meggmove2, meggmove3, meggmove4, @@ -564,6 +570,7 @@ private ushort public string Move2 { get { return mMove2N; } } public string Move3 { get { return mMove3N; } } public string Move4 { get { return mMove4N; } } + public string HeldItem { get { return mhelditemN; } } public string CountryID { get { return mcountryID; } } public string RegionID { get { return mregionID; } } @@ -607,7 +614,6 @@ private ushort public bool IsNicknamed { get { return misnick; } } public bool IsShiny { get { return misshiny; } } - public ushort HeldItem { get { return mhelditem; } } public ushort TID { get { return mTID; } } public ushort SID { get { return mSID; } } public ushort TSV { get { return mTSV; } } @@ -655,7 +661,7 @@ public PKX(byte[] pkx) mexp = BitConverter.ToUInt32(pkx, 0x10); mability = pkx[0x14]; mabilitynum = pkx[0x15]; - // 0x16, 0x17 - unknown + // 0x16, 0x17 - Training bag mPID = BitConverter.ToUInt32(pkx, 0x18); mnature = pkx[0x1C]; mfeflag = pkx[0x1D] % 2; @@ -785,6 +791,7 @@ public PKX(byte[] pkx) try { mSpeciesName = Form1.specieslist[mspecies]; + mhelditemN = Form1.itemlist[mhelditem]; mNatureName = Form1.natures[mnature]; mHPName = Form1.types[mhptype]; mAbilityName = Form1.abilitylist[mability]; @@ -884,11 +891,8 @@ internal static List getCBList(string textfile, string lang) for (int i = 1; i < inputCSV.Length; i++) { string[] countryData = inputCSV[i].Split(','); - if (countryData.Length > 1) - { - indexes[i - 1] = Convert.ToInt32(countryData[0]); - unsortedList[i - 1] = countryData[index + 1]; - } + indexes[i - 1] = Convert.ToInt32(countryData[0]); + unsortedList[i - 1] = countryData[index + 1]; } // Sort our input data @@ -906,6 +910,23 @@ internal static List getCBList(string textfile, string lang) } return cbList; } + internal static List getUnsortedCBList(string textfile) + { + // Set up + List cbList = new List(); + string[] inputCSV = Util.getSimpleStringList(textfile); + + // Gather our data from the input file + for (int i = 1; i < inputCSV.Length; i++) + { + string[] inputData = inputCSV[i].Split(','); + cbItem ncbi = new cbItem(); + ncbi.Value = Convert.ToInt32(inputData[0]); + ncbi.Text = inputData[1]; + cbList.Add(ncbi); + } + return cbList; + } // Personal.dat internal static PersonalParser PersonalGetter = new PersonalParser(); diff --git a/PKHeX.csproj b/PKHeX.csproj index b34a9c50f..86b8bf590 100644 --- a/PKHeX.csproj +++ b/PKHeX.csproj @@ -337,6 +337,9 @@ + + + diff --git a/PKX/f1-Main.Designer.cs b/PKX/f1-Main.Designer.cs index 96d365055..90d0abe25 100644 --- a/PKX/f1-Main.Designer.cs +++ b/PKX/f1-Main.Designer.cs @@ -2566,7 +2566,7 @@ public void InitializeComponent() // // menuStrip1 // - this.menuStrip1.BackColor = System.Drawing.SystemColors.Control; + this.menuStrip1.BackColor = System.Drawing.SystemColors.Control; this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.Menu_File, this.Menu_Tools, @@ -2692,7 +2692,7 @@ public void InitializeComponent() this.Menu_Unicode.Name = "Menu_Unicode"; this.Menu_Unicode.Size = new System.Drawing.Size(183, 22); this.Menu_Unicode.Text = "Toggle Unicode Text"; - this.Menu_Unicode.Click += new System.EventHandler(this.Menu_Unicode_Click); + this.Menu_Unicode.Click += new System.EventHandler(this.mainMenuUnicode); // // testToolStripMenuItem // diff --git a/PKX/f1-Main.cs b/PKX/f1-Main.cs index 51e145e94..af7c41203 100644 --- a/PKX/f1-Main.cs +++ b/PKX/f1-Main.cs @@ -25,7 +25,6 @@ public Form1() #endregion #region Initialize Form InitializeComponent(); - // Get Default White Color (for some users who have different color schemes CB_ExtraBytes.SelectedIndex = 0; // Resize Main Window to PKX Editing Mode @@ -46,8 +45,7 @@ public Form1() "한국어", // KOR "中文", // CHN }; - int[] main_langnum = new int[] - { 2,1,3,4,5,7,8,9 }; + int[] main_langnum = new int[] { 2,1,3,4,5,7,8,9 }; string[] lang_val = { "en", "ja", "fr", "it", "de", "es", "ko", "zh" }; for (int i = 0; i < main_langlist.Length; i++) @@ -65,10 +63,8 @@ public Form1() if (lang >= 0) CB_MainLanguage.SelectedIndex = main_langnum[lang]; - else if (lastTwoChars == "jp") - CB_MainLanguage.SelectedIndex = 1; - else - CB_MainLanguage.SelectedIndex = 0; + else + CB_MainLanguage.SelectedIndex = ((lastTwoChars == "jp") ? 1 : 0); #region HaX HaX = (filename.IndexOf("HaX") >= 0); @@ -90,66 +86,57 @@ public Form1() InitializeFields(); #endregion #region Add ContextMenus to the PictureBoxes (PKX slots) - PictureBox[] pba = { - bpkx1, bpkx2, bpkx3, bpkx4, bpkx5, bpkx6, - bpkx7, bpkx8, bpkx9, bpkx10,bpkx11,bpkx12, - bpkx13,bpkx14,bpkx15,bpkx16,bpkx17,bpkx18, - bpkx19,bpkx20,bpkx21,bpkx22,bpkx23,bpkx24, - bpkx25,bpkx26,bpkx27,bpkx28,bpkx29,bpkx30, - - ppkx1, ppkx2, ppkx3, ppkx4, ppkx5, ppkx6, - }; + ContextMenuStrip mnu = new ContextMenuStrip(); ToolStripMenuItem mnuView = new ToolStripMenuItem("View"); ToolStripMenuItem mnuSet = new ToolStripMenuItem("Set"); ToolStripMenuItem mnuDelete = new ToolStripMenuItem("Delete"); - //Assign event handlers + // Assign event handlers mnuView.Click += new EventHandler(rcmView_Click); mnuSet.Click += new EventHandler(rcmSet_Click); mnuDelete.Click += new EventHandler(rcmDelete_Click); - //Add to main context menu + // Add to main context menu mnu.Items.AddRange(new ToolStripItem[] { mnuView, mnuSet, mnuDelete }); - //Assign to datagridview - for (int i = 0; i < pba.Length; i++) - pba[i].ContextMenuStrip = mnu; + + // Assign to datagridview for Box Pokemon and Party Pokemon + foreach (PictureBox pb in PAN_Box.Controls) + pb.ContextMenuStrip = mnu; + foreach (PictureBox pb in PAN_Party.Controls) + pb.ContextMenuStrip = mnu; // Add ContextMenus to the PictureBoxes that are read only PictureBox[] pba2 = { bbpkx1,bbpkx2,bbpkx3,bbpkx4,bbpkx5,bbpkx6, - dcpkx1, dcpkx2, gtspkx, fusedpkx,subepkx1,subepkx2,subepkx3, + dcpkx1, dcpkx2, gtspkx, fusedpkx, subepkx1, subepkx2, subepkx3, }; ContextMenuStrip mnu2 = new ContextMenuStrip(); ToolStripMenuItem mnu2View = new ToolStripMenuItem("View"); - //Assign event handlers + + // Assign event handlers mnu2View.Click += new EventHandler(rcmView_Click); - //Add to main context menu + + // Add to main context menu mnu2.Items.AddRange(new ToolStripItem[] { mnu2View }); - //Assign to datagridview + + // Assign to datagridview for (int i = 0; i < pba2.Length; i++) pba2[i].ContextMenuStrip = mnu2; #endregion #region Enable Drag and Drop on the form & tab control. this.tabMain.AllowDrop = true; - this.DragEnter += new DragEventHandler(tabMain_DragEnter); - this.DragDrop += new DragEventHandler(tabMain_DragDrop); + this.DragEnter += tabMain_DragEnter; + this.DragDrop += tabMain_DragDrop; // Enable Drag and Drop on each tab. - this.tabMain.DragEnter += new DragEventHandler(tabMain_DragEnter); - this.tabMain.DragDrop += new DragEventHandler(tabMain_DragDrop); + this.tabMain.DragEnter += tabMain_DragEnter; + this.tabMain.DragDrop += tabMain_DragDrop; - TabPage[] tca = { Tab_Main, Tab_Met, Tab_Stats, Tab_Attacks, Tab_OTMisc }; - for (int i = 0; i < tca.Length; i++) + foreach (TabPage tab in tabMain.Controls) { - tca[i].DragEnter += new DragEventHandler(tabMain_DragEnter); - tca[i].DragDrop += new DragEventHandler(tabMain_DragDrop); - } - - // Export D&D - dragout.MouseDown += new MouseEventHandler(dragout_MouseDown); - dragout.DragOver += new DragEventHandler(dragout_DragOver); - eragout.MouseDown += new MouseEventHandler(dragout_MouseDown); - eragout.DragOver += new DragEventHandler(dragout_DragOver); + tab.DragEnter += tabMain_DragEnter; + tab.DragDrop += tabMain_DragDrop; + } // ToolTips for Drag&Drop ToolTip dragoutTip1 = new ToolTip(); @@ -158,19 +145,12 @@ public Form1() dragoutTip2.SetToolTip(eragout, "EK6 QuickSave"); // Box Drag & Drop - for (int i = 0; i < 30; i++) - pba[i].AllowDrop = true; + foreach (PictureBox pb in PAN_Box.Controls) + pb.AllowDrop = true; tabMain.AllowDrop = true; #endregion #region Finish Up - - // Default Selected Items - C_BoxSelect.SelectedIndex = 0; - CB_PPu1.SelectedIndex = CB_PPu2.SelectedIndex = CB_PPu3.SelectedIndex = CB_PPu4.SelectedIndex = 0; - CB_Ball.SelectedIndex = 0; - CB_Country.SelectedIndex = 0; - // Load the arguments string[] args = Environment.GetCommandLineArgs(); SDFLoc = Util.GetSDFLocation(); @@ -250,40 +230,498 @@ public Form1() public ToolTip Tip3 = new ToolTip(); public SaveGames.SaveStruct SaveGame = new SaveGames.SaveStruct("XY"); #endregion - + + #region //// MAIN MENU FUNCTIONS //// + // Main Menu Strip UI Functions + private void mainmenuOpen(object sender, EventArgs e) + { + string cyberpath = Util.GetTempFolder(); + SDFLoc = Util.GetSDFLocation(); + if (SDFLoc != null) + { + OpenPKX.InitialDirectory = SDFLoc; + OpenPKX.RestoreDirectory = true; + OpenPKX.FilterIndex = 4; + } + else if (Directory.Exists(Path.Combine(cyberpath, "root"))) + { + OpenPKX.InitialDirectory = Path.Combine(cyberpath, "root"); + OpenPKX.RestoreDirectory = true; + OpenPKX.FilterIndex = 4; + } + else if (Directory.Exists(cyberpath)) + { + OpenPKX.InitialDirectory = cyberpath; + OpenPKX.RestoreDirectory = true; + OpenPKX.FilterIndex = 4; + } + + DialogResult result = OpenPKX.ShowDialog(); + if (result == DialogResult.OK) + { + string path = OpenPKX.FileName; + openQuick(path); + } + } + private void mainmenuSave(object sender, EventArgs e) + { + if (!verifiedpkx()) { return; } + SavePKX.FileName = TB_Nickname.Text + " - " + TB_PID.Text; + DialogResult result = SavePKX.ShowDialog(); + if (result == DialogResult.OK) // Test result. + { + string path = SavePKX.FileName; + string ext = Path.GetExtension(path); + + if (File.Exists(path)) + { + // File already exists, save a .bak + byte[] backupfile = File.ReadAllBytes(path); + File.WriteAllBytes(path + ".bak", backupfile); + } + byte[] pkx = preparepkx(buff); + + if ((ext == ".ekx") || (ext == ".bin") || (ext == ".pkx") || (ext == ".ek6") || (ext == ".pk6")) + { + if ((ext == ".ekx") || (ext == ".bin") || (ext == ".ek6")) // User Requested Encrypted File + pkx = PKX.encryptArray(pkx); + File.WriteAllBytes(path, pkx.ToArray()); + } + else + { + Util.Error("Foreign File Extension", "Exporting as encrypted."); + pkx = PKX.encryptArray(pkx); + File.WriteAllBytes(path, pkx); + } + } + } + private void mainmenuExit(object sender, EventArgs e) + { + this.Close(); + } + private void mainmenuAbout(object sender, EventArgs e) + { + // Open a new form with the About details. + new About().ShowDialog(); + } + private void mainmenuWiden(object sender, EventArgs e) + { + int newwidth; + if (Width < Height) + { + newwidth = largeWidth; + tabBoxMulti.Enabled = true; + tabBoxMulti.SelectedIndex = 0; + } + else + newwidth = shortWidth; + + Width = newwidth; + } + private void mainmenuCodeGen(object sender, EventArgs e) + { + // Open Code Generator + CodeGenerator CodeGen = new PKHeX.CodeGenerator(this); + CodeGen.ShowDialog(); + byte[] data = CodeGen.returnArray; + if (data != null) + { + byte[] decdata = PKX.decryptArray(data); + Array.Copy(decdata, buff, 232); + try { populateFields(buff); } + catch + { + Array.Copy(new byte[232], buff, 232); + populateFields(buff); + Util.Error("Imported code did not decrypt properly", "Please verify that what you imported was correct."); + } + } + } + private void mainmenuBoxReport(object sender, EventArgs e) + { + frmReport ReportForm = new frmReport(); + int offset = 0x27A00; if (savegame_oras) offset = 0x33000 + 0x5400; + ReportForm.PopulateData(savefile, savindex, offset); + ReportForm.ShowDialog(); + } + private void mainMenuUnicode(object sender, EventArgs e) + { + unicode = (gendersymbols[0] == "♂"); + if (unicode) + { + gendersymbols = new string[] { "M", "F", "-" }; + BTN_Shinytize.Text = "*"; + } + else + { + gendersymbols = new string[] { "♂", "♀", "-" }; + BTN_Shinytize.Text = "☆"; + } + } + bool unicode = false; + + // Main Menu Subfunctions + private void openQuick(string path) + { + // detect if it is a folder (load into boxes or not) + if (Directory.Exists(path)) + { loadBoxesFromDB(path); return; } + + string ext = Path.GetExtension(path); + FileInfo fi = new FileInfo(path); + if (fi.Length > 0x10009C) + Util.Error("Input file is too large.", path); + else + { + + byte[] input; try { input = File.ReadAllBytes(path); } + catch { Util.Error("File is in use by another program!", path); return; } + + try { openFile(input, path, ext); } + catch + { + try + { + byte[] blank = PKX.encryptArray(new byte[260]); + + for (int i = 0; i < 232; i++) + blank[i] = (byte)(blank[i] ^ input[i]); + + openFile(blank, path, ext); + } + catch { openFile(input, path, ext); } + } + } + } + private void openFile(byte[] input, string path, string ext) + { + #region Powersaves Read-Only Conversion + if (input.Length == 0x10009C) // Resize to 1MB + { + Array.Copy(input, 0x9C, input, 0, 0x100000); + Array.Resize(ref input, 0x100000); + } + #endregion + #region Trade Packets + if (input.Length == 363 && BitConverter.ToUInt16(input, 0x6B) == 0) + { + // EAD Packet of 363 length + byte[] c = new byte[260]; + Array.Copy(input, 0x67, c, 0, 260); + input = c; + } + else if (input.Length == 407 && BitConverter.ToUInt16(input, 0x98) == 0) + { + // EAD Packet of 407 length + byte[] c = new byte[260]; + Array.Copy(input, 0x93, c, 0, 260); + input = c; + } + #endregion + #region Saves + else if ((input.Length == 0x76000) && BitConverter.ToUInt32(input, 0x75E10) == 0x42454546) // ORAS + openMAIN(input, path, "ORAS", true); + else if ((input.Length == 0x65600) && BitConverter.ToUInt32(input, 0x65410) == 0x42454546) // XY + openMAIN(input, path, "XY", false); + // Verify the Data Input Size is Proper + else if (input.Length == 0x100000) + { + if (BitConverter.ToUInt64(input, 0x10) != 0) // encrypted save + { Util.Error("PKHeX only edits decrypted save files.", "This save file is not decrypted."); return; } + + B_ExportSAV.Enabled = false; + B_SwitchSAV.Enabled = false; + B_JPEG.Enabled = false; + string GameType = "XY"; // Default Game Type to load. + if (BitConverter.ToUInt32(input, 0x7B210) == 0x42454546) GameType = "ORAS"; // BEEF magic in checksum block + if ((BitConverter.ToUInt32(input, 0x100) != 0x41534944) && (BitConverter.ToUInt32(input, 0x5234) != 0x6E69616D)) + { + DialogResult dialogResult = Util.Prompt(MessageBoxButtons.YesNo, "Save file is not decrypted.", "Press Yes to ignore this warning and continue loading the save file."); + if (dialogResult == DialogResult.Yes) + { + DialogResult sdr = Util.Prompt(MessageBoxButtons.YesNoCancel, "Press Yes to load the sav at 0x3000", "Press No for the one at 0x82000"); + if (sdr == DialogResult.Cancel) + return; + else if (sdr == DialogResult.Yes) + { + savindex = 0; + B_SwitchSAV.Enabled = true; + } + else savindex = 1; + B_SwitchSAV.Enabled = true; + open1MB(input, path, GameType, false); + } + } + else if (PKX.detectSAVIndex(input, ref savindex) == 2) + { + DialogResult dialogResult = Util.Prompt(MessageBoxButtons.YesNo, "Hash verification failed.", "Press Yes to ignore this warning and continue loading the save file."); + if (dialogResult == DialogResult.Yes) + { + DialogResult sdr = Util.Prompt(MessageBoxButtons.YesNoCancel, "Press Yes to load the sav at 0x3000", "Press No for the one at 0x82000"); + if (sdr == DialogResult.Cancel) + { + savindex = 0; + return; // abort load + } + else if (sdr == DialogResult.Yes) + { + savindex = 0; + B_SwitchSAV.Enabled = true; + } + else savindex = 1; + B_SwitchSAV.Enabled = true; + open1MB(input, path, GameType, false); + } + } + else + { + B_ExportSAV.Enabled = true; + B_SwitchSAV.Enabled = true; + PKX.detectSAVIndex(input, ref savindex); + open1MB(input, path, GameType, false); + } + B_JPEG.Enabled = true; + } + #endregion + #region PK6/EK6 + else if ((input.Length == 260) || (input.Length == 232)) + { + // Check if Input is PKX + if ((ext == ".pk6") || (ext == ".ek6") || (ext == ".pkx") || (ext == ".ekx") || (ext == ".bin") || (ext == "")) + { + // Check if Encrypted before Loading + buff = (BitConverter.ToUInt16(input, 0xC8) == 0 && BitConverter.ToUInt16(input, 0x58) == 0) ? input : PKX.decryptArray(input); + populateFields(buff); + } + else + Util.Error("Unable to recognize file.", "Only valid .pk* .ek* .bin supported."); + } + #endregion + #region PK3/PK4/PK5 + else if ((input.Length == 136) || (input.Length == 220) || (input.Length == 236) || (input.Length == 100) || (input.Length == 80)) // to convert g5pkm + { + var Converter = new pk2pk(); + if (!PKX.verifychk(input)) Util.Error("Invalid File (Checksum Error)"); + try // to convert g5pkm + { + byte[] data = Converter.ConvertPKM(input, savefile, savindex); + Array.Copy(data, buff, 232); + populateFields(buff); + } + catch + { + Array.Copy(new byte[232], buff, 232); + populateFields(buff); + Util.Error("Attempted to load previous generation PKM.", "Conversion failed."); + } + } + #endregion + else + Util.Error("Attempted to load an unsupported file type/size.", "File Loaded:" + Environment.NewLine + path); + } + private void openMAIN(byte[] input, string path, string GameType, bool oras) + { + L_Save.Text = "SAV: " + Path.GetFileName(path); + SaveGame = new SaveGames.SaveStruct(GameType); + + // Load CyberGadget + this.savindex = 0; + this.savefile = new byte[0x100000]; + this.cyberSAV = input; + cybergadget = true; + B_ExportSAV.Enabled = true; + Array.Copy(input, 0, savefile, 0x5400, input.Length); + + openSave(oras); + } + private void open1MB(byte[] input, string path, string GameType, bool oras) + { + L_Save.Text = "SAV: " + Path.GetFileName(path); + SaveGame = new SaveGames.SaveStruct(GameType); + savegame_oras = oras; + + savefile = input; + cybergadget = false; + + // Logic to allow unlocking of Switch SAV + // Setup SHA + SHA256 mySHA256 = SHA256Managed.Create(); + + // Check both IVFC Hashes + byte[] zeroarray = new byte[0x200]; + Array.Copy(savefile, 0x2000 + 0 * 0x7F000, zeroarray, 0, 0x20); + byte[] hashValue1 = mySHA256.ComputeHash(zeroarray); + Array.Copy(savefile, 0x2000 + 1 * 0x7F000, zeroarray, 0, 0x20); + byte[] hashValue2 = mySHA256.ComputeHash(zeroarray); + + byte[] realHash1 = new byte[0x20]; + byte[] realHash2 = new byte[0x20]; + + Array.Copy(savefile, 0x43C - 0 * 0x130, realHash1, 0, 0x20); + Array.Copy(savefile, 0x43C - 1 * 0x130, realHash2, 0, 0x20); + + B_SwitchSAV.Enabled = (hashValue1.SequenceEqual(realHash1) && hashValue2.SequenceEqual(realHash2)); + getSAVOffsets(); // just in case + Array.Copy(savefile, 0x5400 + 0x7F000 * savindex, cyberSAV, 0, cyberSAV.Length); + + openSave(oras); + } + private void openSave(bool oras) + { + savegame_oras = oras; + // Enable Secondary Tools + GB_SAVtools.Enabled = + tabBoxMulti.Enabled = true; + B_JPEG.Enabled = + B_BoxIO.Enabled = + B_VerifyCHK.Enabled = true; + B_VerifySHA.Enabled = B_SwitchSAV.Enabled = false; + + savedited = false; + Menu_ToggleBoxUI.Visible = false; + + // Set up Boxes + C_BoxSelect.SelectedIndex = 0; + tabBoxMulti.SelectedIndex = 0; + + setBoxNames(); // Display the Box Names + setPKXBoxes(); // Reload all of the PKX Windows + setSAVLabel(); // Reload the label indicating current save + + // Version Exclusive Editors + GB_SUBE.Visible = !oras; + B_OpenSecretBase.Visible = oras; + + this.Width = largeWidth; + savLoaded = true; + // Indicate audibly the save is loaded + System.Media.SystemSounds.Beep.Play(); + } + + // Language Translation + private void changeMainLanguage(object sender, EventArgs e) + { + if (init) + buff = preparepkx(buff); // get data currently in form + + Menu_Options.DropDown.Close(); + InitializeStrings(); + InitializeLanguage(); + Util.TranslateInterface("Form1", curlanguage, Controls, menuStrip1); + populateFields(buff); // put data back in form + } + private void InitializeStrings() + { + string[] lang_val = { "en", "ja", "fr", "it", "de", "es", "ko", "zh" }; + curlanguage = lang_val[CB_MainLanguage.SelectedIndex]; + + string l = curlanguage; + natures = Util.getStringList("Natures", l); + types = Util.getStringList("Types", l); + abilitylist = Util.getStringList("Abilities", l); + movelist = Util.getStringList("Moves", l); + itemlist = Util.getStringList("Items", l); + characteristics = Util.getStringList("Character", l); + specieslist = Util.getStringList("Species", l); + wallpapernames = Util.getStringList("Wallpaper", l); + itempouch = Util.getStringList("ItemPouch", l); + + if ((l != "zh") || (l == "zh" && !init)) // load initial binaries + { + forms = Util.getStringList("Forms", l); + memories = Util.getStringList("Memories", l); + genloc = Util.getStringList("GenLoc", l); + trainingbags = Util.getStringList("TrainingBag", l); + trainingstage = Util.getStringList("SuperTraining", l); + puffs = Util.getStringList("Puff", l); + } + + // Fix Item Names (Duplicate entries) + itemlist[456] += " (OLD)"; // S.S. Ticket + itemlist[463] += " (OLD)"; // Storage Key + itemlist[478] += " (OLD)"; // Basement Key + itemlist[626] += " (2)"; // Xtransceiver + itemlist[629] += " (2)"; // DNA Splicers + itemlist[637] += " (2)"; // Dropped Item + itemlist[707] += " (2)"; // Travel Trunk + itemlist[713] += " (2)"; // Alt Bike + itemlist[714] += " (2)"; // Holo Caster + itemlist[729] += " (1)"; // Meteorite + itemlist[740] += " (2)"; // Contest Costume + itemlist[751] += " (2)"; // Meteorite + itemlist[771] += " (3)"; // Meteorite + itemlist[772] += " (4)"; // Meteorite + + // Get the Egg Name and then replace it with --- for the comboboxes. + eggname = specieslist[0]; + specieslist[0] = "---"; + + // Get the met locations... for all of the games... + metHGSS_00000 = Util.getStringList("hgss_00000", l); + metHGSS_02000 = Util.getStringList("hgss_02000", l); + metHGSS_03000 = Util.getStringList("hgss_03000", l); + + metBW2_00000 = Util.getStringList("bw2_00000", l); + metBW2_30000 = Util.getStringList("bw2_30000", l); + metBW2_40000 = Util.getStringList("bw2_40000", l); + metBW2_60000 = Util.getStringList("bw2_60000", l); + + metXY_00000 = Util.getStringList("xy_00000", l); + metXY_30000 = Util.getStringList("xy_30000", l); + metXY_40000 = Util.getStringList("xy_40000", l); + metXY_60000 = Util.getStringList("xy_60000", l); + + // Fix up some of the Location strings to make them more descriptive: + metHGSS_02000[1] += " (NPC)"; // Anything from an NPC + metHGSS_02000[2] += " (" + eggname + ")"; // Egg From Link Trade + metBW2_00000[36] = metBW2_00000[84] + "/" + metBW2_00000[36]; // Cold Storage in BW = PWT in BW2 + + // BW2 Entries from 76 to 105 are for Entralink in BW + for (int i = 76; i < 106; i++) + metBW2_00000[i] = metBW2_00000[i] + "●"; + + // Localize the Poketransfer to the language (30001) + string[] ptransp = { "Poké Transfer", "ポケシフター", "Poké Fret", "Pokétrasporto", "Poképorter", "Pokétransfer", "포케시프터", "ポケシフター" }; + metBW2_30000[1 - 1] = ptransp[CB_MainLanguage.SelectedIndex]; + metBW2_30000[2 - 1] += " (NPC)"; // Anything from an NPC + metBW2_30000[3 - 1] += " (" + eggname + ")"; // Egg From Link Trade + + // Zorua/Zoroark events + metBW2_30000[10 - 1] = specieslist[251] + " (" + specieslist[570] + " 1)"; // Celebi's Zorua Event + metBW2_30000[11 - 1] = specieslist[251] + " (" + specieslist[570] + " 2)"; // Celebi's Zorua Event + metBW2_30000[12 - 1] = specieslist[571] + " (" + "1)"; // Zoroark + metBW2_30000[13 - 1] = specieslist[571] + " (" + "2)"; // Zoroark + + metBW2_60000[3 - 1] += " (" + eggname + ")"; // Egg Treasure Hunter/Breeder, whatever... + + metXY_00000[104] += " (X/Y)"; // Victory Road + metXY_00000[298] += " (OR/AS)"; // Victory Road + metXY_30000[0] += " (NPC)"; // Anything from an NPC + metXY_30000[1] += " (" + eggname + ")"; // Egg From Link Trade + + // Set the first entry of a met location to "" (nothing) + // Fix (None) tags + abilitylist[0] = itemlist[0] = movelist[0] = metXY_00000[0] = metBW2_00000[0] = metHGSS_00000[0] = "(" + itemlist[0] + ")"; + + // Force an update to the met locations + origintrack = ""; + + if (init) + updateIVs(null, null); // Prompt an update for the characteristics + } + #endregion + #region //// PKX WINDOW FUNCTIONS //// private void InitializeFields() { // Initialize Fields { - #region var tables - var language_list = new[] { - new { Text = "ENG (English)", Value = 2 }, - new { Text = "JPN (日本語)", Value = 1 }, - new { Text = "FRE (Français)", Value = 3 }, - new { Text = "ITA (Italiano)", Value = 4 }, - new { Text = "GER (Deutsch)", Value = 5 }, - new { Text = "ESP (Español)", Value = 7 }, - new { Text = "KOR (한국어)", Value = 8 } - }; - - var dsregion_list = new[] { - new { Text = "Americas (NA/SA)", Value = 1 }, - new { Text = "Europe (EU)", Value = 2 }, - new { Text = "Japan (日本)", Value = 0 }, - new { Text = "China (中国)", Value = 4 }, - new { Text = "Korea (한국)", Value = 5 }, - new { Text = "Taiwan (臺灣)", Value = 6 } - }; - #endregion - - // Set ComboBox Fields - - CB_3DSReg.DataSource = dsregion_list; + // Set ComboBox Fields with untranslatable data + CB_3DSReg.DataSource = PKX.getUnsortedCBList("regions3ds"); CB_3DSReg.DisplayMember = "Text"; CB_3DSReg.ValueMember = "Value"; - CB_Language.DataSource = language_list; + CB_Language.DataSource = PKX.getUnsortedCBList("languages"); CB_Language.DisplayMember = "Text"; CB_Language.ValueMember = "Value"; @@ -291,7 +729,6 @@ private void InitializeFields() } // Finish setting up the ComboBoxes - CB_Ball.SelectedIndex = 0; CB_GameOrigin.SelectedIndex = 0; // Now that the ComboBoxes are ready, load the data. @@ -300,8 +737,12 @@ private void InitializeFields() TB_OT.Text = "PKHeX"; TB_TID.Text = 12345.ToString(); TB_SID.Text = 54321.ToString(); + C_BoxSelect.SelectedIndex = 0; + CB_PPu1.SelectedIndex = CB_PPu2.SelectedIndex = CB_PPu3.SelectedIndex = CB_PPu4.SelectedIndex = 0; + CB_Ball.SelectedIndex = 0; + CB_Country.SelectedIndex = 0; + updateAbilityList(TB_AbilityNumber, Util.getIndex(CB_Species), CB_Ability, CB_Form); } - updateAbilityList(TB_AbilityNumber,Util.getIndex(CB_Species),CB_Ability,CB_Form); } private void InitializeLanguage() { @@ -586,7 +1027,7 @@ private void populateFields(byte[] buff) uint exp = BitConverter.ToUInt32(buff, 0x10); int ability = buff[0x14]; int abilitynum = buff[0x15]; - // 0x16, 0x17 - unknown + // 0x16, 0x17 - Training Bags handled by the Ribbon Editor uint PID = BitConverter.ToUInt32(buff, 0x18); int nature = buff[0x1C]; int feflag = buff[0x1D] % 2; @@ -687,9 +1128,7 @@ private void populateFields(byte[] buff) CHK_Fateful.Checked = Convert.ToBoolean(feflag); CHK_IsEgg.Checked = Convert.ToBoolean(isegg); CHK_Nicknamed.Checked = Convert.ToBoolean(isnick); - if (Convert.ToBoolean(otgender)) - Label_OTGender.Text = gendersymbols[1]; - else Label_OTGender.Text = gendersymbols[0]; + Label_OTGender.Text = gendersymbols[otgender]; // Private Use Character Fixing Text { @@ -815,21 +1254,13 @@ private void populateFields(byte[] buff) CB_PPu3.SelectedIndex = move3_ppu; CB_PPu4.SelectedIndex = move4_ppu; - int level; - if (Util.ToInt32(TB_EXP.Text) == 0) { level = 1; } - else level = PKX.getLevel(species, ref exp); + int level = PKX.getLevel(species, ref exp); TB_Level.Text = level.ToString(); // Setup Forms setForms(species, CB_Form); - try - { CB_Form.SelectedIndex = altforms; } - catch - { - if (CB_Form.Items.Count > 1) - CB_Form.SelectedIndex = CB_Form.Items.Count-1; - else CB_Form.SelectedIndex = 0; - } + try { CB_Form.SelectedIndex = altforms; } + catch { CB_Form.SelectedIndex = (CB_Form.Items.Count > 1) ? CB_Form.Items.Count - 1 : 0; } // Load Extrabyte Value TB_ExtraByte.Text = buff[Convert.ToInt32(CB_ExtraBytes.Text, 16)].ToString(); @@ -838,7 +1269,7 @@ private void populateFields(byte[] buff) // Reload Gender Flag this.genderflag = ((buff[0x1D] >> 1) & 0x3); - setGenderLabel(); + Label_Gender.Text = gendersymbols[genderflag]; updateStats(); setIsShiny(); if (init) @@ -847,10 +1278,12 @@ private void populateFields(byte[] buff) init = true; - // DEV Illegality - DEV_Ability.SelectedValue = ability; - MT_Level.Text = level.ToString(); - MT_Form.Text = altforms.ToString(); + if (HaX) // DEV Illegality + { + DEV_Ability.SelectedValue = ability; + MT_Level.Text = level.ToString(); + MT_Form.Text = altforms.ToString(); + } } private void populateMarkings(int markings) { @@ -871,25 +1304,13 @@ private void populateMarkings(int markings) // PKX Data Calculation Functions // private void setIsShiny() { - uint PID = Util.getHEXval(TB_PID); - uint UID = (PID >> 16); - uint LID = (PID & 0xFFFF); - uint PSV = UID ^ LID; - uint TSV = Util.ToUInt32(TB_TID.Text) ^ Util.ToUInt32(TB_SID.Text); - uint XOR = TSV ^ PSV; - int game = Util.getIndex(CB_GameOrigin); - if (XOR < 16) - { // Is Shiny - BTN_Shinytize.Visible = - BTN_Shinytize.Enabled = false; - Label_IsShiny.Visible = true; - } - else - { // Is Not Shiny - BTN_Shinytize.Visible = - BTN_Shinytize.Enabled = true; - Label_IsShiny.Visible = false; - } + bool isShiny = PKX.getIsShiny(Util.getHEXval(TB_PID),Util.ToUInt32(TB_TID.Text),Util.ToUInt32(TB_SID.Text)); + + // Set the Controls + BTN_Shinytize.Visible = BTN_Shinytize.Enabled = !isShiny; + Label_IsShiny.Visible = isShiny; + + // Refresh Markings (for Shiny Star if applicable) setMarkings(); } public void setForms(int species, ComboBox cb) @@ -1190,15 +1611,6 @@ public void setForms(int species, ComboBox cb) cb.DataSource = form_list; cb.Enabled = true; } - private void setGenderLabel() - { - if (genderflag == 0) - Label_Gender.Text = gendersymbols[0]; // Male - else if (genderflag == 1) - Label_Gender.Text = gendersymbols[1]; // Female - else - Label_Gender.Text = gendersymbols[2]; // Genderless - } private void setMarkings() { PictureBox[] pba = { PB_Mark1, PB_Mark2, PB_Mark3, PB_Mark4, PB_Mark5, PB_Mark6 }; @@ -1239,26 +1651,18 @@ private void Label_Gender_Click(object sender, EventArgs e) if (gt < 255) // If not a single gender(less) species: (should be <254 but whatever, 255 never happens^) { - if (PKX.getGender(Label_Gender.Text) == 0) // ♂ - Label_Gender.Text = gendersymbols[1]; // ♀ - else - Label_Gender.Text = gendersymbols[0]; // ♂ + Label_Gender.Text = gendersymbols[PKX.getGender(Label_Gender.Text) ^ 1]; - if (PKX.getGender(CB_Form.Text) == 0 && Label_Gender.Text != gendersymbols[0]) - CB_Form.SelectedIndex = 1; - else if (PKX.getGender(CB_Form.Text) == 1 && Label_Gender.Text != gendersymbols[1]) - CB_Form.SelectedIndex = 0; + if (PKX.getGender(CB_Form.Text) < 2) // Gendered Forms + CB_Form.SelectedIndex = PKX.getGender(Label_Gender.Text); } - - if (species == 592 || species == 593) - CB_Form.SelectedIndex = PKX.getGender(Label_Gender.Text); } private void Label_PPups_Click(object sender, EventArgs e) { - CB_PPu1.SelectedIndex = 3 * (Convert.ToInt16(!((ModifierKeys == Keys.Control) || Util.getIndex(CB_Move1) == 0))); - CB_PPu2.SelectedIndex = 3 * (Convert.ToInt16(!((ModifierKeys == Keys.Control) || Util.getIndex(CB_Move2) == 0))); - CB_PPu3.SelectedIndex = 3 * (Convert.ToInt16(!((ModifierKeys == Keys.Control) || Util.getIndex(CB_Move3) == 0))); - CB_PPu4.SelectedIndex = 3 * (Convert.ToInt16(!((ModifierKeys == Keys.Control) || Util.getIndex(CB_Move4) == 0))); + CB_PPu1.SelectedIndex = (ModifierKeys != Keys.Control && Util.getIndex(CB_Move1) > 0) ? 3 : 0; + CB_PPu2.SelectedIndex = (ModifierKeys != Keys.Control && Util.getIndex(CB_Move2) > 0) ? 3 : 0; + CB_PPu3.SelectedIndex = (ModifierKeys != Keys.Control && Util.getIndex(CB_Move3) > 0) ? 3 : 0; + CB_PPu4.SelectedIndex = (ModifierKeys != Keys.Control && Util.getIndex(CB_Move4) > 0) ? 3 : 0; } private void Label_Marking_Click(object sender, EventArgs e) { @@ -1302,16 +1706,7 @@ private void Label_OT_Click(object sender, EventArgs e) } private void Label_CT_Click(object sender, EventArgs e) { - string OT = Util.TrimFromZero(Encoding.Unicode.GetString(savefile, 0x19448 + savindex * 0x7F000, 0x1A)); - if (OT.Length > 0) - { - TB_OTt2.Text = OT; - // Set Gender Label - int g6trgend = savefile[0x19405 + savindex * 0x7F000]; - if (g6trgend == 1) - Label_CTGender.Text = gendersymbols[1]; // ♀ - else Label_CTGender.Text = gendersymbols[0]; // ♂ - } + Label_CTGender.Text = gendersymbols[savefile[0x19405 + savindex * 0x7F000]]; } private void Label_TrainerGender_Click(object sender, EventArgs e) { @@ -1393,7 +1788,6 @@ private void updateIVs(object sender, EventArgs e) SPE_IV = Util.ToInt32(TB_SPEIV.Text); int[] iva = new int[] { HP_IV, ATK_IV, DEF_IV, SPE_IV, SPA_IV, SPD_IV }; - MaskedTextBox[] ivt = { TB_HPIV, TB_ATKIV, TB_DEFIV, TB_SPEIV, TB_SPAIV, TB_SPDIV }; int HPTYPE = (15 * ((HP_IV & 1) + 2 * (ATK_IV & 1) + 4 * (DEF_IV & 1) + 8 * (SPE_IV & 1) + 16 * (SPA_IV & 1) + 32 * (SPD_IV & 1))) / 63; Label_HPTYPE.Text = types[HPTYPE+1]; // type array has normal at index 0, so we offset by 1 @@ -1454,8 +1848,6 @@ private void updateEVs(object sender, EventArgs e) SPD_EV = Util.ToInt32(TB_SPDEV.Text); SPE_EV = Util.ToInt32(TB_SPEEV.Text); - int[] eva = new int[] { HP_EV, ATK_EV, DEF_EV, SPA_EV, SPD_EV, SPE_EV }; - evtotal = HP_EV + ATK_EV + DEF_EV + SPA_EV + SPD_EV + SPE_EV; if (evtotal > 510) // Background turns Red @@ -1556,11 +1948,9 @@ private void updateForm(object sender, EventArgs e) // Repopulate Abilities if Species Form has different abilities updateAbilityList(TB_AbilityNumber, Util.getIndex(CB_Species), CB_Ability, CB_Form); - // If form has a single gender, account for it. - if (PKX.getGender(CB_Form.Text) == 0) - Label_Gender.Text = gendersymbols[0]; - else if (PKX.getGender(CB_Form.Text) == 1) - Label_Gender.Text = gendersymbols[1]; + // Gender Forms + if (PKX.getGender(CB_Form.Text) < 2) + Label_Gender.Text = CB_Form.Text; } private void updatePP(object sender, EventArgs e) { @@ -1622,7 +2012,7 @@ private void updateSpecies(object sender, EventArgs e) else // get gender from old PID correlation genderflag = ((Util.getHEXval(TB_PID) & 0xFF) <= gt) ? 1 : 0; - setGenderLabel(); + Label_Gender.Text = gendersymbols[genderflag]; updateAbilityList(TB_AbilityNumber, Util.getIndex(CB_Species), CB_Ability, CB_Form); updateForm(null, null); @@ -1632,14 +2022,7 @@ private void updateSpecies(object sender, EventArgs e) } private void updateOriginGame(object sender, EventArgs e) { - int gameorigin = 0; - - // Error handling for unset field - try - { - gameorigin = Util.ToInt32(CB_GameOrigin.SelectedValue.ToString()); - } - catch { gameorigin = 0; } + int gameorigin = Util.getIndex(CB_GameOrigin); if ((gameorigin <= 12) && (gameorigin >= 7)) { @@ -2058,10 +2441,9 @@ private void updatePKRSCured(object sender, EventArgs e) CB_PKRSStrain.Enabled = true; CHK_Infected.Checked = true; + // If we're cured we have to have a strain infection. if (CB_PKRSStrain.SelectedIndex == 0) - { // Give it Strain 1 by Default CB_PKRSStrain.SelectedIndex = 1; - } } else if (!CHK_Infected.Checked) { @@ -2070,7 +2452,8 @@ private void updatePKRSCured(object sender, EventArgs e) CB_PKRSStrain.SelectedIndex = 0; } else - { // Still Infected for a duration + { + // Still Infected for a duration CB_PKRSDays.Enabled = true; CB_PKRSDays.SelectedValue = 1; } @@ -2145,9 +2528,12 @@ private void updateShinyPID(object sender, EventArgs e) uint TSV = TID ^ SID; uint XOR = TSV ^ PSV; - // Check to see if we actually did it right... should be 0. + // Preserve Gen5 Origin Ability bit just in case + XOR &= 0xFFFE; XOR |= UID & 1; + + // New XOR should be 0 or 1. if (XOR > 16) - TB_PID.Text = ((UID ^ XOR) * 0x10000 + LID).ToString("X8"); + TB_PID.Text = (((UID ^ XOR) << 16) + LID).ToString("X8"); setIsShiny(); } @@ -2195,7 +2581,7 @@ private void updateStats() { // Gather the needed information. species = Util.getIndex(CB_Species); - int level = Util.ToInt32(TB_Level.Text); if (MT_Level.Enabled) level = Util.ToInt32(MT_Level.Text); + int level = Util.ToInt32((MT_Level.Enabled) ? MT_Level.Text : TB_Level.Text); if (level == 0) { level = 1; } int form = CB_Form.SelectedIndex; int HP_IV = Util.ToInt32(TB_HPIV.Text); @@ -2211,7 +2597,7 @@ private void updateStats() int SPA_EV = Util.ToInt32(TB_SPAEV.Text); int SPD_EV = Util.ToInt32(TB_SPDEV.Text); int SPE_EV = Util.ToInt32(TB_SPEEV.Text); - + int nature = Util.getIndex(CB_Nature); // Generate the stats. @@ -2219,25 +2605,29 @@ private void updateStats() HP_EV, ATK_EV, DEF_EV, SPA_EV, SPD_EV, SPE_EV, HP_IV, ATK_IV, DEF_IV, SPA_IV, SPD_IV, SPE_IV); - Stat_HP.Text = stats[0].ToString(); + Stat_HP.Text = stats[0].ToString(); Stat_ATK.Text = stats[1].ToString(); Stat_DEF.Text = stats[2].ToString(); Stat_SPA.Text = stats[4].ToString(); Stat_SPD.Text = stats[5].ToString(); Stat_SPE.Text = stats[3].ToString(); - + // Recolor the Stat Labels based on boosted stats. - int incr = nature / 5; - int decr = nature % 5; - - Label[] labarray = new Label[] { Label_ATK, Label_DEF, Label_SPE, Label_SPA, Label_SPD }; - for (int i = 0; i < 5; i++) - labarray[i].ForeColor = DefaultForeColor; - - if (incr != decr) // if stat isn't neutral { - labarray[incr].ForeColor = Color.Red; - labarray[decr].ForeColor = Color.Blue; + int incr = nature / 5; + int decr = nature % 5; + + Label[] labarray = new Label[] { Label_ATK, Label_DEF, Label_SPE, Label_SPA, Label_SPD }; + // Reset Label Colors + foreach (Label label in labarray) + label.ForeColor = DefaultForeColor; + + // Set Colored StatLabels only if Nature isn't Neutral + if (incr != decr) + { + labarray[incr].ForeColor = Color.Red; + labarray[decr].ForeColor = Color.Blue; + } } } public void updateAbilityList(MaskedTextBox tb_abil, int species, ComboBox cb_abil, ComboBox cb_forme) @@ -2259,363 +2649,6 @@ public void updateAbilityList(MaskedTextBox tb_abil, int species, ComboBox cb_ab if (newabil < 3) cb_abil.SelectedIndex = newabil; else cb_abil.SelectedIndex = 0; } - // Main Menu Strip UI Functions // - private void mainmenuOpen(object sender, EventArgs e) - { - string cyberpath = Util.GetTempFolder(); - SDFLoc = Util.GetSDFLocation(); - if (SDFLoc != null) - { - OpenPKX.InitialDirectory = SDFLoc; - OpenPKX.RestoreDirectory = true; - OpenPKX.FilterIndex = 4; - } - else if (Directory.Exists(Path.Combine(cyberpath, "root"))) - { - OpenPKX.InitialDirectory = Path.Combine(cyberpath, "root"); - OpenPKX.RestoreDirectory = true; - OpenPKX.FilterIndex = 4; - } - else if (Directory.Exists(cyberpath)) - { - OpenPKX.InitialDirectory = cyberpath; - OpenPKX.RestoreDirectory = true; - OpenPKX.FilterIndex = 4; - } - - DialogResult result = OpenPKX.ShowDialog(); - if (result == DialogResult.OK) - { - string path = OpenPKX.FileName; - openQuick(path); - } - } - private void mainmenuSave(object sender, EventArgs e) - { - if (!verifiedpkx()) { return; } - SavePKX.FileName = TB_Nickname.Text + " - " + TB_PID.Text; - DialogResult result = SavePKX.ShowDialog(); - if (result == DialogResult.OK) // Test result. - { - string path = SavePKX.FileName; - string ext = Path.GetExtension(path); - - if (File.Exists(path)) - { - // File already exists, save a .bak - byte[] backupfile = File.ReadAllBytes(path); - File.WriteAllBytes(path + ".bak", backupfile); - } - byte[] pkx = preparepkx(buff); - - if ((ext == ".ekx") || (ext == ".bin") || (ext == ".pkx") || (ext == ".ek6") || (ext == ".pk6")) - { - if ((ext == ".ekx") || (ext == ".bin") || (ext == ".ek6")) // User Requested Encrypted File - pkx = PKX.encryptArray(pkx); - File.WriteAllBytes(path, pkx.ToArray()); - } - else - { - Util.Error("Foreign File Extension", "Exporting as encrypted."); - pkx = PKX.encryptArray(pkx); - File.WriteAllBytes(path, pkx); - } - } - } - private void mainmenuExit(object sender, EventArgs e) - { - this.Close(); - } - private void mainmenuAbout(object sender, EventArgs e) - { - // Open a new form with the About details. - new About().ShowDialog(); - } - private void mainmenuWiden(object sender, EventArgs e) - { - int newwidth; - if (Width < Height) - { - newwidth = largeWidth; - tabBoxMulti.Enabled = true; - tabBoxMulti.SelectedIndex = 0; - } - else - newwidth = shortWidth; - - Width = newwidth; - } - private void mainmenuCodeGen(object sender, EventArgs e) - { - // Open Code Generator - CodeGenerator CodeGen = new PKHeX.CodeGenerator(this); - CodeGen.ShowDialog(); - byte[] data = CodeGen.returnArray; - if (data != null) - { - byte[] decdata = PKX.decryptArray(data); - Array.Copy(decdata, buff, 232); - try { populateFields(buff); } - catch - { - Array.Copy(new byte[232], buff, 232); - populateFields(buff); - Util.Error("Imported code did not decrypt properly", "Please verify that what you imported was correct."); - } - } - } - private void mainmenuBoxReport(object sender, EventArgs e) - { - frmReport ReportForm = new frmReport(); - int offset = 0x27A00; if (savegame_oras) offset = 0x33000 + 0x5400; - ReportForm.PopulateData(savefile, savindex, offset); - ReportForm.ShowDialog(); - } - // Main Menu Subfunctions // - private void openQuick(string path) - { - // detect if it is a folder (load into boxes or not) - if (Directory.Exists(path)) - { loadBoxesFromDB(path); return; } - - string ext = Path.GetExtension(path); - FileInfo fi = new FileInfo(path); - if (fi.Length > 0x10009C) - Util.Error("Input file is too large.", path); - else - { - - byte[] input; try { input = File.ReadAllBytes(path); } - catch { Util.Error("File is in use by another program!", path); return; } - - try { openFile(input, path, ext); } - catch - { - try - { - byte[] blank = PKX.encryptArray(new byte[260]); - - for (int i = 0; i < 232; i++) - blank[i] = (byte)(blank[i] ^ input[i]); - - openFile(blank, path, ext); - } - catch { openFile(input, path, ext); } - } - } - } - private void openFile(byte[] input, string path, string ext) - { - #region Powersaves Read-Only Conversion - if (input.Length == 0x10009C) // Resize to 1MB - { - Array.Copy(input, 0x9C, input, 0, 0x100000); - Array.Resize(ref input, 0x100000); - } - #endregion - #region Trade Packets - if (input.Length == 363 && BitConverter.ToUInt16(input, 0x6B) == 0) - { - // EAD Packet of 363 length - byte[] c = new byte[260]; - Array.Copy(input, 0x67, c, 0, 260); - input = c; - } - else if (input.Length == 407 && BitConverter.ToUInt16(input,0x98) == 0) - { - // EAD Packet of 407 length - byte[] c = new byte[260]; - Array.Copy(input, 0x93, c, 0, 260); - input = c; - } - #endregion - #region Saves - else if ((input.Length == 0x76000) && BitConverter.ToUInt32(input, 0x75E10) == 0x42454546) // ORAS - openMAIN(input, path, "ORAS", true); - else if ((input.Length == 0x65600) && BitConverter.ToUInt32(input, 0x65410) == 0x42454546) // XY - openMAIN(input, path, "XY", false); - // Verify the Data Input Size is Proper - else if (input.Length == 0x100000) - { - if (BitConverter.ToUInt64(input,0x10) != 0) // encrypted save - { Util.Error("PKHeX only edits decrypted save files.", "This save file is not decrypted."); return; } - - B_ExportSAV.Enabled = false; - B_SwitchSAV.Enabled = false; - B_JPEG.Enabled = false; - string GameType = "XY"; // Default Game Type to load. - if (BitConverter.ToUInt32(input, 0x7B210) == 0x42454546) GameType = "ORAS"; // BEEF magic in checksum block - if ((BitConverter.ToUInt32(input, 0x100) != 0x41534944) && (BitConverter.ToUInt32(input, 0x5234) != 0x6E69616D)) - { - DialogResult dialogResult = Util.Prompt(MessageBoxButtons.YesNo, "Save file is not decrypted.", "Press Yes to ignore this warning and continue loading the save file."); - if (dialogResult == DialogResult.Yes) - { - DialogResult sdr = Util.Prompt(MessageBoxButtons.YesNoCancel, "Press Yes to load the sav at 0x3000", "Press No for the one at 0x82000"); - if (sdr == DialogResult.Cancel) - return; - else if (sdr == DialogResult.Yes) - { - savindex = 0; - B_SwitchSAV.Enabled = true; - } - else savindex = 1; - B_SwitchSAV.Enabled = true; - open1MB(input, path, GameType, false); - } - } - else if (PKX.detectSAVIndex(input, ref savindex) == 2) - { - DialogResult dialogResult = Util.Prompt(MessageBoxButtons.YesNo, "Hash verification failed.", "Press Yes to ignore this warning and continue loading the save file."); - if (dialogResult == DialogResult.Yes) - { - DialogResult sdr = Util.Prompt(MessageBoxButtons.YesNoCancel, "Press Yes to load the sav at 0x3000", "Press No for the one at 0x82000"); - if (sdr == DialogResult.Cancel) - { - savindex = 0; - return; // abort load - } - else if (sdr == DialogResult.Yes) - { - savindex = 0; - B_SwitchSAV.Enabled = true; - } - else savindex = 1; - B_SwitchSAV.Enabled = true; - open1MB(input, path, GameType, false); - } - } - else - { - B_ExportSAV.Enabled = true; - B_SwitchSAV.Enabled = true; - PKX.detectSAVIndex(input, ref savindex); - open1MB(input, path, GameType, false); - } - B_JPEG.Enabled = true; - } - #endregion - #region PK6/EK6 - else if ((input.Length == 260) || (input.Length == 232)) - { - // Check if Input is PKX - if ((ext == ".pk6") || (ext == ".ek6") || (ext == ".pkx") || (ext == ".ekx") || (ext == ".bin") || (ext == "")) - { - // Check if either is encrypted from another program. - if (BitConverter.ToUInt16(input, 0xC8) == 0 && BitConverter.ToUInt16(input, 0x58) == 0) - { // File isn't encrypted. - buff = input; - populateFields(buff); - } - else - { - // File is encrypted. - buff = PKX.decryptArray(input); - populateFields(buff); - } - } - else - Util.Error("Unable to recognize file.", "Only valid .pk* .ek* .bin supported."); - } - #endregion - #region PK3/PK4/PK5 - else if ((input.Length == 136) || (input.Length == 220) || (input.Length == 236) || (input.Length == 100) || (input.Length == 80)) // to convert g5pkm - { - var Converter = new pk2pk(); - if (!PKX.verifychk(input)) Util.Error("Invalid File (Checksum Error)"); - try // to convert g5pkm - { - byte[] data = Converter.ConvertPKM(input, savefile, savindex); - Array.Copy(data, buff, 232); - populateFields(buff); - } - catch - { - Array.Copy(new byte[232], buff, 232); - populateFields(buff); - Util.Error("Attempted to load previous generation PKM.", "Conversion failed."); - } - } - #endregion - else - Util.Error("Attempted to load an unsupported file type/size.", "File Loaded:" + Environment.NewLine + path); - } - private void openMAIN(byte[] input, string path, string GameType, bool oras) - { - L_Save.Text = "SAV: " + Path.GetFileName(path); - SaveGame = new SaveGames.SaveStruct(GameType); - - // Load CyberGadget - this.savindex = 0; - this.savefile = new byte[0x100000]; - this.cyberSAV = input; - cybergadget = true; - B_ExportSAV.Enabled = true; - Array.Copy(input, 0, savefile, 0x5400, input.Length); - - openSave(oras); - } - private void open1MB(byte[] input, string path, string GameType, bool oras) - { - L_Save.Text = "SAV: " + Path.GetFileName(path); - SaveGame = new SaveGames.SaveStruct(GameType); - savegame_oras = oras; - - savefile = input; - cybergadget = false; - - // Logic to allow unlocking of Switch SAV - // Setup SHA - SHA256 mySHA256 = SHA256Managed.Create(); - - // Check both IVFC Hashes - byte[] zeroarray = new byte[0x200]; - Array.Copy(savefile, 0x2000 + 0 * 0x7F000, zeroarray, 0, 0x20); - byte[] hashValue1 = mySHA256.ComputeHash(zeroarray); - Array.Copy(savefile, 0x2000 + 1 * 0x7F000, zeroarray, 0, 0x20); - byte[] hashValue2 = mySHA256.ComputeHash(zeroarray); - - byte[] realHash1 = new byte[0x20]; - byte[] realHash2 = new byte[0x20]; - - Array.Copy(savefile, 0x43C - 0 * 0x130, realHash1, 0, 0x20); - Array.Copy(savefile, 0x43C - 1 * 0x130, realHash2, 0, 0x20); - - B_SwitchSAV.Enabled = (hashValue1.SequenceEqual(realHash1) && hashValue2.SequenceEqual(realHash2)); - getSAVOffsets(); // just in case - Array.Copy(savefile, 0x5400 + 0x7F000 * savindex, cyberSAV, 0, cyberSAV.Length); - - openSave(oras); - } - private void openSave(bool oras) - { - savegame_oras = oras; - // Enable Secondary Tools - GB_SAVtools.Enabled = - tabBoxMulti.Enabled = true; - B_JPEG.Enabled = - B_BoxIO.Enabled = - B_VerifyCHK.Enabled = true; - B_VerifySHA.Enabled = B_SwitchSAV.Enabled = false; - - savedited = false; - Menu_ToggleBoxUI.Visible = false; - - // Set up Boxes - C_BoxSelect.SelectedIndex = 0; - tabBoxMulti.SelectedIndex = 0; - - setBoxNames(); // Display the Box Names - setPKXBoxes(); // Reload all of the PKX Windows - setSAVLabel(); // Reload the label indicating current save - - // Version Exclusive Editors - GB_SUBE.Visible = !oras; - B_OpenSecretBase.Visible = oras; - - this.Width = largeWidth; - savLoaded = true; - System.Media.SystemSounds.Beep.Play(); // audibly indicate the save is loaded - } // Secondary Windows for Ribbons/Amie/Memories private void openribbons(object sender, EventArgs e) { @@ -2633,7 +2666,7 @@ public bool verifiedpkx() // Make sure the PKX Fields are filled out properly (color check) #region ComboBoxes ComboBox[] cba = { - CB_Species, CB_Nature, CB_HeldItem, CB_Ability, CB_Country, CB_SubRegion, // Main Tab + CB_Species, CB_Nature, CB_HeldItem, CB_Ability, // Main Tab CB_MetLocation, CB_EggLocation, CB_Ball, // Met Tab CB_Move1, CB_Move2, CB_Move3, CB_Move4, // Moves CB_RelearnMove1, CB_RelearnMove2, CB_RelearnMove3, CB_RelearnMove4 // Moves @@ -2714,8 +2747,7 @@ public byte[] preparepkx(byte[] buff) pkx[0x1C] = (byte)((Util.getIndex(CB_Nature))); // Nature int fegform = (int)(Convert.ToInt32(CHK_Fateful.Checked)); // Fateful fegform |= (PKX.getGender(Label_Gender.Text) << 1); // Gender - if (MT_Form.Enabled) fegform |= (Math.Min(Convert.ToInt32(MT_Form.Text), 32) << 3); // Form - else fegform |= ((Util.getIndex(CB_Form)) << 3); + fegform |= (Math.Min((MT_Form.Enabled) ? Convert.ToInt32(MT_Form.Text) : Util.getIndex(CB_Form), 32) << 3); // Form pkx[0x1D] = (byte)fegform; pkx[0x1E] = (byte)(Util.ToInt32(TB_HPEV.Text) & 0xFF); // EVs pkx[0x1F] = (byte)(Util.ToInt32(TB_ATKEV.Text) & 0xFF); @@ -2753,13 +2785,9 @@ public byte[] preparepkx(byte[] buff) // Block B // Convert Nickname field back to bytes string nicknamestr = TB_Nickname.Text; - - if (!CHK_Nicknamed.Checked) // Get the correct gender sign { - if (nicknamestr.Contains((char)0x2640)) - nicknamestr = Regex.Replace(nicknamestr, "\u2640", "\uE08F"); - else if (nicknamestr.Contains((char)0x2642)) - nicknamestr = Regex.Replace(nicknamestr, "\u2642", "\uE08E"); + nicknamestr = Regex.Replace(nicknamestr, "\u2640", "\uE08F"); + nicknamestr = Regex.Replace(nicknamestr, "\u2642", "\uE08E"); } byte[] nicknamebytes = Encoding.Unicode.GetBytes(nicknamestr); Array.Resize(ref nicknamebytes, 24); // pad with zeroes and effectively keep no trash bytes @@ -2887,7 +2915,7 @@ public byte[] preparepkx(byte[] buff) pkx[0x100] = 0; pkx[0x101] = 0; pkx[0x102] = 0; pkx[0x103] = 0; // Hax Illegality - if (DEV_Ability.Enabled) + if (HaX) { pkx[0x14] = (byte)Util.getIndex(DEV_Ability); // Ability pkx[0xEC] = (byte)Math.Min(Convert.ToInt32(MT_Level.Text), 255); // Level @@ -3285,9 +3313,7 @@ private void B_VerifySHA_Click(object sender, EventArgs e) byte[] actualhash = new byte[0x20]; Array.Copy(savefile, 0x43C, actualhash, 0, 0x20); if (!hashValue.SequenceEqual(actualhash)) - { RTB_S.Text += "Invalid: " + 0x2000.ToString("X5") + " @ " + 0x43C.ToString("X3") + Environment.NewLine; - } } { byte[] zeroarray = new byte[0x200]; @@ -3296,9 +3322,7 @@ private void B_VerifySHA_Click(object sender, EventArgs e) byte[] actualhash = new byte[0x20]; Array.Copy(savefile, 0x30C, actualhash, 0, 0x20); if (!hashValue.SequenceEqual(actualhash)) - { RTB_S.Text += "Invalid: " + 0x81000.ToString("X5") + " @ " + 0x30C.ToString("X3") + Environment.NewLine; - } } { byte[] difihash1 = new byte[0x12C]; @@ -3310,17 +3334,11 @@ private void B_VerifySHA_Click(object sender, EventArgs e) byte[] actualhash = new byte[0x20]; Array.Copy(savefile, 0x16C, actualhash, 0, 0x20); if (hashValue1.SequenceEqual(actualhash)) - { RTB_S.Text += "Active DIFI partition is Save 1."; - } else if (hashValue2.SequenceEqual(actualhash)) - { RTB_S.Text += "Active DIFI partition is Save 2."; - } else - { RTB_S.Text += "ERROR: NO ACTIVE DIFI HASH MATCH"; - } } } private void exportSAV(object sender, EventArgs e) @@ -4023,12 +4041,7 @@ public void setPKXBoxes() // Recoloring of a storage box slot (to not show for other storage boxes) if (colorizedslot < 32) - { - if (colorizedbox == C_BoxSelect.SelectedIndex) - pba[colorizedslot].BackgroundImage = colorizedcolor; - else - pba[colorizedslot].BackgroundImage = null; - } + pba[colorizedslot].BackgroundImage = (colorizedbox == C_BoxSelect.SelectedIndex) ? colorizedcolor : null; } public void setBoxNames() { @@ -4112,11 +4125,6 @@ private void getSlotFiller(int offset, PictureBox pb) } // Redrawing logic - uint PID = BitConverter.ToUInt32(dslotdata, 0x18); - ushort PSV = PKX.getPSV(PID); - ushort TSV = PKX.getTSV(BitConverter.ToUInt16(dslotdata, 0x0C),BitConverter.ToUInt16(dslotdata, 0x0E)); - ushort XOR = (ushort)(TSV ^ PSV); - Image baseImage = (Image)Properties.Resources.ResourceManager.GetObject(file); if (baseImage == null) { @@ -4137,7 +4145,7 @@ private void getSlotFiller(int offset, PictureBox pb) file = "egg"; // Add the egg layer over-top. baseImage = PKHeX.Util.LayerImage(baseImage, (Image)Properties.Resources.ResourceManager.GetObject(file), 0, 0, 1); } - if (XOR == 0) + if (PKX.getIsShiny(BitConverter.ToUInt32(dslotdata, 0x18),BitConverter.ToUInt16(dslotdata, 0x0C),BitConverter.ToUInt16(dslotdata, 0x0E))) { // Is Shiny // Redraw our image baseImage = PKHeX.Util.LayerImage(baseImage, Properties.Resources.rare_icon, 0, 0, 0.7); @@ -4185,14 +4193,11 @@ private void getBox(object sender, EventArgs e) } private void getTSV(object sender, EventArgs e) { - uint TID = Util.ToUInt32(TB_TID.Text); - uint SID = Util.ToUInt32(TB_SID.Text); - uint tsv = PKX.getTSV((ushort)TID, (ushort)SID); + uint tsv = PKX.getTSV(Util.ToUInt32(TB_TID.Text), Util.ToUInt32(TB_SID.Text)); Tip1.SetToolTip(this.TB_TID, "TSV: " + tsv.ToString("0000")); Tip2.SetToolTip(this.TB_SID, "TSV: " + tsv.ToString("0000")); - uint PID = Util.getHEXval(TB_PID); - uint psv = PKX.getPSV(PID); + uint psv = PKX.getPSV(Util.getHEXval(TB_PID)); Tip3.SetToolTip(this.TB_PID, "PSV: " + psv.ToString("0000")); } private void Menu_DumpLoadBoxes_Click(object sender, EventArgs e) @@ -4274,13 +4279,8 @@ private void Menu_DumpLoadBoxes_Click(object sender, EventArgs e) string isshiny = ""; int gamevers = pkxdata[0xDF]; - uint PID = BitConverter.ToUInt32(pkxdata, 0x18); - uint UID = (PID >> 16); - uint LID = (PID & 0xFFFF); - uint PSV = UID ^ LID; - uint TSV = Util.ToUInt32(TB_TID.Text) ^ Util.ToUInt32(TB_SID.Text); - uint XOR = TSV ^ PSV; - if (XOR < 16) // Is Shiny + // Is Shiny + if (PKX.getIsShiny(BitConverter.ToUInt32(pkxdata, 0x18), Util.ToUInt32(TB_TID.Text), Util.ToUInt32(TB_SID.Text))) isshiny = " ★"; string savedname = @@ -4317,7 +4317,8 @@ private void loadBoxesFromDB(string path) for (int i = 0; i < filepaths.Length; i++) { long len = new FileInfo(filepaths[i]).Length; - if (len > 260) continue; + if (len > 260) + continue; else if ( len != 232 && len != 260 // 6th Gen && len != 136 && len != 220 && len != 236 // 5th Gen @@ -4581,6 +4582,23 @@ private void B_OpenSecretBase_Click(object sender, EventArgs e) new SAV_SecretBase(this).ShowDialog();; } + private void L_Save_Click(object sender, EventArgs e) + { + // Get latest SaveDataFiler save location + SDFLoc = Util.GetSDFLocation(); + string path = null; + + if (SDFLoc != null && ModifierKeys != Keys.Control) // if we have a result + path = Path.Combine(SDFLoc, "main"); + else if (File.Exists(Util.NormalizePath(Path.Combine(Util.GetTempFolder(), "root" + Path.DirectorySeparatorChar + "main")))) // else if cgse exists + path = Util.NormalizePath(Path.Combine(Util.GetTempFolder(), "root" + Path.DirectorySeparatorChar + "main")); + + if (path != null) + { + if (Util.Prompt(MessageBoxButtons.YesNo, "Open save file from the following location?", path) == DialogResult.Yes) + openQuick(path); // load save + } + } private void B_OpenTemp_Click(object sender, EventArgs e) { string path; @@ -4648,119 +4666,6 @@ private void B_BoxIO_Click(object sender, EventArgs e) { // Allow Import/Export of Boxes new PKHeX.SAV_BoxIO(this, SaveGame.Box, SaveGame.PCLayout).ShowDialog(); - } - #endregion - - // Language Translation - private void changeMainLanguage(object sender, EventArgs e) - { - if (init) - buff = preparepkx(buff); // get data currently in form - - Menu_Options.DropDown.Close(); - InitializeStrings(); - InitializeLanguage(); - Util.TranslateInterface("Form1", curlanguage, Controls, menuStrip1); - populateFields(buff); // put data back in form - } - private void InitializeStrings() - { - string[] lang_val = { "en", "ja", "fr", "it", "de", "es", "ko", "zh" }; - curlanguage = lang_val[CB_MainLanguage.SelectedIndex]; - - string l = curlanguage; - natures = Util.getStringList("Natures", l); - types = Util.getStringList("Types", l); - abilitylist = Util.getStringList("Abilities", l); - movelist = Util.getStringList("Moves", l); - itemlist = Util.getStringList("Items", l); - characteristics = Util.getStringList("Character", l); - specieslist = Util.getStringList("Species", l); - wallpapernames = Util.getStringList("Wallpaper", l); - itempouch = Util.getStringList("ItemPouch", l); - - if ((l != "zh") || (l == "zh" && !init)) // load initial binaries - { - forms = Util.getStringList("Forms", l); - memories = Util.getStringList("Memories", l); - genloc = Util.getStringList("GenLoc", l); - trainingbags = Util.getStringList("TrainingBag", l); - trainingstage = Util.getStringList("SuperTraining", l); - puffs = Util.getStringList("Puff", l); - } - - // Fix Item Names (Duplicate entries) - itemlist[456] += " (OLD)"; // S.S. Ticket - itemlist[463] += " (OLD)"; // Storage Key - itemlist[478] += " (OLD)"; // Basement Key - itemlist[626] += " (2)"; // Xtransceiver - itemlist[629] += " (2)"; // DNA Splicers - itemlist[637] += " (2)"; // Dropped Item - itemlist[707] += " (2)"; // Travel Trunk - itemlist[713] += " (2)"; // Alt Bike - itemlist[714] += " (2)"; // Holo Caster - itemlist[729] += " (1)"; // Meteorite - itemlist[740] += " (2)"; // Contest Costume - itemlist[751] += " (2)"; // Meteorite - itemlist[771] += " (3)"; // Meteorite - itemlist[772] += " (4)"; // Meteorite - - // Get the Egg Name and then replace it with --- for the comboboxes. - eggname = specieslist[0]; - specieslist[0] = "---"; - - // Get the met locations... for all of the games... - metHGSS_00000 = Util.getStringList("hgss_00000", l); - metHGSS_02000 = Util.getStringList("hgss_02000", l); - metHGSS_03000 = Util.getStringList("hgss_03000", l); - - metBW2_00000 = Util.getStringList("bw2_00000", l); - metBW2_30000 = Util.getStringList("bw2_30000", l); - metBW2_40000 = Util.getStringList("bw2_40000", l); - metBW2_60000 = Util.getStringList("bw2_60000", l); - - metXY_00000 = Util.getStringList("xy_00000", l); - metXY_30000 = Util.getStringList("xy_30000", l); - metXY_40000 = Util.getStringList("xy_40000", l); - metXY_60000 = Util.getStringList("xy_60000", l); - - // Fix up some of the Location strings to make them more descriptive: - metHGSS_02000[1] += " (NPC)"; // Anything from an NPC - metHGSS_02000[2] += " ("+eggname+")"; // Egg From Link Trade - metBW2_00000[36] = metBW2_00000[84] + "/" + metBW2_00000[36]; // Cold Storage in BW = PWT in BW2 - - // BW2 Entries from 76 to 105 are for Entralink in BW - for (int i = 76; i < 106; i++) - metBW2_00000[i] = metBW2_00000[i] + "●"; - - // Localize the Poketransfer to the language (30001) - string[] ptransp = { "Poké Transfer", "ポケシフター", "Poké Fret", "Pokétrasporto", "Poképorter", "Pokétransfer", "포케시프터", "ポケシフター" }; - metBW2_30000[1-1] = ptransp[CB_MainLanguage.SelectedIndex]; - metBW2_30000[2-1] += " (NPC)"; // Anything from an NPC - metBW2_30000[3-1] += " (" + eggname + ")"; // Egg From Link Trade - - // Zorua/Zoroark events - metBW2_30000[10-1] = specieslist[251] + " (" + specieslist[570] + " 1)"; // Celebi's Zorua Event - metBW2_30000[11-1] = specieslist[251] + " (" + specieslist[570] + " 2)"; // Celebi's Zorua Event - metBW2_30000[12-1] = specieslist[571] + " (" + "1)"; // Zoroark - metBW2_30000[13-1] = specieslist[571] + " (" + "2)"; // Zoroark - - metBW2_60000[3-1] += " (" + eggname + ")"; // Egg Treasure Hunter/Breeder, whatever... - - metXY_00000[104] += " (X/Y)"; // Victory Road - metXY_00000[298] += " (OR/AS)"; // Victory Road - metXY_30000[0] += " (NPC)"; // Anything from an NPC - metXY_30000[1] += " (" + eggname + ")"; // Egg From Link Trade - - // Set the first entry of a met location to "" (nothing) - // Fix (None) tags - abilitylist[0] = itemlist[0] = movelist[0] = metXY_00000[0] = metBW2_00000[0] = metHGSS_00000[0] = "(" + itemlist[0] + ")"; - - // Force an update to the met locations - origintrack = ""; - - if (init) - updateIVs(null, null); // Prompt an update for the characteristics } // Drag & Drop within Box @@ -4869,45 +4774,9 @@ private void pbBoxSlot_DragEnter(object sender, DragEventArgs e) } private byte[] pkm_from = PKX.encryptArray(new byte[0xE8]); private int pkm_from_offset = 0; - private void L_Save_Click(object sender, EventArgs e) - { - // Get latest SaveDataFiler save location - SDFLoc = Util.GetSDFLocation(); - string path = null; - - if (SDFLoc != null && ModifierKeys != Keys.Control) // if we have a result - path = Path.Combine(SDFLoc, "main"); - else if (File.Exists(Util.NormalizePath(Path.Combine(Util.GetTempFolder(), "root" + Path.DirectorySeparatorChar + "main")))) // else if cgse exists - path = Util.NormalizePath(Path.Combine(Util.GetTempFolder(), "root" + Path.DirectorySeparatorChar + "main")); - - if (path != null) - { - if (Util.Prompt(MessageBoxButtons.YesNo, "Open save file from the following location?", path) == DialogResult.Yes) - openQuick(path); // load save - } - } - - bool unicode = false; - private void Menu_Unicode_Click(object sender, EventArgs e) - { - unicode = (gendersymbols[0] == "♂"); - if (unicode) - { - gendersymbols = new string[] { "M", "F", "-" }; - BTN_Shinytize.Text = "*"; - } - else - { - gendersymbols = new string[] { "♂", "♀", "-" }; - BTN_Shinytize.Text = "☆"; - } - } - - - - - + #endregion } + #region Structs & Classes public class cbItem { diff --git a/PKX/f1-Main.resx b/PKX/f1-Main.resx index ed9546861..3e932927d 100644 --- a/PKX/f1-Main.resx +++ b/PKX/f1-Main.resx @@ -243,279 +243,6 @@ True - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - True @@ -672,60 +399,6 @@ True - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - True @@ -804,51 +477,9 @@ True - - True - - - True - - - True - True - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - True @@ -897,75 +528,9 @@ True - - True - - - True - - - True - - - True - - - True - - - True - True - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - True @@ -1005,18 +570,12 @@ True - - True - True True - - True - True @@ -1026,39 +585,12 @@ True - - True - True True - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - True diff --git a/Properties/Resources.Designer.cs b/Properties/Resources.Designer.cs index 0182656a3..8f6ad9692 100644 --- a/Properties/Resources.Designer.cs +++ b/Properties/Resources.Designer.cs @@ -14798,6 +14798,21 @@ internal class Resources { } } + /// + /// Looks up a localized string similar to 1,JPN (日本語) + ///2,ENG (English) + ///3,FRE (Français) + ///4,ITA (Italiano) + ///5,GER (Deutsch) + ///7,ESP (Español) + ///8,KOR (한국어). + /// + internal static string languages { + get { + return ResourceManager.GetString("languages", resourceCulture); + } + } + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// @@ -14908,6 +14923,20 @@ internal class Resources { } } + /// + /// Looks up a localized string similar to 0,Japan (日本) + ///1,Americas (NA/SA) + ///2,Europe (EU/AU) + ///4,China (中国) + ///5,Korea (한국) + ///6,Taiwan (臺灣). + /// + internal static string regions3ds { + get { + return ResourceManager.GetString("regions3ds", resourceCulture); + } + } + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// @@ -15145,7 +15174,8 @@ internal class Resources { ///006,宮城県,Miyagi,Miyagi,Miyagi,Miyagi,Miyagi,宫城县,미야기 현, ///007,秋田県,Akita,Akita,Akita,Akita,Akita,秋田县,아키타 현, ///008,山形県,Yamagata,Yamagata,Yamagata,Yamagata,Yamagata,山形县,야마가타 현, - ///009,福島県,Fukushima,Fukushima,Fukushima,Fukushima,Fukushima,福岛县,후쿠 [rest of string was truncated]";. + ///009,福島県,Fukushima,Fukushima,Fukushima,Fukushima,Fukushima,福岛县,후쿠시마 현, + ///010 [rest of string was truncated]";. /// internal static string sr_001 { get { @@ -15156,8 +15186,7 @@ internal class Resources { /// /// Looks up a localized string similar to Subregion ID,JP,EN,FR,DE,IT,ES,ZH,KO ///000,—,—,—,—,—,—,—,— - ///001,アンギラ,Anguilla,Anguilla,Anguilla,Anguilla,Anguila,安圭拉,앵귈라, - ///. + ///001,アンギラ,Anguilla,Anguilla,Anguilla,Anguilla,Anguila,安圭拉,앵귈라,. /// internal static string sr_008 { get { @@ -15173,7 +15202,7 @@ internal class Resources { ///004,セント・ジョージ,Saint George,Saint-Georges,Saint George,Saint George,Saint George,圣乔治区,세인트조지, ///005,セント・メアリー,Saint Mary,Sainte-Marie,Saint Mary,Saint Mary,Saint Mary,圣玛丽区,세인트메리, ///006,セント・ポール,Saint Paul,Saint-Paul,Saint Paul,Saint Paul,Saint Paul,圣保罗区,세인트폴, - ///007,セント・ピーター,Saint Peter,Saint-Pierre,Saint Peter,Saint [rest of string was truncated]";. + ///007,セント・ピーター,Saint Peter,Saint-Pierre,Saint Peter,Saint Peter,S [rest of string was truncated]";. /// internal static string sr_009 { get { @@ -15189,7 +15218,7 @@ internal class Resources { ///004,カタマルカ州,Catamarca,Catamarca,Catamarca,Catamarca,Catamarca,卡塔马卡省,카타마르카 주, ///005,チャコ州,Chaco,Chaco,Chaco,Chaco,Chaco,查科省,차코 주, ///006,チュブト州,Chubut,Chubut,Chubut,Chubut,Chubut,丘布特省,추부트 주, - ///007,コルドバ州,Córdoba,Córdoba [rest of string was truncated]";. + ///007,コルドバ州,Córdoba,Córdoba,Córdob [rest of string was truncated]";. /// internal static string sr_010 { get { @@ -15200,8 +15229,7 @@ internal class Resources { /// /// Looks up a localized string similar to Subregion ID,JP,EN,FR,DE,IT,ES,ZH,KO ///000,—,—,—,—,—,—,—,— - ///001,アルバ,Aruba,Aruba,Aruba,Aruba,Aruba,阿鲁巴,아루바, - ///. + ///001,アルバ,Aruba,Aruba,Aruba,Aruba,Aruba,阿鲁巴,아루바,. /// internal static string sr_011 { get { @@ -15212,8 +15240,7 @@ internal class Resources { /// /// Looks up a localized string similar to Subregion ID,JP,EN,FR,DE,IT,ES,ZH,KO ///000,—,—,—,—,—,—,—,— - ///001,バハマ,Bahamas,Bahamas,Bahamas,Bahamas,Bahamas,巴哈马,바하마, - ///. + ///001,バハマ,Bahamas,Bahamas,Bahamas,Bahamas,Bahamas,巴哈马,바하마,. /// internal static string sr_012 { get { @@ -15224,8 +15251,7 @@ internal class Resources { /// /// Looks up a localized string similar to Subregion ID,JP,EN,FR,DE,IT,ES,ZH,KO ///000,—,—,—,—,—,—,—,— - ///001,バルバドス,Barbados,Barbade,Barbados,Barbados,Barbados,巴巴多斯,바베이도스, - ///. + ///001,バルバドス,Barbados,Barbade,Barbados,Barbados,Barbados,巴巴多斯,바베이도스,. /// internal static string sr_013 { get { @@ -15241,8 +15267,7 @@ internal class Resources { ///004,コロサル州,Corozal,Corozal,Corozal,Corozal,Corozal,科罗萨尔区,코로살 주, ///005,オレンジウォーク州,Orange Walk,Orange Walk,Orange Walk,Orange Walk,Orange Walk,橘园区,오렌지워크 주, ///006,スタンクリーク州,Stann Creek,Stann Creek,Stann Creek,Stann Creek,Stann Creek,斯坦港区,스탠크리크 주, - ///007,トレド州,Toledo,Toledo,Toledo,Toledo,Toledo,托莱多区,톨레도 주, - ///. + ///007,トレド州,Toledo,Toledo,Toledo,Toledo,Toledo,托莱多区,톨레도 주,. /// internal static string sr_014 { get { @@ -15260,7 +15285,7 @@ internal class Resources { ///006,オルロ県,Oruro,Oruro,Oruro,Oruro,Oruro,奥鲁罗省,오루로 주, ///007,パンド県,Pando,Pando,Pando,Pando,Pando,潘多省,판도 주, ///008,ポトシ県,Potosí,Potosí,Potosí,Potosí,Potosí,波托西省,포토시 주, - ///009,サンタ・クルス県,Santa Cruz [rest of string was truncated]";. + ///009,サンタ・クルス県,Santa Cruz,Santa Cr [rest of string was truncated]";. /// internal static string sr_015 { get { @@ -15277,7 +15302,8 @@ internal class Resources { ///005,アマパー州,Amapá,Amapá,Amapá,Amapá,Amapá,阿马帕州,아마파 주, ///006,アマゾナス州,Amazonas,Amazonas,Amazonas,Amazonas,Amazonas,亚马孙州,아마조나스 주, ///007,バイア州,Bahia,Bahia,Bahia,Bahia,Bahía,巴伊亚州,바이아 주, - ///008,セアラ州,Ceará,Ceará,Ceará,Ceará,Ceará,塞阿拉州, [rest of string was truncated]";. + ///008,セアラ州,Ceará,Ceará,Ceará,Ceará,Ceará,塞阿拉州,세아라 주, + ///0 [rest of string was truncated]";. /// internal static string sr_016 { get { @@ -15288,8 +15314,7 @@ internal class Resources { /// /// Looks up a localized string similar to Subregion ID,JP,EN,FR,DE,IT,ES,ZH,KO ///000,—,—,—,—,—,—,—,— - ///001,英領ヴァージン諸島,British Virgin Islands,Îles Vierges britanniques,Britische Jungferninseln,Isole Vergini Britanniche,Islas Vírgenes Británicas,英属维尔京群岛,영국령 버진아일랜드, - ///. + ///001,英領ヴァージン諸島,British Virgin Islands,Îles Vierges britanniques,Britische Jungferninseln,Isole Vergini Britanniche,Islas Vírgenes Británicas,英属维尔京群岛,영국령 버진아일랜드,. /// internal static string sr_017 { get { @@ -15305,7 +15330,7 @@ internal class Resources { ///004,ブリティッシュ・コロンビア州,British Columbia,Colombie-Britannique,Britisch-Kolumbien,Columbia Britannica,Columbia Británica,不列颠哥伦比亚省,브리티시컬럼비아 주, ///005,マニトバ州,Manitoba,Manitoba,Manitoba,Manitoba,Manitoba,马尼托巴省,매니토바 주, ///006,ニュー・ブランズウィック州,New Brunswick,Nouveau-Brunswick,Neubraunschweig,Nuovo Brunswick,Nuevo Brunswick,新不伦瑞克省,뉴브런즈윅 주, - ///00 [rest of string was truncated]";. + ///007,ニューファ [rest of string was truncated]";. /// internal static string sr_018 { get { @@ -15316,8 +15341,7 @@ internal class Resources { /// /// Looks up a localized string similar to Subregion ID,JP,EN,FR,DE,IT,ES,ZH,KO ///000,—,—,—,—,—,—,—,— - ///001,ケイマン諸島,Cayman Islands,Îles Caïmans,Kaimaninseln,Isole Cayman,Islas Caimán,开曼群岛,케이맨 제도, - ///. + ///001,ケイマン諸島,Cayman Islands,Îles Caïmans,Kaimaninseln,Isole Cayman,Islas Caimán,开曼群岛,케이맨 제도,. /// internal static string sr_019 { get { @@ -15330,7 +15354,7 @@ internal class Resources { ///000,—,—,—,—,—,—,—,— ///002,レジョン・メトロポリタナ州,Región Metropolitana,Région Métropolitaine de Santiago,Región Metropolitana,Regione Metropolitana di Santiago,Región Metropolitana,圣地亚哥首都区,산티아고 수도주, ///003,バルパライソ州,Valparaíso,Valparaiso,Valparaíso (Region V),Valparaíso,Valparaíso,瓦尔帕莱索大区,발파라이소 주, - ///004,アイセン・デル・G・カルロス・イバニェス・デル・カンポ州,Aisén del General Carlos Ibáñez del Campo,Aisén del General Carlos Ibáñez del Campo,Aisén (Region XI),Aisén del General Carlos Ibáñez del Campo,Aisén del Ge [rest of string was truncated]";. + ///004,アイセン・デル・G・カルロス・イバニェス・デル・カンポ州,Aisén del General Carlos Ibáñez del Campo,Aisén del General Carlos Ibáñez del Campo,Aisén (Region XI),Aisén del General Carlos Ibáñez del Campo,Aisén del Genera [rest of string was truncated]";. /// internal static string sr_020 { get { @@ -15346,7 +15370,7 @@ internal class Resources { ///004,アマソナス県,Amazonas,Amazone,Amazonas,Amazonas,Amazonas,亚马孙省,아마소나스 주, ///005,アンティオキア県,Antioquia,Antioquia,Antioquia,Antioquia,Antioquia,安提奥基亚省,안티오키아 주, ///006,アラウカ県,Arauca,Arauca,Arauca,Arauca,Arauca,阿劳卡省,아라우카 주, - ///007,アトラン [rest of string was truncated]";. + ///007,アトランティコ県,At [rest of string was truncated]";. /// internal static string sr_021 { get { @@ -15363,7 +15387,7 @@ internal class Resources { ///005,グアナカステ州,Guanacaste,Guanacaste,Guanacaste,Guanacaste,Guanacaste,瓜纳卡斯特省,과나카스테 주, ///006,エレディア州,Heredia,Heredia,Heredia,Heredia,Heredia,埃雷迪亚省,에레디아 주, ///007,リモン州,Limón,Limón,Limón,Limón,Limón,利蒙省,리몬 주, - ///008,プンタレナス州,Puntarenas,Puntarenas,Puntarenas,Pu [rest of string was truncated]";. + ///008,プンタレナス州,Puntarenas,Puntarenas,Puntarenas,Puntarenas [rest of string was truncated]";. /// internal static string sr_022 { get { @@ -15374,8 +15398,7 @@ internal class Resources { /// /// Looks up a localized string similar to Subregion ID,JP,EN,FR,DE,IT,ES,ZH,KO ///000,—,—,—,—,—,—,—,— - ///001,ドミニカ国,Dominica,Dominique,Dominica,Dominica,Dominica,多米尼克,도미니카 연방, - ///. + ///001,ドミニカ国,Dominica,Dominique,Dominica,Dominica,Dominica,多米尼克,도미니카 연방,. /// internal static string sr_023 { get { @@ -15392,7 +15415,7 @@ internal class Resources { ///005,バラオナ,Barahona,Barahona,Barahona,Barahona,Barahona,巴拉奥纳省,바라오나, ///006,ダハボン,Dajabón,Dajabón,Dajabón,Dajabón,Dajabón,达哈朋省,다하본, ///007,ドゥアルテ,Duarte,Duarte,Duarte,Duarte,Duarte,杜华德省,두아르테, - ///008,エスパイジャト,Espaillat,Espaillat,Espa [rest of string was truncated]";. + ///008,エスパイジャト,Espaillat,Espaillat,Espaillat,Es [rest of string was truncated]";. /// internal static string sr_024 { get { @@ -15410,7 +15433,7 @@ internal class Resources { ///006,カニャル,Cañar,Cañar,Cañar,Cañar,Cañar,卡尼亚尔省,카냐르, ///007,カルチ,Carchi,Carchi,Carchi,Carchi,Carchi,卡尔奇省,카르치, ///008,チンボラソ,Chimborazo,Chimborazo,Chimborazo,Chimborazo,Chimborazo,钦博拉索省,침보라소, - ///009, [rest of string was truncated]";. + ///009,コトパクシ,Cot [rest of string was truncated]";. /// internal static string sr_025 { get { @@ -15426,7 +15449,7 @@ internal class Resources { ///004,カバニャス県,Cabañas,Cabañas,Cabañas,Cabañas,Cabañas,卡瓦尼亚斯省,카바냐스 주, ///005,チャラテナンゴ県,Chalatenango,Chalatenango,Chalatenango,Chalatenango,Chalatenango,查拉特南戈省,찰라테낭고 주, ///006,クスカトラン県,Cuscatlán,Cuscatlán,Cuscatlán,Cuscatlán,Cuscatlán,库斯卡特兰省,쿠스카틀란 주, - ///007,ラ・リベルター県,La Libertad,La Liber [rest of string was truncated]";. + ///007,ラ・リベルター県,La Libertad,La Libertad,La [rest of string was truncated]";. /// internal static string sr_026 { get { @@ -15437,8 +15460,7 @@ internal class Resources { /// /// Looks up a localized string similar to Subregion ID,JP,EN,FR,DE,IT,ES,ZH,KO ///000,—,—,—,—,—,—,—,— - ///001,フランス領ギアナ,French Guiana,Guyane,Französisch-Guyana,Guyana Francese,Guayana Francesa,法属圭亚那,프랑스령 기아나, - ///. + ///001,フランス領ギアナ,French Guiana,Guyane,Französisch-Guyana,Guyana Francese,Guayana Francesa,法属圭亚那,프랑스령 기아나,. /// internal static string sr_027 { get { @@ -15449,8 +15471,7 @@ internal class Resources { /// /// Looks up a localized string similar to Subregion ID,JP,EN,FR,DE,IT,ES,ZH,KO ///000,—,—,—,—,—,—,—,— - ///001,グレナダ,Grenada,Grenade,Grenada,Grenada,Granada,格林纳达,그레나다, - ///. + ///001,グレナダ,Grenada,Grenade,Grenada,Grenada,Granada,格林纳达,그레나다,. /// internal static string sr_028 { get { @@ -15461,8 +15482,7 @@ internal class Resources { /// /// Looks up a localized string similar to Subregion ID,JP,EN,FR,DE,IT,ES,ZH,KO ///000,—,—,—,—,—,—,—,— - ///001,グアドループ,Guadeloupe,Guadeloupe,Guadeloupe,Guadalupa,Guadalupe,瓜德罗普,과들루프, - ///. + ///001,グアドループ,Guadeloupe,Guadeloupe,Guadeloupe,Guadalupa,Guadalupe,瓜德罗普,과들루프,. /// internal static string sr_029 { get { @@ -15478,7 +15498,7 @@ internal class Resources { ///004,バハ・べラパス県,Baja Verapaz,Baja Verapaz,Baja Verapaz,Baja Verapaz,Baja Verapaz,下韦拉帕斯省,바하베라파스 주, ///005,チマルテナンゴ県,Chimaltenango,Chimaltenango,Chimaltenango,Chimaltenango,Chimaltenango,奇马尔特南戈省,치말테낭고 주, ///006,チキムラ県,Chiquimula,Chiquimula,Chiquimula,Chiquimula,Chiquimula,奇基穆拉省,치키물라 주, - ///007 [rest of string was truncated]";. + ///007,エル・プログ [rest of string was truncated]";. /// internal static string sr_030 { get { @@ -15492,7 +15512,7 @@ internal class Resources { ///002,デメララ・マハイカ州,Demerara-Mahaica,Demerara-Mahaica,Demerara-Mahaica,Demerara-Mahaica,Demerara-Mahaica,德梅拉拉-马海卡区,데메라라-마하이카 주, ///003,バリマ・ワイニ州,Barima-Waini,Barima-Waini,Barima-Waini,Barima-Waini,Barima-Waini,巴里马-瓦伊尼区,바리마-와이니 주, ///004,クユニ・マザルニ州,Cuyuni-Mazaruni,Cuyuni-Mazaruni,Cuyuni-Mazaruni,Cuyuni-Mazaruni,Cuyuni-Mazaruni,库尤尼-马扎鲁尼区,쿠유니-마자루니 주, - ///005,東ベルビセ・コレンティネ州,East Berbice-Corentyne,Berbice Oriental-Courantyne,East Berbice-Corentyne,Berbice Orientale-Cor [rest of string was truncated]";. + ///005,東ベルビセ・コレンティネ州,East Berbice-Corentyne,Berbice Oriental-Courantyne,East Berbice-Corentyne,Berbice Orientale-Corentyn [rest of string was truncated]";. /// internal static string sr_031 { get { @@ -15510,7 +15530,7 @@ internal class Resources { ///006,湾岸県,Grand'Anse,Grande-Anse,Grand'Anse,Grande Anse,Grand'Anse,大湾省,그랑당스, ///007,北県,Nord,Nord,Nord,Nord,Norte,北部省,북부, ///008,北東県,Nord-Est,Nord-Est,Nord-Est,Nord-Est,Noreste,东北省,북동부, - ///009,南県,Sud,Sud,Sud [rest of string was truncated]";. + ///009,南県,Sud,Sud,Sud,Sud,Sur, [rest of string was truncated]";. /// internal static string sr_032 { get { @@ -15527,7 +15547,7 @@ internal class Resources { ///005,コロン,Colón,Colón,Colón,Colón,Colón,科隆省,콜론, ///006,コマヤグア,Comayagua,Comayagua,Comayagua,Comayagua,Comayagua,科马亚瓜省,코마야과, ///007,コパン,Copán,Copán,Copán,Copán,Copán,科潘省,코판, - ///008,コルテス [rest of string was truncated]";. + ///008,コルテス,Cortés, [rest of string was truncated]";. /// internal static string sr_033 { get { @@ -15543,7 +15563,7 @@ internal class Resources { ///004,ハノーバー,Hanover,Hanover,Hanover,Hanover,Hanover,汉诺威区,해노버, ///005,マンチェスター,Manchester,Manchester,Manchester,Manchester,Manchester,曼彻斯特区,맨체스터, ///006,ポートランド,Portland,Portland,Portland,Portland,Portland,波特兰区,포틀랜드, - ///007,セント・アンドリュー,Saint Andrew,Saint Andrew,Saint Andrew,Saint Andrew,Saint Andr [rest of string was truncated]";. + ///007,セント・アンドリュー,Saint Andrew,Saint Andrew,Saint Andrew,Saint Andrew,Saint Andrew,圣安德鲁 [rest of string was truncated]";. /// internal static string sr_034 { get { @@ -15554,8 +15574,7 @@ internal class Resources { /// /// Looks up a localized string similar to Subregion ID,JP,EN,FR,DE,IT,ES,ZH,KO ///000,—,—,—,—,—,—,—,— - ///001,マルティニーク,Martinique,Martinique,Martinique,Martinica,Martinica,马提尼克,마르티니크, - ///. + ///001,マルティニーク,Martinique,Martinique,Martinique,Martinica,Martinica,马提尼克,마르티니크,. /// internal static string sr_035 { get { @@ -15569,7 +15588,7 @@ internal class Resources { ///002,ディストリト・フェデラル連邦区,Distrito Federal,District Fédéral,México D.F.,Distretto Federale,Distrito Federal,联邦区,멕시코 연방구, ///003,アグアスカリエンテス州,Aguascalientes,Aguascalientes,Aguascalientes,Aguascalientes,Aguascalientes,阿瓜斯卡连特斯州,아과스칼리엔테스 주, ///004,バハ・カリフォルニア州,Baja California,Basse-Californie,Niederkalifornien,Bassa California,Baja California,下加里福尼亚州,바하칼리포르니아 주, - ///005,バハ・カリフォルニア・スル州,Baja California Sur,Basse-Californie du Sud,Süd-Niederkalifornien,Bassa California d [rest of string was truncated]";. + ///005,バハ・カリフォルニア・スル州,Baja California Sur,Basse-Californie du Sud,Süd-Niederkalifornien,Bassa California del Su [rest of string was truncated]";. /// internal static string sr_036 { get { @@ -15580,8 +15599,7 @@ internal class Resources { /// /// Looks up a localized string similar to Subregion ID,JP,EN,FR,DE,IT,ES,ZH,KO ///000,—,—,—,—,—,—,—,— - ///001,モントセラト,Montserrat,Montserrat,Montserrat,Montserrat,Montserrat,蒙特塞拉特,몬트세랫, - ///. + ///001,モントセラト,Montserrat,Montserrat,Montserrat,Montserrat,Montserrat,蒙特塞拉特,몬트세랫,. /// internal static string sr_037 { get { @@ -15592,8 +15610,7 @@ internal class Resources { /// /// Looks up a localized string similar to Subregion ID,JP,EN,FR,DE,IT,ES,ZH,KO ///000,—,—,—,—,—,—,—,— - ///001,オランダ領アンティル,Netherlands Antilles,Antilles néerlandaises,Niederländische Antillen,Antille Olandesi,Antillas Neerlandesas,荷属安的列斯,네덜란드령 앤틸리스, - ///. + ///001,オランダ領アンティル,Netherlands Antilles,Antilles néerlandaises,Niederländische Antillen,Antille Olandesi,Antillas Neerlandesas,荷属安的列斯,네덜란드령 앤틸리스,. /// internal static string sr_038 { get { @@ -15611,7 +15628,7 @@ internal class Resources { ///006,チョンタレス,Chontales,Chontales,Chontales,Chontales,Chontales,琼塔莱斯省,촌탈레스, ///007,エステリ,Estelí,Estelí,Estelí,Estelí,Estelí,埃斯特利省,에스텔리, ///008,グラナダ,Granada,Granada,Granada,Granada,Granada,格拉纳达省,그라나다, - ///009,ヒノテガ,Jinotega,J [rest of string was truncated]";. + ///009,ヒノテガ,Jinotega,Jinotega,J [rest of string was truncated]";. /// internal static string sr_039 { get { @@ -15629,7 +15646,7 @@ internal class Resources { ///006,コロン,Colón,Colón,Colón,Colón,Colón,科隆省,콜론, ///007,ダリエン,Darién,Darién,Darién,Darién,Darién,达连省,다리엔, ///008,エレーラ,Herrera,Herrera,Herrera,Herrera,Herrera,埃雷拉省,에레라, - ///009,ロス・サントス,Los [rest of string was truncated]";. + ///009,ロス・サントス,Los Santos,Lo [rest of string was truncated]";. /// internal static string sr_040 { get { @@ -15646,7 +15663,7 @@ internal class Resources { ///005,カアグアスー県,Caaguazú,Caaguazú,Caaguazú,Caaguazú,Caaguazú,卡瓜苏省,카아과수 주, ///006,カアサパ県,Caazapá,Caazapá,Caazapá,Caazapá,Caazapá,卡萨帕省,카아사파 주, ///007,コンセプシオン県,Concepción,Concepción,Concepción,Concepción,Concepción,康塞普西翁省,콘셉시온 주, - ///008,コルディリェラ県,Cord [rest of string was truncated]";. + ///008,コルディリェラ県,Cordillera,C [rest of string was truncated]";. /// internal static string sr_041 { get { @@ -15663,7 +15680,7 @@ internal class Resources { ///005,アプリマック,Apurímac,Apurímac,Apurímac,Apurímac,Apurímac,阿普里马克省,아푸리막, ///006,アレキパ,Arequipa,Arequipa,Arequipa,Arequipa,Arequipa,阿雷基帕省,아레키파, ///007,アヤクーチョ,Ayacucho,Ayacucho,Ayacucho,Ayacucho,Ayacucho,阿亚库乔省,아야쿠초, - ///008,カハマルカ,Cajamarca,Cajamarca,Cajamarca,Cajamarca,Cajama [rest of string was truncated]";. + ///008,カハマルカ,Cajamarca,Cajamarca,Cajamarca,Cajamarca,Cajamarca,卡哈马卡 [rest of string was truncated]";. /// internal static string sr_042 { get { @@ -15676,7 +15693,7 @@ internal class Resources { ///000,—,—,—,—,—,—,—,— ///002,セント・ジョージ・バセテール,Saint George Basseterre,Saint George Basseterre,Saint George Basseterre,Saint George Basseterre,Saint George Basseterre,圣乔治巴斯特尔区,세인트조지바스테르, ///003,クライスト・チャーチ・ニコラタウン,Christ Church Nichola Town,Christ Church Nichola Town,Christ Church Nichola Town,Christ Church Nichola Town,Christ Church Nichola Town,克赖斯特彻奇尼古拉镇区,크라이스트처치니콜라타운, - ///004,セント・アン・サンディ・ポイント,Saint Anne Sandy Point,Saint Anne Sandy Point,Saint Anne Sandy Point,Saint Anne Sandy Po [rest of string was truncated]";. + ///004,セント・アン・サンディ・ポイント,Saint Anne Sandy Point,Saint Anne Sandy Point,Saint Anne Sandy Point,Saint Anne Sandy Point, [rest of string was truncated]";. /// internal static string sr_043 { get { @@ -15687,8 +15704,7 @@ internal class Resources { /// /// Looks up a localized string similar to Subregion ID,JP,EN,FR,DE,IT,ES,ZH,KO ///000,—,—,—,—,—,—,—,— - ///001,セントルシア,St. Lucia,Sainte-Lucie,St. Lucia,Santa Lucia,Santa Lucía,圣卢西亚,세인트루시아, - ///. + ///001,セントルシア,St. Lucia,Sainte-Lucie,St. Lucia,Santa Lucia,Santa Lucía,圣卢西亚,세인트루시아,. /// internal static string sr_044 { get { @@ -15699,8 +15715,7 @@ internal class Resources { /// /// Looks up a localized string similar to Subregion ID,JP,EN,FR,DE,IT,ES,ZH,KO ///000,—,—,—,—,—,—,—,— - ///001,セントビンセント・グレナディーン,St. Vincent and the Grenadines,Saint-Vincent-et-les-Grenadines,St. Vincent und die Grenadinen,Saint Vincent e Grenadine,San Vicente y las Granadinas,圣文森特和格林纳丁斯,세인트빈센트 그레나딘, - ///. + ///001,セントビンセント・グレナディーン,St. Vincent and the Grenadines,Saint-Vincent-et-les-Grenadines,St. Vincent und die Grenadinen,Saint Vincent e Grenadine,San Vicente y las Granadinas,圣文森特和格林纳丁斯,세인트빈센트 그레나딘,. /// internal static string sr_045 { get { @@ -15717,7 +15732,7 @@ internal class Resources { ///005,コロニー,Coronie,Coronie,Coronie,Coronie,Coronie,科罗尼区,코로니, ///006,マロウィネ,Marowijne,Marowijne,Marowijne,Marowijne,Marowijne,马罗韦讷区,마로베이너, ///007,ニッケリー,Nickerie,Nickerie,Nickerie,Nickerie,Nickerie,尼克里区,니케리, - ///008,パラ,Para,P [rest of string was truncated]";. + ///008,パラ,Para,Para,Para [rest of string was truncated]";. /// internal static string sr_046 { get { @@ -15734,7 +15749,7 @@ internal class Resources { ///005,マジャロ州,Mayaro,Mayaro,Mayaro,Mayaro,Mayaro,马亚罗郡,마야로 주, ///006,ナリバ州,Nariva,Nariva,Nariva,Nariva,Nariva,纳里瓦郡,나리바 주, ///007,セント・アンドリュー州,Saint Andrew,Saint Andrew,Saint Andrew,Saint Andrew,Saint Andrew,圣安德鲁郡,세인트앤드루 주, - ///008,セント・デビッド州,Saint David,Saint [rest of string was truncated]";. + ///008,セント・デビッド州,Saint David,Saint David,S [rest of string was truncated]";. /// internal static string sr_047 { get { @@ -15745,8 +15760,7 @@ internal class Resources { /// /// Looks up a localized string similar to Subregion ID,JP,EN,FR,DE,IT,ES,ZH,KO ///000,—,—,—,—,—,—,—,— - ///001,タークス・カイコス諸島,Turks and Caicos Islands,Îles Turques-et-Caïques,Turks- und Caicosinseln,Isole Turks e Caicos,Islas Turcas y Caicos,特克斯和凯科斯群岛,터크스 케이커스 제도, - ///. + ///001,タークス・カイコス諸島,Turks and Caicos Islands,Îles Turques-et-Caïques,Turks- und Caicosinseln,Isole Turks e Caicos,Islas Turcas y Caicos,特克斯和凯科斯群岛,터크스 케이커스 제도,. /// internal static string sr_048 { get { @@ -15762,7 +15776,7 @@ internal class Resources { ///004,アラバマ州,Alabama,Alabama,Alabama,Alabama,Alabama,亚拉巴马州,앨라배마 주, ///005,アーカンソー州,Arkansas,Arkansas,Arkansas,Arkansas,Arkansas,阿肯色州,아칸소 주, ///006,アリゾナ州,Arizona,Arizona,Arizona,Arizona,Arizona,亚利桑那州,애리조나 주, - ///007,カリフォルニア州,California,Californie,Kaliforn [rest of string was truncated]";. + ///007,カリフォルニア州,California,Californie,Kalifornien,Cal [rest of string was truncated]";. /// internal static string sr_049 { get { @@ -15779,7 +15793,7 @@ internal class Resources { ///005,セロ・ラルゴ,Cerro Largo,Cerro Largo,Cerro Largo,Cerro Largo,Cerro Largo,塞罗拉尔戈省,세로라르고, ///006,コロニア,Colonia,Colonia,Colonia,Colonia,Colonia,科洛尼亚省,콜로니아, ///007,ドゥラスノ,Durazno,Durazno,Durazno,Durazno,Durazno,杜拉斯诺省,두라스노, - ///008,フロレス,Flores,Flore [rest of string was truncated]";. + ///008,フロレス,Flores,Flores,Flores [rest of string was truncated]";. /// internal static string sr_050 { get { @@ -15790,8 +15804,7 @@ internal class Resources { /// /// Looks up a localized string similar to Subregion ID,JP,EN,FR,DE,IT,ES,ZH,KO ///000,—,—,—,—,—,—,—,— - ///001,米領バージン諸島,US Virgin Islands,Îles Vierges américaines,Amerikanische Jungferninseln,Isole Vergini Statunitensi,Islas Vírgenes de los EE. UU.,美属维尔京群岛,미국령 버진아일랜드, - ///. + ///001,米領バージン諸島,US Virgin Islands,Îles Vierges américaines,Amerikanische Jungferninseln,Isole Vergini Statunitensi,Islas Vírgenes de los EE. UU.,美属维尔京群岛,미국령 버진아일랜드,. /// internal static string sr_051 { get { @@ -15808,7 +15821,7 @@ internal class Resources { ///005,アプレ,Apure,Apure,Apure,Apure,Apure,阿普雷州,아푸레, ///006,アラグア,Aragua,Aragua,Aragua,Aragua,Aragua,阿拉瓜州,아라과, ///007,バリナス,Barinas,Barinas,Barinas,Barinas,Barinas,巴里纳斯州,바리나스, - ///008,ボリーバル,Bolívar,Bolív [rest of string was truncated]";. + ///008,ボリーバル,Bolívar,Bolívar,Bolív [rest of string was truncated]";. /// internal static string sr_052 { get { @@ -15826,7 +15839,7 @@ internal class Resources { ///006,エルバサン州,Elbasan,Elbasan,Elbasan,Elbasan,Elbasan,爱尔巴桑州,엘바산 주, ///007,フィエル州,Fier,Fier,Fier,Fier,Fier,费里州,피에르 주, ///008,ギロカストラ州,Gjirokastër,Gjirokastër,Gjirokastra,Argirocastro,Gjirokastra,吉诺卡斯特州,지로카스터르 주, - ///009,コルチャ州,Korçë,Korçë,Korça, [rest of string was truncated]";. + ///009,コルチャ州,Korçë,Korçë,Korça,Coriza,Ko [rest of string was truncated]";. /// internal static string sr_064 { get { @@ -15839,7 +15852,7 @@ internal class Resources { ///000,—,—,—,—,—,—,—,— ///002,オーストラリア首都特別地域,Australian Capital Territory,Territoire de la capitale australienne,Australisches Hauptstadtterritorium,Territorio della Capitale Australiana,Territorio de la Capital Australiana,澳大利亚首都直辖区,오스트레일리아캐피털테리토리, ///003,ニューサウスウェールズ州,New South Wales,Nouvelle-Galles du Sud,Neusüdwales,Nuovo Galles del Sud,Nueva Gales del Sur,新南威尔士州,뉴사우스웨일스 주, - ///004,ノーザンテリトリー,Northern Territory,Territoire du Nord,Nördliches Territorium,Territorio del Nord,Territ [rest of string was truncated]";. + ///004,ノーザンテリトリー,Northern Territory,Territoire du Nord,Nördliches Territorium,Territorio del Nord,Territorio [rest of string was truncated]";. /// internal static string sr_065 { get { @@ -15855,7 +15868,7 @@ internal class Resources { ///004,ケルンテン州,Carinthia,Carinthie,Kärnten,Carinzia,Carintia,克恩顿州,케른텐 주, ///005,ニーダー・エスターライヒ州,Lower Austria,Basse-Autriche,Niederösterreich,Bassa Austria,Baja Austria,下奥地利州,니더외스터라이히 주, ///006,オーバー・エスターライヒ州,Upper Austria,Haute-Autriche,Oberösterreich,Alta Austria,Alta Austria,上奥地利州,오버외스터라이히 주, - ///007,ザルツブルク州,Salzburg,Salzbourg,S [rest of string was truncated]";. + ///007,ザルツブルク州,Salzburg,Salzbourg,Salzburg [rest of string was truncated]";. /// internal static string sr_066 { get { @@ -15868,8 +15881,7 @@ internal class Resources { ///000,—,—,—,—,—,—,—,— ///002,ブリュッセル首都地域圏,Brussels Region,Région de Bruxelles-Capitale,Region Brüssel-Hauptstadt,Regione di Bruxelles,Región de Bruselas-Capital,布鲁塞尔首都大区,브뤼셀 지역, ///003,フランデレン地域圏,Flanders,Région flamande,Flandern,Fiandre,Región de Flandes,佛兰德大区,플랑드르 지역, - ///004,ワロン地域圏,Wallonia,Région wallonne,Wallonien,Vallonia,Región de Valonia,瓦隆大区,왈롱 지역, - ///. + ///004,ワロン地域圏,Wallonia,Région wallonne,Wallonien,Vallonia,Región de Valonia,瓦隆大区,왈롱 지역,. /// internal static string sr_067 { get { @@ -15882,7 +15894,7 @@ internal class Resources { ///000,—,—,—,—,—,—,—,— ///002,ボスニア・ヘルツェゴビナ連邦,Federation of Bosnia and Herzegovina,Fédération de Bosnie-Herzégovine,Föderation Bosnien und Herzegowina,Federazione di Bosnia-Erzegovina,Federación de Bosnia-Herzegovina,波黑联邦,보스니아헤르체고비나 연방, ///003,セルビア人共和国,Republika Srpska,République serbe de Bosnie,Serbische Republik,Repubblica Serba di Bosnia-Erzegovina,República Srpska,塞族共和国,스릅스카 공화국, - ///004,ブルチュコ,Brčko District,Brčko (district),Brčko-Distrikt,Distretto di Brčko,Distrito de Brčko, [rest of string was truncated]";. + ///004,ブルチュコ,Brčko District,Brčko (district),Brčko-Distrikt,Distretto di Brčko,Distrito de Brčko,布尔奇科 [rest of string was truncated]";. /// internal static string sr_068 { get { @@ -15893,8 +15905,7 @@ internal class Resources { /// /// Looks up a localized string similar to Subregion ID,JP,EN,FR,DE,IT,ES,ZH,KO ///000,—,—,—,—,—,—,—,— - ///001,ボツワナ,Botswana,Botswana,Botsuana,Botswana,Botsuana,博茨瓦纳,보츠와나, - ///. + ///001,ボツワナ,Botswana,Botswana,Botsuana,Botswana,Botsuana,博茨瓦纳,보츠와나,. /// internal static string sr_069 { get { @@ -15911,7 +15922,7 @@ internal class Resources { ///005,プレベン州,Pleven,Pleven,Plewen,Pleven,Pleven,普列文州,플레벤 주, ///006,ビディン州,Vidin,Vidin,Widin,Vidin,Vidin,维丁州,비딘 주, ///007,バルナ州,Varna,Varna,Warna,Varna,Varna,瓦尔纳州,바르나 주, - ///008,ブルガス州, [rest of string was truncated]";. + ///008,ブルガス州,Burgas,B [rest of string was truncated]";. /// internal static string sr_070 { get { @@ -15925,7 +15936,7 @@ internal class Resources { ///006,ザグレブ直轄市,Zagreb,Zagreb (ville),Zagreb (Stadt),Zagabria,Ciudad de Zagreb,萨格勒布市,자그레브, ///007,ビェロヴァル=ビロゴラ郡,Bjelovar-Bilogora County,Bjelovar-Bilogora,Bjelovar-Bilogora,Regione di Bjelovar e della Bilogora,Condado de Bjelovar-Bilogora,别洛瓦尔-比洛戈拉县,벨로바르-빌로고라 군, ///008,ブロド=ポサヴィナ郡,Brod-Posavina County,Brod-Posavina,Brod-Posavina,Regione di Brod e della Posavina,Condado de Brod-Posavina,布罗德-波萨维纳县,브로드-포사비나 군, - ///009,ドゥブロヴニク=ネレトヴァ郡,Dubrovnik-Neretva County,Dubrovn [rest of string was truncated]";. + ///009,ドゥブロヴニク=ネレトヴァ郡,Dubrovnik-Neretva County,Dubrovnik-Ne [rest of string was truncated]";. /// internal static string sr_071 { get { @@ -15936,8 +15947,7 @@ internal class Resources { /// /// Looks up a localized string similar to Subregion ID,JP,EN,FR,DE,IT,ES,ZH,KO ///000,—,—,—,—,—,—,—,— - ///001,キプロス,Cyprus,Chypre,Zypern,Cipro,Chipre,塞浦路斯,키프로스, - ///. + ///001,キプロス,Cyprus,Chypre,Zypern,Cipro,Chipre,塞浦路斯,키프로스,. /// internal static string sr_072 { get { @@ -15952,7 +15962,7 @@ internal class Resources { ///003,中部ボヘミア地方,Central Bohemian Region,Bohême centrale,Mittelböhmische Region,Boemia Centrale,Región de Bohemia Central,中捷克州,스트르제도체스키 지방, ///004,南ボヘミア地方,South Bohemian Region,Bohême du Sud,Südböhmische Region,Boemia Meridionale,Región de Bohemia Meridional,南捷克州,이호체스키 지방, ///005,プルゼニ地方,Plzeň Region,Région de Pilsen,Region Pilsen,Regione di Plseň,Región de Pilsen,比尔森州,플젠 지방, - ///006,カールスバート地方,Karlovy Vary Regio [rest of string was truncated]";. + ///006,カールスバート地方,Karlovy Vary Region,Régi [rest of string was truncated]";. /// internal static string sr_073 { get { @@ -15967,7 +15977,7 @@ internal class Resources { ///019,デンマーク首都地域,Capital Region of Denmark,Hovedstaden,Hauptstadtregion,Hovedstaden,Hovedstaden,首都大区,덴마크 수도권 지역, ///020,中央ユラン地域,Central Denmark Region,Jutland-Central,Mitteljütland,Jutland Centrale,Jutlandia Central,中日德兰大区,중부 덴마크 지역, ///021,北ユラン地域,North Denmark Region,Jutland-du-Nord,Nordjütland,Jutland Settentrionale,Jutlandia Septentrional,北日德兰大区,북부 덴마크 지역, - ///022,シェラン地域,Region Zea [rest of string was truncated]";. + ///022,シェラン地域,Region Zealand,Z [rest of string was truncated]";. /// internal static string sr_074 { get { @@ -15978,8 +15988,7 @@ internal class Resources { /// /// Looks up a localized string similar to Subregion ID,JP,EN,FR,DE,IT,ES,ZH,KO ///000,—,—,—,—,—,—,—,— - ///001,エストニア,Estonia,Estonie,Estland,Estonia,Estonia,爱沙尼亚,에스토니아, - ///. + ///001,エストニア,Estonia,Estonie,Estland,Estonia,Estonia,爱沙尼亚,에스토니아,. /// internal static string sr_075 { get { @@ -15994,7 +16003,7 @@ internal class Resources { ///009,ラッピ州,Lappi / Lapland,Laponie,Lappland,Lapponia,Laponia finlandesa,拉普兰省,라피 주, ///010,北ポフヤンマー県,Pohjois-Pohjanmaa / Norra Österbotten,Ostrobotnie du Nord,Nordösterbotten,Ostrobotnia Settentrionale,Ostrobothnia del Norte,北博滕区,북오스트로보트니아 주, ///011,カイヌー県,Kainuu / Kajanaland,Kainuu,Kainuu,Kainuu,Kainuu,凯努区,카이누 주, - ///012,北カレリア県,Pohjois-Karjala / Norra Karelen,Carélie du Nord,Nordkarelien,C [rest of string was truncated]";. + ///012,北カレリア県,Pohjois-Karjala / Norra Karelen,Carélie du Nord,Nordkarelien,Carelia [rest of string was truncated]";. /// internal static string sr_076 { get { @@ -16010,7 +16019,7 @@ internal class Resources { ///004,アキテーヌ,Aquitaine,Aquitaine,Aquitanien,Aquitania,Aquitania,阿基坦大区,아키텐, ///005,オーベルニュ,Auvergne,Auvergne,Auvergne,Alvernia,Auvernia,奥弗涅大区,오베르뉴, ///006,バス・ノルマンディ,Lower Normandy,Basse-Normandie,Basse-Normandie,Bassa Normandia,Baja Normandía,下诺曼底大区,바스노르망디, - ///007,ブルゴーニュ,Burgundy,Bourgogne,Burgund,Borg [rest of string was truncated]";. + ///007,ブルゴーニュ,Burgundy,Bourgogne,Burgund,Borgogna,Bo [rest of string was truncated]";. /// internal static string sr_077 { get { @@ -16027,7 +16036,7 @@ internal class Resources { ///005,バイエルン州,Bavaria,Bavière,Bayern,Baviera,Baviera,巴伐利亚州,바이에른 주, ///006,ブランデンブルク州,Brandenburg,Brandebourg,Brandenburg,Brandeburgo,Brandeburgo,勃兰登堡州,브란덴부르크 주, ///007,ブレーメン,Bremen,Brême,Bremen,Brema,Bremen,不来梅市,브레멘 주, - ///008,ハンブ [rest of string was truncated]";. + ///008,ハンブルク,Hambu [rest of string was truncated]";. /// internal static string sr_078 { get { @@ -16042,7 +16051,7 @@ internal class Resources { ///003,中央ギリシャ,Central Greece,Grèce-Centrale,Mittelgriechenland,Grecia Centrale,Grecia Central,中希腊大区,중부 그리스, ///004,中央マケドニア,Central Macedonia,Macédoine-Centrale,Zentralmakedonien,Macedonia Centrale,Macedonia Central,中马其顿大区,중부 마케도니아, ///005,クレタ,Crete,Crète,Kreta,Creta,Creta,克里特大区,크레타, - ///006,東マケドニア・トラキア,East Macedonia and Thrace,Macédoine-Orientale-et-Thrace,Ostmakedonien und Thrakien,Macedonia Orientale [rest of string was truncated]";. + ///006,東マケドニア・トラキア,East Macedonia and Thrace,Macédoine-Orientale-et-Thrace,Ostmakedonien und Thrakien,Macedonia Orientale e Tra [rest of string was truncated]";. /// internal static string sr_079 { get { @@ -16057,7 +16066,7 @@ internal class Resources { ///003,バーチ・キシュクン州,Bács-Kiskun County,Bács-Kiskun,Bács-Kiskun,Bács-Kiskun,Bács-Kiskun,巴奇-基什孔州,바치키슈쿤 주, ///004,バラニャ州,Baranya County,Baranya,Baranya,Baranya,Baranya,巴兰尼亚州,버러녀 주, ///005,ベーケーシュ州,Békés County,Békés,Békés,Békés,Békés,贝凯什州,베케시 주, - ///006,ボルショド・アバウーイ・ゼンプレーン州,Borsod-Abaúj-Zemplén County,Borsod-Abaúj-Zemplén,Borsod-Abaúj-Zemplén,Borsod-Abaúj-Zemplén,Borsod-Abaúj-Zemplén,包尔绍德-奥包乌伊-曾普伦州, [rest of string was truncated]";. + ///006,ボルショド・アバウーイ・ゼンプレーン州,Borsod-Abaúj-Zemplén County,Borsod-Abaúj-Zemplén,Borsod-Abaúj-Zemplén,Borsod-Abaúj-Zemplén,Borsod-Abaúj-Zemplén,包尔绍德-奥包乌伊-曾普伦州,보르쇼드어버 [rest of string was truncated]";. /// internal static string sr_080 { get { @@ -16068,8 +16077,7 @@ internal class Resources { /// /// Looks up a localized string similar to Subregion ID,JP,EN,FR,DE,IT,ES,ZH,KO ///000,—,—,—,—,—,—,—,— - ///001,アイスランド,Iceland,Islande,Island,Islanda,Islandia,冰岛,아이슬란드, - ///. + ///001,アイスランド,Iceland,Islande,Island,Islanda,Islandia,冰岛,아이슬란드,. /// internal static string sr_081 { get { @@ -16087,7 +16095,7 @@ internal class Resources { ///013,コーク州,County Cork,Cork,Cork,Cork,Cork,科克郡,코크 주, ///014,ドニゴール州,County Donegal,Donegal,Donegal,Donegal,Donegal,多内加尔郡,도니골 주, ///015,ゴールウェイ州,County Galway,Galway,Galway,Galway,Galway,戈尔韦郡,골웨이 주, - ///016,ケリー州,County Kerry,K [rest of string was truncated]";. + ///016,ケリー州,County Kerry,Kerry,Kerr [rest of string was truncated]";. /// internal static string sr_082 { get { @@ -16103,7 +16111,7 @@ internal class Resources { ///004,ピエモンテ州,Piedmont,Piémont,Piemont,Piemonte,Piamonte,皮埃蒙特大区,피에몬테 주, ///005,リグリア州,Liguria,Ligurie,Ligurien,Liguria,Liguria,利古里亚大区,리구리아 주, ///006,ロンバルディア州,Lombardy,Lombardie,Lombardei,Lombardia,Lombardía,伦巴第大区,롬바르디아 주, - ///007,トレンティノ・アルト・アディジェ州,Trentino-Alto Adige,Trentin-Haut-Adige,Trentino-Südtirol,Tr [rest of string was truncated]";. + ///007,トレンティノ・アルト・アディジェ州,Trentino-Alto Adige,Trentin-Haut-Adige,Trentino-Südtirol,Trentino- [rest of string was truncated]";. /// internal static string sr_083 { get { @@ -16114,8 +16122,7 @@ internal class Resources { /// /// Looks up a localized string similar to Subregion ID,JP,EN,FR,DE,IT,ES,ZH,KO ///000,—,—,—,—,—,—,—,— - ///001,ラトビア,Latvia,Lettonie,Lettland,Lettonia,Letonia,拉脱维亚,라트비아, - ///. + ///001,ラトビア,Latvia,Lettonie,Lettland,Lettonia,Letonia,拉脱维亚,라트비아,. /// internal static string sr_084 { get { @@ -16132,7 +16139,7 @@ internal class Resources { ///005,レリベ県,Leribe,Leribe,Leribe,Leribe,Leribe,莱里贝区,레리베 주, ///006,マフェテング県,Mafeteng,Mafeteng,Mafeteng,Mafeteng,Mafeteng,马费滕区,마페텡 주, ///007,モハーレスフーク県,Mohale's Hoek,Mohale's Hoek,Mohale's Hoek,Mohale's Hoek,Mohale's Hoek,莫哈莱斯胡克区,모할레스후크 주, - ///008,モコトロング県,Mokhotlong,Mok [rest of string was truncated]";. + ///008,モコトロング県,Mokhotlong,Mokhotlong, [rest of string was truncated]";. /// internal static string sr_085 { get { @@ -16143,8 +16150,7 @@ internal class Resources { /// /// Looks up a localized string similar to Subregion ID,JP,EN,FR,DE,IT,ES,ZH,KO ///000,—,—,—,—,—,—,—,— - ///001,リヒテンシュタイン,Liechtenstein,Liechtenstein,Liechtenstein,Liechtenstein,Liechtenstein,列支敦士登,리히텐슈타인, - ///. + ///001,リヒテンシュタイン,Liechtenstein,Liechtenstein,Liechtenstein,Liechtenstein,Liechtenstein,列支敦士登,리히텐슈타인,. /// internal static string sr_086 { get { @@ -16160,7 +16166,7 @@ internal class Resources { ///004,カウナス州,Kaunas,Kaunas,Kaunas,Kaunas,Condado de Kaunas,考纳斯县,카우나스 주, ///005,クライペダ州,Klaipėda,Klaipėda,Klaipėda,Klaipėda,Condado de Klaipėda,克莱佩达县,클라이페다 주, ///006,マリヤンポレ州,Marijampolė,Marijampolė,Marijampolė,Marijampolė,Condado de Marijampolė,马里扬泊列县,마리얌폴레 주, - ///007,パネベジス州,Panevėžys,Panevėžys,Panevėžys,Panevėžys,C [rest of string was truncated]";. + ///007,パネベジス州,Panevėžys,Panevėžys,Panevėžys,Panevėžys,Condado [rest of string was truncated]";. /// internal static string sr_087 { get { @@ -16171,8 +16177,7 @@ internal class Resources { /// /// Looks up a localized string similar to Subregion ID,JP,EN,FR,DE,IT,ES,ZH,KO ///000,—,—,—,—,—,—,—,— - ///001,ルクセンブルク,Luxembourg,Luxembourg,Luxemburg,Lussemburgo,Luxemburgo,卢森堡,룩셈부르크, - ///. + ///001,ルクセンブルク,Luxembourg,Luxembourg,Luxemburg,Lussemburgo,Luxemburgo,卢森堡,룩셈부르크,. /// internal static string sr_088 { get { @@ -16183,8 +16188,7 @@ internal class Resources { /// /// Looks up a localized string similar to Subregion ID,JP,EN,FR,DE,IT,ES,ZH,KO ///000,—,—,—,—,—,—,—,— - ///001,マケドニア,Macedonia (Republic of),Macédoine (République),Mazedonien (Republik),Macedonia (Repubblica di),Macedonia (República),马其顿,마케도니아 공화국, - ///. + ///001,マケドニア,Macedonia (Republic of),Macédoine (République),Mazedonien (Republik),Macedonia (Repubblica di),Macedonia (República),马其顿,마케도니아 공화국,. /// internal static string sr_089 { get { @@ -16195,8 +16199,7 @@ internal class Resources { /// /// Looks up a localized string similar to Subregion ID,JP,EN,FR,DE,IT,ES,ZH,KO ///000,—,—,—,—,—,—,—,— - ///001,マルタ,Malta,Malte,Malta,Malta,Malta,马耳他,몰타, - ///. + ///001,マルタ,Malta,Malte,Malta,Malta,Malta,马耳他,몰타,. /// internal static string sr_090 { get { @@ -16207,8 +16210,7 @@ internal class Resources { /// /// Looks up a localized string similar to Subregion ID,JP,EN,FR,DE,IT,ES,ZH,KO ///000,—,—,—,—,—,—,—,— - ///001,モンテネグロ,Montenegro,Monténégro,Montenegro,Montenegro,Montenegro,黑山,몬테네그로, - ///. + ///001,モンテネグロ,Montenegro,Monténégro,Montenegro,Montenegro,Montenegro,黑山,몬테네그로,. /// internal static string sr_091 { get { @@ -16219,8 +16221,7 @@ internal class Resources { /// /// Looks up a localized string similar to Subregion ID,JP,EN,FR,DE,IT,ES,ZH,KO ///000,—,—,—,—,—,—,—,— - ///001,モザンビーク,Mozambique,Mozambique,Mosambik,Mozambico,Mozambique,莫桑比克,모잠비크, - ///. + ///001,モザンビーク,Mozambique,Mozambique,Mosambik,Mozambico,Mozambique,莫桑比克,모잠비크,. /// internal static string sr_092 { get { @@ -16231,8 +16232,7 @@ internal class Resources { /// /// Looks up a localized string similar to Subregion ID,JP,EN,FR,DE,IT,ES,ZH,KO ///000,—,—,—,—,—,—,—,— - ///001,ナミビア,Namibia,Namibie,Namibia,Namibia,Namibia,纳米比亚,나미비아, - ///. + ///001,ナミビア,Namibia,Namibie,Namibia,Namibia,Namibia,纳米比亚,나미비아,. /// internal static string sr_093 { get { @@ -16248,7 +16248,7 @@ internal class Resources { ///004,フレボラント州,Flevoland,Flevoland,Flevoland,Flevoland,Flevoland,弗莱福兰省,플레볼란트 주, ///005,フリースラント州,Friesland,Frise,Friesland,Frisia,Frisia,弗里斯兰省,프리슬란트 주, ///006,ヘルデンラント州,Gelderland,Gueldre,Gelderland,Gheldria,Güeldres,海尔德兰省,헬데를란트 주, - ///007,フローニンゲン州,Groningen,Groningue,Groningen [rest of string was truncated]";. + ///007,フローニンゲン州,Groningen,Groningue,Groningen,Gronin [rest of string was truncated]";. /// internal static string sr_094 { get { @@ -16264,7 +16264,7 @@ internal class Resources { ///004,ベイ・オブ・プレンティ,Bay of Plenty,Bay of Plenty,Bay of Plenty,Bay of Plenty,Bahía de Plenty,普伦蒂湾大区,베이오브플렌티, ///005,カンタベリー,Canterbury,Canterbury,Canterbury,Canterbury,Canterbury,坎特伯雷大区,캔터베리, ///006,ダニーデン,Otago,Otago,Otago,Otago,Otago,奥塔戈大区,오타고, - ///007,ホークスベイ,Hawke's Bay,Hawke's Bay,Hawke's Bay,Ha [rest of string was truncated]";. + ///007,ホークスベイ,Hawke's Bay,Hawke's Bay,Hawke's Bay,Hawke's B [rest of string was truncated]";. /// internal static string sr_095 { get { @@ -16281,7 +16281,7 @@ internal class Resources { ///010,ブスケルー県,Buskerud,Buskerud,Buskerud,Buskerud,Buskerud,布斯克吕郡,부스케루 주, ///011,フィンマルク県,Finnmark,Finnmark,Finnmark,Finnmark,Finnmark,芬马克郡,핀마르크 주, ///012,ヘードマルク県,Hedmark,Hedmark,Hedmark,Hedmark,Hedmark,海德马克郡,헤드마르크 주, - ///013,ホルダラン県,Hordaland,Hordaland,Ho [rest of string was truncated]";. + ///013,ホルダラン県,Hordaland,Hordaland,Hordaland, [rest of string was truncated]";. /// internal static string sr_096 { get { @@ -16297,7 +16297,8 @@ internal class Resources { ///004,クヤヴィ・ポモージェ,Kuyavian-Pomeranian Voivodeship,Cujavie-Poméranie,Kujawien-Pommern,Cuiavia-Pomerania,Cuyavia y Pomerania,库亚瓦滨海省,쿠야비아포메라니아, ///005,ウッジ,Lodz,Łódź,Lodsch,Łódź,Lodz,罗兹省,우치, ///006,ルブリン,Lublin,Lublin,Lublin,Lublino,Lublin,卢布林省,루블린, - ///007,ルブシュ,Lubusz,Lubusz,Lebus,Lebus,Lubus,鲁布斯卡省,루부쉬 [rest of string was truncated]";. + ///007,ルブシュ,Lubusz,Lubusz,Lebus,Lebus,Lubus,鲁布斯卡省,루부쉬, + ///008,マ [rest of string was truncated]";. /// internal static string sr_097 { get { @@ -16314,7 +16315,7 @@ internal class Resources { ///009,アヴェイロ県,Aveiro,Aveiro,Aveiro,Aveiro,Distrito de Aveiro,阿威罗区,아베이루 주, ///010,ベージャ県,Beja,Beja,Beja,Beja,Distrito de Beja,贝雅区,베자 주, ///011,ブラガ県,Braga,Braga,Braga,Braga,Distrito de Braga,布拉加区,브라가 주, - ///012,ブラガンサ県,Bragança,Bragança,Bragança,Bragança,Distri [rest of string was truncated]";. + ///012,ブラガンサ県,Bragança,Bragança,Bragança,Bragança,Distrito de Br [rest of string was truncated]";. /// internal static string sr_098 { get { @@ -16332,7 +16333,7 @@ internal class Resources { ///006,バカウ州,Bacau,Bacău,Bacău,Bacău,Bacău,巴克乌县,바커우 주, ///007,ビホル州,Bihor,Bihor,Bihor,Bihor,Bihor,比霍尔县,비호르 주, ///008,ビストリツァ・ナサウド州,Bistrita-Nasaud,Bistrita-Năsăud,Bistrita-Năsăud,Bistrita-Năsăud,Bistrita-Năsăud,比斯特里察-讷瑟乌德县,비스트리차너서우드 주, - ///00 [rest of string was truncated]";. + ///009,ボトシャニ州, [rest of string was truncated]";. /// internal static string sr_099 { get { @@ -16347,7 +16348,7 @@ internal class Resources { ///010,アディゲ共和国,Adygey,Adyguée,Republik Adygeja,Repubblica di Adigezia,República de Adigueya,阿迪格共和国,아디게야 공화국, ///011,アルタイ共和国,Gorno-Altay,Altaï (république),Republik Altai,Repubblica dell'Altaj,República de Altái,阿尔泰共和国,고르노알타이 공화국, ///012,アルタイ地方,Altay,Altaï (kraï),Region Altai,Territorio dell'Altaj,Territorio de Altái,阿尔泰边疆区,알타이 지방, - ///013,アムール州,Amur,Amour,Oblast Amur,Regione [rest of string was truncated]";. + ///013,アムール州,Amur,Amour,Oblast Amur,Regione dell' [rest of string was truncated]";. /// internal static string sr_100 { get { @@ -16358,8 +16359,7 @@ internal class Resources { /// /// Looks up a localized string similar to Subregion ID,JP,EN,FR,DE,IT,ES,ZH,KO ///000,—,—,—,—,—,—,—,— - ///001,セルビア・コソヴォ,Serbia and Kosovo,Serbie et Kosovo,Serbien und Kosovo,Serbia e Kosovo,Serbia y Kosovo,塞尔维亚及科索沃,세르비아 코소보, - ///. + ///001,セルビア・コソヴォ,Serbia and Kosovo,Serbie et Kosovo,Serbien und Kosovo,Serbia e Kosovo,Serbia y Kosovo,塞尔维亚及科索沃,세르비아 코소보,. /// internal static string sr_101 { get { @@ -16376,7 +16376,7 @@ internal class Resources { ///005,二トラ,Nitra,Nitra,Nitra,Nitra,Nitra,尼特拉州,니트라, ///006,プレショフ,Prešov,Prešov,Prešov,Prešov,Prešov,普雷绍夫州,프레쇼프, ///007,トレンチーン,Trencín,Trenčín,Trenčín,Trenčín,Trenčín,特伦钦州,트렌친, - ///008,トルナバ,Trnava,Trnava,Trna [rest of string was truncated]";. + ///008,トルナバ,Trnava,Trnava,Trnava,Trnav [rest of string was truncated]";. /// internal static string sr_102 { get { @@ -16387,8 +16387,7 @@ internal class Resources { /// /// Looks up a localized string similar to Subregion ID,JP,EN,FR,DE,IT,ES,ZH,KO ///000,—,—,—,—,—,—,—,— - ///001,スロベニア,Slovenia,Slovénie,Slowenien,Slovenia,Eslovenia,斯洛文尼亚,슬로베니아, - ///. + ///001,スロベニア,Slovenia,Slovénie,Slowenien,Slovenia,Eslovenia,斯洛文尼亚,슬로베니아,. /// internal static string sr_103 { get { @@ -16403,7 +16402,7 @@ internal class Resources { ///003,ウェスタン・ケープ州,Western Cape,Cap-Occidental,Westkap,Capo Occidentale,Cabo Occidental,西开普省,웨스턴케이프 주, ///004,ノーザン・ケープ州,Northern Cape,Cap-du-Nord,Nordkap,Capo Settentrionale,Cabo Septentrional,北开普省,노던케이프 주, ///005,イースタン・ケープ州,Eastern Cape,Cap-Oriental,Ostkap,Capo Orientale,Cabo Oriental,东开普省,이스턴케이프 주, - ///006,クワズールー・ナタール州,KwaZulu-Natal,KwaZulu-Natal,KwaZulu-Natal,KwaZulu-Natal,KwaZulu-Natal,夸祖鲁-纳塔尔省, [rest of string was truncated]";. + ///006,クワズールー・ナタール州,KwaZulu-Natal,KwaZulu-Natal,KwaZulu-Natal,KwaZulu-Natal,KwaZulu-Natal,夸祖鲁-纳塔尔省,콰줄루나탈 [rest of string was truncated]";. /// internal static string sr_104 { get { @@ -16419,7 +16418,7 @@ internal class Resources { ///004,アラゴン州,Aragon,Aragon,Aragonien,Aragona,Aragón,阿拉贡自治区,아라곤 주, ///005,アストゥーリアス州,Principality of Asturias,Asturies,Asturien,Principato delle Asturie,Asturias,阿斯图利亚斯自治区,아스투리아스 주, ///006,バレアーレス諸島,Balearic Islands,Îles Baléares,Balearische Inseln,Baleari,Illes Balears,巴利阿里自治区,발레아레스 제도, - ///007,カナリア諸島,Canary Islands,Î [rest of string was truncated]";. + ///007,カナリア諸島,Canary Islands,Îles Can [rest of string was truncated]";. /// internal static string sr_105 { get { @@ -16433,8 +16432,7 @@ internal class Resources { ///002,ホホ,Hhohho,Hhohho,Hhohho,Hhohho,Hhohho,霍霍区,호호, ///003,ルボンボ,Lubombo,Lubombo,Lubombo,Lubombo,Lubombo,卢邦博区,로밤바, ///004,マンジニ,Manzini,Manzini,Manzini,Manzini,Manzini,曼齐尼区,만지니, - ///005,シセルウェニ,Shiselweni,Shiselweni,Shiselweni,Shiselweni,Shiselweni,希塞卢韦尼区,시셀웨니, - ///. + ///005,シセルウェニ,Shiselweni,Shiselweni,Shiselweni,Shiselweni,Shiselweni,希塞卢韦尼区,시셀웨니,. /// internal static string sr_106 { get { @@ -16449,7 +16447,7 @@ internal class Resources { ///003,スコーネ州,Skåne County,Skåne,Skåne län,Scania,Escania,斯科耐省,스코네 주, ///004,ヴェストラ・イェータランド州,Västra Götaland County,Västra Götaland,Västra Götalands län,Västra Götaland,Västra Götaland,西约特兰省,베스트라예탈란드 주, ///005,エステルイェトランド州,Östergötland County,Östergötland,Östergötlands län,Östergötland,Östergötland,东约特兰省,외스테르예틀란드 주, - ///006,セーデルマンランド州,Södermanland County,Södermanland,Söder [rest of string was truncated]";. + ///006,セーデルマンランド州,Södermanland County,Södermanland,Södermanlan [rest of string was truncated]";. /// internal static string sr_107 { get { @@ -16466,7 +16464,7 @@ internal class Resources { ///006,フリブール州,Fribourg,Fribourg,Freiburg,Friburgo,Friburgo,弗里堡州,프리부르 주, ///007,ジュネーヴ州,Geneva,Genève,Genf,Ginevra,Ginebra,日内瓦州,제네바 주, ///008,グラールス州,Glarus,Glaris,Glarus,Glarona,Glaris,格拉鲁斯州,글라루스 주, - ///009,グラウビュンデン州,Graubünden,Grisons,Graubünden,Grigioni,Gris [rest of string was truncated]";. + ///009,グラウビュンデン州,Graubünden,Grisons,Graubünden,Grigioni,Grisones,格劳宾 [rest of string was truncated]";. /// internal static string sr_108 { get { @@ -16484,7 +16482,7 @@ internal class Resources { ///006,アダナ県,Adana,Adana,Adana,Adana,Adana,阿达纳省,아다나 주, ///007,ガジアンテプ県,Gaziantep,Gaziantep,Gaziantep,Gaziantep,Gaziantep,加济安泰普省,가지안테프 주, ///008,コニヤ県,Konya,Konya,Konya,Konya,Konya,科尼亚省,코니아 주, - ///009,アンタリヤ県,Antalya,Antalya,Anta [rest of string was truncated]";. + ///009,アンタリヤ県,Antalya,Antalya,Antalya,Adali [rest of string was truncated]";. /// internal static string sr_109 { get { @@ -16498,8 +16496,7 @@ internal class Resources { ///002,イングランド,England,Angleterre,England,Inghilterra,Inglaterra,英格兰,잉글랜드, ///004,スコットランド,Scotland,Écosse,Schottland,Scozia,Escocia,苏格兰,스코틀랜드, ///005,ウェールズ,Wales,Pays de Galles,Wales,Galles,Gales,威尔士,웨일즈, - ///006,北アイルランド,Northern Ireland,Irlande du Nord,Nordirland,Irlanda del Nord,Irlanda del Norte,北爱尔兰,북아일랜드, - ///. + ///006,北アイルランド,Northern Ireland,Irlande du Nord,Nordirland,Irlanda del Nord,Irlanda del Norte,北爱尔兰,북아일랜드,. /// internal static string sr_110 { get { @@ -16510,8 +16507,7 @@ internal class Resources { /// /// Looks up a localized string similar to Subregion ID,JP,EN,FR,DE,IT,ES,ZH,KO ///000,—,—,—,—,—,—,—,— - ///001,ザンビア,Zambia,Zambie,Sambia,Zambia,Zambia,赞比亚,잠비아, - ///. + ///001,ザンビア,Zambia,Zambie,Sambia,Zambia,Zambia,赞比亚,잠비아,. /// internal static string sr_111 { get { @@ -16522,8 +16518,7 @@ internal class Resources { /// /// Looks up a localized string similar to Subregion ID,JP,EN,FR,DE,IT,ES,ZH,KO ///000,—,—,—,—,—,—,—,— - ///001,ジンバブエ,Zimbabwe,Zimbabwe,Simbabwe,Zimbabwe,Zimbabue,津巴布韦,짐바브웨, - ///. + ///001,ジンバブエ,Zimbabwe,Zimbabwe,Simbabwe,Zimbabwe,Zimbabue,津巴布韦,짐바브웨,. /// internal static string sr_112 { get { @@ -16534,8 +16529,7 @@ internal class Resources { /// /// Looks up a localized string similar to Subregion ID,JP,EN,FR,DE,IT,ES,ZH,KO ///000,—,—,—,—,—,—,—,— - ///001,アゼルバイジャン,Azerbaijan,Azerbaïdjan,Aserbaidschan,Azerbaigian,Azerbaiyán,阿塞拜疆,아제르바이잔, - ///. + ///001,アゼルバイジャン,Azerbaijan,Azerbaïdjan,Aserbaidschan,Azerbaigian,Azerbaiyán,阿塞拜疆,아제르바이잔,. /// internal static string sr_113 { get { @@ -16546,8 +16540,7 @@ internal class Resources { /// /// Looks up a localized string similar to Subregion ID,JP,EN,FR,DE,IT,ES,ZH,KO ///000,—,—,—,—,—,—,—,— - ///001,モーリタニア,Mauritania,Mauritanie,Mauretanien,Mauritania,Mauritania,毛里塔尼亚,모리타니, - ///. + ///001,モーリタニア,Mauritania,Mauritanie,Mauretanien,Mauritania,Mauritania,毛里塔尼亚,모리타니,. /// internal static string sr_114 { get { @@ -16558,8 +16551,7 @@ internal class Resources { /// /// Looks up a localized string similar to Subregion ID,JP,EN,FR,DE,IT,ES,ZH,KO ///000,—,—,—,—,—,—,—,— - ///001,マリ,Mali,Mali,Mali,Mali,Malí,马里,말리, - ///. + ///001,マリ,Mali,Mali,Mali,Mali,Malí,马里,말리,. /// internal static string sr_115 { get { @@ -16570,8 +16562,7 @@ internal class Resources { /// /// Looks up a localized string similar to Subregion ID,JP,EN,FR,DE,IT,ES,ZH,KO ///000,—,—,—,—,—,—,—,— - ///001,ニジェール,Niger,Niger,Niger,Niger,Níger,尼日尔,니제르, - ///. + ///001,ニジェール,Niger,Niger,Niger,Niger,Níger,尼日尔,니제르,. /// internal static string sr_116 { get { @@ -16582,8 +16573,7 @@ internal class Resources { /// /// Looks up a localized string similar to Subregion ID,JP,EN,FR,DE,IT,ES,ZH,KO ///000,—,—,—,—,—,—,—,— - ///001,チャド,Chad,Tchad,Tschad,Ciad,Chad,乍得,차드, - ///. + ///001,チャド,Chad,Tchad,Tschad,Ciad,Chad,乍得,차드,. /// internal static string sr_117 { get { @@ -16594,8 +16584,7 @@ internal class Resources { /// /// Looks up a localized string similar to Subregion ID,JP,EN,FR,DE,IT,ES,ZH,KO ///000,—,—,—,—,—,—,—,— - ///001,スーダン,Sudan,Soudan,Sudan,Sudan,Sudán,苏丹,수단, - ///. + ///001,スーダン,Sudan,Soudan,Sudan,Sudan,Sudán,苏丹,수단,. /// internal static string sr_118 { get { @@ -16606,8 +16595,7 @@ internal class Resources { /// /// Looks up a localized string similar to Subregion ID,JP,EN,FR,DE,IT,ES,ZH,KO ///000,—,—,—,—,—,—,—,— - ///001,エリトリア,Eritrea,Érythrée,Eritrea,Eritrea,Eritrea,厄立特里亚,에리트레아, - ///. + ///001,エリトリア,Eritrea,Érythrée,Eritrea,Eritrea,Eritrea,厄立特里亚,에리트레아,. /// internal static string sr_119 { get { @@ -16618,8 +16606,7 @@ internal class Resources { /// /// Looks up a localized string similar to Subregion ID,JP,EN,FR,DE,IT,ES,ZH,KO ///000,—,—,—,—,—,—,—,— - ///001,ジブチ,Djibouti,Djibouti,Dschibuti,Gibuti,Yibuti,吉布提,지부티, - ///. + ///001,ジブチ,Djibouti,Djibouti,Dschibuti,Gibuti,Yibuti,吉布提,지부티,. /// internal static string sr_120 { get { @@ -16630,8 +16617,7 @@ internal class Resources { /// /// Looks up a localized string similar to Subregion ID,JP,EN,FR,DE,IT,ES,ZH,KO ///000,—,—,—,—,—,—,—,— - ///001,ソマリア,Somalia,Somalie,Somalia,Somalia,Somalia,索马里,소말리아, - ///. + ///001,ソマリア,Somalia,Somalie,Somalia,Somalia,Somalia,索马里,소말리아,. /// internal static string sr_121 { get { @@ -16642,8 +16628,7 @@ internal class Resources { /// /// Looks up a localized string similar to Subregion ID,JP,EN,FR,DE,IT,ES,ZH,KO ///000,—,—,—,—,—,—,—,— - ///001,アンドラ,Andorra,Andorre,Andorra,Andorra,Andorra,安道尔,안도라, - ///. + ///001,アンドラ,Andorra,Andorre,Andorra,Andorra,Andorra,安道尔,안도라,. /// internal static string sr_122 { get { @@ -16654,8 +16639,7 @@ internal class Resources { /// /// Looks up a localized string similar to Subregion ID,JP,EN,FR,DE,IT,ES,ZH,KO ///000,—,—,—,—,—,—,—,— - ///001,ジブラルタル,Gibraltar,Gibraltar,Gibraltar,Gibilterra,Gibraltar,直布罗陀,지브롤터, - ///. + ///001,ジブラルタル,Gibraltar,Gibraltar,Gibraltar,Gibilterra,Gibraltar,直布罗陀,지브롤터,. /// internal static string sr_123 { get { @@ -16666,8 +16650,7 @@ internal class Resources { /// /// Looks up a localized string similar to Subregion ID,JP,EN,FR,DE,IT,ES,ZH,KO ///000,—,—,—,—,—,—,—,— - ///001,ガーンジー島,Guernsey,Guernesey,Guernsey,Guernsey,Guernsey,根西,건지 섬, - ///. + ///001,ガーンジー島,Guernsey,Guernesey,Guernsey,Guernsey,Guernsey,根西,건지 섬,. /// internal static string sr_124 { get { @@ -16678,8 +16661,7 @@ internal class Resources { /// /// Looks up a localized string similar to Subregion ID,JP,EN,FR,DE,IT,ES,ZH,KO ///000,—,—,—,—,—,—,—,— - ///001,マン島,Isle of Man,Île de Man,Isle of Man,Isola di Man,Isla de Man,马恩岛,맨 섬, - ///. + ///001,マン島,Isle of Man,Île de Man,Isle of Man,Isola di Man,Isla de Man,马恩岛,맨 섬,. /// internal static string sr_125 { get { @@ -16690,8 +16672,7 @@ internal class Resources { /// /// Looks up a localized string similar to Subregion ID,JP,EN,FR,DE,IT,ES,ZH,KO ///000,—,—,—,—,—,—,—,— - ///001,ジャージー島,Jersey,Jersey,Jersey,Jersey,Jersey,泽西,저지 섬, - ///. + ///001,ジャージー島,Jersey,Jersey,Jersey,Jersey,Jersey,泽西,저지 섬,. /// internal static string sr_126 { get { @@ -16702,8 +16683,7 @@ internal class Resources { /// /// Looks up a localized string similar to Subregion ID,JP,EN,FR,DE,IT,ES,ZH,KO ///000,—,—,—,—,—,—,—,— - ///001,モナコ,Monaco,Monaco,Monaco,Monaco (Principato di),Mónaco,摩纳哥,모나코, - ///. + ///001,モナコ,Monaco,Monaco,Monaco,Monaco (Principato di),Mónaco,摩纳哥,모나코,. /// internal static string sr_127 { get { @@ -16721,7 +16701,7 @@ internal class Resources { ///006,台中市,Taichung City,Taichung,Taichung,Taichung,Taichung,-,타이중, ///007,嘉義市,Chiayi City,Chiayi,Chiayi,Chiayi,Chiayi,-,자이, ///008,台南市,Tainan City,Tainan,Tainan,Tainan,Tainan,-,타이난, - ///009,新北市,New Taipe [rest of string was truncated]";. + ///009,新北市,New Taipei City,No [rest of string was truncated]";. /// internal static string sr_128 { get { @@ -16738,7 +16718,7 @@ internal class Resources { ///005,インチョン広域市,Incheon-gwangyeoksi,Incheon,Incheon,Incheon,Incheon,仁川广域市,인천광역시, ///006,クァンジュ広域市,Gwangju-gwangyeoksi,Gwangju,Gwangju,Gwangju,Gwangju,光州广域市,광주광역시, ///007,テジョン広域市,Daejeon-gwangyeoksi,Daejeon,Daejeon,Daejeon,Daejeon,大田广域市,대전광역시, - ///008,ウルサン広域市,Ulsan- [rest of string was truncated]";. + ///008,ウルサン広域市,Ulsan-gwangyeo [rest of string was truncated]";. /// internal static string sr_136 { get { @@ -16749,8 +16729,7 @@ internal class Resources { /// /// Looks up a localized string similar to Subregion ID,JP,EN,FR,DE,IT,ES,ZH,KO ///000,—,—,—,—,—,—,—,— - ///001,ホンコン,Hong Kong,Hong Kong,Hongkong,Hong Kong,Hong Kong,中国 香港,홍콩, - ///. + ///001,ホンコン,Hong Kong,Hong Kong,Hongkong,Hong Kong,Hong Kong,中国 香港,홍콩,. /// internal static string sr_144 { get { @@ -16761,8 +16740,7 @@ internal class Resources { /// /// Looks up a localized string similar to Subregion ID,JP,EN,FR,DE,IT,ES,ZH,KO ///000,—,—,—,—,—,—,—,— - ///001,シンガポール,Singapore,Singapour,Singapur,Singapore,Singapur,新加坡,싱가포르, - ///. + ///001,シンガポール,Singapore,Singapour,Singapur,Singapore,Singapur,新加坡,싱가포르,. /// internal static string sr_153 { get { @@ -16779,7 +16757,7 @@ internal class Resources { ///005,ケランタン州,Kelantan,Kelantan,Kelantan,Kelantan,Kelantan,吉兰丹州,켈란탄 주, ///006,マラッカ州,Melaka,Malacca,Malakka,Malacca,Melaka,马六甲州,믈라카 주, ///007,ヌグリ・センビラン州,Negeri Sembilan,Negeri Sembilan,Negeri Sembilan,Negeri Sembilan,Negeri Sembilan,森美兰州,느그리슴빌란 주, - ///008,パハン州,Paha [rest of string was truncated]";. + ///008,パハン州,Pahang,Pahan [rest of string was truncated]";. /// internal static string sr_156 { get { @@ -16797,7 +16775,8 @@ internal class Resources { ///006,安徽省,Anhui,Anhui,Anhui,Anhui,Anhui,安徽省,안후이 성, ///007,福建省,Fujian,Fujian,Fujian,Fujian,Fujian,福建省,푸젠 성, ///008,甘粛省,Gansu,Gansu,Gansu,Gansu,Gansu,甘肃省,간쑤 성, - ///009,広東省,Guangdong,Guangdong,Guangdong,Guangdong,Cantón,广东省, [rest of string was truncated]";. + ///009,広東省,Guangdong,Guangdong,Guangdong,Guangdong,Cantón,广东省,광둥 성, + ///010 [rest of string was truncated]";. /// internal static string sr_160 { get { @@ -16814,7 +16793,7 @@ internal class Resources { ///005,ラアス・アル・カイマー,Ras al-Khaimah,Ras al-Khaïmah,Ras al-Chaima,Ras al-Khaimah,Ras el Jaima,哈伊马角,라스알카이마, ///006,ドゥバイ,Dubai,Dubaï,Dubai,Dubai,Dubái,迪拜,두바이, ///007,フジャイラー,Al Fujayrah,Fujaïrah,Fudschaira,Fujayrah,Fujaira,富查伊拉,알푸자이라, - ///008,ウム・アル・カイワイン,Umm al Qaywayn,Umm al-Qaiw [rest of string was truncated]";. + ///008,ウム・アル・カイワイン,Umm al Qaywayn,Umm al-Qaiwain,Umm [rest of string was truncated]";. /// internal static string sr_168 { get { @@ -16829,7 +16808,7 @@ internal class Resources { ///003,アンダマン・ニコバル諸島,Andaman and Nicobar Islands,Îles Andaman-et-Nicobar,Andamanen und Nikobaren,Andamane e Nicobare,Islas Andamán y Nicobar,安达曼和尼科巴群岛中央直辖区,안다만 니코바르 제도, ///004,アーンドラ・プラデーシュ州,Andhra Pradesh,Andhra Pradesh,Andhra Pradesh,Andhra Pradesh,Andhra Pradesh,安得拉邦,안드라프라데시 주, ///005,アッサム州,Assam,Assam,Assam,Assam,Assam,阿萨姆邦,아삼 주, - ///006,チャンディーガル州,Chandīgarh,Chandigarh,Chandigarh,Chandigarh,Chandigarh,昌迪加尔中 [rest of string was truncated]";. + ///006,チャンディーガル州,Chandīgarh,Chandigarh,Chandigarh,Chandigarh,Chandigarh,昌迪加尔中央直辖区,찬 [rest of string was truncated]";. /// internal static string sr_169 { get { @@ -16847,7 +16826,7 @@ internal class Resources { ///006,カスィーム州,Al Qasim,Al Qasim,Qasim,Al-Qasim,Al Qasim,卡西姆地区,카심 주, ///007,アシール州,'Asir,Assir,Asir,'Asir,Asir,阿西尔地区,아시르 주, ///008,ハーイル州,Ha'il,Haïl,Hail,Ha'il,Hail,哈伊勒地区,하일 주, - ///009,メッカ [rest of string was truncated]";. + ///009,メッカ州,Makkah, [rest of string was truncated]";. /// internal static string sr_174 { get { @@ -16858,8 +16837,7 @@ internal class Resources { /// /// Looks up a localized string similar to Subregion ID,JP,EN,FR,DE,IT,ES,ZH,KO ///000,—,—,—,—,—,—,—,— - ///001,サンマリノ,San Marino,Saint-Marin,San Marino,San Marino,San Marino,圣马力诺,산마리노, - ///. + ///001,サンマリノ,San Marino,Saint-Marin,San Marino,San Marino,San Marino,圣马力诺,산마리노,. /// internal static string sr_184 { get { @@ -16870,8 +16848,7 @@ internal class Resources { /// /// Looks up a localized string similar to Subregion ID,JP,EN,FR,DE,IT,ES,ZH,KO ///000,—,—,—,—,—,—,—,— - ///001,バチカン,Vatican City,Vatican,Vatikanstadt,Vaticano (Città del),Vaticano,梵蒂冈,바티칸, - ///. + ///001,バチカン,Vatican City,Vatican,Vatikanstadt,Vaticano (Città del),Vaticano,梵蒂冈,바티칸,. /// internal static string sr_185 { get { @@ -16882,8 +16859,7 @@ internal class Resources { /// /// Looks up a localized string similar to Subregion ID,JP,EN,FR,DE,IT,ES,ZH,KO ///000,—,—,—,—,—,—,—,— - ///001,バーミューダ,Bermuda,Bermudes,Bermuda,Bermude,Bermudas,百慕大,버뮤다, - ///. + ///001,バーミューダ,Bermuda,Bermudes,Bermuda,Bermude,Bermudas,百慕大,버뮤다,. /// internal static string sr_186 { get { diff --git a/Properties/Resources.resx b/Properties/Resources.resx index 183c985a5..a5ef05376 100644 --- a/Properties/Resources.resx +++ b/Properties/Resources.resx @@ -5833,4 +5833,10 @@ ..\Resources\text\locale\sr_ID\sr_186.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 + + ..\Resources\text\locale\languages.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-16 + + + ..\Resources\text\locale\regions3ds.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-16 + \ No newline at end of file diff --git a/Resources/text/locale/languages.txt b/Resources/text/locale/languages.txt new file mode 100644 index 0000000000000000000000000000000000000000..b864e9c8c0b02c3e651f0e6e0fbcfda9d406dd8b GIT binary patch literal 250 zcmX|*I|{-;6h%)hxCcuEY5bwBkVK-Q5-n{+LKOUA%qCofJFs&LF2N;;wHr|HOoGh} zynEhx_xlO)a2c{-M?$7QA*M`;n&y2bjHpoM8N12l?AWBP#MiuM6W?xbSd+3MCmJFG zB2i{H;As6Xy@tw}rkIc!UCV@=lp2d^vM-pHn4T<=Wjr;@#HB3%m)f?=R6WflU)e#1 Vw+x%Y(Gf9VTsY>B?e%td_yIN>DEI&X literal 0 HcmV?d00001 diff --git a/Resources/text/locale/regions3ds.txt b/Resources/text/locale/regions3ds.txt new file mode 100644 index 0000000000000000000000000000000000000000..be43d25de3126b9ec0d5a08f7d468018d02109c9 GIT binary patch literal 218 zcmXAjI|{-;6h&_>xCcuE5&!82O`$>xf0d1dA*RTOh*-NIm*W!Lgy82mQ_L&gIrqN# zeioW5)R?(ZM{8MS%2laUTP+P>OC447N_baK8)kuHLzq!Pq9KuDoSl)d?bBxDy%Aol z3syysbxy1uj$wLdf-}>Jo|2ybonG?Zdp3ow$Tnm>J3NZJXAx}6HrJKufB3qkb)X+W CP9z)v literal 0 HcmV?d00001