Changeset 2998 for vidalia/trunk

Show
Ignore:
Timestamp:
08/20/08 01:27:11 (3 months ago)
Author:
edmanm
Message:

Try to load a translation for the current language from Qt's translations
directory, so we can get Qt's internal widgets (e.g. QDialogButtonBox)
translated.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • vidalia/trunk/src/vidalia/languagesupport.cpp

    r2811 r2998  
    1717#include <QTranslator> 
    1818#include <QLocale> 
     19#include <QLibraryInfo> 
    1920#include <vidalia.h> 
    2021 
     
    139140    return true; 
    140141 
    141   QTranslator *translator = new QTranslator(vApp); 
    142   if (translator->load(QString(":/lang/vidalia_%1.qm").arg(languageCode))) { 
    143     QApplication::installTranslator(translator); 
    144     if (isRightToLeft(languageCode)) 
    145       vApp->setLayoutDirection(Qt::RightToLeft); 
     142  /* Attempt to load the translations for Qt's internal widgets from their 
     143   * installed Qt directory. */ 
     144  QTranslator *systemQtTranslator = new QTranslator(vApp); 
     145  Q_CHECK_PTR(systemQtTranslator); 
     146 
     147  QString qtDir = QLibraryInfo::location(QLibraryInfo::TranslationsPath); 
     148  if (systemQtTranslator->load(qtDir + "/qt_" + languageCode + ".qm")) 
     149    QApplication::installTranslator(systemQtTranslator); 
     150  else 
     151    delete systemQtTranslator; 
     152 
     153  /* Install a translator for Vidalia's UI widgets */ 
     154  QTranslator *vidaliaTranslator = new QTranslator(vApp); 
     155  Q_CHECK_PTR(vidaliaTranslator); 
     156 
     157  if (vidaliaTranslator->load(":/lang/vidalia_" + languageCode + ".qm")) { 
     158    QApplication::installTranslator(vidaliaTranslator); 
    146159    return true; 
    147160  } 
    148   delete translator; 
     161  delete vidaliaTranslator; 
    149162  return false; 
    150163} 
    151