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();
 }
Пример #3
0
 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);
 }
Пример #4
0
        /// <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()}");
            });
        }
Пример #5
0
        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
            }
        }