The "Bilingual Text (AI-friendly)" [SEGMENT N] + .svexport.json handler now also lives in supervertaler-core (bilingual_text.py), lifted Qt-free from this repo's modules/bilingual_markdown_handler.py so Otto can emit the byte-identical format. The two copies will drift.
Dedup: have the Workbench import the handler from supervertaler-core instead of its local copy, keeping the format identical between the desktop app and Otto (same principle as sharing the translation engine via core).
The core copy is a faithful lift plus two additive extras: a tool_name param on build_markdown() and a render_export() byte helper. Otherwise identical, so the swap should be low-risk.
The "Bilingual Text (AI-friendly)"
[SEGMENT N]+.svexport.jsonhandler now also lives in supervertaler-core (bilingual_text.py), lifted Qt-free from this repo'smodules/bilingual_markdown_handler.pyso Otto can emit the byte-identical format. The two copies will drift.Dedup: have the Workbench import the handler from
supervertaler-coreinstead of its local copy, keeping the format identical between the desktop app and Otto (same principle as sharing the translation engine via core).The core copy is a faithful lift plus two additive extras: a
tool_nameparam onbuild_markdown()and arender_export()byte helper. Otherwise identical, so the swap should be low-risk.