Translate "Ctrl"
-
Hello,
when using shortcuts for QActions in a QMenu, that shortcut is shown next to the QAction's text (New Ctrl+N).
What I am having a problem with, is, as this topic's title indicates, translating this shortcut. In German, for example, it would be Strg+N instead of Ctrl+N. I tried multiple suggestions from Google already, for example add the translation of "Ctrl" into my .ts file, of which none actually helped. -
Here are some code examples:
@
m_newAct = new QAction(QIcon(":/images/new.png"), tr("&New"), this);
m_newAct->setShortcuts(QKeySequence::New);
m_newAct->setStatusTip(tr("Create a new file"));
connect(m_newAct, SIGNAL(triggered()), this, SLOT(newFile()));
@or using the tr - style:
@
m_uploadAct = new QAction(QIcon(":/images/upload.png"), tr("&Upload"), this);
m_uploadAct->setShortcuts(tr("Ctrl+B"));
m_uploadAct->setStatusTip(tr("Upload all data from the client to the server while deleting the data on the server."));
connect(m_uploadAct, SIGNAL(triggered()), SLOT(upload()));
@For installing the Qt translations, you have to put them somewhere beside your delkivered code and do:
@
void switchTranslator(QTranslator& translator, const QString& filename)
{
// remove the old translator
qApp->removeTranslator(&translator);// load the new translator if(translator.load(filename)) qApp->installTranslator(&translator);
}
void GMainWindow::loadLanguage(const QString& rszLanguage)
{
if(m_szCurrentLanguage != rszLanguage)
{
m_szCurrentLanguage = rszLanguage;
QLocale locale = QLocale(m_szCurrentLanguage);
QLocale::setDefault(locale);
QString languageName = QLocale::languageToString(locale.language());
switchTranslator(m_translator, QString("%1/ArticleManagement_%2.qm")
.arg(m_szLanguagePath).arg(rszLanguage));
switchTranslator(m_translatorQt, QString("%1/qt_%2.qm")
.arg(m_szLanguagePath).arg(rszLanguage));
if(0 != m_errorModel)
m_errorModel->addInfo(tr("Current Language changed to %1").arg(languageName));
}
}
@ -
My code is not as detailed as yours but I guess that should not matter because the translation file is loaded correctly anyway.
@QTranslator *transl = new QTranslator;
transl->load(QLocale::system(), "text adventure maker", "_", QApplication::applicationDirPath());
QApplication a(argc, argv);
a.installTranslator(transl);@
However, it's still "Ctrl".I am using QKeySequence, by the way. I tried the string method but Qt reduces my "Strg+N" to simply "N".
-
Thanks, that did the trick. I never heard of this file before so I did not understand what you meant with "you have to load the qt translations".