d258c58937
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
80 lines
2.8 KiB
C++
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();
|
|
|
|
}
|