private void cbLanguages_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (initializing)
            {
                return;
            }

            tbTarget.Text = string.Empty;

            if (!checkSelectedLanguages())
            {
                return;
            }

            lblMessage.Text      = string.Empty;
            btnTranslate.Enabled = true;

            // dispose the existing MT engine if exists
            if (mtEngine != null)
            {
                mtEngine.Dispose();
                mtEngine = null;
            }

            // intialize the new MT engine based on the selected languages
            mtEngine = (lbPlugins.SelectedItem as IPluginInfo).CreateEngine((cbSourceLanguage.SelectedItem as Language).LangCode, (cbTargetLanguage.SelectedItem as Language).LangCode);
        }
 private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
 {
     if (mtEngine != null)
     {
         mtEngine.Dispose();
         mtEngine = null;
     }
 }