Commit 24cadd34 authored by Friedemann Kleint's avatar Friedemann Kleint

I10N: First translation fixes for 2.1

Fix README, some spelling errors, remove contractions,
exclamation marks, correct some plural forms, join split messages.
Add QCoreApplication::translate to non-Q_OBJECT-classes.
Fix some lupdate warnings about discarding meta-data (//:).
parent 4dd844d7
......@@ -3,12 +3,14 @@ How To add translations to Qt Creator
- Coordinate over the mailing list to avoid duplicate work.
- Read the instructions at http://qt.gitorious.org/qt/pages/QtLocalization
- Add your language to the LANGUAGES line in translations.pro.
Don't qualify it with a country unless it is reasonable to expect
country-specific variants.
Skip this step if updating an existing translation, obviously.
- Run "make ts".
- Run "make ts-<lang>".
If your Qt version is too old, you may create a template by running
lconvert --drop-translations qtcreator_de.ts -o qtcreator_<yours>.ts
......
......@@ -31,7 +31,6 @@
#define DEBUGGER_ABSTRACT_GDB_ADAPTER
#include <QtCore/QObject>
#include <QtCore/QProcess>
#include "gdbengine.h"
......
......@@ -441,7 +441,6 @@ void GdbEngine::handleDebuggingHelperValue3Classic(const GdbResponse &response)
out.chop(1);
QList<QByteArray> list = out.split(' ');
if (list.isEmpty()) {
//: Value for variable
data.setError(WatchData::msgNotInScope());
data.setAllUnneeded();
insertData(data);
......@@ -487,7 +486,6 @@ void GdbEngine::handleDebuggingHelperValue3Classic(const GdbResponse &response)
}
}
} else {
//: Value for variable
data.setError(WatchData::msgNotInScope());
data.setAllUnneeded();
insertData(data);
......
......@@ -3525,15 +3525,14 @@ WatchData GdbEngine::localVariable(const GdbMi &item,
WatchData data;
QString nam = _(name);
data.iname = "local." + name + QByteArray::number(n + 1);
//: Variable %1 is the variable name, %2 is a simple count.
data.name = WatchData::shadowedName(nam, n);
if (uninitializedVariables.contains(data.name)) {
data.setError(WatchData::msgNotInScope());
return data;
}
setWatchDataValue(data, item);
//: Type of local variable or parameter shadowed by another
//: variable of the same name in a nested block.
setWatchDataValue(data, item);
data.setType(GdbEngine::tr("<shadowed>").toUtf8());
data.setHasChildren(false);
return data;
......
......@@ -70,9 +70,9 @@ QString SnapshotData::toString() const
{
QString res;
QTextStream str(&res);
str << SnapshotHandler::tr("Function:") << ' ' << function() << ' '
/* str << SnapshotHandler::tr("Function:") << ' ' << function() << ' '
<< SnapshotHandler::tr("File:") << ' ' << m_location << ' '
<< SnapshotHandler::tr("Date:") << ' ' << m_date.toString();
<< SnapshotHandler::tr("Date:") << ' ' << m_date.toString(); */
return res;
}
......@@ -81,11 +81,12 @@ QString SnapshotData::toToolTip() const
QString res;
QTextStream str(&res);
str << "<html><body><table>"
/*
<< "<tr><td>" << SnapshotHandler::tr("Function:")
<< "</td><td>" << function() << "</td></tr>"
<< "<tr><td>" << SnapshotHandler::tr("File:")
<< "</td><td>" << QDir::toNativeSeparators(m_location) << "</td></tr>"
<< "</table></body></html>";
<< "</table></body></html>"; */
return res;
}
......@@ -167,7 +168,8 @@ QVariant SnapshotHandler::data(const QModelIndex &index, int role) const
const DebuggerStartParameters &sp = engine->startParameters();
if (role == Qt::DisplayRole) {
switch (role) {
case Qt::DisplayRole:
switch (index.column()) {
case 0:
return sp.displayName;
......@@ -175,18 +177,18 @@ QVariant SnapshotHandler::data(const QModelIndex &index, int role) const
return sp.coreFile.isEmpty() ? sp.executable : sp.coreFile;
}
return QVariant();
}
if (role == Qt::ToolTipRole) {
//: Tooltip for variable
//return snapshot.toToolTip();
}
case Qt::ToolTipRole:
return QVariant();
if (role == Qt::DecorationRole && index.column() == 0) {
// Return icon that indicates whether this is the active stack frame
return (index.row() == m_currentIndex) ? m_positionIcon : m_emptyIcon;
}
case Qt::DecorationRole: // Return icon that indicates whether this is the active stack frame
if (index.column() == 0)
return (index.row() == m_currentIndex) ? m_positionIcon : m_emptyIcon;
break;
default:
break;
}
return QVariant();
}
......
......@@ -30,8 +30,6 @@
#ifndef DEBUGGER_SNAPSHOTHANDLER_H
#define DEBUGGER_SNAPSHOTHANDLER_H
#include "stackframe.h"
#include <QtCore/QAbstractItemModel>
#include <QtCore/QPointer>
......
......@@ -130,7 +130,6 @@ QVariant StackHandler::data(const QModelIndex &index, int role) const
if (role == StackFrameAddressRole)
return frame.address;
//: Tooltip for variable
if (role == Qt::ToolTipRole)
return frame.toToolTip();
......
......@@ -244,12 +244,16 @@ QString WatchData::toToolTip() const
QString WatchData::msgNotInScope()
{
//: Value of variable in Debugger Locals display for variables out of scope (stopped above initialization).
static const QString rc = QCoreApplication::translate("Debugger::Internal::WatchData", "<not in scope>");
return rc;
}
const QString &WatchData::shadowedNameFormat()
{
//: Display of variables shadowed by variables of the same name
//: in nested scopes: Variable %1 is the variable name, %2 is a
//: simple count.
static const QString format = QCoreApplication::translate("Debugger::Internal::WatchData", "%1 <shadowed %2>");
return format;
}
......
......@@ -58,7 +58,7 @@ FormWindowFile::FormWindowFile(QDesignerFormWindowInterface *form, QObject *pare
this, SLOT(slotFormWindowRemoved(QDesignerFormWindowInterface*)));
}
bool FormWindowFile::save(const QString &name /*= QString()*/)
bool FormWindowFile::save(const QString &name /* = QString() */)
{
const QString actualName = name.isEmpty() ? fileName() : name;
......
......@@ -252,23 +252,27 @@ bool FilterSettingsPage::matches(const QString &s) const
return m_searchKeywords.contains(s, Qt::CaseInsensitive);
}
void FilterSettingsPage::updateFilterDescription(const QString &filter)
QString FilterSettingsPage::msgFilterLabel(const QString &filter) const
{
if (m_filterMap.keys().isEmpty())
return tr("No user defined filters available or no filter selected.");
const QStringList &checkedList = m_filterMap.value(filter);
if (!m_filterMap.keys().isEmpty()) {
const QString prefix = tr("The filter \"%1\" will").arg(filter);
if (checkedList.isEmpty()) {
m_ui.label->setText(prefix + tr(" show every documentation file "
"available, as no attributes are specified."));
} else if (checkedList.count() == 1) {
m_ui.label->setText(prefix + tr(" only show documentation files that"
" have the attribute %2 specified.").arg(checkedList.first()));
} else {
m_ui.label->setText(prefix + tr(" only show documentation files that"
" have the attributes %2 specified.").arg(checkedList.join(", ")));
}
} else {
m_ui.label->setText(tr("No user defined filters available or no filter "
"selected."));
}
if (checkedList.isEmpty())
return tr("The filter \"%1\" will show every documentation file"
" available, as no attributes are specified.").arg(filter);
if (checkedList.size() == 1)
return tr("The filter \"%1\" will only show documentation files that"
" have the attribute %2 specified.").
arg(filter, checkedList.first());
return tr("The filter \"%1\" will only show documentation files that"
" have the attributes %2 specified.").
arg(filter, checkedList.join(QLatin1String(", ")));
}
void FilterSettingsPage::updateFilterDescription(const QString &filter)
{
m_ui.label->setText(msgFilterLabel(filter));
}
......@@ -69,6 +69,7 @@ private:
void updateFilterDescription(const QString &filter);
private:
QString msgFilterLabel(const QString &filter) const;
Ui::FilterSettingsPage m_ui;
FilterMap m_filterMap;
......
......@@ -202,7 +202,7 @@ QWidget *ImageViewer::toolBar()
void ImageViewer::scaleFactorUpdate(qreal factor)
{
QString info = tr("%1%").arg(QString::number(factor * 100, 'f', 2));
const QString info = QString::number(factor * 100, 'f', 2) + QLatin1Char('%');
d_ptr->ui_toolbar.labelInfo->setText(info);
}
......
......@@ -259,7 +259,7 @@ void BuildStepListWidget::stepRemove(int pos)
} else {
QMessageBox::warning(Core::ICore::instance()->mainWindow(),
tr("Removing Step failed"),
tr("Can't remove build step while building"),
tr("Cannot remove build step while building"),
QMessageBox::Ok, QMessageBox::Ok);
}
}
......
......@@ -255,12 +255,14 @@ void ProjectFileWizardExtension::firstExtensionPageShown(
// Oh we do have someone that deploys it
// then the best match is NONE
// We display a label explaining that and rename <None> to
// <Implictly Add>
m_context->page->setNoneLabel(tr("<Implictly Add>"));
// <Implicitly Add>
m_context->page->setNoneLabel(tr("<Implicitly Add>"));
QString text = tr("The files are implicitly added to the projects:\n");
foreach (ProjectEntry project, deployingProjects)
text += project.fileName + "\n";
foreach (const ProjectEntry &project, deployingProjects) {
text += project.fileName;
text += QLatin1Char('\n');
}
m_context->page->setAdditionalInfo(text);
bestProjectIndex = -1;
......
......@@ -256,7 +256,7 @@ void RunSettingsWidget::removeRunConfiguration()
{
RunConfiguration *rc = m_target->activeRunConfiguration();
QMessageBox msgBox(QMessageBox::Question, tr("Remove Run Configuration?"),
tr("Do you really want to delete run configuration <b>%1</b>.").arg(rc->displayName()),
tr("Do you really want to delete the run configuration <b>%1</b>?").arg(rc->displayName()),
QMessageBox::Yes|QMessageBox::No, this);
msgBox.setDefaultButton(QMessageBox::No);
msgBox.setEscapeButton(QMessageBox::No);
......
......@@ -888,7 +888,7 @@ void InternalLibraryDetailsController::updateProFile()
if (!configVar.contains(QLatin1String("plugin"))) {
const QString relProFilePath = rootDir.relativeFilePath(proFilePath);
TargetInformation targetInfo = proFileNode->targetInformation();
const QString itemToolTip = tr("%1 (%2)").arg(targetInfo.target).arg(relProFilePath);
const QString itemToolTip = QString::fromLatin1("%1 (%2)").arg(targetInfo.target).arg(relProFilePath);
m_proFileNodes.append(proFileNode);
libraryDetailsWidget()->libraryComboBox->addItem(targetInfo.target);
libraryDetailsWidget()->libraryComboBox->setItemData(
......
......@@ -160,7 +160,7 @@ void MaemoConfigTestDialog::handleMadDeveloperTestProcessFinished(int exitStatus
} else if (m_madDeveloperTestProcess->exitCode() != 0) {
m_ui->errorLabel->setText(m_ui->errorLabel->text()
+ QLatin1String("<br>") + tr("Mad Developer is not installed.<br>"
"You will not be able to deploy to this device!"));
"You will not be able to deploy to this device."));
}
if (m_ui->errorLabel->text().isEmpty()) {
QPalette palette = m_ui->errorLabel->palette();
......
......@@ -278,7 +278,7 @@ MaemoDeviceConfig MaemoDeployStep::deviceConfig() const
void MaemoDeployStep::start()
{
if (!m_canStart) {
raiseError(tr("Can't start deployment, haven't cleaned up from last time yet."));
raiseError(tr("Cannot start deployment as the clean-up from the last time has not yet been done."));
return;
}
m_cleanupTimer->stop();
......
......@@ -8,6 +8,8 @@
#include <projectexplorer/target.h>
#include <qt4projectmanager/qt4projectmanagerconstants.h>
#include <QtCore/QCoreApplication>
using namespace ProjectExplorer;
namespace Qt4ProjectManager {
......@@ -30,7 +32,8 @@ QStringList MaemoDeployStepFactory::availableCreationIds(BuildStepList *parent)
QString MaemoDeployStepFactory::displayNameForId(const QString &id) const
{
if (id == MaemoDeployStep::Id)
return(tr("Deploy to device"));
return QCoreApplication::translate("Qt4ProjectManager::Internal::MaemoDeployStepFactory",
"Deploy to device");
return QString();
}
......
......@@ -50,6 +50,8 @@
#include <projectexplorer/target.h>
#include <qt4projectmanagerconstants.h>
#include <QtCore/QCoreApplication>
using ProjectExplorer::BuildStepList;
using ProjectExplorer::BuildStep;
......@@ -73,7 +75,8 @@ QStringList MaemoPackageCreationFactory::availableCreationIds(ProjectExplorer::B
QString MaemoPackageCreationFactory::displayNameForId(const QString &id) const
{
if (id == MaemoPackageCreationStep::CreatePackageId)
return tr("Create Debian Package");
return QCoreApplication::translate("Qt4ProjectManager::Internal::MaemoPackageCreationFactory",
"Create Debian Package");
return QString();
}
......
......@@ -222,7 +222,7 @@ bool MaemoPackageCreationStep::copyDebianFiles()
}
QDir buildDir(buildDirectory());
if (!buildDir.mkdir("debian")) {
raiseError(tr("Could not create debian directory '%1'.")
raiseError(tr("Could not create Debian directory '%1'.")
.arg(debianDirPath));
return false;
}
......
......@@ -446,18 +446,18 @@ void MaemoRunConfigurationWidget::updateMountWarning()
= m_runConfiguration->remoteMounts()->validMountSpecificationCount();
if (mountDirCount > availablePortCount) {
mountWarning = tr("WARNING: You want to mount %1 directories, but "
"your device has only %2 free ports.<br>You will not be able "
"to run this configuration.")
.arg(mountDirCount).arg(availablePortCount);
"your device has only %n free ports.<br>You will not be able "
"to run this configuration.", 0, availablePortCount)
.arg(mountDirCount);
} else if (mountDirCount > 0) {
const int portsLeftByDebuggers
= availablePortCount - 1 - m_runConfiguration->useQmlDebugger();
if (mountDirCount > portsLeftByDebuggers) {
mountWarning = tr("WARNING: You want to mount %1 directories, "
"but only %2 ports on the device will be available "
"but only %n ports on the device will be available "
"in debug mode. <br>You will not be able to debug your "
"application with this configuration.").
arg(mountDirCount).arg(portsLeftByDebuggers);
"application with this configuration.", 0, portsLeftByDebuggers).
arg(mountDirCount);
}
}
}
......
......@@ -481,7 +481,7 @@ void MaemoSettingsWidget::updatePortsWarningLabel()
m_ui->portsWarningLabel->clear();
} else {
m_ui->portsWarningLabel->setText(QLatin1String("<font color=\"red\">")
+ tr("You'll need at least one port!") + QLatin1String("</font>"));
+ tr("You will need at least one port.") + QLatin1String("</font>"));
}
}
......
......@@ -60,7 +60,7 @@ PassphraseForKeyDialog::PassphraseForKeyDialog(const QString &keyName, QWidget *
m_checkBox = new QCheckBox(this);
m_checkBox->setText(tr("Save passphrase"));
m_checkBox->setObjectName(QString::fromUtf8("checkBox"));
m_checkBox->setToolTip(tr("This is an insecure option. Password will be saved as a plain text!"));
m_checkBox->setToolTip(tr("This is an insecure option. The password will be saved as a plain text."));
formLayout->setWidget(1, QFormLayout::LabelRole, m_checkBox);
......
......@@ -167,7 +167,7 @@ bool S60CreatePackageStep::init()
// Try to detect command in environment
const QString tmp = buildConfiguration()->environment().searchInPath(m_makeCmd);
if (tmp.isEmpty()) {
emit addOutput(tr("Could not find make command: %1 in the build environment").arg(m_makeCmd), BuildStep::ErrorOutput);
emit addOutput(tr("Could not find make command '%1' in the build environment").arg(m_makeCmd), BuildStep::ErrorOutput);
return false;
}
m_makeCmd = tmp;
......
......@@ -33,6 +33,7 @@
#include <QtCore/QFile>
#include <QtCore/QRegExp>
#include <QtCore/QTextStream>
#include <QtCore/QCoreApplication>
#ifndef CREATORLESSTEST
#include <coreplugin/icore.h>
......@@ -233,7 +234,9 @@ bool QmlStandaloneApp::setExternalModules(const QStringList &uris,
m_importPaths.clear();
foreach (const QFileInfo &importPath, importPaths) {
if (!importPath.exists()) {
m_error = tr("The Qml import path '%1' cannot be found.")
m_error = QCoreApplication::translate(
"Qt4ProjectManager::Internal::QmlStandaloneApp",
"The Qml import path '%1' cannot be found.")
.arg(QDir::toNativeSeparators(importPath.filePath()));
return false;
} else {
......@@ -255,7 +258,9 @@ bool QmlStandaloneApp::setExternalModules(const QStringList &uris,
}
}
if (modulesCount == m_modules.count()) { // no module was added
m_error = tr("The Qml module '%1' cannot be found.").arg(uri);
m_error = QCoreApplication::translate(
"Qt4ProjectManager::Internal::QmlStandaloneApp",
"The Qml module '%1' cannot be found.").arg(uri);
return false;
}
}
......@@ -455,7 +460,9 @@ bool QmlStandaloneApp::addCppPlugin(const QString &qmldirLine, QmlModule *module
const QStringList qmldirLineElements =
qmldirLine.split(QLatin1Char(' '), QString::SkipEmptyParts);
if (qmldirLineElements.count() < 2) {
m_error = tr("Invalid '%1' entry in '%2' of module '%3'.")
m_error = QCoreApplication::translate(
"Qt4ProjectManager::Internal::QmlStandaloneApp",
"Invalid '%1' entry in '%2' of module '%3'.")
.arg(qmldir_plugin).arg(qmldir).arg(module->uri);
return false;
}
......@@ -482,7 +489,9 @@ bool QmlStandaloneApp::addCppPlugin(const QString &qmldirLine, QmlModule *module
} else if (proFile_guess4.exists()) {
foundProFile = proFile_guess4.canonicalFilePath();
} else {
m_error = tr("No .pro file for plugin '%1' cannot be found.").arg(name);
m_error = QCoreApplication::translate(
"Qt4ProjectManager::Internal::QmlStandaloneApp",
"No .pro file for plugin '%1' cannot be found.").arg(name);
return false;
}
QmlCppPlugin *plugin =
......@@ -700,7 +709,10 @@ bool QmlStandaloneApp::updateFiles(const QList<GeneratedFileInfo> &list, QString
return false;
QFile file(info.fileInfo.absoluteFilePath());
if (!file.open(QIODevice::WriteOnly) || file.write(data) == -1) {
error = tr("Could not write file '%1'.").arg(QDir::toNativeSeparators(info.fileInfo.canonicalFilePath()));
error = QCoreApplication::translate(
"Qt4ProjectManager::Internal::QmlStandaloneApp",
"Could not write file '%1'.").
arg(QDir::toNativeSeparators(info.fileInfo.canonicalFilePath()));
return false;
}
}
......
......@@ -107,7 +107,7 @@ bool ResourceEditorW::createNew(const QString &contents)
return rc;
}
bool ResourceEditorW::open(const QString &fileName /*= QString()*/)
bool ResourceEditorW::open(const QString &fileName /* = QString() */)
{
if (debugResourceEditorW)
qDebug() << "ResourceEditorW::open: " << fileName;
......@@ -133,10 +133,10 @@ bool ResourceEditorW::open(const QString &fileName /*= QString()*/)
return true;
}
bool ResourceEditorFile::save(const QString &name /*= QString()*/)
bool ResourceEditorFile::save(const QString &name /* = QString() */)
{
if (debugResourceEditorW)
qDebug() << ">ResourceEditorW::save: " << name;
qDebug(">ResourceEditorW::save: %s", qPrintable(name));
const QString oldFileName = fileName();
const QString actualName = name.isEmpty() ? oldFileName : name;
......
......@@ -35,6 +35,7 @@
#include <projectexplorer/task.h>
#include <QtGui/QAction>
#include <QtCore/QCoreApplication>
using namespace TaskList;
using namespace TaskList::Internal;
......@@ -63,7 +64,13 @@ void StopMonitoringHandler::handle(const ProjectExplorer::Task &task)
QAction *StopMonitoringHandler::createAction(QObject *parent)
{
QAction *stopMonitoringAction = new QAction(tr("Stop monitoring"), parent);
stopMonitoringAction->setToolTip(tr("Stop monitoring task files."));
const QString text =
QCoreApplication::translate("TaskList::Internal::StopMonitoringHandler",
"Stop monitoring");
const QString toolTip =
QCoreApplication::translate("TaskList::Internal::StopMonitoringHandler",
"Stop monitoring task files.");
QAction *stopMonitoringAction = new QAction(text, parent);
stopMonitoringAction->setToolTip(toolTip);
return stopMonitoringAction;
}
......@@ -174,7 +174,7 @@ void HighlighterSettingsPage::resetDefinitionsLocation()
const QString &location = findDefinitionsLocation();
if (location.isEmpty())
QMessageBox::information(0, tr("Autodetect Definitions"),
tr("Existent definitions could not be found."));
tr("No existing definitions could be found."));
else
m_d->m_page.fallbackDefinitionFilesPath->setPath(location);
}
......
......@@ -93,8 +93,8 @@ CommunityWelcomePageWidget::CommunityWelcomePageWidget(QWidget *parent) :
ui->newsTreeWidget, SLOT(addNewsItem(QString, QString, QString)), Qt::QueuedConnection);
connect(this, SIGNAL(startRssFetching(QUrl)), m_rssFetcher, SLOT(fetch(QUrl)), Qt::QueuedConnection);
//: Add localized feed here only if one exists
m_rssFetcher->start(QThread::LowestPriority);
//: Add localized feed here only if one exists
emit startRssFetching(QUrl(tr("http://labs.trolltech.com/blogs/feed")));
populateWelcomeTreeWidget(supportSites, sizeof(supportSites)/sizeof(Site), ui->supportSitesTreeWidget);
......
......@@ -137,7 +137,6 @@ QString Session::deviceDescription(unsigned verbose) const
? QCoreApplication::translate("trk::Session", "big endian")
: QCoreApplication::translate("trk::Session", "little endian");
msg = msg.arg(formatCpu(cpuMajor, cpuMinor)).arg(endianness);
//: The separator in a list of strings
QString defaultTypeSizeStr;
QString fpTypeSizeStr;
if (verbose && defaultTypeSize)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment