rockbox/rbutil/rbutilqt/main.cpp
Dominik Riebeling d258c58937 Remove ugly RTL writing direction hack.
Instead of hard coding the languages to be rendered as RTL make it dependent on
a translation string. Translate the string LTR to RTL to switch to RTL layout.
This is equivalent to the handling done in the i18n example for Qt Jambi and
while not the best solution at least cleaner than hardcoded languages.

Update hebrew translation for this which is currently the only RTL translation.
lupdate all other translations.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26865 a1c6a512-1295-4272-9138-f99709370657
2010-06-15 21:14:11 +00:00

80 lines
2.8 KiB
C++

/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
*
* Copyright (C) 2007 by Dominik Riebeling
* $Id$
*
* All files in this archive are subject to the GNU General Public License.
* See the file COPYING in the source tree root for full license agreement.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
#include <QtGui>
#include "rbutilqt.h"
#include "systrace.h"
#ifdef STATIC
#include <QtPlugin>
Q_IMPORT_PLUGIN(qtaccessiblewidgets)
#endif
int main( int argc, char ** argv ) {
qInstallMsgHandler(SysTrace::debug);
QApplication app( argc, argv );
#if defined(Q_OS_MAC)
QDir dir(QApplication::applicationDirPath());
dir.cdUp();
dir.cd("plugins");
QApplication::addLibraryPath(dir.absolutePath());
#endif
QString absolutePath = QCoreApplication::instance()->applicationDirPath();
// portable installation:
// check for a configuration file in the program folder.
QSettings *user;
if(QFileInfo(absolutePath + "/RockboxUtility.ini").isFile())
user = new QSettings(absolutePath + "/RockboxUtility.ini", QSettings::IniFormat, 0);
else user = new QSettings(QSettings::IniFormat, QSettings::UserScope, "rockbox.org", "RockboxUtility");
QString applang = QLocale::system().name();
QTranslator translator;
QTranslator qttrans;
// install translator
if(!user->value("lang", "").toString().isEmpty()) {
applang = user->value("lang", "").toString();
}
if(!applang.isEmpty()) {
if(!translator.load("rbutil_" + applang, absolutePath))
translator.load("rbutil_" + applang, ":/lang");
if(!qttrans.load("qt_" + applang,
QLibraryInfo::location(QLibraryInfo::TranslationsPath)))
qttrans.load("qt_" + applang, ":/lang");
QLocale::setDefault(applang);
}
delete user;
app.installTranslator(&translator);
app.installTranslator(&qttrans);
//: This string is used to indicate the writing direction. Translate it
//: to "RTL" (without quotes) for RTL languages. Anything else will get
//: treated as LTR language.
if(QObject::tr("LTR") == "RTL")
app.setLayoutDirection(Qt::RightToLeft);
RbUtilQt window(0);
window.show();
// app.connect( &app, SIGNAL(lastWindowClosed()), &app, SLOT(quit()) );
return app.exec();
}