Index: trunk/src/VBox/Frontends/VirtualBox4/include/QIDialogButtonBox.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox4/include/QIDialogButtonBox.h	(revision 9053)
+++ trunk/src/VBox/Frontends/VirtualBox4/include/QIDialogButtonBox.h	(revision 9056)
@@ -24,12 +24,14 @@
 #define __QIDialogButtonBox_h__
 
+#include "QIWithRetranslateUI.h"
+
 /* Qt includes */
 #include <QDialogButtonBox>
 
-class QIDialogButtonBox: public QDialogButtonBox
+class QIDialogButtonBox: public QIWithRetranslateUI<QDialogButtonBox>
 {
 public:
-    QIDialogButtonBox (QWidget *aParent = 0) :QDialogButtonBox (aParent) {}
-    QIDialogButtonBox (Qt::Orientation aOrientation, QWidget *aParent = 0) :QDialogButtonBox (aOrientation, aParent) {}
+    QIDialogButtonBox (QWidget *aParent = 0) :QIWithRetranslateUI<QDialogButtonBox> (aParent) {}
+    QIDialogButtonBox (Qt::Orientation aOrientation, QWidget *aParent = 0) :QIWithRetranslateUI<QDialogButtonBox> (aParent) { setOrientation (aOrientation); }
     QIDialogButtonBox (StandardButtons aButtons, Qt::Orientation aOrientation = Qt::Horizontal, QWidget *aParent = 0);
 
@@ -40,5 +42,5 @@
 
 protected:
-    virtual void changeEvent (QEvent *aEvent);
+
     void retranslateUi();
 };
Index: trunk/src/VBox/Frontends/VirtualBox4/include/QIWithRetranslateUI.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox4/include/QIWithRetranslateUI.h	(revision 9056)
+++ trunk/src/VBox/Frontends/VirtualBox4/include/QIWithRetranslateUI.h	(revision 9056)
@@ -0,0 +1,88 @@
+/** @file
+ *
+ * VBox frontends: Qt GUI ("VirtualBox"):
+ * Declarations of utility classes and functions
+ * VirtualBox Qt extensions: QIWithRetranslateUI class declaration
+ */
+
+/*
+ * Copyright (C) 2008 Sun Microsystems, Inc.
+ *
+ * This file is part of VirtualBox Open Source Edition (OSE), as
+ * available from http://www.virtualbox.org. This file is free software;
+ * you can redistribute it and/or modify it under the terms of the GNU
+ * General Public License (GPL) as published by the Free Software
+ * Foundation, in version 2 as it comes in the "COPYING" file of the
+ * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
+ * Clara, CA 95054 USA or visit http://www.sun.com if you need
+ * additional information or have any questions.
+ */
+
+#ifndef __QIWithRetranslateUI_h
+#define __QIWithRetranslateUI_h
+
+/* Qt includes */
+#include <QObject>
+#include <QEvent>
+
+template <class Base>
+class QIWithRetranslateUI: public Base
+{
+public:
+
+    QIWithRetranslateUI (QWidget *aParent = 0) : Base (aParent) {}
+
+protected:
+
+    virtual void changeEvent (QEvent *aEvent)
+    {
+        Base::changeEvent (aEvent);
+        switch (aEvent->type())
+        {
+            case QEvent::LanguageChange:
+            {
+                retranslateUi();
+                aEvent->accept();
+                break;
+            }
+            default: 
+                break;
+        }
+    }
+
+    virtual void retranslateUi() = 0;
+};
+
+template <class Base>
+class QIWithRetranslateUI2: public Base
+{
+public:
+
+    QIWithRetranslateUI2 (QWidget *aParent = 0, Qt::WindowFlags aFlags = 0) : Base (aParent, aFlags) {}
+    
+protected:
+
+    virtual void changeEvent (QEvent *aEvent)
+    {
+        Base::changeEvent (aEvent);
+        switch (aEvent->type())
+        {
+            case QEvent::LanguageChange:
+            {
+                retranslateUi();
+                aEvent->accept();
+                break;
+            }
+            default: 
+                break;
+        }
+    }
+
+    virtual void retranslateUi() = 0;
+};
+
+#endif /* __QIWithRetranslateUI_h */
+
Index: trunk/src/VBox/Frontends/VirtualBox4/include/VBoxCloseVMDlg.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox4/include/VBoxCloseVMDlg.h	(revision 9053)
+++ trunk/src/VBox/Frontends/VirtualBox4/include/VBoxCloseVMDlg.h	(revision 9056)
@@ -24,14 +24,20 @@
 #define __VBoxCloseVMDlg_h__
 
-#include <VBoxCloseVMDlg.gen.h>
-#include <QIDialog.h>
+#include "VBoxCloseVMDlg.gen.h"
+#include "QIWithRetranslateUI.h"
+#include "QIDialog.h"
 
-class VBoxCloseVMDlg : public QIDialog, public Ui::VBoxCloseVMDlg
+class VBoxCloseVMDlg : public QIWithRetranslateUI2<QIDialog>,
+                       public Ui::VBoxCloseVMDlg
 {
-    Q_OBJECT
+    Q_OBJECT;
 
 public:
 
     VBoxCloseVMDlg (QWidget *aParent);
+
+protected:
+
+    void retranslateUi();
 };
 
Index: trunk/src/VBox/Frontends/VirtualBox4/include/VBoxConsoleWnd.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox4/include/VBoxConsoleWnd.h	(revision 9053)
+++ trunk/src/VBox/Frontends/VirtualBox4/include/VBoxConsoleWnd.h	(revision 9056)
@@ -25,4 +25,5 @@
 
 #include "COMDefs.h"
+#include "QIWithRetranslateUI.h"
 
 /* Qt includes */
@@ -54,7 +55,7 @@
 class VBoxSwitchMenu;
 
-class VBoxConsoleWnd : public QMainWindow
+class VBoxConsoleWnd : public QIWithRetranslateUI2<QMainWindow>
 {
-    Q_OBJECT
+    Q_OBJECT;
 
 public:
@@ -97,5 +98,4 @@
 #endif
 
-    virtual void changeEvent (QEvent *aEvent);
     void retranslateUi();
 
Index: trunk/src/VBox/Frontends/VirtualBox4/include/VBoxDefs.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox4/include/VBoxDefs.h	(revision 9053)
+++ trunk/src/VBox/Frontends/VirtualBox4/include/VBoxDefs.h	(revision 9056)
@@ -150,4 +150,5 @@
         ShowWindowEventType,
 #endif
+        ChangeGUILanguageEventType,
     };
 
Index: trunk/src/VBox/Frontends/VirtualBox4/include/VBoxDownloaderWgt.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox4/include/VBoxDownloaderWgt.h	(revision 9053)
+++ trunk/src/VBox/Frontends/VirtualBox4/include/VBoxDownloaderWgt.h	(revision 9056)
@@ -25,4 +25,5 @@
 
 #include "HappyHttp.h"
+#include "QIWithRetranslateUI.h"
 
 /* Qt includes */
@@ -46,7 +47,7 @@
  *  into the VM console status bar.
  */
-class VBoxDownloaderWgt : public QWidget
+class VBoxDownloaderWgt : public QIWithRetranslateUI<QWidget>
 {
-    Q_OBJECT
+    Q_OBJECT;
 
 public:
@@ -59,5 +60,5 @@
 
 protected:
-    virtual void changeEvent (QEvent *aEvent);
+
     void retranslateUi();
 
Index: trunk/src/VBox/Frontends/VirtualBox4/include/VBoxGlobal.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox4/include/VBoxGlobal.h	(revision 9053)
+++ trunk/src/VBox/Frontends/VirtualBox4/include/VBoxGlobal.h	(revision 9056)
@@ -137,4 +137,15 @@
 
     const bool mCanShow;
+};
+
+class VBoxChangeGUILanguageEvent : public QEvent
+{
+public:
+    VBoxChangeGUILanguageEvent (QString aLangId)
+        : QEvent ((QEvent::Type) VBoxDefs::ChangeGUILanguageEventType)
+        , mLangId (aLangId)
+        {}
+
+    const QString mLangId;
 };
 
Index: trunk/src/VBox/Frontends/VirtualBox4/include/VBoxSelectorWnd.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox4/include/VBoxSelectorWnd.h	(revision 9053)
+++ trunk/src/VBox/Frontends/VirtualBox4/include/VBoxSelectorWnd.h	(revision 9056)
@@ -26,4 +26,5 @@
 #include "COMDefs.h"
 
+#include "QIWithRetranslateUI.h"
 #include "VBoxGlobal.h"
 
@@ -44,7 +45,7 @@
 class QUuid;
 
-class VBoxSelectorWnd: public QMainWindow
+class VBoxSelectorWnd: public QIWithRetranslateUI2<QMainWindow>
 {
-    Q_OBJECT
+    Q_OBJECT;
 
 public:
@@ -85,5 +86,4 @@
     bool event (QEvent *e);
 
-    virtual void changeEvent (QEvent *aEvent);
     void retranslateUi();
 
Index: trunk/src/VBox/Frontends/VirtualBox4/include/VBoxSnapshotDetailsDlg.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox4/include/VBoxSnapshotDetailsDlg.h	(revision 9053)
+++ trunk/src/VBox/Frontends/VirtualBox4/include/VBoxSnapshotDetailsDlg.h	(revision 9056)
@@ -24,8 +24,10 @@
 #define __VBoxSnapshotDetailsDlg_h__
 
-#include <VBoxSnapshotDetailsDlg.gen.h>
-#include <COMDefs.h>
+#include "VBoxSnapshotDetailsDlg.gen.h"
+#include "QIWithRetranslateUI.h"
+#include "COMDefs.h"
 
-class VBoxSnapshotDetailsDlg : public QDialog, public Ui::VBoxSnapshotDetailsDlg
+class VBoxSnapshotDetailsDlg : public QIWithRetranslateUI<QDialog>,
+                               public Ui::VBoxSnapshotDetailsDlg
 {
     Q_OBJECT;
@@ -37,4 +39,8 @@
     void getFromSnapshot (const CSnapshot &aSnapshot);
     void putBackToSnapshot();
+
+protected:
+
+    void retranslateUi();
 
 private slots:
Index: trunk/src/VBox/Frontends/VirtualBox4/include/VBoxSnapshotsWgt.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox4/include/VBoxSnapshotsWgt.h	(revision 9053)
+++ trunk/src/VBox/Frontends/VirtualBox4/include/VBoxSnapshotsWgt.h	(revision 9056)
@@ -24,8 +24,10 @@
 #define __VBoxSnapshotsWgt_h__
 
-#include <VBoxSnapshotsWgt.gen.h>
-#include <VBoxGlobal.h>
+#include "VBoxSnapshotsWgt.gen.h"
+#include "VBoxGlobal.h"
+#include "QIWithRetranslateUI.h"
+
+/* Qt includes */
 #include <QUuid>
-#include <COMDefs.h>
 
 class SnapshotWgtItem;
@@ -33,5 +35,6 @@
 class QMenu;
 
-class VBoxSnapshotsWgt : public QWidget, public Ui::VBoxSnapshotsWgt
+class VBoxSnapshotsWgt : public QIWithRetranslateUI<QWidget>,
+                         public Ui::VBoxSnapshotsWgt
 {
     Q_OBJECT;
@@ -43,6 +46,6 @@
     void setMachine (const CMachine &aMachine);
 
+protected:
 
-    virtual void changeEvent (QEvent *aEvent);
     void retranslateUi();
 
Index: trunk/src/VBox/Frontends/VirtualBox4/include/VBoxVMInformationDlg.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox4/include/VBoxVMInformationDlg.h	(revision 9053)
+++ trunk/src/VBox/Frontends/VirtualBox4/include/VBoxVMInformationDlg.h	(revision 9056)
@@ -24,14 +24,16 @@
 #define __VBoxVMInformationDlg_h__
 
-#include <VBoxVMInformationDlg.gen.h>
-#include <QIAbstractDialog.h>
-#include <COMDefs.h>
+#include "VBoxVMInformationDlg.gen.h"
+#include "QIAbstractDialog.h"
+#include "COMDefs.h"
+#include "QIWithRetranslateUI.h"
 
 class VBoxConsoleView;
 class QTimer;
 
-class VBoxVMInformationDlg : public QIAbstractDialog, public Ui::VBoxVMInformationDlg
+class VBoxVMInformationDlg : public QIWithRetranslateUI2<QIAbstractDialog>,
+                             public Ui::VBoxVMInformationDlg
 {
-    Q_OBJECT
+    Q_OBJECT;
 
 public:
@@ -51,5 +53,4 @@
 protected:
 
-    virtual void changeEvent (QEvent *aEvent);
     void retranslateUi();
 
Index: trunk/src/VBox/Frontends/VirtualBox4/src/QIDialogButtonBox.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox4/src/QIDialogButtonBox.cpp	(revision 9053)
+++ trunk/src/VBox/Frontends/VirtualBox4/src/QIDialogButtonBox.cpp	(revision 9056)
@@ -28,6 +28,9 @@
 
 QIDialogButtonBox::QIDialogButtonBox (StandardButtons aButtons, Qt::Orientation aOrientation, QWidget *aParent)
-   : QDialogButtonBox (aButtons, aOrientation, aParent)
+   : QIWithRetranslateUI<QDialogButtonBox> (aParent)
 {
+    setOrientation (aOrientation);
+    setStandardButtons (aButtons);
+
     retranslateUi();
 }
@@ -53,20 +56,4 @@
 }
 
-void QIDialogButtonBox::changeEvent (QEvent *aEvent)
-{
-    QDialogButtonBox::changeEvent (aEvent);
-    switch (aEvent->type())
-    {
-        case QEvent::LanguageChange:
-        {
-            retranslateUi();
-            aEvent->accept();
-            break;
-        }
-        default: 
-            break;
-    }
-}
-
 void QIDialogButtonBox::retranslateUi()
 {
Index: trunk/src/VBox/Frontends/VirtualBox4/src/VBoxCloseVMDlg.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox4/src/VBoxCloseVMDlg.cpp	(revision 9053)
+++ trunk/src/VBox/Frontends/VirtualBox4/src/VBoxCloseVMDlg.cpp	(revision 9056)
@@ -28,8 +28,8 @@
 
 VBoxCloseVMDlg::VBoxCloseVMDlg (QWidget *aParent)
-    : QIDialog (aParent, Qt::Sheet)
+    : QIWithRetranslateUI2<QIDialog> (aParent, Qt::Sheet)
 {
     /* Apply UI decorations */
-    setupUi (this);
+    Ui::VBoxCloseVMDlg::setupUi (this);
 
     /* Set fixed size */
@@ -40,2 +40,8 @@
 }
 
+void VBoxCloseVMDlg::retranslateUi()
+{
+    /* Translate uic generated strings */
+    Ui::VBoxCloseVMDlg::retranslateUi (this);
+}
+
Index: trunk/src/VBox/Frontends/VirtualBox4/src/VBoxConsoleWnd.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox4/src/VBoxConsoleWnd.cpp	(revision 9053)
+++ trunk/src/VBox/Frontends/VirtualBox4/src/VBoxConsoleWnd.cpp	(revision 9056)
@@ -112,5 +112,5 @@
 VBoxConsoleWnd (VBoxConsoleWnd **aSelf, QWidget* aParent,
                 Qt::WFlags aFlags)
-    : QMainWindow (aParent, aFlags)
+    : QIWithRetranslateUI2<QMainWindow> (aParent, aFlags)
     , mMainMenu (0)
 #ifdef VBOX_WITH_DEBUGGER_GUI
@@ -1458,20 +1458,4 @@
 #endif
 
-void VBoxConsoleWnd::changeEvent (QEvent *aEvent)
-{
-    QMainWindow::changeEvent (aEvent);
-    switch (aEvent->type())
-    {
-        case QEvent::LanguageChange:
-        {
-            retranslateUi();
-            aEvent->accept();
-            break;
-        }
-        default:
-            break;
-    }
-}
-
 /**
  *  Sets the strings of the subwidgets using the current
Index: trunk/src/VBox/Frontends/VirtualBox4/src/VBoxDownloaderWgt.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox4/src/VBoxDownloaderWgt.cpp	(revision 9053)
+++ trunk/src/VBox/Frontends/VirtualBox4/src/VBoxDownloaderWgt.cpp	(revision 9056)
@@ -127,5 +127,5 @@
 VBoxDownloaderWgt::VBoxDownloaderWgt (QStatusBar *aStatusBar, QAction *aAction,
                                       const QString &aUrl, const QString &aTarget)
-    : QWidget ()
+    : QIWithRetranslateUI<QWidget> ()
     , mUrl (aUrl), mTarget (aTarget)
     , mStatusBar (aStatusBar), mAction (aAction)
@@ -172,20 +172,4 @@
     /* Try to get the required file for the information */
     getFile();
-}
-
-void VBoxDownloaderWgt::changeEvent (QEvent *aEvent)
-{
-    QWidget::changeEvent (aEvent);
-    switch (aEvent->type())
-    {
-        case QEvent::LanguageChange:
-        {
-            retranslateUi();
-            aEvent->accept();
-            break;
-        }
-        default: 
-            break;
-    }
 }
 
Index: trunk/src/VBox/Frontends/VirtualBox4/src/VBoxGlobal.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox4/src/VBoxGlobal.cpp	(revision 9053)
+++ trunk/src/VBox/Frontends/VirtualBox4/src/VBoxGlobal.cpp	(revision 9056)
@@ -280,4 +280,6 @@
                         QApplication::postEvent (&mGlobal, new VBoxCanShowRegDlgEvent (false));
                 }
+                if (sKey == "GUI/LanguageID")
+                    QApplication::postEvent (&mGlobal, new VBoxChangeGUILanguageEvent (sVal));
 
                 mMutex.lock();
@@ -4011,4 +4013,9 @@
             return true;
         }
+        case VBoxDefs::ChangeGUILanguageEventType:
+        {
+            loadLanguage (static_cast<VBoxChangeGUILanguageEvent*> (e)->mLangId);
+            return true;
+        }
 
         default:
Index: trunk/src/VBox/Frontends/VirtualBox4/src/VBoxSelectorWnd.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox4/src/VBoxSelectorWnd.cpp	(revision 9053)
+++ trunk/src/VBox/Frontends/VirtualBox4/src/VBoxSelectorWnd.cpp	(revision 9056)
@@ -54,5 +54,5 @@
  *  and another one for inaccessibility errors.
  */
-class VBoxVMDetailsView : public QStackedWidget
+class VBoxVMDetailsView : public QIWithRetranslateUI<QStackedWidget>
 {
     Q_OBJECT;
@@ -88,5 +88,4 @@
 protected:
 
-    virtual void changeEvent (QEvent *aEvent);
     void retranslateUi();
 
@@ -119,5 +118,5 @@
 VBoxVMDetailsView::VBoxVMDetailsView (QWidget *aParent,
                                       QAction *aRefreshAction /* = NULL */)
-    : QStackedWidget (aParent)
+    : QIWithRetranslateUI<QStackedWidget> (aParent)
     , mErrBox (NULL), mErrLabel (NULL), mErrText (NULL)
     , mRefreshButton (NULL)
@@ -184,20 +183,4 @@
 
     retranslateUi();
-}
-
-void VBoxVMDetailsView::changeEvent (QEvent *aEvent)
-{
-    QStackedWidget::changeEvent (aEvent);
-    switch (aEvent->type())
-    {
-        case QEvent::LanguageChange:
-        {
-            retranslateUi();
-            aEvent->accept();
-            break;
-        }
-        default: 
-            break;
-    }
 }
 
@@ -229,5 +212,5 @@
  *  Comments page widget to represent VM comments.
  */
-class VBoxVMDescriptionPage : public QWidget
+class VBoxVMDescriptionPage : public QIWithRetranslateUI<QWidget>
 {
     Q_OBJECT;
@@ -244,5 +227,4 @@
 protected:
 
-    virtual void changeEvent (QEvent *aEvent);
     void retranslateUi();
 
@@ -262,5 +244,5 @@
 
 VBoxVMDescriptionPage::VBoxVMDescriptionPage (VBoxSelectorWnd *aParent)
-    : QWidget (aParent)
+    : QIWithRetranslateUI<QWidget> (aParent)
     , mItem (NULL), mParent (aParent)
     , mBtnEdit (0), mBrowser (0), mLabel (0)
@@ -342,20 +324,4 @@
     /* check initial machine and session states */
     updateState();
-}
-
-void VBoxVMDescriptionPage::changeEvent (QEvent *aEvent)
-{
-    QWidget::changeEvent (aEvent);
-    switch (aEvent->type())
-    {
-        case QEvent::LanguageChange:
-        {
-            retranslateUi();
-            aEvent->accept();
-            break;
-        }
-        default: 
-            break;
-    }
 }
 
@@ -421,5 +387,5 @@
 VBoxSelectorWnd (VBoxSelectorWnd **aSelf, QWidget* aParent,
                  Qt::WFlags aFlags)
-    : QMainWindow (aParent, aFlags)
+    : QIWithRetranslateUI2<QMainWindow> (aParent, aFlags)
     , doneInaccessibleWarningOnce (false)
 {
@@ -1163,20 +1129,4 @@
 }
 
-void VBoxSelectorWnd::changeEvent (QEvent *aEvent)
-{
-    QMainWindow::changeEvent (aEvent);
-    switch (aEvent->type())
-    {
-        case QEvent::LanguageChange:
-        {
-            retranslateUi();
-            aEvent->accept();
-            break;
-        }
-        default: 
-            break;
-    }
-}
-
 /**
  *  Sets the strings of the subwidgets using the current
Index: trunk/src/VBox/Frontends/VirtualBox4/src/VBoxSnapshotDetailsDlg.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox4/src/VBoxSnapshotDetailsDlg.cpp	(revision 9053)
+++ trunk/src/VBox/Frontends/VirtualBox4/src/VBoxSnapshotDetailsDlg.cpp	(revision 9056)
@@ -30,8 +30,8 @@
 
 VBoxSnapshotDetailsDlg::VBoxSnapshotDetailsDlg (QWidget *aParent)
-    : QDialog (aParent)
+    : QIWithRetranslateUI<QDialog> (aParent)
 {
     /* Apply UI decorations */
-    setupUi (this);
+    Ui::VBoxSnapshotDetailsDlg::setupUi (this);
 
     /* Setup mTeSummary browser. */
@@ -57,10 +57,5 @@
     mTeDescription->setText (aSnapshot.GetDescription());
 
-    /* Compose summary */
-    mTeSummary->setText (
-        vboxGlobal().detailsReport (machine, false /* isNewVM */,
-                                             false /* withLinks */));
-    setWindowTitle (tr ("Details of %1 (%2)")
-                    .arg (mSnapshot.GetName()).arg (machine.GetName()));
+    retranslateUi();
 }
 
@@ -73,4 +68,23 @@
 }
 
+void VBoxSnapshotDetailsDlg::retranslateUi()
+{
+    /* Translate uic generated strings */
+    Ui::VBoxSnapshotDetailsDlg::retranslateUi (this);
+
+    if(mSnapshot.isNull())
+        return;
+
+    CMachine machine = mSnapshot.GetMachine();
+
+    setWindowTitle (tr ("Details of %1 (%2)")
+                    .arg (mSnapshot.GetName()).arg (machine.GetName()));
+
+    /* Compose summary */
+    mTeSummary->setText (
+        vboxGlobal().detailsReport (machine, false /* isNewVM */,
+                                             false /* withLinks */));
+}
+
 void VBoxSnapshotDetailsDlg::onNameChanged (const QString &aText)
 {
Index: trunk/src/VBox/Frontends/VirtualBox4/src/VBoxSnapshotsWgt.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox4/src/VBoxSnapshotsWgt.cpp	(revision 9053)
+++ trunk/src/VBox/Frontends/VirtualBox4/src/VBoxSnapshotsWgt.cpp	(revision 9056)
@@ -244,5 +244,5 @@
 
 VBoxSnapshotsWgt::VBoxSnapshotsWgt (QWidget *aParent)
-    : QWidget (aParent)
+    : QIWithRetranslateUI<QWidget> (aParent)
     , mCurSnapshotItem (0)
     , mContextMenu (new QMenu (this))
@@ -665,20 +665,4 @@
 }
 
-void VBoxSnapshotsWgt::changeEvent (QEvent *aEvent)
-{
-    QWidget::changeEvent (aEvent);
-    switch (aEvent->type())
-    {
-        case QEvent::LanguageChange:
-        {
-            retranslateUi();
-            aEvent->accept();
-            break;
-        }
-        default: 
-            break;
-    }
-}
-
 void VBoxSnapshotsWgt::retranslateUi()
 {
Index: trunk/src/VBox/Frontends/VirtualBox4/src/VBoxVMInformationDlg.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox4/src/VBoxVMInformationDlg.cpp	(revision 9053)
+++ trunk/src/VBox/Frontends/VirtualBox4/src/VBoxVMInformationDlg.cpp	(revision 9056)
@@ -52,5 +52,5 @@
                                             const CSession &aSession,
                                             Qt::WindowFlags aFlags)
-    : QIAbstractDialog (aConsole, aFlags)
+    : QIWithRetranslateUI2<QIAbstractDialog> (aConsole, aFlags)
     , mIsPolished (false)
     , mConsole (aConsole)
@@ -128,24 +128,10 @@
 }
 
-void VBoxVMInformationDlg::changeEvent (QEvent *aEvent)
-{
-    QIAbstractDialog::changeEvent (aEvent);
-    switch (aEvent->type())
-    {
-        case QEvent::LanguageChange:
-        {
-            retranslateUi();
-            aEvent->accept();
-            break;
-        }
-        default: 
-            break;
-    }
-}
-
 void VBoxVMInformationDlg::retranslateUi()
 {
     /* Translate uic generated strings */
     Ui::VBoxVMInformationDlg::retranslateUi (this);
+
+    updateDetails();
     
     AssertReturnVoid (!mSession.isNull()); 
