diff --git a/binaries/data/mods/public/gui/common/settings.js b/binaries/data/mods/public/gui/common/settings.js
index eea4510eac..a6464b3d64 100644
--- a/binaries/data/mods/public/gui/common/settings.js
+++ b/binaries/data/mods/public/gui/common/settings.js
@@ -256,3 +256,58 @@ function prepareForDropdown(settingValues)
}
return settings;
}
+
+/**
+ * Returns title or placeholder.
+ *
+ * @param aiName {string} - for example "petra"
+ */
+function translateAIName(aiName)
+{
+ var description = g_Settings.AIDescriptions.find(ai => ai.id == aiName);
+ return description ? translate(description.data.name) : translate("Unknown");
+}
+
+/**
+ * Returns title or placeholder.
+ *
+ * @param index {Number} - index of AIDifficulties
+ */
+function translateAIDifficulty(index)
+{
+ var difficulty = g_Settings.AIDifficulties[index];
+ return difficulty ? difficulty.Title : translate("Unknown");
+}
+
+/**
+ * Returns title or placeholder.
+ *
+ * @param mapType {string} - for example "skirmish"
+ */
+function translateMapType(mapType)
+{
+ var type = g_Settings.MapTypes.find(t => t.Name == mapType);
+ return type ? type.Title : translate("Unknown");
+}
+
+/**
+ * Returns title or placeholder.
+ *
+ * @param population {Number} - for example 300
+ */
+function translatePopulationCapacity(population)
+{
+ var popCap = g_Settings.PopulationCapacities.find(p => p.Population == population);
+ return popCap ? popCap.Title : translate("Unknown");
+}
+
+/**
+ * Returns title or placeholder.
+ *
+ * @param gameType {string} - for example "conquest"
+ */
+function translateVictoryCondition(gameType)
+{
+ var vc = g_Settings.VictoryConditions.find(vc => vc.Name == gameType);
+ return vc ? vc.Title : translate("Unknown");
+}
diff --git a/binaries/data/mods/public/gui/page_replaymenu.xml b/binaries/data/mods/public/gui/page_replaymenu.xml
new file mode 100644
index 0000000000..6c38d3dd04
--- /dev/null
+++ b/binaries/data/mods/public/gui/page_replaymenu.xml
@@ -0,0 +1,15 @@
+
+
+ common/modern/setup.xml
+ common/modern/styles.xml
+ common/modern/sprites.xml
+
+ common/setup.xml
+ common/sprite1.xml
+ common/styles.xml
+ common/common_sprites.xml
+ common/common_styles.xml
+
+ replaymenu/styles.xml
+ replaymenu/replay_menu.xml
+
diff --git a/binaries/data/mods/public/gui/pregame/mainmenu.xml b/binaries/data/mods/public/gui/pregame/mainmenu.xml
index ca107d5b7b..045e312e38 100644
--- a/binaries/data/mods/public/gui/pregame/mainmenu.xml
+++ b/binaries/data/mods/public/gui/pregame/mainmenu.xml
@@ -346,10 +346,24 @@
+
+