From 45efb2e9410364400e51ba4184e92a4d3e055d85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mathias=20Panzenb=C3=B6ck?= Date: Sun, 23 Feb 2014 18:27:27 +0100 Subject: [PATCH] internationalization (but no localization yet) --- src/axis.cpp | 10 ++++----- src/axis_edit.cpp | 32 ++++++++++++++--------------- src/button.cpp | 4 ++-- src/button_edit.cpp | 6 +++--- src/getkey.cpp | 8 +++----- src/icon.cpp | 2 +- src/joypad.cpp | 12 +++++------ src/joypad.h | 2 +- src/joypadw.cpp | 7 ++++--- src/keycode.cpp | 10 ++++----- src/layout.cpp | 49 ++++++++++++++++++++++++++------------------- src/layout_edit.cpp | 14 ++++++------- src/main.cpp | 38 ++++++++++++++++++++--------------- src/quickset.cpp | 14 +++++++------ 14 files changed, 111 insertions(+), 97 deletions(-) diff --git a/src/axis.cpp b/src/axis.cpp index 06d8d8a..27a04eb 100644 --- a/src/axis.cpp +++ b/src/axis.cpp @@ -282,20 +282,20 @@ QString Axis::status() { if (mode == Keyboard) { if (throttle == 0) { if (puseMouse != nuseMouse) { - result += "KEYBOARD/MOUSE"; + result += tr("KEYBOARD/MOUSE"); } else if (puseMouse) { - result += "MOUSE"; + result += tr("MOUSE"); } else { - result += "KEYBOARD"; + result += tr("KEYBOARD"); } } else { - result += "THROTTLE"; + result += tr("THROTTLE"); } } - else result += "MOUSE"; + else result += tr("MOUSE"); return result + "]"; } diff --git a/src/axis_edit.cpp b/src/axis_edit.cpp index 7faac7e..e17797b 100644 --- a/src/axis_edit.cpp +++ b/src/axis_edit.cpp @@ -23,26 +23,26 @@ AxisEdit::AxisEdit( Axis* ax ) QVBoxLayout* v2 = new QVBoxLayout(); v2->setMargin(5); v2->setSpacing(5); - chkGradient = new QCheckBox("&Gradient", this); + chkGradient = new QCheckBox(tr("&Gradient"), this); chkGradient->setChecked(axis->gradient); connect(chkGradient, SIGNAL(toggled(bool)), this, SLOT( gradientChanged( bool ))); v2->addWidget(chkGradient); cmbMode = new QComboBox(this); - cmbMode->insertItem((int) Axis::Keyboard, QString("Keyboard/Mouse Button"), Qt::DisplayRole); - cmbMode->insertItem((int) Axis::MousePosVert,QString("Mouse (Vert.)"),Qt::DisplayRole); - cmbMode->insertItem((int) Axis::MouseNegVert, QString("Mouse (Vert. Rev.)"), Qt::DisplayRole); - cmbMode->insertItem((int) Axis::MousePosHor, "Mouse (Hor.)", Qt::DisplayRole); - cmbMode->insertItem((int) Axis::MouseNegHor, QString("Mouse (Hor. Rev.)"), Qt::DisplayRole); + cmbMode->insertItem((int) Axis::Keyboard, tr("Keyboard/Mouse Button"), Qt::DisplayRole); + cmbMode->insertItem((int) Axis::MousePosVert, tr("Mouse (Vert.)"),Qt::DisplayRole); + cmbMode->insertItem((int) Axis::MouseNegVert, tr("Mouse (Vert. Rev.)"), Qt::DisplayRole); + cmbMode->insertItem((int) Axis::MousePosHor, tr("Mouse (Hor.)"), Qt::DisplayRole); + cmbMode->insertItem((int) Axis::MouseNegHor, tr("Mouse (Hor. Rev.)"), Qt::DisplayRole); cmbMode->setCurrentIndex( axis->mode ); connect(cmbMode, SIGNAL(activated(int)), this, SLOT( modeChanged( int ))); v2->addWidget(cmbMode); cmbTransferCurve = new QComboBox(this); - cmbTransferCurve->insertItem(Axis::Linear, QString("Linear"), Qt::DisplayRole); - cmbTransferCurve->insertItem(Axis::Quadratic, QString("Quadratic"),Qt::DisplayRole ); - cmbTransferCurve->insertItem(Axis::Cubic, QString("Cubic"),Qt::DisplayRole ); - cmbTransferCurve->insertItem(Axis::QuadraticExtreme, QString("Quadratic Extreme"), Qt::DisplayRole); - cmbTransferCurve->insertItem(Axis::PowerFunction, QString("Power Function"), Qt::DisplayRole); + cmbTransferCurve->insertItem(Axis::Linear, tr("Linear"), Qt::DisplayRole); + cmbTransferCurve->insertItem(Axis::Quadratic, tr("Quadratic"), Qt::DisplayRole ); + cmbTransferCurve->insertItem(Axis::Cubic, tr("Cubic"), Qt::DisplayRole ); + cmbTransferCurve->insertItem(Axis::QuadraticExtreme, tr("Quadratic Extreme"), Qt::DisplayRole); + cmbTransferCurve->insertItem(Axis::PowerFunction, tr("Power Function"), Qt::DisplayRole); cmbTransferCurve->setCurrentIndex( axis->transferCurve ); cmbTransferCurve->setEnabled(axis->gradient); connect(cmbTransferCurve, SIGNAL(activated(int)), this, SLOT( transferCurveChanged( int ))); @@ -55,14 +55,14 @@ AxisEdit::AxisEdit( Axis* ax ) v2->setSpacing(5); v2->setMargin(5); //v2->setAutoAdd(true); - QLabel *mouseLabel = new QLabel("&Mouse Speed", mouseBox); + QLabel *mouseLabel = new QLabel(tr("&Mouse Speed"), mouseBox); v2->addWidget(mouseLabel); spinSpeed = new QSpinBox(mouseBox); spinSpeed->setRange(0,MAXMOUSESPEED); spinSpeed->setSingleStep(1); spinSpeed->setValue(axis->maxSpeed); v2->addWidget(spinSpeed); - lblSensitivity = new QLabel("&Sensitivity", mouseBox); + lblSensitivity = new QLabel(tr("&Sensitivity"), mouseBox); v2->addWidget(lblSensitivity); spinSensitivity = new QDoubleSpinBox(mouseBox); spinSensitivity->setRange(1e-3F, 1e+3F); @@ -86,9 +86,9 @@ AxisEdit::AxisEdit( Axis* ax ) btnNeg = new KeyButton(axis->getName(),axis->nkeycode,keyBox,true,axis->nuseMouse); cmbThrottle = new QComboBox(keyBox); - cmbThrottle->insertItem(0,"Neg. Throttle",Qt::DisplayRole); - cmbThrottle->insertItem(1,"No Throttle",Qt::DisplayRole); - cmbThrottle->insertItem(2,"Pos. Throttle",Qt::DisplayRole); + cmbThrottle->insertItem(0, tr("Neg. Throttle"), Qt::DisplayRole); + cmbThrottle->insertItem(1, tr("No Throttle"), Qt::DisplayRole); + cmbThrottle->insertItem(2, tr("Pos. Throttle"), Qt::DisplayRole); cmbThrottle->setCurrentIndex(axis->throttle + 1); connect( cmbThrottle, SIGNAL( activated( int )), this, SLOT( throttleChanged( int ))); diff --git a/src/button.cpp b/src/button.cpp index 48b5af6..85c203e 100644 --- a/src/button.cpp +++ b/src/button.cpp @@ -125,10 +125,10 @@ bool Button::isDefault() { QString Button::status() { if (useMouse) { - return QString("%1 : Mouse %2").arg(getName()).arg(keycode); + return tr("%1 : Mouse %2").arg(getName()).arg(keycode); } else { - return QString("%1 : %2").arg(getName(), ktos(keycode)); + return tr("%1 : %2").arg(getName(), ktos(keycode)); } } diff --git a/src/button_edit.cpp b/src/button_edit.cpp index 41cb664..0d37cb8 100644 --- a/src/button_edit.cpp +++ b/src/button_edit.cpp @@ -9,7 +9,7 @@ ButtonEdit::ButtonEdit(Button* butt) setModal(true); //build the dialog! button = butt; - setWindowTitle("Set " + button->getName()); + setWindowTitle(tr("Set %1").arg(button->getName())); setWindowIcon(QPixmap(QJOYPAD_ICON24)); QVBoxLayout* v = new QVBoxLayout(this); @@ -20,10 +20,10 @@ ButtonEdit::ButtonEdit(Button* butt) v->addWidget(btnKey); QHBoxLayout* h = new QHBoxLayout(); - chkSticky = new QCheckBox("&Sticky", this); + chkSticky = new QCheckBox(tr("&Sticky"), this); chkSticky->setChecked(button->sticky); h->addWidget(chkSticky); - chkRapid = new QCheckBox("&Rapid Fire", this); + chkRapid = new QCheckBox(tr("&Rapid Fire"), this); chkRapid->setChecked(button->rapidfire); h->addWidget(chkRapid); v->addLayout(h); diff --git a/src/getkey.cpp b/src/getkey.cpp index ff58798..ea155b9 100644 --- a/src/getkey.cpp +++ b/src/getkey.cpp @@ -7,21 +7,19 @@ GetKey::GetKey( QString button, bool m ) { //prepare the dialog mouse = m; - setWindowTitle( "Choose a key" ); + setWindowTitle( tr("Choose a key") ); setWindowIcon(QIcon(QJOYPAD_ICON24)); //I'd use a QLabel, but that steals x11Events! //So, I'll draw the text directly. That means //I need to resolve the size of the dialog by hand: - text = "Choose a new key "; - if (mouse) text += "or mouse button "; - text += "for " + button; + text = (mouse ? tr("Choose a new key or mouse button for %1") : tr("Choose a new key for %1")).arg(button); QRect rect = fontMetrics().boundingRect( text ); //I calculate the size based on the first line of text, which is longer. //The fontMetrics function is dumb and would treat the string with a //newline in it as a continues flow of characters if I did the whole string //at once. - text += "\n(Ctrl-X for no key)"; + text += tr("\n(Ctrl-X for no key)"); //now I add 20 pixels of padding and double the height to make room for //two lines. setFixedSize( QSize( rect.width() + 20, rect.height()*2 + 20 ) ); diff --git a/src/icon.cpp b/src/icon.cpp index 92bb5d2..83a5f89 100644 --- a/src/icon.cpp +++ b/src/icon.cpp @@ -9,7 +9,7 @@ FloatingIcon::FloatingIcon( const QString &icon, QMenu *popup, QWidget *parent, setAttribute(Qt::WA_QuitOnClose); setAttribute(Qt::WA_TranslucentBackground); setWindowFlags(Qt::FramelessWindowHint); - setWindowTitle(QJOYPAD_NAME " Floating Icon"); + setWindowTitle(tr("%1 Floating Icon").arg(QJOYPAD_NAME)); pop = popup; setFixedSize(this->icon.width(),this->icon.height()); diff --git a/src/joypad.cpp b/src/joypad.cpp index c6acc3a..7d6aacb 100644 --- a/src/joypad.cpp +++ b/src/joypad.cpp @@ -137,14 +137,14 @@ bool JoyPad::readConfig( QTextStream &stream ) { if (num > 0) { stream >> ch; if (ch != ':') { - errorBox("Layout file error", QString("Expected ':', found '%1'.").arg(ch)); + errorBox(tr("Layout file error"), tr("Expected ':', found '%1'.").arg(ch)); return false; } if (buttons[num-1] == 0) { buttons.insert(num-1,new Button(num-1,this)); } if (!buttons[num-1]->read( stream )) { - errorBox("Layout file error", QString("Error reading Button %1").arg(num)); + errorBox(tr("Layout file error"), tr("Error reading Button %1").arg(num)); return false; } } @@ -157,20 +157,20 @@ bool JoyPad::readConfig( QTextStream &stream ) { if (num > 0) { stream >> ch; if (ch != ':') { - errorBox("Layout file error", QString("Expected ':', found '%1'.").arg(ch)); + errorBox(tr("Layout file error"), tr("Expected ':', found '%1'.").arg(ch)); return false; } if (axes[num-1] == 0) { axes.insert(num-1,new Axis(num-1,this)); } if (!axes[num-1]->read(stream)) { - errorBox("Layout file error", QString("Error reading Axis %1").arg(num)); + errorBox(tr("Layout file error"), tr("Error reading Axis %1").arg(num)); return false; } } } else { - errorBox( "Layout file error", QString("Error while reading layout. Unrecognized word: %1").arg(word) ); + errorBox(tr("Layout file error"), tr("Error while reading layout. Unrecognized word: %1").arg(word)); return false; } stream >> word; @@ -248,7 +248,7 @@ void JoyPad::handleJoyEvents() { void JoyPad::releaseWidget() { //this is how we know that there is no longer a JoyPadWidget around. - jpw = NULL; + jpw = 0; } void JoyPad::errorRead() { diff --git a/src/joypad.h b/src/joypad.h index f33d124..cfc464d 100644 --- a/src/joypad.h +++ b/src/joypad.h @@ -42,7 +42,7 @@ class JoyPad : public QObject { //read the dimensions on the real joystick and use them void open( int dev ); const QString& getDeviceId() const { return deviceId; } - QString getName() const { return QString("Joystick %1 (%2)").arg(index+1).arg(deviceId); } + QString getName() const { return tr("Joystick %1 (%2)").arg(index+1).arg(deviceId); } int getIndex() const { return index; } private: diff --git a/src/joypadw.cpp b/src/joypadw.cpp index b751980..2a16884 100644 --- a/src/joypadw.cpp +++ b/src/joypadw.cpp @@ -35,11 +35,11 @@ JoyPadWidget::JoyPadWidget( JoyPad* jp, int i, QWidget* parent ) insertCounter ++; } insertCounter += 2; - btnClear = new QPushButton(QIcon::fromTheme("edit-clear"), "Clear", this); + btnClear = new QPushButton(QIcon::fromTheme("edit-clear"), tr("Clear"), this); connect(btnClear, SIGNAL(clicked()), this, SLOT(clear())); layoutMain->addWidget(btnClear, insertCounter / 2, insertCounter % 2); insertCounter++; - btnAll = new QPushButton("Quick Set", this); + btnAll = new QPushButton(tr("Quick Set"), this); layoutMain->addWidget(btnAll, insertCounter / 2, insertCounter % 2); connect(btnAll, SIGNAL(clicked()), this, SLOT(setAll())); } @@ -57,8 +57,9 @@ void JoyPadWidget::flash( bool on ) { flashcount += (on?1:-1); //if we were on and should now be off, or visa versa, flash the whole widget - if (wasOn != (flashcount != 0)) + if (wasOn != (flashcount != 0)) { emit flashed(index); + } } void JoyPadWidget::update() { diff --git a/src/keycode.cpp b/src/keycode.cpp index 9801998..df0928e 100644 --- a/src/keycode.cpp +++ b/src/keycode.cpp @@ -80,7 +80,7 @@ const QString ktos( int keycode ) KeyButton::KeyButton( QString name, int val, QWidget* parent, bool m, bool nowMouse) - :QPushButton(nowMouse?"Mouse " + QString::number(val):QString(ktos(val)), parent) { + :QPushButton(nowMouse?tr("Mouse %1").arg(val):ktos(val), parent) { mouse = m; mouseClicked = nowMouse; buttonname = name; @@ -94,19 +94,19 @@ void KeyButton::onClick() { // -1 is a special value meaning that the window was simply // closed so we can ignore this if(retValue == -1) { - return; + return; } else { - value = retValue; + value = retValue; } //if the return value was a mouse click... if (value > MOUSE_OFFSET) { mouseClicked = true; value -= MOUSE_OFFSET; - setText( "Mouse " + QString::number(value)); + setText(tr("Mouse %1").arg(value)); } //otherwise, it was a key press! else { mouseClicked = false; - setText( ktos(value)); + setText(ktos(value)); } } diff --git a/src/layout.cpp b/src/layout.cpp index 2766b66..40b99b8 100644 --- a/src/layout.cpp +++ b/src/layout.cpp @@ -11,9 +11,9 @@ LayoutManager::LayoutManager( bool useTrayIcon, const QString &devdir, const QSt : devdir(devdir), settingsDir(settingsDir), layoutGroup(new QActionGroup(this)), titleAction(new QAction(this)), - updateDevicesAction(new QAction(QIcon::fromTheme("view-refresh"),"Update &Joystick Devices",this)), - updateLayoutsAction(new QAction(QIcon::fromTheme("view-refresh"),"Update &Layout List",this)), - quitAction(new QAction(QIcon::fromTheme("application-exit"),"&Quit",this)), + updateDevicesAction(new QAction(QIcon::fromTheme("view-refresh"),tr("Update &Joystick Devices"),this)), + updateLayoutsAction(new QAction(QIcon::fromTheme("view-refresh"),tr("Update &Layout List"),this)), + quitAction(new QAction(QIcon::fromTheme("application-exit"),tr("&Quit"),this)), le(0) { #ifdef WITH_LIBUDEV @@ -22,8 +22,8 @@ LayoutManager::LayoutManager( bool useTrayIcon, const QString &devdir, const QSt monitor = 0; if (!initUDev()) { - errorBox("UDev Error", "Error creating UDev monitor. " - "QJoyPad will still work, but it won't automatically update the joypad device list."); + errorBox(tr("UDev Error"), tr("Error creating UDev monitor. " + "QJoyPad will still work, but it won't automatically update the joypad device list.")); } #endif @@ -205,7 +205,7 @@ bool LayoutManager::load(const QString& name) { num = word.toInt(&okay); //make sure the number of the joystick is valid if (!okay || num < 1) { - errorBox( "Load error", QString("Error reading joystick definition. Unexpected token \"%1\". Expected a positive number.").arg(word)); + errorBox( tr("Load error"), tr("Error reading joystick definition. Unexpected token \"%1\". Expected a positive number.").arg(word)); if (name != currentLayout) reload(); else clear(); return false; @@ -213,7 +213,7 @@ bool LayoutManager::load(const QString& name) { stream.skipWhiteSpace(); stream >> ch; if (ch != QChar('{')) { - errorBox( "Load error", QString("Error reading joystick definition. Unexpected character \"%1\". Expected '{'.").arg(ch)); + errorBox( tr("Load error"), tr("Error reading joystick definition. Unexpected character \"%1\". Expected '{'.").arg(ch)); if (name != currentLayout) reload(); else clear(); return false; @@ -225,7 +225,7 @@ bool LayoutManager::load(const QString& name) { } //try to read the joypad, report error on fail. if (!joypads[index]->readConfig(stream)) { - errorBox( "Load error", QString("Error reading definition for joystick %1.").arg(index)); + errorBox( tr("Load error"), tr("Error reading definition for joystick %1.").arg(index)); //if this was attempting to change to a new layout and it failed, //revert back to the old layout. if (name != currentLayout) reload(); @@ -240,7 +240,7 @@ bool LayoutManager::load(const QString& name) { stream.readLine(); } else { - errorBox("Load error", QString("Error reading joystick definition. Unexpected token \"%1\". Expected \"Joystick\".").arg(word)); + errorBox(tr("Load error"), tr("Error reading joystick definition. Unexpected token \"%1\". Expected \"Joystick\".").arg(word)); if (name != currentLayout) reload(); else clear(); return false; @@ -304,22 +304,26 @@ void LayoutManager::save() { file.close(); } //if it's not, error. - else - errorBox("Save error", "Could not open file " + filename + ", layout not saved."); + else { + errorBox(tr("Save error"), tr("Could not open file %1, layout not saved.").arg(filename)); + } } void LayoutManager::saveAs() { bool ok; //request a new name! - QString name = QInputDialog::getText(0, QJOYPAD_NAME" - Name new layout","Enter a name for the new layout:", QLineEdit::Normal, QString::null, &ok ); + QString name = QInputDialog::getText(le, + tr("%1 - Name new layout").arg(QJOYPAD_NAME), + tr("Enter a name for the new layout:"), + QLineEdit::Normal, QString::null, &ok ); if (!ok) { return; } QFile file(settingsDir + name + ".lyt"); //don't overwrite an existing layout. if (file.exists()) { - errorBox("Save error", "That name's already taken!"); + errorBox(tr("Save error"), tr("That name's already taken!")); return; } @@ -346,12 +350,12 @@ void LayoutManager::saveDefault() { void LayoutManager::remove() { if (currentLayout.isNull()) return; - if (QMessageBox::warning(0, QJOYPAD_NAME" - Delete layout?", - QString("Remove layout %1 permanently from your hard drive?").arg(currentLayout), "Delete", "Cancel", 0, 0, 1 ) == 1) + if (QMessageBox::warning(le, tr("%1 - Delete layout?").arg(QJOYPAD_NAME), + tr("Remove layout %1 permanently from your hard drive?").arg(currentLayout), tr("Delete"), tr("Cancel"), 0, 0, 1 ) == 1) return; QString filename = getFileName( currentLayout ); if (!QFile(filename).remove()) { - errorBox("Remove error", "Could not remove file " + filename); + errorBox(tr("Remove error"), tr("Could not remove file %1").arg(filename)); } fillPopup(); @@ -392,7 +396,8 @@ void LayoutManager::setLayoutName(const QString& name) { void LayoutManager::iconClick() { //don't show the dialog if there aren't any joystick devices plugged in if (available.isEmpty()) { - errorBox("No joystick devices available","No joystick devices are currently available to configure.\nPlease plug in a gaming device and select\n\"Update Joystick Devices\" from the popup menu."); + errorBox(tr("No joystick devices available"), + tr("No joystick devices are currently available to configure.\nPlease plug in a gaming device and select\n\"Update Joystick Devices\" from the popup menu.")); return; } if (le) { @@ -428,14 +433,16 @@ void LayoutManager::fillPopup() { trayMenu.clear(); //make a list of joystick devices - QString title = "Joysticks: "; + QString title; if (available.isEmpty()) { - title += "(none)"; + title = tr("Joysticks: (none)"); } else { + QStringList pads; foreach (JoyPad *joypad, available) { - title += QString("%1 ").arg(joypad->getIndex() + 1); + pads.append(QString::number(joypad->getIndex() + 1)); } + title = tr("Joysticks: %1").arg(pads.join(" ")); } trayMenu.setTitle(title); @@ -449,7 +456,7 @@ void LayoutManager::fillPopup() { trayMenu.addSeparator(); //add null layout - QAction *action = trayMenu.addAction("[NO LAYOUT]"); + QAction *action = trayMenu.addAction(tr("[NO LAYOUT]")); action->setCheckable(true); action->setActionGroup(layoutGroup); //put a check by the current one ;) diff --git a/src/layout_edit.cpp b/src/layout_edit.cpp index d15d466..b3e9639 100644 --- a/src/layout_edit.cpp +++ b/src/layout_edit.cpp @@ -22,16 +22,16 @@ LayoutEdit::LayoutEdit( LayoutManager* l ): QWidget(NULL) { g->addWidget(cmbLayouts,0,0,1,4); //most of these buttons can link directly into slots in the LayoutManager - btnAdd = new QPushButton(QIcon::fromTheme("list-add"), "&Add", frame); + btnAdd = new QPushButton(QIcon::fromTheme("list-add"), tr("&Add"), frame); connect(btnAdd, SIGNAL(clicked()), lm, SLOT(saveAs())); g->addWidget(btnAdd,1,0); - btnRem = new QPushButton(QIcon::fromTheme("list-remove"), "&Remove", frame); + btnRem = new QPushButton(QIcon::fromTheme("list-remove"), tr("&Remove"), frame); connect(btnRem, SIGNAL(clicked()), lm, SLOT(remove())); g->addWidget(btnRem,1,1); - btnUpd = new QPushButton(QIcon::fromTheme("document-save"), "&Save", frame); + btnUpd = new QPushButton(QIcon::fromTheme("document-save"), tr("&Save"), frame); connect(btnUpd, SIGNAL(clicked()), lm, SLOT(save())); g->addWidget(btnUpd,1,2); - btnRev = new QPushButton(QIcon::fromTheme("document-revert"), "Re&vert", frame); + btnRev = new QPushButton(QIcon::fromTheme("document-revert"), tr("Re&vert"), frame); connect(btnRev, SIGNAL(clicked()), lm, SLOT(reload())); g->addWidget(btnRev,1,3); mainLayout->addWidget( frame ); @@ -73,10 +73,10 @@ LayoutEdit::LayoutEdit( LayoutManager* l ): QWidget(NULL) { QHBoxLayout* h = new QHBoxLayout(0); h->setMargin(0); h->setSpacing(5); - QPushButton* close = new QPushButton(QIcon::fromTheme("window-close"), "&Close Dialog", this ); + QPushButton* close = new QPushButton(QIcon::fromTheme("window-close"), tr("&Close Dialog"), this ); connect(close, SIGNAL(clicked()), this, SLOT(close())); h->addWidget(close); - QPushButton* quit = new QPushButton(QIcon::fromTheme("application-exit"), "&Quit", this ); + QPushButton* quit = new QPushButton(QIcon::fromTheme("application-exit"), tr("&Quit"), this ); connect( quit, SIGNAL( clicked() ), qApp, SLOT(quit())); h->addWidget(quit); mainLayout->addLayout(h); @@ -103,7 +103,7 @@ void LayoutEdit::setLayout(const QString &layout) { void LayoutEdit::updateLayoutList() { //blank the list, then load in new names from the LayoutManager. cmbLayouts->clear(); - cmbLayouts->addItem("[NO LAYOUT]", QVariant(QString::null)); + cmbLayouts->addItem(tr("[NO LAYOUT]"), QVariant(QString::null)); if (lm->currentLayout.isNull()) { cmbLayouts->setCurrentIndex(0); } diff --git a/src/main.cpp b/src/main.cpp index f216374..de3adc6 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -9,6 +9,7 @@ #include #include #include +#include //to load layouts #include "layout.h" @@ -24,8 +25,7 @@ QPointer layoutManagerPtr; //signal handler for SIGUSR2 //SIGUSR2 means that a new layout should be loaded. It is saved in // ~/.qjoypad/layout, where the last used layout is put. -void catchSIGUSR2( int sig ) -{ +void catchSIGUSR2( int sig ) { if (layoutManagerPtr) layoutManagerPtr->load(); //remember to catch this signal again next time. signal( sig, catchSIGUSR2 ); @@ -62,7 +62,8 @@ int main( int argc, char **argv ) //if there is no new directory and we can't make it, complain if (!dir.exists() && !dir.mkdir(settingsDir)) { - printf("Couldn't create the QJoyPad save directory (%s)!", settingsDir.toStdString().c_str()); + errorBox(app.tr("Couldn't create the QJoyPad save directory"), + app.tr("Couldn't create the QJoyPad save directory: %s").arg(settingsDir)); return 1; } @@ -93,8 +94,8 @@ int main( int argc, char **argv ) switch (c) { case 'h': - printf("%s\n" - "Usage: %s [--device=\"/device/path\"] [--notray|--force-tray] [\"layout name\"]\n" + printf("%s", qPrintable(app.tr("%1\n" + "Usage: %2 [--device=\"/device/path\"] [--notray|--force-tray] [\"layout name\"]\n" "\n" "Options:\n" " -h, --help Print this help message.\n" @@ -108,15 +109,16 @@ int main( int argc, char **argv ) " list of devices and layouts.\n" " \"layout name\" Load the given layout in an already running\n" " instance of QJoyPad, or start QJoyPad using the\n" - " given layout.\n", QJOYPAD_NAME, argc > 0 ? argv[0] : "qjoypad"); + " given layout.\n").arg(QJOYPAD_NAME, argc > 0 ? argv[0] : "qjoypad"))); return 0; case 'd': - if (QFile::exists(optarg)) { + if (QFileInfo(optarg).isDir()) { devdir = optarg; } else { - fprintf(stderr, "No such file or directory: %s\n", optarg); + errorBox(app.tr("Not a directory"), + app.tr("Path is not a directory: %1").arg(optarg)); return 1; } break; @@ -188,14 +190,17 @@ int main( int argc, char **argv ) //then prevent two instances from running at once. //however, if we are setting the layout or updating the device //list, this is not an error and we shouldn't make one! - if (layout.isEmpty() && update == false) - errorBox("Instance Error","There is already a running instance of QJoyPad; please close\nthe old instance before starting a new one."); + if (layout.isEmpty() && !update) + errorBox(app.tr("Instance Error"), + app.tr("There is already a running instance of QJoyPad; please close\nthe old instance before starting a new one.")); else { //if one of these is the case, send the approrpriate signal! - if (update == true) + if (update) { kill(pid,SIGUSR1); - if (!layout.isEmpty()) + } + if (!layout.isEmpty()) { kill(pid,SIGUSR2); + } } //and quit. We don't need two instances. return 0; @@ -211,12 +216,13 @@ int main( int argc, char **argv ) if (forceTrayIcon) { int sleepCounter = 0; - while(!QSystemTrayIcon::isSystemTrayAvailable()) { + while (!QSystemTrayIcon::isSystemTrayAvailable()) { sleep(1); sleepCounter++; - if(sleepCounter > 20) { - printf("Error, we've waited more than 20 seconds, your sys tray probably isn't loading\n"); - exit(1); + if (sleepCounter > 20) { + errorBox(app.tr("System tray isn't loading"), + app.tr("Waited more than 20 seconds for the system tray to load. Giving up.")); + return 1; } } } diff --git a/src/quickset.cpp b/src/quickset.cpp index 6571bc9..a3b8409 100644 --- a/src/quickset.cpp +++ b/src/quickset.cpp @@ -6,15 +6,15 @@ QuickSet::QuickSet( JoyPad* jp, QWidget *parent) : QDialog(parent) { setting = false; joypad = jp; - setWindowTitle("Set " + jp->getName()); + setWindowTitle(tr("Set %1").arg(jp->getName())); QVBoxLayout* LMain = new QVBoxLayout(this); LMain->setMargin(5); LMain->setSpacing(5); //LMain->setAutoAdd(true); - QLabel *temp = new QLabel("Press any button or axis and\nyou will be prompted for a key.",this); + QLabel *temp = new QLabel(tr("Press any button or axis and\nyou will be prompted for a key."),this); LMain->addWidget(temp); - QPushButton* button = new QPushButton("Done",this); + QPushButton* button = new QPushButton(tr("Done"),this); LMain->addWidget(button); connect( button, SIGNAL(clicked()), this, SLOT(accept())); } @@ -35,12 +35,14 @@ void QuickSet::jsevent(const js_event &msg ) { setting = false; //if a mouse button was used, - if (code > MOUSE_OFFSET) + if (code > MOUSE_OFFSET) { //then tell it to the Button a mouse button button->setKey(true, code - MOUSE_OFFSET); - else + } + else { //otherwise, tell it to use a keycode. button->setKey(false, code); + } } else if (type == JS_EVENT_AXIS) { //require a signal strength of at least 5000 to consider an axis moved. @@ -51,7 +53,7 @@ void QuickSet::jsevent(const js_event &msg ) { //grab a keycode for that axis and that direction setting = true; - int code = GetKey(QString("%1, %2").arg(axis->getName(), msg.value > 0 ? "positive" : "negative"), false).exec(); + int code = GetKey((msg.value >= 0 ? tr("%1, positive") : tr("%1, negative")).arg(axis->getName()), false).exec(); setting = false; //assign the key to the axis.