private void ChangeFormLanguage(System.Windows.Forms.Form form) {
form.SuspendLayout();
Cursor.Current = Cursors.WaitCursor;
System.Resources.ResourceManager resources = new System.Resources.ResourceManager(form.GetType());
// change main form resources
form.Text = (string)(GetSafeValue(resources, "$this.Text", form.Text));
ReloadControlCommonProperties(form, resources);
ToolTip toolTip = GetToolTip(form);
// change text of all containing controls
RecurControls(form, resources, toolTip);
// change the text of menus
ScanNonControls(form, resources);
form.ResumeLayout();
}