Qt: Translation Fixes From Crowdin

Co-Authored-By: TellowKrinkle <3315070+TellowKrinkle@users.noreply.github.com>
This commit is contained in:
KamFretoZ 2025-12-09 09:05:03 +07:00 committed by lightningterror
parent 47fe2344a5
commit 7f233ca620
14 changed files with 110 additions and 100 deletions

View File

@ -272,7 +272,7 @@ if (NOT APPLE)
)
endif()
file(GLOB TS_FILES ${CMAKE_CURRENT_SOURCE_DIR}/Translations/*.ts)
file(GLOB TS_FILES ${CMAKE_CURRENT_SOURCE_DIR}/Translations/pcsx2-qt_*-*.ts)
target_precompile_headers(pcsx2-qt PRIVATE PrecompiledHeader.h)
set_source_files_properties(PrecompiledHeader.cpp PROPERTIES HEADER_FILE_ONLY TRUE)

View File

@ -1876,7 +1876,7 @@ void MainWindow::onInputRecPlayActionTriggered()
QFileDialog dialog(this);
dialog.setFileMode(QFileDialog::ExistingFile);
dialog.setWindowTitle("Select a File");
dialog.setWindowTitle(tr("Select a File"));
dialog.setNameFilter(tr("Input Recording Files (*.p2m2)"));
QStringList fileNames;
if (dialog.exec())
@ -3058,7 +3058,7 @@ void MainWindow::populateLoadStateMenu(QMenu* menu, const QString& filename, con
}
const u32 deleted = VMManager::DeleteSaveStates(serial.toUtf8().constData(), crc, true);
QMessageBox::information(this, tr("Delete Save States"), tr("%1 save states deleted.").arg(deleted));
QMessageBox::information(this, tr("Delete Save States"), tr("%n save states deleted.", "", deleted));
});
}
}

View File

@ -15,7 +15,7 @@
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QGroupBox" name="groupBox">
<widget class="QGroupBox" name="screenshotGroupBox">
<property name="title">
<string>Screenshot Capture Setup</string>
</property>
@ -42,7 +42,7 @@
</property>
<item>
<property name="text">
<string>Window Resolution (Aspect Corrected)</string>
<string>Display Resolution (Aspect Corrected)</string>
</property>
</item>
<item>
@ -186,6 +186,9 @@
<property name="singleStep">
<number>1</number>
</property>
<property name="value">
<number>67</number>
</property>
</widget>
</item>
<item row="2" column="0" colspan="2">
@ -273,6 +276,9 @@
<property name="singleStep">
<number>100</number>
</property>
<property name="value">
<number>420</number>
</property>
</widget>
</item>
<item row="3" column="0">
@ -325,7 +331,7 @@
<number>16</number>
</property>
<property name="value">
<number>240</number>
<number>480</number>
</property>
</widget>
</item>

View File

@ -472,7 +472,7 @@ GraphicsSettingsWidget::GraphicsSettingsWidget(SettingsWindow* settings_dialog,
dialog()->registerWidgetHelp(m_display.interlacing, tr("Deinterlacing"), tr("Automatic (Default)"), tr("Determines the deinterlacing method to be used on the interlaced screen of the emulated console. Automatic should be able to correctly deinterlace most games, but if you see visibly shaky graphics, try one of the other options."));
dialog()->registerWidgetHelp(m_capture.screenshotSize, tr("Screenshot Resolution"), tr("Screen Resolution"),
dialog()->registerWidgetHelp(m_capture.screenshotSize, tr("Screenshot Resolution"), tr("Display Resolution"),
tr("Determines the resolution at which screenshots will be saved. Internal resolutions preserve more detail at the cost of "
"file size."));
@ -765,10 +765,10 @@ GraphicsSettingsWidget::GraphicsSettingsWidget(SettingsWindow* settings_dialog,
tr("Shows the current controller state of the system in the bottom-left corner of the display."));
dialog()->registerWidgetHelp(m_osd.showVideoCapture, tr("Show Video Capture Status"), tr("Checked"),
tr("Shows the status of the currently active video capture in the top-right corner of the display.."));
tr("Shows the status of the currently active video capture in the top-right corner of the display."));
dialog()->registerWidgetHelp(m_osd.showInputRec, tr("Show Input Recording Status"), tr("Checked"),
tr("Shows the status of the currently active input recording in the top-right corner of the display.."));
tr("Shows the status of the currently active input recording in the top-right corner of the display."));
dialog()->registerWidgetHelp(m_osd.showTextureReplacements, tr("Show Texture Replacement Status"), tr("Unchecked"),
tr("Shows the status of the number of dumped and loaded texture replacements in the top-right corner of the display."));

View File

@ -93,7 +93,7 @@
<item row="1" column="0">
<widget class="QLabel" name="nativeScalingLabel">
<property name="text">
<string>Native Scaling</string>
<string>Native Scaling:</string>
</property>
<property name="buddy">
<cstring>nativeScaling</cstring>

View File

@ -261,8 +261,10 @@ void SetupWizardDialog::onDirectoryListContextMenuRequested(const QPoint& point)
const int row = selection[0].row();
QMenu menu;
//: Part of the right-click menu for game directory entries
menu.addAction(tr("Remove"), [this]() { onRemoveSearchDirectoryButtonClicked(); });
menu.addSeparator();
//: Part of the right-click menu for game directory entries
menu.addAction(tr("Open Directory..."),
[this, row]() { QtUtils::OpenURL(this, QUrl::fromLocalFile(m_ui.searchDirectoryList->item(row, 0)->text())); });
menu.exec(m_ui.searchDirectoryList->mapToGlobal(point));

View File

@ -82,7 +82,7 @@ void InputRecordingViewer::openFile()
{
QFileDialog dialog(this);
dialog.setFileMode(QFileDialog::ExistingFile);
dialog.setWindowTitle("Select a File");
dialog.setWindowTitle(tr("Select a File"));
dialog.setNameFilter(tr("Input Recording Files (*.p2m2)"));
QStringList fileNames;
if (dialog.exec())

View File

@ -589,18 +589,18 @@ Login token generated on %2.</source>
<location filename="../../pcsx2/Achievements.cpp" line="1104"/>
<source>You have unlocked {} of %n achievements</source>
<comment>Achievement popup</comment>
<translation>
<numerusform>You have unlocked {} of %n achievements</numerusform>
<numerusform>You have unlocked {} of %n achievements</numerusform>
<translation type="unfinished">
<numerusform></numerusform>
<numerusform></numerusform>
</translation>
</message>
<message numerus="yes">
<location filename="../../pcsx2/Achievements.cpp" line="1107"/>
<source>and earned {} of %n points</source>
<comment>Achievement popup</comment>
<translation>
<numerusform>and earned {} of %n points</numerusform>
<numerusform>and earned {} of %n points</numerusform>
<translation type="unfinished">
<numerusform></numerusform>
<numerusform></numerusform>
</translation>
</message>
<message>
@ -622,18 +622,18 @@ Login token generated on %2.</source>
<location filename="../../pcsx2/Achievements.cpp" line="1191"/>
<source>%n achievements</source>
<comment>Mastery popup</comment>
<translation>
<numerusform>%n achievement</numerusform>
<numerusform>%n achievements</numerusform>
<translation type="unfinished">
<numerusform></numerusform>
<numerusform></numerusform>
</translation>
</message>
<message numerus="yes">
<location filename="../../pcsx2/Achievements.cpp" line="1193"/>
<source>%n points</source>
<comment>Mastery popup</comment>
<translation>
<numerusform>%n point</numerusform>
<numerusform>%n points</numerusform>
<translation type="unfinished">
<numerusform></numerusform>
<numerusform></numerusform>
</translation>
</message>
<message>
@ -9641,7 +9641,7 @@ Do you want to load this save and continue?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../pcsx2/ImGui/FullscreenUI.cpp" line="9650"/>
<location filename="../../pcsx2/ImGui/FullscreenUI.cpp" line="9618"/>
<source>Please enter your user name and password for retroachievements.org below.
Your password will not be saved in PCSX2, an access token will be generated and used instead.</source>
@ -25530,6 +25530,7 @@ PCSX2 will be able to run once you&apos;ve placed your BIOS image inside the fol
</message>
<message>
<location filename="../../pcsx2/VMManager.cpp" line="3204"/>
<source>Texture dumping is enabled, this will continually dump textures to disk.</source>
<translation type="unfinished"></translation>
</message>

View File

@ -4723,9 +4723,9 @@ void FullscreenUI::DrawGraphicsSettingsPage(SettingsInterface* bsi, bool show_ad
FSUI_NSTR("Disabled (Ignore Transfers)"),
};
static constexpr const char* s_screenshot_sizes[] = {
FSUI_NSTR("Screen Resolution"),
FSUI_NSTR("Internal Resolution"),
FSUI_NSTR("Internal Resolution (Aspect Uncorrected)"),
FSUI_NSTR("Display Resolution (Aspect Corrected)"),
FSUI_NSTR("Internal Resolution (Aspect Corrected)"),
FSUI_NSTR("Internal Resolution (No Aspect Correction)"),
};
static constexpr const char* s_screenshot_formats[] = {
FSUI_NSTR("PNG"),

View File

@ -765,9 +765,9 @@ std::optional<InputBindingKey> SDLInputSource::ParseKeyString(const std::string_
{
shown_prompt = true;
Host::ReportInfoAsync(TRANSLATE("SDLInputSource", "SDL3 Migration"),
TRANSLATE("SDLInputSource", "As part of our upgrade to SDL3, we've had to migrate your binds\n"
"Your controller did not match the Xbox layout and may need rebinding\n"
"Please verify your controller settings and amend if required"));
TRANSLATE("SDLInputSource", "As part of our upgrade to SDL3, we've had to migrate your binds.\n"
"Your controller did not match the Xbox layout and may need rebinding.\n"
"Please verify your controller settings and amend if required."));
// Also apply BPM setting for legacy binds
// We assume this is a Nintendo controller, BPM will check if it is

View File

@ -93,7 +93,7 @@ bool InputRecording::play(const std::string& filename)
if (!FileSystem::FileExists(savestatePath.c_str()))
{
InputRec::consoleLog(fmt::format("Could not locate savestate file at location - {}", savestatePath));
InputRec::log(TRANSLATE_STR("InputRecording", "Savestate load failed for input recording"), Host::OSD_ERROR_DURATION);
InputRec::log(TRANSLATE_STR("InputRecording", "Failed to load state for input recording"), Host::OSD_ERROR_DURATION);
m_file.close();
return false;
}
@ -103,7 +103,7 @@ bool InputRecording::play(const std::string& filename)
const auto loaded = VMManager::LoadState(savestatePath.c_str());
if (!loaded)
{
InputRec::log(TRANSLATE_STR("InputRecording", "Load state failed for input recording, unsupported version?"), Host::OSD_ERROR_DURATION);
InputRec::log(TRANSLATE_STR("InputRecording", "Failed to load state for input recording, unsupported version?"), Host::OSD_ERROR_DURATION);
m_file.close();
m_is_active = false;
return false;

View File

@ -581,9 +581,10 @@ bool Pad::Freeze(StateWrapper& sw)
const auto& [port, slot] = sioConvertPadToPortAndSlot(unifiedSlot);
Host::AddIconOSDMessage(fmt::format("UnfreezePad{}Changed", unifiedSlot), ICON_FA_GAMEPAD,
//: {0} and {1} are the port and multitap slot, {2} and {3} are controller types (e.g. "DualShock 2", "Jogcon")
fmt::format(TRANSLATE_FS("Pad",
"Controller port {0}, slot {1} has a {2} connected, but the save state has a "
"{3}.\nEjecting {3} and replacing it with {2}."),
"{3}.\nEjecting {2} and replacing it with {3}."),
port, slot,
GetControllerTypeName(currentPad ? currentPad->GetType() : Pad::ControllerType::NotConnected),
GetControllerTypeName(statePadType)));

View File

@ -1243,7 +1243,7 @@ namespace usb_msd
{
static constexpr const SettingInfo settings[] = {
{SettingInfo::Type::Path, "ImagePathMsd", TRANSLATE_NOOP("USB", "Image Path"),
TRANSLATE_NOOP("USB", "Sets the path to image which will back the virtual mass storage device.")},
TRANSLATE_NOOP("USB", "Sets the path to the disk image which will back the virtual mass storage device.")},
};
return settings;
}
@ -1251,7 +1251,7 @@ namespace usb_msd
{
static constexpr const SettingInfo settings[] = {
{SettingInfo::Type::Path, "ImagePathMsac", TRANSLATE_NOOP("USB", "Image Path"),
TRANSLATE_NOOP("USB", "Sets the path to image which will back the virtual mass storage device.")},
TRANSLATE_NOOP("USB", "Sets the path to the disk image which will back the virtual mass storage device.")},
};
return settings;
}