"""Report text that is still English in the localized page (gap finder).""" import re, sys from bs4 import BeautifulSoup, NavigableString, Comment SRC = r"C:/Users/yvmou/Downloads/limboai-readthedocs-io-en-stable/limboai-stable/index.zh.html" SKIP = {"script", "style", "pre", "code", "kbd", "samp", "var", "tt"} soup = BeautifulSoup(open(SRC, encoding="utf-8").read(), "lxml") rows = [] for node in soup.find_all(string=True): if isinstance(node, Comment): continue t = str(node).strip() if not re.search(r"[A-Za-z]", t): continue if any(getattr(p, "name", None) in SKIP for p in node.parents): continue words = re.findall(r"[A-Za-z][A-Za-z'\-]+", t) long_words = [w for w in words if len(w) > 2 and not w[0].isupper()] if len(words) >= 4 or len(long_words) >= 2: parents = "/".join(p.name for p in list(node.parents)[:3]) rows.append((parents, t)) print("leftover english-ish text nodes:", len(rows)) seen = set() for p, t in rows: k = t[:60] if k in seen: continue seen.add(k) print(" [%s] %s" % (p, t[:150])) if len(seen) > 40: break