diff --git a/pcsx2-qt/CMakeLists.txt b/pcsx2-qt/CMakeLists.txt index 2d18246208..dd639a0504 100644 --- a/pcsx2-qt/CMakeLists.txt +++ b/pcsx2-qt/CMakeLists.txt @@ -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) diff --git a/pcsx2-qt/MainWindow.cpp b/pcsx2-qt/MainWindow.cpp index 1e6aaa188f..bc917337ad 100644 --- a/pcsx2-qt/MainWindow.cpp +++ b/pcsx2-qt/MainWindow.cpp @@ -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)); }); } } diff --git a/pcsx2-qt/Settings/GraphicsMediaCaptureSettingsTab.ui b/pcsx2-qt/Settings/GraphicsMediaCaptureSettingsTab.ui index 14e504118f..9002e5e57d 100644 --- a/pcsx2-qt/Settings/GraphicsMediaCaptureSettingsTab.ui +++ b/pcsx2-qt/Settings/GraphicsMediaCaptureSettingsTab.ui @@ -15,7 +15,7 @@ - + Screenshot Capture Setup @@ -42,7 +42,7 @@ - Window Resolution (Aspect Corrected) + Display Resolution (Aspect Corrected) @@ -186,6 +186,9 @@ 1 + + 67 + @@ -273,6 +276,9 @@ 100 + + 420 + @@ -325,7 +331,7 @@ 16 - 240 + 480 diff --git a/pcsx2-qt/Settings/GraphicsSettingsWidget.cpp b/pcsx2-qt/Settings/GraphicsSettingsWidget.cpp index 1a4fefd6e3..b39d40d0bd 100644 --- a/pcsx2-qt/Settings/GraphicsSettingsWidget.cpp +++ b/pcsx2-qt/Settings/GraphicsSettingsWidget.cpp @@ -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.")); diff --git a/pcsx2-qt/Settings/GraphicsUpscalingFixesSettingsTab.ui b/pcsx2-qt/Settings/GraphicsUpscalingFixesSettingsTab.ui index d6f6fcc5d4..4e32d08161 100644 --- a/pcsx2-qt/Settings/GraphicsUpscalingFixesSettingsTab.ui +++ b/pcsx2-qt/Settings/GraphicsUpscalingFixesSettingsTab.ui @@ -93,7 +93,7 @@ - Native Scaling + Native Scaling: nativeScaling diff --git a/pcsx2-qt/SetupWizardDialog.cpp b/pcsx2-qt/SetupWizardDialog.cpp index 5c6bc35563..41e14f2f09 100644 --- a/pcsx2-qt/SetupWizardDialog.cpp +++ b/pcsx2-qt/SetupWizardDialog.cpp @@ -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)); diff --git a/pcsx2-qt/Tools/InputRecording/InputRecordingViewer.cpp b/pcsx2-qt/Tools/InputRecording/InputRecordingViewer.cpp index b62fb77538..df0e14644a 100644 --- a/pcsx2-qt/Tools/InputRecording/InputRecordingViewer.cpp +++ b/pcsx2-qt/Tools/InputRecording/InputRecordingViewer.cpp @@ -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()) diff --git a/pcsx2-qt/Translations/pcsx2-qt_en.ts b/pcsx2-qt/Translations/pcsx2-qt_en.ts index 0f8459c165..92b9c61e06 100644 --- a/pcsx2-qt/Translations/pcsx2-qt_en.ts +++ b/pcsx2-qt/Translations/pcsx2-qt_en.ts @@ -589,18 +589,18 @@ Login token generated on %2. You have unlocked {} of %n achievements Achievement popup - - You have unlocked {} of %n achievements - You have unlocked {} of %n achievements + + + and earned {} of %n points Achievement popup - - and earned {} of %n points - and earned {} of %n points + + + @@ -622,18 +622,18 @@ Login token generated on %2. %n achievements Mastery popup - - %n achievement - %n achievements + + + %n points Mastery popup - - %n point - %n points + + + @@ -9641,8 +9641,8 @@ Do you want to load this save and continue? - - Please enter your user name and password for retroachievements.org below. + + 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. @@ -15059,7 +15059,7 @@ Scanning recursively takes more time, but will identify files in subdirectories. Use Blit Swap Chain - Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit + Blit = a data operation. You might want to write it as-is, but fully uppercased. More information: https://en.wikipedia.org/wiki/Bit_blit Swap chain: see Microsoft's Terminology Portal. @@ -21225,7 +21225,7 @@ Ejecting {3} and replacing it with {2}. - Creating HDD file + Creating HDD file %1 / %2 MiB @@ -25530,6 +25530,7 @@ PCSX2 will be able to run once you've placed your BIOS image inside the fol + Texture dumping is enabled, this will continually dump textures to disk. diff --git a/pcsx2/GS/Renderers/DX11/GSDevice11.cpp b/pcsx2/GS/Renderers/DX11/GSDevice11.cpp index b62d1fec19..d9eaf627a1 100644 --- a/pcsx2/GS/Renderers/DX11/GSDevice11.cpp +++ b/pcsx2/GS/Renderers/DX11/GSDevice11.cpp @@ -513,7 +513,7 @@ bool GSDevice11::Create(GSVSyncMode vsync_mode, bool allow_present_throttle) if (m_feature_level < D3D_FEATURE_LEVEL_11_0) { Host::AddIconOSDMessage("d3d11_feature_level_warning", ICON_FA_TRIANGLE_EXCLAMATION, - TRANSLATE_SV("GS", "The Direct3D11 renderer is running at feature level 10.0. This is an UNSUPPORTED configuration.\n" + TRANSLATE_SV("GS", "The Direct3D 11 renderer is running at feature level 10.0. This is an UNSUPPORTED configuration.\n" "Do not request support, please upgrade your hardware/drivers first."), Host::OSD_WARNING_DURATION); } diff --git a/pcsx2/ImGui/FullscreenUI.cpp b/pcsx2/ImGui/FullscreenUI.cpp index e61642848e..75195f7ceb 100644 --- a/pcsx2/ImGui/FullscreenUI.cpp +++ b/pcsx2/ImGui/FullscreenUI.cpp @@ -1202,11 +1202,11 @@ void FullscreenUI::Shutdown(bool clear_state) s_about_window_open = false; } s_hotkey_list_cache = {}; - + s_custom_background_texture.reset(); s_custom_background_path.clear(); s_custom_background_enabled = false; - + DestroyResources(); ImGuiFullscreen::Shutdown(clear_state); s_initialized = false; @@ -1240,7 +1240,7 @@ void FullscreenUI::Render() s_current_main_window == MainWindowType::GameList || s_current_main_window == MainWindowType::GameListSettings || s_current_main_window == MainWindowType::Settings) && s_custom_background_enabled && s_custom_background_texture; - + ImVec4 original_background_color; if (should_draw_background) { @@ -1691,7 +1691,7 @@ bool FullscreenUI::ShouldDefaultToGameList() void FullscreenUI::LoadCustomBackground() { std::string path = Host::GetBaseStringSettingValue("UI", "GameListBackgroundPath"); - + if (path.empty()) { s_custom_background_texture.reset(); @@ -1757,15 +1757,15 @@ void FullscreenUI::DrawCustomBackground() const ImGuiIO& io = ImGui::GetIO(); const ImVec2 display_size = io.DisplaySize; - + const float opacity = Host::GetBaseFloatSettingValue("UI", "GameListBackgroundOpacity", 100.0f) / 100.0f; const std::string mode = Host::GetBaseStringSettingValue("UI", "GameListBackgroundMode", "fit"); const float tex_width = static_cast(s_custom_background_texture->GetWidth()); const float tex_height = static_cast(s_custom_background_texture->GetHeight()); - + ImVec2 img_min, img_max; - + if (mode == "stretch") { // stretch to fill entire display (ignores aspect ratio) @@ -1777,7 +1777,7 @@ void FullscreenUI::DrawCustomBackground() // Fill display while preserving aspect ratio (could crop edges) const float display_aspect = display_size.x / display_size.y; const float tex_aspect = tex_width / tex_height; - + float scale; if (tex_aspect > display_aspect) { @@ -1789,12 +1789,12 @@ void FullscreenUI::DrawCustomBackground() // Image is taller scale to width and crop top/bottom scale = display_size.x / tex_width; } - + const float scaled_width = tex_width * scale; const float scaled_height = tex_height * scale; const float offset_x = (display_size.x - scaled_width) * 0.5f; const float offset_y = (display_size.y - scaled_height) * 0.5f; - + img_min = ImVec2(offset_x, offset_y); img_max = ImVec2(offset_x + scaled_width, offset_y + scaled_height); } @@ -1803,7 +1803,7 @@ void FullscreenUI::DrawCustomBackground() // Fit on screen while preserving aspect ratio (no cropping) const float display_aspect = display_size.x / display_size.y; const float tex_aspect = tex_width / tex_height; - + float scale; if (tex_aspect > display_aspect) { @@ -1815,12 +1815,12 @@ void FullscreenUI::DrawCustomBackground() // Image is taller than display scale = display_size.y / tex_height; } - + const float scaled_width = tex_width * scale; const float scaled_height = tex_height * scale; const float offset_x = (display_size.x - scaled_width) * 0.5f; const float offset_y = (display_size.y - scaled_height) * 0.5f; - + img_min = ImVec2(offset_x, offset_y); img_max = ImVec2(offset_x + scaled_width, offset_y + scaled_height); } @@ -1829,7 +1829,7 @@ void FullscreenUI::DrawCustomBackground() // We need to make windows transparent so our background image shows through const ImVec4 transparent_bg = ImVec4(UIBackgroundColor.x, UIBackgroundColor.y, UIBackgroundColor.z, 0.0f); ImGuiFullscreen::UIBackgroundColor = transparent_bg; - + ImDrawList* bg_draw_list = ImGui::GetBackgroundDrawList(); const ImU32 col = IM_COL32(255, 255, 255, static_cast(opacity * 255.0f)); bg_draw_list->AddImage(reinterpret_cast(s_custom_background_texture->GetNativeHandle()), @@ -3358,7 +3358,7 @@ void FullscreenUI::DrawIPAddressSetting(SettingsInterface* bsi, const char* titl char ip_str[16]; std::snprintf(ip_str, sizeof(ip_str), "%d.%d.%d.%d", ip_octets[0], ip_octets[1], ip_octets[2], ip_octets[3]); - + const char* message; switch (ip_type) { @@ -3382,9 +3382,9 @@ void FullscreenUI::DrawIPAddressSetting(SettingsInterface* bsi, const char* titl } ImGuiFullscreen::CloseInputDialog(); - + std::string ip_str_value(ip_str); - + ImGuiFullscreen::OpenInputStringDialog( title, message, @@ -3401,10 +3401,10 @@ void FullscreenUI::DrawIPAddressSetting(SettingsInterface* bsi, const char* titl new_octets[i] = std::clamp(std::atoi(segment.c_str()), 0, 255); i++; } - + char ip_str[16]; std::snprintf(ip_str, sizeof(ip_str), "%d.%d.%d.%d", new_octets[0], new_octets[1], new_octets[2], new_octets[3]); - + if (IsEditingGameSettings(bsi) && strcmp(ip_str, default_value) == 0) bsi->DeleteValue(section, key); else @@ -4051,16 +4051,16 @@ void FullscreenUI::DrawInterfaceSettingsPage() "EmuCore", "UseSavestateSelector", true); MenuHeading(FSUI_CSTR("Background")); - + std::string background_path = bsi->GetStringValue("UI", "GameListBackgroundPath", ""); const bool background_enabled = bsi->GetBoolValue("UI", "GameListBackgroundEnabled", false); - + std::string background_display = FSUI_STR("None"); if (!background_path.empty() && background_enabled) { background_display = Path::GetFileName(background_path); } - + if (MenuButtonWithValue(FSUI_ICONSTR(ICON_FA_IMAGE, "Background Image"), FSUI_CSTR("Select a custom background image to use in Big Picture Mode menus."), background_display.c_str())) @@ -4078,30 +4078,30 @@ void FullscreenUI::DrawInterfaceSettingsPage() bsi->SetBoolValue("UI", "GameListBackgroundEnabled", true); SetSettingsChanged(bsi); } - + LoadCustomBackground(); } CloseFileSelector(); }, GetImageFileFilters()); } - + if (MenuButton(FSUI_ICONSTR(ICON_FA_XMARK, "Clear Background Image"), FSUI_CSTR("Removes the custom background image."))) { bsi->DeleteValue("UI", "GameListBackgroundPath"); bsi->SetBoolValue("UI", "GameListBackgroundEnabled", false); SetSettingsChanged(bsi); - + s_custom_background_texture.reset(); s_custom_background_path.clear(); s_custom_background_enabled = false; } - + DrawIntRangeSetting(bsi, FSUI_ICONSTR(ICON_FA_DROPLET, "Background Opacity"), FSUI_CSTR("Sets the transparency of the custom background image."), "UI", "GameListBackgroundOpacity", 100, 0, 100, "%d%%"); - + static constexpr const char* s_background_mode_names[] = { FSUI_NSTR("Fit"), FSUI_NSTR("Fill"), @@ -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"), @@ -5300,22 +5300,22 @@ void FullscreenUI::DrawNetworkHDDSettingsPage() const bool network_enabled = GetEffectiveBoolSetting(bsi, "DEV9/Eth", "EthEnable", false); const std::string current_api = bsi->GetStringValue("DEV9/Eth", "EthApi", "Unset"); - + static std::vector> adapter_lists; static std::vector api_types; static std::vector api_display_names; static bool adapters_loaded = false; - + if (!adapters_loaded && network_enabled) { adapter_lists.clear(); api_types.clear(); api_display_names.clear(); - + adapter_lists.emplace_back(); api_types.emplace_back(Pcsx2Config::DEV9Options::NetApi::Unset); api_display_names.emplace_back("Unset"); - + std::vector pcap_adapters = PCAPAdapter::GetAdapters(); if (!pcap_adapters.empty()) { @@ -5323,7 +5323,7 @@ void FullscreenUI::DrawNetworkHDDSettingsPage() std::vector pcap_switched_adapters; std::set seen_bridged_guids; std::set seen_switched_guids; - + for (const auto& adapter : pcap_adapters) { if (adapter.type == Pcsx2Config::DEV9Options::NetApi::PCAP_Bridged) @@ -5343,7 +5343,7 @@ void FullscreenUI::DrawNetworkHDDSettingsPage() } } } - + // Sort adapters alphabetically by name std::sort(pcap_bridged_adapters.begin(), pcap_bridged_adapters.end(), [](const AdapterEntry& a, const AdapterEntry& b) { return a.name < b.name; }); @@ -5364,7 +5364,7 @@ void FullscreenUI::DrawNetworkHDDSettingsPage() api_display_names.emplace_back("PCAP Switched"); } } - + #ifdef _WIN32 std::vector tap_adapters = TAPAdapter::GetAdapters(); if (!tap_adapters.empty()) @@ -5378,7 +5378,7 @@ void FullscreenUI::DrawNetworkHDDSettingsPage() api_display_names.emplace_back("TAP"); } #endif - + std::vector socket_adapters = SocketAdapter::GetAdapters(); if (!socket_adapters.empty()) { @@ -5390,7 +5390,7 @@ void FullscreenUI::DrawNetworkHDDSettingsPage() api_types.emplace_back(Pcsx2Config::DEV9Options::NetApi::Sockets); api_display_names.emplace_back("Sockets"); } - + adapters_loaded = true; } @@ -5410,7 +5410,7 @@ void FullscreenUI::DrawNetworkHDDSettingsPage() network_enabled)) { ImGuiFullscreen::ChoiceDialogOptions options; - + for (size_t i = 0; i < api_display_names.size(); i++) { options.emplace_back(api_display_names[i], i == current_api_index); @@ -5428,9 +5428,9 @@ void FullscreenUI::DrawNetworkHDDSettingsPage() const std::string selected_api = Pcsx2Config::DEV9Options::NetApiNames[static_cast(current_api_types[index])]; const std::string previous_api = bsi->GetStringValue("DEV9/Eth", "EthApi", "Unset"); const std::string previous_device = bsi->GetStringValue("DEV9/Eth", "EthDevice", ""); - + bsi->SetStringValue("DEV9/Eth", "EthApi", selected_api.c_str()); - + std::string new_device = ""; if (index < static_cast(current_adapter_lists.size())) { @@ -5455,10 +5455,10 @@ void FullscreenUI::DrawNetworkHDDSettingsPage() new_device = new_adapter_list[0].guid; } } - + bsi->SetStringValue("DEV9/Eth", "EthDevice", new_device.c_str()); SetSettingsChanged(bsi); - + CloseChoiceDialog(); }); } @@ -5481,7 +5481,7 @@ void FullscreenUI::DrawNetworkHDDSettingsPage() } } } - + if (device_display.empty()) device_display = current_device; } @@ -5528,7 +5528,7 @@ void FullscreenUI::DrawNetworkHDDSettingsPage() if (index < static_cast(current_adapter_list.size())) { const auto& selected_adapter = current_adapter_list[index]; - + auto lock = Host::GetSettingsLock(); bsi->SetStringValue("DEV9/Eth", "EthApi", current_api_choice.c_str()); bsi->SetStringValue("DEV9/Eth", "EthDevice", selected_adapter.guid.c_str()); @@ -5574,7 +5574,7 @@ void FullscreenUI::DrawNetworkHDDSettingsPage() FSUI_CSTR("Automatically determine the subnet mask based on the IP address class."), "DEV9/Eth", "AutoMask", true, ip_settings_enabled && subnet_can_be_edited); DrawIPAddressSetting(bsi, FSUI_ICONSTR(ICON_FA_NETWORK_WIRED, "Subnet Mask"), - FSUI_CSTR("Subnet mask for the PS2 virtual network adapter."), "DEV9/Eth", "Mask", "0.0.0.0", + FSUI_CSTR("Subnet mask for the PS2 virtual network adapter."), "DEV9/Eth", "Mask", "0.0.0.0", ip_settings_enabled && subnet_can_be_edited && !mask_auto, LAYOUT_MENU_BUTTON_HEIGHT, g_large_font, g_medium_font, IPAddressType::SubnetMask); const bool gateway_auto = GetEffectiveBoolSetting(bsi, "DEV9/Eth", "AutoGateway", true); @@ -5632,7 +5632,7 @@ void FullscreenUI::DrawNetworkHDDSettingsPage() { const std::string full_path = fd.FileName; const std::string filename = std::string(Path::GetFileName(full_path)); - + // Get file size and determine LBA mode const s64 file_size = FileSystem::GetPathFileSize(full_path.c_str()); if (file_size > 0) @@ -5640,8 +5640,8 @@ void FullscreenUI::DrawNetworkHDDSettingsPage() const int size_gb = static_cast(file_size / _1gb); const bool uses_lba48 = (file_size > static_cast(120) * _1gb); const std::string lba_mode = uses_lba48 ? "LBA48" : "LBA28"; - - choices.emplace_back(fmt::format("{} ({} GB, {})", filename, size_gb, lba_mode), + + choices.emplace_back(fmt::format("{} ({} GB, {})", filename, size_gb, lba_mode), hdd_selection == full_path); values.emplace_back(full_path); } @@ -5661,7 +5661,7 @@ void FullscreenUI::DrawNetworkHDDSettingsPage() if (values[index] == "__browse__") { CloseChoiceDialog(); - + OpenFileSelector(FSUI_ICONSTR(ICON_FA_HARD_DRIVE, "Select HDD Image File"), false, [game_settings](const std::string& path) { if (path.empty()) @@ -5677,7 +5677,7 @@ void FullscreenUI::DrawNetworkHDDSettingsPage() else if (values[index] == "__create__") { CloseChoiceDialog(); - + std::vector> size_options = { {"40 GB (Recommended)", 40}, {"80 GB", 80}, @@ -5702,7 +5702,7 @@ void FullscreenUI::DrawNetworkHDDSettingsPage() if (size_values[size_index] == -1) { CloseChoiceDialog(); - + OpenInputStringDialog( FSUI_ICONSTR(ICON_FA_PEN_TO_SQUARE, "Custom HDD Size"), FSUI_STR("Enter custom HDD size in gigabytes (40–2000):"), @@ -5711,7 +5711,7 @@ void FullscreenUI::DrawNetworkHDDSettingsPage() [game_settings](std::string input) { if (input.empty()) return; - + std::optional custom_size_opt = StringUtil::FromChars(input); if (!custom_size_opt.has_value()) { @@ -5719,17 +5719,17 @@ void FullscreenUI::DrawNetworkHDDSettingsPage() return; } int custom_size_gb = custom_size_opt.value(); - + if (custom_size_gb < 40 || custom_size_gb > 2000) { ShowToast(std::string(), FSUI_STR("HDD size must be between 40 GB and 2000 GB.")); return; } - + const bool lba48 = (custom_size_gb > 120); const std::string filename = fmt::format("DEV9hdd_{}GB_{}.raw", custom_size_gb, lba48 ? "LBA48" : "LBA28"); const std::string filepath = Path::Combine(EmuFolders::DataRoot, filename); - + if (FileSystem::FileExists(filepath.c_str())) { OpenConfirmMessageDialog( @@ -5762,10 +5762,10 @@ void FullscreenUI::DrawNetworkHDDSettingsPage() const int size_gb = size_values[size_index]; const bool lba48 = (size_gb > 120); - + const std::string filename = fmt::format("DEV9hdd_{}GB_{}.raw", size_gb, lba48 ? "LBA48" : "LBA28"); const std::string filepath = Path::Combine(EmuFolders::DataRoot, filename); - + if (FileSystem::FileExists(filepath.c_str())) { OpenConfirmMessageDialog( @@ -5790,7 +5790,7 @@ void FullscreenUI::DrawNetworkHDDSettingsPage() SetSettingsChanged(bsi); FullscreenUI::CreateHardDriveWithProgress(filepath, size_gb, lba48); } - + CloseChoiceDialog(); }); } @@ -7854,7 +7854,7 @@ void FullscreenUI::DrawGameListWindow() void FullscreenUI::DrawGameList(const ImVec2& heading_size) { ImGui::PushStyleColor(ImGuiCol_WindowBg, UIBackgroundColor); - + if (!BeginFullscreenColumns(nullptr, heading_size.y, true, true)) { EndFullscreenColumns(); @@ -8140,7 +8140,7 @@ void FullscreenUI::DrawGameGrid(const ImVec2& heading_size) const bool show_titles = Host::GetBaseBoolSettingValue("UI", "FullscreenUIShowGameGridTitles", true); - if (show_titles) + if (show_titles) { const ImRect title_bb(ImVec2(bb.Min.x, bb.Min.y + image_height + title_spacing), bb.Max); const std::string_view title(std::string_view(entry->GetTitle(true)).substr(0, 31)); diff --git a/pcsx2/Input/SDLInputSource.cpp b/pcsx2/Input/SDLInputSource.cpp index 556b34c8c1..9e63628d82 100644 --- a/pcsx2/Input/SDLInputSource.cpp +++ b/pcsx2/Input/SDLInputSource.cpp @@ -765,9 +765,9 @@ std::optional 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 diff --git a/pcsx2/Recording/InputRecording.cpp b/pcsx2/Recording/InputRecording.cpp index 8728cf71b4..fe2c6f5bbd 100644 --- a/pcsx2/Recording/InputRecording.cpp +++ b/pcsx2/Recording/InputRecording.cpp @@ -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; diff --git a/pcsx2/SIO/Pad/Pad.cpp b/pcsx2/SIO/Pad/Pad.cpp index 8227d57451..92eea97ee2 100644 --- a/pcsx2/SIO/Pad/Pad.cpp +++ b/pcsx2/SIO/Pad/Pad.cpp @@ -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))); @@ -698,7 +699,7 @@ void Pad::SetMacroButtonState(InputBindingKey& key, u32 pad, u32 index, bool sta } if (mb.active_buttons.find(key.bits) != mb.active_buttons.end()) mb.active_buttons.erase(key.bits); - + mb.active_buttons.emplace(key.bits, state); if (mb.active_buttons.size() != binding_count) @@ -759,4 +760,4 @@ void Pad::UpdateMacroButtons() ApplyMacroButton(pad, mb); } } -} \ No newline at end of file +} diff --git a/pcsx2/USB/usb-msd/usb-msd.cpp b/pcsx2/USB/usb-msd/usb-msd.cpp index f093699297..3e47b16cc2 100644 --- a/pcsx2/USB/usb-msd/usb-msd.cpp +++ b/pcsx2/USB/usb-msd/usb-msd.cpp @@ -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; }