Счётчик абзацев, вернувшихся на языке оригинала: упражнения вида [2] модель не переводит

This commit is contained in:
chesirecatt
2026-08-21 17:47:48 +03:00
parent 7ed6e500ca
commit 14c7fad763
3 changed files with 43 additions and 2 deletions
+9 -2
View File
@@ -156,7 +156,7 @@ MIN_LEN_SHARE = 0.25
def rebuild(src, chapters, workdir, out):
lines = src.read_text(encoding="utf-8").splitlines()
broken = missing = translated = junk = 0
broken = missing = translated = junk = untouched = 0
for n, ch in enumerate(chapters):
f = workdir / "translations" / ("chapter_%03d_translated.json" % n)
if not f.exists():
@@ -174,13 +174,20 @@ def rebuild(src, chapters, workdir, out):
junk += 1
lines[idx] = "<%s%s>%s</%s>" % (tag, attrs, original, tag)
continue # оставляем оригинал: английский абзац лучше огрызка
# Абзац, вернувшийся на языке оригинала. Доля кириллицы по всему
# документу такое не ловит: полтора процента в ней тонут, а на
# странице это заметный кусок английского текста.
if len(plain_src) > 150 and detect_language(re.sub("<[^>]+>", "", text))[0] \
== detect_language(plain_src)[0] != "unknown":
untouched += 1
body, ok = from_marks(text)
broken += not ok
translated += 1
lines[idx] = "<%s%s>%s</%s>" % (tag, attrs, body, tag)
out.write_text("\n".join(lines) + "\n", encoding="utf-8")
print("переведено блоков: %d, без перевода: %d, разметка потеряна в %d, "
"огрызков заменено оригиналом: %d" % (translated, missing, broken, junk))
"огрызков заменено оригиналом: %d, осталось на языке оригинала: %d"
% (translated, missing, broken, junk, untouched))
return missing == 0 and junk * 200 <= translated