diff --git a/launcher/InstanceImportTask.cpp b/launcher/InstanceImportTask.cpp
index 8cd68d7b47..2689880d46 100644
--- a/launcher/InstanceImportTask.cpp
+++ b/launcher/InstanceImportTask.cpp
@@ -218,7 +218,7 @@ void InstanceImportTask::processFlame()
     }
     catch (const JSONValidationError &e)
     {
-        emitFailed(tr("Could not understand pack manifest:\n") + e.cause());
+        emitFailed(tr("Could not parse the pack manifest:\n") + e.cause());
         return;
     }
     if(!pack.overrides.isEmpty())
diff --git a/launcher/JavaCommon.cpp b/launcher/JavaCommon.cpp
index 6fa5851b1f..a6bb563387 100644
--- a/launcher/JavaCommon.cpp
+++ b/launcher/JavaCommon.cpp
@@ -8,9 +8,9 @@ bool JavaCommon::checkJVMArgs(QString jvmargs, QWidget *parent)
         || jvmargs.contains("-XX-MaxHeapSize") || jvmargs.contains("-XX:InitialHeapSize"))
     {
         auto warnStr = QObject::tr(
-            "You tried to manually set a JVM memory option (using \"-XX:PermSize\", \"-XX-MaxHeapSize\", \"-XX:InitialHeapSize\",  \"-Xmx\" or \"-Xms\").\n"
+            "An attempt was made to manually set a JVM memory option (using \"-XX:PermSize\", \"-XX-MaxHeapSize\", \"-XX:InitialHeapSize\",  \"-Xmx\" or \"-Xms\").\n"
             "There are dedicated boxes for these in the settings (Java tab, in the Memory group at the top).\n"
-            "This message will be displayed until you remove them from the JVM arguments.");
+            "This message will be displayed until these arguments are removed from the JVM arguments.");
         CustomMessageBox::selectable(
             parent, QObject::tr("JVM arguments warning"),
             warnStr,
diff --git a/launcher/LaunchController.cpp b/launcher/LaunchController.cpp
index 7750be1a2a..64b5ae925e 100644
--- a/launcher/LaunchController.cpp
+++ b/launcher/LaunchController.cpp
@@ -55,9 +55,8 @@ void LaunchController::decideAccount()
         auto reply = CustomMessageBox::selectable(
             m_parentWidget,
             tr("No Accounts"),
-            tr("In order to play Minecraft, you must have at least one Mojang or Minecraft "
-               "account logged in."
-               "Would you like to open the account manager to add an account now?"),
+            tr("In order to play Minecraft, logging in to at least one Mojang or Microsoft account is required. "
+               "Open the account manager to add an account?"),
             QMessageBox::Information,
             QMessageBox::Yes | QMessageBox::No
         )->exec();
@@ -74,7 +73,7 @@ void LaunchController::decideAccount()
     {
         // If no default account is set, ask the user which one to use.
         ProfileSelectDialog selectDialog(
-            tr("Which account would you like to use?"),
+            tr("Select the account that should be used"),
             ProfileSelectDialog::GlobalDefaultCheckbox,
             m_parentWidget
         );
@@ -107,7 +106,7 @@ void LaunchController::login() {
     // we loop until the user succeeds in logging in or gives up
     bool tryagain = true;
     // the failure. the default failure.
-    const QString needLoginAgain = tr("Your account is currently not logged in. Please enter your password to log in again. 
 
 This could be caused by a password change.");
+    const QString needLoginAgain = tr("Not currently logged in. Please enter the password to log in again.
This could be caused by a password change.");
     QString failReason = needLoginAgain;
 
     while (tryagain)
@@ -129,7 +128,7 @@ void LaunchController::login() {
                     QString name = QInputDialog::getText(
                         m_parentWidget,
                         tr("Player name"),
-                        tr("Choose your offline mode player name."),
+                        tr("Choose an offline mode player name."),
                         QLineEdit::Normal,
                         m_session->player_name,
                         &ok
@@ -169,7 +168,7 @@ void LaunchController::login() {
                     // play demo ?
                     QMessageBox box(m_parentWidget);
                     box.setWindowTitle(tr("Play demo?"));
-                    box.setText(tr("This account does not own Minecraft.\nYou need to purchase the game first to play it.\n\nDo you want to play the demo?"));
+                    box.setText(tr("This account does not own Minecraft.\nPurchasing the game is required to play the full version.\n\nDo you want to play the demo?"));
                     box.setIcon(QMessageBox::Warning);
                     auto demoButton = box.addButton(tr("Play Demo"), QMessageBox::ButtonRole::YesRole);
                     auto cancelButton = box.addButton(tr("Cancel"), QMessageBox::ButtonRole::NoRole);
@@ -327,8 +326,8 @@ void LaunchController::readyForLaunch()
     connect(profilerInstance, &BaseProfiler::readyToLaunch, [this](const QString & message)
     {
         QMessageBox msg;
-        msg.setText(tr("The game launch is delayed until you press the "
-                        "button. This is the right time to setup the profiler, as the "
+        msg.setText(tr("The game launch is delayed until the button is pressed. "
+                        "This is the right time to setup the profiler, as the "
                         "profiler server is running now.\n\n%1").arg(message));
         msg.setWindowTitle(tr("Waiting."));
         msg.setIcon(QMessageBox::Information);
@@ -386,8 +385,8 @@ bool LaunchController::abort()
     }
     auto response = CustomMessageBox::selectable(
             m_parentWidget, tr("Kill Minecraft?"),
-            tr("This can cause the instance to get corrupted and should only be used if Minecraft "
-            "is frozen for some reason"),
+            tr("This can cause the instance to get corrupted and should only be done if Minecraft "
+            "is not responding"),
             QMessageBox::Question, QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes)->exec();
     if (response == QMessageBox::Yes)
     {
diff --git a/launcher/UpdateController.cpp b/launcher/UpdateController.cpp
index f9b7d34995..0a9eca6ef6 100644
--- a/launcher/UpdateController.cpp
+++ b/launcher/UpdateController.cpp
@@ -412,7 +412,7 @@ void UpdateController::fail()
         if(!rollbackOK)
         {
             msg = QObject::tr("The rollback failed too.\n"
-                "You will have to repair %1 manually.\n"
+                "%1 will have to be repaired manually.\n"
                 "Please let us know why and how this happened.").arg(BuildConfig.LAUNCHER_NAME);
             QMessageBox::critical(m_parent, rollFailTitle, msg);
             qApp->quit();
diff --git a/launcher/minecraft/auth/steps/XboxAuthorizationStep.cpp b/launcher/minecraft/auth/steps/XboxAuthorizationStep.cpp
index 07eeb7dcb0..8f12efe39d 100644
--- a/launcher/minecraft/auth/steps/XboxAuthorizationStep.cpp
+++ b/launcher/minecraft/auth/steps/XboxAuthorizationStep.cpp
@@ -124,8 +124,8 @@ bool XboxAuthorizationStep::processSTSError(
             case 2148916233:{
                 emit finished(
                     AccountTaskState::STATE_FAILED_SOFT,
-                    tr("This Microsoft account does not have an XBox Live profile. Buy the game on %1 first.")
-                        .arg("minecraft.net")
+                    tr("This Microsoft account does not have an Xbox Live profile. Purchasing the game on %1 is required.")
+                        .arg(tr("minecraft.net"))
                 );
                 return true;
             }
@@ -133,22 +133,22 @@ bool XboxAuthorizationStep::processSTSError(
                 // NOTE: this is the Grulovia error
                 emit finished(
                     AccountTaskState::STATE_FAILED_SOFT,
-                    tr("XBox Live is not available in your country. You've been blocked.")
+                    tr("Xbox Live is not available in this country. The provided account has been blocked by Microsoft.")
                 );
                 return true;
             }
             case 2148916238: {
                 emit finished(
                     AccountTaskState::STATE_FAILED_SOFT,
-                    tr("This Microsoft account is underaged and is not linked to a family.\n\nPlease set up your account according to %1.")
-                        .arg("help.minecraft.net")
+                    tr("This is not an adult Microsoft account and it is not linked to a family.\n\nPlease set up the account according to %1.")
+                        .arg(tr("help.minecraft.net"))
                 );
                 return true;
             }
             default: {
                 emit finished(
                     AccountTaskState::STATE_FAILED_SOFT,
-                    tr("XSTS authentication ended with unrecognized error(s):\n\n%1").arg(errorCode)
+                    tr("XSTS authentication ended with an unrecognized error code:\n\n%1").arg(errorCode)
                 );
                 return true;
             }
diff --git a/launcher/minecraft/auth/steps/XboxUserStep.cpp b/launcher/minecraft/auth/steps/XboxUserStep.cpp
index a38a28e49b..550dc19c57 100644
--- a/launcher/minecraft/auth/steps/XboxUserStep.cpp
+++ b/launcher/minecraft/auth/steps/XboxUserStep.cpp
@@ -53,14 +53,14 @@ void XboxUserStep::onRequestDone(
 
     if (error != QNetworkReply::NoError) {
         qWarning() << "Reply error:" << error;
-        emit finished(AccountTaskState::STATE_FAILED_SOFT, tr("XBox user authentication failed."));
+        emit finished(AccountTaskState::STATE_FAILED_SOFT, tr("Xbox user authentication failed."));
         return;
     }
 
     Katabasis::Token temp;
     if(!Parsers::parseXTokenResponse(data, temp, "UToken")) {
         qWarning() << "Could not parse user authentication response...";
-        emit finished(AccountTaskState::STATE_FAILED_SOFT, tr("XBox user authentication response could not be understood."));
+        emit finished(AccountTaskState::STATE_FAILED_SOFT, tr("Unexpected Xbox user authentication response."));
         return;
     }
     m_data->userToken = temp;
diff --git a/launcher/minecraft/launch/DirectJavaLaunch.cpp b/launcher/minecraft/launch/DirectJavaLaunch.cpp
index 2bcff66436..742170fa05 100644
--- a/launcher/minecraft/launch/DirectJavaLaunch.cpp
+++ b/launcher/minecraft/launch/DirectJavaLaunch.cpp
@@ -88,7 +88,7 @@ void DirectJavaLaunch::on_state(LoggedProcess::State state)
         case LoggedProcess::FailedToStart:
         {
             //: Error message displayed if instance can't start
-            const char *reason = QT_TR_NOOP("Could not launch minecraft!");
+            const char *reason = QT_TR_NOOP("Could not launch Minecraft!");
             emit logLine(reason, MessageLevel::Fatal);
             emitFailed(tr(reason));
             return;
diff --git a/launcher/minecraft/launch/VerifyJavaInstall.cpp b/launcher/minecraft/launch/VerifyJavaInstall.cpp
index 15acf678b4..6e45ead9a7 100644
--- a/launcher/minecraft/launch/VerifyJavaInstall.cpp
+++ b/launcher/minecraft/launch/VerifyJavaInstall.cpp
@@ -30,18 +30,18 @@ void VerifyJavaInstall::executeTask() {
     // Java 16 requirement
     else if (minecraftComponent->getReleaseDateTime() >= g_VersionFilterData.java16BeginsDate) {
         if (javaVersion.major() < 16) {
-            emit logLine("Minecraft 21w19a and above require the use of Java 16",
+            emit logLine("Minecraft 21w19a (1.17) and above require the use of Java 16",
                          MessageLevel::Fatal);
-            emitFailed(tr("Minecraft 21w19a and above require the use of Java 16"));
+            emitFailed(tr("Minecraft 21w19a (1.17) and above require the use of Java 16"));
             return;
         }
     }
     // Java 8 requirement
     else if (minecraftComponent->getReleaseDateTime() >= g_VersionFilterData.java8BeginsDate) {
         if (javaVersion.major() < 8) {
-            emit logLine("Minecraft 17w13a and above require the use of Java 8",
+            emit logLine("Minecraft 17w13a (1.12) and above require the use of Java 8",
                          MessageLevel::Fatal);
-            emitFailed(tr("Minecraft 17w13a and above require the use of Java 8"));
+            emitFailed(tr("Minecraft 17w13a (1.12) and above require the use of Java 8"));
             return;
         }
     }
diff --git a/launcher/minecraft/update/FMLLibrariesTask.cpp b/launcher/minecraft/update/FMLLibrariesTask.cpp
index 58141991f3..2983e2afd1 100644
--- a/launcher/minecraft/update/FMLLibrariesTask.cpp
+++ b/launcher/minecraft/update/FMLLibrariesTask.cpp
@@ -116,7 +116,7 @@ void FMLLibrariesTask::fmllibsFailed(QString reason)
 {
     QStringList failed = downloadJob->getFailedFiles();
     QString failed_all = failed.join("\n");
-    emitFailed(tr("Failed to download the following files:\n%1\n\nReason:%2\nPlease try again.").arg(failed_all, reason));
+    emitFailed(tr("Failed to download the following files:\n%1\n\nReason: %2\nPlease try again.").arg(failed_all, reason));
 }
 
 bool FMLLibrariesTask::abort()
diff --git a/launcher/modplatform/atlauncher/ATLPackInstallTask.cpp b/launcher/modplatform/atlauncher/ATLPackInstallTask.cpp
index e5db512ebe..db622ec3f3 100644
--- a/launcher/modplatform/atlauncher/ATLPackInstallTask.cpp
+++ b/launcher/modplatform/atlauncher/ATLPackInstallTask.cpp
@@ -91,7 +91,7 @@ void PackInstallTask::onDownloadSucceeded()
     }
     catch (const JSONValidationError &e)
     {
-        emitFailed(tr("Could not understand pack manifest:\n") + e.cause());
+        emitFailed(tr("Could not parse the pack manifest:\n") + e.cause());
         return;
     }
     m_version = version;
@@ -471,7 +471,7 @@ void PackInstallTask::extractConfigs()
     QuaZip packZip(archivePath);
     if(!packZip.open(QuaZip::mdUnzip))
     {
-        emitFailed(tr("Failed to open pack configs %1!").arg(archivePath));
+        emitFailed(tr("Failed to open the pack configs archive in %1").arg(archivePath));
         return;
     }
 
diff --git a/launcher/modplatform/modpacksch/FTBPackInstallTask.cpp b/launcher/modplatform/modpacksch/FTBPackInstallTask.cpp
index 035702264a..8950ce7d1a 100644
--- a/launcher/modplatform/modpacksch/FTBPackInstallTask.cpp
+++ b/launcher/modplatform/modpacksch/FTBPackInstallTask.cpp
@@ -94,7 +94,7 @@ void PackInstallTask::onDownloadSucceeded()
     }
     catch (const JSONValidationError &e)
     {
-        emitFailed(tr("Could not understand pack manifest:\n") + e.cause());
+        emitFailed(tr("Could not parse the pack manifest:\n") + e.cause());
         return;
     }
     m_version = version;
diff --git a/launcher/modplatform/technic/TechnicPackProcessor.cpp b/launcher/modplatform/technic/TechnicPackProcessor.cpp
index 52979b7c3a..a2493267e0 100644
--- a/launcher/modplatform/technic/TechnicPackProcessor.cpp
+++ b/launcher/modplatform/technic/TechnicPackProcessor.cpp
@@ -90,7 +90,8 @@ void Technic::TechnicPackProcessor::run(SettingsObjectPtr globalSettings, const
         else
         {
             if (minecraftVersion.isEmpty())
-                emit failed(tr("Could not find \"version.json\" inside \"bin/modpack.jar\", but minecraft version is unknown"));
+                emit failed(tr("Could not find \"version.json\" inside \"bin/modpack.jar\", "
+                               "the Minecraft version cannot be automatically determined"));
             components->setComponentVersion("net.minecraft", minecraftVersion, true);
             components->installJarMods({modpackJar});
 
@@ -145,7 +146,7 @@ void Technic::TechnicPackProcessor::run(SettingsObjectPtr globalSettings, const
     else
     {
         // This is the "Vanilla" modpack, excluded by the search code
-        emit failed(tr("Unable to find a \"version.json\"!"));
+        emit failed(tr("Unable to find the file \"version.json\"!"));
         return;
     }
 
@@ -158,7 +159,7 @@ void Technic::TechnicPackProcessor::run(SettingsObjectPtr globalSettings, const
         {
             if (fmlMinecraftVersion.isEmpty())
             {
-                emit failed(tr("Could not understand \"version.json\":\ninheritsFrom is missing"));
+                emit failed(tr("Could not parse the file \"version.json\":\ninheritsFrom is missing"));
                 return;
             }
             minecraftVersion = fmlMinecraftVersion;
@@ -199,7 +200,7 @@ void Technic::TechnicPackProcessor::run(SettingsObjectPtr globalSettings, const
     }
     catch (const JSONValidationError &e)
     {
-        emit failed(tr("Could not understand \"version.json\":\n") + e.cause());
+        emit failed(tr("Could not parse the file \"version.json\":\n") + e.cause());
         return;
     }
 
diff --git a/launcher/ui/InstanceWindow.cpp b/launcher/ui/InstanceWindow.cpp
index ae765c3c21..875c02f891 100644
--- a/launcher/ui/InstanceWindow.cpp
+++ b/launcher/ui/InstanceWindow.cpp
@@ -37,7 +37,7 @@ InstanceWindow::InstanceWindow(InstancePtr instance, QWidget *parent)
     setAttribute(Qt::WA_DeleteOnClose);
 
     auto icon = APPLICATION->icons()->getIcon(m_instance->iconKey());
-    QString windowTitle = tr("Console window for ") + m_instance->name();
+    QString windowTitle = tr("Console window for %1").arg(m_instance->name());
 
     // Set window properties
     {
diff --git a/launcher/ui/MainWindow.cpp b/launcher/ui/MainWindow.cpp
index b06f3d5aed..8220763e40 100644
--- a/launcher/ui/MainWindow.cpp
+++ b/launcher/ui/MainWindow.cpp
@@ -350,7 +350,7 @@ class MainWindow::Ui
             actionDISCORD->setObjectName(QStringLiteral("actionDISCORD"));
             actionDISCORD->setIcon(APPLICATION->getThemedIcon("discord"));
             actionDISCORD.setTextId(QT_TRANSLATE_NOOP("MainWindow", "Discord"));
-            actionDISCORD.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Open %1 discord voice chat."));
+            actionDISCORD.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Open %1 Discord chat."));
             all_actions.append(&actionDISCORD);
             helpMenu->addAction(actionDISCORD);
         }
diff --git a/launcher/ui/dialogs/ProfileSelectDialog.ui b/launcher/ui/dialogs/ProfileSelectDialog.ui
index e779b51bf1..4ca46de6e2 100644
--- a/launcher/ui/dialogs/ProfileSelectDialog.ui
+++ b/launcher/ui/dialogs/ProfileSelectDialog.ui
@@ -35,14 +35,14 @@
      
The update removes %1 commits and adds the following %2:
").arg(commit_behind).arg(commit_ahead); print_commits(); } - result += QObject::tr("You can look at the changes on github.
").arg(diff_url); + result += QObject::tr("You can look at the changes on GitHub.
").arg(diff_url); return result; } catch (const JSONValidationError &e) { - qWarning() << "Got an unparseable commit log from github:" << e.what(); + qWarning() << "Got an unparseable commit log from GitHub:" << e.what(); qDebug() << json; } return QString(); diff --git a/launcher/ui/pages/global/AccountListPage.cpp b/launcher/ui/pages/global/AccountListPage.cpp index d3eb265548..cb5ad2afba 100644 --- a/launcher/ui/pages/global/AccountListPage.cpp +++ b/launcher/ui/pages/global/AccountListPage.cpp @@ -45,7 +45,7 @@ AccountListPage::AccountListPage(QWidget *parent) ui->setupUi(this); ui->listView->setEmptyString(tr( "Welcome!\n" - "If you're new here, you can click the \"Add\" button to add your Mojang or Minecraft account." + "Click the \"Add\" button to add a Mojang or Minecraft account." )); ui->listView->setEmptyMode(VersionListView::String); ui->listView->setContextMenuPolicy(Qt::CustomContextMenu); diff --git a/launcher/ui/pages/global/LauncherPage.cpp b/launcher/ui/pages/global/LauncherPage.cpp index 2eb73e44d5..a1538e579f 100644 --- a/launcher/ui/pages/global/LauncherPage.cpp +++ b/launcher/ui/pages/global/LauncherPage.cpp @@ -112,13 +112,10 @@ void LauncherPage::on_instDirBrowseBtn_clicked() if (FS::checkProblemticPathJava(QDir(cooked_dir))) { QMessageBox warning; - warning.setText(tr("You're trying to specify an instance folder which\'s path " - "contains at least one \'!\'. " - "Java is known to cause problems if that is the case, your " - "instances (probably) won't start!")); - warning.setInformativeText( - tr("Do you really want to use this path? " - "Selecting \"No\" will close this and not alter your instance path.")); + warning.setText(tr("The specified instance path contains the disallowed symbol: '!'. " + "Java has problems with paths containing '!', it is unlikely that " + "the instance will be able to start.")); + warning.setInformativeText(tr("Continue using the specified path?")); warning.setStandardButtons(QMessageBox::Yes | QMessageBox::No); int result = warning.exec(); if (result == QMessageBox::Yes) diff --git a/launcher/ui/pages/global/LauncherPage.ui b/launcher/ui/pages/global/LauncherPage.ui index 62a66d73b2..6487064e10 100644 --- a/launcher/ui/pages/global/LauncherPage.ui +++ b/launcher/ui/pages/global/LauncherPage.ui @@ -364,21 +364,21 @@If we change the tracked information, you will see this page again.