Index: /trunk/src/VBox/Main/include/VirtualBoxClientImpl.h
===================================================================
--- /trunk/src/VBox/Main/include/VirtualBoxClientImpl.h	(revision 91389)
+++ /trunk/src/VBox/Main/include/VirtualBoxClientImpl.h	(revision 91390)
@@ -106,5 +106,5 @@
 #ifdef VBOX_WITH_MAIN_NLS
         VirtualBoxTranslator *m_pVBoxTranslator;
-        TRCOMPONENT           m_pTrComponent;
+        PTRCOMPONENT          m_pTrComponent;
 #endif
     };
Index: /trunk/src/VBox/Main/include/VirtualBoxTranslator.h
===================================================================
--- /trunk/src/VBox/Main/include/VirtualBoxTranslator.h	(revision 91389)
+++ /trunk/src/VBox/Main/include/VirtualBoxTranslator.h	(revision 91390)
@@ -27,6 +27,4 @@
 #include <VBox/com/AutoLock.h>
 
-typedef void *TRCOMPONENT;
-
 class QMTranslator;
 
@@ -35,5 +33,4 @@
 {
 public:
-
     virtual ~VirtualBoxTranslator();
 
@@ -46,24 +43,32 @@
     HRESULT loadLanguage(ComPtr<IVirtualBox> aVirtualBox);
 
+    /** Pointer to a translator component. */
+    typedef struct TranslatorComponent *PTRCOMPONENT;
+
     /**
-     * Adds path containing translation files into list of known paths.
-     * Path should include translation file prefix.
+     * Registers the translation for a component.
      *
      * @returns VBox status code
-     * @param aTranslationPath   Path to translation files including file prefix
-     * @param aDefault           Use as default translation component, i.e.
-     *                           Use this path for translation if component
-     *                           is NULL
-     * @param aComponent         Where is the pointer to component returned
+     * @param aTranslationPath  Path to the translation files, this includes the
+     *                          base filename prefix.
+     * @param aDefault          Use this as the default translation component, i.e.
+     *                          when translate() is called with NULL for @a
+     *                          aComponent.
+     * @param aComponent        Pointer to where is the component handle should be
+     *                          returned on success.  The return value must be used
+     *                          for all subsequent calls to translate().
      */
     static int registerTranslation(const char *aTranslationPath,
                                    bool aDefault,
-                                   TRCOMPONENT *aComponent);
+                                   PTRCOMPONENT *aComponent);
 
     /**
-     * Removes the path from list of known paths.
-     * Does not remove already loaded translation from string cache.
+     * Removes translations for a component.
+     *
+     * @returns VBox status code
+     * @param   aComponent      The component.  NULL is quietly (VWRN_NOT_FOUND)
+     *                          ignored .
      */
-    static int unregisterTranslation(TRCOMPONENT aComponent);
+    static int unregisterTranslation(PTRCOMPONENT aComponent);
 
     /**
@@ -74,5 +79,5 @@
      *          valid only during lifetime of the translator instance.
      */
-    static const char *translate(TRCOMPONENT aComponent,
+    static const char *translate(PTRCOMPONENT aComponent,
                                  const char *aContext,
                                  const char *aSourceText,
@@ -97,9 +102,9 @@
     uint32_t m_cInstanceRefs;
 
+    /** Translator component. */
     struct TranslatorComponent
     {
         QMTranslator *pTranslator;
-        /* Path to translation files. It includes file prefix, i.e
-         * /path/to/folder/file_prefix */
+        /** Path to translation files. It includes file prefix, i.e '/path/to/folder/file_prefix'. */
         com::Utf8Str  strPath;
 
@@ -128,9 +133,9 @@
     int i_registerTranslation(const char *aTranslationPath,
                               bool aDefault,
-                              TRCOMPONENT *aComponent);
+                              PTRCOMPONENT *aComponent);
 
-    int i_unregisterTranslation(TRCOMPONENT aComponent);
+    int i_unregisterTranslation(PTRCOMPONENT aComponent);
 
-    const char *i_translate(TRCOMPONENT aComponent,
+    const char *i_translate(PTRCOMPONENT aComponent,
                             const char *aContext,
                             const char *aSourceText,
@@ -139,4 +144,7 @@
 };
 
+/** Pointer to a translator component. */
+typedef VirtualBoxTranslator::PTRCOMPONENT PTRCOMPONENT;
+
 #endif /* !MAIN_INCLUDED_VirtualBoxTranslator_h */
 /* vi: set tabstop=4 shiftwidth=4 expandtab: */
Index: /trunk/src/VBox/Main/src-all/ExtPackManagerImpl.cpp
===================================================================
--- /trunk/src/VBox/Main/src-all/ExtPackManagerImpl.cpp	(revision 91389)
+++ /trunk/src/VBox/Main/src-all/ExtPackManagerImpl.cpp	(revision 91390)
@@ -150,5 +150,5 @@
 #endif
 #ifdef VBOX_WITH_MAIN_NLS
-    TRCOMPONENT         pTrComponent;
+    PTRCOMPONENT        pTrComponent;
 #endif
 
Index: /trunk/src/VBox/Main/src-all/VirtualBoxTranslator.cpp
===================================================================
--- /trunk/src/VBox/Main/src-all/VirtualBoxTranslator.cpp	(revision 91389)
+++ /trunk/src/VBox/Main/src-all/VirtualBoxTranslator.cpp	(revision 91390)
@@ -330,5 +330,5 @@
 int VirtualBoxTranslator::registerTranslation(const char *aTranslationPath,
                                               bool aDefault,
-                                              TRCOMPONENT *aComponent)
+                                              PTRCOMPONENT *aComponent)
 {
     VirtualBoxTranslator *pCurrInstance = VirtualBoxTranslator::tryInstance();
@@ -345,5 +345,5 @@
 int VirtualBoxTranslator::i_registerTranslation(const char *aTranslationPath,
                                                 bool aDefault,
-                                                TRCOMPONENT *aComponent)
+                                                PTRCOMPONENT *aComponent)
 {
     AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);
@@ -358,5 +358,5 @@
             if (aDefault)
                 m_pDefaultComponent = pComponent;
-            *aComponent = (TRCOMPONENT)pComponent;
+            *aComponent = (PTRCOMPONENT)pComponent;
             return VINF_SUCCESS;
         }
@@ -376,5 +376,5 @@
     if (aDefault)
         m_pDefaultComponent = pComponent;
-    *aComponent = (TRCOMPONENT)pComponent;
+    *aComponent = (PTRCOMPONENT)pComponent;
     /* ignore the error during loading because path
      * could contain no translation for current language */
@@ -384,18 +384,25 @@
 
 
-int VirtualBoxTranslator::unregisterTranslation(TRCOMPONENT aComponent)
-{
-    VirtualBoxTranslator *pCurrInstance = VirtualBoxTranslator::tryInstance();
-    int rc = VERR_GENERAL_FAILURE;
-    if (pCurrInstance != NULL)
-    {
-        rc = pCurrInstance->i_unregisterTranslation(aComponent);
-        pCurrInstance->release();
-    }
+int VirtualBoxTranslator::unregisterTranslation(PTRCOMPONENT aComponent)
+{
+    int rc;
+    if (aComponent != NULL)
+    {
+        VirtualBoxTranslator *pCurrInstance = VirtualBoxTranslator::tryInstance();
+        if (pCurrInstance != NULL)
+        {
+            rc = pCurrInstance->i_unregisterTranslation(aComponent);
+            pCurrInstance->release();
+        }
+        else
+            rc = VERR_GENERAL_FAILURE;
+    }
+    else
+        rc = VWRN_NOT_FOUND;
     return rc;
 }
 
 
-int VirtualBoxTranslator::i_unregisterTranslation(TRCOMPONENT aComponent)
+int VirtualBoxTranslator::i_unregisterTranslation(PTRCOMPONENT aComponent)
 {
     AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);
@@ -422,5 +429,5 @@
 
 
-const char *VirtualBoxTranslator::translate(TRCOMPONENT aComponent,
+const char *VirtualBoxTranslator::translate(PTRCOMPONENT aComponent,
                                             const char *aContext,
                                             const char *aSourceText,
@@ -466,5 +473,5 @@
 
 
-const char *VirtualBoxTranslator::i_translate(TRCOMPONENT aComponent,
+const char *VirtualBoxTranslator::i_translate(PTRCOMPONENT aComponent,
                                               const char *aContext,
                                               const char *aSourceText,
Index: /trunk/src/VBox/Main/src-server/VirtualBoxImpl.cpp
===================================================================
--- /trunk/src/VBox/Main/src-server/VirtualBoxImpl.cpp	(revision 91389)
+++ /trunk/src/VBox/Main/src-server/VirtualBoxImpl.cpp	(revision 91390)
@@ -411,5 +411,5 @@
 #ifdef VBOX_WITH_MAIN_NLS
     VirtualBoxTranslator               *pVBoxTranslator;
-    TRCOMPONENT                         pTrComponent;
+    PTRCOMPONENT                        pTrComponent;
 #endif
 #if defined(RT_OS_WINDOWS) && defined(VBOXSVC_WITH_CLIENT_WATCHER)
