Files
Trans_tools/Translation merger/Translation merger.py
2022-11-21 22:22:44 -03:00

47 lines
1.8 KiB
Python

##############################################################################################################################
# This script simply places the strings from files_old into files_new. This is useful if for some reason the labels in the #
# script thanged and you needed to regenerate the translations, or if you already translated the game without using the #
# translation system. #
# #
# Make sure that both files have the same ammounts of lines. Then, simply place the old files into files_old #
# And the new files into files_new. #
##############################################################################################################################
from os import listdir
cont = 0
nextOne = False
next_One = False
OUT = "out"
FOLDERS = ["old","new"]
for file in listdir(f"files_{FOLDERS[0]}"):
if file.endswith(".rpy"):
with open(f"files_{FOLDERS[0]}/{file}",'r', encoding="utf8") as f:
linesOne = f.readlines()
with open(f"files_{FOLDERS[1]}/{file}",'r', encoding="utf8") as f2:
linesTwo = f2.readlines()
if len(linesOne) == len(linesTwo):
with open(f"files_{OUT}/{file}",'w', encoding="utf8") as fp:
for number,line in enumerate(linesOne):
if line.strip().startswith("#") and line != 0:
next_One = True
cont += 1
fp.write(linesTwo[number])
elif line.strip().startswith("old"):
nextOne = True
fp.write(linesTwo[number])
elif nextOne:
fp.write(linesOne[number])
nextOne = False
elif next_One and cont == 2:
fp.write(linesOne[number])
next_One = False
cont = 0
else:
fp.write(linesTwo[number])
else:
print(f"{file}, couldn't be proccesed. There's a discrepancy in the lines. old: {len(linesOne)} - new: {len(linesTwo)}")
continue