private void buttonX1_Click(object sender, EventArgs e) { if (localeGrid.SelectedItems.Count != 0) { bool flag = txtSelectedLocale.Text.Length == localeGrid.SelectedItems[0].SubItems[1].Text.Length; int stringIndex = int.Parse(localeGrid.SelectedItems[0].Text); Locale_Handler.SaveLocale(cmbxLanguage.SelectedIndex, stringIndex, txtSelectedLocale.Text); localeGrid.SelectedItems[0].SubItems[1].Text = txtSelectedLocale.Text; if (!flag) { Locale_Handler = new LocaleHandler(Map); int selectedIndex = cmbxLanguage.SelectedIndex; LocaleHandler.LocaleTable table = Locale_Handler.LocaleTables[selectedIndex]; txtLocaleCount.Text = table.LocaleCount.ToString(); txtLocaleTableOffset.Text = table.LocaleTableOffset.ToString(); txtLocaleTableSize.Text = table.LocaleTableSize.ToString(); txtLocaleIndexOffset.Text = table.LocaleTableIndexOffset.ToString(); localeGrid.SelectedItems[0].SubItems[3].Text = table.LocaleStrings[stringIndex].Length.ToString(); for (int i = localeGrid.SelectedItems[0].Index; i < localeGrid.Items.Count; i++) { localeGrid.Items[i].SubItems[2].Text = table.LocaleStrings[i].Offset.ToString(); } } } }
public StringLocaleEditor(HaloMap map) { InitializeComponent(); Map = map; Locale_Handler = new LocaleHandler(Map); cmbxLanguage.SelectedIndex = 0; localeGrid.Focus(); }
public StringLocaleEditor(HaloMap map) { InitializeComponent(); //Set our HaloMap class instance as the one provided. Map = map; //Initialize our Locale Handler with our HaloMap instance. Locale_Handler = new LocaleHandler(Map); //Select our first language, causing it to load. cmbxLanguage.SelectedIndex = 0; //Focus on our localeList localeGrid.Focus(); //Load our Strings LoadStrings(StringFilter); }
/// <summary> /// Get the current locale and apply it. /// </summary> public void UpdateLocale() { // determine the correct, supported .NET culture var handler = new LocaleHandler(); Culture = handler.CurrentCultureInfo; // set the RESX for resource localization Resx.AppResources.Culture = Culture; // Whenever language has been changed, CurrentCulture will be updated. MessagingCenter.Subscribe <LocaleHandler, CultureInfo>(this, MessageKeys.LanguageChanged, (obj, culture) => { Console.WriteLine($"Received LanguageChanged culture:{culture.ToString()}"); }); }
private void buttonX1_Click(object sender, EventArgs e) { //If we have an item selected if (localeGrid.SelectedItems.Count != 0) { bool SameLength = txtSelectedLocale.Text.Length == localeGrid.SelectedItems[0].SubItems[1].Text.Length; //Get out selected locale's index int selectedLocaleIndex = int.Parse(localeGrid.SelectedItems[0].Text); Locale_Handler.SaveLocale(cmbxLanguage.SelectedIndex, selectedLocaleIndex, txtSelectedLocale.Text); //Set our text localeGrid.SelectedItems[0].SubItems[1].Text = txtSelectedLocale.Text; //If the length wasn't the same. if (!SameLength) { //Reload our Locale table Locale_Handler = new LocaleHandler(Map); //Set our table info text //Set our selected Language int selectedLanguage = cmbxLanguage.SelectedIndex; //Get our LocaleTable LocaleHandler.LocaleTable selectedTable = Locale_Handler.LocaleTables[selectedLanguage]; //Set our locale count textbox's text. txtLocaleCount.Text = selectedTable.LocaleCount.ToString(); //Set our locale table offset textbox's text. txtLocaleTableOffset.Text = selectedTable.LocaleTableOffset.ToString(); //Set our locale table size textbox's text. txtLocaleTableSize.Text = selectedTable.LocaleTableSize.ToString(); //Set our locale table indexoffset textbox's text. txtLocaleIndexOffset.Text = selectedTable.LocaleTableIndexOffset.ToString(); //Set our items length. localeGrid.SelectedItems[0].SubItems[3].Text = selectedTable.LocaleStrings[selectedLocaleIndex].Length.ToString(); //Loop for every item in the list for (int i = localeGrid.SelectedItems[0].Index; i < localeGrid.Items.Count; i++) { localeGrid.Items[i].SubItems[2].Text = selectedTable.LocaleStrings[i].Offset.ToString(); } } #region Old /* * //Open our IO * Map.OpenIO(); * //Get our Locale Table * LocaleHandler.LocaleTable selectedTable = Locale_Handler.LocaleTables[cmbxLanguage.SelectedIndex]; * //Go to that locale's position * Map.IO.Out.BaseStream.Position = selectedTable.LocaleTableOffset + * selectedTable.LocaleStrings[selectedLocaleIndex].Offset; * //Write our new locale. * Map.IO.Out.WriteAsciiString(txtSelectedLocale.Text, txtSelectedLocale.MaxLength); * //Go back to the begining of the table * Map.IO.SeekTo(selectedTable.LocaleTableOffset); * byte[] hash = SHA1.Create().ComputeHash(Map.IO.In.ReadBytes( * selectedTable.LocaleTableSize)); * //Seek to where the hash is * Map.IO.SeekTo(selectedTable.Offset + 0x24); * //Write it * Map.IO.Out.Write(hash); * //Update our text * localeGrid.SelectedItems[0].SubItems[1].Text = txtSelectedLocale.Text; * selectedTable.LocaleStrings[selectedLocaleIndex].Name = txtSelectedLocale.Text; * //Close our IO * Map.CloseIO();*/ #endregion } }