HTML translation test files (BookTranslator, 2026-10-27). Free to reuse.
sample-source.html 59-line English help-center page written for this test (Shelfmark is a
fictional app): title and meta tags, og:title, JSON-LD, an inline style
with CSS-generated text, a comment, breadcrumb nav with aria-label,
inline tags inside sentences, translate="no", an image with alt text,
a table, inline code whose order matters, a pre/code block with sample
output, an in-page link, a form with placeholder and aria-label,
character references, and a script
run_llm_html_test.py runs the three methods against a local OpenAI-compatible server
(whole-file, instructed, segments)
outputs/*.html the nine Simplified Chinese outputs, unedited (moved into outputs/
after the run; the raw model replies are not published)
check_html_translation.py structural checker (Python standard library only)
check-results.txt checker output for all nine, run with
--lang zh-Hans --keep Shelfmark --keep EPUB --keep CSV
results.csv one row per run, including the sentence-order reading the checker
cannot do
Model: Qwen 3.6 27B (qwen/qwen3.6-27b, Q4_K_M) in LM Studio, reasoning_effort "none",
temperature 0.3, one request per method per run, Apple M4 Max with 64 GB of memory.
The segments method decodes character references before sending text and writes characters
back, and it sets lang="zh-Hans" itself; both are design choices of this script, not model output.
The sentence-order column was read by a person: "correct" means the translated sentence tells the
reader to type the path after --out, as the English does.