Ill just put my discoveries here.
#1. Chatgpt is not capable of translating large amounts of strings. It is probabilistic and will eventually merge two pieces of text together, remove special characters.
#2. Im not sure if its just this game, but some scripts are stored in the json, and their variable names are in japanese. So it will often translate those variables leading to nuking the game files.
#3. Censorship, chatgpt tends to censor some words/avoid some words due to its fine tuning to not be offensive. If it sees words like おまんこ odds are that it will 100% not translate it to pussy but say "it" or "down there" which is fine, but sometimes it just doesnt send the text. Also there are some lines that happen fairly close together that would trigger openAI to block the whole message, for example there was some line saying that her dancing ability was like a childs, and another one mentioning she was nude. So those 2 words in the same message will cause your message to be blocked.
Im pretty tired out cause i spent like 18 hours over 2 days trying to get this to work, trying tons of prompts and writing the script itself.
For anyone trying to do batch translation and keep everything in strings, your best odds of not merging lines is to say in the system prompt how many lines you are sending, how many lines you should receive, and give a format that has each string numbered or with a unique id.
it does not matter if you tell it to not merge lines, to not transate text in code, or pretty much anything. It will make a mistake.
Maybe gpt-5 will be better (it wont be)