Translating Fallout: Pip-Booty with ChatGPT

A guide for translators

1 — Gear up (a.k.a. the boring prerequisites)

WhatWhy it matters
ChatGPT PlusAccess to large-context models for bigger JSON files.
Text editorVS Code, Sublime, or Notepad++ for quick inspections and merges.
Game’s raw JSON filesGrab them from the GitHub repo.
Translations folderC:\Users\<UserName>\AppData\LocalLow\Cumshot Chronicles Interactive\Fallout_ Pip-Booty\translations: create if missing.

2 — Pick the right model for the right job

StageRecommended modelRationale
Structural passo3 or o4Huge context windows handle full JSON, preserving keys and hierarchy.
Creative polish4o or 4.5Better at humor and spice; use on individual lines or chunks.

3 — A prompt template

Translate this JSON file from an *adult Fallout parody game* into *[Target Language]*. - Retain the original humor and explicit tone. - Respond with only valid JSON. - If the following json is a dialogue file, only translate (overwrite) the values of the following keys: "optionText", "responseText", "responseTexts", "auto_lines", "random_auto_line", "lineAfterHevent", and "advanceDayWithStatusMessage". Leave the rest alone! - If the following json is Achievements containing the "players" key (and its int value), only translate (overwrite) the values of the following keys: "title", "subtitle". Leave the rest alone! - In all other cases, the json file should have the fields (usually empty) for translation, so just fill those. Dont overwrite the original ones! Json file: [paste the json here]

4 — Run the structural pass (o3 / o4)

  1. Feed one JSON file at a time.
  2. Verify keys match input; save in the /translations folder with its original name.
IMPORTANT: In the Dialogue JSON files you should translate only optionText, responseText, responseTexts, auto_lines, random_auto_line, lineAfterHevent, and advanceDayWithStatusMessagenothing else! Do not rename quests, items, events or anything else. Even a tiny change will cause bugs. In the GUI.json, Cards.json, Bubbleheads.json, Items.json, etc you should put the translation under the translation keys. Do not replace the original translation values (you can only do that for dialogues and achievements!).
Note: The current translation framework does not support translating certain in-game elements such as violator/enemy barks, enemy intents, etc. Support for these will come later.

5 — Hunt for golden nuggets with 4o / 4.5

  1. Select a standout chunk/line or feed the whole json.
  2. Prompt 4o/4.5 for a creative translation.
  3. Cherry-pick lines that pop.
  4. Paste back into the structural file.

6 — Sanity-check the JSON

7 — Drop files into the game

  1. Press Win+R, type %AppData% and press Enter. In the window that opens, go up one level into LocalLow, then navigate to Cumshot Chronicles Interactive > Fallout_ Pip-Booty. If you don’t see a translations folder there, right-click → New → Folder, name it translations.
  2. Copy all translated JSONs into this translations folder.
  3. Edit or create a translation_info.json in your translations folder. This file tells the game your target language and version, and provides the localized strings for the “Translation found … Apply?” popup. Example (French, for game version 0.5.2):
    {
      "language": "Française",
      "locale": "",
      "github_repo": "",
      "game_version": "0.5.2",
      "translation_detected_window": {
        "message": "Traduction trouvée : ",
        "message_part2": "Appliquer ?",
        "yes_btn": "Oui",
        "no_btn": "Non",
        "update": "Mettre à jour"
      }
    }
    – fill in your own language name and game version, and translate each button and message line.
  4. Launch the game; you’ll see a popup like:
    “Traduction trouvée : Française Appliquer ?” Click the Oui (Yes) button to load your translation.
  5. If some GUI texts don’t fit, you can adjust their size by wrapping in the <size=[size_num]></size> tags.

Example French translation:

GUI.json snippet:

[ 
{ "original": "Close <color=#5A5A5A><size=24>[RMB]", "translation": "Fermer <color=#5A5A5A><size=24>[RMB]" },
{ "original": "Save", "translation": "Sauvegarder" },
{ "original": "Load", "translation": "Charger" },
{ "original": "Low", "translation": "Faible" },
{ "original": "Moderate", "translation": "Modéré" },
{ "original": "High", "translation": "Élevé" },
{ "original": "W", "translation": "V" },
{ "original": "C", "translation": "C" },
{ "original": "Willpower Tokens", "translation": "Jetons de volonté" },
{ "original": "Bottle Caps", "translation": "Capsules" },
{ "original": "Buy <size=40>({0}{1})", "translation": "Acheter <size=40>({0}{1})" },
{ "original": "Gift", "translation": "Offrir" },
{ "original": "Bubbleheads", "translation": "Figurines Bubblehead" },
{ "original": "Turn Me On <color=grey><size=22>Every 3 turns, gain 1 AP.", "translation": "Allume-moi <color=grey><size=22>Tous les 3 tours, gagne 1 PA." }
]

Overseer_Lounge.json snippet:

{
    "optionText": "Qu'est-ce que j'y gagne ?",
    "responseText": "Quoi, toi ? Gloire, honneur et la satisfaction d'un vrai guerrier ! Bon, si tu as besoin de *matériel* — j'ai un sac de capsules qui t'attend. Ramène-moi la tête de Domina — elles sont à toi. Et en prime, le respect de l'homme le plus discipliné du monde. Ça, ça ne s'achète pas !"
},
{
    "optionText": "Tu veux que je la tue, tout simplement ?",
    "icon": "GUI/quest mark",
    "dontDisplayIfHasObjective": "Bring down Mistress Domina",
    "dontDisplayIfObjectiveComplete": "Bring down Mistress Domina",
    "responseText": "Exactement ! Elle se cache dans les ruines d'une vieille église. Ta mission est simple : t'infiltrer, buter ses simps, puis découper cette succube. Quoi qu'il arrive, ne la laisse pas entrer dans ta tête. Cligne des yeux et tu seras déjà en train de lui laver ses culottes en l'appelant « maman ». C'est clair, soldat ?!",
    "followUpOptions": [
        {
            "optionText": "D'accord, je vais m'occuper de ta psycho-dominatrice.",
            "icon": "GUI/quest mark",
            "markObjectiveComplete": "Talk to the Overseer",
            "addObjective": "Bring down Mistress Domina",
            "showChoiceStats": "down_with_the_devil",
            "exitLine": true,
            "responseText": "Ça c'est du soldat ! Je savais qu'il y avait une étincelle de potentiel sous ce cuir tanné du Wasteland. Souviens-toi : ce n'est pas juste une mission — c'est une croisade contre la THOT-SUPRÉMATIE ! Tu te bats non seulement pour toi, mais aussi pour l'honneur de l'Abri 6969 ! Équipe-toi, bouge-toi — DÉTRUIS CETTE THOT AVANT QU'ELLE NE DÉTRUISE LE MONDE !"
        }
    ]
}

8 — Keep up with game updates

9 — Want your translation included? Send it!

Zip the final JSONs and email me () for integration. Only full translations are accepted.