import json import re import sys sys.path.insert(0, r"E:\DragonHD\tools") from cn_strings import CN_STRINGS j = json.load(open(r"E:\DragonHD\build\strings_en.json", encoding="utf-8")) en = {k: v for k, v in j} SPEC = re.compile(r"%%|%[-+ #0]*[\d*]*(?:\.[\d*]+)?[hlL]?[diouxXeEfgGcs%]") bad = [] for sid, cn in CN_STRINGS.items(): if sid not in en: bad.append((sid, "id not in file")) continue se = SPEC.findall(en[sid]) sc = SPEC.findall(cn) if se != sc: bad.append((sid, "spec %r != %r" % (se, sc))) print("translated:", len(CN_STRINGS)) print("spec mismatches:", len(bad)) for sid, why in bad: print(" !", sid, why) # specifiers present in English but missing translation missing_spec = [sid for sid in en if sid not in CN_STRINGS and SPEC.findall(en[sid]) and en[sid].strip()] print() print("English entries with format specifiers left untranslated:", len(missing_spec)) for s in missing_spec: print(" -", s, "=", repr(en[s]))