diff --git a/modules/regex.py b/modules/regex.py index 8d5cdb9..1ad5c54 100644 --- a/modules/regex.py +++ b/modules/regex.py @@ -89,7 +89,7 @@ def handleRegex(filename, estimate): # Translate if not estimate: try: - with open("translated/" + filename, "w", encoding="cp932") as outFile: + with open("translated/" + filename, "w", encoding="utf-8-sig") as outFile: outFile.writelines(translatedData[0]) except Exception: traceback.print_exc() @@ -138,7 +138,7 @@ def getResultString(translatedData, translationTime, filename): def openFiles(filename): - with open("files/" + filename, "r", encoding="cp932") as readFile: + with open("files/" + filename, "r", encoding="utf-8-sig") as readFile: translatedData = parseRegex(readFile, filename) # Delete lines marked for deletion @@ -187,10 +187,11 @@ def translateRegex(data, translatedList): while i < len(data): voice = False - lineRegexText = r"t\s'(.*)'$" - lineRegexSpeaker = r"n\s'(.*)'$" + lineRegexText = r"(^[^*_]+$)" + lineRegexSpeaker = r"(主人公)\n" choiceRegex = r"\$menu_item.+?,(.*?)," titleRegex = r"title\s'(.*)'$" + speaker = "" # Title match = re.search(titleRegex, data[i]) @@ -213,42 +214,51 @@ def translateRegex(data, translatedList): match = re.search(lineRegexSpeaker, data[i]) if match: if match.group(1): - response = getSpeaker(match.group(1)) - speaker = response[0] - tokens[0] += response[1][0] - tokens[1] += response[1][1] - + if match.group(1) == "主人公": + speaker = "Protagonist" + else: + response = getSpeaker(match.group(1)) + speaker = response[0] + tokens[0] += response[1][0] + tokens[1] += response[1][1] if translatedList: - # Escape Quotes - speaker = re.sub(r"(?