docs: record why the translation engine lives in-tree

A from-scratch CPU inference engine is the largest, riskiest part of
the codebase and the least connected to screenwriting, so it deserves a
written decision. It stays: the alternative (a ctranslate2/argos
dependency, a plugin or a separate binary) buys a single menu item at
the cost of cgo and per-distribution packaging, while the in-tree
engine keeps the one-binary, offline, GPL-clean build. The package doc
now says so, with the condition that should reopen the question
(more language pairs).
This commit is contained in:
Kharec committed 2026-10-15 17:54:11 +02:00
1 parent 82bfef8cba
commit 1440adc199
2 files changed
+14 -1

No files matched your search

+2 -1
View File
@@ -62,7 +62,8 @@ internal/layout line wrapping + pagination (paper sizes, locked pages);
internal/pdf hand-written PDF 1.4 writer, standard Courier fonts, zero dependencies
internal/spell Hunspell .aff/.dic reader, checker (compounds too), suggestions, word scan
internal/marian MarianMT (OPUS-MT) inference in pure Go: safetensors, SentencePiece unigram,
transformer encoder-decoder, beam search, verified download
transformer encoder-decoder, beam search, verified download. In-tree on
purpose (one binary, no cgo, offline by design): see the package doc.
internal/translate French → English script translation: language detection, screenplay term
tables, per-element rules, name protection, parallel sentence translation
frontend/index.html app shell: header bar, navigator, paper, HUD, <dialog>s