diff --git a/Makefile b/Makefile
index 047c4042..2b4428e2 100644
--- a/Makefile
+++ b/Makefile
@@ -109,6 +109,9 @@ endif
$(STRIP) descumm$(EXEEXT) -o $(WIN32PATH)/tools/descumm$(EXEEXT)
$(STRIP) desword2$(EXEEXT) -o $(WIN32PATH)/tools/desword2$(EXEEXT)
$(STRIP) detwine$(EXEEXT) -o $(WIN32PATH)/tools/detwine$(EXEEXT)
+ $(STRIP) demacs2$(EXEEXT) -o $(WIN32PATH)/tools/demacs2$(EXEEXT)
+ $(STRIP) extract_macs2$(EXEEXT) -o $(WIN32PATH)/tools/extract_macs2$(EXEEXT)
+ $(STRIP) create_macs2_translation$(EXEEXT) -o $(WIN32PATH)/tools/create_macs2_translation$(EXEEXT)
$(STRIP) extract_mohawk$(EXEEXT) -o $(WIN32PATH)/tools/extract_mohawk$(EXEEXT)
$(STRIP) gob_loadcalc$(EXEEXT) -o $(WIN32PATH)/tools/gob_loadcalc$(EXEEXT)
$(STRIP) grim_animb2txt$(EXEEXT) -o $(WIN32PATH)/tools/grim_animb2txt$(EXEEXT)
@@ -308,6 +311,9 @@ endif
$(STRIP) descumm$(EXEEXT) -o $(AMIGAOSPATH)/descumm$(EXEEXT)
$(STRIP) desword2$(EXEEXT) -o $(AMIGAOSPATH)/desword2$(EXEEXT)
$(STRIP) detwine$(EXEEXT) -o $(AMIGAOSPATH)/detwine$(EXEEXT)
+ $(STRIP) demacs2$(EXEEXT) -o $(AMIGAOSPATH)/demacs2$(EXEEXT)
+ $(STRIP) extract_macs2$(EXEEXT) -o $(AMIGAOSPATH)/extract_macs2$(EXEEXT)
+ $(STRIP) create_macs2_translation$(EXEEXT) -o $(AMIGAOSPATH)/create_macs2_translation$(EXEEXT)
$(STRIP) extract_mohawk$(EXEEXT) -o $(AMIGAOSPATH)/extract_mohawk$(EXEEXT)
$(STRIP) extract_ngi$(EXEEXT) -o $(AMIGAOSPATH)/extract_ngi$(EXEEXT)
$(STRIP) gob_loadcalc$(EXEEXT) -o $(AMIGAOSPATH)/gob_loadcalc$(EXEEXT)
diff --git a/Makefile.common b/Makefile.common
index b3bfc179..9fa390f1 100644
--- a/Makefile.common
+++ b/Makefile.common
@@ -35,6 +35,7 @@ PROGRAMS = \
extract_gob_cdi \
extract_mohawk \
extract_macs2 \
+ create_macs2_translation \
extract_ngi \
construct_mohawk \
msn_convert_mod \
@@ -145,6 +146,9 @@ demacs2_OBJS := \
extract_macs2_OBJS := \
engines/macs2/extract_macs2.o
+create_macs2_translation_OBJS := \
+ engines/macs2/create_macs2_translation.o
+
extract_hadesch_OBJS := \
engines/hadesch/extract_hadesch.o \
$(UTILS)
diff --git a/engines/macs2/TRANSLATE.md b/engines/macs2/TRANSLATE.md
new file mode 100644
index 00000000..08cb74ce
--- /dev/null
+++ b/engines/macs2/TRANSLATE.md
@@ -0,0 +1,29 @@
+# MACS2 Tools
+
+Tools for the MACS2 engine (Schatz im Silbersee).
+
+## Translation Workflow
+
+The game was originally released in German only. Translations are managed via standard PO files.
+
+### 1. Extract strings to a PO template
+
+```bash
+create_macs2_translation extract RESOURCE.MCS macs2.pot
+```
+
+This produces a `.pot` file with all game strings grouped by dialog context. The format uses `msgctxt` to identify the source (scene or object) and `\n` to separate lines within a dialog unit.
+
+The `\n` separators correspond to individual display lines in the game. Keep the same number of lines as the original.
+
+### 3. Pack into binary
+
+```bash
+create_macs2_translation pack en.po macs2_translation.dat
+```
+
+### 4. Install
+
+Place `macs2_translation.dat` in the game directory alongside `RESOURCE.MCS`. ScummVM will detect the translation and offer the translated language variant.
+
+The file is also distributed via `dists/engine-data/macs2_translation.dat` in the ScummVM source tree.
diff --git a/engines/macs2/create_macs2_translation.cpp b/engines/macs2/create_macs2_translation.cpp
new file mode 100644
index 00000000..54aec097
--- /dev/null
+++ b/engines/macs2/create_macs2_translation.cpp
@@ -0,0 +1,786 @@
+/* ScummVM Tools
+ *
+ * ScummVM Tools is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ *
+ */
+
+/**
+ * MACS2 Translation File Creator
+ *
+ * Workflow:
+ * 1. Extract: create_macs2_translation extract
+ * 2. Translate the .po file (Poedit, Weblate, etc.)
+ * 3. Pack: create_macs2_translation pack
+ *
+ * PO format:
+ * msgctxt "scene:2" (or "object:42")
+ * msgid "line1\nline2\nline3"
+ * msgstr "translated1\ntranslated2\ntranslated3"
+ *
+ * Each msgid groups consecutive strings that form one dialog/description unit.
+ * The \n separates individual lines that the engine displays separately.
+ */
+
+#include
+#include