[Scummvm-git-logs] scummvm-tools master -> 16f178fbb0e03eb122029050dfd3189451a5c6f2
mgerhardy
noreply at scummvm.org
Wed Oct 21 17:03:59 UTC 2026
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm-tools' repo located at https://api.github.com/repos/scummvm/scummvm-tools .
Summary:
16f178fbb0 MACS2: updated new instructions for language files
Commit: 16f178fbb0e03eb122029050dfd3189451a5c6f2
https://github.com/scummvm/scummvm-tools/commit/16f178fbb0e03eb122029050dfd3189451a5c6f2
Author: Martin Gerhardy (martin.gerhardy at gmail.com)
Date: 2026-10-21T19:02:59+02:00
Commit Message:
MACS2: updated new instructions for language files
Changed paths:
engines/macs2/TRANSLATE.md
engines/macs2/create_macs2_translation.cpp
diff --git a/engines/macs2/TRANSLATE.md b/engines/macs2/TRANSLATE.md
index 3a3be3f3..a641e6bf 100644
--- a/engines/macs2/TRANSLATE.md
+++ b/engines/macs2/TRANSLATE.md
@@ -14,7 +14,7 @@ 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.
-Hotspot overlay labels are appended as one entry per unique German noun (`msgctxt "hotspotlabel"`). Object and NPC overlay names use `msgctxt "objectlabel"`. Both lists are embedded in `create_macs2_translation.cpp` and cover the **full game** only (`kSceneHotspotNames[]` and `kObjectNames[]` in `engines/macs2/hotspot_names.cpp`); the demo reuses the same hotspot label strings for its subset of scene/hotspot indices, but object indices can differ between demo and full game. Keys are CP850 and must match the engine tables exactly.
+Hotspot overlay labels are appended as one entry per unique German noun (`msgctxt "hotspotlabel"`). Object and NPC overlay names use `msgctxt "objectlabel"`. Both lists are embedded in `create_macs2_translation.cpp` and use the **full game** entries (`kSceneHotspotNames[]` and `kObjectNames[]` in `engines/macs2/hotspot_names.cpp`). Keys are CP850 and must match the engine tables exactly. The DOS demo reuses the source labels; the engine maps its different object IDs and scene string indices to the full-game translation entries, so the same package works with both releases.
When packing, hotspot and object labels share one CP850 lookup table in the DAT file (duplicate German strings need only one translation).
@@ -22,14 +22,17 @@ Action-bar / HUD chrome uses a separate DAT section (`msgctxt "uilabel"`). Keys
The `\n` separators correspond to individual display lines in the game. Keep the same number of lines as the original.
-### 3. Pack into binary
+### 2. Pack into binary
```bash
-create_macs2_translation pack en.po macs2_translation.dat
+create_macs2_translation pack en.po sis-translation-en.dat
+create_macs2_translation pack sv.po sis-translation-sv.dat
```
-### 4. Install
+### 3. Install
-Place `macs2_translation.dat` in the game directory alongside `RESOURCE.MCS`. ScummVM will detect the translation and offer the translated language variant.
+Name each package `sis-translation-<lang>.dat`, where `sis` is the game ID and `<lang>` is the language code (`en`, `sv`, etc.). The output filename is supplied explicitly to the pack command.
-The file is also distributed via `dists/engine-data/macs2_translation.dat` in the ScummVM source tree.
+Place the packages in the full DOS game or DOS demo directory alongside `RESOURCE.MCS`. Use the same packages built from the full-game PO files for both releases. Multiple languages can be installed together. In ScummVM, open the game's **Game Options** and select a language under **Translation** on the **Game** tab. **Original** uses the German game text. The selection is saved per target.
+
+The full game is detected as the original German `sis-de` and the DOS demo as `sis-demo-de`, regardless of the installed packages. Packages are not embedded in or bundled with ScummVM. The legacy `macs2_translation.dat` filename is no longer used. The DOS demo-only chapter-end message retains German text because it has no full-game translation entry. These packages are not offered for the Amiga demo.
diff --git a/engines/macs2/create_macs2_translation.cpp b/engines/macs2/create_macs2_translation.cpp
index bd901fe2..55ffb9aa 100644
--- a/engines/macs2/create_macs2_translation.cpp
+++ b/engines/macs2/create_macs2_translation.cpp
@@ -25,7 +25,7 @@
* Workflow:
* 1. Extract: create_macs2_translation extract <RESOURCE.MCS> <output.pot>
* 2. Translate the .po file (Poedit, Weblate, etc.)
- * 3. Pack: create_macs2_translation pack <translated.po> <macs2_translation.dat>
+ * 3. Pack: create_macs2_translation pack <translated.po> <sis-translation-LANG.dat>
*
* PO format:
* msgctxt "scene:2:0" (or "object:42:0")
@@ -1256,7 +1256,7 @@ static int doPack(const char *poPath, const char *outPath) {
static void printHelp(const char *bin) {
printf("MACS2 Translation File Creator\n\n");
printf(" %s extract <RESOURCE.MCS> <macs2.pot>\n", bin);
- printf(" %s pack <translated.po> <macs2_translation.dat>\n", bin);
+ printf(" %s pack <translated.po> <sis-translation-LANG.dat>\n", bin);
}
int main(int argc, char **argv) {
More information about the Scummvm-git-logs
mailing list