diff --git a/src/duckstation-qt/CMakeLists.txt b/src/duckstation-qt/CMakeLists.txt
index f468a1bbe1..b54e83051a 100644
--- a/src/duckstation-qt/CMakeLists.txt
+++ b/src/duckstation-qt/CMakeLists.txt
@@ -120,6 +120,7 @@ set(TS_FILES
translations/duckstation-qt_de.ts
translations/duckstation-qt_en.ts
translations/duckstation-qt_es.ts
+ translations/duckstation-qt_es-es.ts
translations/duckstation-qt_fr.ts
translations/duckstation-qt_he.ts
translations/duckstation-qt_it.ts
diff --git a/src/duckstation-qt/duckstation-qt.vcxproj b/src/duckstation-qt/duckstation-qt.vcxproj
index 893712e97d..a8ffd9aac9 100644
--- a/src/duckstation-qt/duckstation-qt.vcxproj
+++ b/src/duckstation-qt/duckstation-qt.vcxproj
@@ -1,7 +1,6 @@
-
@@ -255,6 +254,7 @@
+
Document
@@ -264,7 +264,6 @@
-
false
@@ -274,23 +273,17 @@
-
{28F14272-0EC4-41BB-849F-182ADB81AF70}
-
-
-
$(RootBuildDir)frontend-common\frontend-common.lib;%(AdditionalDependencies)
-
-
-
+
\ No newline at end of file
diff --git a/src/duckstation-qt/duckstation-qt.vcxproj.filters b/src/duckstation-qt/duckstation-qt.vcxproj.filters
index ace3fb4aa8..d5903bf500 100644
--- a/src/duckstation-qt/duckstation-qt.vcxproj.filters
+++ b/src/duckstation-qt/duckstation-qt.vcxproj.filters
@@ -182,6 +182,9 @@
translations
+
+ translations
+
diff --git a/src/duckstation-qt/mainwindow.cpp b/src/duckstation-qt/mainwindow.cpp
index c76c47979b..9740afb1a1 100644
--- a/src/duckstation-qt/mainwindow.cpp
+++ b/src/duckstation-qt/mainwindow.cpp
@@ -964,7 +964,17 @@ void MainWindow::setupAdditionalUi()
QAction* action = language_group->addAction(it.first);
action->setCheckable(true);
action->setChecked(current_language == it.second);
- action->setIcon(QIcon(QStringLiteral(":/icons/flags/%1.png").arg(it.second)));
+
+ QString icon_filename(QStringLiteral(":/icons/flags/%1.png").arg(it.second));
+ if (!QFile::exists(icon_filename))
+ {
+ // try without the suffix (e.g. es-es -> es)
+ const int pos = it.second.lastIndexOf('-');
+ if (pos >= 0)
+ icon_filename = QStringLiteral(":/icons/flags/%1.png").arg(it.second.left(pos));
+ }
+ action->setIcon(QIcon(icon_filename));
+
m_ui.menuSettingsLanguage->addAction(action);
action->setData(it.second);
connect(action, &QAction::triggered, [this, action]() {
diff --git a/src/duckstation-qt/qthostinterface.cpp b/src/duckstation-qt/qthostinterface.cpp
index 7caa802497..4cc3e1ef65 100644
--- a/src/duckstation-qt/qthostinterface.cpp
+++ b/src/duckstation-qt/qthostinterface.cpp
@@ -72,7 +72,8 @@ std::vector> QtHostInterface::getAvailableLanguageLi
{
return {{QStringLiteral("English"), QStringLiteral("en")},
{QStringLiteral("Deutsch"), QStringLiteral("de")},
- {QStringLiteral("Español"), QStringLiteral("es")},
+ {QStringLiteral("español de Hispanoamérica"), QStringLiteral("es")},
+ {QStringLiteral("español de España"), QStringLiteral("es-es")},
{QStringLiteral("Français"), QStringLiteral("fr")},
{QStringLiteral("עברית"), QStringLiteral("he")},
{QStringLiteral("日本語"), QStringLiteral("ja")},